mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-28 18:20:14 +01:00
[apps/graph/list] Use selectable table view in parameter controller
Change-Id: I833d7775ec77d8900e378a3fa536f66ce5b4902b
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user