![]() |
![]() |
![]() |
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, constgchar *message_format, ...); GtkWidget* gtk_message_dialog_new_with_markup (GtkWindow *parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, constgchar *message_format, ...);void gtk_message_dialog_set_markup (GtkMessageDialog *message_dialog, constgchar *str);void gtk_message_dialog_set_image (GtkMessageDialog *dialog, GtkWidget *image);void gtk_message_dialog_format_secondary_text (GtkMessageDialog *message_dialog, constgchar *message_format, ...);void gtk_message_dialog_format_secondary_markup (GtkMessageDialog *message_dialog, constgchar *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
TRUE
pango_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