/** * gva_audit_init: * * Initializes the ROM audit window. * * This function should be called once when the application starts. **/ void gva_audit_init (void) { GtkTreeViewColumn *column; GtkTreeView *view; view = GTK_TREE_VIEW (GVA_WIDGET_AUDIT_TREE_VIEW); column = gva_columns_new_from_id (GVA_GAME_STORE_COLUMN_DESCRIPTION); gtk_tree_view_append_column (view, column); gtk_action_connect_proxy ( GVA_ACTION_SAVE_ERRORS, GVA_WIDGET_AUDIT_SAVE_BUTTON); }
GtkWidget * yui_scudsp_new(YuiWindow * y) { GtkWidget * dialog; GClosure *closureF7; GtkAccelGroup *accelGroup; const scucodebreakpoint_struct *cbp; gint i; yui = y; if ( yui_scudsp ) return GTK_WIDGET(yui_scudsp); dialog = GTK_WIDGET(g_object_new(yui_scudsp_get_type(), NULL)); yui_scudsp = YUI_SCUDSP(dialog); if (!( yui->state & YUI_IS_INIT )) { yui_window_run(yui); yui_window_pause(yui); } ScuDspSetBreakpointCallBack(&yui_scudsp_breakpoint_handler); for (i = 0; i < 23 ; i++) { GtkTreeIter iter; gtk_list_store_append( GTK_LIST_STORE( yui_scudsp->regListStore ), &iter ); } cbp = ScuDspGetBreakpointList(); for (i = 0; i < MAX_BREAKPOINTS; i++) { GtkTreeIter iter; yui_scudsp->cbp[i] = cbp[i].addr; gtk_list_store_append( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter ); if (cbp[i].addr != 0xFFFFFFFF) { gchar tempstr[20]; sprintf(tempstr, "%08X", (int)cbp[i].addr); gtk_list_store_set( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter, 0, tempstr, -1 ); } else gtk_list_store_set( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter, 0, "<empty>", -1 ); } { GtkWidget * but2, * but3, * but4; yui_scudsp->buttonStep = gtk_button_new_with_label( "Step [F7]" ); gtk_box_pack_start( GTK_BOX( yui_scudsp->hbox ), yui_scudsp->buttonStep, FALSE, FALSE, 2 ); g_signal_connect( yui_scudsp->buttonStep, "clicked", G_CALLBACK(yui_scudsp_step), yui_scudsp ); but2 = gtk_button_new(); gtk_action_connect_proxy(gtk_action_group_get_action(yui->action_group, "run"), but2); gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but2, FALSE, FALSE, 2); but3 = gtk_button_new(); gtk_action_connect_proxy(gtk_action_group_get_action(yui->action_group, "pause"), but3); gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but3, FALSE, FALSE, 2); but4 = gtk_button_new_from_stock("gtk-close"); g_signal_connect_swapped(but4, "clicked", G_CALLBACK(yui_scudsp_destroy), dialog); gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but4, FALSE, FALSE, 2); } yui_scudsp->paused_handler = g_signal_connect_swapped(yui, "paused", G_CALLBACK(yui_scudsp_update), yui_scudsp); yui_scudsp->running_handler = g_signal_connect_swapped(yui, "running", G_CALLBACK(yui_scudsp_clear), yui_scudsp); accelGroup = gtk_accel_group_new (); closureF7 = g_cclosure_new (G_CALLBACK (yui_scudsp_step), yui_scudsp, NULL); gtk_accel_group_connect( accelGroup, GDK_F7, 0, 0, closureF7 ); gtk_window_add_accel_group( GTK_WINDOW( dialog ), accelGroup ); yui_scudsp_update(yui_scudsp); if ( yui->state & YUI_IS_RUNNING ) yui_scudsp_clear(yui_scudsp); gtk_widget_show_all(GTK_WIDGET(yui_scudsp)); return dialog; }
/** * gva_main_init: * * Initializes the main window. * * This function should be called once when the application starts. **/ void gva_main_init (void) { gchar *text; gva_tree_view_init (); gtk_box_pack_start ( GTK_BOX (GVA_WIDGET_MAIN_VBOX), gva_ui_get_managed_widget ("/main-menu"), FALSE, FALSE, 0); gtk_action_connect_proxy ( GVA_ACTION_VIEW_AVAILABLE, GVA_WIDGET_MAIN_VIEW_BUTTON_0); gtk_action_connect_proxy ( GVA_ACTION_VIEW_FAVORITES, GVA_WIDGET_MAIN_VIEW_BUTTON_1); gtk_action_connect_proxy ( GVA_ACTION_VIEW_RESULTS, GVA_WIDGET_MAIN_VIEW_BUTTON_2); gtk_action_connect_proxy ( GVA_ACTION_PROPERTIES, GVA_WIDGET_MAIN_PROPERTIES_BUTTON); gtk_action_connect_proxy ( GVA_ACTION_START, GVA_WIDGET_MAIN_START_GAME_BUTTON); gtk_widget_set_sensitive ( GVA_WIDGET_MAIN_MUTE_BUTTON, gva_mame_supports_sound ()); gconf_bridge_bind_property ( gconf_bridge_get (), GVA_GCONF_SOUND_MUTED, G_OBJECT (GVA_WIDGET_MAIN_MUTE_BUTTON), "muted"); gconf_bridge_bind_window ( gconf_bridge_get (), GVA_GCONF_WINDOW_PREFIX, GTK_WINDOW (GVA_WIDGET_MAIN_WINDOW), TRUE, FALSE); /* Initialize the search entry. */ text = gva_main_get_last_search_text (); gtk_entry_set_text (GTK_ENTRY (GVA_WIDGET_MAIN_SEARCH_ENTRY), text); g_free (text); #if !GTK_CHECK_VERSION(2,14,0) && !defined WITH_GNOME /* Requires that we link against libgnome. */ gtk_action_set_sensitive (GVA_ACTION_CONTENTS, FALSE); #endif gtk_action_set_sensitive (GVA_ACTION_PROPERTIES, FALSE); gtk_action_set_sensitive (GVA_ACTION_RECORD, FALSE); gtk_action_set_sensitive (GVA_ACTION_SEARCH, FALSE); gtk_action_set_sensitive (GVA_ACTION_SHOW_CLONES, FALSE); gtk_action_set_sensitive (GVA_ACTION_START, FALSE); gtk_action_set_sensitive (GVA_ACTION_VIEW_AVAILABLE, FALSE); gtk_action_set_sensitive (GVA_ACTION_VIEW_FAVORITES, FALSE); gtk_action_set_sensitive (GVA_ACTION_VIEW_RESULTS, FALSE); gtk_action_set_visible (GVA_ACTION_INSERT_FAVORITE, FALSE); gtk_action_set_visible (GVA_ACTION_REMOVE_FAVORITE, FALSE); gtk_window_present (GTK_WINDOW (GVA_WIDGET_MAIN_WINDOW)); }
GtkWidget * build_root_selection_frame(ASFileBrowserRootSelFrame *data, GtkWidget *dirlist) { GtkTable *table; GtkWidget *btn ; GtkActionGroup *action_group ; GtkWidget *path_combo ; GtkWidget *path_entry = NULL; GtkWidget* file_chooser_btn ; #define ROOT_SELECTION_ENTRIES_NUM 6 static GtkRadioActionEntry root_sel_entries[ROOT_SELECTION_ENTRIES_NUM] = { {"root_PrivateAfterStep", NULL, "Private AfterStep", NULL, "Private directory conmtaining AfterStep files. Typically ~/.afterstep", root_PrivateAfterStep}, {"root_SharedAfterStep", NULL, "Shared AfterStep" , NULL, "System-wide shared directory conmtaining AfterStep files. Typically /usr/local/share/afterstep", root_SharedAfterStep}, {"root_Home", NULL, "Home" , NULL, "Private Home directory", root_Home}, {"root_UsrShare", NULL, "/usr/share" , NULL, "System-wide shared files directory /usr/share", root_UsrShare}, {"root_UsrLocalShare", NULL, "/usr/local/share" , NULL, "System-wide shared files directory /usr/local/share", root_UsrLocalShare}, {"root_Other", NULL, "Other : " , NULL, "Custom location in the filesystem tree", root_Other}, } ; int root_sel_cells[ROOT_SELECTION_ENTRIES_NUM][4] = { {0, 1, 0, 1}, {1, 2, 0, 1}, {2, 3, 0, 1}, {3, 4, 0, 1}, {4, 5, 0, 1}, {0, 1, 1, 2} }; int i ; GtkWidget *frame = gtk_frame_new( NULL ); GtkWidget *hbox = gtk_hbox_new( FALSE, 0 ); GtkWidget *label = gtk_label_new( "Select directory tree to browse : "); GtkWidget *checkbox = gtk_check_button_new_with_label( "( hide and show entire filesystem )" ); gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 5); gtk_box_pack_end (GTK_BOX (hbox), checkbox, TRUE, TRUE, 5); gtk_widget_show_all (hbox); gtk_widget_show (hbox); gtk_frame_set_label_widget( GTK_FRAME(frame), hbox ); table = GTK_TABLE(gtk_table_new( 5, 2, FALSE )); g_signal_connect ((gpointer) checkbox, "clicked", G_CALLBACK (on_hide_contents_toggle), data); gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET(table)); gtk_container_set_border_width( GTK_CONTAINER (frame), 5 ); gtk_container_set_border_width( GTK_CONTAINER (table), 5 ); gtk_table_set_row_spacings( table, 5 ); gtk_table_set_col_spacings( table, 5 ); action_group = gtk_action_group_new( "RootSelection" ); gtk_action_group_add_radio_actions( action_group, root_sel_entries, ROOT_SELECTION_ENTRIES_NUM, root_PrivateAfterStep, G_CALLBACK(root_selection_changed), data ); for( i = 0 ; i < ROOT_SELECTION_ENTRIES_NUM ; ++i ) { btn = gtk_toggle_button_new_with_label(root_sel_entries[i].name); gtk_table_attach_defaults (table, btn, root_sel_cells[i][0], root_sel_cells[i][1], root_sel_cells[i][2], root_sel_cells[i][3]); gtk_action_connect_proxy(gtk_action_group_get_action(action_group,root_sel_entries[i].name), btn ); } path_combo = gtk_combo_box_entry_new_text(); colorize_gtk_edit(path_combo); file_chooser_btn = gtk_button_new_with_label( "Browse" ); colorize_gtk_edit(path_combo); hbox = gtk_hbox_new( FALSE, 0 ); gtk_box_pack_start (GTK_BOX (hbox), path_combo, TRUE, TRUE, 0); gtk_box_pack_end (GTK_BOX (hbox), file_chooser_btn, FALSE, FALSE, 0); gtk_widget_show_all (hbox); gtk_table_attach_defaults (table, hbox, 1, 5, 1, 2 ); if( GTK_IS_CONTAINER(path_combo) ) gtk_container_forall( GTK_CONTAINER(path_combo), find_combobox_entry, &path_entry ); /* if above succeeded then path_entry should be not NULL here : */ /* TODO : insert proper change handlers and data pointers here : */ if( path_entry ) g_signal_connect ( G_OBJECT (path_entry), "activate", G_CALLBACK (NULL), (gpointer) NULL); g_signal_connect (G_OBJECT(path_combo), "changed", G_CALLBACK (NULL), (gpointer) NULL); gtk_widget_show_all (GTK_WIDGET(table)); gtk_widget_show (GTK_WIDGET(table)); gtk_widget_set_size_request ( frame, -1, -1); colorize_gtk_widget( frame, get_colorschemed_style_normal() ); data->table = GTK_WIDGET(table) ; data->action_group = action_group ; data->path_combo = path_combo ; data->path_entry = path_entry ; data->file_chooser_btn = file_chooser_btn ; data->target_dirlist = dirlist ; return frame; }
int get_actions_page (ThunarxProviderFactory* f, GList *flist, gboolean dirs_as_files, GtkWindow *win, const char *class_name, GtkWidget **page, char *title, int tlen) { GList *ps, *lp, *files, *dirs, *fas, *das, *as; GtkWidget *vbox; files = NULL; dirs = NULL; if (! dirs_as_files) { for (flist; flist != NULL; flist = flist->next) { if (thunarx_file_info_is_directory(THUNARX_FILE_INFO(flist->data))) { dirs = g_list_append(dirs, flist->data); } else { files = g_list_append(files, flist->data); } } } else { files = flist; } ps = thunarx_provider_factory_list_providers(f, THUNARX_TYPE_MENU_PROVIDER); snprintf(title, tlen, "Choose an action for the %i selected object(s)\n", g_list_length(files) + g_list_length(dirs)); *page = gtk_frame_new (title); gtk_container_set_border_width (GTK_CONTAINER(*page), 10); vbox = gtk_vbox_new(TRUE, 10); gtk_container_set_border_width (GTK_CONTAINER(vbox), 10); gtk_container_add(GTK_CONTAINER(*page), GTK_WIDGET(vbox)); fas = NULL; das = NULL; for (lp = ps; lp != NULL; lp = lp->next) { GList *dp, *as; if (strncmp(class_name, G_OBJECT_TYPE_NAME(lp->data), 256) == 0) { as = thunarx_menu_provider_get_file_actions(lp->data, GTK_WIDGET(win), files); fas = g_list_merge(fas, as); for (dp = dirs; dp != NULL; dp = dp->next) { GList *as; as = thunarx_menu_provider_get_folder_actions(lp->data, GTK_WIDGET(win), dp->data); das = g_list_merge(das, as); g_list_foreach (as, (GFunc) g_object_unref, NULL); g_list_free (as); } g_list_foreach (as, (GFunc) g_object_unref, NULL); g_list_free (as); } } g_list_foreach (ps, (GFunc) g_object_unref, NULL); g_list_free (ps); fas = g_list_merge(fas, das); g_list_foreach (das, (GFunc) g_object_unref, NULL); g_list_free (das); if (g_list_length(fas) > 0) { GList *ap; for (ap = fas; ap != NULL; ap = ap->next) { GtkWidget *b; b = gtk_button_new (); gtk_action_connect_proxy (GTK_ACTION(ap->data), b); gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(b)); g_signal_connect_object (G_OBJECT(b), "clicked", G_CALLBACK(gtk_widget_destroy), win, G_CONNECT_AFTER | G_CONNECT_SWAPPED); } return 1; } else { gtk_container_add(GTK_CONTAINER(vbox), gtk_label_new ("No actions available")); return 1; } }
static VALUE rg_connect_proxy(VALUE self, VALUE proxy) { gtk_action_connect_proxy(_SELF(self), RVAL2WIDGET(proxy)); return self; }