class Adw::Toast
- Adw::Toast
- GObject::Object
- Reference
- Object
Overview
A helper object for #ToastOverlay
.
Toasts are meant to be passed into ToastOverlay::add_toast
as
follows:
WARNING ⚠️ The following code is in c ⚠️
adw_toast_overlay_add_toast (overlay, adw_toast_new (_("Simple Toast")));
Toasts always have a close button. They emit the Toast::#dismissed
signal when disappearing.
Toast::timeout
determines how long the toast stays on screen, while
Toast::priority
determines how it behaves if another toast is
already being displayed.
[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
.
WARNING ⚠️ The following code is in c ⚠️
Adw::Toast *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
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:
WARNING ⚠️ The following code is in c ⚠️
static void
toast_undo_cb (Gtk::Widget *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)
{
Gtk::WidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
gtk_widget_class_install_action (widget_class, "toast.undo", NULL, toast_undo_cb);
}
Defined in:
lib/gi-crystal/src/auto/adw-1/toast.crConstructors
-
.new(title : String) : self
Creates a new
Adw::Toast
. -
.new
Initialize a new
Toast
. - .new(*, action_name : String? = nil, action_target : GLib::Variant? = nil, button_label : String? = nil, custom_title : Gtk::Widget? = nil, priority : Adw::ToastPriority? = nil, timeout : UInt32? = nil, title : String? = nil)
Class Method Summary
-
.g_type : UInt64
Returns the type id (GType) registered in GLib type system.
Instance Method Summary
-
#action_name : String?
Gets the name of the associated action.
- #action_name=(value : String) : String
-
#action_name=(action_name : String?) : Nil
Sets the name of the associated action.
- #action_target : GLib::Variant?
- #action_target=(value : GLib::Variant?) : GLib::Variant?
-
#action_target_value : GLib::Variant?
Gets the parameter for action invocations.
-
#action_target_value=(action_target : _?) : Nil
Sets the parameter for action invocations.
- #button_clicked_signal
-
#button_label : String?
Gets the label to show on the button.
- #button_label=(value : String) : String
-
#button_label=(button_label : String?) : Nil
Sets the label to show on the button.
-
#custom_title : Gtk::Widget?
Gets the custom title widget of @self.
-
#custom_title=(widget : Gtk::Widget?) : Nil
Sets the custom title widget of @self.
-
#detailed_action_name=(detailed_action_name : String?) : Nil
Sets the action name and its parameter.
-
#dismiss : Nil
Dismisses @self.
- #dismissed_signal
-
#priority : Adw::ToastPriority
Gets priority for @self.
-
#priority=(priority : Adw::ToastPriority) : Nil
Sets priority for @self.
-
#timeout : UInt32
Gets timeout for @self.
-
#timeout=(timeout : UInt32) : Nil
Sets timeout for @self.
-
#title : String?
Gets the title that will be displayed on the toast.
-
#title=(title : String) : Nil
Sets the title that will be displayed on the toast.
Instance methods inherited from class GObject::Object
bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
bind_property,
bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
bind_property_full,
data(key : String) : Pointer(Void)?
data,
finalize
finalize,
freeze_notify : Nil
freeze_notify,
getv(names : Enumerable(String), values : Enumerable(_)) : Nil
getv,
notify(property_name : String) : Nil
notify,
notify_by_pspec(pspec : GObject::ParamSpec) : Nil
notify_by_pspec,
notify_signal
notify_signal,
property(property_name : String, value : _) : Nil
property,
qdata(quark : UInt32) : Pointer(Void)?
qdata,
ref_count : UInt32
ref_count,
run_dispose : Nil
run_dispose,
set_data(key : String, data : Pointer(Void)?) : Nil
set_data,
set_property(property_name : String, value : _) : Nil
set_property,
steal_data(key : String) : Pointer(Void)?
steal_data,
steal_qdata(quark : UInt32) : Pointer(Void)?
steal_qdata,
thaw_notify : Nil
thaw_notify,
to_unsafe : Pointer(Void)
to_unsafe,
watch_closure(closure : GObject::Closure) : Nil
watch_closure
Constructor methods inherited from class GObject::Object
cast(obj : GObject::Object) : self
cast,
cast?(obj : GObject::Object) : self?
cast?,
new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
compat_control(what : UInt64, data : Pointer(Void)?) : UInt64
compat_control,
g_type : UInt64
g_type,
interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
interface_find_property,
interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
interface_list_properties
Constructor Detail
Creates a new Adw::Toast
.
The toast will use @title as its title.
@title can be marked up with the Pango text markup language.
Class Method Detail
Instance Method Detail
Sets the name of the associated action.
It will be activated when clicking the button.
See [property@Toast:action-target].
Sets the parameter for action invocations.
If the @action_target variant has a floating reference this function will sink it.
Sets the label to show on the button.
Underlines in the button text can be used to indicate a mnemonic.
If set to NULL
, the button won't be shown.
See [property@Toast:action-name].
Sets the custom title widget of @self.
It will be displayed instead of the title if set. In this case,
Toast::title
is ignored.
Setting a custom title will unset Toast::title
.
Sets the action name and its parameter.
@detailed_action_name is a string in the format accepted by
Gio::Action#parse_detailed_name
.
Dismisses @self.
Does nothing if @self has already been dismissed, or hasn't been added to an
#ToastOverlay
.
Sets priority for @self.
Priority controls how the toast behaves when another toast is already being displayed.
If @priority is ADW_TOAST_PRIORITY_NORMAL
, the toast will be queued.
If @priority is ADW_TOAST_PRIORITY_HIGH
, the toast will be displayed
immediately, pushing the previous toast into the queue instead.
Sets timeout for @self.
If @timeout is 0, the toast is displayed indefinitely until manually dismissed.
Toasts cannot disappear while being hovered, pressed (on touchscreen), or have keyboard focus inside them.
Gets the title that will be displayed on the toast.
If a custom title has been set with Adw::Toast#custom_title=
the return value will be nil
.