[apps/graph/values] Use selectable table view in function parameter

controller

Change-Id: I2c94327f20b4451160c6948ab3669e14ab86ce79
This commit is contained in:
Émilie Feral
2016-10-25 15:56:46 +02:00
parent b9eb9eb432
commit 790240bb25
2 changed files with 7 additions and 30 deletions

View File

@@ -8,9 +8,8 @@ FunctionParameterController::FunctionParameterController(Responder * parentRespo
m_pageTitle("Colonne f(x)"),
m_displayDerivativeColumn(SwitchListViewCell((char*)"Colonne de la fonction derivee")),
m_copyColumn(ListViewCell((char*)"Copier la colonne dans une liste")),
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_function(nullptr)
{
}
@@ -20,7 +19,7 @@ const char * FunctionParameterController::title() const {
}
View * FunctionParameterController::view() {
return &m_tableView;
return &m_selectableTableView;
}
void FunctionParameterController::setFunction(Function * function) {
@@ -34,31 +33,12 @@ void FunctionParameterController::setFunction(Function * function) {
}
void FunctionParameterController::didBecomeFirstResponder() {
m_tableView.reloadData();
setActiveCell(m_activeCell);
}
void FunctionParameterController::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);
m_selectableTableView.setSelectedCellAtLocation(0, 0);
app()->setFirstResponder(&m_selectableTableView);
}
bool FunctionParameterController::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:
@@ -67,11 +47,11 @@ bool FunctionParameterController::handleEvent(Ion::Events::Event event) {
}
bool FunctionParameterController::handleEnter() {
switch (m_activeCell) {
switch (m_selectableTableView.selectedRow()) {
case 0:
{
m_function->setDisplayDerivative(!m_function->displayDerivative());
m_tableView.reloadData();
m_selectableTableView.reloadData();
return true;
}
case 1: