static void windows_menu_dock_window_added (GimpDialogFactory *factory, GimpDockWindow *dock_window, GimpUIManager *manager) { const gchar *ui_path; gchar *action_name; gchar *action_path; gchar *merge_key; guint merge_id; ui_path = g_object_get_data (G_OBJECT (manager), "image-menu-ui-path"); action_name = windows_actions_dock_window_to_action_name (dock_window); action_path = g_strdup_printf ("%s/Windows/Docks", ui_path); merge_key = windows_menu_dock_window_to_merge_id (dock_window); merge_id = gtk_ui_manager_new_merge_id (GTK_UI_MANAGER (manager)); g_object_set_data (G_OBJECT (manager), merge_key, GUINT_TO_POINTER (merge_id)); gtk_ui_manager_add_ui (GTK_UI_MANAGER (manager), merge_id, action_path, action_name, action_name, GTK_UI_MANAGER_MENUITEM, FALSE); g_free (merge_key); g_free (action_path); g_free (action_name); }
static void windows_menu_dock_window_removed (GimpDialogFactory *factory, GimpDockWindow *dock_window, GimpUIManager *manager) { gchar *merge_key = windows_menu_dock_window_to_merge_id (dock_window); guint merge_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (manager), merge_key)); if (merge_id) gtk_ui_manager_remove_ui (GTK_UI_MANAGER (manager), merge_id); g_object_set_data (G_OBJECT (manager), merge_key, NULL); g_free (merge_key); }
static void windows_menu_dock_window_added (GimpDialogFactory *factory, GimpDockWindow *dock_window, GimpUIManager *manager) { const gchar *ui_path; gchar *action_name; gchar *action_path; gchar *merge_key; guint merge_id; ui_path = g_object_get_data (G_OBJECT (manager), "image-menu-ui-path"); action_name = windows_actions_dock_window_to_action_name (dock_window); action_path = g_strdup_printf ("%s/Windows/Docks", ui_path); merge_key = windows_menu_dock_window_to_merge_id (dock_window); merge_id = gtk_ui_manager_new_merge_id (GTK_UI_MANAGER (manager)); g_object_set_data (G_OBJECT (manager), merge_key, GUINT_TO_POINTER (merge_id)); gtk_ui_manager_add_ui (GTK_UI_MANAGER (manager), merge_id, action_path, action_name, action_name, GTK_UI_MANAGER_MENUITEM, FALSE); /* There can only be one toolbox around, so if a new is created, * make sure to remove any toolbox entries from Recenly Closed Docks */ if (windows_menu_is_toolbox_dock_window (dock_window)) windows_menu_remove_toolbox_entries (global_recent_docks); g_free (merge_key); g_free (action_path); g_free (action_name); }