#ifndef TURNS_ADW_TOAST_HPP #define TURNS_ADW_TOAST_HPP #include "turns/adw/helpers/gobj_mixin.hpp" #include "turns/adw/helpers/properties.hpp" #include #include #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE using AdwToast = struct _AdwToast; namespace turns::adw { struct Toast final : Glib::Object, helpers::gobj_mixin { struct Class : Glib::Class { using BaseClassParent = GObjectClass; using BaseClassType = AdwToastClass; using BaseObjectType = AdwToast; using CppClassParent = struct Glib::Object_Class; using CppObjectType = Toast; auto init() -> Glib::Class const &; auto static class_init_function(void * gclass, void * data) -> void; auto static wrap_new(GObject * object) -> Glib::ObjectBase *; }; using BaseObjectType = Class::BaseObjectType; using BaseClassType = Class::BaseClassType; using CppObjectType = Class::CppObjectType; using CppClassType = Class; enum class Priority { NORMAL, HIGH, }; using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; 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; auto static create(Glib::ustring const & title) -> Glib::RefPtr; auto static get_type() -> GType; auto static get_base_type() -> GType; auto dismiss() -> void; auto property_action_name(this auto && self); auto property_action_target(this auto && self); auto property_button_label(this auto && self); auto property_custom_title(this auto && self); auto property_priority(this auto && self); auto property_timeout(this auto && self); auto property_title(this auto && self); auto property_use_markup(this auto && self); protected: explicit Toast(Glib::ustring const & title); explicit Toast(Glib::ConstructParams const & params); explicit Toast(BaseObjectType * gobj); }; auto Toast::property_action_name(this auto && self) { return helpers::make_property_proxy(self, "action-name"); } auto Toast::property_action_target(this auto && self) { return helpers::make_property_proxy(self, "action-target"); } auto Toast::property_button_label(this auto && self) { return helpers::make_property_proxy(self, "button-label"); } auto Toast::property_custom_title(this auto && self) { return helpers::make_property_proxy(self, "custom-title"); } auto Toast::property_priority(this auto && self) { return helpers::make_property_proxy(self, "priority"); } auto Toast::property_timeout(this auto && self) { return helpers::make_property_proxy(self, "timeout"); } auto Toast::property_title(this auto && self) { return helpers::make_property_proxy(self, "title"); } auto Toast::property_use_markup(this auto && self) { return helpers::make_property_proxy(self, "use-markup"); } } // namespace turns::adw namespace Glib { auto wrap(AdwToast * object, bool copy = false) -> Glib::RefPtr; } // namespace Glib #endif