ActionGroup
Object Hierarchy:
Description:
[ Version ( deprecated = true , deprecated_since = "3.10" ) ]
public class ActionGroup : Object, Buildable
Warning: ActionGroup is deprecated since 3.10.
Actions are organised into groups.
An action group is essentially a map from names to Action objects.
All actions that would make sense to use in a particular context should be in a single group. Multiple action groups may be used for a particular user interface. In fact, it is expected that most nontrivial applications will make use of multiple groups. For example, in an application that can edit multiple documents, one group holding global actions (e.g. quit, about, new), and one group per document holding actions that act on that document (eg. save, cut/copy/paste, etc). Each window’s menus would be constructed from a combination of two action groups.
Accelerators
Accelerators are handled by the GTK+ accelerator map. All actions are assigned an accelerator path (which normally has the form `<Actions >/group-name/action-name`) and a shortcut is associated with this accelerator path. All menuitems and toolitems take on this accelerator path. The GTK+ accelerator map code makes sure that the correct shortcut is displayed next to the menu item.
GtkActionGroup as GtkBuildable
The ActionGroup implementation of the Buildable interface accepts Action objects as `<child>` elements in UI definitions.
Note that it is probably more common to define actions and action groups in the code, since they are directly related to what the code can do.
The GtkActionGroup implementation of the GtkBuildable interface supports a custom `<accelerator>` element, which has attributes named “key“ and “modifiers“ and allows to specify accelerators. This is similar to the `<accelerator>` element of Widget, the main difference is that it doesn’t allow you to specify a signal.
A Dialog UI definition fragment.
<object class="GtkActionGroup" id="actiongroup">
<child>
<object class="GtkAction" id="About">
<property name="name">About</property>
<property name="stock_id">gtk-about</property>
<signal handler="about_activate" name="activate"/>
</object>
<accelerator key="F1" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK"/>
</child>
</object>