diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 115 |
1 files changed, 83 insertions, 32 deletions
@@ -125,6 +125,8 @@ struct _EmulationSpecEntry { static char* gui_main_window_xml_ui; static char* gui_main_window_xml_ui = NULL; +static char* gui_main_window_about_xml_ui; +static char* gui_main_window_about_xml_ui = NULL; static gpointer gui_main_window_parent_class = NULL; extern GUIMainWindow* gui_main; GUIMainWindow* gui_main = NULL; @@ -169,12 +171,14 @@ static void _lambda13_ (GtkAction* source, GUIMainWindow* self); static void __lambda13__gtk_action_activate (GtkAction* _sender, gpointer self); static void _lambda14_ (GtkAction* source, GUIMainWindow* self); static void __lambda14__gtk_action_activate (GtkAction* _sender, gpointer self); -static void _lambda15_ (GtkTreePath* path, GtkTreeViewColumn* column, GUIMainWindow* self); -static void __lambda15__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self); -static gboolean _lambda16_ (GdkEventButton* event, GUIMainWindow* self); -static gboolean __lambda16__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self); -static void _lambda17_ (GtkTreeView* source, GUIMainWindow* self); -static void __lambda17__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpointer self); +static void _lambda15_ (GtkAction* source, GUIMainWindow* self); +static void __lambda15__gtk_action_activate (GtkAction* _sender, gpointer self); +static void _lambda16_ (GtkTreePath* path, GtkTreeViewColumn* column, GUIMainWindow* self); +static void __lambda16__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self); +static gboolean _lambda17_ (GdkEventButton* event, GUIMainWindow* self); +static gboolean __lambda17__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self); +static void _lambda18_ (GtkTreeView* source, GUIMainWindow* self); +static void __lambda18__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpointer self); static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self); static GObject * gui_main_window_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gui_main_window_finalize (GObject* obj); @@ -366,19 +370,63 @@ static void __lambda14__gtk_action_activate (GtkAction* _sender, gpointer self) } -static void _lambda15_ (GtkTreePath* path, GtkTreeViewColumn* column, GUIMainWindow* self) { +static void _lambda15_ (GtkAction* source, GUIMainWindow* self) { + GError * _inner_error_; + GtkBuilder* about; + g_return_if_fail (source != NULL); + _inner_error_ = NULL; + about = gtk_builder_new (); + { + GObject* _tmp0_; + GtkAboutDialog* dlg; + gtk_builder_add_from_string (about, gui_main_window_about_xml_ui, (gsize) string_get_length (gui_main_window_about_xml_ui), &_inner_error_); + if (_inner_error_ != NULL) { + goto __catch4_g_error; + } + dlg = _g_object_ref0 ((_tmp0_ = gtk_builder_get_object (about, "about_dialog"), GTK_IS_ABOUT_DIALOG (_tmp0_) ? ((GtkAboutDialog*) _tmp0_) : NULL)); + gtk_dialog_run ((GtkDialog*) dlg); + gtk_object_destroy ((GtkObject*) dlg); + _g_object_unref0 (dlg); + } + goto __finally4; + __catch4_g_error: + { + GError * e; + e = _inner_error_; + _inner_error_ = NULL; + { + _g_error_free0 (e); + } + } + __finally4: + if (_inner_error_ != NULL) { + _g_object_unref0 (about); + g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); + g_clear_error (&_inner_error_); + return; + } + _g_object_unref0 (about); +} + + +static void __lambda15__gtk_action_activate (GtkAction* _sender, gpointer self) { + _lambda15_ (_sender, self); +} + + +static void _lambda16_ (GtkTreePath* path, GtkTreeViewColumn* column, GUIMainWindow* self) { g_return_if_fail (path != NULL); g_return_if_fail (column != NULL); gui_main_window_open_csview (self); } -static void __lambda15__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) { - _lambda15_ (path, column, self); +static void __lambda16__gtk_tree_view_row_activated (GtkTreeView* _sender, GtkTreePath* path, GtkTreeViewColumn* column, gpointer self) { + _lambda16_ (path, column, self); } -static gboolean _lambda16_ (GdkEventButton* event, GUIMainWindow* self) { +static gboolean _lambda17_ (GdkEventButton* event, GUIMainWindow* self) { gboolean result; EmulationCS* cs; gboolean _tmp0_ = FALSE; @@ -401,19 +449,19 @@ static gboolean _lambda16_ (GdkEventButton* event, GUIMainWindow* self) { } -static gboolean __lambda16__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) { - return _lambda16_ (event, self); +static gboolean __lambda17__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) { + return _lambda17_ (event, self); } -static void _lambda17_ (GtkTreeView* source, GUIMainWindow* self) { +static void _lambda18_ (GtkTreeView* source, GUIMainWindow* self) { g_return_if_fail (source != NULL); gui_main_window_edit_set_sensitive (self, gtk_tree_selection_get_selected (gtk_tree_view_get_selection (self->priv->cs_list), NULL, NULL)); } -static void __lambda17__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpointer self) { - _lambda17_ (_sender, self); +static void __lambda18__gtk_tree_view_cursor_changed (GtkTreeView* _sender, gpointer self) { + _lambda18_ (_sender, self); } @@ -445,13 +493,14 @@ static GObject * gui_main_window_constructor (GType type, guint n_construct_prop GObject* _tmp6_; GObject* _tmp8_; GtkAction* action_importcs; - GtkListStore* _tmp10_; GObject* _tmp9_; - GtkTreeView* _tmp12_; - GObject* _tmp11_; - GtkMenu* _tmp14_; - GObject* _tmp13_; - GObject* _tmp15_; + GtkListStore* _tmp11_; + GObject* _tmp10_; + GtkTreeView* _tmp13_; + GObject* _tmp12_; + GtkMenu* _tmp15_; + GObject* _tmp14_; + GObject* _tmp16_; builder = gtk_builder_new (); { gtk_builder_add_from_string (builder, gui_main_window_xml_ui, (gsize) string_get_length (gui_main_window_xml_ui), &_inner_error_); @@ -490,23 +539,24 @@ static GObject * gui_main_window_constructor (GType type, guint n_construct_prop g_signal_connect_object (action_importcs, "activate", (GCallback) __lambda12__gtk_action_activate, self, 0); g_signal_connect_object (self->priv->action_exportcs, "activate", (GCallback) __lambda13__gtk_action_activate, self, 0); g_signal_connect_object (self->priv->action_removecs, "activate", (GCallback) __lambda14__gtk_action_activate, self, 0); - self->priv->cs_store = (_tmp10_ = _g_object_ref0 ((_tmp9_ = gtk_builder_get_object (builder, "cs_store"), GTK_IS_LIST_STORE (_tmp9_) ? ((GtkListStore*) _tmp9_) : NULL)), _g_object_unref0 (self->priv->cs_store), _tmp10_); - self->priv->cs_list = (_tmp12_ = _g_object_ref0 ((_tmp11_ = gtk_builder_get_object (builder, "cs_list"), GTK_IS_TREE_VIEW (_tmp11_) ? ((GtkTreeView*) _tmp11_) : NULL)), _g_object_unref0 (self->priv->cs_list), _tmp12_); - self->priv->edit_menu = (_tmp14_ = _g_object_ref0 ((_tmp13_ = gtk_builder_get_object (builder, "popup1"), GTK_IS_MENU (_tmp13_) ? ((GtkMenu*) _tmp13_) : NULL)), _g_object_unref0 (self->priv->edit_menu), _tmp14_); - g_signal_connect_object (self->priv->cs_list, "row-activated", (GCallback) __lambda15__gtk_tree_view_row_activated, self, 0); - g_signal_connect_object ((GtkWidget*) self->priv->cs_list, "button-press-event", (GCallback) __lambda16__gtk_widget_button_press_event, self, 0); - g_signal_connect_object (self->priv->cs_list, "cursor-changed", (GCallback) __lambda17__gtk_tree_view_cursor_changed, self, 0); + g_signal_connect_object ((_tmp9_ = gtk_builder_get_object (builder, "About"), GTK_IS_ACTION (_tmp9_) ? ((GtkAction*) _tmp9_) : NULL), "activate", (GCallback) __lambda15__gtk_action_activate, self, 0); + self->priv->cs_store = (_tmp11_ = _g_object_ref0 ((_tmp10_ = gtk_builder_get_object (builder, "cs_store"), GTK_IS_LIST_STORE (_tmp10_) ? ((GtkListStore*) _tmp10_) : NULL)), _g_object_unref0 (self->priv->cs_store), _tmp11_); + self->priv->cs_list = (_tmp13_ = _g_object_ref0 ((_tmp12_ = gtk_builder_get_object (builder, "cs_list"), GTK_IS_TREE_VIEW (_tmp12_) ? ((GtkTreeView*) _tmp12_) : NULL)), _g_object_unref0 (self->priv->cs_list), _tmp13_); + self->priv->edit_menu = (_tmp15_ = _g_object_ref0 ((_tmp14_ = gtk_builder_get_object (builder, "popup1"), GTK_IS_MENU (_tmp14_) ? ((GtkMenu*) _tmp14_) : NULL)), _g_object_unref0 (self->priv->edit_menu), _tmp15_); + g_signal_connect_object (self->priv->cs_list, "row-activated", (GCallback) __lambda16__gtk_tree_view_row_activated, self, 0); + g_signal_connect_object ((GtkWidget*) self->priv->cs_list, "button-press-event", (GCallback) __lambda17__gtk_widget_button_press_event, self, 0); + g_signal_connect_object (self->priv->cs_list, "cursor-changed", (GCallback) __lambda18__gtk_tree_view_cursor_changed, self, 0); gui_main_window_edit_set_sensitive (self, FALSE); - gtk_container_add ((GtkContainer*) self, (_tmp15_ = gtk_builder_get_object (builder, "mainbox"), GTK_IS_WIDGET (_tmp15_) ? ((GtkWidget*) _tmp15_) : NULL)); + gtk_container_add ((GtkContainer*) self, (_tmp16_ = gtk_builder_get_object (builder, "mainbox"), GTK_IS_WIDGET (_tmp16_) ? ((GtkWidget*) _tmp16_) : NULL)); g_signal_connect ((GtkObject*) self, "destroy", (GCallback) _gtk_main_quit_gtk_object_destroy, NULL); { gtk_window_set_icon_from_file ((GtkWindow*) self, "/usr/share/pixmaps/rsim.png", &_inner_error_); if (_inner_error_ != NULL) { - goto __catch4_g_error; + goto __catch5_g_error; } } - goto __finally4; - __catch4_g_error: + goto __finally5; + __catch5_g_error: { GError * e; e = _inner_error_; @@ -515,7 +565,7 @@ static GObject * gui_main_window_constructor (GType type, guint n_construct_prop _g_error_free0 (e); } } - __finally4: + __finally5: if (_inner_error_ != NULL) { _g_object_unref0 (builder); _g_object_unref0 (col); @@ -539,6 +589,7 @@ static void gui_main_window_class_init (GUIMainWindowClass * klass) { G_OBJECT_CLASS (klass)->constructor = gui_main_window_constructor; G_OBJECT_CLASS (klass)->finalize = gui_main_window_finalize; gui_main_window_xml_ui = g_strdup ("\n <?xml version=\"1.0\"?>\n <interface>\n <requires lib=\"gtk+\" version=\"2.16\"/>\n <!-- interface-naming-policy project-wide -->\n <object class=\"GtkUIManager\" id=\"uimanager1\">\n <child>\n <object class=\"GtkActionGroup\" id=\"actiongroup1\">\n <child>\n <object class=\"GtkAction\" id=\"New\">\n <property name=\"name\">New</property>\n <property name=\"stock_id\">gtk-new</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"Open\">\n <property name=\"name\">Open</property>\n <property name=\"stock_id\">gtk-open</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"Save\">\n <property name=\"name\">Save</property>\n <property name=\"stock_id\">gtk-save</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"SaveAs\">\n <property name=\"name\">SaveAs</property>\n <property name=\"stock_id\">gtk-save-as</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"Quit\">\n <property name=\"name\">Quit</property>\n <property name=\"stock_id\">gtk-quit</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"ViewCS\">\n <property name=\"name\">ViewCS</property>\n <property name=\"label\">_View CS</property>\n <property name=\"tooltip\">View the selected command stream.</property>\n <property name=\"icon_name\">gtk-open</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"RemoveCS\">\n <property name=\"name\">RemoveCS</property>\n <property name=\"label\">_Remove CS</property>\n <property name=\"tooltip\">Remove the selected command stream from the current project.</property>\n <property name=\"icon_name\">gtk-delete</property>\n </object>\n <accelerator key=\"Delete\"/>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"ImportCS\">\n <property name=\"name\">ImportCS</property>\n <property name=\"label\">_Import CS</property>\n <property name=\"tooltip\">Import a new command stream to the current project.</property>\n <property name=\"icon_name\">gtk-add</property>\n </object>\n <accelerator key=\"i\" modifiers=\"GDK_CONTROL_MASK\"/>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"ExportCS\">\n <property name=\"name\">ExportCS</property>\n <property name=\"label\">_Export CS</property>\n <property name=\"tooltip\">Export the selected command stream to a file.</property>\n <property name=\"icon_name\">gtk-convert</property>\n </object>\n <accelerator key=\"e\" modifiers=\"GDK_CONTROL_MASK\"/>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"About\">\n <property name=\"name\">About</property>\n <property name=\"stock_id\">gtk-about</property>\n </object>\n <accelerator key=\"F1\"/>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"FileMenu\">\n <property name=\"name\">FileMenu</property>\n <property name=\"label\" translatable=\"yes\">_File</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"EditMenu\">\n <property name=\"name\">EditMenu</property>\n <property name=\"label\" translatable=\"yes\">_Edit</property>\n </object>\n </child>\n <child>\n <object class=\"GtkAction\" id=\"HelpMenu\">\n <property name=\"name\">HelpMenu</property>\n <property name=\"label\" translatable=\"yes\">_Help</property>\n </object>\n </child>\n </object>\n </child>\n <ui>\n <menubar name=\"menubar1\">\n <menu action=\"FileMenu\" name=\"FileMenu\">\n <menuitem action=\"New\" name=\"New\"/>\n <menuitem action=\"Open\" name=\"Open\"/>\n <menuitem action=\"Save\" name=\"Save\"/>\n <menuitem action=\"SaveAs\" name=\"SaveAs\"/>\n <separator/>\n <menuitem action=\"Quit\" name=\"Quit\"/>\n </menu>\n <menu action=\"EditMenu\" name=\"EditMenu\">\n <menuitem action=\"ViewCS\" name=\"ViewCS\"/>\n <menuitem action=\"ImportCS\" name=\"ImportCS\"/>\n <menuitem action=\"ExportCS\" name=\"ExportCS\"/>\n <separator/>\n <menuitem action=\"RemoveCS\" name=\"RemoveCS\"/>\n </menu>\n <menu action=\"HelpMenu\" name=\"HelpMenu\">\n <menuitem action=\"About\" name=\"About\"/>\n </menu>\n </menubar>\n <toolbar name=\"toolbar1\">\n <toolitem action=\"New\" name=\"New\"/>\n <toolitem action=\"Open\" name=\"Open\"/>\n <toolitem action=\"Save\" name=\"Save\"/>\n <separator/>\n <toolitem action=\"ImportCS\" name=\"ImportCS\"/>\n <toolitem action=\"ExportCS\" name=\"ExportCS\"/>\n <separator/>\n <toolitem action=\"RemoveCS\" name=\"RemoveCS\"/>\n </toolbar>\n <popup name=\"popup1\">\n <menuitem action=\"ViewCS\" name=\"ViewCS\"/>\n <menuitem action=\"ExportCS\" name=\"ExportCS\"/>\n <separator/>\n <menuitem action=\"RemoveCS\" name=\"RemoveCS\"/>\n </popup>\n </ui>\n </object>\n <object class=\"GtkVBox\" id=\"mainbox\">\n <property name=\"visible\">True</property>\n <property name=\"orientation\">vertical</property>\n <child>\n <object constructor=\"uimanager1\" class=\"GtkMenuBar\" id=\"menubar1\">\n <property name=\"visible\">True</property>\n <child internal-child=\"accessible\">\n <object class=\"AtkObject\" id=\"a11y-menubar\">\n <property name=\"AtkObject::accessible-name\">The menubar</property>\n </object>\n </child>\n </object>\n <packing>\n <property name=\"expand\">False</property>\n </packing>\n </child>\n <child>\n <object constructor=\"uimanager1\" class=\"GtkToolbar\" id=\"toolbar1\">\n <property name=\"visible\">True</property>\n <child internal-child=\"accessible\">\n <object class=\"AtkObject\" id=\"a11y-toolbar\">\n <property name=\"AtkObject::accessible-name\">The toolbar</property>\n </object>\n </child>\n </object>\n <packing>\n <property name=\"expand\">False</property>\n <property name=\"position\">1</property>\n </packing>\n </child>\n <child>\n <object class=\"GtkScrolledWindow\" id=\"scrolledwindow1\">\n <property name=\"visible\">True</property>\n <property name=\"can_focus\">True</property>\n <property name=\"hscrollbar_policy\">automatic</property>\n <property name=\"vscrollbar_policy\">automatic</property>\n <child>\n <object class=\"GtkTreeView\" id=\"cs_list\">\n <property name=\"visible\">True</property>\n <property name=\"can_focus\">True</property>\n <property name=\"reorderable\">True</property>\n <property name=\"model\">cs_store</property>\n <child>\n <object class=\"GtkTreeViewColumn\" id=\"pkts_column\">\n <property name=\"title\">Packets</property>\n <child>\n <object class=\"GtkCellRendererText\" id=\"pkts_cell\"/>\n </child>\n </object>\n </child>\n <child>\n <object class=\"GtkTreeViewColumn\" id=\"treeviewcolumn1\">\n <property name=\"title\">Name</property>\n <child>\n <object class=\"GtkCellRendererText\" id=\"cellrenderertext1\"/>\n <attributes>\n <attribute name=\"text\">0</attribute>\n </attributes>\n </child>\n </object>\n </child>\n </object>\n </child>\n </object>\n <packing>\n <property name=\"position\">2</property>\n </packing>\n </child>\n </object>\n <object class=\"GtkListStore\" id=\"cs_store\">\n <columns>\n <!-- column-name Name -->\n <column type=\"gchararray\"/>\n <!-- column-name CS -->\n <column type=\"GObject\"/>\n </columns>\n </object>\n <object constructor=\"uimanager1\" class=\"GtkMenu\" id=\"popup1\">\n <child internal-child=\"accessible\">\n <object class=\"AtkObject\" id=\"a11y-popup\">\n <property name=\"AtkObject::accessible-name\">The popup menu</property>\n </object>\n </child>\n </object>\n </interface>\n "); + gui_main_window_about_xml_ui = g_strdup ("\n <?xml version=\"1.0\"?>\n <interface>\n <requires lib=\"gtk+\" version=\"2.16\"/>\n <!-- interface-naming-policy project-wide -->\n <object class=\"GtkAboutDialog\" id=\"about_dialog\">\n <property name=\"border_width\">5</property>\n <property name=\"type_hint\">normal</property>\n <property name=\"skip_taskbar_hint\">True</property>\n <property name=\"has_separator\">False</property>\n <property name=\"program_name\">Radeon Simulator</property>\n <property name=\"copyright\" translatable=\"yes\">Copyright © 2010 Joakim Sindholt</property>\n <property name=\"comments\" translatable=\"yes\">A simulator for Radeon GPUs</property>\n <property name=\"website\">http://cgit.freedesktop.org/~jsindholt/rsim</property>\n <property name=\"license\" translatable=\"yes\">This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.</property>\n <property name=\"authors\">Joakim Sindholt <opensource@zhasha.com></property>\n <property name=\"logo\">/usr/share/pixmaps/rsim.png</property>\n <property name=\"wrap_license\">True</property>\n <child internal-child=\"vbox\">\n <object class=\"GtkVBox\" id=\"dialog-vbox1\">\n <property name=\"visible\">True</property>\n <property name=\"orientation\">vertical</property>\n <property name=\"spacing\">2</property>\n <child internal-child=\"action_area\">\n <object class=\"GtkHButtonBox\" id=\"dialog-action_area1\">\n <property name=\"visible\">True</property>\n <property name=\"layout_style\">end</property>\n </object>\n <packing>\n <property name=\"expand\">False</property>\n <property name=\"pack_type\">end</property>\n <property name=\"position\">0</property>\n </packing>\n </child>\n </object>\n </child>\n </object>\n </interface>\n "); } |