From 139158557ca7d765a75867d1ae414e62a990877d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Mon, 14 Nov 2016 12:13:23 +0100 Subject: [PATCH] [apps] use toolbox leaf cell in the toolbox controller Change-Id: Iac52d3777761f6d5183391608db4fe7df3c1fbd4 --- apps/toolbox_controller.cpp | 29 ++++++++++++++++++----------- apps/toolbox_controller.h | 3 ++- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/apps/toolbox_controller.cpp b/apps/toolbox_controller.cpp index 9fa26e182..68e314505 100644 --- a/apps/toolbox_controller.cpp +++ b/apps/toolbox_controller.cpp @@ -6,16 +6,16 @@ * and the text which would be edited by clicking on the row. When the node is a * subtree, the edited text is set at nullptr. */ -const ToolboxNode calculChildren[4] = {ToolboxNode("Nombre derivee", "diff(,)"), ToolboxNode("Integrale", "Int(,,)"), ToolboxNode("Somme", "sum(,,)"), ToolboxNode("Produit", "Product(,,)")}; -const ToolboxNode complexChildren[5] = {ToolboxNode("Module", "abs()"), ToolboxNode("Argument", "arg()"), ToolboxNode("Partie reelle", "re()"), ToolboxNode("Partie imaginaire", "im()"), ToolboxNode("Conjugue", "conj()")}; -const ToolboxNode probabilityChildren[4] = {ToolboxNode("Combinaison", "binomial()"), ToolboxNode("Arrangement", "permute(,)"), ToolboxNode("Nombre aleatoire", "random(,)"), ToolboxNode("Fonction gamma", "gamma()")}; -const ToolboxNode arithmeticChildren[4] = {ToolboxNode("PGCD", "gcd()"), ToolboxNode("PPCM","lcm()"), ToolboxNode("Reste division euclidienne", "rem()"), ToolboxNode("Quotien division euclidienne", "quo()")}; -const ToolboxNode matricesChildren[5] = {ToolboxNode("Inverse", "inverse()"), ToolboxNode("Determinant", "det()"), ToolboxNode("Transposee", "transpose()"), ToolboxNode("Trace", "trace()"), ToolboxNode("Taille", "dim()")}; -const ToolboxNode listesChildren[5] = {ToolboxNode("Tri croissant", "sort<()"), ToolboxNode("Tri decroissant", "sort>()"), ToolboxNode("Maximum", "max()"), ToolboxNode("Minimum", "min()"), ToolboxNode("Taille", "dim()")}; -const ToolboxNode approximationChildren[4] = {ToolboxNode("Partie entiere", "floor()"), ToolboxNode("Partie fractionnaire", "frac()"), ToolboxNode("Plafond", "ceil()"), ToolboxNode("Arrondi", "round(,)")}; -const ToolboxNode trigonometryChildren[6] = {ToolboxNode("cosh", "cosh()"), ToolboxNode("sinh", "sinh()"), ToolboxNode("tanh", "tanh()"), ToolboxNode("acosh", "acosh()"), ToolboxNode("asinh", "asinh()"), ToolboxNode("atanh", "atanh()")}; +const ToolboxNode calculChildren[4] = {ToolboxNode("diff(,)", "Nombre derivee"), ToolboxNode("Int(,,)", "Integrale"), ToolboxNode("sum(,,)", "Somme"), ToolboxNode("Product(,,)", "Produit")}; +const ToolboxNode complexChildren[5] = {ToolboxNode("abs()", "Module"), ToolboxNode("arg()", "Argument"), ToolboxNode("re()", "Partie reelle"), ToolboxNode("im()", "Partie imaginaire"), ToolboxNode("conj()", "Conjugue")}; +const ToolboxNode probabilityChildren[4] = {ToolboxNode("binomial()", "Combinaison"), ToolboxNode("permute(,)", "Arrangement"), ToolboxNode("random(,)", "Nombre aleatoire"), ToolboxNode("gamma()", "Fonction gamma")}; +const ToolboxNode arithmeticChildren[4] = {ToolboxNode("gcd()", "PGCD"), ToolboxNode("lcm()", "PPCM"), ToolboxNode("rem()", "Reste division euclidienne"), ToolboxNode("quo()","Quotien division euclidienne")}; +const ToolboxNode matricesChildren[5] = {ToolboxNode("inverse()", "Inverse"), ToolboxNode("det()", "Determinant"), ToolboxNode("transpose()", "Transposee"), ToolboxNode("trace()", "Trace"), ToolboxNode("dim()", "Taille")}; +const ToolboxNode listesChildren[5] = {ToolboxNode("sort<()", "Tri croissant"), ToolboxNode("sort>()", "Tri decroissant"), ToolboxNode("max()", "Maximum"), ToolboxNode("min()", "Minimum"), ToolboxNode("dim()", "Taille")}; +const ToolboxNode approximationChildren[4] = {ToolboxNode("floor()", "Partie entiere"), ToolboxNode("frac()", "Partie fractionnaire"), ToolboxNode("ceil()", "Plafond"), ToolboxNode("round(,)", "Arrondi")}; +const ToolboxNode trigonometryChildren[6] = {ToolboxNode("cosh()", "cosh"), ToolboxNode("sinh()", "sinh"), ToolboxNode("tanh()", "tanh"), ToolboxNode("acosh()", "acosh"), ToolboxNode("asinh()", "asinh"), ToolboxNode("atanh()", "atanh")}; -const ToolboxNode menu[11] = {ToolboxNode("|x|", "abs()"), ToolboxNode("root(x)", "root(,)"), ToolboxNode("log(x)", "log(,)"), +const ToolboxNode menu[11] = {ToolboxNode("abs()", "Valeur absolue"), ToolboxNode("root(,)", "Nombre derivee"), ToolboxNode("log(,)", "Logarithme base a"), ToolboxNode("Calcul", nullptr, calculChildren, 4), ToolboxNode("Nombre complexe", nullptr, complexChildren, 5), ToolboxNode("Probabilite", nullptr, probabilityChildren, 4), ToolboxNode("Arithmetique", nullptr, arithmeticChildren, 4), ToolboxNode("Matrice", nullptr, matricesChildren, 5), ToolboxNode("Liste", nullptr, listesChildren, 5), @@ -35,8 +35,15 @@ TableViewCell * ToolboxController::nodeCellAtIndex(int index) { } void ToolboxController::willDisplayCellForIndex(TableViewCell * cell, int index) { + ToolboxNode * node = (ToolboxNode *)m_listViewController.nodeModel()->children(index); + if (node->numberOfChildren() == 0) { + ToolboxLeafCell * myCell = (ToolboxLeafCell *)cell; + myCell->setLabel(node->label()); + myCell->setSubtitle(node->text()); + return; + } MenuListCell * myCell = (MenuListCell *)cell; - myCell->setText(m_listViewController.nodeModel()->children(index)->label()); + myCell->setText(node->label()); } Node * ToolboxController::nodeModel() { @@ -46,7 +53,7 @@ Node * ToolboxController::nodeModel() { bool ToolboxController::selectLeaf(Node * selectedNode){ m_listViewController.deselectTable(); ToolboxNode * node = (ToolboxNode *)selectedNode; - const char * editedText = node->text(); + const char * editedText = node->label(); m_textFieldCaller->appendText(editedText); int cursorPosition = 0; int editedTextLength = strlen(editedText); diff --git a/apps/toolbox_controller.h b/apps/toolbox_controller.h index 8ebe7e860..2a36fcf13 100644 --- a/apps/toolbox_controller.h +++ b/apps/toolbox_controller.h @@ -3,6 +3,7 @@ #include #include "node_navigation_controller.h" +#include "toolbox_leaf_cell.h" class ToolboxController : public NodeNavigationController { public: @@ -11,7 +12,7 @@ public: TableViewCell * nodeCellAtIndex(int index) override; void willDisplayCellForIndex(TableViewCell * cell, int index) override; private: - MenuListCell m_leafCells[NodeListViewController::k_maxNumberOfDisplayedRows]; + ToolboxLeafCell m_leafCells[NodeListViewController::k_maxNumberOfDisplayedRows]; ChevronMenuListCell m_nodeCells[NodeListViewController::k_maxNumberOfDisplayedRows]; Node * nodeModel() override; bool selectLeaf(Node * selectedNode) override;