diff --git a/apps/graph/list/parameter_controller.cpp b/apps/graph/list/parameter_controller.cpp index 36a8abec0..5c0badbeb 100644 --- a/apps/graph/list/parameter_controller.cpp +++ b/apps/graph/list/parameter_controller.cpp @@ -8,9 +8,8 @@ ParameterController::ParameterController(Responder * parentResponder, FunctionSt m_colorCell(ListViewCell((char*)"Couleur de la fonction")), m_enableCell(SwitchListViewCell((char*)"Activer/Desactiver")), m_deleteCell(ListViewCell((char*)"Supprimer la fonction")), - m_tableView(TableView(this,Metric::TopMargin, Metric::RightMargin, + m_selectableTableView(SelectableTableView(this, this, Metric::TopMargin, Metric::RightMargin, Metric::BottomMargin, Metric::LeftMargin)), - m_activeCell(0), m_functionStore(functionStore) { } @@ -20,12 +19,12 @@ const char * ParameterController::title() const { } View * ParameterController::view() { - return &m_tableView; + return &m_selectableTableView; } void ParameterController::didBecomeFirstResponder() { - m_tableView.reloadData(); - setActiveCell(0); + m_selectableTableView.setSelectedCellAtLocation(0, 0); + app()->setFirstResponder(&m_selectableTableView); } void ParameterController::willDisplayCellForIndex(TableViewCell * cell, int index) { @@ -35,33 +34,12 @@ void ParameterController::willDisplayCellForIndex(TableViewCell * cell, int inde } } -void ParameterController::setActiveCell(int index) { - if (index < 0 || index >= k_totalNumberOfCell) { - return; - } - ListViewCell * previousCell = (ListViewCell *)(m_tableView.cellAtLocation(0, m_activeCell)); - previousCell->setHighlighted(false); - - m_activeCell = index; - m_tableView.scrollToCell(0, index); - ListViewCell * cell = (ListViewCell *)(m_tableView.cellAtLocation(0, index)); - cell->setHighlighted(true); - -} - - void ParameterController::setFunction(Function * function) { m_function = function; } bool ParameterController::handleEvent(Ion::Events::Event event) { switch (event) { - case Ion::Events::Event::DOWN_ARROW: - setActiveCell(m_activeCell+1); - return true; - case Ion::Events::Event::UP_ARROW: - setActiveCell(m_activeCell-1); - return true; case Ion::Events::Event::ENTER: return handleEnter(); default: @@ -70,7 +48,7 @@ bool ParameterController::handleEvent(Ion::Events::Event event) { } bool ParameterController::handleEnter() { - switch (m_activeCell) { + switch (m_selectableTableView.selectedRow()) { case 0: { return true; @@ -78,7 +56,7 @@ bool ParameterController::handleEnter() { case 1: { m_function->setActive(!m_function->isActive()); - m_tableView.reloadData(); + m_selectableTableView.reloadData(); return true; } case 2: diff --git a/apps/graph/list/parameter_controller.h b/apps/graph/list/parameter_controller.h index eff2c30ea..87c3641ac 100644 --- a/apps/graph/list/parameter_controller.h +++ b/apps/graph/list/parameter_controller.h @@ -16,8 +16,6 @@ public: bool handleEvent(Ion::Events::Event event) override; void setFunction(Function * function); void didBecomeFirstResponder() override; - - void setActiveCell(int index); int numberOfRows() override; KDCoordinate cellHeight() override; TableViewCell * reusableCell(int index) override; @@ -29,8 +27,7 @@ private: ListViewCell m_colorCell; SwitchListViewCell m_enableCell; ListViewCell m_deleteCell; - TableView m_tableView; - int m_activeCell; + SelectableTableView m_selectableTableView; Function * m_function; FunctionStore * m_functionStore; };