From c563d8c5b0a4d46676ea21920381c32dbdd66159 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 4 Apr 2025 21:40:59 +0200 Subject: adw: implement missing ToastOverlay members --- adw/include/adwaitamm/toastoverlay.hpp | 14 ++++++-------- adw/src/toastoverlay.cpp | 22 +++++++++++++++++++++- ui/src/windows/tracker.cpp | 2 +- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/adw/include/adwaitamm/toastoverlay.hpp b/adw/include/adwaitamm/toastoverlay.hpp index f4d54cb..9872c1b 100644 --- a/adw/include/adwaitamm/toastoverlay.hpp +++ b/adw/include/adwaitamm/toastoverlay.hpp @@ -2,11 +2,11 @@ #define LIBADWAITAMM_TOASTOVERLAY_HPP #include "adwaitamm/helpers/gobj_mixin.hpp" -#include "adwaitamm/helpers/properties.hpp" #include #include #include +#include #include #include @@ -53,20 +53,18 @@ namespace Adwaita auto static get_type() -> GType; auto static get_base_type() -> GType; - auto add(Glib::RefPtr const & toast) -> void; + auto add_toast(struct Toast & toast) -> void; + auto dismiss_all() -> void; + auto get_child() const -> Gtk::Widget *; + auto set_child(Gtk::Widget & value) -> void; - auto property_child(this auto && self); + auto property_child() -> Glib::PropertyProxy; protected: explicit ToastOverlay(Glib::ConstructParams const & params); explicit ToastOverlay(BaseObjectType * gobj); }; - auto ToastOverlay::property_child(this auto && self) - { - return helpers::make_property_proxy(self, "child"); - } - } // namespace Adwaita namespace Glib diff --git a/adw/src/toastoverlay.cpp b/adw/src/toastoverlay.cpp index 7d1493c..cc9eb26 100644 --- a/adw/src/toastoverlay.cpp +++ b/adw/src/toastoverlay.cpp @@ -58,12 +58,32 @@ namespace Adwaita return adw_toast_overlay_get_type(); } - auto ToastOverlay::add(Glib::RefPtr const & toast) -> void + auto ToastOverlay::add_toast(Toast & toast) -> void { // Take a copy since the overlay will take ownership of the toast. adw_toast_overlay_add_toast(Glib::unwrap(this), Glib::unwrap_copy(toast)); } + auto ToastOverlay::dismiss_all() -> void + { + adw_toast_overlay_dismiss_all(unwrap(this)); + } + + auto ToastOverlay::get_child() const -> Gtk::Widget * + { + return Glib::wrap(adw_toast_overlay_get_child(const_cast(unwrap(this)))); + } + + auto ToastOverlay::set_child(Gtk::Widget & value) -> void + { + adw_toast_overlay_set_child(unwrap(this), unwrap(&value)); + } + + auto ToastOverlay::property_child() -> Glib::PropertyProxy + { + return Glib::PropertyProxy{this, "child"}; + } + ToastOverlay::ToastOverlay(Glib::ConstructParams const & params) : Gtk::Widget{params} { diff --git a/ui/src/windows/tracker.cpp b/ui/src/windows/tracker.cpp index 71ad630..df16a9e 100644 --- a/ui/src/windows/tracker.cpp +++ b/ui/src/windows/tracker.cpp @@ -197,7 +197,7 @@ namespace turns::ui::windows auto tracker::show_toast(std::string const & message) -> void { - m_overlay->add(Adwaita::Toast::create(message)); + m_overlay->add_toast(*Adwaita::Toast::create(message)); } auto tracker::update_colors() -> void -- cgit v1.2.3