## GRemoteActionGroup

GRemoteActionGroup — A GActionGroup that interacts with other processes

## Functions

void | g_remote_action_group_activate_action_full ()
void | g_remote_action_group_change_action_state_full ()

## Types and Values

| GRemoteActionGroup
struct | GRemoteActionGroupInterface

## Object Hierarchy

        GInterface
        ╰── GRemoteActionGroup

## Prerequisites

GRemoteActionGroup requires GActionGroup and GObject.

## Known Implementations

GRemoteActionGroup is implemented by GDBusActionGroup.

## Includes

    #include <gio/gio.h>

## Description

The GRemoteActionGroup interface is implemented by GActionGroup instances that either transmit action invocations to other processes or receive action invocations in the local process from other processes.

The interface has `_full` variants of the two methods on GActionGroup used to activate actions: `g_action_group_activate_action()` and `g_action_group_change_action_state()`. These variants allow a "platform data" GVariant to be specified: a dictionary providing context for the action invocation (for example: timestamps, startup notification IDs, etc).

GDBusActionGroup implements GRemoteActionGroup. This provides a mechanism to send platform data for action invocations over D-Bus.

Additionally, `g_dbus_connection_export_action_group()` will check if the exported GActionGroup implements GRemoteActionGroup and use the `_full` variants of the calls if available. This provides a mechanism by which to receive platform data for action invocations that arrive by way of D-Bus.

## Functions

### g_remote_action_group_activate_action_full ()

    void
    g_remote_action_group_activate_action_full
                                   (GRemoteActionGroup *remote,
                                    const gchar *action_name,
                                    GVariant *parameter,
                                    GVariant *platform_data);

Activates the remote action.

This is the same as `g_action_group_activate_action()` except that it allows for provision of "platform data" to be sent along with the activation request. This typically contains details such as the user interaction timestamp or startup notification information.

`platform_data` must be non-`NULL` and must have the type `G_VARIANT_TYPE_VARDICT`. If it is floating, it will be consumed.

#### Parameters

remote | a GDBusActionGroup |
action_name | the name of the action to activate |
parameter | the optional parameter to the activation. | [nullable]
platform_data | the platform data to send |

Since: 2.32

### g_remote_action_group_change_action_state_full ()

    void
    g_remote_action_group_change_action_state_full
                                   (GRemoteActionGroup *remote,
                                    const gchar *action_name,
                                    GVariant *value,
                                    GVariant *platform_data);

Changes the state of a remote action.

This is the same as `g_action_group_change_action_state()` except that it allows for provision of "platform data" to be sent along with the state change request. This typically contains details such as the user interaction timestamp or startup notification information.

`platform_data` must be non-`NULL` and must have the type `G_VARIANT_TYPE_VARDICT`. If it is floating, it will be consumed.

#### Parameters

remote | a GRemoteActionGroup |
action_name | the name of the action to change the state of |
value | the new requested value for the state |
platform_data | the platform data to send |

Since: 2.32

## Types and Values

### GRemoteActionGroup

    typedef struct _GRemoteActionGroup GRemoteActionGroup;

GRemoteActionGroup is an opaque data structure and can only be accessed using the following functions.

### struct GRemoteActionGroupInterface

    struct GRemoteActionGroupInterface {
      GTypeInterface g_iface;

      void (* activate_action_full)     (GRemoteActionGroup *remote,
                                         const gchar        *action_name,
                                         GVariant           *parameter,
                                         GVariant           *platform_data);

      void (* change_action_state_full) (GRemoteActionGroup *remote,
                                         const gchar        *action_name,
                                         GVariant           *value,
                                         GVariant           *platform_data);
    };

The virtual function table for GRemoteActionGroup.

#### Members

`activate_action_full` () | the virtual function pointer for `g_remote_action_group_activate_action_full()` |
`change_action_state_full` () | the virtual function pointer for `g_remote_action_group_change_action_state_full()` |

Since: 2.32