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_actions_dock_window_removed (GimpDialogFactory *factory, GimpDockWindow *dock_window, GimpActionGroup *group) { GtkAction *action; gchar *action_name = windows_actions_dock_window_to_action_name (dock_window); action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), action_name); if (action) gtk_action_group_remove_action (GTK_ACTION_GROUP (group), action); g_free (action_name); }
static void windows_actions_dock_window_notify (GimpDockWindow *dock_window, const GParamSpec *pspec, GimpActionGroup *group) { GtkAction *action; gchar *action_name; action_name = windows_actions_dock_window_to_action_name (dock_window); action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), action_name); g_free (action_name); if (action) g_object_set (action, "label", gtk_window_get_title (GTK_WINDOW (dock_window)), "tooltip", gtk_window_get_title (GTK_WINDOW (dock_window)), NULL); }
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); }
static void windows_actions_dock_window_added (GimpDialogFactory *factory, GimpDockWindow *dock_window, GimpActionGroup *group) { GtkAction *action; GimpActionEntry entry; gchar *action_name = windows_actions_dock_window_to_action_name (dock_window); entry.name = action_name; entry.stock_id = NULL; entry.label = ""; entry.accelerator = NULL; entry.tooltip = NULL; entry.callback = G_CALLBACK (windows_show_dock_cmd_callback); entry.help_id = GIMP_HELP_WINDOWS_SHOW_DOCK; gimp_action_group_add_actions (group, NULL, &entry, 1); action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), action_name); g_object_set (action, "ellipsize", PANGO_ELLIPSIZE_END, NULL); g_object_set_data (G_OBJECT (action), "dock-window", dock_window); g_free (action_name); g_signal_connect_object (dock_window, "notify::title", G_CALLBACK (windows_actions_dock_window_notify), group, 0); if (gtk_window_get_title (GTK_WINDOW (dock_window))) windows_actions_dock_window_notify (dock_window, NULL, group); }