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 |