Embedded SDK
Embedded SDK
nbgl_obj.h
Go to the documentation of this file.
1 
7 #ifndef NBGL_OBJ_H
8 #define NBGL_OBJ_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include "nbgl_types.h"
15 #include "nbgl_fonts.h"
16 #include "ux_loc.h"
17 
18 /*********************
19  * INCLUDES
20  *********************/
21 
22 /*********************
23  * DEFINES
24  *********************/
25 // Keypad special key values
26 #define BACKSPACE_KEY 8
27 #define VALIDATE_KEY '\r'
28 
29 // for Keyboard
30 #ifdef NBGL_KEYBOARD
31 #ifdef HAVE_SE_TOUCH
32 #ifdef TARGET_STAX
33 #define KEYBOARD_KEY_HEIGHT 60
34 #else // TARGET_STAX
35 #define KEYBOARD_KEY_HEIGHT 72
36 #endif // TARGET_STAX
37 
38 // index of keys for keyMask field of nbgl_keyboard_t
39 #define SHIFT_KEY_INDEX 26
40 #define DIGITS_SWITCH_KEY_INDEX 27
41 #define BACKSPACE_KEY_INDEX 28
42 #define SPACE_KEY_INDEX 29
43 #define SPECIAL_KEYS_INDEX 30
44 
45 #else // HAVE_SE_TOUCH
46 #define KEYBOARD_KEY_WIDTH 14
47 #define KEYBOARD_KEY_HEIGHT 14
48 #define KEYBOARD_WIDTH (5 * KEYBOARD_KEY_WIDTH)
49 #endif // HAVE_SE_TOUCH
50 #endif // NBGL_KEYBOARD
51 
52 // for Keypad
53 #ifdef HAVE_SE_TOUCH
54 #if (SCREEN_HEIGHT == 600)
55 #define KEYPAD_KEY_HEIGHT 88
56 #else
57 #define KEYPAD_KEY_HEIGHT 104
58 #endif
59 #define KEYPAD_MAX_DIGITS 12
60 #else // HAVE_SE_TOUCH
61 #define KEYPAD_WIDTH 114
62 #define KEYPAD_HEIGHT 18
63 #endif // HAVE_SE_TOUCH
64 
65 #ifdef HAVE_SE_TOUCH
66 // external margin in pixels
67 #ifdef TARGET_STAX
68 #define BORDER_MARGIN 24
69 #define BOTTOM_BORDER_MARGIN 24
70 #else // TARGET_STAX
71 #define BORDER_MARGIN 32
72 #define BOTTOM_BORDER_MARGIN 24
73 #endif // TARGET_STAX
74 
75 // Back button header height
76 #ifdef TARGET_STAX
77 #define BACK_BUTTON_HEADER_HEIGHT 88
78 #else // TARGET_STAX
79 #define BACK_BUTTON_HEADER_HEIGHT 96
80 #endif // TARGET_STAX
81 
82 // common dimensions for buttons
83 #ifdef TARGET_STAX
84 #define BUTTON_RADIUS RADIUS_40_PIXELS
85 #define BUTTON_DIAMETER 80
86 #else // TARGET_STAX
87 #define BUTTON_RADIUS RADIUS_44_PIXELS
88 #define BUTTON_DIAMETER 88
89 #endif // TARGET_STAX
90 #endif // HAVE_SE_TOUCH
91 
92 // width & height for spinner
93 #ifdef TARGET_STAX
94 #define SPINNER_WIDTH 60
95 #define SPINNER_HEIGHT 44
96 #else // TARGET_STAX
97 #define SPINNER_WIDTH 64
98 #define SPINNER_HEIGHT 48
99 #endif // TARGET_STAX
100 
101 // width & height for radio button
102 #ifdef TARGET_STAX
103 #define RADIO_WIDTH 32
104 #define RADIO_HEIGHT 32
105 #else // TARGET_STAX
106 #define RADIO_WIDTH 40
107 #define RADIO_HEIGHT 40
108 #endif // TARGET_STAX
109 
110 // icons for some objects
111 #ifdef TARGET_STAX
112 #define SPACE_ICON C_Space_32px
113 #define BACKSPACE_ICON C_Erase_32px
114 #define SHIFT_ICON C_Maj_32px
115 #define SHIFT_LOCKED_ICON C_Maj_Lock_32px
116 #define VALIDATE_ICON C_Check_32px
117 #define RADIO_OFF_ICON C_radio_inactive_32px
118 #define RADIO_ON_ICON C_radio_active_32px
119 #define PUSH_ICON C_Chevron_32px
120 #define LEFT_ARROW_ICON C_Back_32px
121 #define RIGHT_ARROW_ICON C_Next_32px
122 #define CHEVRON_BACK_ICON C_Chevron_Back_32px
123 #define CHEVRON_NEXT_ICON C_Chevron_Next_32px
124 #define CLOSE_ICON C_Close_32px
125 #define WHEEL_ICON C_Settings_32px
126 #define INFO_I_ICON C_Info_32px
127 #define QRCODE_ICON C_QRCode_32px
128 #define MINI_PUSH_ICON C_Mini_Push_32px
129 #define WARNING_ICON C_Warning_32px
130 #else // TARGET_STAX
131 #define SPACE_ICON C_Space_40px
132 #define BACKSPACE_ICON C_Erase_40px
133 #define SHIFT_ICON C_Maj_40px
134 #define SHIFT_LOCKED_ICON C_Maj_Lock_40px
135 #define VALIDATE_ICON C_Check_40px
136 #define RADIO_OFF_ICON C_radio_inactive_40px
137 #define RADIO_ON_ICON C_radio_active_40px
138 #define PUSH_ICON C_Chevron_40px
139 #define LEFT_ARROW_ICON C_Back_40px
140 #define RIGHT_ARROW_ICON C_Next_40px
141 #define CHEVRON_BACK_ICON C_Chevron_Back_40px
142 #define CHEVRON_NEXT_ICON C_Chevron_Next_40px
143 #define CLOSE_ICON C_Close_40px
144 #define WHEEL_ICON C_Settings_40px
145 #define INFO_I_ICON C_Info_40px
146 #define QRCODE_ICON C_QRCode_40px
147 #define MINI_PUSH_ICON C_Mini_Push_40px
148 #define WARNING_ICON C_Warning_40px
149 #endif // TARGET_STAX
150 
151 // For backward compatibility, to be remove later
152 #define C_warning64px _Pragma("GCC warning \"Deprecated constant!\"") C_Warning_64px
153 #define C_round_warning_64px _Pragma("GCC warning \"Deprecated constant!\"") C_Important_Circle_64px
154 #define C_round_check_64px _Pragma("GCC warning \"Deprecated constant!\"") C_Check_Circle_64px
155 #define C_Message_64px _Pragma("GCC warning \"Deprecated constant!\"") C_Review_64px
156 #define C_leftArrow32px _Pragma("GCC warning \"Deprecated constant!\"") C_Back_32px
157 #define C_Next32px _Pragma("GCC warning \"Deprecated constant!\"") C_Next_32px
158 #define C_round_cross_64px _Pragma("GCC warning \"Deprecated constant!\"") C_Denied_Circle_64px
159 
160 // max number of pages when nbgl_page_indicator_t uses dashes (above, it uses n / nb_pages)
161 #define NB_MAX_PAGES_WITH_DASHES 6
162 
163 /**********************
164  * TYPEDEFS
165  **********************/
166 
167 #define SWIPE_MASK \
168  ((1 << SWIPED_UP) | (1 << SWIPED_DOWN) | (1 << SWIPED_LEFT) | (1 << SWIPED_RIGHT))
169 
174 #define LEFT_BUTTON 0x01
175 #define RIGHT_BUTTON 0x02
176 #define BOTH_BUTTONS 0x03
177 #define RELEASED_MASK 0x80
178 #define CONTINUOUS_MASK \
179  0x40
181 
182 typedef enum {
193 
200 typedef void (*nbgl_buttonCallback_t)(void *obj, nbgl_buttonEvent_t buttonEvent);
201 
206 typedef struct {
208 #ifdef HAVE_HW_TOUCH_SWIPE
209  nbgl_hardwareSwipe_t swipe;
210 #endif // HAVE_HW_TOUCH_SWIPE
211  int16_t
212  x;
215 
221 typedef void (*nbgl_touchCallback_t)(void *obj, nbgl_touchType_t eventType);
222 
228 typedef struct PACKED__ nbgl_obj_s {
231  int16_t
235  struct nbgl_obj_s *parent;
236  struct nbgl_obj_s *alignTo;
245 
252 typedef struct PACKED__ nbgl_container_s {
256  bool forceClean;
257  struct nbgl_obj_s **children;
259 
264 typedef struct PACKED__ nbgl_line_s {
273 
280 typedef nbgl_icon_details_t *(*onImageDrawCallback_t)(uint8_t token);
281 
286 typedef struct PACKED__ nbgl_image_s {
287  nbgl_obj_t obj; // common part
297 
303 typedef struct PACKED__ nbgl_image_file_s {
304  nbgl_obj_t obj; // common part
305  const uint8_t *buffer;
307 
312 typedef struct PACKED__ nbgl_qrcode_s {
313  nbgl_obj_t obj; // common part
318  const char *text;
320 
327 typedef struct PACKED__ nbgl_radio_s {
328  nbgl_obj_t obj; // common part
333 
338 typedef struct PACKED__ nbgl_switch_s {
339  nbgl_obj_t obj; // common part
344 
350  nbgl_obj_t obj; // common part
351  bool withBorder;
357 
362 typedef enum {
366 
380 
387 typedef char *(*onTextDrawCallback_t)(uint8_t token);
388 
395 typedef struct PACKED__ nbgl_button_s {
403  bool localized;
404  const char *text;
410 
415 typedef struct PACKED__ nbgl_text_area_s {
423  bool wrapping;
426  const char *text;
432 
437 typedef struct PACKED__ nbgl_text_entry_s {
441  const char *text;
443 
449 
455 typedef struct PACKED__ nbgl_spinner_s {
460 
466 typedef void (*keyboardCallback_t)(char touchedKey);
467 
472 typedef enum {
473 #ifdef HAVE_SE_TOUCH
476  MODE_SPECIAL
477 #else // HAVE_SE_TOUCH
478  MODE_LOWER_LETTERS,
479  MODE_UPPER_LETTERS,
480  MODE_DIGITS_AND_SPECIALS,
481  MODE_NONE
482 #endif // HAVE_SE_TOUCH
484 
489 typedef enum {
494 
499 typedef struct PACKED__ nbgl_keyboard_s {
503  bool lettersOnly;
504 #ifdef HAVE_SE_TOUCH
507 #else // HAVE_SE_TOUCH
508  bool enableBackspace;
509  bool enableValidate;
510  uint8_t selectedCharIndex;
511 #endif // HAVE_SE_TOUCH
513  uint32_t keyMask;
518 
523 typedef struct PACKED__ nbgl_keypad_s {
525 #ifdef HAVE_SE_TOUCH
529  bool partial;
530  uint8_t digitIndexes[5];
531 #else // HAVE_SE_TOUCH
532  uint8_t selectedKey;
533 #endif // HAVE_SE_TOUCH
536  bool shuffled;
539 
544 enum {
563  CONTROLS_ID, // when multiple controls in the same pages (buttons, switches, radios)
565 };
566 
567 /**********************
568  * GLOBAL PROTOTYPES
569  **********************/
570 
571 void nbgl_refresh(void);
574 bool nbgl_refreshIsNeeded(void);
575 void nbgl_refreshReset(void);
576 
577 void nbgl_objInit(void);
578 void nbgl_objDraw(nbgl_obj_t *obj);
579 void nbgl_objAllowDrawing(bool enable);
581 bool nbgl_objIsUx(nbgl_obj_t *obj);
582 
583 void nbgl_objPoolRelease(uint8_t layer);
588  uint8_t nbObjs,
589  uint8_t layer,
590  nbgl_obj_t **objArray);
595 
596 // for internal use
599 #ifdef HAVE_SE_TOUCH
602 
603 bool nbgl_keyboardGetPosition(nbgl_keyboard_t *kbd, char index, uint16_t *x, uint16_t *y);
604 bool nbgl_keypadGetPosition(nbgl_keypad_t *kbd, char index, uint16_t *x, uint16_t *y);
605 #else // HAVE_SE_TOUCH
606 void nbgl_keyboardCallback(nbgl_obj_t *obj, nbgl_buttonEvent_t buttonEvent);
607 void nbgl_keypadCallback(nbgl_obj_t *obj, nbgl_buttonEvent_t buttonEvent);
608 #endif // HAVE_SE_TOUCH
609 
610 /**********************
611  * MACROS
612  **********************/
613 
614 #ifdef __cplusplus
615 } /* extern "C" */
616 #endif
617 
618 #endif /* NBGL_OBJ_H */
nbgl_font_id_e
Definition: nbgl_fonts.h:140
struct PACKED__ nbgl_line_s nbgl_line_t
struct to represent a vertical or horizontal line
struct PACKED__ nbgl_navigation_bar_s nbgl_page_indicator_t
struct to represent a navigation bar (PAGE_INDICATOR type) There can be up to 5 page indicators,...
struct PACKED__ nbgl_radio_s nbgl_radio_t
struct to represent a radio button (RADIO_BUTTON type)
void(* nbgl_touchCallback_t)(void *obj, nbgl_touchType_t eventType)
prototype of function to be called when a touch event is received by an object
Definition: nbgl_obj.h:221
struct PACKED__ nbgl_text_area_s nbgl_text_area_t
struct to represent a text area (TEXT_AREA type)
uint8_t nbgl_containerPoolGetNbUsed(uint8_t layer)
returns the number of containers currently used in the pool
void nbgl_objDraw(nbgl_obj_t *obj)
This function draws or redraws the given object and its children (recursive version)
Definition: nbgl_obj.c:1522
void nbgl_refresh(void)
This functions refreshes the actual screen on display with what has changed since the last refresh.
Definition: nbgl_obj.c:1561
struct PACKED__ nbgl_progress_bar_s nbgl_progress_bar_t
struct to represent a progress bar (PROGRESS_BAR type)
void nbgl_keyboardTouchCallback(nbgl_obj_t *obj, nbgl_touchType_t eventType)
function to be called when the keyboard object is touched
nbgl_obj_t ** nbgl_containerPoolGet(uint8_t nbObjs, uint8_t layer)
Gets a new container from the pool, with the given number of obj pointers.
struct PACKED__ nbgl_keypad_s nbgl_keypad_t
struct to represent a keypad (KEYPAD type)
void nbgl_refreshReset(void)
This functions resets all changes since the last refresh.
Definition: nbgl_obj.c:1619
struct PACKED__ nbgl_mask_control_s nbgl_mask_control_t
uint8_t * nbgl_objGetRAMBuffer(void)
This function is used to get the all purpose RAM buffer.
Definition: nbgl_obj.c:1661
keyboardCase_t
Letters casing in which to open/set the keyboard.
Definition: nbgl_obj.h:489
@ LOCKED_UPPER_CASE
locked upper case mode
Definition: nbgl_obj.h:492
@ LOWER_CASE
lower case mode
Definition: nbgl_obj.h:490
@ UPPER_CASE
upper case mode for one character
Definition: nbgl_obj.h:491
void nbgl_objAllowDrawing(bool enable)
This functions enables or disables drawing/refresh for all further calls.
Definition: nbgl_obj.c:1651
struct PACKED__ nbgl_text_entry_s nbgl_text_entry_t
struct to represent a text entry area (TEXT_ENTRY type)
void nbgl_keypadTouchCallback(nbgl_obj_t *obj, nbgl_touchType_t eventType)
function to be called when the keypad object is touched
bool nbgl_keyboardGetPosition(nbgl_keyboard_t *kbd, char index, uint16_t *x, uint16_t *y)
This function gets the position (top-left corner) of the key at the given index. (to be used for Test...
struct PACKED__ nbgl_keyboard_s nbgl_keyboard_t
struct to represent a keyboard (KEYBOARD type)
void nbgl_refreshSpecial(nbgl_refresh_mode_t mode)
This functions refreshes the actual screen on display with what has changed since the last refresh,...
Definition: nbgl_obj.c:1571
nbgl_buttonEvent_t
Definition: nbgl_obj.h:182
@ BUTTON_BOTH_TOUCHED
Sent when both buttons are touched.
Definition: nbgl_obj.h:190
@ BUTTON_LEFT_CONTINUOUS_PRESSED
Definition: nbgl_obj.h:185
@ BUTTON_BOTH_PRESSED
Sent when both buttons are released.
Definition: nbgl_obj.h:189
@ BUTTON_RIGHT_CONTINUOUS_PRESSED
Definition: nbgl_obj.h:187
@ BUTTON_LEFT_PRESSED
Sent when Left button is released.
Definition: nbgl_obj.h:183
@ BUTTON_RIGHT_PRESSED
Send when Right button is released.
Definition: nbgl_obj.h:184
@ INVALID_BUTTON_EVENT
Definition: nbgl_obj.h:191
void nbgl_containerPoolRelease(uint8_t layer)
Release the objects pointers from the pool for the given layer.
struct PACKED__ nbgl_image_s nbgl_image_t
struct to represent an image (IMAGE type)
int nbgl_objPoolGetArray(nbgl_obj_type_t type, uint8_t nbObjs, uint8_t layer, nbgl_obj_t **objArray)
Gets nbObjects new graphic object from the pool, with the given type, for the given layer (screen)....
bool nbgl_objIsUx(nbgl_obj_t *obj)
This function returns true if the object belongs to a UxScreen.
Definition: nbgl_obj.c:1671
uint8_t nbgl_objPoolGetId(nbgl_obj_t *obj)
Gets a unique index for the given object, in the pool.
char *(* onTextDrawCallback_t)(uint8_t token)
prototype of function to be called when a TEXT_AREA object is drawned, and no text was provided
Definition: nbgl_obj.h:387
bool nbgl_keypadGetPosition(nbgl_keypad_t *kbd, char index, uint16_t *x, uint16_t *y)
This function gets the position (top-left corner) of the key at the given index. (to be used for Test...
struct PACKED__ nbgl_button_s nbgl_button_t
struct to represent a button (BUTTON type) that can contain a text and/or an icon
void(* nbgl_buttonCallback_t)(void *obj, nbgl_buttonEvent_t buttonEvent)
prototype of function to be called when a button event is received by an object (TODO: change to scre...
Definition: nbgl_obj.h:200
keyboardMode_t
Mode in which to open/set the keyboard.
Definition: nbgl_obj.h:472
@ MODE_SPECIAL
extended special characters mode
Definition: nbgl_obj.h:476
@ MODE_DIGITS
digits and some special characters mode
Definition: nbgl_obj.h:475
@ MODE_LETTERS
letters mode
Definition: nbgl_obj.h:474
void nbgl_objDrawKeyboard(nbgl_keyboard_t *kbd)
This function draws a keyboard object.
void nbgl_refreshSpecialWithPostRefresh(nbgl_refresh_mode_t mode, nbgl_post_refresh_t post_refresh)
Definition: nbgl_obj.c:1587
nbgl_obj_t * nbgl_objPoolGet(nbgl_obj_type_t type, uint8_t layer)
Gets a new graphic object from the pool, with the given type. The type field of the object is set.
uint8_t nbgl_objPoolGetNbUsed(uint8_t layer)
returns the number of objects currently used in the pool
void(* keyboardCallback_t)(char touchedKey)
prototype of function to be called when a valid key is pressed on keyboard Backspace is equal to 0x8 ...
Definition: nbgl_obj.h:466
void nbgl_objDrawKeypad(nbgl_keypad_t *kbd)
This function draws a keypad object.
nbgl_icon_details_t *(* onImageDrawCallback_t)(uint8_t token)
prototype of function to be called when a IMAGE object is drawned, and no buffer was provided
Definition: nbgl_obj.h:280
struct PACKED__ nbgl_container_s nbgl_container_t
struct to represent a container (CONTAINER type)
nbgl_page_indicator_style_t
Style to apply to nbgl_page_indicator_t.
Definition: nbgl_obj.h:362
@ CURRENT_INDICATOR
only current page dash is black
Definition: nbgl_obj.h:364
@ PROGRESSIVE_INDICATOR
all dashes before active page are black
Definition: nbgl_obj.h:363
@ CHOICE_1_ID
Definition: nbgl_obj.h:553
@ TOP_RIGHT_BUTTON_ID
Definition: nbgl_obj.h:549
@ LONG_PRESS_BUTTON_ID
Definition: nbgl_obj.h:561
@ CONTROLS_ID
Definition: nbgl_obj.h:563
@ ENTERED_TEXT_ID
Definition: nbgl_obj.h:557
@ LEFT_BUTTON_ID
Definition: nbgl_obj.h:546
@ VALUE_BUTTON_2_ID
Definition: nbgl_obj.h:559
@ VALUE_BUTTON_3_ID
Definition: nbgl_obj.h:560
@ RIGHT_BUTTON_ID
Definition: nbgl_obj.h:547
@ WHOLE_SCREEN_ID
Definition: nbgl_obj.h:548
@ BOTTOM_BUTTON_ID
Definition: nbgl_obj.h:545
@ SINGLE_BUTTON_ID
Definition: nbgl_obj.h:551
@ BACK_BUTTON_ID
Definition: nbgl_obj.h:550
@ VALUE_BUTTON_1_ID
Definition: nbgl_obj.h:558
@ KEYPAD_ID
Definition: nbgl_obj.h:555
@ NB_CONTROL_IDS
Definition: nbgl_obj.h:564
@ TIP_BOX_ID
Definition: nbgl_obj.h:562
@ KEYBOARD_ID
Definition: nbgl_obj.h:556
@ EXTRA_BUTTON_ID
Definition: nbgl_obj.h:552
@ CHOICE_2_ID
Definition: nbgl_obj.h:554
void nbgl_objPoolRelease(uint8_t layer)
Release the objects from the pool for the given layer.
bool nbgl_refreshIsNeeded(void)
This functions returns true if there is something to refresh.
Definition: nbgl_obj.c:1607
struct PACKED__ nbgl_switch_s nbgl_switch_t
struct to represent a switch (size is fixed) (SWITCH type)
struct PACKED__ nbgl_obj_s nbgl_obj_t
Common structure for all graphical objects.
struct PACKED__ nbgl_spinner_s nbgl_spinner_t
struct to represent a "spinner", represented by the Ledger corners, in gray, with one of the corners ...
void nbgl_objInit(void)
This functions inits all internal of nbgl objects layer.
Definition: nbgl_obj.c:1636
struct PACKED__ nbgl_image_file_s nbgl_image_file_t
struct to represent an image file object (IMAGE_FILE type) The source of the data is an image file wi...
struct PACKED__ nbgl_qrcode_s nbgl_qrcode_t
struct to represent a QR code (QR_CODE type), whose size is fixed
nbgl_obj_t * nbgl_objPoolGetPrevious(nbgl_obj_t *obj, uint8_t layer)
Gets a link to the previous object in the pool, for the given layer. (to be used with care)
common types for Graphical Library
color_t
Definition: nbgl_types.h:101
uint8_t nbgl_transformation_t
Represents the transformation to be applied on the bitmap before rendering This is a bitfield using m...
Definition: nbgl_types.h:348
nbgl_state_t
to represent a boolean state.
Definition: nbgl_types.h:160
nbgl_post_refresh_t
Post refresh modes.
Definition: nbgl_types.h:315
nbgl_radius_t
possible radius for objects
Definition: nbgl_types.h:326
nbgl_touchType_t
The different types of Touchscreen events.
Definition: nbgl_types.h:220
nbgl_qrcode_version_t
possible modes for QR Code
Definition: nbgl_types.h:190
nbgl_direction_t
Directions for layout or lines.
Definition: nbgl_types.h:169
struct PACKED__ nbgl_icon_details_s nbgl_icon_details_t
Represents all information about an icon.
nbgl_aligment_t
All types of alignments.
Definition: nbgl_types.h:140
nbgl_hardwareSwipe_t
Hardware powered detected swipe states.
Definition: nbgl_types.h:208
nbgl_obj_type_t
All types of graphical objects.
Definition: nbgl_types.h:115
nbgl_touchState_t
the 2 possible states of a finger on the Touchscreen
Definition: nbgl_types.h:200
nbgl_style_t
possible styles for text area border
Definition: nbgl_types.h:178
#define PACKED__
Definition: nbgl_types.h:88
struct PACKED__ nbgl_area_s nbgl_area_t
Represents a rectangle area of the screen.
nbgl_refresh_mode_t
different modes of refresh for nbgl_refreshSpecial()
Definition: nbgl_types.h:287
struct to represent a button (BUTTON type) that can contain a text and/or an icon
Definition: nbgl_obj.h:395
const char * text
single line UTF-8 text (NULL terminated)
Definition: nbgl_obj.h:404
color_t foregroundColor
Definition: nbgl_obj.h:399
onTextDrawCallback_t onDrawCallback
Definition: nbgl_obj.h:405
uint8_t token
token to use as param of onDrawCallback
Definition: nbgl_obj.h:407
color_t borderColor
color set to button's border
Definition: nbgl_obj.h:398
color_t innerColor
color set inside of the button
Definition: nbgl_obj.h:397
nbgl_radius_t radius
radius of the corners, must be a multiple of 4.
Definition: nbgl_obj.h:401
nbgl_font_id_e fontId
id of the font to use, if any
Definition: nbgl_obj.h:402
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:396
bool localized
unused, kept for compatibility
Definition: nbgl_obj.h:403
const nbgl_icon_details_t * icon
buffer containing icons bitmap. Set to NULL when no icon
Definition: nbgl_obj.h:408
struct to represent a container (CONTAINER type)
Definition: nbgl_obj.h:252
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:253
struct nbgl_obj_s ** children
children of this object (nbChildren size)
Definition: nbgl_obj.h:257
nbgl_direction_t layout
layout of children inside this object
Definition: nbgl_obj.h:254
bool forceClean
if set to true, a paint will be done with background color
Definition: nbgl_obj.h:256
uint8_t nbChildren
Definition: nbgl_obj.h:255
struct to represent an image file object (IMAGE_FILE type) The source of the data is an image file wi...
Definition: nbgl_obj.h:303
nbgl_obj_t obj
Definition: nbgl_obj.h:304
const uint8_t * buffer
buffer containing image file
Definition: nbgl_obj.h:305
struct to represent an image (IMAGE type)
Definition: nbgl_obj.h:286
nbgl_transformation_t transformation
usually NO_TRANSFORMATION
Definition: nbgl_obj.h:290
onImageDrawCallback_t onDrawCallback
Definition: nbgl_obj.h:293
uint8_t token
token to use as param of onDrawCallback
Definition: nbgl_obj.h:295
const nbgl_icon_details_t * buffer
Definition: nbgl_obj.h:291
color_t foregroundColor
Definition: nbgl_obj.h:288
nbgl_obj_t obj
Definition: nbgl_obj.h:287
struct to represent a keyboard (KEYBOARD type)
Definition: nbgl_obj.h:499
uint32_t keyMask
Definition: nbgl_obj.h:513
color_t textColor
color set to letters.
Definition: nbgl_obj.h:501
keyboardCase_t casing
keyboard casing mode (lower, upper once or upper locked)
Definition: nbgl_obj.h:506
bool lettersOnly
if true, only display letter keys and Backspace
Definition: nbgl_obj.h:503
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:500
keyboardMode_t mode
keyboard mode to start with
Definition: nbgl_obj.h:512
color_t borderColor
color set to key borders
Definition: nbgl_obj.h:502
keyboardCallback_t callback
function called when an active key is pressed
Definition: nbgl_obj.h:516
bool needsRefresh
if true, means that the keyboard has been redrawn and needs a refresh
Definition: nbgl_obj.h:505
struct to represent a keypad (KEYPAD type)
Definition: nbgl_obj.h:523
bool enableBackspace
if true, Backspace key is enabled
Definition: nbgl_obj.h:534
bool enableDigits
if true, Digit keys are enabled
Definition: nbgl_obj.h:528
bool shuffled
if true, Digit keys are shuffled
Definition: nbgl_obj.h:536
bool enableValidate
if true, Validate key is enabled
Definition: nbgl_obj.h:535
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:524
color_t textColor
color set to digits.
Definition: nbgl_obj.h:526
color_t borderColor
color set to key borders
Definition: nbgl_obj.h:527
bool partial
if true, means that only some keys have changed
Definition: nbgl_obj.h:529
keyboardCallback_t callback
function called when an active key is pressed
Definition: nbgl_obj.h:537
struct to represent a vertical or horizontal line
Definition: nbgl_obj.h:264
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:265
nbgl_direction_t direction
direction of the line, e.g VERTICAL or HORIZONTAL
Definition: nbgl_obj.h:266
color_t lineColor
color of the line
Definition: nbgl_obj.h:267
uint8_t thickness
Definition: nbgl_obj.h:268
uint8_t offset
Definition: nbgl_obj.h:270
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:445
bool enableMasking
true: Enable masking of area / false: Disable masking of area
Definition: nbgl_obj.h:446
uint8_t maskIndex
index of mask
Definition: nbgl_obj.h:447
struct to represent a navigation bar (PAGE_INDICATOR type) There can be up to 5 page indicators,...
Definition: nbgl_obj.h:374
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:375
nbgl_page_indicator_style_t style
Style to apply.
Definition: nbgl_obj.h:378
uint8_t activePage
index of active page (from 0 to nbPages-1).
Definition: nbgl_obj.h:377
uint8_t nbPages
number of pages.
Definition: nbgl_obj.h:376
Common structure for all graphical objects.
Definition: nbgl_obj.h:228
uint16_t touchMask
bit mask to tell engine which touch events are handled by this object
Definition: nbgl_obj.h:241
struct nbgl_obj_s * parent
parent of this object
Definition: nbgl_obj.h:235
uint8_t touchId
Definition: nbgl_obj.h:242
nbgl_obj_type_t type
type of the graphical object, must be explicitly set
Definition: nbgl_obj.h:240
int16_t rel_x0
horizontal position of top-left corner relative to parent's top-left corner
Definition: nbgl_obj.h:232
int16_t alignmentMarginY
vertical margin when aligning
Definition: nbgl_obj.h:239
nbgl_area_t area
Definition: nbgl_obj.h:229
int16_t rel_y0
Definition: nbgl_obj.h:233
struct nbgl_obj_s * alignTo
object to align to (parent by default)
Definition: nbgl_obj.h:236
int16_t alignmentMarginX
horizontal margin when aligning
Definition: nbgl_obj.h:238
nbgl_aligment_t alignment
type of alignment
Definition: nbgl_obj.h:237
struct to represent a progress bar (PROGRESS_BAR type)
Definition: nbgl_obj.h:349
nbgl_obj_t obj
Definition: nbgl_obj.h:350
color_t foregroundColor
color of the inner progress bar and border (if applicable)
Definition: nbgl_obj.h:355
bool withBorder
if set to true, a border in black surround the whole object
Definition: nbgl_obj.h:351
bool partialRedraw
set to true to redraw only partially the object (update state).
Definition: nbgl_obj.h:353
uint16_t previousWidth
Definition: nbgl_obj.h:354
uint8_t state
state of the progress, in % (from 0 to 100).
Definition: nbgl_obj.h:352
struct to represent a QR code (QR_CODE type), whose size is fixed
Definition: nbgl_obj.h:312
nbgl_obj_t obj
Definition: nbgl_obj.h:313
nbgl_qrcode_version_t version
Definition: nbgl_obj.h:316
color_t foregroundColor
Definition: nbgl_obj.h:314
const char * text
text single line (NULL terminated)
Definition: nbgl_obj.h:318
struct to represent a radio button (RADIO_BUTTON type)
Definition: nbgl_obj.h:327
color_t activeColor
color set to to inner circle, when active.
Definition: nbgl_obj.h:329
color_t borderColor
color set to border.
Definition: nbgl_obj.h:330
nbgl_state_t state
state of the radio button. Active is when state == ON_STATE
Definition: nbgl_obj.h:331
nbgl_obj_t obj
Definition: nbgl_obj.h:328
struct to represent a "spinner", represented by the Ledger corners, in gray, with one of the corners ...
Definition: nbgl_obj.h:455
uint8_t position
Definition: nbgl_obj.h:457
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:456
struct to represent a switch (size is fixed) (SWITCH type)
Definition: nbgl_obj.h:338
color_t offColor
color set to border and knob, when OFF (knob on the left).
Definition: nbgl_obj.h:341
color_t onColor
color set to border and knob, when ON (knob on the right).
Definition: nbgl_obj.h:340
nbgl_obj_t obj
Definition: nbgl_obj.h:339
nbgl_state_t state
state of the switch.
Definition: nbgl_obj.h:342
struct to represent a text area (TEXT_AREA type)
Definition: nbgl_obj.h:415
bool wrapping
if set to true, break lines on ' ' when possible
Definition: nbgl_obj.h:423
onTextDrawCallback_t onDrawCallback
function called if not NULL to get the text of the text area
Definition: nbgl_obj.h:429
uint16_t len
number of bytes to write (if 0, max number of chars or strlen is used)
Definition: nbgl_obj.h:427
nbgl_style_t style
to define the style of border
Definition: nbgl_obj.h:419
uint8_t nbMaxLines
Definition: nbgl_obj.h:424
color_t textColor
color set to '1' bits in text. '0' are set to backgroundColor color.
Definition: nbgl_obj.h:417
bool autoHideLongLine
Definition: nbgl_obj.h:421
uint8_t token
token to use as param of onDrawCallback
Definition: nbgl_obj.h:430
nbgl_aligment_t textAlignment
alignment of text within the area
Definition: nbgl_obj.h:418
nbgl_font_id_e fontId
id of the font to use
Definition: nbgl_obj.h:420
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:416
const char * text
ASCII text to draw (NULL terminated). Can be NULL.
Definition: nbgl_obj.h:426
struct to represent a text entry area (TEXT_ENTRY type)
Definition: nbgl_obj.h:437
nbgl_font_id_e fontId
id of the font to use
Definition: nbgl_obj.h:439
const char * text
text to display (up to nbChars chars).
Definition: nbgl_obj.h:441
uint8_t nbChars
number of char placeholders to display (8 or 9 chars).
Definition: nbgl_obj.h:440
nbgl_obj_t obj
common part
Definition: nbgl_obj.h:438
The low level Touchscreen event, coming from driver.
Definition: nbgl_obj.h:206
int16_t y
vertical position of the touch (or for a RELEASED the last touched point)
Definition: nbgl_obj.h:213
int16_t x
horizontal position of the touch (or for a RELEASED the last touched point)
Definition: nbgl_obj.h:212
nbgl_touchState_t state
state of the touch event, e.g PRESSED or RELEASED
Definition: nbgl_obj.h:207
signed short int16_t
Definition: usbd_conf.h:50
unsigned short uint16_t
Definition: usbd_conf.h:54
unsigned char uint8_t
Definition: usbd_conf.h:53