Embedded SDK
Embedded SDK
Loading...
Searching...
No Matches
nbgl_content.h
Go to the documentation of this file.
1
7#ifndef NBGL_CONTENT_H
8#define NBGL_CONTENT_H
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14/*********************
15 * INCLUDES
16 *********************/
17#include <stdint.h>
18#include <stdbool.h>
19
20#include "os_io_seph_cmd.h"
21
22#include "nbgl_types.h"
23#include "nbgl_obj.h"
24
25/**********************
26 * TYPEDEFS
27 **********************/
28
33typedef enum {
34#ifdef HAVE_SE_TOUCH
45#else // HAVE_SE_TOUCH
46 REGULAR_INFO = 0,
47 BOLD_TEXT1_INFO,
48 BUTTON_INFO
49#endif // HAVE_SE_TOUCH
51
57typedef struct {
58 const char *text1;
59 const char *text2;
60#ifdef HAVE_SE_TOUCH
61 const char *text3;
62#endif // HAVE_SE_TOUCH
64 bool onTop;
66#ifdef HAVE_SE_TOUCH
67 int16_t offsetY;
68#else // HAVE_SE_TOUCH
69 bool bottomIcon;
80#endif // HAVE_SE_TOUCH
82
91
116
120typedef struct {
121 const char *text;
123 const char *longPressText;
126 tune_index_e
129
133typedef struct {
134 const char *text;
136 const char *buttonText;
137 uint8_t buttonToken;
139 tune_index_e
141#ifndef HAVE_SE_TOUCH
142 bool bottomIcon;
147#endif // HAVE_SE_TOUCH
149
162
167typedef struct {
168 const char *fullValue;
169 const char *aliasSubName;
170 const char *explanation;
172 const char *title;
174 const char
176 union {
178 const struct nbgl_contentTagValueList_s
180 };
183
187typedef struct {
188 const char *item;
189 const char *value;
190 union {
197 };
198 uint8_t forcePageStart : 1;
200 uint8_t centeredInfo : 1;
201 uint8_t aliasValue : 1;
206
212typedef nbgl_contentTagValue_t *(*nbgl_contentTagValueCallback_t)(uint8_t pairIndex);
213
221typedef void (*nbgl_contentActionCallback_t)(int token, uint8_t index, int page);
222
243
256
277
283typedef struct {
284 const char *text;
285 const char
288 uint8_t token;
289 tune_index_e tuneId;
291
299
315
321typedef struct {
322 union {
323 const char *const *names;
324#if defined(HAVE_LANGUAGE_PACK)
325 UX_LOC_STRINGS_INDEX *nameIds;
326#endif // HAVE_LANGUAGE_PACK
327 };
329 uint8_t nbChoices;
330 uint8_t initChoice;
331 uint8_t token;
332 tune_index_e
334#ifndef HAVE_SE_TOUCH
335 bool vertical;
339 *selectionIcon;
343
349 const char *title;
350#endif // HAVE_SE_TOUCH
351
353
357typedef struct {
358 const char *const *barTexts;
359 const uint8_t *tokens;
360 uint8_t nbBars;
361 tune_index_e tuneId;
362#ifndef HAVE_SE_TOUCH
363 bool vertical;
366
370 const char *title;
371#endif // HAVE_SE_TOUCH
373
378typedef struct {
379 const char *text;
381 uint8_t token;
382 tune_index_e tuneId;
384
392
410
427
437
438#ifdef __cplusplus
439} /* extern "C" */
440#endif
441
442#endif /* NBGL_CONTENT_H */
struct nbgl_pageSwitchesList_s nbgl_contentSwitchesList_t
This structure contains data to build a SWITCHES_LIST content.
nbgl_contentTagValue_t *(* nbgl_contentTagValueCallback_t)(uint8_t pairIndex)
prototype of tag/value pair retrieval callback
nbgl_contentIllustrationType_t
possible types of illustration, for example in nbgl_contentCenter_t
@ ANIM_ILLUSTRATION
animation
@ ICON_ILLUSTRATION
simple icon
nbgl_contentCenteredInfoStyle_t
possible styles for Centered Info Area
@ LARGE_CASE_BOLD_INFO
@ NORMAL_INFO
@ PLUGIN_INFO
@ LARGE_CASE_GRAY_INFO
@ LARGE_CASE_INFO
text in BLACK and large case (INTER 32px), subText in black in Inter24px
struct nbgl_contentTagValueList_s nbgl_contentTagValueList_t
This structure contains a list of [tag,value] pairs.
nbgl_contentType_t
The different types of predefined contents.
@ INFO_LONG_PRESS
a centered info and a long press button
@ EXTENDED_CENTER
a centered content and a possible tip-box
@ CHOICES_LIST
list of choices through radio buttons
@ CENTERED_INFO
a centered info
@ SWITCHES_LIST
list of switches with descriptions
@ TAG_VALUE_DETAILS
a tag/value pair and a small button to get details.
@ INFOS_LIST
list of infos with titles
@ TAG_VALUE_CONFIRM
tag/value pairs and a black button/footer to confirm/cancel.
@ TAG_VALUE_LIST
list of tag/value pairs
@ BARS_LIST
list of touchable bars (with > on the right to go to sub-pages)
@ INFO_BUTTON
a centered info and a simple black button
nbgl_contentValueAliasType_t
possible types of value alias
@ INFO_LIST_ALIAS
alias is list of infos
@ TAG_VALUE_LIST_ALIAS
@ ENS_ALIAS
alias comes from ENS
@ ADDRESS_BOOK_ALIAS
alias comes from Address Book
@ QR_CODE_ALIAS
alias is an address to be displayed as a QR Code
@ NO_ALIAS_TYPE
void(* nbgl_contentActionCallback_t)(int token, uint8_t index, int page)
prototype of function to be called when an action on a content object occurs
struct nbgl_contentInfoList_s nbgl_contentInfoList_t
This structure contains data to build a INFOS_LIST content.
API to draw all basic graphic objects.
common types for Graphical Library
nbgl_state_t
to represent a boolean state.
Definition nbgl_types.h:199
struct PACKED__ nbgl_icon_details_s nbgl_icon_details_t
Represents all information about an icon.
Represents all information about an animation (succession of icons)
Definition nbgl_types.h:416
This structure contains data to build a BARS_LIST content.
const uint8_t * tokens
array of tokens, one for each bar (nbBars items)
const char *const * barTexts
array of texts for each bar (nbBars items, in black/bold)
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when a bar is touched
uint8_t nbBars
number of elements in barTexts and tokens array
This structure contains info to build a centered (vertically and horizontally) area,...
uint16_t iconHug
vertical margin to apply on top and bottom of the icon
const nbgl_icon_details_t * icon
the icon (can be null)
const char * title
title in black large (can be null)
const char * description
description in black small regular case (can be null)
const char * subText
sub-text in dark gray regular small case
uint16_t animOffsetY
vertical offset of animation in icon if integrated (but usually 0)
bool padding
if true, apply a padding of 40px at the bottom
const nbgl_animation_t * animation
the animation (can be null), used if illustrType is ANIM_ILLUSTRATION
const char * smallTitle
sub-title in black small bold case (can be null)
uint16_t animOffsetX
horizontal offset of animation in icon if integrated (but usually 0)
nbgl_contentIllustrationType_t illustrType
This structure contains info to build a centered (vertically and horizontally) area,...
const char * text2
second text (can be null)
const char * text1
first text (can be null)
bool onTop
if set to true, align only horizontally
nbgl_contentCenteredInfoStyle_t style
style to apply to this info
int16_t offsetY
vertical shift to apply to this info (if >0, shift to bottom)
const char * text3
third text (can be null)
const nbgl_icon_details_t * icon
a buffer containing the 1BPP icon
This structure contains data to build a EXTENDED_CENTER content.
nbgl_contentTipBox_t tipBox
if text field is NULL, no tip-box
nbgl_contentCenter_t contentCenter
centered content (icon + text(s))
This structure contains data to build a centered info + simple black button content.
const char * buttonText
text of the long press button
const nbgl_icon_details_t * icon
a buffer containing the 1BPP icon
const char * text
centered text in large case
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when button is touched
This structure contains data to build a INFOS_LIST content.
const char *const * infoContents
array of contents of infos (in black)
const char *const * infoTypes
array of types of infos (in black/bold)
const nbgl_contentValueExt_t * infoExtensions
uint8_t nbInfos
number of elements in infoTypes and infoContents array
This structure contains data to build a centered info + long press button content.
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when button is touched
const char * longPressText
text of the long press button
const nbgl_icon_details_t * icon
a buffer containing the 1BPP icon
const char * text
centered text in large case
This structure contains a list of names to build a list of radio buttons (on the right part of screen...
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when selecting a radio button)
uint8_t token
the token that will be used as argument of the callback
bool localized
if set to true, use nameIds and not names
uint8_t initChoice
index of the current choice
const char *const * names
array of strings giving the choices (nbChoices)
uint8_t nbChoices
number of choices
This structure contains info to build a switch (on the right) with a description (on the left),...
const char * text
main text for the switch
uint8_t token
the token that will be used as argument of the callback (unused on Nano)
nbgl_state_t initState
initial state of the switch
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played
const char * subText
description under main text (NULL terminated, single line, may be null)
This structure contains [item,value] pair(s) and info about a potential "details" button,...
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when details button is touched
const char * confirmationText
text of the confirmation button, if NULL "It matches" is used
uint8_t confirmationToken
the token used as argument of the onActionCallback
const char * cancelText
the text used for cancel action, if NULL "It doesn't matches" is used
nbgl_contentTagValueList_t tagValueList
list of tag/value pairs
const char * detailsButtonText
this text is used for "details" button (if NULL, no button)
const nbgl_icon_details_t * detailsButtonIcon
icon to use in details button
This structure contains a [item,value] pair and info about "details" button.
const nbgl_icon_details_t * detailsButtonIcon
icon to use in details button
const char * detailsButtonText
this text is used for "details" button
nbgl_contentTagValueList_t tagValueList
list of tag/value pairs
tune_index_e tuneId
if not NBGL_NO_TUNE, a tune will be played when details button is touched
This structure contains a list of [tag,value] pairs.
const nbgl_contentTagValue_t * pairs
array of [tag,value] pairs (nbPairs items). If NULL, callback is used instead
nbgl_contentTagValueCallback_t callback
function to call to retrieve a given pair
uint8_t nbMaxLinesForValue
if > 0, set the max number of lines for value field.
bool hideEndOfLastLine
if set to true, replace 3 last chars of last line by "..."
bool wrapping
if set to true, value text will be wrapped on ' ' to avoid cutting words
uint8_t startIndex
index of the first pair to get with callback
nbgl_contentActionCallback_t actionCallback
called when a valueIcon is touched on a given pair
This structure contains a [tag,value] pair and possible extensions.
const nbgl_contentValueExt_t * extension
if not NULL, gives additional info on value field
const nbgl_icon_details_t * valueIcon
const char * value
string giving the value name
const char * item
string giving the tag name
uint8_t centeredInfo
if set to 1, the tag will be displayed as a centered info
This structure contains data to build a tip-box, on top of a footer, on bottom of a content center.
const char * text
text of the tip-box
const nbgl_icon_details_t * icon
icon of the tip-box
uint8_t token
token used when tip-box is tapped
tune_index_e tuneId
tune played when tip-box is tapped
This structure contains additions to a tag/value pair, to be able to build a screen to display these ...
const char * fullValue
full string of the value when used as an alias
nbgl_contentValueAliasType_t aliasType
type of alias
const struct nbgl_contentTagValueList_s * tagValuelist
if aliasType is TAG_VALUE_LIST_ALIAS
const char * backText
used as title of the popping page, if not NULL, otherwise "item" is used
const char * aliasSubName
string displayed under alias and in details view
const struct nbgl_contentInfoList_s * infolist
if aliasType is INFO_LIST_ALIAS
This structure contains data to build a content.
nbgl_content_u content
nbgl_contentActionCallback_t contentActionCallback
callback to be called when an action on an object occurs
nbgl_contentType_t type
type of page content in the content union
This structure contains data to build a SWITCHES_LIST content.
uint8_t nbSwitches
number of elements in switches and tokens array
const nbgl_contentSwitch_t * switches
array of switches (nbSwitches items)
Union of the different type of contents.
nbgl_contentInfoList_t infosList
INFOS_LIST type
nbgl_contentInfoLongPress_t infoLongPress
INFO_LONG_PRESS type
nbgl_contentTagValueDetails_t tagValueDetails
TAG_VALUE_DETAILS type
nbgl_contentTagValueConfirm_t tagValueConfirm
TAG_VALUE_CONFIRM type
nbgl_contentTagValueList_t tagValueList
TAG_VALUE_LIST type
nbgl_contentCenteredInfo_t centeredInfo
CENTERED_INFO type
nbgl_contentBarsList_t barsList
BARS_LIST type
nbgl_contentExtendedCenter_t extendedCenter
EXTENDED_CENTER type
nbgl_contentSwitchesList_t switchesList
SWITCHES_LIST type
nbgl_contentInfoButton_t infoButton
INFO_BUTTON type
nbgl_contentRadioChoice_t choicesList
CHOICES_LIST type
BOLOS_UX_LOC_STRINGS UX_LOC_STRINGS_INDEX