AlertDialog

open class AlertDialog(pointer: <Error class: unknown class><<Error class: unknown class>>) : Dialog

A dialog presenting a message or a question.

alert-dialog

Alert 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@AlertDialog::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@AlertDialog: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, AdwAlertDialog is closed automatically.

An example of using an alert dialog:

AdwDialog *dialog;

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

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

adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog),
"cancel", _("_Cancel"),
"replace", _("_Replace"),
NULL);

adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog),
"replace",
ADW_RESPONSE_DESTRUCTIVE);

adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel");
adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel");

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

adw_dialog_present (dialog, parent);

Async API

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

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

// ...
}

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

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

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

adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog),
"cancel", _("_Cancel"),
"replace", _("_Replace"),
NULL);

adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog),
"replace",
ADW_RESPONSE_DESTRUCTIVE);

adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel");
adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel");

adw_alert_dialog_choose (ADW_ALERT_DIALOG (dialog), GTK_WIDGET (self),
NULL, (GAsyncReadyCallback) dialog_cb, self);
}

AdwAlertDialog as GtkBuildable

AdwAlertDialog 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@AlertDialog.set_response_enabled and method@AlertDialog.set_response_appearance for details.

Example of an AdwAlertDialog UI definition:

<object class="AdwAlertDialog" 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>

Since

1.5

Constructors

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

Creates a new AdwAlertDialog.

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

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
val adwAlertDialogPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val adwDialogPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open var body: String

The body text of the dialog.

Link copied to clipboard

Whether the body text includes Pango markup.

Link copied to clipboard
open var canClose: Boolean

Whether the dialog can be closed.

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

The child widget of the AdwDialog.

Link copied to clipboard

The ID of the close response.

Link copied to clipboard
open var contentHeight: Int

The height of the dialog's contents.

Link copied to clipboard
open var contentWidth: Int

The width of the dialog's contents.

Link copied to clipboard

The current breakpoint.

Link copied to clipboard

The response ID of the default response.

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

The default widget.

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

The child widget.

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

The focus widget.

Link copied to clipboard

Whether to size content automatically.

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 var heading: String?

The heading of the dialog.

Link copied to clipboard

Whether the heading includes Pango markup.

Link copied to clipboard

Whether to prefer wide layout.

Link copied to clipboard

The dialog's presentation mode.

Link copied to clipboard
open var title: String

The title of the 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)

Adds a response with @id and @label to @self.

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

This function shows @self to the user.

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

Finishes the method@AlertDialog.choose call and returns the response ID.

Link copied to clipboard
open fun close(): Boolean

Attempts to close @self.

Link copied to clipboard
fun connectCloseAttempt(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when the close button or shortcut is used, or method@Dialog.close is called while property@Dialog:can-close is set to FALSE.

Link copied to clipboard
fun connectClosed(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when the dialog is successfully closed.

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

This signal is emitted when the dialog is closed.

Link copied to clipboard
open fun forceClose()

Closes @self.

Link copied to clipboard
open fun getBody(): String

Gets the body text of @self.

Link copied to clipboard

Gets whether the body text of @self includes Pango markup.

Link copied to clipboard
open fun getCanClose(): Boolean

Gets whether @self can be closed.

Link copied to clipboard
open fun getChild(): <Error class: unknown class>?

Gets the child widget of @self.

Link copied to clipboard

Gets the ID of the close response of @self.

Link copied to clipboard
open fun getContentHeight(): Int

Gets the height of the dialog's contents.

Link copied to clipboard
open fun getContentWidth(): Int

Gets the width of the dialog's contents.

Link copied to clipboard

Gets the current breakpoint.

Link copied to clipboard

Gets the ID of the default response of @self.

Link copied to clipboard
open fun getDefaultWidget(): <Error class: unknown class>?

Gets the default widget for @self.

Link copied to clipboard
open fun getExtraChild(): <Error class: unknown class>?

Gets the child widget of @self.

Link copied to clipboard
open fun getFocus(): <Error class: unknown class>?

Gets the focus widget for @self.

Link copied to clipboard

Gets whether to size content of @self automatically.

Link copied to clipboard
open fun getHeading(): String?

Gets the heading of @self.

Link copied to clipboard

Gets whether the heading of @self includes Pango markup.

Link copied to clipboard

Gets whether @self prefers wide layout.

Link copied to clipboard

Gets presentation mode for @self.

Link copied to clipboard

Gets the appearance of @response.

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

Gets whether @response is enabled.

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

Gets the label of @response.

Link copied to clipboard
open fun getTitle(): String

Gets the title of @self.

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

Gets whether @self has a response with the ID @response.

Link copied to clipboard
open fun present(parent: <Error class: unknown class>? = null)

Presents @self within @parent's window.

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

Removes a response from @self.

Link copied to clipboard
open fun setBody(body: String)

Sets the body text of @self.

Link copied to clipboard
open fun setBodyUseMarkup(useMarkup: Boolean)

Sets whether the body text of @self includes Pango markup.

Link copied to clipboard
open fun setCanClose(canClose: Boolean)

Sets whether @self can be closed.

Link copied to clipboard
open fun setChild(child: <Error class: unknown class>? = null)

Sets the child widget of @self.

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

Sets the ID of the close response of @self.

Link copied to clipboard
open fun setContentHeight(contentHeight: Int)

Sets the height of the dialog's contents.

Link copied to clipboard
open fun setContentWidth(contentWidth: Int)

Sets the width of the dialog's contents.

Link copied to clipboard
open fun setDefaultResponse(response: String? = null)

Sets the ID of the default response of @self.

Link copied to clipboard
open fun setDefaultWidget(defaultWidget: <Error class: unknown class>? = null)

Sets the default widget for @self.

Link copied to clipboard
open fun setExtraChild(child: <Error class: unknown class>? = null)

Sets the child widget of @self.

Link copied to clipboard
open fun setFocus(focus: <Error class: unknown class>? = null)

Sets the focus widget for @self.

Link copied to clipboard
open fun setFollowsContentSize(followsContentSize: Boolean)

Sets whether to size content of @self automatically.

Link copied to clipboard
open fun setHeading(heading: String? = null)

Sets the heading of @self.

Link copied to clipboard
open fun setHeadingUseMarkup(useMarkup: Boolean)

Sets whether the heading of @self includes Pango markup.

Link copied to clipboard
open fun setPreferWideLayout(preferWideLayout: Boolean)

Sets whether @self prefers wide layout.

Link copied to clipboard
open fun setPresentationMode(presentationMode: DialogPresentationMode)

Sets presentation mode for @self.

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

Sets the appearance for @response.

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

Sets whether @response is enabled.

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

Sets the label of @response to @label.

Link copied to clipboard
open fun setTitle(title: String)

Sets the title of @self.