Loading...
Loading...
In addition to the key events described in the previous section, radios with a color touch screen also provide touch events to the widget scripts.
The following touch events are passed in the event
argument to the widget script refresh
function (when in full screen mode), just like the key events. The following touch events are provided:
Touch Event Name | Description |
EVT_TOUCH_FIRST | When the finger touches down on the screen |
EVT_TOUCH_TAP | If the finger leaves the screen after a quick tap |
EVT_TOUCH_BREAK | If the finger leaves the screen without tap or slide |
EVT_TOUCH_SLIDE | Repeats while the finger is sliding on the screen |
In addition to the above touch events a touchState
table is passed to refresh
with the following addional data fields:
touchState fields | Description |
x, y | Current touch point |
startX, startY | Point where slide started |
slideX, SlideY | Movement since previous SLIDE event (or start of slide) |
swipeUp / swipeDown / swipeLeft / swipeRight | The field is present and equal to |
tapCount | Counts the number of consecutive taps |
touchState
is nil
if event
is not a touch event. This can be used to test if we have a touch event or a key event.
Since Lua evaluates a nil
value to false
and everything else to true
:
if touchState then
we have a touch event.
x, y
are present for all touch events.
startX, startY, slideX, slideY
are only present with EVT_TOUCH_SLIDE
.
swipeUp
/ swipeDown
/ swipeLeft
/ swipeRight
may be present only withEVT_TOUCH_SLIDE
.
tapCount
is zero for anything but EVT_TOUCH_TAP
.
Many of the lcd functions accept parameters named flags and patterns. The names and their meanings are described below.
Loading...
Loading...
Name | Description | Version | Notes |
0 | normal font, default precision for numeric |
XXLSIZE | jumbo font | 2.0.6 |
DBLSIZE | double size font |
MIDSIZE | mid sized font |
SMLSIZE | small font |
BOLD | bold font | Only color displays. This is a font size on its own - cannot be combined with other font size flags. |
SHADOWED | shadow font | Only color displays |
INVERS | inverted display |
BLINK | blinking text |
LEFT | left justify | 2.0.6 | Default for most functions not related to bitmaps |
RIGHT | right justify |
CENTER | center justify | Only color displays |
VCENTER | center vertically | 2.5.0 | Only color displays |
PREC1 | single decimal place |
PREC2 | two decimal places |
GREY_DEFAULT | grey fill |
TIMEHOUR | display hours | Only for drawTimer |
Name | Description |
FORCE | pixels will be black |
ERASE | pixels will be white |
DOTTED | lines will appear dotted |
On radios with color display, a color may be added to the flags described above.
There are two types of color constants: one that is an index into a table holding a palette of theme colors, and one that is just a color.
These are the theme colors plus CUSTOM_COLOR, and they can be changed with the function lcd.setColor(color_index, color). Please note: if an indexed color is changed, then it changes everywhere that it is used. For the theme colors, this is not only in other widgets, but everywhere throughout the radio's user interface!
COLOR_THEME_PRIMARY1
COLOR_THEME_PRIMARY2
COLOR_THEME_PRIMARY3
COLOR_THEME_SECONDARY1
COLOR_THEME_SECONDARY2
COLOR_THEME_SECONDARY3
COLOR_THEME_FOCUS
COLOR_THEME_EDIT
COLOR_THEME_ACTIVE
COLOR_THEME_WARNING
COLOR_THEME_DISABLED
CUSTOM_COLOR
These color constants cannot be changed:
BLACK
WHITE
LIGHTWHITE
YELLOW
BLUE
DARKBLUE
GREY
DARKGREY
LIGHTGREY
RED
DARKRED
GREEN
DARKGREEN
LIGHTBROWN
DARKBROWN
BRIGHTGREEN
ORANGE
These should no longer be used, but they are included for backwards compatibility. The old OpenTX API had a large number of indexed theme colors, and these have been mapped to the new theme colors as follows:
ALARM_COLOR -> COLOR_THEME_WARNING
BARGRAPH_BGCOLOR -> COLOR_THEME_SECONDARY3
BARGRAPH1_COLOR -> COLOR_THEME_SECONDARY1
BARGRAPH2_COLOR -> COLOR_THEME_SECONDARY2
CURVE_AXIS_COLOR -> COLOR_THEME_SECONDARY2
CURVE_COLOR -> COLOR_THEME_SECONDARY1
CURVE_CURSOR_COLOR -> COLOR_THEME_WARNING
HEADER_BGCOLOR -> COLOR_THEME_FOCUS
HEADER_COLOR -> COLOR_THEME_SECONDARY1
HEADER_CURRENT_BGCOLOR -> COLOR_THEME_FOCUS
HEADER_ICON_BGCOLOR -> COLOR_THEME_SECONDARY1
LINE_COLOR -> COLOR_THEME_PRIMARY3
MAINVIEW_GRAPHICS_COLOR -> COLOR_THEME_SECONDARY1
MAINVIEW_PANES_COLOR -> COLOR_THEME_PRIMARY2
MENU_TITLE_BGCOLOR -> COLOR_THEME_SECONDARY1
MENU_TITLE_COLOR -> COLOR_THEME_PRIMARY2
MENU_TITLE_DISABLE_COLOR -> COLOR_THEME_PRIMARY3
OVERLAY_COLOR -> COLOR_THEME_PRIMARY1
SCROLLBOX_COLOR -> COLOR_THEME_SECONDARY3
TEXT_BGCOLOR -> COLOR_THEME_SECONDARY3
TEXT_COLOR -> COLOR_THEME_SECONDARY1
TEXT_DISABLE_COLOR -> COLOR_THEME_DISABLED
TEXT_INVERTED_BGCOLOR -> COLOR_THEME_FOCUS
TEXT_INVERTED_COLOR -> COLOR_THEME_PRIMARY2
TITLE_BGCOLOR -> COLOR_THEME_SECONDARY1
TRIM_BGCOLOR -> COLOR_THEME_FOCUS
TRIM_SHADOW_COLOR -> COLOR_THEME_PRIMARY1
WARNING_COLOR -> COLOR_THEME_WARNING
This section describes various constants that are provided for Lua by EdgeTX.
This page describes the value that is passed to scripts in the event parameter. It is used in Telemetry and One-Time scripts, as well as widget scripts in full screen mode.
Each time a key is pressed, held and released a number of events get generated. Here is a typical flow:
when a key is pressed a FIRST
event is generated
if the key continues to be pressed, then after a while a LONG
event is generated
if the key continues to be pressed, then a REPEAT
events are being generated
when the key is released a BREAK
event is generated
Couple of examples:
a short press on key would generate: FIRST
, BREAK
a longer pres on key would generate: FIRST
, LONG
, BREAK
even longer press: FIRST
, LONG
, REPEAT,
REPEAT, ..., BREAK
kill immediately after the key press would generate: FIRST
kill after the long key press would generate: FIRST
, LONG
key number
type of event
The two fields are combined into one single number. Some of these combinations are defined as constants and are available to Lua scripts:
Radios with rotary encoder (X7 and Horus) have also:
Given the large number of radios supported by OpenTX, and the large difference in keys available on those, a set of VIRTUAL KEYS has been defined and are mapped to best fit available hardware
This normal key event sequence can be altered with the function. Any time this function is called (after the FIRST
event) all further key events for this key will be suppressed until the next key press of this key. Examples:
The event
parameter in the and scripts run function actually carries two pieces of information:
Name
Description
LCD_W
width in pixels
LCD_H
height in pixels
Key Event Name | Comments |
EVT_MENU_BREAK | MENU key release |
EVT_PAGE_BREAK | PAGE key release |
EVT_PAGE_LONG | MENU key long press |
EVT_ENTER_BREAK | ENT key release |
EVT_ENTER_LONG | ENT key long press |
EVT_EXIT_BREAK | EXIT key release |
EVT_PLUS_BREAK | + key release |
EVT_MINUS_BREAK | - key release |
EVT_PLUS_FIRST | + key press |
EVT_MINUS_FIRST | - key press |
EVT_PLUS_REPT | + key repeat |
EVT_MINUS_REPT | - key repeat |
Key Event Name | Comments |
EVT_ROT_BREAK | rotary encoder release |
EVT_ROT_LONG | rotary encoder long press |
EVT_ROT_LEFT | rotary encoder rotated left |
EVT_ROT_RIGHT | rotary encoder rotated right |
Virtual Key Event Name | Comments |
EVT_VIRTUAL_NEXT_PAGE | for PAGE navigation |
EVT_VIRTUAL_PREV_PAGE | for PAGE navigation |
EVT_VIRTUAL_ENTER |
EVT_VIRTUAL_ENTER_LONG |
EVT_VIRTUAL_MENU |
EVT_VIRTUAL_MENU_LONG |
EVT_VIRTUAL_NEXT | for FIELDS navigation |
EVT_VIRTUAL_NEXT_REPT | for FIELDS navigation |
EVT_VIRTUAL_PREV | for FIELDS navigation |
EVT_VIRTUAL_PREV_REPT | for FIELDS navigation |
EVT_VIRTUAL_INC | for VALUES navigation |
EVT_VIRTUAL_INC_REPT | for VALUES navigation |
EVT_VIRTUAL_DEC | for VALUES navigation |
EVT_VIRTUAL_DEC_REPT | for VALUES navigation |