[gimp] app: Make Alt-Click on layer thumbnail in Layers dockable discoverable
- From: Martin Nordholts <martinn src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: Make Alt-Click on layer thumbnail in Layers dockable discoverable
- Date: Tue, 17 Aug 2010 16:51:27 +0000 (UTC)
commit 9bd423994dec49366388a6d448def80b6a82e7cf
Author: Martin Nordholts <martinn src gnome org>
Date: Tue Aug 17 18:48:05 2010 +0200
app: Make Alt-Click on layer thumbnail in Layers dockable discoverable
Make Alt-Click on layer thumbnail in Layers dockable discoverable, at
least in theory, by adding this info to the menu item tooltips.
app/actions/layers-actions.c | 44 +++++++++++++++++++++++++++++++
app/widgets/gimpactiongroup.c | 22 +++++++++++++++
app/widgets/gimpactiongroup.h | 58 +++++++++++++++++++++-------------------
3 files changed, 96 insertions(+), 28 deletions(-)
---
diff --git a/app/actions/layers-actions.c b/app/actions/layers-actions.c
index d9e1bac..dcc089c 100644
--- a/app/actions/layers-actions.c
+++ b/app/actions/layers-actions.c
@@ -33,6 +33,7 @@
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpactiongroup.h"
+#include "widgets/gimpwidgets-utils.h"
#include "actions.h"
#include "image-commands.h"
@@ -414,6 +415,41 @@ static const GimpEnumActionEntry layers_mode_actions[] =
GIMP_HELP_LAYER_MODE }
};
+/**
+ * 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);
+}
void
layers_actions_setup (GimpActionGroup *group)
@@ -440,6 +476,14 @@ layers_actions_setup (GimpActionGroup *group)
layers_alpha_to_selection_actions,
G_N_ELEMENTS (layers_alpha_to_selection_actions),
G_CALLBACK (layers_alpha_to_selection_cmd_callback));
+ layers_actions_fix_tooltip (group, "layers-alpha-selection-replace",
+ GDK_MOD1_MASK);
+ layers_actions_fix_tooltip (group, "layers-alpha-selection-add",
+ GDK_SHIFT_MASK | GDK_MOD1_MASK);
+ layers_actions_fix_tooltip (group, "layers-alpha-selection-subtract",
+ GDK_CONTROL_MASK | GDK_MOD1_MASK);
+ layers_actions_fix_tooltip (group, "layers-alpha-selection-intersect",
+ GDK_SHIFT_MASK | GDK_CONTROL_MASK | GDK_MOD1_MASK);
gimp_action_group_add_enum_actions (group, "layers-action",
layers_select_actions,
diff --git a/app/widgets/gimpactiongroup.c b/app/widgets/gimpactiongroup.c
index 2450792..8aaeffe 100644
--- a/app/widgets/gimpactiongroup.c
+++ b/app/widgets/gimpactiongroup.c
@@ -808,6 +808,28 @@ gimp_action_group_set_action_tooltip (GimpActionGroup *group,
gtk_action_set_tooltip (action, tooltip);
}
+const gchar *
+gimp_action_group_get_action_tooltip (GimpActionGroup *group,
+ const gchar *action_name)
+{
+ GtkAction *action;
+
+ g_return_val_if_fail (GIMP_IS_ACTION_GROUP (group), NULL);
+ g_return_val_if_fail (action_name != NULL, NULL);
+
+ action = gtk_action_group_get_action (GTK_ACTION_GROUP (group), action_name);
+
+ if (! action)
+ {
+ g_warning ("%s: Unable to get tooltip of action "
+ "which doesn't exist: %s",
+ G_STRFUNC, action_name);
+ return NULL;
+ }
+
+ return gtk_action_get_tooltip (action);
+}
+
void
gimp_action_group_set_action_color (GimpActionGroup *group,
const gchar *action_name,
diff --git a/app/widgets/gimpactiongroup.h b/app/widgets/gimpactiongroup.h
index 487c6d5..b9ddd74 100644
--- a/app/widgets/gimpactiongroup.h
+++ b/app/widgets/gimpactiongroup.h
@@ -171,34 +171,36 @@ void gimp_action_group_add_plug_in_actions (GimpActionGroup *grou
guint n_entries,
GCallback callback);
-void gimp_action_group_activate_action (GimpActionGroup *group,
- const gchar *action_name);
-
-void gimp_action_group_set_action_visible (GimpActionGroup *group,
- const gchar *action_name,
- gboolean visible);
-void gimp_action_group_set_action_sensitive (GimpActionGroup *group,
- const gchar *action_name,
- gboolean sensitive);
-void gimp_action_group_set_action_active (GimpActionGroup *group,
- const gchar *action_name,
- gboolean active);
-void gimp_action_group_set_action_label (GimpActionGroup *group,
- const gchar *action_name,
- const gchar *label);
-void gimp_action_group_set_action_tooltip (GimpActionGroup *group,
- const gchar *action_name,
- const gchar *tooltip);
-void gimp_action_group_set_action_color (GimpActionGroup *group,
- const gchar *action_name,
- const GimpRGB *color,
- gboolean set_label);
-void gimp_action_group_set_action_viewable (GimpActionGroup *group,
- const gchar *action_name,
- GimpViewable *viewable);
-void gimp_action_group_set_action_hide_empty(GimpActionGroup *group,
- const gchar *action_name,
- gboolean hide_empty);
+void gimp_action_group_activate_action (GimpActionGroup *group,
+ const gchar *action_name);
+void gimp_action_group_set_action_visible (GimpActionGroup *group,
+ const gchar *action_name,
+ gboolean visible);
+void gimp_action_group_set_action_sensitive (GimpActionGroup *group,
+ const gchar *action_name,
+ gboolean sensitive);
+void gimp_action_group_set_action_active (GimpActionGroup *group,
+ const gchar *action_name,
+ gboolean active);
+void gimp_action_group_set_action_label (GimpActionGroup *group,
+ const gchar *action_name,
+ const gchar *label);
+void gimp_action_group_set_action_tooltip (GimpActionGroup *group,
+ const gchar *action_name,
+ const gchar *tooltip);
+const gchar * gimp_action_group_get_action_tooltip (GimpActionGroup *group,
+ const gchar *action_name);
+void gimp_action_group_set_action_color (GimpActionGroup *group,
+ const gchar *action_name,
+ const GimpRGB *color,
+ gboolean set_label);
+void gimp_action_group_set_action_viewable (GimpActionGroup *group,
+ const gchar *action_name,
+ GimpViewable *viewable);
+void gimp_action_group_set_action_hide_empty (GimpActionGroup *group,
+ const gchar *action_name,
+ gboolean hide_empty);
+
#endif /* __GIMP_ACTION_GROUP_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]