Aller au contenu

Programmation GTK/Le widget bulle d'aide

Un livre de Wikilivres.


Ce sont les petits textes qui surgissent lorsque vous laissez votre pointeur sur un bouton ou un autre widget pendant quelques secondes. Ils sont faciles à utiliser, on ne donnera donc pas d'exemple. Si vous voulez voir du code, consultez le programme testgtk.c distribué avec GTK.

Certains widgets (comme les labels) ne fonctionnent pas avec les bulles d'aide.

Le premier appel que vous utiliserez sera pour créer une nouvelle bulle d'aide. Vous n'avez besoin que de le faire une fois dans une fonction donnée. Le GtkTooltip que cette fonction retourne peut être utilisé pour créer plusieurs bulles d'aide.

 GtkTooltips *gtk_tooltips_new (void);

Lorsque vous avez créé une nouvelle bulle d'aide et le widget sur lequel vous voulez l'utiliser, vous n'avez qu'à faire cet appel pour la configurer :

 void gtk_tooltips_set_tip (GtkTooltips *tooltips,
                             GtkWidget   *widget,
                             gchar       *tips_text);

Les paramètres sont la bulle d'aide déjà créée, suivi du widget pour lequel vous voulez voir apparaître cette bulle et le texte que vous voulez qu'elle contienne.

Voici un petit exemple :

 GtkTooltips *tooltips;
 GtkWidget *button;
 ...
 tooltips = gtk_tooltips_new ();
 button = gtk_button_new_with_label ("bouton 1");
 ...
 gtk_tooltips_set_tip (tooltips, button, "C'est le bouton 1",NULL);

D'autres fonctions peuvent être utilisées avec les bulles d'aide. Je ne ferais que les énumérer et les décrire brièvement.

 void gtk_tooltips_destroy (GtkTooltips *tooltips);

Destruction de bulles d'aide.

 void gtk_tooltips_enable (GtkTooltips *tooltips);

Activation d'un ensemble de bulles d'aide désactivées.

 void gtk_tooltips_disable (GtkTooltips *tooltips);

Désactivation d'un ensemble de bulles d'aide activées.

 void gtk_tooltips_set_delay (GtkTooltips *tooltips,
                              gint         delay);

Configure le nombre de millisecondes pendant lequel le pointeur doit se trouver sur le widget avant que la bulle d'aide n'apparaisse. Par défaut, ce délai est de 1000 millisecondes, soit 1 seconde.

 void gtk_tooltips_set_tips (GtkTooltips *tooltips,
                             GtkWidget   *widget,
                             gchar    *tips_text);

Change le texte d'une bulle d'aide déjà créée.

 void gtk_tooltips_set_colors (GtkTooltips *tooltips,
                               GdkColor    *background,
                               GdkColor    *foreground);

Configure les couleurs de fond et de premier plan des bulles d'aides. Je ne sais toujours pas comment spécifier les couleurs...

Et c'est tout concernant les fonctions associées aux bulles d'aide. C'est plus que vous ne vouliez sûrement en savoir :)