Programmation GTK2 en Pascal/GtkToolbar

Programmation GTK2 en Pascal

Présentation

modifier

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
Hiérarchie
GObject
  └─GtkObject
      └─GtkWidget
          └─GtkContainer
              └─GtkToolbar

Utilisation de base

modifier

Création

modifier

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

function gtk_toolbar_new : PGtkWidget;

Ajout d'élément

modifier

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

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

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