diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-04-03 22:40:01 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-04-03 22:40:01 +0200 |
| commit | 9d5512624637fad84c1b3edb97270c4f10c5056a (patch) | |
| tree | e95f691edae08e774905359953fb075f67aad0e4 /adw/src | |
| parent | 6e194d366e395312c5aa8e905445cd7f4b00ed5b (diff) | |
| download | turns-9d5512624637fad84c1b3edb97270c4f10c5056a.tar.xz turns-9d5512624637fad84c1b3edb97270c4f10c5056a.zip | |
adw: mimic gtkmm initialization
Diffstat (limited to 'adw/src')
| -rw-r--r-- | adw/src/application.cpp | 15 | ||||
| -rw-r--r-- | adw/src/wrap_init.cpp | 6 |
2 files changed, 12 insertions, 9 deletions
diff --git a/adw/src/application.cpp b/adw/src/application.cpp index b8f5af9..5da1a5c 100644 --- a/adw/src/application.cpp +++ b/adw/src/application.cpp @@ -59,16 +59,20 @@ namespace turns::adw auto Application::create(Glib::ustring const & id, Gio::Application::Flags flags) -> Glib::RefPtr<Application> { - auto static did_init = false; + return Glib::RefPtr<Application>(new Application(id, flags)); + } + Glib::Class const & Application::custom_class_init() + { + + auto static did_init{false}; if (!did_init) { Gtk::init_gtkmm_internals(); - turns::adw::wrap_init(); - did_init = true; + adw::wrap_init(); } - return Glib::RefPtr<Application>(new Application(id, flags)); + return _class.init(); } Application::Application(Glib::ConstructParams const & params) @@ -83,8 +87,9 @@ namespace turns::adw Application::Application(Glib::ustring const & id, Gio::Application::Flags flags) : Glib::ObjectBase{nullptr} - , Gtk::Application{Glib::ConstructParams{_class.init(), "application_id", Glib::c_str_or_nullptr(id), "flags", static_cast<GApplicationFlags>(flags), nullptr}} + , Gtk::Application{Glib::ConstructParams{custom_class_init(), "application_id", Glib::c_str_or_nullptr(id), "flags", static_cast<GApplicationFlags>(flags), nullptr}} { + adw_init(); } } // namespace turns::adw diff --git a/adw/src/wrap_init.cpp b/adw/src/wrap_init.cpp index e58bffd..038d369 100644 --- a/adw/src/wrap_init.cpp +++ b/adw/src/wrap_init.cpp @@ -24,18 +24,16 @@ namespace turns::adw { auto wrap_init() -> void { - adw_init(); - WRAP_CLASS(ActionRow, action_row); WRAP_CLASS(Application, application); WRAP_CLASS(ApplicationWindow, application_window); WRAP_CLASS(Breakpoint, breakpoint); WRAP_CLASS(Dialog, dialog); - WRAP_CLASS(Toast, toast); WRAP_CLASS(PreferencesDialog, preferences_dialog); WRAP_CLASS(PreferencesPage, preferences_page); WRAP_CLASS(PreferencesRow, preferences_row); WRAP_CLASS(SwitchRow, switch_row); + WRAP_CLASS(Toast, toast); WRAP_CLASS(ToastOverlay, toast_overlay); ENSURE_TYPE(ActionRow); @@ -43,11 +41,11 @@ namespace turns::adw ENSURE_TYPE(ApplicationWindow); ENSURE_TYPE(Breakpoint); ENSURE_TYPE(Dialog); - ENSURE_TYPE(Toast); ENSURE_TYPE(PreferencesDialog); ENSURE_TYPE(PreferencesPage); ENSURE_TYPE(PreferencesRow); ENSURE_TYPE(SwitchRow); + ENSURE_TYPE(Toast); ENSURE_TYPE(ToastOverlay); } } // namespace turns::adw
\ No newline at end of file |
