AutoCatGnome/gtkpp/Application.h

39 lines
876 B
C++

//
// Created by selim on 10.05.2022.
//
#ifndef AUTOCAT_GNOME_APPLICATION_H
#define AUTOCAT_GNOME_APPLICATION_H
#include <adwaita.h>
#include <string>
#include <functional>
#include <vector>
#include <sigc++/sigc++.h>
namespace gtkpp {
class Window;
class Application {
private:
AdwApplication* _app;
std::vector<std::shared_ptr<Window>> _windows;
sigc::signal<void()> _signalActivate;
private:
friend void activateCallback(GtkApplication* app, void* data);
public:
explicit Application(const std::string& id);
int run(int argc, char* argv[]);
void onActivate(const std::function<void()>& callback);
AdwApplication* gobj() const;
void addWindow(const std::shared_ptr<Window>& window);
void removeWindow(Window* window);
};
}
#endif //AUTOCAT_GNOME_APPLICATION_H