Tiré de GTK+ Reference Manual
 acryline 2007 Boosteur de petits projets

GtkMessageDialog

GtkMessageDialog — Une fenêtre de message pratique

Synopsis

#include <gtk/gtk.h>

GtkMessageDialog;
enum GtkMessageType;
enum GtkButtonsType;
GtkWidget* gtk_message_dialog_new (GtkWindow *parent,
GtkDialogFlags flags,
GtkMessageType type,
GtkButtonsType buttons,
const gchar *message_format,
...);
GtkWidget* gtk_message_dialog_new_with_markup (GtkWindow *parent,
GtkDialogFlags flags,
GtkMessageType type,
GtkButtonsType buttons,
const gchar *message_format,
...);
void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog,
const gchar *str);
void gtk_message_dialog_set_image (GtkMessageDialog *dialog,
GtkWidget *image);
void gtk_message_dialog_format_secondary_text
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);
void gtk_message_dialog_format_secondary_markup
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);

Hiérarchie des objets

GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkWindow
+----GtkDialog
+----GtkMessageDialog

 Interfaces utilisés

GtkMessageDialog implémente AtkImplementorIface.

Propriétés


"buttons"			GtkButtonsType 		: Ecrire / Seulement construit
"image" GtkWidget : Ecrire / Lire
"message-type" GtkMessageType : Lire / Ecrire / construire
"secondary-text" gchararray : Lire / Ecrire
"secondary-use-markup" gboolean : : Lire / Ecrire
"text" gchararray : Lire / Ecrire
"use-markup" gboolean : Lire / Ecrire

Propriétés de style

"message-border"		 gint 			:Lire
"use-separator" gboolean :Lire

Description

GtkMessageDialogreprésente une boîte de dialogue avec une image à côté du texte  pour  appuyer le type de message ( Erreur, question, etc.).  C'est simplement un widget pratique; vous pouvez construire l' équivalent de GtkMessageDialog  avec GtkDialog sans beaucoup d'effort, mais  GtkMessageDialog sauvegarde le modèle.

La façon la plus pratique de créer une boîte de dialogue modale de message est d'utiliser gtk_dialog_run(), vous pouvez aussi passer le flag  GTK_DIALOG_MODAL , gtk_dialog_run() crée immédiatement  un dialogue modal et attend que l'utilisateur lui réponde. gtk_dialog_run() retourne quand n'importe quel bouton est cliqué.

Exemple 2. Une boîte de dialogue modale.

 dialog = gtk_message_dialog_new (main_application_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error loading file '%s': %s",
filename, g_strerror (errno));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);

Vous pouvez créer une GtkMessageDialog non modale ainsi:

Example 3. A non-modal dialog.

 dialog = gtk_message_dialog_new (main_application_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
"Error loading file '%s': %s",
filename, g_strerror (errno));

/* Détruit la boîte de dialogue quand l'utilisateur répond (par exemple clique sur un bouton) */
g_signal_connect_swapped (dialog, "response",
G_CALLBACK (gtk_widget_destroy),
dialog);

Details

GtkMessageDialog


typedef struct _GtkMessageDialog GtkMessageDialog;

enum GtkMessageType


typedef enum
{
GTK_MESSAGE_INFO,
GTK_MESSAGE_WARNING,
GTK_MESSAGE_QUESTION,
GTK_MESSAGE_ERROR,
GTK_MESSAGE_OTHER
} GtkMessageType;

Le type de message affiché dans la boîte de dialogue.
GTK_MESSAGE_INFO message informationnel
GTK_MESSAGE_WARNING message d'alerte non fatal
GTK_MESSAGE_QUESTION question appelant un choix
GTK_MESSAGE_ERROR message d'erreur fatale
GTK_MESSAGE_OTHER

enum GtkButtonsType


typedef enum
{
GTK_BUTTONS_NONE,
GTK_BUTTONS_OK,
GTK_BUTTONS_CLOSE,
GTK_BUTTONS_CANCEL,
GTK_BUTTONS_YES_NO,
GTK_BUTTONS_OK_CANCEL
} GtkButtonsType;

Définitions de boutons pour une boîte de dialogue. Si aucun de ces choix n'est approprié, utilisez simplement  GTK_BUTTONS_NONE puis appelez  gtk_dialog_add_buttons().

GTK_BUTTONS_NONE pas de bouton
GTK_BUTTONS_OK un bouton OK
GTK_BUTTONS_CLOSE un bouton Fermer
GTK_BUTTONS_CANCEL un bouton Annuler
GTK_BUTTONS_YES_NO des boutons Oui et Non
GTK_BUTTONS_OK_CANCEL des boutons OK et Annuler

gtk_message_dialog_new ()


GtkWidget*          gtk_message_dialog_new              (GtkWindow *parent,
GtkDialogFlags flags,
GtkMessageType type,
GtkButtonsType buttons,
const gchar *message_format,
...);

Crée une nouvelle boîte de dialogue de message, qui est une simple boîte de dialogue avec une icône indiquant le type de boîte de dialogue (erreur, alerte, etc.) et un texte . Quan l'utilisateur clique sur un bouton un signal est émis avec les IDs réponse de GtkResponseType. Voir GtkDialog pour plus de détails.

parent : parent transitoire, ou  NULL  s'il n'y en a pas
flags : flags
type : type de message
buttons : définition de boutons à utiliser
message_format : chaîne au format printf()-style , ou NULL
... : arguments pour message_format
Retourne : une nouvelle GtkMessageDialog

gtk_message_dialog_new_with_markup ()


GtkWidget*          gtk_message_dialog_new_with_markup  (GtkWindow *parent,
GtkDialogFlags flags,
GtkMessageType type,
GtkButtonsType buttons,
const gchar *message_format,
...);

