#pragma once #include "core/Project.hpp" #include "editor/EditorState.hpp" #include "ui/Layout.hpp" namespace tahgibu { // Ventana principal: crea la ventana de raylib, ejecuta el bucle y dibuja las zonas. // La lógica del programa vive en core/ y editor/, no aquí. class Application { public: Application(); ~Application(); Application(const Application&) = delete; Application& operator=(const Application&) = delete; // Devuelve el código de salida del proceso. int run(); private: void update(); void draw() const; void drawMenuBar() const; void drawToolBar() const; void drawCanvas() const; void drawProperties() const; void drawTimeline() const; Project project_; EditorState state_; Layout layout_; }; } // namespace tahgibu