void image_actions_setup (GimpActionGroup *group) { gimp_action_group_add_actions (group, "image-action", image_actions, G_N_ELEMENTS (image_actions)); gimp_action_group_add_radio_actions (group, "image-convert-action", image_convert_base_type_actions, G_N_ELEMENTS (image_convert_base_type_actions), NULL, 0, G_CALLBACK (image_convert_base_type_cmd_callback)); gimp_action_group_add_radio_actions (group, "image-convert-action", image_convert_precision_actions, G_N_ELEMENTS (image_convert_precision_actions), NULL, 0, G_CALLBACK (image_convert_precision_cmd_callback)); gimp_action_group_add_enum_actions (group, "image-action", image_flip_actions, G_N_ELEMENTS (image_flip_actions), G_CALLBACK (image_flip_cmd_callback)); gimp_action_group_add_enum_actions (group, "image-action", image_rotate_actions, G_N_ELEMENTS (image_rotate_actions), G_CALLBACK (image_rotate_cmd_callback)); #define SET_ALWAYS_SHOW_IMAGE(action,show) \ gimp_action_group_set_action_always_show_image (group, action, show) SET_ALWAYS_SHOW_IMAGE ("image-rotate-90", TRUE); SET_ALWAYS_SHOW_IMAGE ("image-rotate-180", TRUE); SET_ALWAYS_SHOW_IMAGE ("image-rotate-270", TRUE); #undef SET_ALWAYS_SHOW_IMAGE }
void dockable_actions_setup (GimpActionGroup *group) { gimp_action_group_add_actions (group, dockable_actions, G_N_ELEMENTS (dockable_actions)); gimp_action_group_add_toggle_actions (group, dockable_toggle_actions, G_N_ELEMENTS (dockable_toggle_actions)); gimp_action_group_add_string_actions (group, dialogs_dockable_actions, n_dialogs_dockable_actions, G_CALLBACK (dockable_add_tab_cmd_callback)); gimp_action_group_add_radio_actions (group, dockable_view_size_actions, G_N_ELEMENTS (dockable_view_size_actions), NULL, GIMP_VIEW_SIZE_MEDIUM, G_CALLBACK (dockable_view_size_cmd_callback)); gimp_action_group_add_radio_actions (group, dockable_tab_style_actions, G_N_ELEMENTS (dockable_tab_style_actions), NULL, GIMP_TAB_STYLE_PREVIEW, G_CALLBACK (dockable_tab_style_cmd_callback)); gimp_action_group_add_radio_actions (group, dockable_view_type_actions, G_N_ELEMENTS (dockable_view_type_actions), NULL, GIMP_VIEW_TYPE_LIST, G_CALLBACK (dockable_toggle_view_cmd_callback)); }
void image_actions_setup (GimpActionGroup *group) { gimp_action_group_add_actions (group, image_actions, G_N_ELEMENTS (image_actions)); gimp_action_group_add_radio_actions (group, image_convert_actions, G_N_ELEMENTS (image_convert_actions), NULL, 0, G_CALLBACK (image_convert_cmd_callback)); gimp_action_group_add_enum_actions (group, image_flip_actions, G_N_ELEMENTS (image_flip_actions), G_CALLBACK (image_flip_cmd_callback)); gimp_action_group_add_enum_actions (group, image_rotate_actions, G_N_ELEMENTS (image_rotate_actions), G_CALLBACK (image_rotate_cmd_callback)); }
void view_actions_setup (GimpActionGroup *group) { GtkAction *action; gimp_action_group_add_actions (group, "view-action", view_actions, G_N_ELEMENTS (view_actions)); gimp_action_group_add_toggle_actions (group, "view-action", view_toggle_actions, G_N_ELEMENTS (view_toggle_actions)); gimp_action_group_add_enum_actions (group, "view-zoom-action", view_zoom_actions, G_N_ELEMENTS (view_zoom_actions), G_CALLBACK (view_zoom_cmd_callback)); gimp_action_group_add_radio_actions (group, "view-zoom-action", view_zoom_explicit_actions, G_N_ELEMENTS (view_zoom_explicit_actions), NULL, 10000, G_CALLBACK (view_zoom_explicit_cmd_callback)); gimp_action_group_add_enum_actions (group, "view-padding-color", view_padding_color_actions, G_N_ELEMENTS (view_padding_color_actions), G_CALLBACK (view_padding_color_cmd_callback)); gimp_action_group_add_enum_actions (group, NULL, view_scroll_horizontal_actions, G_N_ELEMENTS (view_scroll_horizontal_actions), G_CALLBACK (view_scroll_horizontal_cmd_callback)); gimp_action_group_add_enum_actions (group, NULL, view_scroll_vertical_actions, G_N_ELEMENTS (view_scroll_vertical_actions), G_CALLBACK (view_scroll_vertical_cmd_callback)); /* connect "activate" of view-zoom-other manually so it can be * selected even if it's the active item of the radio group */ action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), "view-zoom-other"); g_signal_connect (action, "activate", G_CALLBACK (view_zoom_other_cmd_callback), group->user_data); g_signal_connect_object (group->gimp->config, "notify::check-type", G_CALLBACK (view_actions_check_type_notify), group, 0); view_actions_check_type_notify (GIMP_DISPLAY_CONFIG (group->gimp->config), NULL, group); if (GIMP_IS_IMAGE_WINDOW (group->user_data) || GIMP_IS_GIMP (group->user_data)) { /* add window actions only if the context of the group is * the display itself or the global popup (not if the context * is a dock) * (see dock-actions.c) */ window_actions_setup (group, GIMP_HELP_VIEW_CHANGE_SCREEN); } }
static void window_actions_display_opened (GdkDisplayManager *manager, GdkDisplay *display, GimpActionGroup *group) { GimpRadioActionEntry *entries; const gchar *help_id; const gchar *group_name; GSList *radio_group; gint n_screens; gint i; help_id = g_object_get_data (G_OBJECT (group), "change-to-screen-help-id"); group_name = gtk_action_group_get_name (GTK_ACTION_GROUP (group)); n_screens = gdk_display_get_n_screens (display); entries = g_new0 (GimpRadioActionEntry, n_screens); for (i = 0; i < n_screens; i++) { GdkScreen *screen = gdk_display_get_screen (display, i); gchar *screen_name; screen_name = gdk_screen_make_display_name (screen); entries[i].name = g_strdup_printf ("%s-move-to-screen-%s", group_name, screen_name); entries[i].stock_id = GIMP_STOCK_MOVE_TO_SCREEN; entries[i].label = g_strdup_printf (_("Screen %s"), screen_name); entries[i].accelerator = NULL; entries[i].tooltip = g_strdup_printf (_("Move this window to " "screen %s"), screen_name); entries[i].value = g_quark_from_string (screen_name); entries[i].help_id = help_id; g_free (screen_name); } radio_group = g_object_get_data (G_OBJECT (group), "change-to-screen-radio-group"); radio_group = gimp_action_group_add_radio_actions (group, entries, n_screens, radio_group, 0, G_CALLBACK (window_move_to_screen_cmd_callback)); g_object_set_data (G_OBJECT (group), "change-to-screen-radio-group", radio_group); for (i = 0; i < n_screens; i++) { GdkScreen *screen = gdk_display_get_screen (display, i); GtkAction *action; action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), entries[i].name); if (action) g_object_set_data (G_OBJECT (action), "screen", screen); g_free ((gchar *) entries[i].name); g_free ((gchar *) entries[i].tooltip); g_free ((gchar *) entries[i].label); } g_free (entries); g_signal_connect_object (display, "closed", G_CALLBACK (window_actions_display_closed), G_OBJECT (group), 0); }