// // Created by selim on 10.05.2022. // #include "Application.h" #include "Window.h" namespace gtkpp { void activateCallback(GtkApplication* app, void *data) { auto application = reinterpret_cast(data); application->_signalActivate.emit(); } Application::Application(const std::string &id) { _app = adw_application_new(id.c_str(), G_APPLICATION_FLAGS_NONE); } int Application::run(int argc, char **argv) { return g_application_run(G_APPLICATION(_app), argc, argv); } void Application::onActivate(const std::function& callback) { g_signal_connect(_app, "activate", G_CALLBACK(activateCallback), this); _signalActivate.connect(callback); } AdwApplication *Application::gobj() const { return _app; } void Application::addWindow(const std::shared_ptr& window) { gtk_application_add_window(GTK_APPLICATION(_app), GTK_WINDOW(window->gobj())); } }