Klasse ActionGroup

Alle implementierten Schnittstellen:
PointerInterface

public class ActionGroup extends Interface
`GActionGroup` represents a group of actions.

Actions can be used to expose functionality in a structured way, either
from one part of a program to another, or to the outside world. Action
groups are often used together with a [type@Gio.MenuModel] that provides additional
representation data for displaying the actions to the user, e.g. in a menu.

The main way to interact with the actions in a `GActionGroup` is to
activate them with [method@Gio.ActionGroup.activate_action]. Activating an
action may require a [type@GLib.Variant] parameter. The required type of the
parameter can be inquired with [method@Gio.ActionGroup.get_action_parameter_type].
Actions may be disabled, see [method@Gio.ActionGroup.get_action_enabled].
Activating a disabled action has no effect.

Actions may optionally have a state in the form of a [type@GLib.Variant]. The current
state of an action can be inquired with [method@Gio.ActionGroup.get_action_state].
Activating a stateful action may change its state, but it is also possible to
set the state by calling [method@Gio.ActionGroup.change_action_state].

As typical example, consider a text editing application which has an
option to change the current font to ‘bold’. A good way to represent
this would be a stateful action, with a boolean state. Activating the
action would toggle the state.

Each action in the group has a unique name (which is a string). All
method calls, except [method@Gio.ActionGroup.list_actions] take the name of
an action as an argument.

The `GActionGroup` API is meant to be the ‘public’ API to the action
group. The calls here are exactly the interaction that ‘external
forces’ (eg: UI, incoming D-Bus messages, etc.) are supposed to have
with actions. ‘Internal’ APIs (ie: ones meant only to be accessed by
the action group implementation) are found on subclasses. This is
why you will find – for example – [method@Gio.ActionGroup.get_action_enabled]
but not an equivalent `set_action_enabled()` method.

Signals are emitted on the action group in response to state changes
on individual actions.

Implementations of `GActionGroup` should provide implementations for
the virtual functions [method@Gio.ActionGroup.list_actions] and
[method@Gio.ActionGroup.query_action]. The other virtual functions should
not be implemented — their ‘wrappers’ are actually implemented with
calls to [method@Gio.ActionGroup.query_action].

