Numworks Epsilon  1.4.1
Graphing Calculator Operating System
grid_layout.h
Go to the documentation of this file.
1 #ifndef POINCARE_GRID_LAYOUT_H
2 #define POINCARE_GRID_LAYOUT_H
3 
4 #include <poincare/expression.h>
6 
7 namespace Poincare {
8 
9 class GridLayout : public ExpressionLayout {
10 public:
11  GridLayout(ExpressionLayout ** entryLayouts, int numberOfRows, int numberOfColumns);
12  ~GridLayout();
13  GridLayout(const GridLayout& other) = delete;
14  GridLayout(GridLayout&& other) = delete;
15  GridLayout& operator=(const GridLayout& other) = delete;
16  GridLayout& operator=(GridLayout&& other) = delete;
17 protected:
18  void render(KDContext * ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override;
19  KDSize computeSize() override;
20  ExpressionLayout * child(uint16_t index) override;
22 private:
23  constexpr static KDCoordinate k_gridEntryMargin = 6;
24  KDCoordinate rowBaseline(int i);
25  KDCoordinate rowHeight(int i);
26  KDCoordinate height();
27  KDCoordinate columnWidth(int j);
28  KDCoordinate width();
29  ExpressionLayout ** m_entryLayouts;
30  int m_numberOfRows;
31  int m_numberOfColumns;
32 };
33 
34 }
35 
36 #endif
KDPoint positionOfChild(ExpressionLayout *child) override
Definition: grid_layout.cpp:88
GridLayout(ExpressionLayout **entryLayouts, int numberOfRows, int numberOfColumns)
Definition: grid_layout.cpp:9
int16_t KDCoordinate
Definition: coordinate.h:6
unsigned short uint16_t
Definition: stdint.h:5
void render(KDContext *ctx, KDPoint p, KDColor expressionColor, KDColor backgroundColor) override
Definition: grid_layout.cpp:73
GridLayout & operator=(const GridLayout &other)=delete
Definition: point.h:6
ExpressionLayout * child(uint16_t index) override
Definition: grid_layout.cpp:81
Definition: size.h:6
constexpr uint8_t numberOfColumns
Definition: keyboard.h:39
Definition: color.h:6
constexpr uint8_t numberOfRows
Definition: keyboard.h:35
KDSize computeSize() override
Definition: grid_layout.cpp:77