mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-28 18:20:14 +01:00
[ion] Update the Event model
Change-Id: I41a53caeb7dd8a15e7934f49675f6a53be8fe7be
This commit is contained in:
committed by
Émilie Feral
parent
b220ed5dd8
commit
b87f06e3a2
@@ -185,64 +185,69 @@ void ValuesController::didBecomeFirstResponder() {
|
||||
|
||||
bool ValuesController::handleEvent(Ion::Events::Event event) {
|
||||
if (m_contentView.tableState() == ContentView::TableState::Empty) {
|
||||
if (event == Ion::Events::Event::UP_ARROW) {
|
||||
if (event == Ion::Events::Up) {
|
||||
app()->setFirstResponder(tabController());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
switch (event) {
|
||||
case Ion::Events::Event::DOWN_ARROW:
|
||||
if (activeRow() == -1) {
|
||||
setSelectedButton(-1);
|
||||
m_selectableTableView.selectCellAtLocation(0,0);
|
||||
app()->setFirstResponder(&m_selectableTableView);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
case Ion::Events::Event::UP_ARROW:
|
||||
if (activeRow() == -1) {
|
||||
setSelectedButton(-1);
|
||||
app()->setFirstResponder(tabController());
|
||||
return true;
|
||||
}
|
||||
m_selectableTableView.deselectTable();
|
||||
setSelectedButton(0);
|
||||
|
||||
if (event == Ion::Events::Down) {
|
||||
if (activeRow() == -1) {
|
||||
setSelectedButton(-1);
|
||||
m_selectableTableView.selectCellAtLocation(0,0);
|
||||
app()->setFirstResponder(&m_selectableTableView);
|
||||
return true;
|
||||
case Ion::Events::Event::ENTER:
|
||||
if (activeRow() == -1) {
|
||||
return HeaderViewController::handleEvent(event);
|
||||
}
|
||||
if (activeRow() == 0) {
|
||||
if (activeColumn() == 0) {
|
||||
configureAbscissa();
|
||||
return true;
|
||||
}
|
||||
if (isDerivativeColumn(activeColumn())) {
|
||||
configureDerivativeFunction();
|
||||
} else {
|
||||
configureFunction();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (activeColumn() == 0) {
|
||||
editValue(false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
if (activeRow() == -1) {
|
||||
return HeaderViewController::handleEvent(event);
|
||||
}
|
||||
if ((int)event < 0x100) {
|
||||
if (activeColumn() == 0 && activeRow() > 0) {
|
||||
editValue(true, (char)event);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (event == Ion::Events::Up) {
|
||||
if (activeRow() == -1) {
|
||||
setSelectedButton(-1);
|
||||
app()->setFirstResponder(tabController());
|
||||
return true;
|
||||
}
|
||||
m_selectableTableView.deselectTable();
|
||||
setSelectedButton(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (event == Ion::Events::OK) {
|
||||
if (activeRow() == -1) {
|
||||
return HeaderViewController::handleEvent(event);
|
||||
}
|
||||
if (activeRow() == 0) {
|
||||
if (activeColumn() == 0) {
|
||||
configureAbscissa();
|
||||
return true;
|
||||
}
|
||||
if (isDerivativeColumn(activeColumn())) {
|
||||
configureDerivativeFunction();
|
||||
} else {
|
||||
configureFunction();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (activeColumn() == 0) {
|
||||
editValue(false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (activeRow() == -1) {
|
||||
return HeaderViewController::handleEvent(event);
|
||||
}
|
||||
if (event.hasText()) {
|
||||
if (activeColumn() == 0 && activeRow() > 0) {
|
||||
// FIXME: Only first character!
|
||||
editValue(true, event.text()[0]);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user