summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c115
1 files changed, 83 insertions, 32 deletions
diff --git a/src/main.c b/src/main.c
index 1884836..e5fa868 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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 &#xA9; 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 &lt;http://www.gnu.org/licenses/&gt;.</property>\n <property name=\"authors\">Joakim Sindholt &lt;opensource@zhasha.com&gt;</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 ");
}