38 lines
1019 B
C++
38 lines
1019 B
C++
//
|
|
// 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<Application*>(data);
|
|
application->_signalActivate.emit();
|
|
}
|
|
|
|
Application::Application(const std::string &id) {
|
|
_app = adw_application_new(id.c_str(), G_APPLICATION_FLAGS_NONE);
|
|
g_signal_connect(_app, "activate", G_CALLBACK(activateCallback), this);
|
|
}
|
|
|
|
int Application::run(int argc, char **argv) {
|
|
return g_application_run(G_APPLICATION(_app), argc, argv);
|
|
}
|
|
|
|
void Application::onActivate(const std::function<void()>& callback) {
|
|
_signalActivate.connect(callback);
|
|
}
|
|
|
|
AdwApplication *Application::gobj() const {
|
|
return _app;
|
|
}
|
|
|
|
void Application::addWindow(const std::shared_ptr<Window>& window) {
|
|
_window = window;
|
|
gtk_application_add_window(GTK_APPLICATION(_app), GTK_WINDOW(window->gobj()));
|
|
}
|
|
|
|
}
|