## Xfce Dialogs Xfce Dialogs — Common used dialogs to interact with the user. |

## Functions

GtkWidget * | xfce_message_dialog_new ()
GtkWidget * | xfce_message_dialog_new_valist ()
gint | xfce_message_dialog ()
void | xfce_dialog_show_help ()
void | xfce_dialog_show_help_with_version ()
void | xfce_dialog_show_info ()
void | xfce_dialog_show_warning ()
void | xfce_dialog_show_error ()
gboolean | xfce_dialog_confirm ()

## Types and Values

#define | XFCE_BUTTON_TYPE_MIXED
#define | XFCE_BUTTON_TYPE_PIXBUF

## Includes

    #include <libxfce4ui/libxfce4ui.h>

## Description

Useful convientent function to interact with the user using a GtkMessageDialog.

## Functions

### xfce_message_dialog_new ()

    GtkWidget *
    xfce_message_dialog_new (GtkWindow *parent,
                             const gchar *title,
                             const gchar *stock_id,
                             const gchar *primary_text,
                             const gchar *secondary_text,
                             const gchar *first_button_text,
                             ...);

xfce_message_dialog_new() allows you to easily create Gtk+ message dialogs. It accepts GTK+ stock buttons, mixed buttons (using XFCE_BUTTON_TYPE_MIXED) or buttons with a GdkPixbuf (using XFCE_BUTTON_TYPE_PIXBUF).

The buttons are defined by `first_button_text` and the next arguments in the following format `type` , `param1` [, `param2` , `param3` ].

`XFCE_BUTTON_TYPE_MIXED` | This allows you to easily create mixed buttons in a dialog. `param1` is used for the stock_id, `param2` for the label and `param3` for the response_id. See also `xfce_gtk_button_new_mixed()`.
`XFCE_BUTTON_TYPE_PIXBUF` | Creates a button with the GdkPixbuf as button icon. `param1` is the GdkPixuf, `param2` for the label and `param3` for the response_id.
Stock Buttons | When the variables above were not matched, the button type will be a stock button. `type` will be the stock id, `param1` is used for the response_id.

To clarify this behaviour see the example below. We create a dialog with two stock buttons, a GdkPixbuf button and a mixed button.

Example 2. Creating a Xfce Message Dialog

    GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 24, 24);

    GtkWidget *dialog = xfce_message_dialog (parent, "Question",
                                             GTK_STOCK_DIALOG_QUESTION,
                                             "There are unsaved modifications",
                                             "The menu has been modified, do you want to save it before quitting?",
                                             GTK_STOCK_SAVE, GTK_RESPONSE_YES,
                                             XFCE_BUTTON_TYPE_MIXED, GTK_STOCK_DELETE, "Forget modifications", GTK_RESPONSE_APPLY,
                                             XFCE_BUTTON_TYPE_PIXBUF, pixbuf, "Quit", GTK_RESPONSE_NO,
                                             GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                             NULL);

    g_object_unref (G_OBJECT (pixbuf));

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
title | title of the dialog, or `NULL`. |
stock_id | gtk stock icon name to show in the dialog. |
primary_text | primary text shown in large bold font. |
secondary_text | secondary text shown in normal font. |
first_button_text | text for the first button. |

#### Returns

A new GtkMessageDialog.

### xfce_message_dialog_new_valist ()

    GtkWidget *
    xfce_message_dialog_new_valist (GtkWindow *parent,
                                    const gchar *title,
                                    const gchar *icon_stock_id,
                                    const gchar *primary_text,
                                    const gchar *secondary_text,
                                    const gchar *first_button_text,
                                    va_list args);

See `xfce_message_dialog_new()`, this version takes a va_list for language bindings to use.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
title | title of the dialog, or `NULL`. |
icon_stock_id | gtk stock icon name to show in the dialog. |
primary_text | primary text shown in large bold font. |
secondary_text | secondary text shown in normal font. |
first_button_text | text for the first button. |
args | argument list. |

