Exemplo n.º 1
0
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
}
Exemplo n.º 2
0
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));
}
Exemplo n.º 3
0
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));
}
Exemplo n.º 4
0
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);
    }
}
Exemplo n.º 5
0
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);
}