#pragma once #include #include "Input/InputHandler.h" #include "AppLayers/AppLayer.h" #include #include "Commands/HistoryManager.h" #include "ManagementContext/PanelManagementContext.h" #include "Artwork.h" class App { private: bool testMode = false, memCheck = false; uint64_t bootTime; SDL_Window* window; InputHandler* input; std::vector> layers; // these are app layers, not canvas/drawing layers, shared with the input system std::vector> projectsLayers; std::vector> editorLayers; void activateLayers(std::vector> layers); void deactivateLayers(std::vector> layers); bool areAllLayersActive(std::vector> layers); char* execName; PanelManagementContext* panelContext; void initLayers(); void initPanels(); public: static Artwork* CurrentArtwork; static HistoryManager* History; static int Width, Height; App(int argc, char* argv[]); ~App(); void Run(); };