aboutsummaryrefslogtreecommitdiff
path: root/src/CGEditor.hpp
blob: d30d05e09e53bf6b21900bce515efdbf7e2ddb30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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