mirror of https://github.com/GNOME/gimp.git
app: GimpMenu also monitors the "label" and "tooltip" properties of GimpAction.
Some actions in particular can change their label. E.g. "file-export" and "file-overwrite" will have customized labels containing the imported or exported file name. The menu will now reflect such changes, live.
This commit is contained in:
parent
66eeb4fe6c
commit
f66e893bb3
|
@ -87,7 +87,13 @@ static void gimp_menu_action_notify_sensitive (GimpAction *action,
|
||||||
GtkCheckMenuItem *item);
|
GtkCheckMenuItem *item);
|
||||||
static void gimp_menu_action_notify_visible (GimpAction *action,
|
static void gimp_menu_action_notify_visible (GimpAction *action,
|
||||||
const GParamSpec *pspec,
|
const GParamSpec *pspec,
|
||||||
GtkCheckMenuItem *item);
|
GtkWidget *item);
|
||||||
|
static void gimp_menu_action_notify_label (GimpAction *action,
|
||||||
|
const GParamSpec *pspec,
|
||||||
|
GtkMenuItem *item);
|
||||||
|
static void gimp_menu_action_notify_tooltip (GimpAction *action,
|
||||||
|
const GParamSpec *pspec,
|
||||||
|
GtkWidget *item);
|
||||||
|
|
||||||
|
|
||||||
G_DEFINE_TYPE_WITH_PRIVATE (GimpMenu, gimp_menu, GTK_TYPE_MENU_BAR)
|
G_DEFINE_TYPE_WITH_PRIVATE (GimpMenu, gimp_menu, GTK_TYPE_MENU_BAR)
|
||||||
|
@ -297,6 +303,11 @@ gimp_menu_update (GimpMenu *menu,
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_actionable_set_action_name (GTK_ACTIONABLE (item), action_name);
|
gtk_actionable_set_action_name (GTK_ACTIONABLE (item), action_name);
|
||||||
|
|
||||||
|
g_signal_connect_object (action, "notify::label",
|
||||||
|
G_CALLBACK (gimp_menu_action_notify_label),
|
||||||
|
item, 0);
|
||||||
|
|
||||||
gtk_widget_set_sensitive (GTK_WIDGET (item),
|
gtk_widget_set_sensitive (GTK_WIDGET (item),
|
||||||
gimp_action_is_sensitive (GIMP_ACTION (action), NULL));
|
gimp_action_is_sensitive (GIMP_ACTION (action), NULL));
|
||||||
g_signal_connect_object (action, "notify::sensitive",
|
g_signal_connect_object (action, "notify::sensitive",
|
||||||
|
@ -306,6 +317,9 @@ gimp_menu_update (GimpMenu *menu,
|
||||||
if (gimp_action_get_tooltip (GIMP_ACTION (action)))
|
if (gimp_action_get_tooltip (GIMP_ACTION (action)))
|
||||||
gtk_widget_set_tooltip_text (item,
|
gtk_widget_set_tooltip_text (item,
|
||||||
gimp_action_get_tooltip (GIMP_ACTION (action)));
|
gimp_action_get_tooltip (GIMP_ACTION (action)));
|
||||||
|
g_signal_connect_object (action, "notify::tooltip",
|
||||||
|
G_CALLBACK (gimp_menu_action_notify_tooltip),
|
||||||
|
item, 0);
|
||||||
|
|
||||||
gtk_container_add (container, item);
|
gtk_container_add (container, item);
|
||||||
|
|
||||||
|
@ -375,3 +389,20 @@ gimp_menu_action_notify_visible (GimpAction *action,
|
||||||
{
|
{
|
||||||
gtk_widget_set_visible (item, gimp_action_is_visible (action));
|
gtk_widget_set_visible (item, gimp_action_is_visible (action));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_menu_action_notify_label (GimpAction *action,
|
||||||
|
const GParamSpec *pspec,
|
||||||
|
GtkMenuItem *item)
|
||||||
|
{
|
||||||
|
gtk_menu_item_set_label (item, gimp_action_get_label (action));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gimp_menu_action_notify_tooltip (GimpAction *action,
|
||||||
|
const GParamSpec *pspec,
|
||||||
|
GtkWidget *item)
|
||||||
|
{
|
||||||
|
gtk_widget_set_tooltip_text (item,
|
||||||
|
gimp_action_get_tooltip (GIMP_ACTION (action)));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue