#include "turns/app/application.hpp" #include #include #include #include namespace turns::app { auto application::create() -> Glib::RefPtr { return Glib::make_refptr_for_instance(new application{}); } application::application() : Gtk::Application{"ch.arknet.Turns"} { auto builder = Gtk::Builder::create_from_resource("/turns/windows/main_window.ui"); auto main_window = builder->get_widget("main_window"); m_main_window = ADW_APPLICATION_WINDOW(main_window->gobj()); add_action("quit", sigc::mem_fun(*this, &application::handle_action_quit)); set_accel_for_action("app.quit", "q"); } auto application::handle_action_quit() -> void { gtk_window_close(GTK_WINDOW(m_main_window)); } auto application::on_activate() -> void { Gtk::Application::on_activate(); gtk_application_add_window(GTK_APPLICATION(gobj()), GTK_WINDOW(m_main_window)); gtk_window_present(GTK_WINDOW(m_main_window)); } auto application::on_shutdown() -> void { Gtk::Application::on_shutdown(); gtk_window_close(GTK_WINDOW(m_main_window)); delete Glib::wrap(GTK_WINDOW(m_main_window)); } } // namespace turns::app