Scale mode-page widgets to 0902 reference proportions.

Apply measured 240x320 geometry for cards, tabs, rows, and section buttons, and recenter text so KEY/BPM, battery %, and row labels no longer clip.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yuquanjun 2026-09-03 12:43:19 +08:00
parent 89e7401955
commit b139aa7ca7
4 changed files with 81 additions and 71 deletions

View File

@ -68,26 +68,26 @@ const Touch_AreaTypeDef Touch_Areas[] =
{ {
/* Xmin,Xmax,Ymin,Ymax, Flag, Value, ID, action — 与 UI_Label 网格同步 */ /* Xmin,Xmax,Ymin,Ymax, Flag, Value, ID, action — 与 UI_Label 网格同步 */
{ 12, 62, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, -1, 0, GUI_TRANSPOSE, NULL }, { 12, 62, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, -1, 0, GUI_TRANSPOSE, NULL },
{ 63, 113, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_TRANSPOSE, NULL }, { 63, 114, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_TRANSPOSE, NULL },
{ 126, 176, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, -1, 0, GUI_SPEED, NULL }, { 125, 175, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, -1, 0, GUI_SPEED, NULL },
{ 177, 227, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_SPEED, NULL }, { 176, 227, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_SPEED, NULL },
/* 节奏类型 / 本地曲目 TAB */ /* 节奏类型 / 本地曲目 TAB090212-66 / 72-127 */
{ 12, 67, UI0902_MODE_Y + 1, UI0902_MODE_Y + UI0902_TAB_H, 0, 0, GUI_AUTOBAND_SW, NULL }, { 12, 66, UI0902_MODE_Y, UI0902_MODE_Y + UI0902_TAB_H - 1, 0, 0, GUI_AUTOBAND_SW, NULL },
{ 74, 129, UI0902_MODE_Y + 1, UI0902_MODE_Y + UI0902_TAB_H, 0, 1, GUI_AUTOBAND_SW, NULL }, { 72, 127, UI0902_MODE_Y, UI0902_MODE_Y + UI0902_TAB_H - 1, 0, 1, GUI_AUTOBAND_SW, NULL },
{ 13, 120, UI0902_MODE_Y + 25, UI0902_MODE_Y + UI0902_MODE_H - 1, -1, 0, GUI_MODE_PARAM, NULL }, { 13, 120, UI0902_MODE_Y + UI0902_TAB_H + 4, UI0902_MODE_Y + UI0902_MODE_H - 1, -1, 0, GUI_MODE_PARAM, NULL },
{ 121, 227, UI0902_MODE_Y + 25, UI0902_MODE_Y + UI0902_MODE_H - 1, 1, 0, GUI_MODE_PARAM, NULL }, { 121, 227, UI0902_MODE_Y + UI0902_TAB_H + 4, UI0902_MODE_Y + UI0902_MODE_H - 1, 1, 0, GUI_MODE_PARAM, NULL },
{ 13, 120, UI0902_TIMBRE_Y + 20, UI0902_TIMBRE_Y + UI0902_TIMBRE_H - 1, -1, 0, GUI_TIMBRE_SELECT, NULL }, { 13, 120, UI0902_TIMBRE_Y, UI0902_TIMBRE_Y + UI0902_TIMBRE_H - 1, -1, 0, GUI_TIMBRE_SELECT, NULL },
{ 121, 227, UI0902_TIMBRE_Y + 20, UI0902_TIMBRE_Y + UI0902_TIMBRE_H - 1, 1, 0, GUI_TIMBRE_SELECT, NULL }, { 121, 227, UI0902_TIMBRE_Y, UI0902_TIMBRE_Y + UI0902_TIMBRE_H - 1, 1, 0, GUI_TIMBRE_SELECT, NULL },
/* 演奏段落 1~4 */ /* 演奏段落 1~4090212/68/125/182 起,宽 47步进 57 */
{ 12, 58, UI0902_SECTION_Y + 16, UI0902_SECTION_Y + 16 + UI0902_SECTION_BTN_H - 1, 0, 0, GUI_PLAY_SECTION, NULL }, { 12, 58, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 0, GUI_PLAY_SECTION, NULL },
{ 66, 112, UI0902_SECTION_Y + 16, UI0902_SECTION_Y + 16 + UI0902_SECTION_BTN_H - 1, 0, 1, GUI_PLAY_SECTION, NULL }, { 68, 114, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 1, GUI_PLAY_SECTION, NULL },
{ 120, 166, UI0902_SECTION_Y + 16, UI0902_SECTION_Y + 16 + UI0902_SECTION_BTN_H - 1, 0, 2, GUI_PLAY_SECTION, NULL }, { 125, 171, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 2, GUI_PLAY_SECTION, NULL },
{ 174, 220, UI0902_SECTION_Y + 16, UI0902_SECTION_Y + 16 + UI0902_SECTION_BTN_H - 1, 0, 3, GUI_PLAY_SECTION, NULL }, { 182, 228, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 3, GUI_PLAY_SECTION, NULL },
/* 底栏四键:万能 | 普通 | 专业 | 设置 */ /* 底栏四键:万能 | 普通 | 专业 | 设置 */
{ 0, 59, 280, 319, 0, UI0902_NAV_UNIVERSAL, GUI_NAV_BAR, NULL }, { 0, 59, 280, 319, 0, UI0902_NAV_UNIVERSAL, GUI_NAV_BAR, NULL },

View File

@ -7,16 +7,16 @@ static uint8_t Speed[6] = {0xF0, 0x51, 0x03, 0x00, 0x00, 0xF7};
void Draw_Tab_Mode_Menu(const LEBEL_UI *UI, GUI_SWITCH *Group) void Draw_Tab_Mode_Menu(const LEBEL_UI *UI, GUI_SWITCH *Group)
{ {
/* 0819TAB 字号 110902紧凑圆角条选中常亮蓝 */ /* 0819TAB 字号 110902紧凑圆角条选中常亮蓝,文字垂直居中 */
const uint16_t tab_w = UI0902_TAB_W; const uint16_t tab_w = UI0902_TAB_W;
const uint16_t tab_h = UI0902_TAB_H; const uint16_t tab_h = UI0902_TAB_H;
const uint8_t tab_r = UI0902_RADIUS_TAB; const uint8_t tab_r = UI0902_RADIUS_TAB;
const uint8_t tab_font = UI0902_FONT_LABEL; const uint8_t tab_font = UI0902_FONT_LABEL;
const uint16_t start_x = UI0902_MARGIN_X; const uint16_t start_x = UI0902_MARGIN_X;
const uint16_t start_y = UI->y + 1; const uint16_t start_y = UI->y;
const uint16_t gap = 6; const uint16_t gap = UI0902_TAB_GAP;
const uint16_t text_y = start_y + (tab_h - tab_font) / 2; const uint16_t text_y = start_y + (tab_h - tab_font) / 2;
const uint16_t inset = 4; const uint16_t inset = 3;
uint16_t color_sel_bg = COLOR_GRAD_MID; uint16_t color_sel_bg = COLOR_GRAD_MID;
uint16_t color_unsel_bg = UI0902_ROW_BG; uint16_t color_unsel_bg = UI0902_ROW_BG;
uint16_t color_text = UI->Text_fc; uint16_t color_text = UI->Text_fc;

View File

@ -294,16 +294,19 @@ void show_Param(const LEBEL_UI *UI, GUI_SWITCH *Group)
{ {
char Textstr_new[40] = {0}; char Textstr_new[40] = {0};
char NumBuf[8] = {0}; char NumBuf[8] = {0};
uint16_t text_y = UI->y + 28; /* 0902 比例TAB 行高 18 在区块顶,曲目行在其下,正文在行内垂直居中 */
const uint16_t row_y = UI->y + UI0902_TAB_H + 4; /* 曲目行顶 = 130 */
const uint16_t row_h = UI->h - UI0902_TAB_H - 4; /* 31 */
const uint16_t text_y = row_y + (row_h - UI->Text_size) / 2 + 1;
uint8_t idx = Group->Current + 1; uint8_t idx = Group->Current + 1;
uint16_t c_top, c_bot; uint16_t c_top, c_bot;
UI_GetFocusGrad(GUI_MODE_PARAM, &c_top, &c_bot); UI_GetFocusGrad(GUI_MODE_PARAM, &c_top, &c_bot);
LCD_FillRoundRectGradient( LCD_FillRoundRectGradient(
UI->x+25, UI->y+20+5, UI->x+25, row_y,
UI->x + UI->w-40-(UI->x+25), UI->x + UI->w-40-(UI->x+25),
UI->h-20, row_h,
0, 0,
c_top, c_bot c_top, c_bot
); );
@ -476,7 +479,7 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
{ {
uint8_t Textstr[20] = {0}; uint8_t Textstr[20] = {0};
uint16_t c_top, c_bot; uint16_t c_top, c_bot;
uint16_t chev_cy = UI->y + UI->h - 14; /* < > 纵向中心 */ uint16_t chev_cy = UI->y + UI->h - 13; /* < > 纵向中心 */
UI_GetFocusGrad(UI->Id, &c_top, &c_bot); UI_GetFocusGrad(UI->Id, &c_top, &c_bot);
LCD_FillRoundRectGradient( LCD_FillRoundRectGradient(
@ -491,7 +494,7 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
LCD_ShowChinese_AutoAlign_Gradient( LCD_ShowChinese_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y+6, UI->y+5,
UI->p, UI->p,
UI->Tab_Align, UI->Tab_Align,
UI->Tab_fc, UI->Tab_fc,
@ -499,13 +502,13 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
c_bot, c_bot,
UI->Tab_size UI->Tab_size
); );
LCD_DrawChevron_Left(UI->x + 18, chev_cy, 7, 2, WHITE); LCD_DrawChevron_Left(UI->x + 16, chev_cy, 7, 2, WHITE);
LCD_DrawChevron_Right(UI->x + UI->w - 18, chev_cy, 7, 2, WHITE); LCD_DrawChevron_Right(UI->x + UI->w - 16, chev_cy, 7, 2, WHITE);
GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id); GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id);
LCD_ShowString_AutoAlign_Gradient( LCD_ShowString_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 20, UI->y + 18,
Textstr, Textstr,
UI->Text_Align, UI->Text_Align,
UI->Text_fc, UI->Text_fc,
@ -513,10 +516,11 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
c_bot, c_bot,
UI->Text_size UI->Text_size
); );
/* KEY 副标y+18+16+2 = y+3611px 到 y+46 < 卡底 y+55不再被切 */
LCD_ShowString_AutoAlign_Gradient( LCD_ShowString_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 20 + UI->Text_size + 4, UI->y + 18 + UI->Text_size + 2,
(const uint8_t*)"KEY", (const uint8_t*)"KEY",
UI->Text_Align, UI->Text_Align,
UI->Text_fc, UI->Text_fc,
@ -541,7 +545,7 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
LCD_ShowChinese_AutoAlign_Gradient( LCD_ShowChinese_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y+6, UI->y+5,
UI->p, UI->p,
UI->Tab_Align, UI->Tab_Align,
UI->Tab_fc, UI->Tab_fc,
@ -550,18 +554,18 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
UI->Tab_size UI->Tab_size
); );
/* 0903速度 /+ 素材 */ /* 0903速度 /+ 素材 */
LCD_WR_PIC_Trans(UI->x + 6, UI->y + UI->h - 8 - UI0902_BTN_MINUS_H, LCD_WR_PIC_Trans(UI->x + 5, UI->y + UI->h - 6 - UI0902_BTN_MINUS_H,
UI0902_BTN_MINUS_W, UI0902_BTN_MINUS_H, UI0902_BTN_MINUS_W, UI0902_BTN_MINUS_H,
gImage_UI0902_BtnMinus_23x22, BLACK); gImage_UI0902_BtnMinus_23x22, BLACK);
LCD_WR_PIC_Trans(UI->x + UI->w - 6 - UI0902_BTN_PLUS_W, LCD_WR_PIC_Trans(UI->x + UI->w - 5 - UI0902_BTN_PLUS_W,
UI->y + UI->h - 8 - UI0902_BTN_PLUS_H, UI->y + UI->h - 6 - UI0902_BTN_PLUS_H,
UI0902_BTN_PLUS_W, UI0902_BTN_PLUS_H, UI0902_BTN_PLUS_W, UI0902_BTN_PLUS_H,
gImage_UI0902_BtnPlus_23x22, BLACK); gImage_UI0902_BtnPlus_23x22, BLACK);
GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id); GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id);
LCD_ShowString_AutoAlign_Gradient( LCD_ShowString_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 20, UI->y + 18,
Textstr, Textstr,
UI->Text_Align, UI->Text_Align,
UI->Text_fc, UI->Text_fc,
@ -572,7 +576,7 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
LCD_ShowString_AutoAlign_Gradient( LCD_ShowString_AutoAlign_Gradient(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 20 + UI->Text_size + 4, UI->y + 18 + UI->Text_size + 2,
(const uint8_t*)"BPM", (const uint8_t*)"BPM",
UI->Text_Align, UI->Text_Align,
UI->Text_fc, UI->Text_fc,
@ -594,7 +598,7 @@ void label_ModeSelece_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
case 1: paramCurData = &ParamGuiData[EXPRESS_MODE_PARAM]; break; case 1: paramCurData = &ParamGuiData[EXPRESS_MODE_PARAM]; break;
case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break; case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break;
} }
LCD_FillRoundRectGradient(UI->x, UI->y+20+5, UI->w, UI->h-20, UI0902_RADIUS_CARD, c_top, c_bot); LCD_FillRoundRectGradient(UI->x, UI->y+UI0902_TAB_H+4, UI->w, UI->h-UI0902_TAB_H-4, UI0902_RADIUS_CARD, c_top, c_bot);
switch(mGuiData[GUI_TAB_INDEX].Current) { switch(mGuiData[GUI_TAB_INDEX].Current) {
case 0:case 1: case 0:case 1:
Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]); Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]);
@ -602,7 +606,7 @@ void label_ModeSelece_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
case 2: case 2:
str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2"; str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2";
LCD_ShowChinese_AutoAlign( LCD_ShowChinese_AutoAlign(
UI->x, UI->x+UI->w, UI->y+5+5, UI->x, UI->x+UI->w, UI->y+3,
(uint8_t *)str, UI->Tab_Align, UI->Tab_fc, BLACK, 0, UI->Tab_size (uint8_t *)str, UI->Tab_Align, UI->Tab_fc, BLACK, 0, UI->Tab_size
); );
break; break;
@ -621,31 +625,36 @@ void label_ModeSelece_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break; case 2: paramCurData = &ParamGuiData[ALL_MODE_PARAM]; break;
} }
show_Param(&UI_Label[GUI_MODE_PARAM], paramCurData); show_Param(&UI_Label[GUI_MODE_PARAM], paramCurData);
LCD_DrawChevron_Left(UI->x + 15, UI->y + 25 + (UI->h - 25) / 2, 7, 2, WHITE); {
LCD_DrawChevron_Right(UI->x + UI->w - 15, UI->y + 25 + (UI->h - 25) / 2, 7, 2, WHITE); /* 箭头与曲目行垂直中心对齐 */
uint16_t row_cy = UI->y + UI0902_TAB_H + 4 + (UI->h - UI0902_TAB_H - 4) / 2;
LCD_DrawChevron_Left(UI->x + 15, row_cy, 7, 2, WHITE);
LCD_DrawChevron_Right(UI->x + UI->w - 15, row_cy, 7, 2, WHITE);
}
} }
void label_TimbreSelece_ui(const LEBEL_UI *UI, GUI_SWITCH * Group) void label_TimbreSelece_ui(const LEBEL_UI *UI, GUI_SWITCH * Group)
{ {
uint8_t Textstr[20] = {0}; uint8_t Textstr[20] = {0};
char NumBuf[8] = {0}; char NumBuf[8] = {0};
uint16_t text_y = UI->y + 22 + ((UI->h > 40) ? ((UI->h - 22 - UI->Text_size) / 2) : 3); /* 0902 比例:音色行高 30正文在行内垂直居中 */
uint16_t text_y = UI->y + (UI->h - UI->Text_size) / 2 + 1;
uint8_t idx = mGuiData[UI->Id].Current + 1; uint8_t idx = mGuiData[UI->Id].Current + 1;
uint16_t c_top, c_bot; uint16_t c_top, c_bot;
uint16_t chev_cy = UI->y + 22 + (UI->h - 22) / 2; uint16_t chev_cy = UI->y + UI->h / 2;
UI_GetFocusGrad(UI->Id, &c_top, &c_bot); UI_GetFocusGrad(UI->Id, &c_top, &c_bot);
LCD_FillRoundRectGradient( LCD_FillRoundRectGradient(
UI->x, UI->x,
UI->y+20, UI->y,
UI->w, UI->w,
UI->h-20, UI->h,
UI0902_RADIUS_CARD, UI0902_RADIUS_CARD,
c_top, c_bot c_top, c_bot
); );
LCD_ShowChinese_AutoAlign( LCD_ShowChinese_AutoAlign(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 3, UI->y - 15,
UI->p, UI->p,
UI->Tab_Align, UI->Tab_Align,
UI->Tab_fc, UI->Tab_fc,
@ -657,9 +666,9 @@ void label_TimbreSelece_ui(const LEBEL_UI *UI, GUI_SWITCH * Group)
LCD_DrawChevron_Right(UI->x + UI->w - 15, chev_cy, 7, 2, WHITE); LCD_DrawChevron_Right(UI->x + UI->w - 15, chev_cy, 7, 2, WHITE);
LCD_FillRoundRectGradient( LCD_FillRoundRectGradient(
UI->x + 40, UI->x + 40,
UI->y+20, UI->y,
UI->x + UI->w - 40 - UI->x - 40 , UI->x + UI->w - 40 - UI->x - 40 ,
UI->h-20, UI->h,
0, 0,
c_top, c_bot c_top, c_bot
); );
@ -691,13 +700,13 @@ void label_TimbreSelece_ui(const LEBEL_UI *UI, GUI_SWITCH * Group)
} }
void label_PlaySection_ui(const LEBEL_UI *UI,GUI_SWITCH * Group) void label_PlaySection_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
{ {
/* 先画按钮,再画标签,避免色块盖住「演奏段落」 */ /* 0902 比例:标签在按钮上方 15px先画按钮再补标签底避免色块盖住 */
Draw_Tab_Section_Menu(UI,(TAB_SECTION_INDEX)Group->Current); Draw_Tab_Section_Menu(UI,(TAB_SECTION_INDEX)Group->Current);
LCD_FillByColor(UI->x, UI->y, UI->x + UI->w, UI->y + 16, UI0902_BG_COLOR); LCD_FillByColor(UI->x, UI->y - 15, UI->x + UI->w, UI->y - 1, UI0902_BG_COLOR);
LCD_ShowChinese_AutoAlign( LCD_ShowChinese_AutoAlign(
UI->x, UI->x,
UI->x+UI->w, UI->x+UI->w,
UI->y + 2, UI->y - 14,
UI->p, UI->p,
UI->Tab_Align, UI->Tab_Align,
UI->Tab_fc, UI->Tab_fc,
@ -784,9 +793,9 @@ void Draw_Tab_Section_Menu(const LEBEL_UI *UI, TAB_SECTION_INDEX select_tab)
const uint8_t tab_r = UI0902_RADIUS_BTN; const uint8_t tab_r = UI0902_RADIUS_BTN;
const uint8_t pitch = UI0902_SECTION_PITCH; const uint8_t pitch = UI0902_SECTION_PITCH;
const uint16_t start_x = UI0902_MARGIN_X; const uint16_t start_x = UI0902_MARGIN_X;
const uint16_t start_y = UI->y + 16; const uint16_t start_y = UI->y;
/* 0819演奏段落数字与标题同为 13 */ /* 0819演奏段落数字与标题同为 13,按钮内垂直居中(视觉重心 +1 */
const uint16_t text_y = start_y + (tab_h - UI0902_FONT_BODY) / 2; const uint16_t text_y = start_y + (tab_h - UI0902_FONT_BODY) / 2 + 1;
const char *nums[4] = {"1", "2", "3", "4"}; const char *nums[4] = {"1", "2", "3", "4"};
uint8_t i; uint8_t i;

View File

@ -32,32 +32,33 @@ void CallUI_RestoreSelect(void);
#define UI0902_BG_COLOR 0x0042 /* #000813 页面背景 */ #define UI0902_BG_COLOR 0x0042 /* #000813 页面背景 */
#define UI0902_ROW_BG 0x2147 /* #242B3A 列表行背景 */ #define UI0902_ROW_BG 0x2147 /* #242B3A 列表行背景 */
/* 0902 / 0819240×320 模式页网格 /* 0902 / 0819240×320 模式页网格(按 0902 参考图 03/04/05 实测比例换算)
* 6px */ * 26 y48 h55TAB y108 h18 y130 h31 y180 h30 y229 h34 */
#define UI0902_MARGIN_X 12 #define UI0902_MARGIN_X 12
#define UI0902_CONTENT_W 216 #define UI0902_CONTENT_W 216
#define UI0902_CARD_GAP_TOP 6 #define UI0902_CARD_GAP_TOP 22
#define UI0902_CARD_Y (UI_STATUS_BAR_H + UI0902_CARD_GAP_TOP) /* 32 */ #define UI0902_CARD_Y (UI_STATUS_BAR_H + UI0902_CARD_GAP_TOP) /* 48 */
#define UI0902_CARD_H 60 #define UI0902_CARD_H 55
#define UI0902_CARD_W 102 #define UI0902_CARD_W 103
#define UI0902_CARD_GAP 12 #define UI0902_CARD_GAP 10
#define UI0902_MODE_Y (UI0902_CARD_Y + UI0902_CARD_H + 3) /* 95 */ #define UI0902_MODE_Y (UI0902_CARD_Y + UI0902_CARD_H + 5) /* 108 */
#define UI0902_MODE_H 64 #define UI0902_MODE_H 53
#define UI0902_TIMBRE_Y (UI0902_MODE_Y + UI0902_MODE_H + 4) /* 163 */ #define UI0902_TIMBRE_Y (UI0902_MODE_Y + UI0902_MODE_H + 19) /* 180 */
#define UI0902_TIMBRE_H 52 #define UI0902_TIMBRE_H 30
#define UI0902_SECTION_Y (UI0902_TIMBRE_Y + UI0902_TIMBRE_H + 4) /* 219 */ #define UI0902_SECTION_Y (UI0902_TIMBRE_Y + UI0902_TIMBRE_H + 19) /* 229 */
#define UI0902_SECTION_H 52 #define UI0902_SECTION_H 34
#define UI0902_FONT_LABEL 11 /* 0819移调/速度/弦音色选择/TAB 等标题 */ #define UI0902_FONT_LABEL 11 /* 0819移调/速度/弦音色选择/TAB 等标题 */
#define UI0902_FONT_BODY 13 /* 0819曲目/音色正文、演奏段落 */ #define UI0902_FONT_BODY 13 /* 0819曲目/音色正文、演奏段落 */
#define UI0902_FONT_HERO 16 /* 0819移调/速度主数值 */ #define UI0902_FONT_HERO 16 /* 0819移调/速度主数值 */
#define UI0902_FONT_SUB 11 /* KEY / BPM 副标 */ #define UI0902_FONT_SUB 11 /* KEY / BPM 副标 */
#define UI0902_FONT_NAV 9 /* 0819底栏文案位图内已含 */ #define UI0902_FONT_NAV 9 /* 0819底栏文案位图内已含 */
#define UI0902_TAB_H 20 #define UI0902_TAB_H 18
#define UI0902_TAB_W 58 #define UI0902_TAB_W 55
#define UI0902_ROW_H 36 #define UI0902_TAB_GAP 6
#define UI0902_SECTION_BTN_H 36 #define UI0902_ROW_H 31
#define UI0902_SECTION_BTN_W 48 #define UI0902_SECTION_BTN_H 34
#define UI0902_SECTION_PITCH 54 #define UI0902_SECTION_BTN_W 47
#define UI0902_SECTION_PITCH 57
#define UI0902_RADIUS_CARD 10 #define UI0902_RADIUS_CARD 10
#define UI0902_RADIUS_TAB 6 #define UI0902_RADIUS_TAB 6
#define UI0902_RADIUS_BTN 6 #define UI0902_RADIUS_BTN 6
@ -80,7 +81,7 @@ void CallUI_RestoreSelect(void);
#define UI0902_BATTERY_Y 7 #define UI0902_BATTERY_Y 7
#define UI0902_BATTERY_RIGHT_MARGIN 8 #define UI0902_BATTERY_RIGHT_MARGIN 8
#define UI0902_BATTERY_TEXT_GAP 4 #define UI0902_BATTERY_TEXT_GAP 4
#define UI0902_BATTERY_TEXT_SIZE 16 #define UI0902_BATTERY_TEXT_SIZE 12
#define UI0902_NAV_UNIVERSAL 0 /* 底栏:万能模式 */ #define UI0902_NAV_UNIVERSAL 0 /* 底栏:万能模式 */
#define UI0902_NAV_NORMAL 1 /* 底栏:普通模式 */ #define UI0902_NAV_NORMAL 1 /* 底栏:普通模式 */
#define UI0902_NAV_EXPERT 2 /* 底栏:专业模式 */ #define UI0902_NAV_EXPERT 2 /* 底栏:专业模式 */