GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
Major updates to support external button controls per #348
Full external button/GPIO control over the GUI is now possible by setting GSLC_FEATURE_INPUT=1
See example: ex04_ard_ctrls_pin
The GUI can now be in "navigation mode" or "edit mode". Selecting an advanced control (that supports the edit feature) toggles entry into edit mode, from where the forward/previous actions can navigate and manipulate the control.
By default, the focus color is magenta and edit color is red. These can be modified by SetFocusCol().
Extensive updates to enable full navigation and editing of XKeypad controls
By default, a combination of touch and pin control is also possible with the "focus-on-touch" feature. It can be disabled by GSLC_FEATURE_FOCUS_ON_TOUCH=0.
The GUI now draws an outer focus frame. In most cases, the internal contents of the element are shrunk by a pixel to accommodate the focus frame. However, for elements that cannot be "shrunk" (such as image buttons), the element dimension is expanded slightly during creation. This must be taken into account when placing elements in the Builder to avoid any potential overlap.
Changes:
Add: enhanced integrated button support for WIO Terminal, M5stack, etc.
Add: XKeyPad support for key glow tracking
Add: support for element focus
Add: default to focus-on-touch (disable with GSLC_FEATURE_FOCUS_ON_TOUCH=0)
Add: consistent handling for focus/glow/frames (ElemCalcRectState, ElemCalcResizeForFocus)
Add: increase element size to accommodate frames if containing images
Change: redraw optimized to detect if any elements updated
Change: XKeyPad focus order now made consistent with layout
Major updates to support external button controls per #348
Full external button/GPIO control over the GUI is now possible by setting
GSLC_FEATURE_INPUT=1
ex04_ard_ctrls_pin
SetFocusCol()
.GSLC_FEATURE_FOCUS_ON_TOUCH=0
.Changes:
GSLC_FEATURE_FOCUS_ON_TOUCH=0
)ElemCalcRectState
,ElemCalcResizeForFocus
)GSLC_ACTION_PRESELECT
GSLC_REDRAW_FOCUS