Programmation GTK2 en Pascal/GtkMenuItem
Programmation GTK2 en Pascal |
|
Présentation
modifierLe 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
modifierHiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer └─GtkBin └─GtkItem └─GtkMenuItem ├─GtkImageMenuItem ├─GtkCheckMenuItem ─ GtkRadioMenuItem ├─GtkSeparatorMenuItem └─GtkTearoffMenuItem |
Utilisation de base
modifierCréation
modifierPour 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
modifierLe 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
modifierPour 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
modifierAfin d'agir en fonction des actions de l'utilisateur, il faut intercepter le signal activate
qui correspond à un clic de souris.
Programme exemple
modifierVoir 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 ~ GtkMenuShell — GtkMenuItem ~ GtkImageMenuItem ~ GtkCheckMenuItem ~ GtkRadioMenuItem ~ GtkSeparatorMenuItem ~ GtkTearoffMenuItem |