From 8a7f815c8e2a5dda847d6c3d2ce2f3b3b11ad935 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20Guid=C3=A9e?= Date: Sat, 29 Feb 2020 15:27:17 +0100 Subject: [PATCH] [Feature] Omega App : List --- apps/omega/omega_controller.cpp | 29 ++++++++++++++++++++++++++++- apps/omega/omega_controller.h | 11 ++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/apps/omega/omega_controller.cpp b/apps/omega/omega_controller.cpp index 333620546..b8857c553 100644 --- a/apps/omega/omega_controller.cpp +++ b/apps/omega/omega_controller.cpp @@ -4,8 +4,14 @@ namespace Omega { OmegaController::OmegaController(Responder * parentResponder) : - ViewController(parentResponder) + ViewController(parentResponder), + m_selectableTableView(parentResponder, this, this, this), + m_cells{} { + for (int i = 0; i < k_numberOfCells; i++) { + //m_cells[i].setParentResponder(&m_selectableTableView); + //m_cells[i].textField()->setDelegates(inputEventHandlerDelegate, this); + } } View * OmegaController::view() { @@ -22,4 +28,25 @@ bool OmegaController::handleEvent(Ion::Events::Event event) { return false; } +int OmegaController::numberOfRows() const { + return 2; +} + +KDCoordinate OmegaController::rowHeight(int j) { + return Metric::ParameterCellHeight; +} + +HighlightCell * OmegaController::reusableCell(int index, int type) { + assert(index >= 0 && index <= 1); + return &m_cells[index]; +} + +int OmegaController::reusableCellCount(int type) { + return 1; +} + +int OmegaController::typeAtLocation(int i, int j) { + return 0; +} + } diff --git a/apps/omega/omega_controller.h b/apps/omega/omega_controller.h index 601ee2418..2f72282b0 100644 --- a/apps/omega/omega_controller.h +++ b/apps/omega/omega_controller.h @@ -6,14 +6,23 @@ namespace Omega { -class OmegaController : public ViewController { +class OmegaController : public ViewController, public ListViewDataSource, public SelectableTableViewDataSource, public SelectableTableViewDelegate { public: OmegaController(Responder * parentResponder); View * view() override; bool handleEvent(Ion::Events::Event event) override; void didBecomeFirstResponder() override; + + virtual int numberOfRows() const override; + virtual KDCoordinate rowHeight(int j) override; + HighlightCell * reusableCell(int index, int type) override; + int reusableCellCount(int type) override; + int typeAtLocation(int i, int j) override; private: + constexpr static int k_numberOfCells = 2; OmegaView m_omegaView; + SelectableTableView m_selectableTableView; + MessageTableCell m_cells[k_numberOfCells]; }; }