Toc Gallery Index Tree Gtk.Menu_Shell

Hierarchy

Description

This widget is a base class for all menu widgets. It contains a list of items that can be navigated, selected and activated by the user. It can not be instantiated directly.

A menu is considered "active" when it is displayed on the screen, or, in the case of a menu_bar when one of its menus is active.

An item is "selected" if it is displayed in a prelight state and its submenu (if any) displayed.

Types

Subprograms

  • function Get_Type return Gtk.Gtk_Type;
    Return the internal value associated with a Gtk_Menu_Shell.
  • procedure Append (Menu_Shell : access Gtk_Menu_Shell_Record; Child : access Gtk_Menu_Item_Record'Class);
    Add a new item at the end of the menu.
  • procedure Prepend (Menu_Shell : access Gtk_Menu_Shell_Record; Child : access Gtk_Menu_Item_Record'Class);
    Add a new item at the beginning of the menu
  • procedure Insert (Menu_Shell : access Gtk_Menu_Shell_Record; Child : access Gtk_Menu_Item_Record'Class; Position : Gint);
    Add a new item at a specific position in the menu. The first item is at position 0. To insert as the last item in the menu, set Position to -1.
  • procedure Set_Take_Focus (Menu_Shell : access Gtk_Menu_Shell_Record; Take_Focus : Boolean := True);
    function Get_Take_Focus (Menu_Shell : access Gtk_Menu_Shell_Record) return Boolean;
    If Take_Focus is TRUE the menu shell will take the keyboard focus so that it will receive all keyboard events which is needed to enable keyboard navigation in menus.

    Setting Take_Focus to FALSE is useful only for special applications like virtual keyboard implementations which should not take keyboard focus.

    The Take_Focus state of a menu or menu bar is automatically propagated to submenus whenever a submenu is popped up, so you don't have to worry about recursively setting it for your entire menu hierarchy. Only when programmatically picking a submenu and popping it up manually, the Take_Focus property of the submenu needs to be set explicitely.

    Note that setting it to %ALSE has side-effects:

    If the focus is in some other app, it keeps the focus and keynav in the menu doesn't work. Consequently, keynav on the menu will only work if the focus is on some toplevel owned by the onscreen keyboard.

    To avoid confusing the user, menus with Take_Focus set to FALSE should not display mnemonics or accelerators, since it cannot be guaranteed that they will work.

  • procedure Select_First (Menu_Shell : access Gtk_Menu_Shell_Record; Search_Sensitive : Boolean);
    Select the first visible or selectable child of the menu shell; don't select tearoff items unless the only item is a tearoff item. If Search_Sensitive is True, search for the first selectable menu item, otherwise select nothing if the first item isn't sensitive. This should be False if the menu is being popped up initially.
  • Signals emission

  • procedure Deactivate (Menu_Shell : access Gtk_Menu_Shell_Record);
    Emit the "deactivate" signal. This deselects the selected item, ungrabs the mouse and keyboard, and erase the Menu_Shell from the screen.
  • procedure Select_Item (Menu_Shell : access Gtk_Menu_Shell_Record; Item : access Gtk_Menu_Item_Record'Class);
    Select a new item in the menu, after deselecting the current item.
  • procedure Deselect (Menu_Shell : access Gtk_Menu_Shell_Record);
    Deselect the currently selected item.
  • procedure Activate_Item (Menu_Shell : access Gtk_Menu_Shell_Record; Item : access Gtk_Menu_Item_Record'Class; Force_Deactivate : Boolean);
    Activate the item. If Force_Deactivate is True or the menu_shell sets this property, Menu_Shell and all its parent menus are deactivated and erased from the screen.
  • procedure Cancel (Menu_Shell : access Gtk_Menu_Shell_Record);
    Cancels the selection within the menu shell.

Signals

  • activate_current
    procedure Handler (Menu_Shell : access Gtk_Menu_Shell_Record'Class; Force_Hide : Gboolean);
    Activates the current menu item within the Menu_Shell. if Force_Hide is True, hide the menu afterwards.
  • cancel
    procedure Handler (Menu_Shell : access Gtk_Menu_Shell_Record'Class);
    Cancels the selection within the menu_shell. Causes a "selection-done" signal to be emitted.
  • cycle_focus
    procedure Handler (Menu_Shell : access Gtk_Menu_Shell_Record'Class; Direction : Gtk_Menu_Direction_Type);
    You should emit this signal to request that another child of Menu_Shell gets the focus. The child is not activated.
  • deactivate
    procedure Handler (Menu_Shell : access Gtk_Menu_Shell_Record'Class);
    Emitted when the menu is deactivated, ie is erased from the screen.
  • move_current
    procedure Handler (Menu_Shell : access Gtk_Menu_Shell_Record'Class; Direction : Gtk_Menu_Direction_Type);
    You should emit this signal to request that another menu item be selected. It is mostly useful when bound to a keybinding. In a menu, this is bound by default to the arrow keys to move the the selection.

Properties

  • Take_Focus_Property
    Boolean
    A boolean that determines whether the menu grabs the keyboard

Alphabetical Index