Programmation GTK2 en Pascal/GtkSeparatorToolItem
Programmation GTK2 en Pascal |
|
Présentation
Le contrôle GtkSeparatorToolItem permet de gérer un séparateur d'éléments dans une barre d'outils.
Hiérarchie
Hiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer └─GtkBin └─GtkToolItem └─GtkSeparatorToolItem |
Utilisation de base
Création
Pour créer un séparateur, Gtk+ nous donne une fonction simple :
function gtk_separator_tool_item_new : PGtkToolItem;
NB : Contrairement aux fonctions usuelles de Gtk+ de création de contrôles, ces fonctions ne renvoient pas un PGtkWidget
mais un PGtkToolItem
.
NB 2 : La fonction n'est pas encore définie dans les entêtes Pascal de Gtk+ de la version 1.9.8 de Free Pascal, il faut donc la définir nous-même. Cf le programme d'exemple ci-dessous.
Programme exemple
Nous allons créer dans une fenêtre une barre d'outils avec deux boutons encadrant un séparateur.
Voilà le fichier gtk047.pas
:
program gtk047; uses glib2, gtk2; procedure gtk_toolbar_insert(toolbar : PGtkToolbar; item : PGtkToolItem; pos : gint); cdecl; external gtklib name 'gtk_toolbar_insert'; function gtk_separator_tool_item_new : PGtkToolItem; cdecl; external gtklib name 'gtk_separator_tool_item_new'; var pFenetre : PGtkWidget; pVBox : PGtkWidget; pBarreOutils : PGtkWidget; pBouton1 : PGtkToolItem; pBouton2 : PGtkToolItem; pSeparateur : PGtkToolItem; pLabel : 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), 'Gtk047 : Barre doutils'); gtk_signal_connect(pGTKOBJECT(pFenetre), 'destroy', G_CALLBACK(@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 d'outils pBarreOutils := gtk_toolbar_new; gtk_box_pack_start(GTK_BOX(pVBox), pBarreOutils, FALSE, FALSE, 0); // Création du premier bouton pBouton1 := gtk_tool_button_new_from_stock(GTK_STOCK_OPEN); gtk_toolbar_insert(GTK_TOOLBAR(pBarreOutils), pBouton1, -1); // Création du séparateur pSeparateur := gtk_separator_tool_item_new; gtk_toolbar_insert(GTK_TOOLBAR(pBarreOutils), pSeparateur, -1); // Création du deuxième bouton pBouton2 := gtk_tool_button_new_from_stock(GTK_STOCK_QUIT); gtk_toolbar_insert(GTK_TOOLBAR(pBarreOutils), pBouton2, -1); g_signal_connect(pGTKOBJECT(pBouton2), 'clicked', G_CALLBACK(@gtk_main_quit), NULL); // Création du label pLabel := gtk_label_new('Label'); gtk_box_pack_start(GTK_BOX(pVBox), pLabel, FALSE, FALSE, 0); gtk_widget_show_all(pFenetre); gtk_main; end.
Voilà ce que donne l'exécution du programme gtk047
:
Barre d'outils : GtkToolbar ~ GtkToolItem ~ GtkToolButton ~ GtkMenuToolButton ~ GtkToggleToolButton ~ GtkRadioToolButton ~ GtkSeparatorToolItem |