Toast
A helper object for class@ToastOverlay.
Toasts are meant to be passed into method@ToastOverlay.add_toast 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 iface@Gio.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 AdwToast
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);
}
Skipped during bindings generation
method
title
: Property TypeInfo of getter and setter do not match
Constructors
Properties
The name of the associated action.
The parameter for action invocations.
The label to show on the button.
The custom title widget.
The priority of the toast.
Functions
Emitted after the button has been clicked.
Emitted when the toast has been dismissed.
Gets the name of the associated action.
Gets the parameter for action invocations.
Gets the label to show on the button.
Gets the custom title widget of @self.
Gets priority for @self.
Gets timeout for @self.
Gets whether to use Pango markup for the toast title.
Sets the name of the associated action.
Sets the parameter for action invocations.
Sets the label to show on the button.
Sets the custom title widget of @self.
Sets the action name and its parameter.
Sets priority for @self.
Sets timeout for @self.
Whether to use Pango markup for the toast title.