Programmation GTK2 en Pascal/GtkMenuItem

Un livre de Wikilivres.
Programmation GTK2 en Pascal

Présentation[modifier | modifier le wikicode]

Le contrôle GtkMenuItem est l'élément, l'item de base qu'on retrouve dans un menu, mais également dans la barre de menu.

Hiérarchie[modifier | modifier le wikicode]

Hiérarchie
GObject
  └─GtkObject
      └─GtkWidget
          └─GtkContainer
              └─GtkBin
                  └─GtkItem
                      └─GtkMenuItem
                          ├─GtkImageMenuItem
                          ├─GtkCheckMenuItemGtkRadioMenuItem
                          ├─GtkSeparatorMenuItem
                          └─GtkTearoffMenuItem

Utilisation de base[modifier | modifier le wikicode]

Création[modifier | modifier le wikicode]

Pour créer un GtkMenuItem, il existe trois fonctions différentes :

function gtk_menu_item_new : PGtkWidget;
function gtk_menu_item_new_with_label(_label : Pgchar) : PGtkWidget;
function gtk_menu_item_new_with_mnemonic(_label : Pgchar) : PGtkWidget;

La première fonction crée un item vide, la deuxième un item avec un label à l'intérieur et la troisième un item avec un label qui accepte les raccourcis clavier (le caractère est précédé par un « _ », exemple : _Fichier).

Après avoir créé un item de menu vide avec la première fonction, on pourra ajouter un contrôle quelconque avec la fonction gtk_container_add.

Ajout dans un menu[modifier | modifier le wikicode]

Le contrôle GtkMenuItem ne possède pas de fonction qui permette d'ajouter un GtkMenuItem dans un GtkMenu (ou une GtkMenuBar). Il faut pour cela utiliser la fonction gtk_menu_shell_append du contrôle GtkMenuShell.

Attacher un menu[modifier | modifier le wikicode]

Pour attacher un GtkMenu à un GtkMenuItem, il faut utiliser cette fonction :

procedure gtk_menu_item_set_submenu(menu_item : PGtkMenuItem; submenu : PGtkWidget);

Le premier paramètre menu_item correspond à l'item qui va recevoir le menu submenu. Une fois cette fonction utilisée, un clic de souris sur le GtkMenuItem menu_item ouvrira le GtkMenu submenu.

Intercepter un clic de souris[modifier | modifier le wikicode]

Afin d'agir en fonction des actions de l'utilisateur, il faut intercepter le signal activate qui correspond à un clic de souris.

Programme exemple[modifier | modifier le wikicode]

Voir l'exemple écrit pour le contrôle GtkMenu qui met en œuvre des GtkMenuItem dans la barre de menu et dans un menu et dont certains ont un sous-menu rattaché.


Menu : GtkMenuBar ~ GtkMenu ~ GtkMenuShellGtkMenuItem ~ GtkImageMenuItem ~ GtkCheckMenuItem ~ GtkRadioMenuItem ~ GtkSeparatorMenuItem ~ GtkTearoffMenuItem