fix(ncm): 二维码随容器缩放(模块边长=(容器-32)/模块数,修内容长QR溢出卡片) + 夜间深灰底浅灰码 + slogan改繁体「音樂的力量」(用户定案)

This commit is contained in:
MeowOS committed 2026-08-31 13:07:20 +08:00
1 parent f20e4cddd0
commit 90e28e7b7e
2 files changed
+11 -5

No files matched your search

+11 -5
View File
@@ -39,7 +39,7 @@ static void login_draw(void *ctx)
/* 24px 红点 logo(标题左前) */ /* 24px 红点 logo(标题左前) */
ncm_fill_round(W/2 - tw/2 - 36, 112 + 4, 24, 24, 12, pa->red_lit); ncm_fill_round(W/2 - tw/2 - 36, 112 + 4, 24, 24, 12, pa->red_lit);
meow_ui_text_center(W/2, 160, "扫码登录 · 发现好音乐", 22, pa->on_red_dim); meow_ui_text_center(W/2, 160, "扫码登录 · 音樂的力量", 22, pa->on_red_dim);
/* 弱分隔(hero 与内容衔接) */ /* 弱分隔(hero 与内容衔接) */
meow_ui_fill_rect(0, 264, W, 1, th->outline); meow_ui_fill_rect(0, 264, W, 1, th->outline);
@@ -50,14 +50,20 @@ static void login_draw(void *ctx)
int sz = g_st.qr_size; int sz = g_st.qr_size;
if (sz > 0) { if (sz > 0) {
int qs = sz * 6; /* 模块尺寸随内容缩放(二维码版本随内容长度变化,尺寸不固定——
if (qs > qc - 32) qs = (qc - 32) / sz * sz; * 按容器内边距算模块边长,绝不溢出卡片) */
int m = (qc - 32) / sz;
if (m < 1) m = 1;
int qs = m * sz;
int ox = qx + (qc - qs) / 2, oy = qy + (qc - qs) / 2; int ox = qx + (qc - qs) / 2, oy = qy + (qc - qs) / 2;
meow_ui_fill_rect(ox, oy, qs, qs, 0xFFFFFF); /* 夜间:深灰底 + 浅灰码;白天:白底黑码 */
uint32_t qr_bg = g_dark ? 0x2A2B30 : 0xFFFFFF;
uint32_t qr_fg = g_dark ? 0xC9CAD1 : 0x000000;
meow_ui_fill_rect(ox, oy, qs, qs, qr_bg);
for (int y = 0; y < sz; y++) for (int y = 0; y < sz; y++)
for (int x = 0; x < sz; x++) for (int x = 0; x < sz; x++)
if (g_st.qr_mods[y*sz + x]) if (g_st.qr_mods[y*sz + x])
meow_ui_fill_rect(ox + x*6, oy + y*6, 6, 6, 0x000000); meow_ui_fill_rect(ox + x*m, oy + y*m, m, m, qr_fg);
} else { } else {
meow_ui_text_center(W/2, qy + qc/2 - 10, meow_ui_text_center(W/2, qy + qc/2 - 10,
g_err ? "no network - tap to retry" : "fetching QR key...", 20, th->dim); g_err ? "no network - tap to retry" : "fetching QR key...", 20, th->dim);
Binary file not shown.