MessageDialog

open class MessageDialog(val adwMessageDialogPointer: <Error class: unknown class><<Error class: unknown class>>) : Window(source)

⚠️ Deprecated ⚠️

This is deprecated since version 1.6.

Use class@AlertDialog.

---

A dialog presenting a message or a question.

message-dialog

Message dialogs have a heading, a body, an optional child widget, and one or multiple responses, each presented as a button.

Each response has a unique string ID, and a button label. Additionally, each response can be enabled or disabled, and can have a suggested or destructive appearance.

When one of the responses is activated, or the dialog is closed, the signal@MessageDialog::response signal will be emitted. This signal is detailed, and the detail, as well as the response parameter will be set to the ID of the activated response, or to the value of the property@MessageDialog:close-response property if the dialog had been closed without activating any of the responses.

Response buttons can be presented horizontally or vertically depending on available space.

When a response is activated, AdwMessageDialog is closed automatically.

An example of using a message dialog:

GtkWidget *dialog;

dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL);

adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog),
                                _("A file named “%s” already exists. Do you want to replace it?"),
                                filename);

adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog),
                                  "cancel",  _("_Cancel"),
                                  "replace", _("_Replace"),
                                  NULL);

adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE);

adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel");

g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self);

gtk_window_present (GTK_WINDOW (dialog));

Async API

AdwMessageDialog can also be used via the method@MessageDialog.choose method. This API follows the GIO async pattern, for example:

static void
dialog_cb (AdwMessageDialog *dialog,
           GAsyncResult     *result,
           MyWindow         *self)
{
  const char *response = adw_message_dialog_choose_finish (dialog, result);

  // ...
}

static void
show_dialog (MyWindow *self)
{
  GtkWidget *dialog;

  dialog = adw_message_dialog_new (GTK_WINDOW (self), _("Replace File?"), NULL);

  adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog),
                                  _("A file named “%s” already exists. Do you want to replace it?"),
                                  filename);

  adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog),
                                    "cancel",  _("_Cancel"),
                                    "replace", _("_Replace"),
                                    NULL);

  adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE);

  adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
  adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel");

  adw_message_dialog_choose (ADW_MESSAGE_DIALOG (dialog), NULL, (GAsyncReadyCallback) dialog_cb, self);
}

AdwMessageDialog as GtkBuildable

AdwMessageDialog supports adding responses in UI definitions by via the <responses> element that may contain multiple <response> elements, each representing a response.

Each of the <response> elements must have the id attribute specifying the response ID. The contents of the element are used as the response label.

Response labels can be translated with the usual translatable, context and comments attributes.

The <response> elements can also have enabled and/or appearance attributes. See method@MessageDialog.set_response_enabled and method@MessageDialog.set_response_appearance for details.

Example of an AdwMessageDialog UI definition:

<object class="AdwMessageDialog" id="dialog">
  <property name="heading" translatable="yes">Save Changes?</property>
  <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property>
  <property name="default-response">save</property>
  <property name="close-response">cancel</property>
  <signal name="response" handler="response_cb"/>
  <responses>
    <response id="cancel" translatable="yes">_Cancel</response>
    <response id="discard" translatable="yes" appearance="destructive">_Discard</response>
    <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response>
  </responses>
</object>

Accessibility

AdwMessageDialog uses the GTK_ACCESSIBLE_ROLE_DIALOG role.

Skipped during bindings generation

  • method add_responses: Varargs parameter is not supported

  • method format_body: Varargs parameter is not supported

  • method format_body_markup: Varargs parameter is not supported

  • method format_heading: Varargs parameter is not supported

  • method format_heading_markup: Varargs parameter is not supported

Since

1.2

Constructors

Link copied to clipboard
constructor(parent: Window? = null, heading: String? = null, body: String? = null)

This is deprecated since version 1.6.

constructor(adwMessageDialogPointer: <Error class: unknown class><<Error class: unknown class>>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
val adwMessageDialogPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val adwWindowPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open var body: String

This is deprecated since version 1.6.

Link copied to clipboard

This is deprecated since version 1.6.

Link copied to clipboard

This is deprecated since version 1.6.

Link copied to clipboard
open var content: <Error class: unknown class>?

The content widget.

Link copied to clipboard

The current breakpoint.

Link copied to clipboard

This is deprecated since version 1.6.

Link copied to clipboard
open val dialogs: <Error class: unknown class>

The open dialogs.

Link copied to clipboard
open var extraChild: <Error class: unknown class>?

This is deprecated since version 1.6.

Link copied to clipboard
open override val gtkAccessiblePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkBuildablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkConstraintTargetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkNativePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkRootPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkShortcutManagerPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open var heading: String?

This is deprecated since version 1.6.

Link copied to clipboard

This is deprecated since version 1.6.

Link copied to clipboard

The currently visible dialog

Functions

Link copied to clipboard
open fun addBreakpoint(breakpoint: Breakpoint)

Adds @breakpoint to @self.

Link copied to clipboard
open fun addResponse(id: String, label: String)

This is deprecated since version 1.6.

Link copied to clipboard
open fun choose(cancellable: <Error class: unknown class>? = null, callback: <Error class: unknown class>?)

This is deprecated since version 1.6.

Link copied to clipboard
open fun chooseFinish(result: <Error class: unknown class>): String

This is deprecated since version 1.6.

Link copied to clipboard
fun emitResponse(detail: String? = null, response: String)

This is deprecated since version 1.6.

Link copied to clipboard

This is deprecated since version 1.6.

Link copied to clipboard
open fun getResponseEnabled(response: String): Boolean

This is deprecated since version 1.6.

Link copied to clipboard
open fun getResponseLabel(response: String): String

This is deprecated since version 1.6.

Link copied to clipboard
open fun hasResponse(response: String): Boolean

This is deprecated since version 1.6.

Link copied to clipboard
fun onResponse(    connectFlags: <Error class: unknown class> = ConnectFlags(0u),     detail: String? = null,     handler: (response: String) -> Unit): <Error class: unknown class>

This is deprecated since version 1.6.

Link copied to clipboard
open fun removeResponse(id: String)

This is deprecated since version 1.6.

Link copied to clipboard
open fun response(response: String)

This is deprecated since version 1.6.

Link copied to clipboard
open fun setResponseAppearance(response: String, appearance: ResponseAppearance)

This is deprecated since version 1.6.

Link copied to clipboard
open fun setResponseEnabled(response: String, enabled: Boolean)

This is deprecated since version 1.6.

Link copied to clipboard
open fun setResponseLabel(response: String, label: String)

This is deprecated since version 1.6.