void plug_in_actions_setup (GimpActionGroup *group) { GimpPlugInManager *manager = group->gimp->plug_in_manager; GSList *list; gimp_action_group_add_actions (group, "plug-in-action", plug_in_actions, G_N_ELEMENTS (plug_in_actions)); for (list = gimp_plug_in_manager_get_menu_branches (manager); list; list = g_slist_next (list)) { GimpPlugInMenuBranch *branch = list->data; plug_in_actions_menu_branch_added (manager, branch->file, branch->menu_path, branch->menu_label, group); } g_signal_connect_object (manager, "menu-branch-added", G_CALLBACK (plug_in_actions_menu_branch_added), group, 0); for (list = manager->plug_in_procedures; list; list = g_slist_next (list)) { GimpPlugInProcedure *plug_in_proc = list->data; if (plug_in_proc->file) plug_in_actions_register_procedure (group->gimp->pdb, GIMP_PROCEDURE (plug_in_proc), group); } g_signal_connect_object (group->gimp->pdb, "register-procedure", G_CALLBACK (plug_in_actions_register_procedure), group, 0); g_signal_connect_object (group->gimp->pdb, "unregister-procedure", G_CALLBACK (plug_in_actions_unregister_procedure), group, 0); }
void plug_in_actions_setup (GimpActionGroup *group) { GimpPlugInActionEntry *entries; GSList *list; gint n_entries; gint i; gimp_action_group_add_actions (group, plug_in_actions, G_N_ELEMENTS (plug_in_actions)); gimp_action_group_add_enum_actions (group, plug_in_repeat_actions, G_N_ELEMENTS (plug_in_repeat_actions), G_CALLBACK (plug_in_repeat_cmd_callback)); for (list = group->gimp->plug_in_manager->menu_branches; list; list = g_slist_next (list)) { GimpPlugInMenuBranch *branch = list->data; plug_in_actions_menu_branch_added (group->gimp->plug_in_manager, branch->prog_name, branch->menu_path, branch->menu_label, group); } g_signal_connect_object (group->gimp->plug_in_manager, "menu-branch-added", G_CALLBACK (plug_in_actions_menu_branch_added), group, 0); for (list = group->gimp->plug_in_manager->plug_in_procedures; list; list = g_slist_next (list)) { GimpPlugInProcedure *plug_in_proc = list->data; if (plug_in_proc->prog) plug_in_actions_register_procedure (group->gimp->pdb, GIMP_PROCEDURE (plug_in_proc), group); } g_signal_connect_object (group->gimp->pdb, "register-procedure", G_CALLBACK (plug_in_actions_register_procedure), group, 0); g_signal_connect_object (group->gimp->pdb, "unregister-procedure", G_CALLBACK (plug_in_actions_unregister_procedure), group, 0); n_entries = gimp_plug_in_manager_history_size (group->gimp->plug_in_manager); entries = g_new0 (GimpPlugInActionEntry, n_entries); for (i = 0; i < n_entries; i++) { entries[i].name = g_strdup_printf ("plug-in-recent-%02d", i + 1); entries[i].stock_id = NULL; entries[i].label = ""; entries[i].accelerator = ""; entries[i].tooltip = NULL; entries[i].procedure = NULL; entries[i].help_id = GIMP_HELP_FILTER_RESHOW; } gimp_action_group_add_plug_in_actions (group, entries, n_entries, G_CALLBACK (plug_in_history_cmd_callback)); for (i = 0; i < n_entries; i++) { gimp_action_group_set_action_visible (group, entries[i].name, FALSE); g_free ((gchar *) entries[i].name); } g_free (entries); g_signal_connect_object (group->gimp->plug_in_manager, "history-changed", G_CALLBACK (plug_in_actions_history_changed), group, 0); plug_in_actions_history_changed (group->gimp->plug_in_manager, group); }