Interface SimpleAction.ChangeStateCallback

All Superinterfaces:
FunctionPointer
Enclosing class:
SimpleAction
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public static interface SimpleAction.ChangeStateCallback extends FunctionPointer

Functional interface declaration of the ChangeStateCallback callback.

See Also:
  • Method Details

    • run

      void run(@Nullable Variant value)

      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 g_simple_action_new_stateful(). 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 g_simple_action_set_state() 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 g_simple_action_set_state() 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.

      Since:
      2.30
    • upcall

      default void upcall(MemorySegment sourceSimpleAction, MemorySegment value)
      The upcall method is called from native code. The parameters are marshaled and run(Variant) is executed.
    • toCallback

      default MemorySegment toCallback(Arena arena)
      Creates a native function pointer to the upcall(MemorySegment, MemorySegment) method.
      Specified by:
      toCallback in interface FunctionPointer
      Parameters:
      arena - the arena in which the function pointer is allocated
      Returns:
      the native function pointer