summaryrefslogtreecommitdiff
path: root/adw/src
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-04-03 22:40:01 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-04-03 22:40:01 +0200
commit9d5512624637fad84c1b3edb97270c4f10c5056a (patch)
treee95f691edae08e774905359953fb075f67aad0e4 /adw/src
parent6e194d366e395312c5aa8e905445cd7f4b00ed5b (diff)
downloadturns-9d5512624637fad84c1b3edb97270c4f10c5056a.tar.xz
turns-9d5512624637fad84c1b3edb97270c4f10c5056a.zip
adw: mimic gtkmm initialization
Diffstat (limited to 'adw/src')
-rw-r--r--adw/src/application.cpp15
-rw-r--r--adw/src/wrap_init.cpp6
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