Files
Upsilon/apps/shared/tab_table_controller.cpp
Émilie Feral 70fc734f7b [escher] Change dynamic view controller paradigm
Change-Id: I57fd41c9b9ad8a1e8b684b97fdf80ddffd71881d
2017-05-03 14:22:51 +02:00

47 lines
1.3 KiB
C++

#include "tab_table_controller.h"
namespace Shared {
TabTableController::TabTableController(Responder * parentResponder, TableViewDataSource * dataSource, KDCoordinate topMargin,
KDCoordinate rightMargin, KDCoordinate bottomMargin, KDCoordinate leftMargin, bool showIndicators) :
DynamicViewController(parentResponder),
m_dataSource(dataSource),
m_topMargin(topMargin),
m_rightMargin(rightMargin),
m_bottomMargin(bottomMargin),
m_leftMargin(leftMargin),
m_showIndicators(showIndicators)
{
}
void TabTableController::didBecomeFirstResponder() {
app()->setFirstResponder(selectableTableView());
}
void TabTableController::viewWillAppear() {
DynamicViewController::viewWillAppear();
selectableTableView()->reloadData();
}
void TabTableController::willExitResponderChain(Responder * nextFirstResponder) {
if (nextFirstResponder == tabController()) {
selectableTableView()->deselectTable();
selectableTableView()->scrollToCell(0,0);
}
}
SelectableTableView * TabTableController::selectableTableView() {
return (SelectableTableView *)view();
}
View * TabTableController::loadView() {
return new SelectableTableView(this, m_dataSource, 0, 0, m_topMargin, m_rightMargin, m_bottomMargin, m_leftMargin, this, m_showIndicators, true, Palette::WallScreenDark);
}
void TabTableController::unloadView(View * view) {
delete view;
}
}