接口

GioActionGroup

描述 [src]

interface Gio.ActionGroup : GObject.Object

GActionGroup 表示一组 动作。

动作可以用结构化方式公开功能,无论是从一个程序部分到另一个程序部分,还是对外界。动作组通常与 GMenuModel 一起使用,后者提供额外的表示数据,以向用户显示动作,例如在 菜单中。

GActionGroup 中的动作交互的主要方式是使用 g_action_group_activate_action() 激活它们。激活动作可能需要 GVariant 参数。可以借助 g_action_group_get_action_parameter_type() 询问所需的参数类型。动作可能被禁用,请参见 g_action_group_get_action_enabled()。激活禁用动作没有任何 作用。

动作可以可选地采用 GVariant 形式的状态。可以使用 g_action_group_get_action_state() 询问动作的当前状态。激活有状态动作可能会更改其状态,但也可以通过调用 g_action_group_change_action_state() 来设置状态。

一个典型的示例是文本编辑应用程序,它有一个选项可以将当前字体更改为“粗体”。表示此选项的理想方法是有状态动作,并带有布尔状态。激活该动作将切换 状态。

组中的每个操作都有一个唯一名称(它是字符串)。除 g_action_group_list_actions() 以外的所有方法调用都将操作的名称作为参数。

GActionGroup API 被视为操作组的“公开”API。此处调用与“外部力量”(例如:UI、导入 D-Bus 消息等)应当对操作执行的交互完全相同。“内部”API(即:旨在仅供操作组实现访问的)位于子类中。这就是您会发现(例如)g_action_group_get_action_enabled() 但不会发现等效 set_action_enabled() 方法的原因。

响应对个别操作的状态更改,将发出操作组信号。

GActionGroup 的实现应当提供虚拟函数 g_action_group_list_actions()g_action_group_query_action() 的实现。其他虚拟函数不应当实现——其“包装器”实际上是通过调用 g_action_group_query_action() 来实现的。

先决条件

要实现 ActionGroup,您的类型必须继承自GObject

实例方法

g_action_group_action_added

针对 action_group 发出 GActionGroup::action-added 信号。

since: 2.28

g_action_group_action_enabled_changed

针对 action_group 发出 GActionGroup::action-enabled-changed 信号。

since: 2.28

g_action_group_action_removed

针对 action_group 发出 GActionGroup::action-removed 信号。

since: 2.28

g_action_group_action_state_changed

针对 action_group 发出 GActionGroup::action-state-changed 信号。

since: 2.28

g_action_group_activate_action

激活 action_group 中命名的操作。

since: 2.28

g_action_group_change_action_state

请求将 action_group 中命名的操作的状态更改为 value

since: 2.28

g_action_group_get_action_enabled

检查中 action_group 命名的操作当前是否已 启用。

since: 2.28

g_action_group_get_action_parameter_type

查询激活 action_group 中命名的操作时必须提供的参数的类型。

since: 2.28

g_action_group_get_action_state

查询 action_group 中命名的操作的当前状态。

since: 2.28

g_action_group_get_action_state_hint

针对 action_group 中命名的操作的状态的有效值范围,请求提示。

since: 2.28

g_action_group_get_action_state_type

查询 action_group 中命名的操作的状态类型。

since: 2.28

g_action_group_has_action

检查中 action_group 命名的操作是否存在。

since: 2.28

g_action_group_list_actions

列出 action_group 中包含的操作。

since: 2.28

g_action_group_query_action

查询 action_group 中命名的操作的所有方面。

since: 2.32

信号

Gio.ActionGroup::action-added

发出信号,表示刚刚向 组添加一个新操作。

since: 2.28

Gio.ActionGroup::action-enabled-changed

发出信号,表示已命名的操作的启用状态已 更改。

since: 2.28

Gio.ActionGroup::action-removed

发出信号,表示将从 组中删除一个操作。

since: 2.28

Gio.ActionGroup::action-state-changed

发出信号,表示已命名的操作的状态已 更改。

since: 2.28

接口结构

