信号

GioSimpleAction::change-state

since: 2.30

声明

void
change_state (
  GSimpleAction* self,
  GVariant* value,
  gpointer user_data
)

描述 [src]

表示该动作刚刚收到一个更改其状态的请求。

value 将始终是正确的状态类型,即传递给 g_simple_action_new_stateful() 的初始状态类型。如果请求更改状态时给出错误的类型,则不会发出此信号。

如果没有连接到此信号的处理器,则默认行为是调用 g_simple_action_set_state() 来设置状态为请求的值。如果您连接了一个信号处理器,则不会采取任何默认操作。如果状态应该更改,那么您必须从处理器中调用 g_simple_action_set_state()

“change-state” 处理器的一个示例

static void
change_volume_state (GSimpleAction *action,
                     GVariant      *value,
                     gpointer       user_data)
{
  gint requested;

  requested = g_variant_get_int32 (value);

  // Volume only goes from 0 to 10
  if (0 <= requested && requested <= 10)
    g_simple_action_set_state (action, value);
}

处理器无需将状态设置为请求的值。它可以将其设置为任何值,或执行其他操作。

默认处理器

默认处理器在通过 g_signal_connect() 添加的处理器之后调用。

可用以来:2.30

参数

value

类型: GVariant

状态的请求值。

该参数可以是 NULL
数据由函数的调用者拥有。