diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-04-29 09:48:15 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-04-29 09:48:15 +0200 |
| commit | 26cf7386786fff381a81af21027712512dfe7f82 (patch) | |
| tree | 1edb3485022661f0b9d309e6753dec2a8625f34c | |
| parent | 6cde8749c3cde48661fc390794d5d488812ed305 (diff) | |
| download | libadwaitamm-26cf7386786fff381a81af21027712512dfe7f82.tar.xz libadwaitamm-26cf7386786fff381a81af21027712512dfe7f82.zip | |
app: add missing API
| -rw-r--r-- | include/adwaitamm/application.hpp | 12 | ||||
| -rw-r--r-- | src/application.cpp | 30 |
2 files changed, 30 insertions, 12 deletions
diff --git a/include/adwaitamm/application.hpp b/include/adwaitamm/application.hpp index 0da9427..780c114 100644 --- a/include/adwaitamm/application.hpp +++ b/include/adwaitamm/application.hpp @@ -8,8 +8,10 @@ #define LIBADWAITAMM_APPLICATION_HPP #include "adwaitamm/helpers/gobj_mixin.hpp" +#include "adwaitamm/stylemanager.hpp" #include <glibmm/object.h> +#include <glibmm/propertyproxy.h> #include <glibmm/refptr.h> #include <glibmm/ustring.h> @@ -42,18 +44,22 @@ namespace Adwaita auto operator=(Application const & other) noexcept -> Application & = delete; auto operator=(Application && other) noexcept -> Application & = default; + auto static get_type() -> GType; + auto static get_base_type() -> GType; + auto static create(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE) -> Glib::RefPtr<Application>; - auto static get_type() -> GType; - auto static get_base_type() -> GType; + auto get_style_manager() const -> StyleManager *; + + auto property_style_manager() const -> Glib::PropertyProxy_ReadOnly<StyleManager *>; protected: friend Application_Class; explicit Application(Glib::ConstructParams const & params); explicit Application(BaseObjectType * gobj); - explicit Application(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE); + explicit Application(Glib::ustring const & id, Gio::Application::Flags flags); private: Glib::Class const & custom_class_init(); diff --git a/src/application.cpp b/src/application.cpp index a50d133..ad43017 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -7,11 +7,13 @@ #include "adwaitamm/application.hpp" #include "adwaitamm/private/application_p.hpp" +#include "adwaitamm/stylemanager.hpp" #include "adwaitamm/wrap_init.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> @@ -48,17 +50,14 @@ namespace Adwaita return Glib::RefPtr<Application>(new Application(id, flags)); } - Glib::Class const & Application::custom_class_init() + auto Application::get_style_manager() const -> StyleManager * { + return Glib::wrap(adw_application_get_style_manager(const_cast<BaseObjectType *>(unwrap(this)))); + } - auto static did_init{false}; - if (!did_init) - { - Gtk::init_gtkmm_internals(); - wrap_init(); - } - - return _class.init(); + auto Application::property_style_manager() const -> Glib::PropertyProxy_ReadOnly<StyleManager *> + { + return {this, "style-manager"}; } Application::Application(Glib::ConstructParams const & params) @@ -78,6 +77,19 @@ namespace Adwaita adw_init(); } + Glib::Class const & Application::custom_class_init() + { + + auto static did_init{false}; + if (!did_init) + { + Gtk::init_gtkmm_internals(); + wrap_init(); + } + + return _class.init(); + } + } // namespace Adwaita namespace Glib |
