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.