全屏滑条统一路径+对比色(112/115) + 字体索引+查列表+丢失降级(113) + 文档刷新(114) + svcd CLI文档+mips-repo拆bins/mpk(116)
This commit is contained in:
1 parent
b75ecce5de
commit
19a001f007
22 files changed
+666
-129
No files matched your search
+15
-12
@@ -361,19 +361,22 @@ void meow_ui_swipe_hint(int x)
|
||||
* 有状态栏(非全屏)→ y = 状态栏高度;收合(collapsed)→ y=提示线下缘
|
||||
* (MUI_SBAR_COLLAPSE_H,与提示线不重叠);无状态栏(全屏/隐藏)→ y=0。 */
|
||||
int hy = meow_ui_statusbar_height();
|
||||
/* x<0 视为清空(条长 0);条长上限=屏宽。 */
|
||||
if (x < 0) x = 0;
|
||||
if (x > g_xres) x = g_xres;
|
||||
/* 只按「新旧长度的差」增量绘制,避免整段重涂背景色:
|
||||
* - 伸长:仅补画新增段(旧段已是 accent,不再用 bg 重涂——否则 app 底色≠theme bg
|
||||
* 时会在旧段留下 bg 色块,就是残留残条);
|
||||
* - 回缩/清空:仅把「超出新长度」的尾部填回背景色(实时回缩)。 */
|
||||
if (x > g_hint_last) {
|
||||
meow_ui_fill_rect(g_hint_last, hy, x - g_hint_last, MUI_HINT_H, th->accent);
|
||||
} else if (x < g_hint_last) {
|
||||
meow_ui_fill_rect(x, hy, g_hint_last - x, MUI_HINT_H, th->bg);
|
||||
/* 单一实现(与非全屏 Hello 完全一致,全屏仅 hy 不同):grow 画 0..x、shrunk 先清旧长
|
||||
* 再画 0..x、x<=0 清空。x<0 视为清空;条长上限=屏宽。 */
|
||||
if (x > 0) {
|
||||
if (x > g_xres) x = g_xres;
|
||||
/* 往回滑(新长度 < 上次)时,先清掉「上次画到旧长度、但本次超出的部分」,
|
||||
* 否则条只增不减(右滑变长、左滑回缩实时可见)。 */
|
||||
if (g_hint_last > x) meow_ui_fill_rect(0, hy, g_hint_last, MUI_HINT_H, th->bg);
|
||||
/* 条色取主题前景(fg):fg 定义为与背景对比,能同时覆盖「非全屏(底=主题bg)」与
|
||||
* 「全屏 Hello 类(底=主题accent)」两种情况——accent 在 Hello 全屏 accent 底上同色不可见。 */
|
||||
meow_ui_fill_rect(0, hy, x, MUI_HINT_H, th->fg);
|
||||
g_hint_last = x;
|
||||
} else if (g_hint_last > 0) {
|
||||
/* 手指回原点/抬手未达标/抬手达标:清掉此前画的条(填回背景色) */
|
||||
meow_ui_fill_rect(0, hy, g_hint_last, MUI_HINT_H, th->bg);
|
||||
g_hint_last = 0;
|
||||
}
|
||||
g_hint_last = x;
|
||||
/* 不发 flush:由调用方 meow_ui_flush_region(0,0,宽,6) 只刷顶部条 */
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user