Aller au contenu

Programmation GTK2 en Pascal/GtkMenuItem

Un livre de Wikilivres.
Programmation GTK2 en Pascal

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
GObject
  └─GtkObject
      └─GtkWidget
          └─GtkContainer
              └─GtkBin
                  └─GtkItem
                      └─GtkMenuItem
                          ├─GtkImageMenuItem
                          ├─GtkCheckMenuItemGtkRadioMenuItem
                          ├─GtkSeparatorMenuItem
                          └─GtkTearoffMenuItem

Utilisation de base

[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