Escher: Add the App and Responder classes

Change-Id: Ia11d13132b3bd5aa085787556b8e198089bcb0fa
This commit is contained in:
Romain Goyet
2016-05-30 13:27:17 +02:00
parent 97be08027f
commit 4ed72f60df
11 changed files with 220 additions and 14 deletions

View File

@@ -58,6 +58,39 @@ const char * TabViewController::ContentView::className() const {
}
#endif
TabViewController::TabViewController(ViewController * one, ViewController * two) :
ViewController(),
m_numberOfChildren(2),
m_activeChildIndex(-1)
{
m_children[0] = one;
m_children[1] = two;
// TODO: This should be lazy loaded!
// So this code should live in view()
for (int i=0; i<m_numberOfChildren; i++) {
m_view.m_tabView.addTabNamed(m_children[i]->title());
}
}
bool TabViewController::handleEvent(ion_event_t event) {
switch(event) {
case LEFT_ARROW:
if (m_activeChildIndex > 0) {
setActiveTab(m_activeChildIndex-1);
}
return true;
case RIGHT_ARROW:
if (m_activeChildIndex < m_numberOfChildren-1) {
setActiveTab(m_activeChildIndex+1);
}
return true;
default:
return false;
}
}
/*
TabViewController::TabViewController(ViewController ** children, uint8_t numberOfChildren) :
m_children(children),
m_numberOfChildren(numberOfChildren),
@@ -67,6 +100,7 @@ TabViewController::TabViewController(ViewController ** children, uint8_t numberO
m_view.m_tabView.addTabNamed(children[i]->title());
}
}
*/
void TabViewController::setActiveTab(uint8_t i) {
if (i == m_activeChildIndex) {