Files
Upsilon/apps/math_toolbox.h
Léa Saviot 4d778b5d9f [apps/escher/poincare] Use 2D Edition in Sequence and Graph apps.
EditableExpressionView is renamed ScrollableViewWithCursor.
EditableExpressionView is now a View that displays either a TextField or
a ScrollableViewWithCursor, depending on Poincare::Preferences.

Change-Id: Id44ddcd9a83f5fd17d65753ca4c94c5c7cda9b8a
2018-01-23 10:28:02 +01:00

30 lines
1.1 KiB
C++

#ifndef APPS_MATH_TOOLBOX_H
#define APPS_MATH_TOOLBOX_H
#define MATRICES_ARE_DEFINED 1
#include <escher.h>
#include <apps/i18n.h>
#include <apps/expression_editor/controller.h>
class MathToolbox : public Toolbox {
public:
typedef void (*Action)(void * sender, const char * text, bool removeArguments);
MathToolbox();
void setSenderAndAction(Responder * sender, Action action);
static void actionForScrollableExpressionViewWithCursor(void * sender, const char * text, bool removeArguments = true);
static void actionForTextField(void * sender, const char * text, bool removeArguments = true);
protected:
bool selectLeaf(ToolboxMessageTree * selectedMessageTree) override;
const ToolboxMessageTree * rootModel() override;
MessageTableCellWithMessage * leafCellAtIndex(int index) override;
MessageTableCellWithChevron* nodeCellAtIndex(int index) override;
int maxNumberOfDisplayedRows() override;
constexpr static int k_maxNumberOfDisplayedRows = 6; // = 240/40
Action m_action;
private:
MessageTableCellWithMessage m_leafCells[k_maxNumberOfDisplayedRows];
MessageTableCellWithChevron m_nodeCells[k_maxNumberOfDisplayedRows];
};
#endif