Numworks Epsilon  1.4.1
Graphing Calculator Operating System
expression_layout.h
Go to the documentation of this file.
1 #ifndef POINCARE_EXPRESSION_LAYOUT_H
2 #define POINCARE_EXPRESSION_LAYOUT_H
3 
4 #include <kandinsky.h>
5 
6 namespace Poincare {
7 
9 public:
11  virtual ~ExpressionLayout() = default;
12 
13  void draw(KDContext * ctx, KDPoint p, KDColor expressionColor = KDColorBlack, KDColor backgroundColor = KDColorWhite);
14  KDPoint origin();
15  KDSize size();
17  void setParent(ExpressionLayout* parent);
18 protected:
19  virtual void render(KDContext * ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) = 0;
20  virtual KDSize computeSize() = 0;
21  virtual ExpressionLayout * child(uint16_t index) = 0;
24 private:
25  KDPoint absoluteOrigin();
26  //void computeLayout();//ExpressionLayout * parent, uint16_t childIndex);
27  ExpressionLayout* m_parent;
28  bool m_sized, m_positioned;
29  KDRect m_frame;
30 };
31 
32 }
33 
34 #endif
virtual KDPoint positionOfChild(ExpressionLayout *child)=0
void draw(KDContext *ctx, KDPoint p, KDColor expressionColor=KDColorBlack, KDColor backgroundColor=KDColorWhite)
int16_t KDCoordinate
Definition: coordinate.h:6
unsigned short uint16_t
Definition: stdint.h:5
virtual void render(KDContext *ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor)=0
Definition: point.h:6
Definition: size.h:6
constexpr KDColor KDColorWhite
Definition: color.h:42
constexpr KDColor KDColorBlack
Definition: color.h:41
virtual ExpressionLayout * child(uint16_t index)=0
Definition: rect.h:26
virtual ~ExpressionLayout()=default
Definition: color.h:6
void setParent(ExpressionLayout *parent)
virtual KDSize computeSize()=0