feat(window): WIN7 关闭按钮红底改为圆形

WIN7 样式的关闭按钮仍保留 28×20 的命中区,但红色背景改为
区域内居中的 20×20 圆,圆心与 X 图标中心重合;
hover / 按下时的颜色变化规则不变。
This commit is contained in:
TermiNexus committed 2026-10-27 14:40:48 +08:00
1 parent b94de46ce5
commit ab18afd26e
1 file changed
+11 -2
+11 -2
View File
@@ -1086,11 +1086,20 @@ class DeskServer:
if pressed != 0: base_col = self.rgb(uint32(140), uint32(25), uint32(25))
self.row_fill(bx, yy, bw, base_col)
if active != 0: x_col = self.rgb(uint32(255), uint32(255), uint32(255))
elif style == STYLE_WIN7 or style == STYLE_WINXP:
elif style == STYLE_WIN7:
base_col2: uint32 = self.rgb(uint32(200), uint32(50), uint32(50))
if hovered != 0: base_col2 = self.rgb(uint32(220), uint32(60), uint32(60))
if pressed != 0: base_col2 = self.rgb(uint32(140), uint32(25), uint32(25))
self._close_fill_row(s, bx, by, bw, bh, yy, base_col2, 0)
# WIN7 特判:红底画成圆(不是圆角矩形)。在 bw×bh 的命中区内
# 居中一个 bh×bh 的圆,圆心与 X 图标中心重合。
circle_x: int = bx + (bw - bh) / 2
self._close_fill_row(s, circle_x, by, bh, bh, yy, base_col2, bh / 2)
x_col = self.rgb(uint32(255), uint32(255), uint32(255))
elif style == STYLE_WINXP:
base_col3: uint32 = self.rgb(uint32(200), uint32(50), uint32(50))
if hovered != 0: base_col3 = self.rgb(uint32(220), uint32(60), uint32(60))
if pressed != 0: base_col3 = self.rgb(uint32(140), uint32(25), uint32(25))
self._close_fill_row(s, bx, by, bw, bh, yy, base_col3, 0)
x_col = self.rgb(uint32(255), uint32(255), uint32(255))
else:
x_col = self.rgb(uint32(150), uint32(150), uint32(150))