aboutsummaryrefslogtreecommitdiff
path: root/src/CGEditor.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CGEditor.hpp')
-rw-r--r--src/CGEditor.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/CGEditor.hpp b/src/CGEditor.hpp
new file mode 100644
index 0000000..d30d05e
--- /dev/null
+++ b/src/CGEditor.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "Types.hpp"
+#include "components/Margin.hpp"
+#include "components/Menu.hpp"
+#include "components/MoveTable.hpp"
+#include "components/Scrollbar.hpp"
+
+#include <string>
+
+namespace cgeditor {
+
+class CGEditor {
+ /// @brief Prepare element for drawing and draw
+ void CallDrawElement(Element);
+ /// @brief Draw all elements of a component
+ void DrawComponent(Component *);
+
+ Scrollbar *SBV, *SBH;
+ MoveTable *MT;
+ Margin *MA;
+ Menu *ME;
+
+protected:
+ Status status;
+ ///@brief Draw the Chess Game Editor on the canvas using current status
+ void Draw();
+ /// @brief Draw an element on the canvas
+ virtual void DrawElement(const Element &) = 0;
+ /// @brief Handle event that occured during editor drawing
+ virtual void HandleEvent(const Event &) = 0;
+
+public:
+ CGEditor();
+ ~CGEditor();
+};
+} // namespace cgeditor \ No newline at end of file