Programmation GTK/Boîtes de dialogue


Les widgets boîtes de dialogue sont très simples : ce sont simplement des fenêtres avec plusieurs choses déjà placées dedans. La structure d'une boîte de dialogue est :

 struct GtkDialog
 {
      GtkWindow window;
     
      GtkWidget *vbox;
      GtkWidget *action_area;
 };

Comme vous le voyez, cela crée simplement une fenêtre et la place dans une vbox suivie d'un séparateur et d'une hbox pour la « zone d'action ».

Le widget boîte de dialogue peut servir à produire des messages pour l'utilisateur ainsi qu'à d'autres tâches. Il est vraiment rudimentaire et il n'y a qu'une seule fonction pour les boîtes de dialogue :

 GtkWidget* gtk_dialog_new (void);

Ainsi, pour créer un nouveau dialogue, on utilise :

 GtkWidget window;
 window = gtk_dialog_new ();

Ceci créera la boîte de dialogue et c'est maintenant à vous de l'utiliser. Vous pouvez, par exemple, placer un bouton dans la zone d'action en faisant quelque chose comme :

 button = ...
 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->action_area), button,
                     TRUE, TRUE, 0);
 gtk_widget_show (button);

Et vous pouvez aussi ajouter un label à la zone de la vbox :

 label = gtk_label_new ("Les boîtes de dialogues sont pratiques");
 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (window)->vbox), label, TRUE,
                     TRUE, 0);
 gtk_widget_show (label);

Comme exemple d'utilisation d'une boîte de dialogue, vous pourriez mettre deux boutons dans la zone d'action (un bouton « Annuler » et un bouton « Ok ») et un label dans la zone de la vbox posant une question à l'utilisateur ou signalant une erreur, etc. Vous pouvez alors attacher un signal différent à chacun des boutons et réaliser l'opération que l'utilisateur a choisie.