1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-15 12:25:12 +03:00

LUA virtual navigation keys (#6500)

LUA virtual navigation events
This commit is contained in:
3djc 2019-06-14 14:35:07 +02:00 committed by Bertrand Songis
parent c28501fe46
commit 00d2d01dfe
2 changed files with 60 additions and 9 deletions

View file

@ -258,9 +258,9 @@ end
-- Main
local function runFieldsPage(event)
if event == EVT_EXIT_BREAK then -- exit script
if event == EVT_VIRTUAL_EXIT then -- exit script
return 2
elseif event == EVT_ENTER_BREAK or event == EVT_ROT_BREAK then -- toggle editing/selecting current field
elseif event == EVT_VIRTUAL_ENTER then -- toggle editing/selecting current field
if fields[current][4] ~= nil then
edit = not edit
if edit == false then
@ -268,15 +268,15 @@ local function runFieldsPage(event)
end
end
elseif edit then
if event == EVT_PLUS_FIRST or event == EVT_ROT_RIGHT or event == EVT_PLUS_REPT then
if event == EVT_VIRTUAL_NEXT or event == EVT_VIRTUAL_NEXT_REPT then
addField(1)
elseif event == EVT_MINUS_FIRST or event == EVT_ROT_LEFT or event == EVT_MINUS_REPT then
elseif event == EVT_VIRTUAL_PREVIOUS or event == EVT_VIRTUAL_PREVIOUS_REPT then
addField(-1)
end
else
if event == EVT_MINUS_FIRST or event == EVT_ROT_RIGHT then
if event == EVT_VIRTUAL_NEXT then
selectField(1)
elseif event == EVT_PLUS_FIRST or event == EVT_ROT_LEFT then
elseif event == EVT_VIRTUAL_PREVIOUS then
selectField(-1)
end
end
@ -302,7 +302,7 @@ local function runConfigPage(event)
if wingBitmaps[1 + fields[1][4]] == nil then
wingBitmaps[1 + fields[1][4]] = Bitmap.open(wingBitmapsFile[1 + fields[1][4]])
end
lcd.drawBitmap(wingBitmapsFile[1 + fields[1][4]], 10, 90)
lcd.drawBitmap(wingBitmaps[1 + fields[1][4]], 10, 90)
else
lcd.drawPixmap(20, 28, wingBitmapsFile[1 + fields[1][4]])
end
@ -346,9 +346,9 @@ local function run(event)
if event == nil then
error("Cannot be run as a model script!")
return 2
elseif event == EVT_PAGE_BREAK or event == EVT_PAGEDN_FIRST then
elseif event == EVT_VIRTUAL_NEXT_PAGE then
selectPage(1)
elseif event == EVT_PAGE_LONG or event == EVT_PAGEUP_FIRST then
elseif event == EVT_VIRTUAL_PREVIOUS_PAGE then
killEvents(event);
selectPage(-1)
end

View file

@ -1630,9 +1630,60 @@ const luaR_value_entry opentxConstants[] = {
#else
{ "FIXEDWIDTH", FIXEDWIDTH },
#endif
// Virtual Page Next/Previous
#if defined(KEYS_GPIO_REG_PGUP) && defined(KEYS_GPIO_REG_PGDN)
{ "EVT_VIRTUAL_PREVIOUS_PAGE", EVT_KEY_FIRST(KEY_PGUP) },
{ "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_FIRST(KEY_PGDN) },
#elif defined(KEYS_GPIO_REG_PGDN)
{ "EVT_VIRTUAL_PREVIOUS_PAGE", EVT_KEY_LONG(KEY_PGDN) },
{ "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_BREAK(KEY_PGDN) },
#elif defined(KEYS_GPIO_REG_UP) && defined(KEYS_GPIO_REG_DOWN)
{ "EVT_VIRTUAL_PREVIOUS_PAGE", EVT_KEY_LONG(KEY_UP) },
{ "EVT_VIRTUAL_NEXT_PAGE", EVT_KEY_LONG(KEY_DOWN) },
#endif
// Virtual exit
{ "EVT_VIRTUAL_EXIT", EVT_KEY_BREAK(KEY_EXIT) },
// Virtual enter
#if defined(KEYS_GPIO_REG_ENTER)
{ "EVT_VIRTUAL_ENTER", EVT_KEY_BREAK(KEY_ENTER) },
{ "EVT_VIRTUAL_ENTER_LONG", EVT_KEY_LONG(KEY_ENTER) },
#endif
// Virtual menu
#if defined(KEYS_GPIO_REG_MENU)
{ "EVT_VIRTUAL_MENU", EVT_KEY_BREAK(KEY_MENU) },
{ "EVT_VIRTUAL_MENU_LONG", EVT_KEY_LONG(KEY_MENU) },
#elif defined(KEYS_GPIO_REG_SHIFT)
{ "EVT_VIRTUAL_MENU", EVT_KEY_BREAK(KEY_SHIFT) },
{ "EVT_VIRTUAL_MENU_LONG", EVT_KEY_LONG(KEY_SHIFT) },
#endif
// Virtual generic plus-next-right minus-previous-left
#if defined(ROTARY_ENCODER_NAVIGATION)
{ "EVT_VIRTUAL_NEXT", EVT_ROTARY_RIGHT},
{ "EVT_VIRTUAL_PREVIOUS", EVT_ROTARY_LEFT },
#elif defined(KEYS_GPIO_REG_RIGHT) && defined(KEYS_GPIO_REG_LEFT)
{ "EVT_VIRTUAL_NEXT", EVT_KEY_FIRST(KEY_RIGHT) },
{ "EVT_VIRTUAL_NEXT_REPT", EVT_KEY_REPT(KEY_RIGHT) },
{ "EVT_VIRTUAL_PREVIOUS", EVT_KEY_FIRST(KEY_LEFT) },
{ "EVT_VIRTUAL_PREVIOUS_REPT", EVT_KEY_REPT(KEY_LEFT) },
#elif defined(KEYS_GPIO_REG_PLUS) && defined(KEYS_GPIO_REG_MINUS)
{ "EVT_VIRTUAL_NEXT", EVT_KEY_FIRST(KEY_PLUS) },
{ "EVT_VIRTUAL_NEXT_REPT", EVT_KEY_REPT(KEY_PLUS) },
{ "EVT_VIRTUAL_PREVIOUS", EVT_KEY_FIRST(KEY_MINUS) },
{ "EVT_VIRTUAL_PREVIOUS_REPT", EVT_KEY_REPT(KEY_MINUS) },
#endif
#if defined(PCBHORUS)
#if defined(KEYS_GPIO_REG_PGUP)
{ "EVT_PAGEUP_FIRST", EVT_KEY_FIRST(KEY_PGUP) },
#endif
{ "EVT_PAGEDN_FIRST", EVT_KEY_FIRST(KEY_PGDN) },
{ "EVT_PAGEDN_BREAK", EVT_KEY_BREAK(KEY_PGDN) },
{ "EVT_PAGEDN_LONG", EVT_KEY_LONG(KEY_PGDN) },
{ "EVT_TELEM_FIRST", EVT_KEY_FIRST(KEY_TELEM) },
{ "EVT_MODEL_FIRST", EVT_KEY_FIRST(KEY_MODEL) },
{ "EVT_SYS_FIRST", EVT_KEY_FIRST(KEY_RADIO) },