feat(color): Labels Pgup/Down keys move up down selected label (#2288)
* (fw) Pgup/Down keys move up down selected labels * Add Long press returns on single page radios * Rem NV14 keys
This commit is contained in:
@@ -566,6 +566,47 @@ ModelLabelsWindow::ModelLabelsWindow() : Page(ICON_MODEL)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(HARDWARE_KEYS)
|
||||
void ModelLabelsWindow::onEvent(event_t event)
|
||||
{
|
||||
#if defined(KEYS_GPIO_REG_PGUP)
|
||||
if (event == EVT_KEY_BREAK(KEY_PGUP) ||
|
||||
event == EVT_KEY_BREAK(KEY_PGDN)) {
|
||||
#else
|
||||
if (event == EVT_KEY_LONG(KEY_PGDN) ||
|
||||
event == EVT_KEY_BREAK(KEY_PGDN)) {
|
||||
#endif
|
||||
std::set<uint32_t> curSel = lblselector->getSelection();
|
||||
std::set<uint32_t> sellist;
|
||||
int select = 0;
|
||||
int rowcount = lblselector->getRowCount();
|
||||
#if defined(KEYS_GPIO_REG_PGUP)
|
||||
if (event == EVT_KEY_BREAK(KEY_PGDN)) {
|
||||
#else
|
||||
if (event == EVT_KEY_BREAK(KEY_PGDN)) {
|
||||
#endif
|
||||
if(curSel.size())
|
||||
select = (*curSel.rbegin() + 1) % rowcount;
|
||||
} else {
|
||||
killEvents(event);
|
||||
if(curSel.size()) {
|
||||
select = (int)*curSel.begin() - 1;
|
||||
if(select < 0)
|
||||
select += rowcount;
|
||||
} else {
|
||||
select = rowcount - 1;
|
||||
}
|
||||
}
|
||||
sellist.insert(select);
|
||||
lblselector->setSelected(sellist); // Check the items
|
||||
lblselector->setSelected(select); // Causes the list to scroll
|
||||
updateFilteredLabels(sellist); // Update the models
|
||||
} else {
|
||||
Page::onEvent(event);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void ModelLabelsWindow::newModel()
|
||||
{
|
||||
// Save current
|
||||
|
||||
@@ -91,6 +91,10 @@ class ModelLabelsWindow : public Page
|
||||
return labels;
|
||||
}
|
||||
|
||||
#if defined(HARDWARE_KEYS)
|
||||
void onEvent(event_t event) override;
|
||||
#endif
|
||||
|
||||
void newModel();
|
||||
void newLabel();
|
||||
void buildHead(PageHeader *window);
|
||||
|
||||
Reference in New Issue
Block a user