[suivant][précédent][précédent-bas][fin][haut]
La barre d’outils est très utile pour placer en dessous du menu les commandes les plus utilisées comme faire/défaire, nouveau, ouvrir, sauvegarde, etc. Un widge Gtk2::Toolbar est indispensable pour à toute bonne application.
Comme pour tous les autres widget, c’est très simple :
$toolbar = Gtk2::Toolbar->new();
|
GtkToolbar étant un container, après l’avoir créée, il va falloir y ajouter des widgets. Cela se divise en 2 catégories.
Voici les premières fonctions qui permettent d’ajouter un bouton avec du texte et (ou) un icône :
$toolbar->append_item ($text, $tooltip_text, $tooltip_private_text,
$icon, $callback, $user_data); $toolbar->prepend_item ($text, $tooltip_text, $tooltip_private_text, $icon, $callback, $user_data); $toolbar->insert_item ($text,$tooltip_text,$tooltip_private_text, $icon, $callback, $user_data, $position); |
La première fonction ajoute un bouton à la suite des autres boutons, la seconde l’ajoute en première position et la dernière à une position spécifique. Le paramètre $text n’est autre que le label du bouton. Le troisième paramètre, $tooltip_text, est le texte de la bulle d’aide. Le paramètre suivant, tooltip_private_text, n’est plus utilisé car la partie qui gère ce paramètre est obsolète. Il faut donc mettre ce paramètre à undef. Le paramètre $icon est là pour définir l’image qui sera associée au bouton. Les deux paramètres servent à connecter une fonction de rappel au clic sur le bouton. Le paramètre callback est en fait le nom de la fonction de rappel et $user_data est la donnée supplémentaire à passer à la fonction de rappel. Et pour terminer, la fonction insert_item possède un paramètre supplémentaire position qui détermine à quelle position le bouton doit être ajouté. Si cette valeur est soit trop grande, soit négative, cette fonction aura le même effect que append_item.
Ensuite il est possible de créer des éléments selon un type de widget prédéfini, comme Gtk2::RadioButton, Gtk2::ToggleButton, Gtk2::Button :
$toolbar->append_element ( $type, $widget, $text,
$tooltip_text, $tooltip_private_text, $icon, $callback, $user_data); $toolbar->prepend_element ( $type, $widget, $text, $tooltip_text, $tooltip_private_text, $icon, $callback, $user_data); $toolbar->insert_element ( $type, $widget, $text, $tooltip_text, $tooltip_private_text, $icon, $callback, $user_data,$position); |
La majorité des paramètres de ces fonctions ont été détaillés précédemment, nous n’allons donc étudier que les nouveaux. Tout d’abord, le paramètre $type permet de définir le type de widget que nous allons ajouter, et peut prendre une de ces valeurs :
Il y a ensuite le paramètre $widget qui doit être utiliser dans deux cas. Le premier cas est bien entendu, si nous ajoutons un élément de type 'widget'. Alors $widget sera en fait le widget que nous voulons ajouter.
Le deuxième cas est si nous ajoutons un élément de type 'radiobutton'. Nous avons vu que les boutons radio fonctionnaient par groupe, alors dans ce cas, pour grouper les boutons radios le paramètre $widget doit être un bouton radio ajouté précédemment pour que Gtk2-Perl puisse les grouper. Bien sûr, s’il s’agit du premier bouton radio, il faut mettre widget à undef. Dans tous les autres cas, le paramètre widget doit obligatoirement être undef.
Et maintenant, voila les fonctions pour ajouter n’importe quel type de widget :
$toolbar->append_widget ($widget, $tooltip_text, $tooltip_private_text);
$toolbar->prepend_widget ($widget, $tooltip_text, $tooltip_private_text); $toolbar->insert_widget ($widget, $tooltip_text, $tooltip_private_text, $position ); |
Cette fois, tout est simple, le paramètre $widget est simplement le widget que nous voulons ajouter. Il faudra tout de même connecter manuellement les signaux du widget ajouté.
Pour finir, il est possible d’utiliser les StockItem pour créer un bouton. Voici la fonction qui permet cela :
$toolbar->insert_stock ($stock_id, $tooltip_text, $tooltip_private_text,
$callback, $user_data, $position); |
Le paramètre $stock_id est tout simplement l’identifiant du GtkStockItem qui figurera sur le bouton.
Nous avons déjà vu que les fonctions de type *_element permettaient d’ajouter un espace pour rendre plus claire la barre d’outils. Il existe en plus de cela trois autres fonctions :
$toolbar->append_space();
$toolbar->prepend_space(); $toolbar->insert_space( $position ); |
Comme d’habitude la première fonction ajoute un espace à la suite des autres éléments, la deuxième au tout début de la barre d’outils et la troisième à une position particulière.
Pour supprimer un espace de la barre d’outils, il existe cette fonction :
$toolbar->remove_space($position);
|
La barre d’outils peut être orienter verticalement ou horizontalement et cela à n’importe quel moment a l’aide de cette fonction :
$toolbar->set_orientation( $orientation) ;
|
Le paramètre $orientation peut prendre deux valeurs :
Et, cette fonction permet de connaître l’orientation de la barre d’outils :
$toolbar->get_orientation();
|
Il est possible de changer la façon d’afficher certains éléments de la barre d’outils : afficher que le texte, seulement les icônes ou les deux. Voila la fonction qui permet de contrôler cela :
$toolbar->set_style( $style) ;
|
Le paramètre style peut prendre 4 valeurs différentes :
Et pour finir, cette fonction permet de connaître le style de la barre d’outils :
$toolbar->get_style();
|
Enfin pour terminer, Gtk2-Perl nous offre la possibilité de modifier la taille des icônes de la barre d’outils avec cette fonction :
$toolbar->set_icon_size( $icon_size);
|
Le paramètre $icon_size est du type GtkIconSize que nous avons déjà rencontré dans le chapitre sur les images. Nous allons tout de même rappeler les différentes valeurs possibles qui sont les suivantes :
Et bien sûr, pour connaître la taille des icônes, nous avons la fonction :
$toolbar->get_icon_size();
|
Dans cet exemple, nous allons juste créer une barre d’outils dans laquelle nous allons ajouter quelques boutons dont deux d’entre eux permettront de changer l’orientation de la barre d’outils, une image et une zone de saisie. Vous remarquerez que le texte associé à l’icône n’est pas défini par l’utilisateur ce qui fait que le texte affiché est “suivant” alors que la flêche sert à placer la barre horizontalement. Un jour, je prendrais peut-être le temps de voir comment faire cela !
La méthode pour insérer l’image n’est certainement pas la plus pratique. Vous pouvez voir une autre approche en analisant le code de appwindow.pl fourni parmi les exemples de Gtk2-Perl.

[suivant][précédent][précédent-bas][début][haut]