#### Returns

A new GtkMessageDialog.

### xfce_message_dialog ()

    gint
    xfce_message_dialog (GtkWindow *parent,
                         const gchar *title,
                         const gchar *stock_id,
                         const gchar *primary_text,
                         const gchar *secondary_text,
                         const gchar *first_button_text,
                         ...);

Create a new dialog as in `xfce_message_dialog_new()`, then runs the dialog using gtk_dialog_run and return the response id selected by the user.

See `xfce_message_dialog_new()` for more information.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
title | title of the dialog, or `NULL`. |
stock_id | gtk stock icon name to show in the dialog. |
primary_text | primary text shown in large bold font. |
secondary_text | secondary text shown in normal font. |
first_button_text | text for the first button. |

#### Returns

the selected response id.

### xfce_dialog_show_help ()

    void
    xfce_dialog_show_help (GtkWindow *parent,
                           const gchar *application,
                           const gchar *page,
                           const gchar *offset);

### xfce_dialog_show_help_with_version ()

    void
    xfce_dialog_show_help_with_version (GtkWindow *parent,
                                        const gchar *application,
                                        const gchar *page,
                                        const gchar *offset,
                                        const gchar *version);

### xfce_dialog_show_info ()

    void
    xfce_dialog_show_info (GtkWindow *parent,
                           const gchar *secondary_text,
                           const gchar *primary_format,
                           ...);

Displays an information dialog on `parent` using the `primary_format` as message.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
secondary_text | secondary text of the dialog or `NULL`. |
primary_format | the `printf()`-style format for the primary problem description. |

### xfce_dialog_show_warning ()

    void
    xfce_dialog_show_warning (GtkWindow *parent,
                              const gchar *secondary_text,
                              const gchar *primary_format,
                              ...);

Displays a warning dialog on `parent` using the `primary_format` as message.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
secondary_text | secondary text of the dialog or `NULL`. |
primary_format | the `printf()`-style format for the primary problem description. |

### xfce_dialog_show_error ()

    void
    xfce_dialog_show_error (GtkWindow *parent,
                            const GError *error,
                            const gchar *primary_format,
                            ...);

Displays an error dialog on `parent` using the `primary_format` as primary message and optionally displaying `error` as secondary error text.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
error | a GError, which gives a more precise description of the problem or `NULL`. |
primary_format | the `printf()`-style format for the primary problem description. |

### xfce_dialog_confirm ()

    gboolean
    xfce_dialog_confirm (GtkWindow *parent,
                         const gchar *stock_id,
                         const gchar *confirm_label,
                         const gchar *secondary_text,
                         const gchar *primary_format,
                         ...);

Runs a questions dialog, that has a 'Cancel' and a 'Confirm' button. The 'Confirm' button text can be set by `action` if given.

If `stock_id` is equal to GTK_STOCK_YES, the 'Cancel' button becomes a 'No' button.

#### Parameters

parent | transient parent of the dialog, or `NULL`. |
stock_id | the stock name of the confirm button, for example GTK_STOCK_YES or GTK_STOCK_CLEAR. |
confirm_label | if non-`NULL`, this text is used on the confirm button together with the `stock_id` icon. |
secondary_text | secondary text in the dialog. |
primary_format | the `printf()`-style format for the dialog question. |

#### Returns

TRUE if the user confirms, else FALSE.

## Types and Values

### XFCE_BUTTON_TYPE_MIXED

    #define XFCE_BUTTON_TYPE_MIXED  "button-mixed"

Used to define a mixed button in `xfce_message_dialog_new()` and `xfce_message_dialog_run()`.

### XFCE_BUTTON_TYPE_PIXBUF

    #define XFCE_BUTTON_TYPE_PIXBUF "button-pixbuf"

Used to define a GdkPixuf button in `xfce_message_dialog_new()` and `xfce_message_dialog_run()`.