Interface SimpleAction.OnChangeState

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.OnChangeState
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Indicates that the action just received a request to change its
    state.
  • Method Details

    • onChangeState

      void onChangeState(@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:
      <!-- language="C" -->
       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:
      value - the requested value for the state