The GtkAccelLabel
widget is a subclass of GtkLabel
that also displays an
accelerator key on the right of the label text, e.g. 'Ctl+S'.
It is commonly used in menus to show the keyboard short-cuts for commands. The accelerator key to display is not set explicitly.
Instead, the GtkAccelLabel
displays the accelerators which have been added to
a particular widget. This widget is set by calling
gtkAccelLabelSetAccelWidget
. For example, a GtkMenuItem
widget may have an accelerator added to emit the
"activate" signal when the 'Ctl+S' key combination is pressed.
A GtkAccelLabel
is created and added to the GtkMenuItem
, and
gtkAccelLabelSetAccelWidget
is called with the GtkMenuItem
as the
second argument. The GtkAccelLabel
will now display 'Ctl+S' after its label. Note that creating a GtkMenuItem
with gtkMenuItemNewWithLabel
(or
one of the similar functions for GtkCheckMenuItem
and GtkRadioMenuItem
)
automatically adds a GtkAccelLabel
to the GtkMenuItem
and calls
gtkAccelLabelSetAccelWidget
to set it up for you. A GtkAccelLabel
will only display accelerators which have GTK_ACCEL_VISIBLE
set (see GtkAccelFlags
).
A GtkAccelLabel
can display multiple accelerators and even signal names,
though it is almost always used to display just one accelerator key. Creating a simple menu item with an accelerator key.
## Creating a simple menu item with an accelerator key. ## Create a GtkAccelGroup and add it to the window.
accel_group = gtkAccelGroup()
window$addAccelGroup(accel_group) ## Create the menu item
save_item = gtkMenuItem("Save")
menu$add(save_item) ## Now add the accelerator to the GtkMenuItem.
## It will be activated if the user types ctrl-s
## We just need to make sure we use the "visible" flag here to show it.
save_item$addAccelerator("activate", accel_group, GDK_S,
"control-mask", "visible")