Interface ActionMap

All Superinterfaces:
Proxy
All Known Implementing Classes:
ActionMap.ActionMap$Impl, Application, Application, Application, ApplicationWindow, ApplicationWindow, SimpleActionGroup

@Generated("org.javagi.JavaGI") public interface ActionMap extends Proxy

GActionMap is an interface for action containers.

The GActionMap interface is implemented by ActionGroup implementations that operate by containing a number of named Action instances, such as SimpleActionGroup.

One useful application of this interface is to map the names of actions from various action groups to unique, prefixed names (e.g. by prepending "app." or "win."). This is the motivation for the ‘Map’ part of the interface name.

Since:
2.32
  • Method Details

    • getType

      static @Nullable Type getType()
      Get the GType of the ActionMap class.
      Returns:
      the GType
    • addAction

      default void addAction(Action action)

      Adds an action to the actionMap.

      If the action map already contains an action with the same name as action then the old action is dropped from the action map.

      The action map takes its own reference on action.

      Parameters:
      action - a Action
      Since:
      2.32
    • addActionEntries

      default void addActionEntries(@Nullable ActionEntry @Nullable [] entries, @Nullable MemorySegment userData)

      A convenience function for creating multiple SimpleAction instances and adding them to a ActionMap.

      Each action is constructed as per one Gio.ActionEntry.

      static void
      activate_quit (GSimpleAction *simple,
                     GVariant      *parameter,
                     gpointer       user_data)
      {
        exit (0);
      }
      
      static void
      activate_print_string (GSimpleAction *simple,
                             GVariant      *parameter,
                             gpointer       user_data)
      {
        g_print ("%s\\n", g_variant_get_string (parameter, NULL));
      }
      
      static GActionGroup *
      create_action_group (void)
      {
        const GActionEntry entries[] = {
          { "quit",         activate_quit              },
          { "print-string", activate_print_string, "s" }
        };
        GSimpleActionGroup *group;
      
        group = g_simple_action_group_new ();
        g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL);
      
        return G_ACTION_GROUP (group);
      }
      
      Parameters:
      entries - a pointer to the first item in an array of Gio.ActionEntry structs
      userData - the user data for signal connections
      Since:
      2.32
    • lookupAction

      default @Nullable Action lookupAction(String actionName)

      Looks up the action with the name actionName in actionMap.

      If no such action exists, returns NULL.

      Parameters:
      actionName - the name of an action
      Returns:
      a Action
      Since:
      2.32
    • removeAction

      default void removeAction(String actionName)

      Removes the named action from the action map.

      If no action of this name is in the map then nothing happens.

      Parameters:
      actionName - the name of the action
      Since:
      2.32
    • removeActionEntries

      default void removeActionEntries(@Nullable ActionEntry @Nullable [] entries)

      Remove actions from a ActionMap. This is meant as the reverse of addActionEntries(ActionEntry[], MemorySegment).

      static const GActionEntry entries[] = {
          { "quit",         activate_quit              },
          { "print-string", activate_print_string, "s" }
      };
      
      void
      add_actions (GActionMap *map)
      {
        g_action_map_add_action_entries (map, entries, G_N_ELEMENTS (entries), NULL);
      }
      
      void
      remove_actions (GActionMap *map)
      {
        g_action_map_remove_action_entries (map, entries, G_N_ELEMENTS (entries));
      }
      
      Parameters:
      entries - a pointer to the first item in an array of Gio.ActionEntry structs
      Since:
      2.78