GTK+ Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# GtkMessageDialog

## Name

GtkMessageDialog -- convenient message window

## Synopsis

    #include <gtk/gtk.h>

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

## Object Hierarchy

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

## Properties

      "message-type"         GtkMessageType       : Read / Write / Construct
      "buttons"              GtkButtonsType       : Write / Construct Only

## Style Properties

      "message-border"       gint                 : Read

## Description

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 1. 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 2. 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 (GTK_OBJECT (dialog), "response",
                               G_CALLBACK (gtk_widget_destroy),
                               GTK_OBJECT (dialog));

## Details

### struct GtkMessageDialog

    struct GtkMessageDialog;

### enum GtkMessageType

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

The type of message being displayed in the dialog.

`GTK_MESSAGE_INFO` | Informational message
`GTK_MESSAGE_WARNING` | Nonfatal warning message
`GTK_MESSAGE_QUESTION` | Question requiring a choice
`GTK_MESSAGE_ERROR` | Fatal error message

### 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;

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().

`GTK_BUTTONS_NONE` | no buttons at all
`GTK_BUTTONS_OK` | an OK button
`GTK_BUTTONS_CLOSE` | a Close button
`GTK_BUTTONS_CANCEL` | a Cancel button
`GTK_BUTTONS_YES_NO` | Yes and No buttons
`GTK_BUTTONS_OK_CANCEL` | OK and Cancel buttons

### gtk_message_dialog_new ()

    GtkWidget*  gtk_message_dialog_new          (GtkWindow *parent,
                                                 GtkDialogFlags flags,
                                                 GtkMessageType type,
                                                 GtkButtonsType buttons,
                                                 const gchar *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.

`parent` : | transient parent, or NULL for none
`flags` : | flags
`type` : | type of message
`buttons` : | set of buttons to use
`message_format` : | printf()-style format string, or NULL
`...` : | arguments for `message_format`
Returns : | a new GtkMessageDialog

## Properties

"`message-type`" (GtkMessageType : Read / Write / Construct)

  The type of message

"`buttons`" (GtkButtonsType : Write / Construct Only)

  The buttons shown in the message dialog

## Style Properties

"`message-border`" (gint : Read)

  Width of border around the label and image in the message dialog

## See Also

GtkDialog

<<< Previous Page | Home | Up | Next Page >>>
GtkInvisible | GtkPlug