https://docs.gtk.org/gio/iface.ActionGroup.html

  • Felddetails

  • Konstruktordetails

  • Methodendetails

    • getClassHandler

      public static ClassHandler getClassHandler()
    • actionAdded

      public void actionAdded(@Nonnull Str action_name)
      Emits the [signal@Gio.ActionGroup::action-added] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
    • actionAdded

      public void actionAdded(String action_name)
      Emits the [signal@Gio.ActionGroup::action-added] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
    • actionEnabledChanged

      public void actionEnabledChanged(@Nonnull Str action_name, boolean enabled)
      Emits the [signal@Gio.ActionGroup::action-enabled-changed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
      enabled - whether the action is now enabled
    • actionEnabledChanged

      public void actionEnabledChanged(String action_name, boolean enabled)
      Emits the [signal@Gio.ActionGroup::action-enabled-changed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
      enabled - whether the action is now enabled
    • actionRemoved

      public void actionRemoved(@Nonnull Str action_name)
      Emits the [signal@Gio.ActionGroup::action-removed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
    • actionRemoved

      public void actionRemoved(String action_name)
      Emits the [signal@Gio.ActionGroup::action-removed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
    • actionStateChanged

      public void actionStateChanged(@Nonnull Str action_name, @Nonnull Variant state)
      Emits the [signal@Gio.ActionGroup::action-state-changed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
      state - the new state of the named action
    • actionStateChanged

      public void actionStateChanged(String action_name, @Nonnull Variant state)
      Emits the [signal@Gio.ActionGroup::action-state-changed] signal on @action_group.

      This function should only be called by [type@Gio.ActionGroup] implementations.
      Parameter:
      action_name - the name of an action in the group
      state - the new state of the named action
    • activateAction

      public void activateAction(@Nonnull Str action_name, @Nullable Variant parameter)
      Activate the named action within @action_group.

      If the action is expecting a parameter, then the correct type of
      parameter must be given as @parameter. If the action is expecting no
      parameters then @parameter must be `NULL`. See
      [method@Gio.ActionGroup.get_action_parameter_type].

      If the [type@Gio.ActionGroup] implementation supports asynchronous remote
      activation over D-Bus, this call may return before the relevant
      D-Bus traffic has been sent, or any replies have been received. In
      order to block on such asynchronous activation calls,
      [method@Gio.DBusConnection.flush] should be called prior to the code, which
      depends on the result of the action activation. Without flushing
      the D-Bus connection, there is no guarantee that the action would
      have been activated.

      The following code which runs in a remote app instance, shows an
      example of a ‘quit’ action being activated on the primary app
      instance over D-Bus. Here [method@Gio.DBusConnection.flush] is called
      before `exit()`. Without `g_dbus_connection_flush()`, the ‘quit’ action
      may fail to be activated on the primary instance.

      ```c
      // call ‘quit’ action on primary instance
      g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL);

      // make sure the action is activated now
      g_dbus_connection_flush (…);

      g_debug ("Application has been terminated. Exiting.");

      exit (0);
      ```
      Parameter:
      action_name - the name of the action to activate
      parameter - parameters to the activation
    • activateAction

      public void activateAction(String action_name, @Nullable Variant parameter)
      Activate the named action within @action_group.

      If the action is expecting a parameter, then the correct type of
      parameter must be given as @parameter. If the action is expecting no
      parameters then @parameter must be `NULL`. See
      [method@Gio.ActionGroup.get_action_parameter_type].

      If the [type@Gio.ActionGroup] implementation supports asynchronous remote
      activation over D-Bus, this call may return before the relevant
      D-Bus traffic has been sent, or any replies have been received. In
      order to block on such asynchronous activation calls,
      [method@Gio.DBusConnection.flush] should be called prior to the code, which
      depends on the result of the action activation. Without flushing
      the D-Bus connection, there is no guarantee that the action would
      have been activated.

      The following code which runs in a remote app instance, shows an
      example of a ‘quit’ action being activated on the primary app
      instance over D-Bus. Here [method@Gio.DBusConnection.flush] is called
      before `exit()`. Without `g_dbus_connection_flush()`, the ‘quit’ action
      may fail to be activated on the primary instance.

      ```c
      // call ‘quit’ action on primary instance
      g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL);

      // make sure the action is activated now
      g_dbus_connection_flush (…);

      g_debug ("Application has been terminated. Exiting.");

      exit (0);
      ```
      Parameter:
      action_name - the name of the action to activate
      parameter - parameters to the activation
    • changeActionState

      public void changeActionState(@Nonnull Str action_name, @Nonnull Variant value)
      Request for the state of the named action within @action_group to be
      changed to @value.

      The action must be stateful and @value must be of the correct type.
      See [method@Gio.ActionGroup.get_action_state_type].

      This call merely requests a change. The action may refuse to change
      its state or may change its state to something other than @value.
      See [method@Gio.ActionGroup.get_action_state_hint].

      If the @value GVariant is floating, it is consumed.
      Parameter:
      action_name - the name of the action to request the change on
      value - the new state
    • changeActionState

      public void changeActionState(String action_name, @Nonnull Variant value)
      Request for the state of the named action within @action_group to be
      changed to @value.

      The action must be stateful and @value must be of the correct type.
      See [method@Gio.ActionGroup.get_action_state_type].

      This call merely requests a change. The action may refuse to change
      its state or may change its state to something other than @value.
      See [method@Gio.ActionGroup.get_action_state_hint].

      If the @value GVariant is floating, it is consumed.
      Parameter:
      action_name - the name of the action to request the change on
      value - the new state
    • getActionEnabled

      public boolean getActionEnabled(@Nonnull Str action_name)
      Checks if the named action within @action_group is currently enabled.

      An action must be enabled in order to be activated or in order to
      have its state changed from outside callers.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      whether the action is currently enabled
    • getActionEnabled

      public boolean getActionEnabled(String action_name)
      Checks if the named action within @action_group is currently enabled.

      An action must be enabled in order to be activated or in order to
      have its state changed from outside callers.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      whether the action is currently enabled
    • getActionParameterType

      public VariantType getActionParameterType(@Nonnull Str action_name)
      Queries the type of the parameter that must be given when activating
      the named action within @action_group.

      When activating the action using [method@Gio.ActionGroup.activate_action],
      the [type@GLib.Variant] given to that function must be of the type returned
      by this function.

      In the case that this function returns `NULL`, you must not give any
      [type@GLib.Variant], but `NULL` instead.

      The parameter type of a particular action will never change but it is
      possible for an action to be removed and for a new action to be added
      with the same name but a different parameter type.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the parameter type
    • getActionParameterType

      public VariantType getActionParameterType(String action_name)
      Queries the type of the parameter that must be given when activating
      the named action within @action_group.

      When activating the action using [method@Gio.ActionGroup.activate_action],
      the [type@GLib.Variant] given to that function must be of the type returned
      by this function.

      In the case that this function returns `NULL`, you must not give any
      [type@GLib.Variant], but `NULL` instead.

      The parameter type of a particular action will never change but it is
      possible for an action to be removed and for a new action to be added
      with the same name but a different parameter type.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the parameter type
    • getActionState

      public Variant getActionState(@Nonnull Str action_name)
      Queries the current state of the named action within @action_group.

      If the action is not stateful then `NULL` will be returned. If the
      action is stateful then the type of the return value is the type
      given by [method@Gio.ActionGroup.get_action_state_type].

      The return value (if non-`NULL`) should be freed with
      [method@GLib.Variant.unref] when it is no longer required.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the current state of the action
    • getActionState

      public Variant getActionState(String action_name)
      Queries the current state of the named action within @action_group.

      If the action is not stateful then `NULL` will be returned. If the
      action is stateful then the type of the return value is the type
      given by [method@Gio.ActionGroup.get_action_state_type].

      The return value (if non-`NULL`) should be freed with
      [method@GLib.Variant.unref] when it is no longer required.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the current state of the action
    • getActionStateHint

      public Variant getActionStateHint(@Nonnull Str action_name)
      Requests a hint about the valid range of values for the state of the
      named action within @action_group.

      If `NULL` is returned it either means that the action is not stateful
      or that there is no hint about the valid range of values for the
      state of the action.

      If a [type@GLib.Variant] array is returned then each item in the array is a
      possible value for the state. If a [type@GLib.Variant] pair (ie: two-tuple) is
      returned then the tuple specifies the inclusive lower and upper bound
      of valid values for the state.

      In any case, the information is merely a hint. It may be possible to
      have a state value outside of the hinted range and setting a value
      within the range may fail.

      The return value (if non-`NULL`) should be freed with
      [method@GLib.Variant.unref] when it is no longer required.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the state range hint
    • getActionStateHint

      public Variant getActionStateHint(String action_name)
      Requests a hint about the valid range of values for the state of the
      named action within @action_group.

      If `NULL` is returned it either means that the action is not stateful
      or that there is no hint about the valid range of values for the
      state of the action.

      If a [type@GLib.Variant] array is returned then each item in the array is a
      possible value for the state. If a [type@GLib.Variant] pair (ie: two-tuple) is
      returned then the tuple specifies the inclusive lower and upper bound
      of valid values for the state.

      In any case, the information is merely a hint. It may be possible to
      have a state value outside of the hinted range and setting a value
      within the range may fail.

      The return value (if non-`NULL`) should be freed with
      [method@GLib.Variant.unref] when it is no longer required.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the state range hint
    • getActionStateType

      public VariantType getActionStateType(@Nonnull Str action_name)
      Queries the type of the state of the named action within
      @action_group.

      If the action is stateful then this function returns the
      [type@GLib.VariantType] of the state. All calls to
      [method@Gio.ActionGroup.change_action_state] must give a [type@GLib.Variant] of this
      type and [method@Gio.ActionGroup.get_action_state] will return a [type@GLib.Variant]
      of the same type.

      If the action is not stateful then this function will return `NULL`.
      In that case, [method@Gio.ActionGroup.get_action_state] will return `NULL`
      and you must not call [method@Gio.ActionGroup.change_action_state].

      The state type of a particular action will never change but it is
      possible for an action to be removed and for a new action to be added
      with the same name but a different state type.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the state type, if the action is stateful
    • getActionStateType

      public VariantType getActionStateType(String action_name)
      Queries the type of the state of the named action within
      @action_group.

      If the action is stateful then this function returns the
      [type@GLib.VariantType] of the state. All calls to
      [method@Gio.ActionGroup.change_action_state] must give a [type@GLib.Variant] of this
      type and [method@Gio.ActionGroup.get_action_state] will return a [type@GLib.Variant]
      of the same type.

      If the action is not stateful then this function will return `NULL`.
      In that case, [method@Gio.ActionGroup.get_action_state] will return `NULL`
      and you must not call [method@Gio.ActionGroup.change_action_state].

      The state type of a particular action will never change but it is
      possible for an action to be removed and for a new action to be added
      with the same name but a different state type.
      Parameter:
      action_name - the name of the action to query
      Gibt zurück:
      the state type, if the action is stateful
    • hasAction

      public boolean hasAction(@Nonnull Str action_name)
      Checks if the named action exists within @action_group.
      Parameter:
      action_name - the name of the action to check for
      Gibt zurück:
      whether the named action exists
    • hasAction

      public boolean hasAction(String action_name)
      Checks if the named action exists within @action_group.
      Parameter:
      action_name - the name of the action to check for
      Gibt zurück:
      whether the named action exists
    • onActionAdded

      public SignalHandler onActionAdded(ActionGroup.OnActionAdded signal)
      Connect to signal "action-added".
      See ActionGroup.OnActionAdded.onActionAdded(ch.bailu.gtk.type.Str) for signal description.
      Field SIGNAL_ON_ACTION_ADDED contains original signal name and can be used as resource reference.
      Parameter:
      signal - callback function (lambda).
      Gibt zurück:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onActionEnabledChanged

      public SignalHandler onActionEnabledChanged(ActionGroup.OnActionEnabledChanged signal)
      Connect to signal "action-enabled-changed".
      See ActionGroup.OnActionEnabledChanged.onActionEnabledChanged(ch.bailu.gtk.type.Str, boolean) for signal description.
      Field SIGNAL_ON_ACTION_ENABLED_CHANGED contains original signal name and can be used as resource reference.
      Parameter:
      signal - callback function (lambda).
      Gibt zurück:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onActionRemoved

      public SignalHandler onActionRemoved(ActionGroup.OnActionRemoved signal)
      Connect to signal "action-removed".
      See ActionGroup.OnActionRemoved.onActionRemoved(ch.bailu.gtk.type.Str) for signal description.
      Field SIGNAL_ON_ACTION_REMOVED contains original signal name and can be used as resource reference.
      Parameter:
      signal - callback function (lambda).
      Gibt zurück:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • onActionStateChanged

      public SignalHandler onActionStateChanged(ActionGroup.OnActionStateChanged signal)
      Connect to signal "action-state-changed".
      See ActionGroup.OnActionStateChanged.onActionStateChanged(ch.bailu.gtk.type.Str, ch.bailu.gtk.glib.Variant) for signal description.
      Field SIGNAL_ON_ACTION_STATE_CHANGED contains original signal name and can be used as resource reference.
      Parameter:
      signal - callback function (lambda).
      Gibt zurück:
      SignalHandler. Can be used to disconnect signal and to release callback function.
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()