Nudge transpose/tempo main values up 3px and right 3px.

Only the center KEY/BPM digits move; chevrons, plus/minus, and labels stay put across all three modes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
yuquanjun 2026-09-07 11:58:49 +08:00
parent 50e847e2ee
commit 45686415a7
2 changed files with 20 additions and 10 deletions

View File

@ -489,7 +489,7 @@ void Refresh_Transpose(const LEBEL_UI *UI, GUI_SWITCH * Group)
{
uint16_t c_top, c_bot;
uint16_t cx = (UI->Id == GUI_SPEED) ? UI0902_CARD_TEXT_CX_R : UI0902_CARD_TEXT_CX_L;
uint16_t value_y, sub_y, x1, x2, content_w, clear_w, clear_h;
uint16_t value_y, value_y0, sub_y, x1, x2, content_w, clear_w, clear_h;
char Textstr1[20] = {0,};
const uint8_t *sub_txt = (UI->Id == GUI_SPEED) ? (const uint8_t *)"BPM" : (const uint8_t *)"KEY";
UI_GetFocusGrad(UI->Id, &c_top, &c_bot);
@ -501,23 +501,24 @@ void Refresh_Transpose(const LEBEL_UI *UI, GUI_SWITCH * Group)
clear_w = content_w;
if (clear_w < UI0902_CARD_VALUE_W)
clear_w = UI0902_CARD_VALUE_W;
value_y = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
value_y0 = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
UI0902_CARD_VALUE_LH, UI0902_CARD_VALUE_SIZE);
value_y = (uint16_t)((int16_t)value_y0 + UI0902_CARD_VALUE_OY);
/* 清区高度保证主值完整;不得侵入 KEY/BPM 行 */
clear_h = (uint16_t)(UI0902_CARD_VALUE_H + 1);
if (clear_h < (uint16_t)(UI0902_CARD_VALUE_SIZE + 1))
clear_h = (uint16_t)(UI0902_CARD_VALUE_SIZE + 1);
if (value_y + clear_h > UI0902_CARD_SUB_Y)
clear_h = (uint16_t)(UI0902_CARD_SUB_Y - value_y);
x1 = UI_CardTextBoxX1(cx, clear_w, clear_w);
x2 = UI_CardTextBoxX2(cx, clear_w, clear_w);
x1 = (uint16_t)(UI_CardTextBoxX1(cx, clear_w, clear_w) + UI0902_CARD_VALUE_OX);
x2 = (uint16_t)(UI_CardTextBoxX2(cx, clear_w, clear_w) + UI0902_CARD_VALUE_OX);
LCD_FillRoundRectGradient(
x1, value_y,
(uint16_t)(x2 - x1 + 1),
clear_h,
0, c_top, c_bot);
x1 = UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w);
x2 = UI_CardTextBoxX2(cx, UI0902_CARD_VALUE_W, content_w);
x1 = (uint16_t)(UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w) + UI0902_CARD_VALUE_OX);
x2 = (uint16_t)(UI_CardTextBoxX2(cx, UI0902_CARD_VALUE_W, content_w) + UI0902_CARD_VALUE_OX);
LCD_ShowString_AutoAlign_Gradient(
x1, x2, value_y,
(const uint8_t*)Textstr1,
@ -625,7 +626,7 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
GET_Num_Str(mGuiData[UI->Id].Current, 0, (char*)Textstr, UI->Id);
content_w = (uint16_t)(strlen((char*)Textstr) * UI0902_ASCII_W(UI0902_CARD_VALUE_SIZE));
/* 主值 */
/* 主值基准位:三角仍按此中线;字母单独右移/上移 */
value_y = UI_CardTextDrawY(UI0902_CARD_VALUE_Y, UI0902_CARD_VALUE_H,
UI0902_CARD_VALUE_LH, UI0902_CARD_VALUE_SIZE);
x1 = UI_CardTextBoxX1(cx, UI0902_CARD_VALUE_W, content_w);
@ -635,7 +636,10 @@ void label_Tranzpose_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
UI_DrawTriLeft(UI->x + 5, chev_cy);
UI_DrawTriRight((uint16_t)(UI->x + UI->w - 5 - UI0902_TRI_R_W), chev_cy);
LCD_ShowString_AutoAlign_Gradient(
x1, x2, value_y, Textstr,
(uint16_t)(x1 + UI0902_CARD_VALUE_OX),
(uint16_t)(x2 + UI0902_CARD_VALUE_OX),
(uint16_t)((int16_t)value_y + UI0902_CARD_VALUE_OY),
Textstr,
LCD_ALIGN_CENTER, UI->Text_fc, c_top, c_bot, UI0902_CARD_VALUE_SIZE);
/* KEY独立行先清底再画保证不被主值残影叠住 */
@ -693,7 +697,10 @@ void label_Speed_ui(const LEBEL_UI *UI,GUI_SWITCH * Group)
gImage_UI0902_BtnPlus_23x22, BLACK);
LCD_ShowString_AutoAlign_Gradient(
x1, x2, value_y, Textstr,
(uint16_t)(x1 + UI0902_CARD_VALUE_OX),
(uint16_t)(x2 + UI0902_CARD_VALUE_OX),
(uint16_t)((int16_t)value_y + UI0902_CARD_VALUE_OY),
Textstr,
LCD_ALIGN_CENTER, UI->Text_fc, c_top, c_bot, UI0902_CARD_VALUE_SIZE);
sub_y = UI_CardTextDrawY(UI0902_CARD_SUB_Y, UI0902_CARD_SUB_H,

View File

@ -83,6 +83,9 @@ void CallUI_RestoreSelect(void);
#define UI0902_CARD_VALUE_H 17
/* mode.png主值≈y7185KEY/BPM≈y89加大与「移调/速度」间距、收紧与 KEY/BPM */
#define UI0902_CARD_VALUE_Y 73
/* 仅主值字母/数字:相对基准右移、上移(三角/±/KEY/BPM 不动) */
#define UI0902_CARD_VALUE_OX 3
#define UI0902_CARD_VALUE_OY (-3)
#define UI0902_CARD_SUB_SIZE UI0902_FONT_SUB /* 9 */
#define UI0902_CARD_SUB_LH 9