summaryrefslogtreecommitdiff
path: root/app/src/application.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/application.cpp')
-rw-r--r--app/src/application.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/app/src/application.cpp b/app/src/application.cpp
index 9408335..a5e8a3c 100644
--- a/app/src/application.cpp
+++ b/app/src/application.cpp
@@ -2,7 +2,7 @@
#include "turns/app/windows/main.hpp"
-#include <glibmm.h>
+#include <glibmm/wrap.h>
#include <gtkmm/builder.h>
#include <gtkmm/init.h>
#include <gtkmm/window.h>
@@ -15,23 +15,22 @@ namespace turns::app
auto application::create() -> std::shared_ptr<application>
{
Gtk::init_gtkmm_internals();
+ adw_init();
return std::shared_ptr<application>{new application{}};
}
auto application::run(int argc, char * argv[]) -> int
{
- return g_application_run(G_APPLICATION(m_self), argc, argv);
+ return g_application_run(G_APPLICATION(m_adw), argc, argv);
}
application::application()
{
- m_self = adw_application_new("ch.arknet.Turns", G_APPLICATION_DEFAULT_FLAGS);
- m_application = Glib::wrap(GTK_APPLICATION(m_self));
+ m_adw = adw_application_new("ch.arknet.Turns", G_APPLICATION_DEFAULT_FLAGS);
+ m_application = Glib::wrap(GTK_APPLICATION(m_adw));
auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/windows/main.ui");
- auto main_window = Gtk::Builder::get_widget_derived<windows::main>(builder, "main");
-
- m_main_window = ADW_APPLICATION_WINDOW(main_window->gobj());
+ m_main = Gtk::Builder::get_widget_derived<windows::main>(builder, "main");
m_application->signal_activate().connect(sigc::mem_fun(*this, &application::on_activate));
m_application->signal_shutdown().connect(sigc::mem_fun(*this, &application::on_shutdown));
@@ -40,19 +39,19 @@ namespace turns::app
auto application::handle_action_quit() -> void
{
- gtk_window_close(GTK_WINDOW(m_main_window));
+ m_main->close();
}
auto application::on_activate() -> void
{
- gtk_application_add_window(m_application->gobj(), GTK_WINDOW(m_main_window));
- gtk_window_present(GTK_WINDOW(m_main_window));
+ m_application->add_window(*m_main);
+ m_main->present();
}
auto application::on_shutdown() -> void
{
- gtk_window_close(GTK_WINDOW(m_main_window));
- delete Glib::wrap(GTK_WINDOW(m_main_window));
+ m_main->close();
+ delete m_main;
}
auto application::on_startup() -> void