Skip to content

Commit 43763db

Browse files
Fix vertical alignment issue in Keypad & left content for Stax
1 parent a2f1dc2 commit 43763db

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

lib_nbgl/src/nbgl_layout.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,7 @@ int nbgl_layoutAddLeftContent(nbgl_layout_t *layout, const nbgl_layoutLeftConten
18171817
textArea->obj.area.height = nbgl_getTextHeightInWidth(
18181818
textArea->fontId, textArea->text, textArea->obj.area.width, textArea->wrapping);
18191819

1820-
container->obj.area.height += textArea->obj.area.height;
1820+
container->obj.area.height += textArea->obj.area.height + textArea->obj.alignmentMarginY;
18211821

18221822
container->children[0] = (nbgl_obj_t *) textArea;
18231823

lib_nbgl/src/nbgl_layout_keypad.c

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
enum {
3131
TITLE_INDEX = 0,
3232
INPUT_INDEX,
33-
LINE_INDEX,
3433
NB_CHILDREN
3534
};
3635

3736
#if defined(TARGET_STAX)
38-
#define ENTRY_DIGITS_HEIGHT 50
39-
#define ENTRY_DIGITS_CONTAINER_HEIGHT 44
37+
#define ENTRY_DIGITS_LINE_WIDTH 288
38+
#define ENTRY_DIGITS_HEIGHT 52
39+
#define ENTRY_DIGITS_CONTAINER_HEIGHT 52
4040
#define INTER_ENTRY_DIGITS 10
4141
#define TITLE_MARGIN_Y 8
4242
#define TITLE_MARGIN_Y_SMALL 8
@@ -436,18 +436,23 @@ int nbgl_layoutAddKeypadContent(nbgl_layout_t *layout,
436436
// create digits container, to store "discs"
437437
digitsContainer = (nbgl_container_t *) nbgl_objPoolGet(CONTAINER, layoutInt->layer);
438438
digitsContainer->nbChildren = nbDigits;
439+
#ifdef TARGET_STAX
440+
// for stax, add line as child
441+
digitsContainer->nbChildren++;
442+
#endif // TARGET_STAX
439443
digitsContainer->children
440444
= nbgl_containerPoolGet(digitsContainer->nbChildren, layoutInt->layer);
441445
// <space> pixels between each icon (knowing that the effective round are 18px large and the
442446
// icon 24px)
443-
digitsContainer->obj.area.width = nbDigits * DIGIT_ICON.width + (nbDigits - 1) * space;
444-
digitsContainer->obj.area.height = ENTRY_DIGITS_CONTAINER_HEIGHT;
445-
// align at the bottom of title
446-
digitsContainer->obj.alignTo = container->children[0];
447-
digitsContainer->obj.alignment = BOTTOM_MIDDLE;
448447
#ifdef TARGET_STAX
449-
digitsContainer->obj.alignmentMarginY = 28;
448+
digitsContainer->obj.area.width = ENTRY_DIGITS_LINE_WIDTH;
449+
#else // TARGET_STAX
450+
digitsContainer->obj.area.width = nbDigits * DIGIT_ICON.width + (nbDigits - 1) * space;
450451
#endif // TARGET_STAX
452+
digitsContainer->obj.area.height = ENTRY_DIGITS_CONTAINER_HEIGHT;
453+
// align at the bottom of title
454+
digitsContainer->obj.alignTo = container->children[0];
455+
digitsContainer->obj.alignment = BOTTOM_MIDDLE;
451456
container->children[INPUT_INDEX] = (nbgl_obj_t *) digitsContainer;
452457
container->obj.area.height += digitsContainer->obj.area.height;
453458

@@ -467,6 +472,22 @@ int nbgl_layoutAddKeypadContent(nbgl_layout_t *layout,
467472
image->obj.alignment = MID_LEFT;
468473
}
469474
}
475+
#ifdef TARGET_STAX
476+
nbgl_line_t *line;
477+
// create gray line
478+
line = (nbgl_line_t *) nbgl_objPoolGet(LINE, layoutInt->layer);
479+
line->lineColor = LIGHT_GRAY;
480+
line->obj.alignTo = container->children[INPUT_INDEX];
481+
line->obj.alignment = BOTTOM_MIDDLE;
482+
line->obj.area.width = ENTRY_DIGITS_LINE_WIDTH;
483+
line->obj.area.height = 4;
484+
line->direction = HORIZONTAL;
485+
line->thickness = 2;
486+
line->offset = 2;
487+
digitsContainer->children[nbDigits] = (nbgl_obj_t *) line;
488+
digitsContainer->children[0]->alignmentMarginX
489+
= (line->obj.area.width - (nbDigits * DIGIT_ICON.width + (nbDigits - 1) * space)) / 2;
490+
#endif // TARGET_STAX
470491
}
471492
else {
472493
// create text area
@@ -490,20 +511,6 @@ int nbgl_layoutAddKeypadContent(nbgl_layout_t *layout,
490511

491512
// set this new container as child of the main container
492513
layoutAddObject(layoutInt, (nbgl_obj_t *) container);
493-
#ifdef TARGET_STAX
494-
nbgl_line_t *line;
495-
// create gray line
496-
line = (nbgl_line_t *) nbgl_objPoolGet(LINE, layoutInt->layer);
497-
line->lineColor = LIGHT_GRAY;
498-
line->obj.alignTo = container->children[INPUT_INDEX];
499-
line->obj.alignment = BOTTOM_MIDDLE;
500-
line->obj.area.width = 288;
501-
line->obj.area.height = 4;
502-
line->direction = HORIZONTAL;
503-
line->thickness = 2;
504-
line->offset = 2;
505-
container->children[LINE_INDEX] = (nbgl_obj_t *) line;
506-
#endif // TARGET_STAX
507514

508515
// return height of the area
509516
return container->obj.area.height;

0 commit comments

Comments
 (0)