Align free-mode layout to 0902-04 geometry.
Match card/row/section positions and sizes from the 240x320 reference, restore 16px hero values, and place the 和弦走向 title above the row like timbre. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
ce2cfd9cd1
commit
5290d897a0
|
|
@ -67,11 +67,11 @@ Fader_t faders[4] = {
|
||||||
const Touch_AreaTypeDef Touch_Areas[] =
|
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, 64, 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 },
|
{ 65, 116, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_TRANSPOSE, NULL },
|
||||||
|
|
||||||
{ 125, 175, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, -1, 0, GUI_SPEED, NULL },
|
{ 125, 176, 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 },
|
{ 177, 228, UI0902_CARD_Y, UI0902_CARD_Y + UI0902_CARD_H - 1, 1, 0, GUI_SPEED, NULL },
|
||||||
|
|
||||||
/* 节奏类型 / 本地曲目 TAB(0902:12-66 / 72-127) */
|
/* 节奏类型 / 本地曲目 TAB(0902:12-66 / 72-127) */
|
||||||
{ 12, 66, UI0902_MODE_Y, UI0902_MODE_Y + UI0902_TAB_H - 1, 0, 0, GUI_AUTOBAND_SW, NULL },
|
{ 12, 66, UI0902_MODE_Y, UI0902_MODE_Y + UI0902_TAB_H - 1, 0, 0, GUI_AUTOBAND_SW, NULL },
|
||||||
|
|
@ -83,11 +83,11 @@ const Touch_AreaTypeDef Touch_Areas[] =
|
||||||
{ 13, 120, UI0902_TIMBRE_Y, 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, 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(0902:12/68/125/182 起,宽 47,步进 57) */
|
/* 演奏段落 1~4(0902-04:12/69/125/182,宽 47,步进 57) */
|
||||||
{ 12, 58, UI0902_SECTION_Y, UI0902_SECTION_Y + 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 },
|
||||||
{ 68, 114, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 1, GUI_PLAY_SECTION, NULL },
|
{ 69, 115, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 1, GUI_PLAY_SECTION, NULL },
|
||||||
{ 125, 171, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 2, GUI_PLAY_SECTION, NULL },
|
{ 126, 172, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 2, GUI_PLAY_SECTION, NULL },
|
||||||
{ 182, 228, UI0902_SECTION_Y, UI0902_SECTION_Y + UI0902_SECTION_BTN_H - 1, 0, 3, GUI_PLAY_SECTION, NULL },
|
{ 183, 229, 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 },
|
||||||
|
|
|
||||||
|
|
@ -328,9 +328,7 @@ void show_Param(const LEBEL_UI *UI, GUI_SWITCH *Group)
|
||||||
|
|
||||||
// 拼接序号 1. 2. 3.
|
// 拼接序号 1. 2. 3.
|
||||||
sprintf(NumBuf, "%d.", idx);
|
sprintf(NumBuf, "%d.", idx);
|
||||||
// 计算数字宽度
|
uint16_t num_w = (uint16_t)(strlen(NumBuf) * UI0902_ASCII_W(UI->Text_size));
|
||||||
uint16_t num_w = (strlen(NumBuf)) * (UI->Text_size / 2);
|
|
||||||
// 获取音色中文
|
|
||||||
GET_ParamNum_Str(Group->Current, 0, Textstr_new, Group->Id);
|
GET_ParamNum_Str(Group->Current, 0, Textstr_new, Group->Id);
|
||||||
uint32_t string_start_x = LCD_ShowMixedString(UI->x+10, UI->x + UI->w, text_y, (uint8_t *)Textstr_new , LCD_ALIGN_CENTER, WHITE, BLACK, UI->Text_size, 1);
|
uint32_t string_start_x = LCD_ShowMixedString(UI->x+10, UI->x + UI->w, text_y, (uint8_t *)Textstr_new , LCD_ALIGN_CENTER, WHITE, BLACK, UI->Text_size, 1);
|
||||||
//序号X = 中文起点 - 数字宽度 - 5,间<EFBC8C>?像素
|
//序号X = 中文起点 - 数字宽度 - 5,间<EFBC8C>?像素
|
||||||
|
|
@ -636,11 +634,17 @@ void label_ModeSelece_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
|
||||||
Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]);
|
Draw_Tab_Mode_Menu(UI, &mGuiData[GUI_AUTOBAND_SW]);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
/* 普通模式无 TAB:标题画在曲目行上方(与音色行一致),对齐 0902-04 */
|
||||||
str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2";
|
str = (char*)"\xBA\xCD\xCF\xD2\xD7\xDF\xCF\xF2";
|
||||||
|
{
|
||||||
|
uint16_t row_y = (uint16_t)(UI->y + UI0902_TAB_H + 4);
|
||||||
|
uint16_t lab_y = (row_y > 15) ? (uint16_t)(row_y - 15) : 0;
|
||||||
|
LCD_FillByColor(UI->x, lab_y, UI->x + UI->w, (uint16_t)(row_y - 1), UI0902_BG_COLOR);
|
||||||
LCD_ShowChinese_AutoAlign(
|
LCD_ShowChinese_AutoAlign(
|
||||||
UI->x, UI->x+UI->w, UI->y+3,
|
UI->x, UI->x+UI->w, lab_y,
|
||||||
(uint8_t *)str, UI->Tab_Align, UI->Tab_fc, BLACK, 0, UI->Tab_size
|
(uint8_t *)str, UI->Tab_Align, UI->Tab_fc, UI0902_BG_COLOR, 0, UI->Tab_size
|
||||||
);
|
);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
switch(mGuiData[GUI_TAB_INDEX].Current)
|
switch(mGuiData[GUI_TAB_INDEX].Current)
|
||||||
|
|
@ -824,7 +828,7 @@ void Draw_Tab_Section_Menu(const LEBEL_UI *UI, TAB_SECTION_INDEX select_tab)
|
||||||
const uint16_t tab_h = UI0902_SECTION_BTN_H;
|
const uint16_t tab_h = UI0902_SECTION_BTN_H;
|
||||||
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; /* 0902-04:12/69/126/183 */
|
||||||
const uint16_t start_y = UI->y;
|
const uint16_t start_y = UI->y;
|
||||||
/* 0819:演奏段落数字与标题同为 13,按钮内垂直居中(视觉重心 +1) */
|
/* 0819:演奏段落数字与标题同为 13,按钮内垂直居中(视觉重心 +1) */
|
||||||
const uint16_t text_y = start_y + (tab_h - UI0902_FONT_BODY) / 2 + 1;
|
const uint16_t text_y = start_y + (tab_h - UI0902_FONT_BODY) / 2 + 1;
|
||||||
|
|
|
||||||
|
|
@ -32,25 +32,25 @@ 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 参考图 03/04/05 实测比例换算)
|
/* 0902-04 普通模式实测(240×320):
|
||||||
* 状态栏 26;双卡 y48 h55;TAB y108 h18;曲目行 y130 h31;音色行 y180 h30;段落钮 y229 h34 */
|
* 双卡 y48 h55 w105 gap8;和弦行 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 22
|
#define UI0902_CARD_GAP_TOP 22
|
||||||
#define UI0902_CARD_Y (UI_STATUS_BAR_H + UI0902_CARD_GAP_TOP) /* 48 */
|
#define UI0902_CARD_Y (UI_STATUS_BAR_H + UI0902_CARD_GAP_TOP) /* 48 */
|
||||||
#define UI0902_CARD_H 60 /* 原55;加高给 KEY/BPM 独立行,避免与主值叠在一起 */
|
#define UI0902_CARD_H 55
|
||||||
#define UI0902_CARD_W 103
|
#define UI0902_CARD_W 105
|
||||||
#define UI0902_CARD_GAP 10
|
#define UI0902_CARD_GAP 8
|
||||||
#define UI0902_MODE_Y (UI0902_CARD_Y + UI0902_CARD_H + 5) /* 113 */
|
#define UI0902_MODE_Y (UI0902_CARD_Y + UI0902_CARD_H + 5) /* 108:TAB 顶 */
|
||||||
#define UI0902_MODE_H 53
|
#define UI0902_MODE_H 53 /* TAB18 + 间隙4 + 曲目行31 */
|
||||||
#define UI0902_TIMBRE_Y (UI0902_MODE_Y + UI0902_MODE_H + 19) /* 180 */
|
#define UI0902_TIMBRE_Y 180
|
||||||
#define UI0902_TIMBRE_H 30
|
#define UI0902_TIMBRE_H 30
|
||||||
#define UI0902_SECTION_Y (UI0902_TIMBRE_Y + UI0902_TIMBRE_H + 19) /* 229 */
|
#define UI0902_SECTION_Y 229
|
||||||
#define UI0902_SECTION_H 34
|
#define UI0902_SECTION_H 34
|
||||||
#define UI0902_FONT_LABEL 11 /* 标注:移调/速度 Medium 11 */
|
#define UI0902_FONT_LABEL 11 /* 标注:移调/速度 Medium 11 */
|
||||||
#define UI0902_FONT_BODY 13 /* 曲目/音色正文、演奏段落 */
|
#define UI0902_FONT_BODY 13 /* 曲目/音色正文、演奏段落 */
|
||||||
#define UI0902_FONT_HERO 13 /* 标注:主值 Medium 13 */
|
#define UI0902_FONT_HERO 16 /* 主值 C/88 与稿面大号一致 */
|
||||||
#define UI0902_FONT_SUB 9 /* 稿面 KEY/BPM≈7.5;点阵用 9 */
|
#define UI0902_FONT_SUB 9 /* KEY/BPM */
|
||||||
#define UI0902_FONT_NAV 9
|
#define UI0902_FONT_NAV 9
|
||||||
/* ASCII 字宽(须与 Drv LCD_GetAsciiMetrics 一致) */
|
/* ASCII 字宽(须与 Drv LCD_GetAsciiMetrics 一致) */
|
||||||
#define UI0902_ASCII_W(sz) \
|
#define UI0902_ASCII_W(sz) \
|
||||||
|
|
@ -60,27 +60,27 @@ void CallUI_RestoreSelect(void);
|
||||||
(sz) == 12 ? 7 : \
|
(sz) == 12 ? 7 : \
|
||||||
(sz) == 13 || (sz) == 15 || (sz) == 16 ? 8 : ((sz) / 2))
|
(sz) == 13 || (sz) == 15 || (sz) == 16 ? 8 : ((sz) / 2))
|
||||||
|
|
||||||
/* 移调卡文字标注(稿面):字号/行高/文本框/坐标;速度卡镜像同一套 */
|
/* 移调卡文字(0902-04 实测绝对 Y) */
|
||||||
#define UI0902_CARD_TEXT_CX_L 64 /* 稿面 X:按水平中心理解(三行同 X) */
|
#define UI0902_CARD_TEXT_CX_L (UI0902_MARGIN_X + UI0902_CARD_W / 2) /* 64 */
|
||||||
#define UI0902_CARD_TEXT_CX_R (UI0902_MARGIN_X + UI0902_CARD_W + UI0902_CARD_GAP + UI0902_CARD_W / 2) /* 176 */
|
#define UI0902_CARD_TEXT_CX_R (UI0902_MARGIN_X + UI0902_CARD_W + UI0902_CARD_GAP + UI0902_CARD_W / 2) /* 176 */
|
||||||
|
|
||||||
#define UI0902_CARD_LABEL_SIZE UI0902_FONT_LABEL /* 11 */
|
#define UI0902_CARD_LABEL_SIZE UI0902_FONT_LABEL /* 11 */
|
||||||
#define UI0902_CARD_LABEL_LH 13
|
#define UI0902_CARD_LABEL_LH 13
|
||||||
#define UI0902_CARD_LABEL_W 22
|
#define UI0902_CARD_LABEL_W 22
|
||||||
#define UI0902_CARD_LABEL_H 11
|
#define UI0902_CARD_LABEL_H 11
|
||||||
#define UI0902_CARD_LABEL_Y 60
|
#define UI0902_CARD_LABEL_Y 56
|
||||||
|
|
||||||
#define UI0902_CARD_VALUE_SIZE UI0902_FONT_HERO /* 13 */
|
#define UI0902_CARD_VALUE_SIZE UI0902_FONT_HERO /* 16 */
|
||||||
#define UI0902_CARD_VALUE_LH 9
|
#define UI0902_CARD_VALUE_LH 16
|
||||||
#define UI0902_CARD_VALUE_W 24 /* 3×8:容纳 101 / Db */
|
#define UI0902_CARD_VALUE_W 24
|
||||||
#define UI0902_CARD_VALUE_H 13
|
#define UI0902_CARD_VALUE_H 16
|
||||||
#define UI0902_CARD_VALUE_Y 74 /* 主值顶;底约 86 */
|
#define UI0902_CARD_VALUE_Y 70
|
||||||
|
|
||||||
#define UI0902_CARD_SUB_SIZE UI0902_FONT_SUB /* 9 */
|
#define UI0902_CARD_SUB_SIZE UI0902_FONT_SUB /* 9 */
|
||||||
#define UI0902_CARD_SUB_LH 9
|
#define UI0902_CARD_SUB_LH 9
|
||||||
#define UI0902_CARD_SUB_W 28 /* KEY/BPM:3×7 + 余量 */
|
#define UI0902_CARD_SUB_W 28
|
||||||
#define UI0902_CARD_SUB_H 9
|
#define UI0902_CARD_SUB_H 9
|
||||||
#define UI0902_CARD_SUB_Y 97 /* 与主值底留 ≥10px,避免 KEY 贴住/叠住 C */
|
#define UI0902_CARD_SUB_Y 89
|
||||||
|
|
||||||
/* 兼容旧相对偏移宏(= 绝对Y - CARD_Y) */
|
/* 兼容旧相对偏移宏(= 绝对Y - CARD_Y) */
|
||||||
#define UI0902_CARD_LABEL_DY (UI0902_CARD_LABEL_Y - UI0902_CARD_Y)
|
#define UI0902_CARD_LABEL_DY (UI0902_CARD_LABEL_Y - UI0902_CARD_Y)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue