ActionGroup
open class ActionGroup : GLibObject.Object, ActionGroupProtocol
Actions are organised into groups. An action group is essentially a
map from names to GtkAction
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 GtkActionGroup
implementation of the GtkBuildable
interface accepts
GtkAction
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 GtkWidget
, the main difference is that
it doesn’t allow you to specify a signal.
A GtkDialog
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>
The ActionGroup
type acts as a reference-counted owner of an underlying GtkActionGroup
instance.
It provides the methods that can operate on this data type through ActionGroupProtocol
conformance.
Use ActionGroup
as a strong reference or owner of a GtkActionGroup
instance.
-
Designated initialiser from the underlying `C` data type.
This creates an instance without performing an unbalanced retain i.e., ownership is transferred to the
ActionGroup
instance.Declaration
Swift
@inlinable public init(_ op: UnsafeMutablePointer<GtkActionGroup>)
Parameters
op
pointer to the underlying object
-
Designated initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable public init(_ op: UnsafePointer<GtkActionGroup>)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a non-mutating
gpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable override public init!(gpointer op: gpointer?)
Parameters
op
gpointer to the underlying object
-
Optional initialiser from a non-mutating
gconstpointer
to the underlyingC
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable override public init!(gconstpointer op: gconstpointer?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from a constant pointer to the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafePointer<GtkActionGroup>?)
Parameters
op
pointer to the underlying object
-
Optional initialiser from the underlying
C
data type. This creates an instance without performing an unbalanced retain i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable public init!(_ op: UnsafeMutablePointer<GtkActionGroup>?)
Parameters
op
pointer to the underlying object
-
Designated initialiser from the underlying
C
data type. Will retainGtkActionGroup
. i.e., ownership is transferred to theActionGroup
instance.Declaration
Swift
@inlinable public init(retaining op: UnsafeMutablePointer<GtkActionGroup>)
Parameters
op
pointer to the underlying object
-
Reference intialiser for a related type that implements
ActionGroupProtocol
Will retainGtkActionGroup
.Declaration
Swift
@inlinable public init<T>(actionGroup other: T) where T : ActionGroupProtocol
Parameters
other
an instance of a related type that implements
ActionGroupProtocol
-
Unsafe typed initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init<T>(cPointer p: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe typed, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init<T>(retainingCPointer cPointer: UnsafeMutablePointer<T>)
Parameters
cPointer
pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init(raw p: UnsafeRawPointer)
Parameters
p
raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init(retainingRaw raw: UnsafeRawPointer)
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable public required init(raw p: UnsafeMutableRawPointer)
Parameters
p
mutable raw pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable required public init(retainingRaw raw: UnsafeMutableRawPointer)
Parameters
raw
mutable raw pointer to the underlying object
-
Unsafe untyped initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init(opaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Unsafe untyped, retaining initialiser. Do not use unless you know the underlying data type the pointer points to conforms to
ActionGroupProtocol
.Declaration
Swift
@inlinable override public init(retainingOpaquePointer p: OpaquePointer)
Parameters
p
opaque pointer to the underlying object
-
Creates a new
GtkActionGroup
object. The name of the action group is used when associating keybindings with the actions.new is deprecated: This method is deprecated.
Declaration
Swift
@available(*, deprecated) @inlinable public init(name: UnsafePointer<gchar>!)