From f6bdf56c15d9bcca4de170ba02a48e1a02f7b0ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Wed, 6 Jun 2018 17:15:46 +0200 Subject: [PATCH] [escher] TableViewDataSource: implement default cumulatedWidthFromIndex, cumulatedWidthFromIndex, indexFromCumulatedWidth, indexFromCumulatedHeight --- apps/probability/calculation_controller.cpp | 17 ---------- apps/probability/calculation_controller.h | 2 -- .../expression_model_list_controller.cpp | 17 ---------- .../shared/expression_model_list_controller.h | 2 -- apps/shared/function_list_controller.h | 6 ---- apps/solver/list_controller.h | 6 ---- apps/solver/solutions_controller.cpp | 17 ---------- apps/solver/solutions_controller.h | 2 -- apps/statistics/calculation_controller.cpp | 16 --------- apps/statistics/calculation_controller.h | 2 -- .../include/escher/table_view_data_source.h | 8 ++--- escher/src/table_view_data_source.cpp | 34 +++++++++++++++++++ 12 files changed, 38 insertions(+), 91 deletions(-) diff --git a/apps/probability/calculation_controller.cpp b/apps/probability/calculation_controller.cpp index e76addfee..e889ea174 100644 --- a/apps/probability/calculation_controller.cpp +++ b/apps/probability/calculation_controller.cpp @@ -132,23 +132,6 @@ KDCoordinate CalculationController::rowHeight(int j) { return ResponderImageCell::k_oneCellHeight; } -KDCoordinate CalculationController::cumulatedWidthFromIndex(int j) { - int result = 0; - for (int k = 0; k < j; k++) { - result += columnWidth(k); - } - return result; -} - -int CalculationController::indexFromCumulatedWidth(KDCoordinate offsetX) { - int result = 0; - int i = 0; - while (result < offsetX && i < numberOfColumns()) { - result += columnWidth(i++); - } - return (result < offsetX || offsetX == 0) ? i : i - 1; -} - KDCoordinate CalculationController::cumulatedHeightFromIndex(int j) { return rowHeight(0) * j; } diff --git a/apps/probability/calculation_controller.h b/apps/probability/calculation_controller.h index 6f2db3bc7..9b2ccb400 100644 --- a/apps/probability/calculation_controller.h +++ b/apps/probability/calculation_controller.h @@ -29,9 +29,7 @@ public: int numberOfColumns() override; KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override; - KDCoordinate cumulatedWidthFromIndex(int i) override; KDCoordinate cumulatedHeightFromIndex(int j) override; - int indexFromCumulatedWidth(KDCoordinate offsetX) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; diff --git a/apps/shared/expression_model_list_controller.cpp b/apps/shared/expression_model_list_controller.cpp index 00f510b13..6c350959a 100644 --- a/apps/shared/expression_model_list_controller.cpp +++ b/apps/shared/expression_model_list_controller.cpp @@ -30,23 +30,6 @@ KDCoordinate ExpressionModelListController::expressionRowHeight(int j) { return modelSize + Metric::StoreRowHeight - KDText::charSize().height(); } -KDCoordinate ExpressionModelListController::cumulatedExpressionHeightFromIndex(int j) { - int result = 0; - for (int k = 0; k < j; k++) { - result += expressionRowHeight(k); - } - return result; -} - -int ExpressionModelListController::indexFromCumulatedExpressionHeight(KDCoordinate offsetY) { - int result = 0; - int j = 0; - while (result < offsetY && j < numberOfExpressionRows()) { - result += expressionRowHeight(j++); - } - return (result < offsetY || offsetY == 0) ? j : j - 1; -} - void ExpressionModelListController::willDisplayExpressionCellAtIndex(HighlightCell * cell, int j) { EvenOddExpressionCell * myCell = (EvenOddExpressionCell *)cell; ExpressionModel * m = modelStore()->modelAtIndex(j); diff --git a/apps/shared/expression_model_list_controller.h b/apps/shared/expression_model_list_controller.h index 99dfe643e..73f669bb4 100644 --- a/apps/shared/expression_model_list_controller.h +++ b/apps/shared/expression_model_list_controller.h @@ -14,8 +14,6 @@ protected: /* Table Data Source */ virtual int numberOfExpressionRows(); virtual KDCoordinate expressionRowHeight(int j); - KDCoordinate cumulatedExpressionHeightFromIndex(int j); - int indexFromCumulatedExpressionHeight(KDCoordinate offsetY); virtual void willDisplayExpressionCellAtIndex(HighlightCell * cell, int j); /* Responder */ bool handleEventOnExpression(Ion::Events::Event event); diff --git a/apps/shared/function_list_controller.h b/apps/shared/function_list_controller.h index 6cbefe3e9..7eff4a1dd 100644 --- a/apps/shared/function_list_controller.h +++ b/apps/shared/function_list_controller.h @@ -23,13 +23,7 @@ public: return expressionRowHeight(j); } KDCoordinate columnWidth(int i) override; - KDCoordinate cumulatedHeightFromIndex(int j) override { - return cumulatedExpressionHeightFromIndex(j); - } KDCoordinate cumulatedWidthFromIndex(int i) override; - int indexFromCumulatedHeight(KDCoordinate offsetY) override { - return indexFromCumulatedExpressionHeight(offsetY); - } int indexFromCumulatedWidth(KDCoordinate offsetX) override; int typeAtLocation(int i, int j) override; HighlightCell * reusableCell(int index, int type) override; diff --git a/apps/solver/list_controller.h b/apps/solver/list_controller.h index 30140f30b..de82e2bdd 100644 --- a/apps/solver/list_controller.h +++ b/apps/solver/list_controller.h @@ -22,12 +22,6 @@ public: int numberOfRows() override { return numberOfExpressionRows(); } - KDCoordinate cumulatedHeightFromIndex(int j) override { - return cumulatedExpressionHeightFromIndex(j); - } - int indexFromCumulatedHeight(KDCoordinate offsetY) override { - return indexFromCumulatedExpressionHeight(offsetY); - } KDCoordinate rowHeight(int j) override { return expressionRowHeight(j); } diff --git a/apps/solver/solutions_controller.cpp b/apps/solver/solutions_controller.cpp index 78efa39dc..9662cbe87 100644 --- a/apps/solver/solutions_controller.cpp +++ b/apps/solver/solutions_controller.cpp @@ -209,23 +209,6 @@ KDCoordinate SolutionsController::rowHeight(int j) { return layoutHeight+ScrollableExactApproximateExpressionsCell::k_margin*2; } -KDCoordinate SolutionsController::cumulatedHeightFromIndex(int j) { - int result = 0; - for (int k = 0; k < j; k++) { - result += rowHeight(k); - } - return result; -} - -int SolutionsController::indexFromCumulatedHeight(KDCoordinate offsetY) { - int result = 0; - int j = 0; - while (result < offsetY && j < numberOfRows()) { - result += rowHeight(j++); - } - return (result < offsetY || offsetY == 0) ? j : j - 1; -} - KDCoordinate SolutionsController::cumulatedWidthFromIndex(int i) { switch (i) { case 0: diff --git a/apps/solver/solutions_controller.h b/apps/solver/solutions_controller.h index 93ebd6c85..b4f288b95 100644 --- a/apps/solver/solutions_controller.h +++ b/apps/solver/solutions_controller.h @@ -27,9 +27,7 @@ public: KDCoordinate columnWidth(int i) override; KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedWidthFromIndex(int i) override; - KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedWidth(KDCoordinate offsetX) override; - int indexFromCumulatedHeight(KDCoordinate offsetY) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; int typeAtLocation(int i, int j) override; diff --git a/apps/statistics/calculation_controller.cpp b/apps/statistics/calculation_controller.cpp index 9c499e33b..bb0bf6454 100644 --- a/apps/statistics/calculation_controller.cpp +++ b/apps/statistics/calculation_controller.cpp @@ -95,27 +95,11 @@ KDCoordinate CalculationController::rowHeight(int j) { return k_cellHeight; } -KDCoordinate CalculationController::cumulatedWidthFromIndex(int i) { - int result = 0; - for (int k = 0; k < i; k++) { - result += columnWidth(k); - } - return result; -} KDCoordinate CalculationController::cumulatedHeightFromIndex(int j) { return j*rowHeight(0); } -int CalculationController::indexFromCumulatedWidth(KDCoordinate offsetX) { - int result = 0; - int i = 0; - while (result < offsetX && i < numberOfRows()) { - result += rowHeight(i++); - } - return (result < offsetX || offsetX == 0) ? i : i - 1; -} - int CalculationController::indexFromCumulatedHeight(KDCoordinate offsetY) { return (offsetY-1) / rowHeight(0); } diff --git a/apps/statistics/calculation_controller.h b/apps/statistics/calculation_controller.h index d0bfafaca..2c0b6e23c 100644 --- a/apps/statistics/calculation_controller.h +++ b/apps/statistics/calculation_controller.h @@ -26,8 +26,6 @@ public: KDCoordinate rowHeight(int j) override; KDCoordinate cumulatedHeightFromIndex(int j) override; int indexFromCumulatedHeight(KDCoordinate offsetY) override; - KDCoordinate cumulatedWidthFromIndex(int i) override; - int indexFromCumulatedWidth(KDCoordinate offsetX) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; int typeAtLocation(int i, int j) override; diff --git a/escher/include/escher/table_view_data_source.h b/escher/include/escher/table_view_data_source.h index 12bc07faa..091ce59a0 100644 --- a/escher/include/escher/table_view_data_source.h +++ b/escher/include/escher/table_view_data_source.h @@ -13,14 +13,14 @@ public: virtual KDCoordinate rowHeight(int j) = 0; /* return the number of pixels to include in offset to display the column i at the top */ - virtual KDCoordinate cumulatedWidthFromIndex(int i) = 0; - virtual KDCoordinate cumulatedHeightFromIndex(int j) = 0; + virtual KDCoordinate cumulatedWidthFromIndex(int i); + virtual KDCoordinate cumulatedHeightFromIndex(int j); /* return the number of columns (starting with first ones) that can be fully * displayed in offsetX pixels. * Caution: if the offset is exactly the size of n columns, the function * returns n-1. */ - virtual int indexFromCumulatedWidth(KDCoordinate offsetX) = 0; - virtual int indexFromCumulatedHeight(KDCoordinate offsetY) = 0; + virtual int indexFromCumulatedWidth(KDCoordinate offsetX); + virtual int indexFromCumulatedHeight(KDCoordinate offsetY); virtual HighlightCell * reusableCell(int index, int type) = 0; virtual int reusableCellCount(int type) = 0; virtual int typeAtLocation(int i, int j) = 0; diff --git a/escher/src/table_view_data_source.cpp b/escher/src/table_view_data_source.cpp index d92dccffb..7ee6cc462 100644 --- a/escher/src/table_view_data_source.cpp +++ b/escher/src/table_view_data_source.cpp @@ -2,3 +2,37 @@ void TableViewDataSource::willDisplayCellAtLocation(HighlightCell * cell, int i, int j) { } + +KDCoordinate TableViewDataSource::cumulatedWidthFromIndex(int i) { + int result = 0; + for (int k = 0; k < i; k++) { + result += columnWidth(k); + } + return result; +} + +KDCoordinate TableViewDataSource::cumulatedHeightFromIndex(int j) { + int result = 0; + for (int k = 0; k < j; k++) { + result += rowHeight(k); + } + return result; +} + +int TableViewDataSource::indexFromCumulatedWidth(KDCoordinate offsetX) { + int result = 0; + int i = 0; + while (result < offsetX && i < numberOfColumns()) { + result += columnWidth(i++); + } + return (result < offsetX || offsetX == 0) ? i : i - 1; +} + +int TableViewDataSource::indexFromCumulatedHeight(KDCoordinate offsetY) { + int result = 0; + int j = 0; + while (result < offsetY && j < numberOfRows()) { + result += rowHeight(j++); + } + return (result < offsetY || offsetY == 0) ? j : j - 1; +}