static void create_mainwindow_menus_and_items(GSList *filenames, gint num_entries) { MainWindow *mainwin; gint ii; GSList *walk; GtkActionEntry *entries; /* create menu items */ entries = g_new0(GtkActionEntry, num_entries); ii = 0; mainwin = mainwindow_get_mainwindow(); for(walk = filenames; walk; walk = walk->next) { entries[ii].name = g_strconcat(PYTHON_SCRIPTS_ACTION_PREFIX, walk->data, NULL); entries[ii].label = walk->data; entries[ii].callback = G_CALLBACK(python_mainwin_script_callback); gtk_action_group_add_actions(mainwin->action_group, &(entries[ii]), 1, (gpointer)entries[ii].name); ii++; } for(ii = 0; ii < num_entries; ii++) { guint id; python_mainwin_scripts_names = g_slist_prepend(python_mainwin_scripts_names, g_strdup(entries[ii].label)); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/" PYTHON_SCRIPTS_ACTION_PREFIX, entries[ii].label, entries[ii].name, GTK_UI_MANAGER_MENUITEM, id) python_mainwin_scripts_id_list = g_slist_prepend(python_mainwin_scripts_id_list, GUINT_TO_POINTER(id)); prefs_toolbar_register_plugin_item(TOOLBAR_MAIN, "Python", entries[ii].label, mainwin_toolbar_callback, NULL); } g_free(entries); }
static int python_menu_init(char **error) { MainWindow *mainwin; guint id; mainwin = mainwindow_get_mainwindow(); if(!mainwin) { *error = g_strdup("Could not get main window"); return 0; } gtk_action_group_add_toggle_actions(mainwin->action_group, mainwindow_tools_python_toggle, 1, mainwin); gtk_action_group_add_actions(mainwin->action_group, mainwindow_tools_python_actions, 3, mainwin); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools", "ShowPythonConsole", "Tools/ShowPythonConsole", GTK_UI_MANAGER_MENUITEM, id) menu_id_list = g_slist_prepend(menu_id_list, GUINT_TO_POINTER(id)); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools", "PythonScripts", "Tools/PythonScripts", GTK_UI_MANAGER_MENU, id) menu_id_list = g_slist_prepend(menu_id_list, GUINT_TO_POINTER(id)); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools/PythonScripts", "Refresh", "Tools/PythonScripts/Refresh", GTK_UI_MANAGER_MENUITEM, id) menu_id_list = g_slist_prepend(menu_id_list, GUINT_TO_POINTER(id)); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools/PythonScripts", "Browse", "Tools/PythonScripts/Browse", GTK_UI_MANAGER_MENUITEM, id) menu_id_list = g_slist_prepend(menu_id_list, GUINT_TO_POINTER(id)); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools/PythonScripts", "Separator1", "Tools/PythonScripts/---", GTK_UI_MANAGER_SEPARATOR, id) menu_id_list = g_slist_prepend(menu_id_list, GUINT_TO_POINTER(id)); refresh_python_scripts_menus(NULL, NULL); return !0; }
gint plugin_init(gchar** error) { MainWindow *mainwin = mainwindow_get_mainwindow(); if (!check_plugin_version(MAKE_NUMERIC_VERSION(3,4,0,65), VERSION_NUMERIC, PLUGIN_NAME, error)) return -1; gtk_action_group_add_actions(mainwin->action_group, archiver_main_menu, 1, (gpointer)mainwin); MENUITEM_ADDUI_ID_MANAGER(mainwin->ui_manager, "/Menu/Tools", "CreateArchive", "Tools/CreateArchive", GTK_UI_MANAGER_MENUITEM, main_menu_id) archiver_prefs_init(); debug_print("archive plugin loaded\n"); return 0; }