diff --git a/apps/node_list_view_controller.cpp b/apps/node_list_view_controller.cpp index c147a1933..ee7154c6a 100644 --- a/apps/node_list_view_controller.cpp +++ b/apps/node_list_view_controller.cpp @@ -80,7 +80,7 @@ void NodeListViewController::willDisplayCellForIndex(TableViewCell * cell, int i KDCoordinate NodeListViewController::rowHeight(int j) { if (typeAtLocation(0, j) == 0) { - return k_leafRowHeight; + return m_nodeNavigationController->leafRowHeight(j); } return k_nodeRowHeight; } diff --git a/apps/node_list_view_controller.h b/apps/node_list_view_controller.h index 98818e647..4299c99b3 100644 --- a/apps/node_list_view_controller.h +++ b/apps/node_list_view_controller.h @@ -35,7 +35,6 @@ public: void deselectTable(); constexpr static int k_maxNumberOfDisplayedRows = 6; //240/40 private: - constexpr static KDCoordinate k_leafRowHeight = 50; constexpr static KDCoordinate k_nodeRowHeight = 40; NodeNavigationController * m_nodeNavigationController; SelectableTableView m_selectableTableView; diff --git a/apps/node_navigation_controller.h b/apps/node_navigation_controller.h index fb3d020c6..0dd2f8786 100644 --- a/apps/node_navigation_controller.h +++ b/apps/node_navigation_controller.h @@ -15,6 +15,7 @@ public: virtual TableViewCell * leafCellAtIndex(int index) = 0; virtual TableViewCell * nodeCellAtIndex(int index) = 0; virtual void willDisplayCellForIndex(TableViewCell * cell, int index); + virtual KDCoordinate leafRowHeight(int index) = 0; protected: TextField * m_textFieldCaller; NodeListViewController m_listViewController; diff --git a/apps/toolbox_controller.cpp b/apps/toolbox_controller.cpp index 68e314505..89a90298a 100644 --- a/apps/toolbox_controller.cpp +++ b/apps/toolbox_controller.cpp @@ -46,6 +46,10 @@ void ToolboxController::willDisplayCellForIndex(TableViewCell * cell, int index) myCell->setText(node->label()); } +KDCoordinate ToolboxController::leafRowHeight(int index) { + return k_leafRowHeight; +} + Node * ToolboxController::nodeModel() { return (Node *)&toolboxModel; } diff --git a/apps/toolbox_controller.h b/apps/toolbox_controller.h index 2a36fcf13..4448a0a30 100644 --- a/apps/toolbox_controller.h +++ b/apps/toolbox_controller.h @@ -11,7 +11,9 @@ public: TableViewCell * leafCellAtIndex(int index) override; TableViewCell * nodeCellAtIndex(int index) override; void willDisplayCellForIndex(TableViewCell * cell, int index) override; + KDCoordinate leafRowHeight(int index) override; private: + constexpr static KDCoordinate k_leafRowHeight = 40; ToolboxLeafCell m_leafCells[NodeListViewController::k_maxNumberOfDisplayedRows]; ChevronMenuListCell m_nodeCells[NodeListViewController::k_maxNumberOfDisplayedRows]; Node * nodeModel() override; diff --git a/apps/variable_box_controller.cpp b/apps/variable_box_controller.cpp index e4c3b21de..b61b3c65c 100644 --- a/apps/variable_box_controller.cpp +++ b/apps/variable_box_controller.cpp @@ -69,6 +69,23 @@ void VariableBoxController::willDisplayCellForIndex(TableViewCell * cell, int in } } +KDCoordinate VariableBoxController::leafRowHeight(int index) { + // TODO: add a constant to index if the node == matrice/liste + const char * parentNodeLabel = m_listViewController.nodeModel()->label(); + const Expression * expression = m_context->scalarExpressionForIndex(index); + if (strcmp(parentNodeLabel, "Matrices") == 0) { + //expression = m_context->matrixExpressionForIndex(index); + } + if (strcmp(parentNodeLabel, "Listes") == 0) { + //expression = m_context->listExpressionForIndex(index); + } + if (expression) { + KDCoordinate expressionHeight = expression->createLayout()->size().height(); + return expressionHeight; + } + return k_leafRowHeight; +} + Node * VariableBoxController::nodeModel() { return (Node *)&variableBoxModel; } diff --git a/apps/variable_box_controller.h b/apps/variable_box_controller.h index ebbd03785..669cbe421 100644 --- a/apps/variable_box_controller.h +++ b/apps/variable_box_controller.h @@ -13,7 +13,9 @@ public: TableViewCell * leafCellAtIndex(int index) override; TableViewCell * nodeCellAtIndex(int index) override; void willDisplayCellForIndex(TableViewCell * cell, int index) override; + KDCoordinate leafRowHeight(int index) override; private: + constexpr static KDCoordinate k_leafRowHeight = 40; Context * m_context; VariableBoxLeafCell m_leafCells[NodeListViewController::k_maxNumberOfDisplayedRows]; ChevronMenuListCell m_nodeCells[NodeListViewController::k_maxNumberOfDisplayedRows];