mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-18 21:30:38 +01:00
[apps/sequence/list] Create a class list controller
Change-Id: I95c569cccf3bd80025c9195faeda08fc69a62ea3
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
app_objs += $(addprefix apps/sequence/,\
|
||||
app.o\
|
||||
list/list_controller.o\
|
||||
list/sequence_expression_cell.o\
|
||||
values/values_controller.o\
|
||||
sequence.o\
|
||||
|
||||
56
apps/sequence/list/list_controller.cpp
Normal file
56
apps/sequence/list/list_controller.cpp
Normal file
@@ -0,0 +1,56 @@
|
||||
#include "list_controller.h"
|
||||
#include <assert.h>
|
||||
|
||||
using namespace Shared;
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
ListController::ListController(Responder * parentResponder, SequenceStore * sequenceStore, HeaderViewController * header) :
|
||||
Shared::ListController(parentResponder, sequenceStore, header),
|
||||
m_parameterController(ListParameterController(this, sequenceStore))
|
||||
{
|
||||
}
|
||||
|
||||
const char * ListController::title() const {
|
||||
return "Suites";
|
||||
}
|
||||
|
||||
bool ListController::handleEvent(Ion::Events::Event event) {
|
||||
if (Shared::ListController::handleEvent(event)) {
|
||||
return true;
|
||||
}
|
||||
if (event == Ion::Events::OK && m_selectableTableView.selectedColumn() == 1
|
||||
&& m_selectableTableView.selectedRow() == numberOfRows() - 1) {
|
||||
return addFunction();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void ListController::tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) {
|
||||
if (t->selectedRow() < numberOfRows() - 1) {
|
||||
Responder * myCell = (Responder *)t->cellAtLocation(t->selectedColumn(), t->selectedRow());
|
||||
app()->setFirstResponder(myCell);
|
||||
} else {
|
||||
app()->setFirstResponder(t);
|
||||
}
|
||||
}
|
||||
|
||||
ListParameterController * ListController::parameterController() {
|
||||
return &m_parameterController;
|
||||
}
|
||||
|
||||
int ListController::maxNumberOfRows() {
|
||||
return k_maxNumberOfRows;
|
||||
}
|
||||
|
||||
TableViewCell * ListController::titleCells(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfRows);
|
||||
return &m_functionTitleCells[index];
|
||||
}
|
||||
|
||||
TableViewCell * ListController::expressionCells(int index) {
|
||||
assert(index >= 0 && index < k_maxNumberOfRows);
|
||||
return &m_expressionCells[index];
|
||||
}
|
||||
|
||||
}
|
||||
33
apps/sequence/list/list_controller.h
Normal file
33
apps/sequence/list/list_controller.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef SEQUENCE_LIST_CONTROLLER_H
|
||||
#define SEQUENCE_LIST_CONTROLLER_H
|
||||
|
||||
#include <escher.h>
|
||||
#include "../sequence_title_cell.h"
|
||||
#include "../sequence_store.h"
|
||||
#include "sequence_expression_cell.h"
|
||||
#include "../../shared/new_function_cell.h"
|
||||
#include "../../shared/list_controller.h"
|
||||
#include "../../shared/list_parameter_controller.h"
|
||||
|
||||
namespace Sequence {
|
||||
|
||||
class ListController : public Shared::ListController, public SelectableTableViewDelegate {
|
||||
public:
|
||||
ListController(Responder * parentResponder, SequenceStore * sequenceStore, HeaderViewController * header);
|
||||
const char * title() const override;
|
||||
bool handleEvent(Ion::Events::Event event) override;
|
||||
void tableViewDidChangeSelection(SelectableTableView * t, int previousSelectedCellX, int previousSelectedCellY) override;
|
||||
private:
|
||||
Shared::ListParameterController * parameterController() override;
|
||||
int maxNumberOfRows() override;
|
||||
TableViewCell * titleCells(int index) override;
|
||||
TableViewCell * expressionCells(int index) override;
|
||||
constexpr static int k_maxNumberOfRows = 3;
|
||||
SequenceTitleCell m_functionTitleCells[k_maxNumberOfRows];
|
||||
SequenceExpressionCell m_expressionCells[k_maxNumberOfRows];
|
||||
Shared::ListParameterController m_parameterController;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user