GUIslice  0.16.0
Embedded GUI in C
XKeyPad.h
Go to the documentation of this file.
1 #ifndef _GUISLICE_EX_XKEYPAD_H_
2 #define _GUISLICE_EX_XKEYPAD_H_
3 
4 #include "GUIslice.h"
5 
6 
7 // =======================================================================
8 // GUIslice library extension: XKeyPad control
9 // - Paul Conti, Calvin Hass
10 // - https://www.impulseadventure.com/elec/guislice-gui.html
11 // - https://github.com/ImpulseAdventure/GUIslice
12 // =======================================================================
13 //
14 // The MIT License
15 //
16 // Copyright 2016-2020 Calvin Hass
17 //
18 // Permission is hereby granted, free of charge, to any person obtaining a copy
19 // of this software and associated documentation files (the "Software"), to deal
20 // in the Software without restriction, including without limitation the rights
21 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
22 // copies of the Software, and to permit persons to whom the Software is
23 // furnished to do so, subject to the following conditions:
24 //
25 // The above copyright notice and this permission notice shall be included in
26 // all copies or substantial portions of the Software.
27 //
28 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
29 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
30 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
31 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
32 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
33 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
34 // THE SOFTWARE.
35 //
36 // =======================================================================
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif // __cplusplus
42 
43 
44 // ============================================================================
45 // Extended Element: KeyPad (Number Selector)
46 // - Demonstration of a compound element consisting of
47 // a counter text field along with an increment and
48 // decrement button.
49 // ============================================================================
50 
51 // ============================================================================
52 // User-configurable options
53 // - The following options can be adjusted by the user if needed
54 
55 #define XKEYPAD_BUF_MAX 20 // Maximum buffer length for input string
56 #define XKEYPAD_KEY_LEN 6 // Maximum buffer length for a single key
57 
58 
59 // Select cursor appearance:
60 // - 1 : Colorized cursor, intended for monospaced fonts
61 // - 0 : Normal cursor, can use proportional fonts
62 #define XKEYPAD_CURSOR_ENHANCED 1 // Cursor appearance
63 #define XKEYPAD_CURSOR_CH '^' // Character to use for embedded cursor
64 
65 
66 // ============================================================================
67 
68 // Define unique identifier for extended element type
69 // - Select any number above GSLC_TYPE_BASE_EXTEND
70 #define GSLC_TYPEX_KEYPAD GSLC_TYPE_BASE_EXTEND + 20
71 
72 // Define the status for GSLC_CB_INPUT callback
73 #define XKEYPAD_CB_STATE_DONE 1
74 #define XKEYPAD_CB_STATE_CANCEL 2
75 #define XKEYPAD_CB_STATE_UPDATE 3
76 
77 // Bit mask to define what needs to be redrawn
78 static const int RBIT_TXT = 1; // Redraw the text field
79 static const int RBIT_KEYONE = 2; // Redraw a single key (defined by nXKeyPadRedrawId)
80 static const int RBIT_KEYALL = 4; // Redraw all keys
81 static const int RBIT_CTRL = 128; // Redraw the entire control
82 
83 // Definitions for XKeyPad redraw state (eRedrawState)
84 #define XKEYPAD_REDRAW_NONE 0 // No need for a redraw
85 #define XKEYPAD_REDRAW_TXT RBIT_TXT // Redraw the text field
86 #define XKEYPAD_REDRAW_KEY RBIT_KEYONE // Redraw a single key (defined by nXKeyPadRedrawId)
87 #define XKEYPAD_REDRAW_ALL RBIT_KEYALL+RBIT_TXT // Redraw all keys and text field
88 #define XKEYPAD_REDRAW_FULL RBIT_KEYALL+RBIT_TXT+RBIT_CTRL // Redraw entire control (frame, all keys and text)
89 
90 #define DEBUG_XKEYPAD 0
91 
92 typedef struct {
95  int16_t eRedrawState;
96  int16_t nRedrawKeyId;
98 
99 
100 // Define global list of common button ID types
101 // - A given keypad may not use all of these
102 enum {
103  // --- Special Buttons (0..15)
111 
112  // --- Variant-specific special buttons
113  // These are defined within the variant's "-setup.c"
114  // And are reserved the ID range 16..31
115 
116  // --- Basic Buttons
118  // --- Text field
120  // --- Terminators
122 };
123 
124 enum {
125  E_XKEYPAD_TYPE_BASIC, // Basic button (single character)
126  E_XKEYPAD_TYPE_SPECIAL, // Special button, static content
127  E_XKEYPAD_TYPE_TXT, // Text field
128  E_XKEYPAD_TYPE_UNUSED, // Unused key
129  E_XKEYPAD_TYPE_END, // Terminator indicator (end of key list)
130 };
131 
132 // Extended element data structures
133 // - These data structures are maintained in the gslc_tsElem
134 // structure via the pXData pointer
135 
137  typedef struct gslc_tsKey {
138  uint8_t nId;
139  uint8_t nRow;
140  uint8_t nCol;
141  uint8_t nRowSpan;
142  uint8_t nColSpan;
143  uint8_t nType;
144  } gslc_tsKey;
145 
146 
147  // Internal callback functions for KeyPad
148  typedef void (*GSLC_CB_XKEYPAD_RESET)(void* pvKeyPadConfig);
149  typedef void (*GSLC_CB_XKEYPAD_TXT_INIT)(void* pvKeyPad);
150  typedef void (*GSLC_CB_XKEYPAD_LABEL_GET)(void* pvKeyPad,uint8_t nId,uint8_t nStrMax,char* pStr);
151  typedef void (*GSLC_CB_XKEYPAD_SYTLE_GET)(void* pvKeyPad,uint8_t nId, bool* bVisible, gslc_tsColor* pcolTxt, gslc_tsColor *pcolFrame, gslc_tsColor *pcolFill, gslc_tsColor *pcolGlow);
152  typedef void (*GSLC_CB_XKEYPAD_BTN_EVT)(void* pvKeyPad,uint8_t nId,gslc_tsXKeyPadResult* psResult);
153 
155  typedef struct {
156  uint8_t nDispMax;
157 
158  bool bRoundEn;
159  int8_t nButtonSzW;
160  int8_t nButtonSzH;
161  int8_t nButtonSpaceX;
162  int8_t nButtonSpaceY;
165  int8_t eLayoutDef;
166  int8_t eLayoutSel;
167 
168  // From constructor
169  int16_t nFontId;
170  int16_t nOffsetX;
171  int16_t nOffsetY;
172 
173  int8_t nFrameMargin;
174  uint8_t nMaxCols;
175  uint8_t nMaxRows;
176 
182 
184 
189  typedef struct {
190  char* pStr;
193 
195  typedef struct {
196 
197  // State
198  uint8_t nBufferMax;
199  uint8_t nBufferLen;
200  char acBuffer[XKEYPAD_BUF_MAX];
201  uint8_t nCursorPos;
202  uint8_t nScrollPos;
203 
205 
206  // Config
208 
211 
212  } gslc_tsXKeyPad;
213 
224 
237  int16_t gslc_XKeyPadLookupId(gslc_tsKey* pKeys, uint8_t nKeyId);
238 
259  bool gslc_XKeyPadTxtAddCh(gslc_tsXKeyPad* pKeyPad,char ch,uint8_t nPos);
260 
283  bool gslc_XKeyPadTxtAddStr(gslc_tsXKeyPad* pKeyPad,const char* pStr,uint8_t nPos);
284 
298  bool gslc_XKeyPadTxtDelCh(gslc_tsXKeyPad* pKeyPad,uint8_t nPos);
299 
316  bool gslc_XKeyPadLayoutSet(gslc_tsXKeyPadCfg* pConfig,int8_t eLayoutSel);
317 
318 
331  void gslc_XKeyPadSizeAllGet(gslc_tsKey** pLayouts, uint8_t nNumLayouts, uint8_t* pnRows, uint8_t* pnCols);
332 
333 
346  void gslc_XKeyPadSizeGet(gslc_tsKey* pLayout, uint8_t* pnRows, uint8_t* pnCols);
347 
357  void gslc_XKeyPadDrawKey(gslc_tsGui* pGui, gslc_tsXKeyPad* pXData, gslc_tsKey* pKey);
358 
373  gslc_tsElemRef* gslc_XKeyPadCreateBase(gslc_tsGui* pGui, int16_t nElemId, int16_t nPage,
374  gslc_tsXKeyPad* pXData, int16_t nX0, int16_t nY0, int8_t nFontId, gslc_tsXKeyPadCfg* pConfig);
375 
376 
386  void gslc_ElemXKeyPadValSet(gslc_tsGui* pGui, gslc_tsElemRef* pElemRef, const char* pStrBuf);
387 
388 
403  void gslc_ElemXKeyPadTargetRefSet(gslc_tsGui* pGui, gslc_tsElemRef* pElemRef, gslc_tsElemRef* pTargetRef);
404 
405 
416  bool gslc_ElemXKeyPadValGet(gslc_tsGui* pGui, gslc_tsElemRef* pElemRef, char* pStrBuf, uint8_t nStrBufMax);
417 
426  char* gslc_ElemXKeyPadDataValGet(gslc_tsGui* pGui, void* pvData);
427 
428 
437  int16_t gslc_ElemXKeyPadDataTargetIdGet(gslc_tsGui* pGui, void* pvData);
438 
449  bool gslc_XKeyPadDraw(void* pvGui, void* pvElemRef, gslc_teRedrawType eRedraw);
450 
463  bool gslc_XKeyPadTouch(void* pvGui, void* pvElemRef, gslc_teTouch eTouch, int16_t nRelX, int16_t nRelY);
464 
475  void gslc_ElemXKeyPadValSetCb(gslc_tsGui* pGui, gslc_tsElemRef* pElemRef, GSLC_CB_INPUT pfuncCb);
476 
485  void gslc_ElemXKeyPadCfgSetRoundEn(gslc_tsXKeyPadCfg* pConfig,bool bEn);
486 
496  void gslc_ElemXKeyPadCfgSetButtonSz(gslc_tsXKeyPadCfg* pConfig, int8_t nButtonSzW, int8_t nButtonSzH);
497 
510  void gslc_ElemXKeyPadCfgSetButtonSpace(gslc_tsXKeyPadCfg* pConfig, int8_t nSpaceX, int8_t nSpaceY);
511 
512 
526  gslc_tsColor cColFrame, gslc_tsColor cColFill, gslc_tsColor cColTxt);
527 
544  char* pStrBuf,uint8_t nStrBufMax,int16_t nFontId, gslc_tsColor cColFrame,
545  gslc_tsColor cColFill, gslc_tsColor cColTxt, bool bRoundedEn);
546 
547 
561  void gslc_ElemXKeyPadInputAsk(gslc_tsGui* pGui, gslc_tsElemRef* pKeyPadRef, int16_t nPgPopup, gslc_tsElemRef* pTxtRef);
562 
572  char* gslc_ElemXKeyPadInputGet(gslc_tsGui* pGui, gslc_tsElemRef* pTxtRef, void* pvCbData);
573 
574 // ============================================================================
575 
576 // ------------------------------------------------------------------------
577 // Read-only element macros
578 // ------------------------------------------------------------------------
579 
580 // Macro initializers for Read-Only Elements in Flash/PROGMEM
581 //
582 #ifdef __cplusplus
583 }
584 #endif // __cplusplus
585 #endif // _GUISLICE_EX_XKEYPAD_H_
586 
GSLC_CB_XKEYPAD_RESET pfuncReset
Callback function whenever keypad needs to be reset.
Definition: XKeyPad.h:177
bool gslc_XKeyPadTouch(void *pvGui, void *pvElemRef, gslc_teTouch eTouch, int16_t nRelX, int16_t nRelY)
Handle touch (up,down,move) events to KeyPad element.
Definition: XKeyPad.c:655
bool(* GSLC_CB_INPUT)(void *pvGui, void *pvElemRef, int16_t nStatus, void *pvData)
Callback function for element input ready.
Definition: GUIslice.h:511
static const int RBIT_CTRL
Definition: XKeyPad.h:81
int8_t nButtonSpaceX
Button X spacing (in pixels)
Definition: XKeyPad.h:161
void(* GSLC_CB_XKEYPAD_BTN_EVT)(void *pvKeyPad, uint8_t nId, gslc_tsXKeyPadResult *psResult)
Definition: XKeyPad.h:152
Key information. Defines everything we need to know about a particular key.
Definition: XKeyPad.h:137
Definition: XKeyPad.h:104
GSLC_CB_XKEYPAD_LABEL_GET pfuncLabelGet
Callback function to get a key label.
Definition: XKeyPad.h:179
void gslc_ElemXKeyPadTargetRefSet(gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, gslc_tsElemRef *pTargetRef)
Set target element reference for KeyPad return value.
Definition: XKeyPad.c:419
void gslc_ElemXKeyPadCfgSetButtonSz(gslc_tsXKeyPadCfg *pConfig, int8_t nButtonSzW, int8_t nButtonSzH)
Update the KeyPad configuration to define the KeyPad button sizing.
Definition: XKeyPad.c:913
static const int RBIT_KEYONE
Definition: XKeyPad.h:79
void(* GSLC_CB_XKEYPAD_TXT_INIT)(void *pvKeyPad)
Definition: XKeyPad.h:149
uint8_t nCursorPos
Cursor position within the buffer.
Definition: XKeyPad.h:201
gslc_tsElemRef * pTargetRef
Target element reference to receive the value.
Definition: XKeyPad.h:191
Configuration for the KeyPad.
Definition: XKeyPad.h:155
gslc_teRedrawType
Redraw types.
Definition: GUIslice.h:370
uint8_t nColSpan
Number of columns that key takes up (in units of nButtonSzW pixels)
Definition: XKeyPad.h:142
bool gslc_ElemXKeyPadValGet(gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, char *pStrBuf, uint8_t nStrBufMax)
Fetch the current value string associated with KeyPad element.
Definition: XKeyPad.c:463
bool gslc_XKeyPadTxtAddCh(gslc_tsXKeyPad *pKeyPad, char ch, uint8_t nPos)
Add a character to the KeyPad text field at the specified offset (nPos).
Definition: XKeyPad.c:838
struct gslc_tsKey gslc_tsKey
Key information. Defines everything we need to know about a particular key.
int8_t eLayoutSel
Current KeyPad layout (type gslc_teXKeyPadSel)
Definition: XKeyPad.h:166
uint8_t nCol
Column to place the key (0 is left-most)
Definition: XKeyPad.h:140
Input callback data structure.
Definition: XKeyPad.h:189
GSLC_CB_INPUT pfuncCb
Callback function for KeyPad actions.
Definition: XKeyPad.h:209
Definition: XKeyPad.h:126
void(* GSLC_CB_XKEYPAD_LABEL_GET)(void *pvKeyPad, uint8_t nId, uint8_t nStrMax, char *pStr)
Definition: XKeyPad.h:150
char * gslc_ElemXKeyPadInputGet(gslc_tsGui *pGui, gslc_tsElemRef *pTxtRef, void *pvCbData)
Complete a KeyPad popup by retrieving the input data and storing it in the text element.
Definition: XKeyPad.c:1233
Definition: XKeyPad.h:129
int8_t eLayoutDef
Default KeyPad layout (type gslc_teXKeyPadSel)
Definition: XKeyPad.h:165
void gslc_XKeyPadDrawKey(gslc_tsGui *pGui, gslc_tsXKeyPad *pXData, gslc_tsKey *pKey)
Draw a key to the screen.
Definition: XKeyPad.c:208
GSLC_CB_XKEYPAD_BTN_EVT pfuncBtnEvt
Callback function to handle a key.
Definition: XKeyPad.h:181
int16_t eRedrawState
XKeyPad pending redraw state.
Definition: XKeyPad.h:95
GSLC_CB_XKEYPAD_TXT_INIT pfuncTxtInit
Callback function whenever text string initialized.
Definition: XKeyPad.h:178
Definition: XKeyPad.h:107
void gslc_XKeyPadSizeGet(gslc_tsKey *pLayout, uint8_t *pnRows, uint8_t *pnCols)
Calculate the overall dimensions of the KeyPad control encompassing the text field and key buttons...
Definition: XKeyPad.c:538
bool gslc_XKeyPadLayoutSet(gslc_tsXKeyPadCfg *pConfig, int8_t eLayoutSel)
Select a new KeyPad layout.
Definition: XKeyPad.c:375
void gslc_XKeyPadDrawVirtualBtn(gslc_tsGui *pGui, gslc_tsRect rElem, char *pStrBuf, uint8_t nStrBufMax, int16_t nFontId, gslc_tsColor cColFrame, gslc_tsColor cColFill, gslc_tsColor cColTxt, bool bRoundedEn)
Draw a virtual textual Button Element.
Definition: XKeyPad.c:1153
bool gslc_XKeyPadTxtDelCh(gslc_tsXKeyPad *pKeyPad, uint8_t nPos)
Remove a character from the KeyPad text field at the specified offset (nPos).
Definition: XKeyPad.c:802
Definition: XKeyPad.h:119
gslc_tsElemRef * gslc_XKeyPadCreateBase(gslc_tsGui *pGui, int16_t nElemId, int16_t nPage, gslc_tsXKeyPad *pXData, int16_t nX0, int16_t nY0, int8_t nFontId, gslc_tsXKeyPadCfg *pConfig)
Create a KeyPad Element.
Definition: XKeyPad.c:283
int8_t nButtonSzH
Button height (in pixels)
Definition: XKeyPad.h:160
Definition: XKeyPad.h:110
void gslc_XKeyPadDrawVirtualTxt(gslc_tsGui *pGui, gslc_tsRect rElem, gslc_tsXKeyPad *pKeyPad, gslc_tsColor cColFrame, gslc_tsColor cColFill, gslc_tsColor cColTxt)
Draw a virtual Text Element.
Definition: XKeyPad.c:931
bool bRoundEn
Enable rounded corners.
Definition: XKeyPad.h:158
uint8_t nRowSpan
Number of rows that key takes up (in units of nButtonSzH pixels)
Definition: XKeyPad.h:141
Extended data for KeyPad element.
Definition: XKeyPad.h:195
Definition: XKeyPad.h:128
Definition: XKeyPad.h:105
Rectangular region. Defines X,Y corner coordinates plus dimensions.
Definition: GUIslice.h:519
void(* GSLC_CB_XKEYPAD_SYTLE_GET)(void *pvKeyPad, uint8_t nId, bool *bVisible, gslc_tsColor *pcolTxt, gslc_tsColor *pcolFrame, gslc_tsColor *pcolFill, gslc_tsColor *pcolGlow)
Definition: XKeyPad.h:151
int8_t nButtonSpaceY
Button Y spacing (in pixels)
Definition: XKeyPad.h:162
uint8_t nBufferMax
Maximum number of characters stored in edit value string.
Definition: XKeyPad.h:198
int16_t nOffsetX
Configured offset (X direction) for buttons from parent container.
Definition: XKeyPad.h:170
bool gslc_XKeyPadTxtAddStr(gslc_tsXKeyPad *pKeyPad, const char *pStr, uint8_t nPos)
Add a string to the KeyPad text field at the specified offset (nPos).
Definition: XKeyPad.c:900
uint8_t nBufferLen
Current number of characters stored in edit value string.
Definition: XKeyPad.h:199
void gslc_ElemXKeyPadCfgInit(gslc_tsXKeyPadCfg *pConfig)
Provide default initialization for the base XKeyPad.
Definition: XKeyPad.c:96
uint8_t nScrollPos
Display offset within the buffer.
Definition: XKeyPad.h:202
static const int RBIT_TXT
Definition: XKeyPad.h:78
char * gslc_ElemXKeyPadDataValGet(gslc_tsGui *pGui, void *pvData)
Fetch the final value string of the KeyPad from a callback.
Definition: XKeyPad.c:444
char * pStr
Final value of edited value field.
Definition: XKeyPad.h:190
int16_t nRedrawKeyId
XKeyPad specific key to redraw (-1 for none)
Definition: XKeyPad.h:96
void gslc_ElemXKeyPadInputAsk(gslc_tsGui *pGui, gslc_tsElemRef *pKeyPadRef, int16_t nPgPopup, gslc_tsElemRef *pTxtRef)
Trigger a KeyPad popup and associate it with a text element.
Definition: XKeyPad.c:1205
gslc_tsXKeyPadCfg * pConfig
Ptr to config struct (may be derived variant)
Definition: XKeyPad.h:207
gslc_tsKey ** pLayouts
Key Positions for each KeyPad layout.
Definition: XKeyPad.h:164
Definition: XKeyPad.h:117
Element reference structure.
Definition: GUIslice.h:578
int16_t gslc_XKeyPadLookupId(gslc_tsKey *pKeys, uint8_t nKeyId)
Find a key ID within a KeyPad label array and return it's index into the array.
Definition: XKeyPad.c:125
void gslc_ElemXKeyPadCfgSetRoundEn(gslc_tsXKeyPadCfg *pConfig, bool bEn)
Update the KeyPad configuration to enable rounded button corners.
Definition: XKeyPad.c:925
gslc_tsXKeyPadResult sRedraw
Pending redraw state.
Definition: XKeyPad.h:204
int16_t gslc_ElemXKeyPadDataTargetIdGet(gslc_tsGui *pGui, void *pvData)
Fetch the element target ID associated with this KeyPad.
Definition: XKeyPad.c:427
void gslc_XKeyPadSizeAllGet(gslc_tsKey **pLayouts, uint8_t nNumLayouts, uint8_t *pnRows, uint8_t *pnCols)
Calculate the overall dimensions of the KeyPad control encompassing all available layouts for the Key...
Definition: XKeyPad.c:525
gslc_tsKey * pLayout
Current selected layout.
Definition: XKeyPad.h:163
int8_t nButtonSzW
Button width (in pixels)
Definition: XKeyPad.h:159
Definition: XKeyPad.h:106
void gslc_ElemXKeyPadValSetCb(gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, GSLC_CB_INPUT pfuncCb)
Set the callback function associated with the KeyPad.
Definition: XKeyPad.c:517
void gslc_ElemXKeyPadCfgSetButtonSpace(gslc_tsXKeyPadCfg *pConfig, int8_t nSpaceX, int8_t nSpaceY)
Update the KeyPad configuration to define the KeyPad button spacing.
Definition: XKeyPad.c:919
void(* GSLC_CB_XKEYPAD_RESET)(void *pvKeyPadConfig)
Definition: XKeyPad.h:148
uint8_t nId
Unique identifier.
Definition: XKeyPad.h:138
Return status for XKeyPad.
Definition: XKeyPad.h:94
gslc_teTouch
Processed event from input raw events and actions.
Definition: GUIslice.h:305
Definition: XKeyPad.h:121
gslc_tsElemRef * pTargetRef
Target element ref associated with keypad (GSLC_CB_INPUT)
Definition: XKeyPad.h:210
int16_t nFontId
Configured font for KeyPad labels.
Definition: XKeyPad.h:169
uint8_t nType
Key type.
Definition: XKeyPad.h:143
Definition: XKeyPad.h:125
GUI structure.
Definition: GUIslice.h:716
#define XKEYPAD_BUF_MAX
Definition: XKeyPad.h:55
uint8_t nRow
Row to place the key (0 is top-most)
Definition: XKeyPad.h:139
Color structure. Defines RGB triplet.
Definition: GUIslice.h:534
Definition: XKeyPad.h:108
uint8_t nMaxRows
Maximum number of rows to occupy.
Definition: XKeyPad.h:175
static const int RBIT_KEYALL
Definition: XKeyPad.h:80
Definition: XKeyPad.h:109
uint8_t nDispMax
Maximum length to display.
Definition: XKeyPad.h:156
Definition: XKeyPad.h:127
int8_t nFrameMargin
Margin around text value field.
Definition: XKeyPad.h:173
GSLC_CB_XKEYPAD_SYTLE_GET pfuncStyleGet
Callback function to get a key's style.
Definition: XKeyPad.h:180
void gslc_ElemXKeyPadValSet(gslc_tsGui *pGui, gslc_tsElemRef *pElemRef, const char *pStrBuf)
Set the current value for the editable text field.
Definition: XKeyPad.c:388
uint8_t nMaxCols
Maximum number of columns to occupy.
Definition: XKeyPad.h:174
int16_t nOffsetY
Configured offset (Y direction) for buttons from parent container.
Definition: XKeyPad.h:171
bool gslc_XKeyPadDraw(void *pvGui, void *pvElemRef, gslc_teRedrawType eRedraw)
Draw a KeyPad element on the screen.
Definition: XKeyPad.c:477