adw.alert_dialog
Module for [AlertDialog] class
Types 3
A dialog presenting a message or a question.
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, [adw.alert_dialog.AlertDialog] 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
[adw.alert_dialog.AlertDialog] can also be used via the [adw.alert_dialog.AlertDialog.choose] method. This API follows the GIO async pattern, and the result can be obtained by calling [adw.alert_dialog.AlertDialog.chooseFinish], 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
[adw.alert_dialog.AlertDialog] supports adding responses in UI definitions by via the <responses> element that may contain multiple <response> elements, each respresenting 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 [adw.alert_dialog.AlertDialog.setResponseEnabled] and [adw.alert_dialog.AlertDialog.setResponseAppearance] for details.
Example of an [adw.alert_dialog.AlertDialog] 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>AlertDialog self()Returns `this`, for use in `with` statements.AlertDialogGidBuilder builder()Get builder for [adw.alert_dialog.AlertDialog] Returns: New builder objectvoid body_(string propval) @propertySet `body_` property. Params: propval = The body text of the dialog.bool bodyUseMarkup() @propertyGet `bodyUseMarkup` property. Returns: Whether the body text includes Pango markup.void bodyUseMarkup(bool propval) @propertySet `bodyUseMarkup` property. Params: propval = Whether the body text includes Pango markup.string closeResponse() @propertyGet `closeResponse` property. Returns: The ID of the close response.void closeResponse(string propval) @propertySet `closeResponse` property. Params: propval = The ID of the close response.string defaultResponse() @propertyGet `defaultResponse` property. Returns: The response ID of the default response.void defaultResponse(string propval) @propertySet `defaultResponse` property. Params: propval = The response ID of the default response.void extraChild(gtk.widget.Widget propval) @propertySet `extraChild` property. Params: propval = The child widget.void heading(string propval) @propertySet `heading` property. Params: propval = The heading of the dialog.bool headingUseMarkup() @propertyGet `headingUseMarkup` property. Returns: Whether the heading includes Pango markup.void headingUseMarkup(bool propval) @propertySet `headingUseMarkup` property. Params: propval = Whether the heading includes Pango markup.void addResponse(string id, string label)Adds a response with id and label to self.void choose(gtk.widget.Widget parent = null, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null)This function shows self to the user.string chooseFinish(gio.async_result.AsyncResult result)Finishes the [adw.alert_dialog.AlertDialog.choose] call and returns the response ID.string getBody()Gets the body text of self. Returns: the body of self.bool getBodyUseMarkup()Gets whether the body text of self includes Pango markup. Returns: whether self uses markup for body textstring getCloseResponse()Gets the ID of the close response of self. Returns: the close response IDstring getDefaultResponse()Gets the ID of the default response of self. Returns: the default response IDgtk.widget.Widget getExtraChild()Gets the child widget of self. Returns: the child widget of self.string getHeading()Gets the heading of self. Returns: the heading of self.bool getHeadingUseMarkup()Gets whether the heading of self includes Pango markup. Returns: whether self uses markup for headingadw.types.ResponseAppearance getResponseAppearance(string response)Gets the appearance of response.bool getResponseEnabled(string response)Gets whether response is enabled.string getResponseLabel(string response)Gets the label of response.bool hasResponse(string response)Gets whether self has a response with the ID response.void removeResponse(string id)Removes a response from self.void setBody(string body_)Sets the body text of self.void setBodyUseMarkup(bool useMarkup)Sets whether the body text of self includes Pango markup.void setCloseResponse(string response)Sets the ID of the close response of self.void setDefaultResponse(string response = null)Sets the ID of the default response of self.void setExtraChild(gtk.widget.Widget child = null)Sets the child widget of self.void setHeading(string heading = null)Sets the heading of self.void setHeadingUseMarkup(bool useMarkup)Sets whether the heading of self includes Pango markup.void setResponseAppearance(string response, adw.types.ResponseAppearance appearance)Sets the appearance for response.void setResponseEnabled(string response, bool enabled)Sets whether response is enabled.void setResponseLabel(string response, string label)Sets the label of response to label.gulong connectResponse(T)(string detail = null, T callback, Flag!"After" after = No.After) if (isCallable!T
&& is(ReturnType!T == void)
&& (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == string)))
&& (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] : adw.alert_dialog.AlertDialog)))
&& Parameters!T.length < 3)Connect to `Response` signal.T body_(string propval)Set `body_` property. Params: propval = The body text of the dialog. Returns: Builder instance for fluent chainingT bodyUseMarkup(bool propval)Set `bodyUseMarkup` property. Params: propval = Whether the body text includes Pango markup.T closeResponse(string propval)Set `closeResponse` property. Params: propval = The ID of the close response.T defaultResponse(string propval)Set `defaultResponse` property. Params: propval = The response ID of the default response.T extraChild(gtk.widget.Widget propval)Set `extraChild` property. Params: propval = The child widget.T heading(string propval)Set `heading` property. Params: propval = The heading of the dialog. Returns: Builder instance for fluent chainingT headingUseMarkup(bool propval)Set `headingUseMarkup` property. Params: propval = Whether the heading includes Pango markup.Fluent builder for [adw.alert_dialog.AlertDialog]