Programmation GTK2 en Pascal/GtkSeparatorToolItem
Programmation GTK2 en Pascal |
|
Présentation
modifierLe contrôle GtkSeparatorToolItem permet de gérer un séparateur d'éléments dans une barre d'outils.
Hiérarchie
modifierHiérarchie |
GObject └─GtkObject └─GtkWidget └─GtkContainer └─GtkBin └─GtkToolItem └─GtkSeparatorToolItem |
Utilisation de base
modifierCréation
modifierPour 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
modifierNous 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 d''outils');
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 |