Files
Upsilon/apps/settings/sub_controller.cpp
Émilie Feral ca9ff19c21 [apps/settings] Implement setting menu with a tree (for navigation)
Change-Id: Ie27c3c25085a279c47eb53f3f1054d970b607f8b
2017-01-30 15:30:58 +01:00

65 lines
1.4 KiB
C++

#include "sub_controller.h"
#include <assert.h>
namespace Settings {
SubController::SubController(Responder * parentResponder) :
ViewController(parentResponder),
m_selectableTableView(SelectableTableView(this, this, Metric::TopMargin, Metric::RightMargin,
Metric::BottomMargin, Metric::LeftMargin)),
m_nodeModel(nullptr)
{
}
const char * SubController::title() const {
if (m_nodeModel) {
return m_nodeModel->label();
}
return "";
}
View * SubController::view() {
return &m_selectableTableView;
}
void SubController::didBecomeFirstResponder() {
m_selectableTableView.selectCellAtLocation(0, 0);
app()->setFirstResponder(&m_selectableTableView);
}
bool SubController::handleEvent(Ion::Events::Event event) {
return false;
}
int SubController::numberOfRows() {
if (m_nodeModel) {
return m_nodeModel->numberOfChildren();
}
return 0;
}
TableViewCell * SubController::reusableCell(int index) {
assert(index >= 0);
assert(index < k_totalNumberOfCell);
return &m_cells[index];
}
int SubController::reusableCellCount() {
return k_totalNumberOfCell;
}
KDCoordinate SubController::cellHeight() {
return Metric::ParameterCellHeight;
}
void SubController::willDisplayCellForIndex(TableViewCell * cell, int index) {
MenuListCell * myCell = (MenuListCell *)cell;
myCell->setText(m_nodeModel->children(index)->label());
}
void SubController::setNodeModel(const Node * nodeModel) {
m_nodeModel = (Node *)nodeModel;
}
}