mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
[escher] Divide class selectable table view delegate in 2: selectable
table view data source & selectable table view delegate Change-Id: I90fbd61e271db3754c13bd0069b95c2026de6814
This commit is contained in:
@@ -181,7 +181,7 @@ CalculationSelectableTableView * HistoryController::selectableTableView() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
View * HistoryController::loadView() {
|
View * HistoryController::loadView() {
|
||||||
CalculationSelectableTableView * tableView = new CalculationSelectableTableView(this, this, this);
|
CalculationSelectableTableView * tableView = new CalculationSelectableTableView(this, this, this, this);
|
||||||
for (int i = 0; i < k_maxNumberOfDisplayedRows; i++) {
|
for (int i = 0; i < k_maxNumberOfDisplayedRows; i++) {
|
||||||
m_calculationHistory[i] = new HistoryViewCell(tableView);
|
m_calculationHistory[i] = new HistoryViewCell(tableView);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace Calculation {
|
|||||||
|
|
||||||
class App;
|
class App;
|
||||||
|
|
||||||
class HistoryController : public DynamicViewController, public ListViewDataSource, public SelectableTableViewDelegate {
|
class HistoryController : public DynamicViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate {
|
||||||
public:
|
public:
|
||||||
HistoryController(Responder * parentResponder, CalculationStore * calculationStore);
|
HistoryController(Responder * parentResponder, CalculationStore * calculationStore);
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
namespace Calculation {
|
namespace Calculation {
|
||||||
|
|
||||||
class ScrollableExpressionView : public ScrollableView, public ScrollViewDelegate {
|
class ScrollableExpressionView : public ScrollableView, public ScrollViewDataSource {
|
||||||
public:
|
public:
|
||||||
ScrollableExpressionView(Responder * parentResponder);
|
ScrollableExpressionView(Responder * parentResponder);
|
||||||
void setExpression(Poincare::ExpressionLayout * expressionLayout);
|
void setExpression(Poincare::ExpressionLayout * expressionLayout);
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
namespace Calculation {
|
namespace Calculation {
|
||||||
|
|
||||||
CalculationSelectableTableView::CalculationSelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource,
|
CalculationSelectableTableView::CalculationSelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource,
|
||||||
SelectableTableViewDelegate * delegate) :
|
SelectableTableViewDataSource * selectionDataSource, SelectableTableViewDelegate * delegate) :
|
||||||
::SelectableTableView(parentResponder, dataSource, 0, 0, 0, 0, 0, 0, delegate, false)
|
::SelectableTableView(parentResponder, dataSource, 0, 0, 0, 0, 0, 0, selectionDataSource, delegate, false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace Calculation {
|
|||||||
class CalculationSelectableTableView : public ::SelectableTableView {
|
class CalculationSelectableTableView : public ::SelectableTableView {
|
||||||
public:
|
public:
|
||||||
CalculationSelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource,
|
CalculationSelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource,
|
||||||
SelectableTableViewDelegate * delegate = nullptr);
|
SelectableTableViewDataSource * selectionDataSource, SelectableTableViewDelegate * delegate = nullptr);
|
||||||
void scrollToCell(int i, int j) override;
|
void scrollToCell(int i, int j) override;
|
||||||
void scrollToSubviewOfTypeOfCellAtLocation(HistoryViewCell::SubviewType subviewType, int i, int j);
|
void scrollToSubviewOfTypeOfCellAtLocation(HistoryViewCell::SubviewType subviewType, int i, int j);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace Graph {
|
|||||||
|
|
||||||
class ValuesController;
|
class ValuesController;
|
||||||
|
|
||||||
class DerivativeParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class DerivativeParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
DerivativeParameterController(ValuesController * valuesController);
|
DerivativeParameterController(ValuesController * valuesController);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ extern "C" {
|
|||||||
namespace Home {
|
namespace Home {
|
||||||
|
|
||||||
Controller::ContentView::ContentView(Controller * controller) :
|
Controller::ContentView::ContentView(Controller * controller) :
|
||||||
m_selectableTableView(controller, controller, 0, 0, 0, k_sideMargin, 0, k_sideMargin, controller, true, false,
|
m_selectableTableView(controller, controller, 0, 0, 0, k_sideMargin, 0, k_sideMargin, controller, controller, true, false,
|
||||||
KDColorBlack, k_indicatorThickness, Palette::GreyDark, Palette::GreyMiddle, k_indicatorMargin)
|
KDColorBlack, k_indicatorThickness, Palette::GreyDark, Palette::GreyMiddle, k_indicatorMargin)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class AppsContainer;
|
|||||||
|
|
||||||
namespace Home {
|
namespace Home {
|
||||||
|
|
||||||
class Controller : public ViewController, public SimpleTableViewDataSource, public SelectableTableViewDelegate {
|
class Controller : public ViewController, public SimpleTableViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate {
|
||||||
public:
|
public:
|
||||||
Controller(Responder * parentResponder, ::AppsContainer * container);
|
Controller(Responder * parentResponder, ::AppsContainer * container);
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ void MathToolbox::ListController::setFirstSelectedRow(int firstSelectedRow) {
|
|||||||
|
|
||||||
MathToolbox::MathToolbox() :
|
MathToolbox::MathToolbox() :
|
||||||
Toolbox(nullptr, &m_listController),
|
Toolbox(nullptr, &m_listController),
|
||||||
m_selectableTableView(SelectableTableView(&m_listController, this, 0, 1, 0, 0, 0, 0, this, false)),
|
m_selectableTableView(SelectableTableView(&m_listController, this, 0, 1, 0, 0, 0, 0, this, nullptr, false)),
|
||||||
m_listController(this, &m_selectableTableView),
|
m_listController(this, &m_selectableTableView),
|
||||||
m_nodeModel(nullptr)
|
m_nodeModel(nullptr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
* where we are located. It enables to know which rows are leaves and which are
|
* where we are located. It enables to know which rows are leaves and which are
|
||||||
* subtrees. */
|
* subtrees. */
|
||||||
|
|
||||||
class MathToolbox : public Toolbox, public ListViewDataSource, public SelectableTableViewDelegate {
|
class MathToolbox : public Toolbox, public ListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
MathToolbox();
|
MathToolbox();
|
||||||
void didBecomeFirstResponder() override;
|
void didBecomeFirstResponder() override;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
namespace OnBoarding {
|
namespace OnBoarding {
|
||||||
|
|
||||||
class LanguageController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class LanguageController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController);
|
LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ void ImageCell::setImage(const Image * image, const Image * focusedImage) {
|
|||||||
ImageTableView::ImageTableView(Responder * parentResponder, Calculation * calculation, CalculationController * calculationController) :
|
ImageTableView::ImageTableView(Responder * parentResponder, Calculation * calculation, CalculationController * calculationController) :
|
||||||
View(),
|
View(),
|
||||||
Responder(parentResponder),
|
Responder(parentResponder),
|
||||||
m_selectableTableView(this, this, 0, 0, 0, 0, 0, 0, this, false, false),
|
m_selectableTableView(this, this, 0, 0, 0, 0, 0, 0, this, nullptr, false, false),
|
||||||
m_isSelected(false),
|
m_isSelected(false),
|
||||||
m_selectedIcon(0),
|
m_selectedIcon(0),
|
||||||
m_calculation(calculation),
|
m_calculation(calculation),
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ private:
|
|||||||
const Image * m_focusedIcon;
|
const Image * m_focusedIcon;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ImageTableView : public View, public Responder, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class ImageTableView : public View, public Responder, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ImageTableView(Responder * parentResponder, Calculation * calculation, CalculationController * calculationController);
|
ImageTableView(Responder * parentResponder, Calculation * calculation, CalculationController * calculationController);
|
||||||
void setCalculation(Calculation * calculation, int index);
|
void setCalculation(Calculation * calculation, int index);
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
namespace Probability {
|
namespace Probability {
|
||||||
|
|
||||||
class LawController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class LawController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
LawController(Responder * parentResponder);
|
LawController(Responder * parentResponder);
|
||||||
~LawController();
|
~LawController();
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Regression {
|
namespace Regression {
|
||||||
|
|
||||||
class InitialisationParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class InitialisationParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
InitialisationParameterController(Responder * parentResponder, Store * store);
|
InitialisationParameterController(Responder * parentResponder, Store * store);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
namespace Regression {
|
namespace Regression {
|
||||||
|
|
||||||
class PredictionParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class PredictionParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
PredictionParameterController(Responder * parentResponder, Store * store, Shared::CurveViewCursor * cursor);
|
PredictionParameterController(Responder * parentResponder, Store * store, Shared::CurveViewCursor * cursor);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ TypeParameterController::TypeParameterController(Responder * parentResponder, Se
|
|||||||
m_singleRecurrenceCell(I18n::Message::SingleRecurrence, cellLayout),
|
m_singleRecurrenceCell(I18n::Message::SingleRecurrence, cellLayout),
|
||||||
m_doubleRecurenceCell(I18n::Message::DoubleRecurrence, cellLayout),
|
m_doubleRecurenceCell(I18n::Message::DoubleRecurrence, cellLayout),
|
||||||
m_expressionLayouts{},
|
m_expressionLayouts{},
|
||||||
m_selectableTableView(this, this, 0, 1, topMargin, rightMargin, bottomMargin, leftMargin, this, false),
|
m_selectableTableView(this, this, 0, 1, topMargin, rightMargin, bottomMargin, leftMargin, this, nullptr, false),
|
||||||
m_sequenceStore(sequenceStore),
|
m_sequenceStore(sequenceStore),
|
||||||
m_sequence(nullptr),
|
m_sequence(nullptr),
|
||||||
m_listController(list)
|
m_listController(list)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace Sequence {
|
|||||||
|
|
||||||
class ListController;
|
class ListController;
|
||||||
|
|
||||||
class TypeParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class TypeParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
TypeParameterController(Responder * parentResponder, SequenceStore * sequenceStore, ListController * list,
|
TypeParameterController(Responder * parentResponder, SequenceStore * sequenceStore, ListController * list,
|
||||||
TableCell::Layout cellLayout, KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0,
|
TableCell::Layout cellLayout, KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Settings {
|
namespace Settings {
|
||||||
|
|
||||||
class MainController : public ViewController, public ListViewDataSource, public SelectableTableViewDelegate {
|
class MainController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
MainController(Responder * parentResponder);
|
MainController(Responder * parentResponder);
|
||||||
~MainController();
|
~MainController();
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
namespace Settings {
|
namespace Settings {
|
||||||
|
|
||||||
class SubController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class SubController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
SubController(Responder * parentResponder);
|
SubController(Responder * parentResponder);
|
||||||
~SubController();
|
~SubController();
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ I18n::Message FloatParameterController::okButtonText() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
View * FloatParameterController::loadView() {
|
View * FloatParameterController::loadView() {
|
||||||
SelectableTableView * tableView = new SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin, Metric::CommonBottomMargin, Metric::CommonLeftMargin, this);
|
SelectableTableView * tableView = new SelectableTableView(this, this, 0, 1, Metric::CommonTopMargin, Metric::CommonRightMargin, Metric::CommonBottomMargin, Metric::CommonLeftMargin, this, this);
|
||||||
m_okButton = new ButtonWithSeparator(tableView, okButtonText(), Invocation([](void * context, void * sender) {
|
m_okButton = new ButtonWithSeparator(tableView, okButtonText(), Invocation([](void * context, void * sender) {
|
||||||
FloatParameterController * parameterController = (FloatParameterController *) context;
|
FloatParameterController * parameterController = (FloatParameterController *) context;
|
||||||
parameterController->buttonAction();
|
parameterController->buttonAction();
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace Shared {
|
|||||||
/* This controller edits float parameter of any model (given through
|
/* This controller edits float parameter of any model (given through
|
||||||
* parameterAtIndex and setParameterAtIndex). */
|
* parameterAtIndex and setParameterAtIndex). */
|
||||||
|
|
||||||
class FloatParameterController : public DynamicViewController, public ListViewDataSource, public SelectableTableViewDelegate, public TextFieldDelegate {
|
class FloatParameterController : public DynamicViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate, public TextFieldDelegate {
|
||||||
public:
|
public:
|
||||||
FloatParameterController(Responder * parentResponder);
|
FloatParameterController(Responder * parentResponder);
|
||||||
void didBecomeFirstResponder() override;
|
void didBecomeFirstResponder() override;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class FunctionCurveParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class FunctionCurveParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
FunctionCurveParameterController(InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor);
|
FunctionCurveParameterController(InteractiveCurveViewRange * graphRange, CurveViewCursor * cursor);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class InitialisationParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class InitialisationParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
InitialisationParameterController(Responder * parentResponder, Shared::InteractiveCurveViewRange * graphRange);
|
InitialisationParameterController(Responder * parentResponder, Shared::InteractiveCurveViewRange * graphRange);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ bool ListController::removeFunctionRow(Function * function) {
|
|||||||
View * ListController::loadView() {
|
View * ListController::loadView() {
|
||||||
m_emptyCell = new EvenOddCell();
|
m_emptyCell = new EvenOddCell();
|
||||||
m_addNewFunction = new NewFunctionCell(m_addNewMessage);
|
m_addNewFunction = new NewFunctionCell(m_addNewMessage);
|
||||||
return new SelectableTableView(this, this, 0, 0, 0, 0, 0, 0, this, false, true);
|
return new SelectableTableView(this, this, 0, 0, 0, 0, 0, 0, this, nullptr, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ListController::unloadView(View * view) {
|
void ListController::unloadView(View * view) {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class ListController : public DynamicViewController, public ButtonRowDelegate, public TableViewDataSource, public SelectableTableViewDelegate {
|
class ListController : public DynamicViewController, public ButtonRowDelegate, public TableViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ListController(Responder * parentResponder, FunctionStore * functionStore, ButtonRowController * header, ButtonRowController * footer, I18n::Message text);
|
ListController(Responder * parentResponder, FunctionStore * functionStore, ButtonRowController * header, ButtonRowController * footer, I18n::Message text);
|
||||||
int numberOfColumns() override;
|
int numberOfColumns() override;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class ListParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class ListParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ListParameterController(Responder * parentResponder, FunctionStore * functionStore, I18n::Message functionColorMessage, I18n::Message deleteFunctionMessage);
|
ListParameterController(Responder * parentResponder, FunctionStore * functionStore, I18n::Message functionColorMessage, I18n::Message deleteFunctionMessage);
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class StoreParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class StoreParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
StoreParameterController(Responder * parentResponder, FloatPairStore * store);
|
StoreParameterController(Responder * parentResponder, FloatPairStore * store);
|
||||||
void selectXColumn(bool xColumnSelected);
|
void selectXColumn(bool xColumnSelected);
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ SelectableTableView * TabTableController::selectableTableView() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
View * TabTableController::loadView() {
|
View * TabTableController::loadView() {
|
||||||
return new SelectableTableView(this, m_dataSource, 0, 0, Metric::CommonTopMargin, Metric::CommonRightMargin, Metric::CommonBottomMargin, Metric::CommonLeftMargin, this, true, true);
|
return new SelectableTableView(this, m_dataSource, 0, 0, Metric::CommonTopMargin, Metric::CommonRightMargin, Metric::CommonBottomMargin, Metric::CommonLeftMargin, this, this, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabTableController::unloadView(View * view) {
|
void TabTableController::unloadView(View * view) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace Shared {
|
|||||||
/* Tab table controller is a controller whose view is a selectable table view
|
/* Tab table controller is a controller whose view is a selectable table view
|
||||||
* and whose one ancestor is a tab */
|
* and whose one ancestor is a tab */
|
||||||
|
|
||||||
class TabTableController : public DynamicViewController, public SelectableTableViewDelegate {
|
class TabTableController : public DynamicViewController, public SelectableTableViewDelegate, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
TabTableController(Responder * parentResponder, TableViewDataSource * dataSource);
|
TabTableController(Responder * parentResponder, TableViewDataSource * dataSource);
|
||||||
void didBecomeFirstResponder() override;
|
void didBecomeFirstResponder() override;
|
||||||
|
|||||||
@@ -296,7 +296,7 @@ float ValuesController::evaluationOfAbscissaAtColumn(float abscissa, int columnI
|
|||||||
}
|
}
|
||||||
|
|
||||||
View * ValuesController::loadView() {
|
View * ValuesController::loadView() {
|
||||||
SelectableTableView * tableView = new SelectableTableView(this, this, 0, 0, k_topMargin, k_rightMargin, k_bottomMargin, k_leftMargin, this, true, true, Palette::WallScreenDark, 13, Palette::GreyDark, Palette::GreyMiddle);
|
SelectableTableView * tableView = new SelectableTableView(this, this, 0, 0, k_topMargin, k_rightMargin, k_bottomMargin, k_leftMargin, this, this, true, true, Palette::WallScreenDark, 13, Palette::GreyDark, Palette::GreyMiddle);
|
||||||
m_abscissaTitleCell = new EvenOddMessageTextCell(KDText::FontSize::Small);
|
m_abscissaTitleCell = new EvenOddMessageTextCell(KDText::FontSize::Small);
|
||||||
for (int i = 0; i < k_maxNumberOfAbscissaCells; i++) {
|
for (int i = 0; i < k_maxNumberOfAbscissaCells; i++) {
|
||||||
m_abscissaCells[i] = new EvenOddEditableTextCell(tableView, this, m_draftTextBuffer, KDText::FontSize::Small);
|
m_abscissaCells[i] = new EvenOddEditableTextCell(tableView, this, m_draftTextBuffer, KDText::FontSize::Small);
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
|
|
||||||
class ValuesFunctionParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class ValuesFunctionParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ValuesFunctionParameterController(char symbol);
|
ValuesFunctionParameterController(char symbol);
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include "interval_parameter_controller.h"
|
#include "interval_parameter_controller.h"
|
||||||
|
|
||||||
namespace Shared {
|
namespace Shared {
|
||||||
class ValuesParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
|
class ValuesParameterController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController, I18n::Message title);
|
ValuesParameterController(Responder * parentResponder, IntervalParameterController * intervalParameterController, I18n::Message title);
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ VariableBoxController::ContentViewController::ContentViewController(Responder *
|
|||||||
m_firstSelectedRow(0),
|
m_firstSelectedRow(0),
|
||||||
m_previousSelectedRow(0),
|
m_previousSelectedRow(0),
|
||||||
m_currentPage(Page::RootMenu),
|
m_currentPage(Page::RootMenu),
|
||||||
m_selectableTableView(SelectableTableView(this, this, 0, 1, 0, 0, 0, 0, this, false))
|
m_selectableTableView(SelectableTableView(this, this, 0, 1, 0, 0, 0, 0, this, nullptr, false))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ public:
|
|||||||
void viewWillAppear() override;
|
void viewWillAppear() override;
|
||||||
void viewDidDisappear() override;
|
void viewDidDisappear() override;
|
||||||
private:
|
private:
|
||||||
class ContentViewController : public ViewController, public ListViewDataSource, public SelectableTableViewDelegate {
|
class ContentViewController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource {
|
||||||
public:
|
public:
|
||||||
ContentViewController(Responder * parentResponder, Poincare::Context * context);
|
ContentViewController(Responder * parentResponder, Poincare::Context * context);
|
||||||
View * view() override;
|
View * view() override;
|
||||||
|
|||||||
@@ -40,10 +40,11 @@ objs += $(addprefix escher/src/,\
|
|||||||
responder.o\
|
responder.o\
|
||||||
run_loop.o\
|
run_loop.o\
|
||||||
scroll_view.o\
|
scroll_view.o\
|
||||||
scroll_view_delegate.o\
|
scroll_view_data_source.o\
|
||||||
scroll_view_indicator.o\
|
scroll_view_indicator.o\
|
||||||
scrollable_view.o\
|
scrollable_view.o\
|
||||||
selectable_table_view.o\
|
selectable_table_view.o\
|
||||||
|
selectable_table_view_data_source.o\
|
||||||
selectable_table_view_delegate.o\
|
selectable_table_view_delegate.o\
|
||||||
simple_list_view_data_source.o\
|
simple_list_view_data_source.o\
|
||||||
simple_table_view_data_source.o\
|
simple_table_view_data_source.o\
|
||||||
|
|||||||
@@ -43,10 +43,11 @@
|
|||||||
#include <escher/palette.h>
|
#include <escher/palette.h>
|
||||||
#include <escher/responder.h>
|
#include <escher/responder.h>
|
||||||
#include <escher/scroll_view.h>
|
#include <escher/scroll_view.h>
|
||||||
#include <escher/scroll_view_delegate.h>
|
#include <escher/scroll_view_data_source.h>
|
||||||
#include <escher/scroll_view_indicator.h>
|
#include <escher/scroll_view_indicator.h>
|
||||||
#include <escher/scrollable_view.h>
|
#include <escher/scrollable_view.h>
|
||||||
#include <escher/selectable_table_view.h>
|
#include <escher/selectable_table_view.h>
|
||||||
|
#include <escher/selectable_table_view_data_source.h>
|
||||||
#include <escher/selectable_table_view_delegate.h>
|
#include <escher/selectable_table_view_delegate.h>
|
||||||
#include <escher/simple_table_view_data_source.h>
|
#include <escher/simple_table_view_data_source.h>
|
||||||
#include <escher/simple_list_view_data_source.h>
|
#include <escher/simple_list_view_data_source.h>
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
#include <escher/view.h>
|
#include <escher/view.h>
|
||||||
#include <escher/scroll_view_indicator.h>
|
#include <escher/scroll_view_indicator.h>
|
||||||
#include <escher/scroll_view_delegate.h>
|
#include <escher/scroll_view_data_source.h>
|
||||||
#include <escher/palette.h>
|
#include <escher/palette.h>
|
||||||
|
|
||||||
class ScrollView : public View {
|
class ScrollView : public View {
|
||||||
public:
|
public:
|
||||||
ScrollView(View * contentView, ScrollViewDelegate * delegate, KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0,
|
ScrollView(View * contentView, ScrollViewDataSource * dataSource, KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0,
|
||||||
KDCoordinate bottomMargin = 0, KDCoordinate leftMargin = 0, bool showIndicators = true,
|
KDCoordinate bottomMargin = 0, KDCoordinate leftMargin = 0, bool showIndicators = true,
|
||||||
bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen, KDCoordinate indicatorThickness = 20,
|
bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen, KDCoordinate indicatorThickness = 20,
|
||||||
KDColor indicatorColor = Palette::GreyDark, KDColor backgroundIndicatorColor = Palette::GreyMiddle,
|
KDColor indicatorColor = Palette::GreyDark, KDColor backgroundIndicatorColor = Palette::GreyMiddle,
|
||||||
@@ -30,7 +30,7 @@ protected:
|
|||||||
virtual void logAttributes(std::ostream &os) const override;
|
virtual void logAttributes(std::ostream &os) const override;
|
||||||
#endif
|
#endif
|
||||||
private:
|
private:
|
||||||
ScrollViewDelegate * m_delegate;
|
ScrollViewDataSource * m_dataSource;
|
||||||
int numberOfSubviews() const override;
|
int numberOfSubviews() const override;
|
||||||
View * subviewAtIndex(int index) override;
|
View * subviewAtIndex(int index) override;
|
||||||
|
|
||||||
|
|||||||
15
escher/include/escher/scroll_view_data_source.h
Normal file
15
escher/include/escher/scroll_view_data_source.h
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef ESCHER_SCROLL_VIEW_DATA_SOURCE_H
|
||||||
|
#define ESCHER_SCROLL_VIEW_DATA_SOURCE_H
|
||||||
|
|
||||||
|
#include <kandinsky.h>
|
||||||
|
|
||||||
|
class ScrollViewDataSource {
|
||||||
|
public:
|
||||||
|
ScrollViewDataSource();
|
||||||
|
KDPoint offset() const;
|
||||||
|
bool setOffset(KDPoint offset);
|
||||||
|
private:
|
||||||
|
KDPoint m_offset;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#ifndef ESCHER_SCROLL_VIEW_DELEGATE_H
|
|
||||||
#define ESCHER_SCROLL_VIEW_DELEGATE_H
|
|
||||||
|
|
||||||
#include <kandinsky.h>
|
|
||||||
|
|
||||||
class ScrollViewDelegate {
|
|
||||||
public:
|
|
||||||
ScrollViewDelegate();
|
|
||||||
KDPoint offset() const;
|
|
||||||
bool setOffset(KDPoint offset);
|
|
||||||
private:
|
|
||||||
KDPoint m_offset;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
class ScrollableView : public Responder, public ScrollView {
|
class ScrollableView : public Responder, public ScrollView {
|
||||||
public:
|
public:
|
||||||
ScrollableView(Responder * parentResponder, View * view, ScrollViewDelegate * delegate);
|
ScrollableView(Responder * parentResponder, View * view, ScrollViewDataSource * dataSource);
|
||||||
bool handleEvent(Ion::Events::Event event) override;
|
bool handleEvent(Ion::Events::Event event) override;
|
||||||
void reloadScroll();
|
void reloadScroll();
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include <escher/table_view.h>
|
#include <escher/table_view.h>
|
||||||
#include <escher/app.h>
|
#include <escher/app.h>
|
||||||
|
#include <escher/selectable_table_view_data_source.h>
|
||||||
#include <escher/selectable_table_view_delegate.h>
|
#include <escher/selectable_table_view_delegate.h>
|
||||||
#include <escher/table_view_data_source.h>
|
#include <escher/table_view_data_source.h>
|
||||||
#include <escher/palette.h>
|
#include <escher/palette.h>
|
||||||
@@ -18,7 +19,7 @@ class SelectableTableView : public TableView, public Responder {
|
|||||||
public:
|
public:
|
||||||
SelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping,
|
SelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping,
|
||||||
KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0, KDCoordinate bottomMargin = 0,
|
KDCoordinate topMargin = 0, KDCoordinate rightMargin = 0, KDCoordinate bottomMargin = 0,
|
||||||
KDCoordinate leftMargin = 0, SelectableTableViewDelegate * delegate = nullptr,
|
KDCoordinate leftMargin = 0, SelectableTableViewDataSource * selectionDataSource = nullptr, SelectableTableViewDelegate * delegate = nullptr,
|
||||||
bool showIndicators = true, bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen,
|
bool showIndicators = true, bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen,
|
||||||
KDCoordinate indicatorThickness = 20, KDColor indicatorColor = Palette::GreyDark,
|
KDCoordinate indicatorThickness = 20, KDColor indicatorColor = Palette::GreyDark,
|
||||||
KDColor backgroundIndicatorColor = Palette::GreyMiddle, KDCoordinate indicatorMargin = 14);
|
KDColor backgroundIndicatorColor = Palette::GreyMiddle, KDCoordinate indicatorMargin = 14);
|
||||||
@@ -33,6 +34,7 @@ public:
|
|||||||
bool selectCellAtLocation(int i, int j);
|
bool selectCellAtLocation(int i, int j);
|
||||||
HighlightCell * selectedCell();
|
HighlightCell * selectedCell();
|
||||||
protected:
|
protected:
|
||||||
|
SelectableTableViewDataSource * m_selectionDataSource;
|
||||||
SelectableTableViewDelegate * m_delegate;
|
SelectableTableViewDelegate * m_delegate;
|
||||||
private:
|
private:
|
||||||
void unhighlightSelectedCell();
|
void unhighlightSelectedCell();
|
||||||
|
|||||||
21
escher/include/escher/selectable_table_view_data_source.h
Normal file
21
escher/include/escher/selectable_table_view_data_source.h
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#ifndef ESCHER_SELECTABLE_TABLE_VIEW_DATA_SOURCE_H
|
||||||
|
#define ESCHER_SELECTABLE_TABLE_VIEW_DATA_SOURCE_H
|
||||||
|
|
||||||
|
#include <escher/scroll_view_data_source.h>
|
||||||
|
|
||||||
|
class SelectableTableView;
|
||||||
|
|
||||||
|
class SelectableTableViewDataSource : public ScrollViewDataSource {
|
||||||
|
public:
|
||||||
|
SelectableTableViewDataSource();
|
||||||
|
int selectedRow();
|
||||||
|
int selectedColumn();
|
||||||
|
void selectRow(int j);
|
||||||
|
void selectColumn(int i);
|
||||||
|
void selectCellAtLocation(int i, int j);
|
||||||
|
private:
|
||||||
|
int m_selectedCellX;
|
||||||
|
int m_selectedCellY;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,22 +1,11 @@
|
|||||||
#ifndef ESCHER_SELECTABLE_TABLE_VIEW_DELEGATE_H
|
#ifndef ESCHER_SELECTABLE_TABLE_VIEW_DELEGATE_H
|
||||||
#define ESCHER_SELECTABLE_TABLE_VIEW_DELEGATE_H
|
#define ESCHER_SELECTABLE_TABLE_VIEW_DELEGATE_H
|
||||||
|
|
||||||
#include <escher/scroll_view_delegate.h>
|
|
||||||
|
|
||||||
class SelectableTableView;
|
class SelectableTableView;
|
||||||
|
|
||||||
class SelectableTableViewDelegate : public ScrollViewDelegate {
|
class SelectableTableViewDelegate {
|
||||||
public:
|
public:
|
||||||
SelectableTableViewDelegate();
|
|
||||||
int selectedRow();
|
|
||||||
int selectedColumn();
|
|
||||||
void selectRow(int j);
|
|
||||||
void selectColumn(int i);
|
|
||||||
void selectCellAtLocation(int i, int j);
|
|
||||||
virtual void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY);
|
virtual void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY);
|
||||||
private:
|
|
||||||
int m_selectedCellX;
|
|
||||||
int m_selectedCellY;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
class TableView : public ScrollView {
|
class TableView : public ScrollView {
|
||||||
public:
|
public:
|
||||||
TableView(TableViewDataSource * dataSource, ScrollViewDelegate * scrollDelegate, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin = 0,
|
TableView(TableViewDataSource * dataSource, ScrollViewDataSource * scrollDataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin = 0,
|
||||||
KDCoordinate rightMargin = 0, KDCoordinate bottomMargin = 0, KDCoordinate leftMargin = 0,
|
KDCoordinate rightMargin = 0, KDCoordinate bottomMargin = 0, KDCoordinate leftMargin = 0,
|
||||||
bool showIndicators = true, bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen,
|
bool showIndicators = true, bool colorBackground = true, KDColor backgroundColor = Palette::WallScreen,
|
||||||
KDCoordinate indicatorThickness = 20, KDColor indicatorColor = Palette::GreyDark,
|
KDCoordinate indicatorThickness = 20, KDColor indicatorColor = Palette::GreyDark,
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <escher/text_cursor_view.h>
|
#include <escher/text_cursor_view.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
class TextField : public ScrollableView, public ScrollViewDelegate {
|
class TextField : public ScrollableView, public ScrollViewDataSource {
|
||||||
public:
|
public:
|
||||||
TextField(Responder * parentResponder, char * textBuffer, char * draftTextBuffer, size_t textBufferSize,
|
TextField(Responder * parentResponder, char * textBuffer, char * draftTextBuffer, size_t textBufferSize,
|
||||||
TextFieldDelegate * delegate = nullptr, bool hasTwoBuffers = true, KDText::FontSize size = KDText::FontSize::Large, float horizontalAlignment = 0.0f,
|
TextFieldDelegate * delegate = nullptr, bool hasTwoBuffers = true, KDText::FontSize size = KDText::FontSize::Large, float horizontalAlignment = 0.0f,
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ extern "C" {
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
ScrollView::ScrollView(View * contentView, ScrollViewDelegate * delegate, KDCoordinate topMargin, KDCoordinate rightMargin,
|
ScrollView::ScrollView(View * contentView, ScrollViewDataSource * dataSource, KDCoordinate topMargin, KDCoordinate rightMargin,
|
||||||
KDCoordinate bottomMargin, KDCoordinate leftMargin, bool showIndicators, bool colorBackground,
|
KDCoordinate bottomMargin, KDCoordinate leftMargin, bool showIndicators, bool colorBackground,
|
||||||
KDColor backgroundColor, KDCoordinate indicatorThickness, KDColor indicatorColor,
|
KDColor backgroundColor, KDCoordinate indicatorThickness, KDColor indicatorColor,
|
||||||
KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
||||||
View(),
|
View(),
|
||||||
m_topMargin(topMargin),
|
m_topMargin(topMargin),
|
||||||
m_delegate(delegate),
|
m_dataSource(dataSource),
|
||||||
m_contentView(contentView),
|
m_contentView(contentView),
|
||||||
m_verticalScrollIndicator(ScrollViewIndicator::Direction::Vertical, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
m_verticalScrollIndicator(ScrollViewIndicator::Direction::Vertical, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
||||||
m_horizontalScrollIndicator(ScrollViewIndicator::Direction::Horizontal, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
m_horizontalScrollIndicator(ScrollViewIndicator::Direction::Horizontal, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
||||||
@@ -22,7 +22,7 @@ ScrollView::ScrollView(View * contentView, ScrollViewDelegate * delegate, KDCoor
|
|||||||
m_colorBackground(colorBackground),
|
m_colorBackground(colorBackground),
|
||||||
m_backgroundColor(backgroundColor)
|
m_backgroundColor(backgroundColor)
|
||||||
{
|
{
|
||||||
assert(m_delegate != nullptr);
|
assert(m_dataSource != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ScrollView::hasVerticalIndicator() const {
|
bool ScrollView::hasVerticalIndicator() const {
|
||||||
@@ -130,13 +130,13 @@ void ScrollView::updateScrollIndicator() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void ScrollView::setContentOffset(KDPoint offset) {
|
void ScrollView::setContentOffset(KDPoint offset) {
|
||||||
if (m_delegate->setOffset(offset)) {
|
if (m_dataSource->setOffset(offset)) {
|
||||||
layoutSubviews();
|
layoutSubviews();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KDPoint ScrollView::contentOffset() const {
|
KDPoint ScrollView::contentOffset() const {
|
||||||
return m_delegate->offset();
|
return m_dataSource->offset();
|
||||||
}
|
}
|
||||||
|
|
||||||
KDCoordinate ScrollView::topMargin() const {
|
KDCoordinate ScrollView::topMargin() const {
|
||||||
|
|||||||
19
escher/src/scroll_view_data_source.cpp
Normal file
19
escher/src/scroll_view_data_source.cpp
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
#include <escher/scroll_view_data_source.h>
|
||||||
|
|
||||||
|
ScrollViewDataSource::ScrollViewDataSource() :
|
||||||
|
m_offset(KDPointZero)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
KDPoint ScrollViewDataSource::offset() const {
|
||||||
|
return m_offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ScrollViewDataSource::setOffset(KDPoint offset) {
|
||||||
|
if (offset != m_offset) {
|
||||||
|
m_offset = offset;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
#include <escher/scroll_view_delegate.h>
|
|
||||||
|
|
||||||
ScrollViewDelegate::ScrollViewDelegate() :
|
|
||||||
m_offset(KDPointZero)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
KDPoint ScrollViewDelegate::offset() const {
|
|
||||||
return m_offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ScrollViewDelegate::setOffset(KDPoint offset) {
|
|
||||||
if (offset != m_offset) {
|
|
||||||
m_offset = offset;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -2,9 +2,9 @@
|
|||||||
#include <escher/metric.h>
|
#include <escher/metric.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
ScrollableView::ScrollableView(Responder * parentResponder, View * view, ScrollViewDelegate * delegate) :
|
ScrollableView::ScrollableView(Responder * parentResponder, View * view, ScrollViewDataSource * dataSource) :
|
||||||
Responder(parentResponder),
|
Responder(parentResponder),
|
||||||
ScrollView(view, delegate, 0, 0, 0, 0, false, false),
|
ScrollView(view, dataSource, 0, 0, 0, 0, false, false),
|
||||||
m_manualScrolling(0)
|
m_manualScrolling(0)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,35 +2,38 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
||||||
SelectableTableView::SelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin, KDCoordinate rightMargin, KDCoordinate bottomMargin, KDCoordinate leftMargin,
|
SelectableTableView::SelectableTableView(Responder * parentResponder, TableViewDataSource * dataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin, KDCoordinate rightMargin, KDCoordinate bottomMargin, KDCoordinate leftMargin,
|
||||||
SelectableTableViewDelegate * delegate, bool showIndicators, bool colorBackground, KDColor backgroundColor,
|
SelectableTableViewDataSource * selectionDataSource, SelectableTableViewDelegate * delegate, bool showIndicators, bool colorBackground, KDColor backgroundColor,
|
||||||
KDCoordinate indicatorThickness, KDColor indicatorColor, KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
KDCoordinate indicatorThickness, KDColor indicatorColor, KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
||||||
TableView(dataSource, delegate, horizontalCellOverlapping, verticalCellOverlapping, topMargin, rightMargin, bottomMargin, leftMargin, showIndicators, colorBackground, backgroundColor,
|
TableView(dataSource, selectionDataSource, horizontalCellOverlapping, verticalCellOverlapping, topMargin, rightMargin, bottomMargin, leftMargin, showIndicators, colorBackground, backgroundColor,
|
||||||
indicatorThickness, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
indicatorThickness, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
||||||
Responder(parentResponder),
|
Responder(parentResponder),
|
||||||
|
m_selectionDataSource(selectionDataSource),
|
||||||
m_delegate(delegate)
|
m_delegate(delegate)
|
||||||
{
|
{
|
||||||
assert(m_delegate != nullptr);
|
assert(m_selectionDataSource != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
int SelectableTableView::selectedRow() {
|
int SelectableTableView::selectedRow() {
|
||||||
return m_delegate->selectedRow();
|
return m_selectionDataSource->selectedRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
int SelectableTableView::selectedColumn() {
|
int SelectableTableView::selectedColumn() {
|
||||||
return m_delegate->selectedColumn();
|
return m_selectionDataSource->selectedColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectableTableView::selectRow(int j) {
|
void SelectableTableView::selectRow(int j) {
|
||||||
m_delegate->selectRow(j);
|
m_selectionDataSource->selectRow(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectableTableView::selectColumn(int i) {
|
void SelectableTableView::selectColumn(int i) {
|
||||||
m_delegate->selectColumn(i);
|
m_selectionDataSource->selectColumn(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectableTableView::didEnterResponderChain(Responder * previousFirstResponder) {
|
void SelectableTableView::didEnterResponderChain(Responder * previousFirstResponder) {
|
||||||
selectCellAtLocation(selectedColumn(), selectedRow());
|
selectCellAtLocation(selectedColumn(), selectedRow());
|
||||||
m_delegate->tableViewDidChangeSelection(this, 0, -1);
|
if (m_delegate) {
|
||||||
|
m_delegate->tableViewDidChangeSelection(this, 0, -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectableTableView::willExitResponderChain(Responder * nextFirstResponder) {
|
void SelectableTableView::willExitResponderChain(Responder * nextFirstResponder) {
|
||||||
|
|||||||
28
escher/src/selectable_table_view_data_source.cpp
Normal file
28
escher/src/selectable_table_view_data_source.cpp
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#include <escher/selectable_table_view_data_source.h>
|
||||||
|
|
||||||
|
SelectableTableViewDataSource::SelectableTableViewDataSource() :
|
||||||
|
m_selectedCellX(0),
|
||||||
|
m_selectedCellY(-1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
int SelectableTableViewDataSource::selectedRow() {
|
||||||
|
return m_selectedCellY;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SelectableTableViewDataSource::selectedColumn() {
|
||||||
|
return m_selectedCellX;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SelectableTableViewDataSource::selectRow(int j) {
|
||||||
|
m_selectedCellY = j;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SelectableTableViewDataSource::selectColumn(int i) {
|
||||||
|
m_selectedCellX = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SelectableTableViewDataSource::selectCellAtLocation(int i, int j) {
|
||||||
|
m_selectedCellX = i;
|
||||||
|
m_selectedCellY = j;
|
||||||
|
}
|
||||||
@@ -1,32 +1,4 @@
|
|||||||
#include <escher/selectable_table_view_delegate.h>
|
#include <escher/selectable_table_view_delegate.h>
|
||||||
|
|
||||||
SelectableTableViewDelegate::SelectableTableViewDelegate() :
|
|
||||||
m_selectedCellX(0),
|
|
||||||
m_selectedCellY(-1)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int SelectableTableViewDelegate::selectedRow() {
|
|
||||||
return m_selectedCellY;
|
|
||||||
}
|
|
||||||
|
|
||||||
int SelectableTableViewDelegate::selectedColumn() {
|
|
||||||
return m_selectedCellX;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SelectableTableViewDelegate::selectRow(int j) {
|
|
||||||
m_selectedCellY = j;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SelectableTableViewDelegate::selectColumn(int i) {
|
|
||||||
m_selectedCellX = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SelectableTableViewDelegate::selectCellAtLocation(int i, int j) {
|
|
||||||
m_selectedCellX = i;
|
|
||||||
m_selectedCellY = j;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SelectableTableViewDelegate::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) {
|
void SelectableTableViewDelegate::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ extern "C" {
|
|||||||
|
|
||||||
#define MIN(x,y) ((x)<(y) ? (x) : (y))
|
#define MIN(x,y) ((x)<(y) ? (x) : (y))
|
||||||
|
|
||||||
TableView::TableView(TableViewDataSource * dataSource, ScrollViewDelegate * scrollDelegate, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin, KDCoordinate rightMargin,
|
TableView::TableView(TableViewDataSource * dataSource, ScrollViewDataSource * scrollDataSource, KDCoordinate horizontalCellOverlapping, KDCoordinate verticalCellOverlapping, KDCoordinate topMargin, KDCoordinate rightMargin,
|
||||||
KDCoordinate bottomMargin, KDCoordinate leftMargin, bool showIndicators, bool colorBackground,
|
KDCoordinate bottomMargin, KDCoordinate leftMargin, bool showIndicators, bool colorBackground,
|
||||||
KDColor backgroundColor, KDCoordinate indicatorThickness, KDColor indicatorColor,
|
KDColor backgroundColor, KDCoordinate indicatorThickness, KDColor indicatorColor,
|
||||||
KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
KDColor backgroundIndicatorColor, KDCoordinate indicatorMargin) :
|
||||||
ScrollView(&m_contentView, scrollDelegate, topMargin, rightMargin, bottomMargin, leftMargin, showIndicators, colorBackground,
|
ScrollView(&m_contentView, scrollDataSource, topMargin, rightMargin, bottomMargin, leftMargin, showIndicators, colorBackground,
|
||||||
backgroundColor, indicatorThickness, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
backgroundColor, indicatorThickness, indicatorColor, backgroundIndicatorColor, indicatorMargin),
|
||||||
m_contentView(this, dataSource, horizontalCellOverlapping, verticalCellOverlapping)
|
m_contentView(this, dataSource, horizontalCellOverlapping, verticalCellOverlapping)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user