void edit_actions_setup (GimpActionGroup *group) { GimpContext *context = gimp_get_user_context (group->gimp); GimpRGB color; GimpPattern *pattern; GtkAction *action; gimp_action_group_add_actions (group, "edit-action", edit_actions, G_N_ELEMENTS (edit_actions)); gimp_action_group_add_enum_actions (group, "edit-action", edit_fill_actions, G_N_ELEMENTS (edit_fill_actions), G_CALLBACK (edit_fill_cmd_callback)); action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), "edit-paste-as-new-image-short"); gtk_action_set_accel_path (action, "<Actions>/edit/edit-paste-as-new-image"); gimp_action_group_set_action_context (group, "edit-fill-fg", context); gimp_action_group_set_action_context (group, "edit-fill-bg", context); gimp_action_group_set_action_context (group, "edit-fill-pattern", context); g_signal_connect_object (context, "foreground-changed", G_CALLBACK (edit_actions_foreground_changed), group, 0); g_signal_connect_object (context, "background-changed", G_CALLBACK (edit_actions_background_changed), group, 0); g_signal_connect_object (context, "pattern-changed", G_CALLBACK (edit_actions_pattern_changed), group, 0); gimp_context_get_foreground (context, &color); edit_actions_foreground_changed (context, &color, group); gimp_context_get_background (context, &color); edit_actions_background_changed (context, &color, group); pattern = gimp_context_get_pattern (context); edit_actions_pattern_changed (context, pattern, group); #define SET_ALWAYS_SHOW_IMAGE(action,show) \ gimp_action_group_set_action_always_show_image (group, action, show) SET_ALWAYS_SHOW_IMAGE ("edit-fill-fg", TRUE); SET_ALWAYS_SHOW_IMAGE ("edit-fill-bg", TRUE); SET_ALWAYS_SHOW_IMAGE ("edit-fill-pattern", TRUE); #undef SET_ALWAYS_SHOW_IMAGE }
void items_actions_setup (GimpActionGroup *group, const gchar *prefix) { GEnumClass *enum_class; GEnumValue *value; enum_class = g_type_class_ref (GIMP_TYPE_COLOR_TAG); for (value = enum_class->values; value->value_name; value++) { gchar action[32]; g_snprintf (action, sizeof (action), "%s-color-tag-%s", prefix, value->value_nick); if (value->value == GIMP_COLOR_TAG_NONE) { gimp_action_group_set_action_always_show_image (group, action, TRUE); } else { GimpRGB color; gimp_action_group_set_action_context (group, action, gimp_get_user_context (group->gimp)); gimp_get_color_tag_color (value->value, &color, FALSE); gimp_action_group_set_action_color (group, action, &color, FALSE); } } g_type_class_unref (enum_class); }