|  |  |  | GTK+ Reference Manual |  | 
|---|---|---|---|---|
#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,
                                                         ...);
GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkWindow +----GtkDialog +----GtkMessageDialog
"buttons" GtkButtonsType : Write / Construct Only "image" GtkWidget : Read / Write "message-type" GtkMessageType : Read / Write / Construct "secondary-text"gchararray : Read / Write "secondary-use-markup"gboolean : Read / Write "text"gchararray : Read / Write "use-markup"gboolean : Read / Write
GtkMessageDialog presents a dialog with an image representing the type of message (Error, Question, etc.) alongside some message text. It's simply a convenience widget; you could construct the equivalent of GtkMessageDialog from GtkDialog without too much effort, but GtkMessageDialog saves typing.
The easiest way to do a modal message dialog is to use gtk_dialog_run(), though
you can also pass in the GTK_DIALOG_MODAL flag, gtk_dialog_run() automatically
makes the dialog modal and waits for the user to respond to it. gtk_dialog_run()
returns when any dialog button is clicked.
Example 6. A 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));
 gtk_dialog_run (GTK_DIALOG (dialog));
 gtk_widget_destroy (dialog);
You might do a non-modal GtkMessageDialog as follows:
Example 7. 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));
 /* Destroy the dialog when the user responds to it (e.g. clicks a button) */
 g_signal_connect_swapped (dialog, "response",
                           G_CALLBACK (gtk_widget_destroy),
                           dialog);
typedef enum
{
  GTK_MESSAGE_INFO,
  GTK_MESSAGE_WARNING,
  GTK_MESSAGE_QUESTION,
  GTK_MESSAGE_ERROR,
  GTK_MESSAGE_OTHER
} GtkMessageType;
The type of message being displayed in the dialog.
typedef enum
{
  GTK_BUTTONS_NONE,
  GTK_BUTTONS_OK,
  GTK_BUTTONS_CLOSE,
  GTK_BUTTONS_CANCEL,
  GTK_BUTTONS_YES_NO,
  GTK_BUTTONS_OK_CANCEL
} GtkButtonsType;
Prebuilt sets of buttons for the dialog. If 
none of these choices are appropriate, simply use GTK_BUTTONS_NONE
then call gtk_dialog_add_buttons().
GtkWidget* gtk_message_dialog_new (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, constgchar *message_format, ...);
Creates a new message dialog, which is a simple dialog with an icon indicating the dialog type (error, warning, etc.) and some text the user may want to see. When the user clicks a button a "response" signal is emitted with response IDs from GtkResponseType. See GtkDialog for more details.
| 
 | transient parent, or NULL | 
| 
 | flags | 
| 
 | type of message | 
| 
 | set of buttons to use | 
| 
 | printf()NULL | 
| 
 | arguments for message_format | 
| Returns : | a new GtkMessageDialog | 
GtkWidget* gtk_message_dialog_new_with_markup (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, constgchar *message_format, ...);
Creates a new message dialog, which is a simple dialog with an icon
indicating the dialog type (error, warning, etc.) and some text which
is marked up with the 
Special XML characters in the printf()g_markup_printf_escaped()gtk_message_dialog_set_markup()
instead, since you can't pass the markup string either
as the format (it might contain '%' characters) or as a string
argument.
 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);
| 
 | transient parent, or NULL | 
| 
 | flags | 
| 
 | type of message | 
| 
 | set of buttons to use | 
| 
 | printf()NULL | 
| 
 | arguments for message_format | 
| Returns : | a new GtkMessageDialog | 
Since 2.4
void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog, constgchar *str);
Sets the text of the message dialog to be str, which is marked
up with the 
| 
 | a GtkMessageDialog | 
| 
 | markup string (see | 
Since 2.4
void gtk_message_dialog_set_image (GtkMessageDialog *dialog, GtkWidget *image);
Sets the dialog's image to image.
| 
 | a GtkMessageDialog | 
| 
 | the image | 
Since 2.10
void gtk_message_dialog_format_secondary_text (GtkMessageDialog *message_dialog, constgchar *message_format, ...);
Sets the secondary text of the message dialog to be message_format 
(with printf()
Note that setting a secondary text makes the primary text become bold, unless you have provided explicit markup.
| 
 | a GtkMessageDialog | 
| 
 | printf()NULL | 
| 
 | arguments for message_format | 
Since 2.6
void gtk_message_dialog_format_secondary_markup (GtkMessageDialog *message_dialog, constgchar *message_format, ...);
Sets the secondary text of the message dialog to be message_format (with 
printf()
Note that setting a secondary text makes the primary text become bold, unless you have provided explicit markup.
Due to an oversight, this function does not escape special XML characters
like gtk_message_dialog_new_with_markup() does. Thus, if the arguments 
may contain special XML characters, you should use g_markup_printf_escaped()
gchar *msg; msg = g_markup_printf_escaped (message_format, ...); gtk_message_dialog_format_secondary_markup (message_dialog, "%s", msg); g_free (msg);
| 
 | a GtkMessageDialog | 
| 
 | printf()NULL | 
| 
 | arguments for message_format | 
Since 2.6
"buttons" property"buttons" GtkButtonsType : Write / Construct Only
The buttons shown in the message dialog.
Default value: GTK_BUTTONS_NONE
"message-type" property"message-type" GtkMessageType : Read / Write / Construct
The type of the message. The type is used to determine the image that is shown in the dialog, unless the image is explicitly set by the ::image property.
Default value: GTK_MESSAGE_INFO
"secondary-text" property"secondary-text"gchararray : Read / Write
The secondary text of the message dialog.
Default value: NULL
Since 2.10
"secondary-use-markup" property"secondary-use-markup"gboolean : Read / Write
TRUEpango_parse_markup()
Default value: FALSE
Since 2.10
"text" property"text"gchararray : Read / Write
The primary text of the message dialog. If the dialog has a secondary text, this will appear as the title.
Default value: NULL
Since 2.10