SimpleAction.connectChangeState
gulong connectChangeState(T)(T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == glib.variant.Variant)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : gio.simple_action.SimpleAction)))
&& Parameters!T.length < 3)Connect to ChangeState signal.
Indicates that the action just received a request to change its state.
value will always be of the correct state type, i.e. the type of the initial state passed to [gio.simple_action.SimpleAction.newStateful]. If an incorrect type is given when requesting to change the state, this signal is not emitted.
If no handler is connected to this signal then the default behaviour is to call [gio.simple_action.SimpleAction.setState] to set the state to the requested value. If you connect a signal handler then no default action is taken. If the state should change then you must call [gio.simple_action.SimpleAction.setState] from the handler.
An example of a 'change-state' handler:
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);
}The handler need not set the state to the requested value. It could set it to any value at all, or take some other action.
Parameters
callback | signal callback delegate or function to connect void callback(glib.variant.Variant value, gio.simple_action.SimpleAction simpleAction) value the requested value for the state (optional) simpleAction the instance the signal is connected to (optional) |
after | Yes.After to execute callback after default handler, No.After to execute before (default) |