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:
parent
89e7401955
commit
b139aa7ca7
|
|
@ -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 */
|
/* 节奏类型 / 本地曲目 TAB(0902:12-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~4(0902:12/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 },
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
/* 0819:TAB 字号 11;0902:紧凑圆角条,选中常亮蓝 */
|
/* 0819:TAB 字号 11;0902:紧凑圆角条,选中常亮蓝,文字垂直居中 */
|
||||||
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;
|
||||||
|
|
|
||||||
|
|
@ -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+36,11px 到 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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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 / 0819:240×320 模式页网格
|
/* 0902 / 0819:240×320 模式页网格(按 0902 参考图 03/04/05 实测比例换算)
|
||||||
* 顶:状态栏下 6px 接双卡;底:拉高控件吃掉底栏上方留白,字体更饱满 */
|
* 状态栏 26;双卡 y48 h55;TAB 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 /* 底栏:专业模式 */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue