adw.alert_dialog

Module for [AlertDialog] class

Types 3

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 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>

Methods
GType _getGType() static nothrow
GType _gType() @property nothrow
AlertDialog self() nothrowReturns `this`, for use in `with` statements.
AlertDialogGidBuilder builder() static nothrowGet builder for [adw.alert_dialog.AlertDialog] Returns: New builder object
string body_() @property nothrowGet `body_` property. Returns: The body text of the dialog.
void 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.
string heading() @property nothrowGet `heading` property. Returns: The heading of the dialog.
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 addResponse(string id, string label) nothrowAdds 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) 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.
string getBody() nothrowGets the body text of self. Returns: the body of self.
bool getBodyUseMarkup() nothrowGets whether the body text of self includes Pango markup. Returns: whether self uses markup for body text
string getCloseResponse() nothrowGets the ID of the close response of self. Returns: the close response ID
string getDefaultResponse() nothrowGets the ID of the default response of self. Returns: the default response ID
gtk.widget.Widget getExtraChild() nothrowGets the child widget of self. Returns: the child widget of self.
string getHeading() nothrowGets the heading of self. Returns: the heading of self.
bool getHeadingUseMarkup() nothrowGets whether the heading of self includes Pango markup. Returns: whether self uses markup for heading
adw.types.ResponseAppearance getResponseAppearance(string response) nothrowGets the appearance of response.
bool getResponseEnabled(string response) nothrowGets whether response is enabled.
string getResponseLabel(string response) nothrowGets the label of response.
bool hasResponse(string response) nothrowGets whether self has a response with the ID response.
void removeResponse(string id) nothrowRemoves a response from self.
void setBody(string body_) nothrowSets the body text of self.
void setBodyUseMarkup(bool useMarkup) nothrowSets whether the body text of self includes Pango markup.
void setCloseResponse(string response) nothrowSets the ID of the close response of self.
void setDefaultResponse(string response = null) nothrowSets the ID of the default response of self.
void setExtraChild(gtk.widget.Widget child = null) nothrowSets the child widget of self.
void setHeading(string heading = null) nothrowSets the heading of self.
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.
void setResponseEnabled(string response, bool enabled) nothrowSets whether response is enabled.
void setResponseLabel(string response, string label) nothrowSets 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) nothrowConnect to `Response` signal.
Constructors
this(void * ptr, Flag!"Take" take)
this(string heading = null, string body_ = null)Creates a new [adw.alert_dialog.AlertDialog].

Fluent builder implementation template for adw.alert_dialog.AlertDialog

Methods
T body_(string propval) nothrowSet `body_` property. Params: propval = The body text of the dialog. Returns: Builder instance for fluent chaining
T 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 chaining
T headingUseMarkup(bool propval) nothrowSet `headingUseMarkup` property. Params: propval = Whether the heading includes Pango markup.

Fluent builder for adw.alert_dialog.AlertDialog

Methods
AlertDialog build() nothrowCreate object from builder. Returns: New object