GtkWidget * dialogs_get_toolbox (void) { GList *list; g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (gimp_dialog_factory_get_singleton ()), NULL); for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ()); list; list = g_list_next (list)) { if (GIMP_IS_DOCK_WINDOW (list->data) && gimp_dock_window_has_toolbox (list->data)) return list->data; } return NULL; }
void windows_menu_setup (GimpUIManager *manager, const gchar *ui_path) { GList *list; g_return_if_fail (GIMP_IS_UI_MANAGER (manager)); g_return_if_fail (ui_path != NULL); g_object_set_data (G_OBJECT (manager), "image-menu-ui-path", (gpointer) ui_path); g_signal_connect_object (manager->gimp->displays, "add", G_CALLBACK (windows_menu_display_add), manager, 0); g_signal_connect_object (manager->gimp->displays, "remove", G_CALLBACK (windows_menu_display_remove), manager, 0); g_signal_connect_object (manager->gimp->displays, "reorder", G_CALLBACK (windows_menu_display_reorder), manager, 0); for (list = gimp_get_display_iter (manager->gimp); list; list = g_list_next (list)) { GimpDisplay *display = list->data; windows_menu_display_add (manager->gimp->displays, display, manager); } g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-added", G_CALLBACK (windows_menu_dock_window_added), manager, 0); g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-removed", G_CALLBACK (windows_menu_dock_window_removed), manager, 0); for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ()); list; list = g_list_next (list)) { GimpDockWindow *dock_window = list->data; if (GIMP_IS_DOCK_WINDOW (dock_window)) windows_menu_dock_window_added (gimp_dialog_factory_get_singleton (), dock_window, manager); } g_signal_connect_object (global_recent_docks, "add", G_CALLBACK (windows_menu_recent_add), manager, 0); g_signal_connect_object (global_recent_docks, "remove", G_CALLBACK (windows_menu_recent_remove), manager, 0); for (list = g_list_last (GIMP_LIST (global_recent_docks)->queue->head); list; list = g_list_previous (list)) { GimpSessionInfo *info = list->data; windows_menu_recent_add (global_recent_docks, info, manager); } }
void windows_actions_setup (GimpActionGroup *group) { GList *list; gimp_action_group_add_actions (group, "windows-action", windows_actions, G_N_ELEMENTS (windows_actions)); gimp_action_group_add_toggle_actions (group, "windows-action", windows_toggle_actions, G_N_ELEMENTS (windows_toggle_actions)); gimp_action_group_set_action_hide_empty (group, "windows-docks-menu", FALSE); g_signal_connect_object (group->gimp->displays, "add", G_CALLBACK (windows_actions_display_add), group, 0); g_signal_connect_object (group->gimp->displays, "remove", G_CALLBACK (windows_actions_display_remove), group, 0); for (list = gimp_get_display_iter (group->gimp); list; list = g_list_next (list)) { GimpDisplay *display = list->data; windows_actions_display_add (group->gimp->displays, display, group); } g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-added", G_CALLBACK (windows_actions_dock_window_added), group, 0); g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-removed", G_CALLBACK (windows_actions_dock_window_removed), group, 0); for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ()); list; list = g_list_next (list)) { GimpDockWindow *dock_window = list->data; if (GIMP_IS_DOCK_WINDOW (dock_window)) windows_actions_dock_window_added (gimp_dialog_factory_get_singleton (), dock_window, group); } g_signal_connect_object (global_recent_docks, "add", G_CALLBACK (windows_actions_recent_add), group, 0); g_signal_connect_object (global_recent_docks, "remove", G_CALLBACK (windows_actions_recent_remove), group, 0); for (list = GIMP_LIST (global_recent_docks)->list; list; list = g_list_next (list)) { GimpSessionInfo *info = list->data; windows_actions_recent_add (global_recent_docks, info, group); } g_signal_connect_object (group->gimp->config, "notify::single-window-mode", G_CALLBACK (windows_actions_single_window_mode_notify), group, 0); }