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 adw.alert_dialog.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 adw.alert_dialog.AlertDialog.closeResponse 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>AlertDialogGidBuilder builder() static nothrowGet builder for [adw.alert_dialog.AlertDialog] Returns: New builder objectvoid body_(string propval) @property nothrowSet `body_` property. Params: propval = The body text of the dialog.bool bodyUseMarkup() @property nothrowGet `bodyUseMarkup` property. Returns: Whether the body text includes Pango markup.void bodyUseMarkup(bool propval) @property nothrowSet `bodyUseMarkup` property. Params: propval = Whether the body text includes Pango markup.string closeResponse() @property nothrowGet `closeResponse` property. Returns: The ID of the close response.void closeResponse(string propval) @property nothrowSet `closeResponse` property. Params: propval = The ID of the close response.string defaultResponse() @property nothrowGet `defaultResponse` property. Returns: The response ID of the default response.void defaultResponse(string propval) @property nothrowSet `defaultResponse` property. Params: propval = The response ID of the default response.gtk.widget.Widget extraChild() @property nothrowGet `extraChild` property. Returns: The child widget.void extraChild(gtk.widget.Widget propval) @property nothrowSet `extraChild` property. Params: propval = The child widget.void heading(string propval) @property nothrowSet `heading` property. Params: propval = The heading of the dialog.bool headingUseMarkup() @property nothrowGet `headingUseMarkup` property. Returns: Whether the heading includes Pango markup.void headingUseMarkup(bool propval) @property nothrowSet `headingUseMarkup` property. Params: propval = Whether the heading includes Pango markup.void choose(gtk.widget.Widget parent = null, gio.cancellable.Cancellable cancellable = null, gio.types.AsyncReadyCallback callback = null) nothrowThis function shows self to the user.string chooseFinish(gio.async_result.AsyncResult result) nothrowFinishes the [adw.alert_dialog.AlertDialog.choose] call and returns the response ID.bool getBodyUseMarkup() nothrowGets whether the body text of self includes Pango markup. Returns: whether self uses markup for body textstring getCloseResponse() nothrowGets the ID of the close response of self. Returns: the close response IDstring getDefaultResponse() nothrowGets the ID of the default response of self. Returns: the default response IDgtk.widget.Widget getExtraChild() nothrowGets the child widget of self. Returns: the child widget of self.bool getHeadingUseMarkup() nothrowGets whether the heading of self includes Pango markup. Returns: whether self uses markup for headingadw.types.ResponseAppearance getResponseAppearance(string response) nothrowGets the appearance of response.void setBodyUseMarkup(bool useMarkup) nothrowSets whether the body text of self includes Pango markup.void setHeadingUseMarkup(bool useMarkup) nothrowSets whether the heading of self includes Pango markup.void setResponseAppearance(string response, adw.types.ResponseAppearance appearance) nothrowSets the appearance for response.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) nothrowConnect to `Response` signal.Fluent builder implementation template for adw.alert_dialog.AlertDialog
T body_(string propval) nothrowSet `body_` property. Params: propval = The body text of the dialog. Returns: Builder instance for fluent chainingT bodyUseMarkup(bool propval) nothrowSet `bodyUseMarkup` property. Params: propval = Whether the body text includes Pango markup.T closeResponse(string propval) nothrowSet `closeResponse` property. Params: propval = The ID of the close response.T defaultResponse(string propval) nothrowSet `defaultResponse` property. Params: propval = The response ID of the default response.T extraChild(gtk.widget.Widget propval) nothrowSet `extraChild` property. Params: propval = The child widget.T heading(string propval) nothrowSet `heading` property. Params: propval = The heading of the dialog. Returns: Builder instance for fluent chainingT headingUseMarkup(bool propval) nothrowSet `headingUseMarkup` property. Params: propval = Whether the heading includes Pango markup.Fluent builder for adw.alert_dialog.AlertDialog