struct GioActionGroupInterface {
  GTypeInterface g_iface;
  gboolean (* has_action) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  gchar** (* list_actions) (
    GActionGroup* action_group
  );
  gboolean (* get_action_enabled) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  const GVariantType* (* get_action_parameter_type) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  const GVariantType* (* get_action_state_type) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  GVariant* (* get_action_state_hint) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  GVariant* (* get_action_state) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  void (* change_action_state) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* value
  );
  void (* activate_action) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* parameter
  );
  void (* action_added) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  void (* action_removed) (
    GActionGroup* action_group,
    const gchar* action_name
  );
  void (* action_enabled_changed) (
    GActionGroup* action_group,
    const gchar* action_name,
    gboolean enabled
  );
  void (* action_state_changed) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* state
  );
  gboolean (* query_action) (
    GActionGroup* action_group,
    const gchar* action_name,
    gboolean* enabled,
    const GVariantType** parameter_type,
    const GVariantType** state_type,
    GVariant** state_hint,
    GVariant** state
  );
  
}

GActionGroup 的虚拟函数表。

接口成员
g_iface
GTypeInterface
 

无可用说明。

has_action
gboolean (* has_action) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

g_action_group_has_action() 的虚拟函数指针。

list_actions
gchar** (* list_actions) (
    GActionGroup* action_group
  )
 

g_action_group_list_actions() 的虚拟函数指针。

get_action_enabled
gboolean (* get_action_enabled) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

虚拟函数指针 g_action_group_get_action_enabled()

get_action_parameter_type
const GVariantType* (* get_action_parameter_type) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

虚拟函数指针 g_action_group_get_action_parameter_type()

get_action_state_type
const GVariantType* (* get_action_state_type) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

虚拟函数指针 g_action_group_get_action_state_type()

get_action_state_hint
GVariant* (* get_action_state_hint) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

虚拟函数指针 g_action_group_get_action_state_hint()

get_action_state
GVariant* (* get_action_state) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

虚拟函数指针 g_action_group_get_action_state()

change_action_state
void (* change_action_state) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* value
  )
 

虚拟函数指针 g_action_group_change_action_state()

activate_action
void (* activate_action) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* parameter
  )
 

虚拟函数指针 g_action_group_activate_action()

action_added
void (* action_added) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

类 closure,用于 GActionGroup::action-added 信号。

action_removed
void (* action_removed) (
    GActionGroup* action_group,
    const gchar* action_name
  )
 

类 closure,用于 GActionGroup::action-removed 信号。

action_enabled_changed
void (* action_enabled_changed) (
    GActionGroup* action_group,
    const gchar* action_name,
    gboolean enabled
  )
 

类 closure,用于 GActionGroup::action-enabled-changed 信号。

action_state_changed
void (* action_state_changed) (
    GActionGroup* action_group,
    const gchar* action_name,
    GVariant* state
  )
 

类 closure,用于 GActionGroup::action-enabled-changed 信号。

query_action
gboolean (* query_action) (
    GActionGroup* action_group,
    const gchar* action_name,
    gboolean* enabled,
    const GVariantType** parameter_type,
    const GVariantType** state_type,
    GVariant** state_hint,
    GVariant** state
  )
 

虚拟函数指针 g_action_group_query_action()

虚拟方法

Gio.ActionGroup.action_added

针对 action_group 发出 GActionGroup::action-added 信号。

since: 2.28

Gio.ActionGroup.action_enabled_changed

针对 action_group 发出 GActionGroup::action-enabled-changed 信号。

since: 2.28

Gio.ActionGroup.action_removed

针对 action_group 发出 GActionGroup::action-removed 信号。

since: 2.28

Gio.ActionGroup.action_state_changed

针对 action_group 发出 GActionGroup::action-state-changed 信号。

since: 2.28

Gio.ActionGroup.activate_action

激活 action_group 中命名的操作。

since: 2.28

Gio.ActionGroup.change_action_state

请求将 action_group 中命名的操作的状态更改为 value

since: 2.28

Gio.ActionGroup.get_action_enabled

检查中 action_group 命名的操作当前是否已 启用。

since: 2.28

Gio.ActionGroup.get_action_parameter_type

查询激活 action_group 中命名的操作时必须提供的参数的类型。

since: 2.28

Gio.ActionGroup.get_action_state

查询 action_group 中命名的操作的当前状态。

since: 2.28

Gio.ActionGroup.get_action_state_hint

针对 action_group 中命名的操作的状态的有效值范围,请求提示。

since: 2.28

Gio.ActionGroup.get_action_state_type

查询 action_group 中命名的操作的状态类型。

since: 2.28

Gio.ActionGroup.has_action

检查中 action_group 命名的操作是否存在。

since: 2.28

Gio.ActionGroup.list_actions

列出 action_group 中包含的操作。

since: 2.28

Gio.ActionGroup.query_action

查询 action_group 中命名的操作的所有方面。

since: 2.32