#ifndef _TL_TUI_LAYOUT_H_
#define _TL_TUI_LAYOUT_H_

#include <stdint.h>
#include "TZ_Vendor_Tui_common_tl.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum DISPLAY_SUPPORT_TYPE {
    _SUPPORT_NONE, _SUPPORT_SOFTKEY, _SUPPORT_SOFTKEY_PUNCHCUT,
    _SUPPORT_SOFTKEY_PUNCHCUT_800, _SUPPORT_DUAL_LCD_WINNER_MAIN, _SUPPORT_DUAL_LCD_WINNER_SUB,
    _SUPPORT_DUAL_LCD_TOP_MAIN, _SUPPORT_DUAL_LCD_TOP_SUB,
    _SUPPORT_DUAL_LCD_Q2_MAIN, _SUPPORT_DUAL_LCD_Q2_SUB
    } DISPLAY_SUPPORT_TYPE;

typedef struct {
    uint32_t DISPLAY_SUPPORT_TYPE;
    float SCREEN_PIX_PER_DP;
    uint32_t SCREEN_PUNCHCUT_HEIGHT;
    uint32_t SCREEN_WIDTH;
    uint32_t SCREEN_HEIGHT;

    uint32_t BACKUP_MNEMONIC_LIST_COLUMN_COUNT;
    uint32_t BACKUP_MNEMONIC_LIST_TOP_MARGIN;
    uint32_t BACKUP_MNEMONIC_LIST_SIDE_MARGIN;
    uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_WIDTH;
    uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_HEIGHT;
    uint32_t BACKUP_MNEMONIC_LIST_NUMBER_WIDTH;
    uint32_t BACKUP_MNEMONIC_LIST_NUMBER_DISTANCE;
    uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_DISTANCE;
    uint32_t BACKUP_MNEMONIC_LIST_TEXTBOX_LINE_DISTANCE;
    uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_TOP_MARGIN;
    uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_WIDTH;
    uint32_t BACKUP_MNEMONIC_PHRASE_NUMBER_TEXTBOX_HEIGHT;

    uint32_t BACKUP_QUIZ_TEXTINPUT_START_TOP_MARGIN;
    uint32_t BACKUP_QUIZ_TEXTINPUT_LEFT_MARGIN;
    uint32_t BACKUP_QUIZ_TEXTINPUT_WIDTH;
    uint32_t BACKUP_QUIZ_TEXTINPUT_HEIGHT;
    uint32_t BACKUP_QUIZ_TEXTINPUT_LINE_DISTANCE;

    uint32_t BACKUP_QUIZ_BUTTON_START_TOP_MARGIN;
    uint32_t BACKUP_QUIZ_BUTTON_LEFT_MARGIN;
    uint32_t BACKUP_QUIZ_BUTTON_WIDTH;
    uint32_t BACKUP_QUIZ_BUTTON_HEIGHT;
    uint32_t BACKUP_QUIZ_NEXT_DISTANCE;
    uint32_t BACKUP_QUIZ_KEYPAD_START_X;
    uint32_t BACKUP_QUIZ_KEYPAD_START_Y;

    //confirm
    uint32_t CONFIRM_TEXT_SIDE_MARGIN;

    uint32_t CONFIRM_TEXT_ADDRESS_TYPE_TOP_MARGIN;
    uint32_t CONFIRM_TEXT_EXTRA_GUIDE_HEIGHT;
    uint32_t CONFIRM_TEXT_DATA_MEMO_HEIGHT;

    uint32_t CONFIRM_TEXT_ADDRESS_HEIGHT;
    uint32_t CONFIRM_TEXT_2ND_ADDRESS_Y_DISTANCE;
    uint32_t CONFIRM_TEXT_AREA_WIDTH;
    uint32_t CONFIRM_DIVIDER_SIDE_MARGIN;
    uint32_t CONFIRM_DIVIDER_LINE_DISTANCE;
    uint32_t CONFIRM_DIVIDER_LINE_DISTANCE2;
    uint32_t CONFIRM_TEXT_TOKEN_NAME_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_TOKEN_AMOUNT_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_AMOUNT_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_GAS_SIDE_MARGIN;
    uint32_t CONFIRM_TEXT_GAS_PRICE_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_GAS_LIMIT_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_DATA_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_DATA_LENGTH_LINE_DISTANCE;
    uint32_t CONFIRM_TEXT_DATA_LINE_FIXED_DISTANCE;
    uint32_t CONFIRM_TEXT_FEE_LINE_DISTANCE;

    //keypad
    uint32_t CONTROL_KEYPAD_BUTTON_DISTANCE_WIDTH;
    uint32_t CONTROL_KEYPAD_BUTTON_DISTANCE_HEIGHT;
    uint32_t CONTROL_KEYPAD_BUTTON_WIDTH;
    uint32_t CONTROL_KEYPAD_BUTTON_HEIGHT;
    uint32_t CONTROL_KEYPAD_TOP_MARGIN;
    uint32_t CONTROL_KEYPAD_SIDE_MARGIN_LEFT;
    uint32_t CONTROL_KEYPAD_SIDE_MARGIN_RIGHT;
    uint32_t CONTROL_KEYPAD_BACK_SPACE_WIDTH;
    uint32_t CONTROL_KEYPAD_BACK_SPACE_HEIGHT;

    //restore
    uint32_t RESTORE_KEYPAD_START_X;
    uint32_t RESTORE_KEYPAD_START_Y;
    uint32_t RESTORE_MNEMONIC_TEXTBOX_WIDTH;
    uint32_t RESTORE_MNEMONIC_TEXTBOX_HEIGHT;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_START_X;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_START_Y;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_WIDTH;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_HEIGHT;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_CURSOR_MARGIN;
    uint32_t RESTORE_MNEMONIC_TEXTINPUT_LINE_START_Y;
    uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_TOP_MARGIN;
    uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_SIDE_MARGIN;
    uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_WIDTH;
    uint32_t RESTORE_MNEMONIC_LIST_TEXT_AREA_HEIGHT;
    uint32_t RESTORE_MNEMONIC_LIST_TOP_MARGIN;
    uint32_t RESTORE_MNEMONIC_LIST_SIDE_MARGIN;
    uint32_t RESTORE_MNEMONIC_LIST_MAX_COUNT;
    uint32_t RESTORE_MNEMONIC_LIST_COLUMN_COUNT;
    uint32_t RESTORE_MNEMONIC_LIST_LINE_DISTANCE;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_TOP_MARGIN;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_SIDE_MARGIN;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_COLUMN_COUNT;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_LINE_DISTANCE;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_WIDTH;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_MORE_WIDTH;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_HEIGHT;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_MORE_HEIGHT;
    uint32_t RESTORE_MNEMONIC_RECOMMEND_LIST_COUNT;

    //pinpad
    uint32_t PINPAD_SOFTKEY_DP;
    uint32_t PINPAD_SOFTKEY_HEIGHT;
    uint32_t PINPAD_BOTTOM_BAR_HEIGHT;
    uint32_t PINPAD_KEY_WIDTH;
    uint32_t PINPAD_KEY_HEIGHT;
    uint32_t PINPAD_STAR_SIZE;
    uint32_t PINPAD_HEIGHT_DP;

    uint32_t PINPAD_COL1_LEFT_HD;
    uint32_t PINPAD_COL2_LEFT_HD;
    uint32_t PINPAD_COL3_LEFT_HD;

    uint32_t PINPAD_LINE1_TOP_HD;
    uint32_t PINPAD_LINE2_TOP_HD;
    uint32_t PINPAD_LINE3_TOP_HD;
    uint32_t PINPAD_LINE4_TOP_HD;

    uint32_t PINPAD_SOFTKEY_LEFT;
    uint32_t PINPAD_SOFTKEY_BACK_LEFT;
    uint32_t PINPAD_SOFTKEY_BACK_RIGHT;

    uint32_t PINPAD_STATUS_BAR_HEIGHT;
    uint32_t PINPAD_ACTION_BAR_HEIGHT;
    uint32_t PINPAD_ACTION_BAR_TEXT_LEFT_DP;

    uint32_t PINPAD_PIN_BOX_DISTANCE;
    uint32_t PINPAD_PIN_BOX_WIDTH;
    uint32_t PINPAD_PIN_BOX_HEIGHT;
    uint32_t PINPAD_PIN_BOX_SPACE;

    uint32_t PINPAD_PIN_TEXT_TOP;
    uint32_t PINPAD_PIN_TEXT_BOTTOM;

    uint32_t PINPAD_PROMPT_DISTANCE;

    uint32_t PINPAD_SECURE_ICON_WIDTH;
    uint32_t PINPAD_SECURE_ICON_TOP;
    uint32_t PINPAD_SECURE_ICON_TEXT_DISTANCE;
    uint32_t PINPAD_SECURE_MODE_TEXT_TOP;

    uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_SIZE;
    uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_LEFT;
    uint32_t PINPAD_ACTION_BAR_BACK_BUTTON_TOP;

    uint32_t STANDARD_SCREEN_WIDTH_DP;
    uint32_t STANDARD_SCREEN_HEIGHT_DP;
    uint32_t STANDARD_SOFTKEY_HEIGHT_DP;

} __attribute__((__packed__)) layoutParams_t;


#ifdef __cplusplus
}
#endif


#endif //_TL_TUI_LAYOUT_H_
