diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-08-15 11:25:30 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-08-15 11:25:30 +0200 |
| commit | b6252045a1340a42a39426dfbb877d2a1f357b7f (patch) | |
| tree | 53c78490bc035595f16ca7f8b416f825df952e13 /adw/src/toastoverlay.cpp | |
| parent | a2cc1d08fdb5b991e5a47e74e6e534747e330c7c (diff) | |
| download | turns-b6252045a1340a42a39426dfbb877d2a1f357b7f.tar.xz turns-b6252045a1340a42a39426dfbb877d2a1f357b7f.zip | |
adw: add Toast and ToastOverlay classes
Diffstat (limited to 'adw/src/toastoverlay.cpp')
| -rw-r--r-- | adw/src/toastoverlay.cpp | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/adw/src/toastoverlay.cpp b/adw/src/toastoverlay.cpp new file mode 100644 index 0000000..ca877a6 --- /dev/null +++ b/adw/src/toastoverlay.cpp @@ -0,0 +1,85 @@ +#include "turns/adw/toastoverlay.hpp" + +#include "turns/adw/toast.hpp" + +#include <glibmm/class.h> +#include <glibmm/object.h> +#include <glibmm/objectbase.h> +#include <glibmm/propertyproxy.h> +#include <glibmm/refptr.h> +#include <glibmm/ustring.h> +#include <glibmm/utility.h> +#include <glibmm/variant.h> + +#include <gtkmm/widget.h> + +#include <adwaita.h> +#include <gio/gio.h> +#include <glib-object.h> + +namespace turns::adw +{ + struct ToastOverlay_Class : Glib::Class + { + auto init() -> Glib::Class const &; + auto static wrap_new(GObject * object) -> Glib::ObjectBase *; + }; + + auto ToastOverlay_Class::init() -> Glib::Class const & + { + if (!gtype_) + { + gtype_ = adw_toast_overlay_get_type(); + } + return *this; + } + + auto ToastOverlay_Class::wrap_new(GObject * object) -> Glib::ObjectBase * + { + return new ToastOverlay(ADW_TOAST_OVERLAY(object)); + } + + ToastOverlay_Class ToastOverlay::s_class{}; + + auto ToastOverlay::get_type() -> GType + { + return s_class.init().get_type(); + } + + auto ToastOverlay::get_base_type() -> GType + { + return adw_toast_overlay_get_type(); + } + + auto ToastOverlay::add(Toast && toast) -> void + { + adw_toast_overlay_add_toast(gobj(), toast.gobj_copy()); + } + + ToastOverlay::ToastOverlay(Glib::ConstructParams const & params) + : Gtk::Widget{params} + { + } + + ToastOverlay::ToastOverlay(AdwToastOverlay * gobj) + : Glib::ObjectBase{nullptr} + , Gtk::Widget((GtkWidget *)gobj) + { + } + + ToastOverlay::ToastOverlay() + : Glib::ObjectBase{nullptr} + , Gtk::Widget{Glib::ConstructParams{s_class.init()}} + { + } + +} // namespace turns::adw + +namespace Glib +{ + auto wrap(AdwToastOverlay * object, bool copy) -> Glib::RefPtr<turns::adw::ToastOverlay> + { + return Glib::make_refptr_for_instance<turns::adw::ToastOverlay>( + dynamic_cast<turns::adw::ToastOverlay *>(Glib::wrap_auto(G_OBJECT(object), copy))); + } +} // namespace Glib
\ No newline at end of file |
