/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef LIBADWAITAMM_TOAST_HPP #define LIBADWAITAMM_TOAST_HPP #include "adwaitamm/helpers/gobj_mixin.hpp" #include #include #include #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE namespace Adwaita { struct Toast_Class; enum struct ToastPriority; struct Toast final : Glib::Object, helpers::gobj_mixin { using BaseObjectType = AdwToast; using BaseClassType = AdwToastClass; using CppObjectType = Toast; using CppClassType = Toast_Class; #pragma mark - Special Member Functions Toast(Toast const & other) = delete; Toast(Toast && other) noexcept = default; auto operator=(Toast const & other) noexcept -> Toast & = delete; auto operator=(Toast && other) noexcept -> Toast & = default; #pragma mark - GObject Support using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; auto static get_type() -> GType; auto static get_base_type() -> GType; #pragma mark - Factories auto static create(Glib::ustring const & title) -> Glib::RefPtr; #pragma mark - Functions auto dismiss() -> void; #pragma mark - Getters auto get_action_name() const -> Glib::ustring; auto get_action_target_value() const -> Glib::VariantBase; auto get_button_label() const -> Glib::ustring; auto get_custom_title() const -> Gtk::Widget *; auto get_priority() const -> ToastPriority; auto get_timeout() const -> unsigned; auto get_title() const -> Glib::ustring; auto get_use_markup() const -> bool; #pragma mark - Setters auto set_action_name(Glib::ustring value) -> void; auto set_action_target_value(Glib::VariantBase const & value) -> void; auto set_button_label(Glib::ustring value) -> void; auto set_custom_title(Gtk::Widget * value) -> void; auto set_detailed_action_name(Glib::ustring value) -> void; auto set_priority(ToastPriority value) -> void; auto set_timeout(unsigned value) -> void; auto set_title(Glib::ustring value) -> void; auto set_use_markup(bool value) -> void; #pragma mark - Properties auto property_action_name() -> Glib::PropertyProxy; auto property_action_name() const -> Glib::PropertyProxy_ReadOnly; auto property_action_target() -> Glib::PropertyProxy; auto property_action_target() const -> Glib::PropertyProxy_ReadOnly; auto property_button_label() -> Glib::PropertyProxy; auto property_button_label() const -> Glib::PropertyProxy_ReadOnly; auto property_custom_title() -> Glib::PropertyProxy; auto property_custom_title() const -> Glib::PropertyProxy_ReadOnly; auto property_priority() -> Glib::PropertyProxy; auto property_priority() const -> Glib::PropertyProxy_ReadOnly; auto property_timeout() -> Glib::PropertyProxy; auto property_timeout() const -> Glib::PropertyProxy_ReadOnly; auto property_title() -> Glib::PropertyProxy; auto property_title() const -> Glib::PropertyProxy_ReadOnly; auto property_use_markup() -> Glib::PropertyProxy; auto property_use_markup() const -> Glib::PropertyProxy_ReadOnly; #pragma mark - Signals auto signal_button_clicked() -> Glib::SignalProxy; auto signal_dismissed() -> Glib::SignalProxy; protected: friend Toast_Class; #pragma mark - Constructors explicit Toast(Glib::ustring const & title); explicit Toast(Glib::ConstructParams const & params); explicit Toast(BaseObjectType * gobj); }; } // namespace Adwaita namespace Glib { auto wrap(AdwToast * object, bool copy = false) -> Glib::RefPtr; } // namespace Glib #endif