Crée un nouvelle boîte de  dialogue à message qui est une simple boîte de dialogue  avec une icône indiquant son type  (erreur, alerte, etc.) et un texte balisé avec  le système de balises de texte Pango. Quand l'utilisateur clique sur un bouton un signal de réponse est émis avec les IDs de GtkResponseType. Voir GtkDialog pour plus de détails.

Les caractères spéciaux  XML  dans les arguments de printf() passé à cette fonction seront automatiquement  ignorés  quand cela sera nécessaire. (Voir g_markup_printf_escaped() pour la mise en application.) En général c'est  ce que vous voudrez, mais si vous voulez utiliser littéralement une chaîne avec des balises Pango comme label , alors vous devrez utiliser  gtk_message_dialog_set_markup() à la place,  comme vous ne pouvez passer ni une chaîne avec des balises comme format (il peut contenir des caractères "%") ni un argument string.

 GtkWidget *dialog;
dialog = gtk_message_dialog_new (main_application_window,
GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_MESSAGE_ERROR,
GTK_BUTTONS_CLOSE,
NULL);
gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog),
markup);

parent : parent transitoire, ou  NULL sil n'y en a pas 
flags : flags
type : type de message
buttons : définition des boutons à utiliser
message_format : chaîne au format printf()-style , ou NULL
... : arguments pour message_format
Retourne : une nouvelle GtkMessageDialog

Depuis 2.4


gtk_message_dialog_set_markup ()


void                gtk_message_dialog_set_markup       (GtkMessageDialog *message_dialog,
const gchar *str);

Définit le texte str d'une boîte de dialogue, qui est balisé avec le système de balise Pango.

message_dialog : une GtkMessageDialog
str : Chaîne balisée (voir format de balises Pango

Depuis 2.4


gtk_message_dialog_set_image ()


void                gtk_message_dialog_set_image        (GtkMessageDialog *dialog,
GtkWidget *image);

Définit l'image de la boîte de dialogue à  image.

dialog : une GtkMessageDialog
image : image

Depuis 2.10


gtk_message_dialog_format_secondary_text ()


void                gtk_message_dialog_format_secondary_text
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);

Définit à message_format le texte secondaire de la boîte de dialogue à message  (avec le styme printf()).

Notez que la définition d'un texte secondaire fait que le  texte primaire  s'affiche en gras, à moins que vous ayez fournit des balises spécifiques.

message_dialog : une GtkMessageDialog
message_format : chaîne au format printf()-style , ou NULL
... : arguments for message_format

Since 2.6


gtk_message_dialog_format_secondary_markup ()


void                gtk_message_dialog_format_secondary_markup
(GtkMessageDialog *message_dialog,
const gchar *message_format,
...);

Définit à message_format le texte secondaire de la boîte de dialogue  (avec me style printf()), qui est balisé avec le système de balises de Pango.

Notez que la définition d'un texte secondaire fait que le  texte primaire  s'affiche en gras, à moins que vous ayez fournit des balises spécifiques.

En raison d'une omission, cette fonction d'ignore pas les caractères spéciaux XLM comme gtk_message_dialog_new_with_markup() le fait. Ainsi, si les arguments contiennent des caractères spéciaux XML, vous devez utiliser  g_markup_printf_escaped() pour les enlever.

gchar *msg;

msg = g_markup_printf_escaped (message_format, ...);
gtk_message_dialog_format_secondary_markup (message_dialog, "%s", msg);
g_free (msg);

message_dialog : une GtkMessageDialog
message_format : chaîne au format printf()-style (voir format Pango avec des balises), ou NULL
... : arguments pour message_format

Depuis 2.6

Détails de Propriété

La propriété "buttons


  "buttons"                  GtkButtonsType        : Ecrire / seulement construits

Les boutons sont visibles dans la boîte de dialogue.

Valeur par défaut: GTK_BUTTONS_NONE


La propriété "image


  "image"                    GtkWidget             : Lire / Ecrire

L'image pour la boîte de dialogue.

Depuis 2.10


La propriété  "message-type


  "message-type"             GtkMessageType        : Lire / Ecrire / construit

Le type du message. Le type est utilisé pour définir l'image qui va être montrée dans la boîte de dialogue, à moins que l'image soit définie explicitement par la propriété ::image .

Valeur par défaut: GTK_MESSAGE_INFO


La propriété "secondary-text"


  "secondary-text"           gchararray            : Lire / Ecrire

Le texte secondaire de la boîte de dialogue.

Valeur par défaut: NULL

Depuis 2.10


La propriété "secondary-use-markup


  "secondary-use-markup"     gboolean              : Lire / Ecrire

TRUE si le texte secondaire de la boîte de dialogue inclut des balises Pango. Voir pango_parse_markup().

Valeur par défaut: FALSE

Depuis 2.10


La propriété "text


  "text"                     gchararray            : Lire / Ecrire

Le texte primaire de la boîte de dialogue. Si la boîte de dialogue a un texte secondaire, il apparaîtra comme un titre.

Valeur par défaut: NULL

Depuis 2.10


La propriété "use-markup


  "use-markup"               gboolean              : lire / Ecrire

TRUE  si le texte primaire de la boîte de dialogue inclut des balises Pango. Voir pango_parse_markup().

Valeur par défaut: FALSE

Depuis 2.10

Détails de Propriété de Style 

La propriété de style "message-border


  "message-border"           gint                  : Lire

Largeur du bord autour du label et de l'image de la boîte de dialogue.

Valeurs possibles : >= 0

Valeur par défaut: 12


La propriété de style "use-separator


  "use-separator"            gboolean              : Lire

Pour déssiner une ligne de séparation entre le message du label et les boutons de la boîte de dialogue.

Valeur par défaut: FALSE

Depuis 2.4

Voir Aussi

GtkDialog