结构

GioActionEntry

说明 [源代码]

struct GActionEntry {
  const gchar* name;
  void (* activate) (
    GSimpleAction* action,
    GVariant* parameter,
    gpointer user_data
  );
  const gchar* parameter_type;
  const gchar* state;
  void (* change_state) (
    GSimpleAction* action,
    GVariant* value,
    gpointer user_data
  );
}

此结构定义了一个单一的动作。可配合 g_action_map_add_action_entries() 使用。

结构中各项的顺序旨在反映使用频率。可以用不完整的初始化程序来省略后面的某些值,使其保持为 NULLname 之后的所有值均为可选。未来可能会添加其他可选字段。

请参阅 g_action_map_add_action_entries() 查看示例。

结构成员
name

动作的名称。

activate

用于连接到动作的“activate”信号的回调。自 GLib 2.40 起,对于有状态动作,该值可以为 NULL,在这种情况下将使用默认处理程序。对于没有参数的布尔状态动作,该值将切换。对于其他状态类型(并且参数类型等于状态类型),该值将是一个仅调用 change_state(它需要提供)的函数。

parameter_type

动作的激活函数必须传递的参数类型,以单个 GVariant 类型字符串(或 NULL(无参数))的形式提供。

state

动作的初始状态,以 GVariant 文本格式 提供。该状态在没有额外类型信息的情况下解析,因此如有必要,必须将类型标记添加到字符串中。无状态动作应在此处提供 NULL

change_state

用于连接到动作的“change-state”信号的回调。所有有状态动作都应在此提供一个处理程序;无状态动作则无需提供。