GTK+ par l'exempleDate de publication : 28 juin 2006
XIII. Les barres d'outils
XIII-A. Aperçu
XIII-B. Création d'une barre d'outils
XIII-C. Code source
XIII. Les barres d'outils
XIII-A. Aperçu
 Cliquez pour agrandir
XIII-B. Création d'une barre d'outils
La création d'une barre d'outils ressemble fort à celle d'un menu, en plus simple puisqu'il n'y a pas de sous menu : on crée notre barre d'outils (gtk_toolbar_new) puis les éléments de la barre, pour cela on utilise des boutons (gtk_tool_button_new_from_stock), que l'on insére dans la barre (gtk_toolbar_insert). Pas conséquent notre fichier barreoutils.c ressemble à menu.c :
barreoutils.c | #include <gtk/gtk.h>
#include "callback.h"
#include "barreoutils.h"
static void toolbar_item_new (GtkToolbar *, const gchar *, GCallback, gpointer);
GtkToolbar *toolbar_new (gpointer user_data)
{
GtkWidget *p_toolbar = NULL;
p_toolbar = gtk_toolbar_new ();
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_NEW, G_CALLBACK (cb_new), user_data);
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_OPEN, G_CALLBACK (cb_open), user_data);
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_SAVE, G_CALLBACK (cb_save), user_data);
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_SAVE_AS, G_CALLBACK (cb_saveas), user_data);
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_CLOSE, G_CALLBACK (cb_close), user_data);
toolbar_item_new (GTK_TOOLBAR (p_toolbar), GTK_STOCK_QUIT, G_CALLBACK (cb_quit), user_data);
return GTK_TOOLBAR (p_toolbar);
}
static void toolbar_item_new (GtkToolbar *p_toolbar, const gchar *stock_id, GCallback callback, gpointer user_data)
{
GtkToolItem *p_tool_item = NULL;
p_tool_item = gtk_tool_button_new_from_stock (stock_id);
g_signal_connect (G_OBJECT (p_tool_item), "clicked", callback, user_data);
gtk_toolbar_insert (p_toolbar, p_tool_item, -1);
} |
Le code n'est pas complet car lorsque j'exécute le programme, GTK+ affiche, en plus des icônes, le texte sous les boutons. Pour modifier cela, il suffit d'ajouter une ligne de code :
barreoutils.c | gtk_toolbar_set_style (GTK_TOOLBAR (p_toolbar), GTK_TOOLBAR_ICONS); |
 |
Pourquoi gtk_tool_button_new_from_stock retourne un GtkToolItem et non un GtkWidget comme nous avons été habitué jusqu'à présent. Il s'agit d'une bizarrerie de GTK+ dont je ne connais pas la raison.
Pour anticiper un changement d'interface (dans GTK+ 3.0 peut être ?), nous aurions pu écrire :
|
Gtkwidget *p_tool_item = NULL;
p_tool_item = GTK_WIDGET (gtk_tool_button_new_from_stock (stock_id));
g_signal_connect (G_OBJECT (p_tool_item), "clicked", callback, user_data);
gtk_toolbar_insert (p_toolbar, GTK_TOOL_ITEM (p_tool_item), -1); |
XIII-C. Code source
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2006 Nicolas Joseph.
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|