Programmation GTK2 en Pascal/GtkToolbar

Un livre de Wikilivres.
Programmation GTK2 en Pascal

Présentation[modifier | modifier le wikicode]

Le contrôle GtkToolbar permet de gérer une barre d'outils dans une fenêtre. Cette barre d'outils permet de contenir des contrôles, le plus souvent de style boutons avec icônes.

Hiérarchie[modifier | modifier le wikicode]

Hiérarchie
GObject
  └─GtkObject
      └─GtkWidget
          └─GtkContainer
              └─GtkToolbar

Utilisation de base[modifier | modifier le wikicode]

Création[modifier | modifier le wikicode]

La fonction de création d'une barre d'outils est simple :

function gtk_toolbar_new : PGtkWidget;

Ajout d'élément[modifier | modifier le wikicode]

Pour ajouter des éléments dans une GtkToolbar, il faut utiliser les fonctions suivantes :

procedure gtk_toolbar_insert(toolbar : PGtkToolbar; item : PGtkToolItem; pos : gint);

Le paramètre toolbar est la barre d'outils, item est un GtkToolItem et pos est la position d'insertion, 0 insérant au début de la barre (à gauche ou en haut), un nombre négatif insérant à la fin (à droite ou en bas).

NB : Les anciennes fonctions gtk_toolbar_append_item, gtk_toolbar_prepend_item et gtk_toolbar_insert_item ne sont plus supportées et ne devraient plus être utilisées dans les nouveaux programmes.

Présentation de la barre[modifier | modifier le wikicode]

La barre d'outils peut être horizontale ou verticale. La fonction pour changer cette présentation est :

procedure gtk_toolbar_set_orientation(toolbar : PGtkToolbar; orientation : TGtkOrientation);

Le paramètre orientation peut prendre les valeurs :

  • GTK_ORIENTATION_HORIZONTAL
  • GTK_ORIENTATION_VERTICAL

Programme exemple[modifier | modifier le wikicode]

Nous allons créer dans une fenêtre une barre d'outils qui pour l'instant ne contient rien. Elle s'étoffera dans les autres articles traitant des éléments d'une barre d'outils.

Voilà le fichier gtk042.pas :

program gtk042;

uses glib2, gtk2;

var
  pFenetre     : PGtkWidget;
  pVBox        : PGtkWidget;
  pBarreOutils : PGtkWidget;
  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), 'Gtk042 : 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 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 gtk042 :


Barre d'outils : GtkToolbar ~ GtkToolItem ~ GtkToolButton ~ GtkMenuToolButton ~ GtkToggleToolButton ~ GtkRadioToolButton ~ GtkSeparatorToolItem