adw.toast
Module for [Toast] class
Types 3
A helper object for class@ToastOverlay.
Toasts are meant to be passed into [adw.toast_overlay.ToastOverlay.addToast] as follows:
adw_toast_overlay_add_toast (overlay, adw_toast_new (_("Simple Toast")));
Toasts always have a close button. They emit the signal@Toast::dismissed signal when disappearing.
property@Toast:timeout determines how long the toast stays on screen, while property@Toast:priority determines how it behaves if another toast is already being displayed.
Toast titles use Pango markup by default, set property@Toast:use-markup to FALSE if this is unwanted.
property@Toast:custom-title can be used to replace the title label with a custom widget.
Actions
Toasts can have one button on them, with a label and an attached [gio.action.Action].
AdwToast *toast = adw_toast_new (_("Toast with Action"));
adw_toast_set_button_label (toast, _("_Example"));
adw_toast_set_action_name (toast, "win.example");
adw_toast_overlay_add_toast (overlay, toast);
Modifying toasts
Toasts can be modified after they have been shown. For this, an [adw.toast.Toast] reference must be kept around while the toast is visible.
A common use case for this is using toasts as undo prompts that stack with each other, allowing to batch undo the last deleted items:
static void
toast_undo_cb (GtkWidget *sender,
const char *action,
GVariant *param)
{
// Undo the deletion
}
static void
dismissed_cb (MyWindow *self)
{
self->undo_toast = NULL;
// Permanently delete the items
}
static void
delete_item (MyWindow *self,
MyItem *item)
{
g_autofree char *title = NULL;
int n_items;
// Mark the item as waiting for deletion
n_items = ... // The number of waiting items
if (!self->undo_toast) {
self->undo_toast = adw_toast_new_format (_("ā%sā deleted"), ...);
adw_toast_set_priority (self->undo_toast, ADW_TOAST_PRIORITY_HIGH);
adw_toast_set_button_label (self->undo_toast, _("_Undo"));
adw_toast_set_action_name (self->undo_toast, "toast.undo");
g_signal_connect_swapped (self->undo_toast, "dismissed",
G_CALLBACK (dismissed_cb), self);
adw_toast_overlay_add_toast (self->toast_overlay, self->undo_toast);
return;
}
title =
g_strdup_printf (ngettext ("<span font_features='tnum=1'>%d</span> item deleted",
"<span font_features='tnum=1'>%d</span> items deleted",
n_items), n_items);
adw_toast_set_title (self->undo_toast, title);
// Bump the toast timeout
adw_toast_overlay_add_toast (self->toast_overlay, g_object_ref (self->undo_toast));
}
static void
my_window_class_init (MyWindowClass *klass)
{
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
gtk_widget_class_install_action (widget_class, "toast.undo", NULL, toast_undo_cb);
}
ToastGidBuilder builder()Get builder for [adw.toast.Toast] Returns: New builder objectvoid actionName(string propval) @propertySet `actionName` property. Params: propval = The name of the associated action.glib.variant.Variant actionTarget() @propertyGet `actionTarget` property. Returns: The parameter for action invocations.void actionTarget(glib.variant.Variant propval) @propertySet `actionTarget` property. Params: propval = The parameter for action invocations.void buttonLabel(string propval) @propertySet `buttonLabel` property. Params: propval = The label to show on the button.gtk.widget.Widget customTitle() @propertyGet `customTitle` property. Returns: The custom title widget.void customTitle(gtk.widget.Widget propval) @propertySet `customTitle` property. Params: propval = The custom title widget.adw.types.ToastPriority priority() @propertyGet `priority` property. Returns: The priority of the toast.void priority(adw.types.ToastPriority propval) @propertySet `priority` property. Params: propval = The priority of the toast.void timeout(uint propval) @propertySet `timeout` property. Params: propval = The timeout of the toast, in seconds.bool useMarkup() @propertyGet `useMarkup` property. Returns: Whether to use Pango markup for the toast title.void useMarkup(bool propval) @propertySet `useMarkup` property. Params: propval = Whether to use Pango markup for the toast title.void dismiss()Dismisses self.string getActionName()Gets the name of the associated action. Returns: the action nameglib.variant.Variant getActionTargetValue()Gets the parameter for action invocations. Returns: the action targetstring getButtonLabel()Gets the label to show on the button. Returns: the button labelgtk.widget.Widget getCustomTitle()Gets the custom title widget of self. Returns: the custom title widgetadw.types.ToastPriority getPriority()Gets priority for self. Returns: the priorityuint getTimeout()Gets timeout for self. Returns: the timeoutstring getTitle()Gets the title that will be displayed on the toast.bool getUseMarkup()Gets whether to use Pango markup for the toast title. Returns: whether the toast uses markupvoid setActionName(string actionName = null)Sets the name of the associated action.void setActionTargetValue(glib.variant.Variant actionTarget = null)Sets the parameter for action invocations.void setButtonLabel(string buttonLabel = null)Sets the label to show on the button.void setCustomTitle(gtk.widget.Widget widget = null)Sets the custom title widget of self.void setDetailedActionName(string detailedActionName = null)Sets the action name and its parameter.void setPriority(adw.types.ToastPriority priority)Sets priority for self.void setTimeout(uint timeout)Sets timeout for self.void setTitle(string title)Sets the title that will be displayed on the toast.void setUseMarkup(bool useMarkup)Whether to use Pango markup for the toast title.gulong connectButtonClicked(T)(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] : adw.toast.Toast)))
&& Parameters!T.length < 2)Connect to `ButtonClicked` signal.gulong connectDismissed(T)(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] : adw.toast.Toast)))
&& Parameters!T.length < 2)Connect to `Dismissed` signal.T actionName(string propval)Set `actionName` property. Params: propval = The name of the associated action.T actionTarget(glib.variant.Variant propval)Set `actionTarget` property. Params: propval = The parameter for action invocations. Returns: Builder instance for fluent chainingT buttonLabel(string propval)Set `buttonLabel` property. Params: propval = The label to show on the button.T customTitle(gtk.widget.Widget propval)Set `customTitle` property. Params: propval = The custom title widget.T priority(adw.types.ToastPriority propval)Set `priority` property. Params: propval = The priority of the toast.T timeout(uint propval)Set `timeout` property. Params: propval = The timeout of the toast, in seconds.T title(string propval)Set `title` property. Params: propval = The title of the toast.T useMarkup(bool propval)Set `useMarkup` property. Params: propval = Whether to use Pango markup for the toast title.