static void update_scripts_menu (BrowserData *data) { GthMenuManager *menu_manager; GList *script_list; GList *scan; menu_manager = gth_browser_get_menu_manager (data->browser, GTH_BROWSER_MENU_MANAGER_TOOLS3); if (data->menu_merge_id != 0) gth_menu_manager_remove_entries (menu_manager, data->menu_merge_id); data->menu_merge_id = gth_menu_manager_new_merge_id (menu_manager); script_list = gth_script_file_get_scripts (gth_script_file_get ()); for (scan = script_list; scan; scan = scan->next) { GthScript *script = scan->data; char *detailed_action; if (! gth_script_is_visible (script)) continue; detailed_action = g_strdup_printf ("win.exec-script('%s')", gth_script_get_id (script)); gth_menu_manager_append_entry (menu_manager, data->menu_merge_id, gth_script_get_display_name (script), detailed_action, NULL, NULL); g_free (detailed_action); } list_tools__gth_browser_update_sensitivity_cb (data->browser); _g_object_list_unref (script_list); }
static void update_script_list (DialogData *data) { GthScriptFile *script_file; GList *script_list; g_signal_handlers_block_by_func (data->list_store, row_deleted_cb, data); gtk_list_store_clear (data->list_store); g_signal_handlers_unblock_by_func (data->list_store, row_deleted_cb, data); script_file = gth_script_file_get (); script_list = gth_script_file_get_scripts (script_file); set_script_list (data, script_list); _g_object_list_unref (script_list); }
gpointer list_tools__gth_browser_file_list_key_press_cb (GthBrowser *browser, GdkEventKey *event) { gpointer result = NULL; GList *script_list; GList *scan; script_list = gth_script_file_get_scripts (gth_script_file_get ()); for (scan = script_list; scan; scan = scan->next) { GthScript *script = scan->data; if (gth_script_get_shortcut (script) == event->keyval) { gth_browser_exec_script (browser, script); result = GINT_TO_POINTER (1); break; } } _g_object_list_unref (script_list); return result; }