< Programmation GTK2 en Pascal
| Programmation GTK2 en Pascal |
|
Présentation
Le contrôle GtkSeparatorMenuItem permet de tracer une ligne qui va séparer les différents éléments d'un menu.
Hiérarchie
| Hiérarchie |
GObject
└─GtkObject
└─GtkWidget
└─GtkContainer
└─GtkBin
└─GtkItem
└─GtkMenuItem
├─GtkImageMenuItem
├─GtkCheckMenuItem ─ GtkRadioMenuItem
├─GtkSeparatorMenuItem
└─GtkTearoffMenuItem |
Utilisation de base
Création
Il n'y a qu'une seule fonction pour ce contrôle, c'est sa fonction de création :
function gtk_separator_menu_item_new : PGtkWidget;
Ajout
Pour ajouter ce contrôle dans un menu, il faut procéder comme avec tous les autres items, c'est-à-dire utiliser la fonction gtk_menu_shell_append.
Programme exemple
Nous allons créer un menu dans celui du style de l'exemple gtk034.pas contenant un GtkSeparatorMenuItem.
Voilà le fichier gtk037.pas :
program gtk037;
uses glib2, gtk2;
var
pFenetre : PGtkWidget;
pVBox : PGtkWidget;
pBarreMenu : PGtkWidget;
pMenuItemFichier : PGtkWidget;
pMenuFichier : PGtkWidget;
pMenuItemOuvrir : PGtkWidget;
pMenuItemFermer : PGtkWidget;
pMenuItemQuitter : PGtkWidget;
pMenuSeparateur : PGtkWidget;
begin
gtk_init(@argc, @argv);
pFenetre := gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(pFenetre), GTK_WIN_POS_CENTER);
gtk_window_set_default_size(GTK_WINDOW(pFenetre), 320, 200);
gtk_window_set_title(GTK_WINDOW(pFenetre), 'Gtk037 : Menu avec séparateur');
gtk_signal_connect(pGTKOBJECT(pFenetre), 'destroy', GTK_SIGNAL_FUNC(@gtk_main_quit), NULL);
// Création de la GtkVBox
pVBox := gtk_vbox_new(FALSE, 5);
gtk_container_add(GTK_CONTAINER(pFenetre), pVBox);
// Création de la barre de menu
pBarreMenu := gtk_menu_bar_new;
gtk_box_pack_start(GTK_BOX(pVBox), pBarreMenu, FALSE, FALSE, 0);
// Création de l'item Fichier et rattachement à la barre de menu
pMenuItemFichier := gtk_menu_item_new_with_label('Fichier');
gtk_menu_shell_append(GTK_MENU_SHELL(pBarreMenu), pMenuItemFichier);
// Création du menu Fichier et rattachement à l'item Fichier
pMenuFichier := gtk_menu_new;
gtk_menu_item_set_submenu(GTK_MENU_ITEM(pMenuItemFichier), pMenuFichier);
// Création de l'item Ouvrir et rattachement au menu Fichier
pMenuItemOuvrir := gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemOuvrir);
// Création de l'item Fermer et rattachement au menu Fichier
pMenuItemFermer := gtk_image_menu_item_new_from_stock(GTK_STOCK_CLOSE, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemFermer);
// Création du séparateur
pMenuSeparateur := gtk_separator_menu_item_new;
gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuSeparateur);
// Création de l'item Quitter et rattachement au menu Fichier
pMenuItemQuitter := gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(pMenuFichier), pMenuItemQuitter);
g_signal_connect(pGTKOBJECT(pMenuItemQuitter), 'activate', G_CALLBACK(@gtk_main_quit), NULL);
gtk_widget_show_all(pFenetre);
gtk_main;
end.
Voilà ce que donne l'exécution du programme gtk037.pas après avoir cliqué sur le menu « Fichier » :

|
Menu : GtkMenuBar ~ GtkMenu ~ GtkMenuShell — GtkMenuItem ~ GtkImageMenuItem ~ GtkCheckMenuItem ~ GtkRadioMenuItem ~ GtkSeparatorMenuItem ~ GtkTearoffMenuItem |
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons – Attribution – Partage à l’identique. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.