improve tabs

This commit is contained in:
2025-02-27 14:33:39 +02:00
parent 5faa425e10
commit 04df2f4fae
2 changed files with 18 additions and 10 deletions

Binary file not shown.

View File

@@ -62,35 +62,42 @@ PROCEDURE drawTab (t: tTabs; id, x, y, width, height: INTEGER; s: ARRAY OF CHAR;
CONST CONST
btnCloseSize = 14; btnCloseSize = 14;
VAR VAR
x2, y2, color, closeColor, closeForeColor, textColor: INTEGER; x2, y2, bgColor, closeColor, closeForeColor, textColor: INTEGER;
left, top: INTEGER; left, top: INTEGER;
BEGIN BEGIN
IF id = t.current THEN IF id = t.current THEN
INC(height, curTabHeight - tabHeight); INC(height, curTabHeight - tabHeight + 1);
DEC(y, curTabHeight - tabHeight) DEC(y, curTabHeight - tabHeight + 1)
ELSE
INC(height);
DEC(y)
END; END;
color := K.colors.work;
textColor := K.colors.work_text; textColor := K.colors.work_text;
DEC(x); INC(width); DEC(x); INC(width);
x2 := x + width - 1; x2 := x + width - 1;
y2 := y + height - 1; y2 := y + height - 1;
K.DrawLine(x, y + 1, x2 - 1, y + 1, K.colors.light);
//K.DrawRect(x, y + 2, width, height - 3, color); //seems to be unnecessary redraw //K.DrawRect(x, y + 2, width, height - 3, color); //seems to be unnecessary redraw
K.DrawLine(x2, y + 1, x2, y2, K.colors.line); K.DrawLine(x2, y + 1, x2, y2, K.colors.line);
K.DrawLine(x2 - 1, y2, x, y2, K.colors.line); K.DrawLine(x2 - 1, y2, x, y2, K.colors.line);
IF id = t.current THEN IF id = t.current THEN
bgColor := K.colors.light;
K.DrawRect(x, y + 1, width - 2, height - 3, bgColor);
K.DrawLine(x + 1, y, x2 - 1, y, K.colors.line); K.DrawLine(x + 1, y, x2 - 1, y, K.colors.line);
K.DrawLine(x2 + 1, y + 2, x2 + 1, y2 - 1, K.colors.dark);
K.PutPixel(x, y, K.colors.dark); K.PutPixel(x, y, K.colors.dark);
K.PutPixel(x + 1, y + 1, K.colors.dark); K.PutPixel(x + 1, y + 1, K.colors.dark);
K.PutPixel(x2, y, K.colors.dark); K.PutPixel(x2, y, K.colors.dark);
K.PutPixel(x2 - 1, y + 1, K.colors.dark) K.PutPixel(x2 - 1, y + 1, K.colors.dark)
ELSE ELSE
bgColor := K.colors.work;
K.DrawLine(x, y + 1, x2 - 1, y + 1, K.colors.light);
K.DrawLine(x, y, x2, y, K.colors.line) K.DrawLine(x, y, x2, y, K.colors.line)
END; END;
top := y + 3; top := y + 4;
IF id # t.current THEN IF id # t.current THEN
closeColor := K.colors.button; closeColor := K.colors.button;
closeForeColor := K.colors.button_text closeForeColor := K.colors.button_text
@@ -101,12 +108,13 @@ BEGIN
END; END;
K.DrawLine(x, y2, x, y + 1, K.colors.line); K.DrawLine(x, y2, x, y + 1, K.colors.line);
K.DrawText866bk(x + K.fontWidth + K.fontWidth DIV 2, y + (height - K.fontHeight) DIV 2, textColor, color, s); y := y + 1;
K.DrawText866bk(x + K.fontWidth + K.fontWidth DIV 2, y + (height - K.fontHeight) DIV 2, textColor, bgColor, s);
IF modified THEN IF modified THEN
K.DrawText866bk(x + K.fontWidth DIV 2, y + (height - K.fontHeight) DIV 2, modifColor, color, "*") K.DrawText866bk(x + K.fontWidth DIV 2, y + (height - K.fontHeight) DIV 2, modifColor, bgColor, "*")
END; END;
K.CreateButton(id + ORD({30}) + btnID, x + 1, y + 1, width - 3, height - 3, 0, ""); K.CreateButton(id + ORD({30}) + btnID, x + 1, y, width - 3, height - 3, 0, "");
left := x + width - btnCloseSize - 5; left := x + width - btnCloseSize - 6;
K.CreateButton(id + btnClose, left, top, btnCloseSize, btnCloseSize, closeColor, ""); K.CreateButton(id + btnClose, left, top, btnCloseSize, btnCloseSize, closeColor, "");
K.DrawLine(left + 5, top + 4, left + btnCloseSize - 4, top + btnCloseSize - 5, closeForeColor); K.DrawLine(left + 5, top + 4, left + btnCloseSize - 4, top + btnCloseSize - 5, closeForeColor);
K.DrawLine(left + 4, top + 4, left + btnCloseSize - 4, top + btnCloseSize - 4, closeForeColor); K.DrawLine(left + 4, top + 4, left + btnCloseSize - 4, top + btnCloseSize - 4, closeForeColor);