Programmation GTK2 en Pascal/GtkMenuItem
| 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 ├─GtkCheckMenuItem ─ GtkRadioMenuItem ├─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 ~ GtkMenuShell — GtkMenuItem ~ GtkImageMenuItem ~ GtkCheckMenuItem ~ GtkRadioMenuItem ~ GtkSeparatorMenuItem ~ GtkTearoffMenuItem |