/** * layers_actions_fix_tooltip: * @group: * @action: * @modifiers: * * Make layer alpha to selection click-shortcuts discoverable, at * least in theory. **/ static void layers_actions_fix_tooltip (GimpActionGroup *group, const gchar *action, GdkModifierType modifiers) { const gchar *old_hint; gchar *new_hint; old_hint = gimp_action_group_get_action_tooltip (group, action); new_hint = g_strconcat (old_hint, "\n", /* Will be followed with e.g. "Shift-Click on thumbnail" */ _("Shortcut: "), gimp_get_mod_string (modifiers), /* Will be prepended with a modifier key string, e.g. "Shift" */ _("-Click on thumbnail in Layers dockable"), NULL); gimp_action_group_set_action_tooltip (group, action, new_hint); g_free (new_hint); }
static void plug_in_actions_add_proc (GimpActionGroup *group, GimpPlugInProcedure *proc) { GimpProcedureActionEntry entry; const gchar *locale_domain; GList *list; locale_domain = gimp_plug_in_procedure_get_locale_domain (proc); entry.name = gimp_object_get_name (proc); entry.icon_name = gimp_viewable_get_icon_name (GIMP_VIEWABLE (proc)); entry.label = gimp_procedure_get_menu_label (GIMP_PROCEDURE (proc)); entry.accelerator = NULL; entry.tooltip = gimp_procedure_get_blurb (GIMP_PROCEDURE (proc)); entry.procedure = GIMP_PROCEDURE (proc); entry.help_id = gimp_procedure_get_help_id (GIMP_PROCEDURE (proc)); gimp_action_group_add_procedure_actions (group, &entry, 1, G_CALLBACK (plug_in_run_cmd_callback)); for (list = proc->menu_paths; list; list = g_list_next (list)) { const gchar *original = list->data; const gchar *translated = dgettext (locale_domain, original); if (plug_in_actions_check_translation (original, translated)) plug_in_actions_build_path (group, original, translated); else plug_in_actions_build_path (group, original, original); } if (proc->image_types_val) { GimpContext *context = gimp_get_user_context (group->gimp); GimpImage *image = gimp_context_get_image (context); GimpDrawable *drawable = NULL; gboolean sensitive; const gchar *tooltip; if (image) drawable = gimp_image_get_active_drawable (image); sensitive = gimp_procedure_get_sensitive (GIMP_PROCEDURE (proc), GIMP_OBJECT (drawable), &tooltip); gimp_action_group_set_action_sensitive (group, gimp_object_get_name (proc), sensitive); if (! sensitive && drawable && tooltip) gimp_action_group_set_action_tooltip (group, gimp_object_get_name (proc), tooltip); } }
void plug_in_actions_update (GimpActionGroup *group, gpointer data) { GimpImage *image = action_data_get_image (data); GimpPlugInManager *manager = group->gimp->plug_in_manager; GimpDrawable *drawable = NULL; GSList *list; if (image) drawable = gimp_image_get_active_drawable (image); for (list = manager->plug_in_procedures; list; list = g_slist_next (list)) { GimpPlugInProcedure *proc = list->data; if (proc->menu_label && ! proc->file_proc && proc->image_types_val) { GimpProcedure *procedure = GIMP_PROCEDURE (proc); gboolean sensitive; const gchar *tooltip; sensitive = gimp_procedure_get_sensitive (procedure, GIMP_OBJECT (drawable), &tooltip); gimp_action_group_set_action_sensitive (group, gimp_object_get_name (proc), sensitive); if (sensitive || ! drawable || ! tooltip) tooltip = gimp_procedure_get_blurb (procedure); gimp_action_group_set_action_tooltip (group, gimp_object_get_name (proc), tooltip); } } }
void dialogs_actions_update (GimpActionGroup *group, gpointer data) { Gimp *gimp = action_data_get_gimp (data); const gchar *toolbox_label = NULL; const gchar *toolbox_tooltip = NULL; if (dialogs_actions_toolbox_exists (gimp)) { toolbox_label = _("Toolbox"); toolbox_tooltip = _("Raise the toolbox"); } else { toolbox_label = _("New Toolbox"); toolbox_tooltip = _("Create a new toolbox"); } gimp_action_group_set_action_label (group, "dialogs-toolbox", toolbox_label); gimp_action_group_set_action_tooltip (group, "dialogs-toolbox", toolbox_tooltip); }
void filters_actions_setup (GimpActionGroup *group) { gint i; gimp_action_group_add_string_actions (group, "filters-action", filters_actions, G_N_ELEMENTS (filters_actions), G_CALLBACK (filters_filter_cmd_callback)); for (i = 0; i < G_N_ELEMENTS (filters_actions); i++) { const GimpStringActionEntry *entry = &filters_actions[i]; const gchar *description; description = gegl_operation_get_key (entry->value, "description"); if (description) gimp_action_group_set_action_tooltip (group, entry->name, description); } }
void filters_actions_setup (GimpActionGroup *group) { GimpProcedureActionEntry *entries; gint n_entries; gint i; gimp_action_group_add_actions (group, "filters-action", filters_menu_actions, G_N_ELEMENTS (filters_menu_actions)); gimp_action_group_add_string_actions (group, "filters-action", filters_actions, G_N_ELEMENTS (filters_actions), G_CALLBACK (filters_filter_cmd_callback)); gimp_action_group_add_enum_actions (group, "filters-action", filters_repeat_actions, G_N_ELEMENTS (filters_repeat_actions), G_CALLBACK (filters_repeat_cmd_callback)); for (i = 0; i < G_N_ELEMENTS (filters_actions); i++) { const GimpStringActionEntry *entry = &filters_actions[i]; const gchar *description; description = gegl_operation_get_key (entry->value, "description"); if (description) gimp_action_group_set_action_tooltip (group, entry->name, description); } n_entries = gimp_filter_history_size (group->gimp); entries = g_new0 (GimpProcedureActionEntry, n_entries); for (i = 0; i < n_entries; i++) { entries[i].name = g_strdup_printf ("filter-recent-%02d", i + 1); entries[i].icon_name = NULL; entries[i].label = ""; entries[i].accelerator = ""; entries[i].tooltip = NULL; entries[i].procedure = NULL; entries[i].help_id = GIMP_HELP_FILTER_RESHOW; } gimp_action_group_add_procedure_actions (group, entries, n_entries, G_CALLBACK (filters_history_cmd_callback)); for (i = 0; i < n_entries; i++) { gimp_action_group_set_action_visible (group, entries[i].name, FALSE); g_free ((gchar *) entries[i].name); } g_free (entries); g_signal_connect_object (group->gimp, "filter-history-changed", G_CALLBACK (filters_actions_history_changed), group, 0); filters_actions_history_changed (group->gimp, group); }