|
@@ -6,26 +6,52 @@ TYPE
|
|
|
ButtonDesc* = RECORD(Gui.WidgetDesc)
|
|
|
END;
|
|
|
|
|
|
-PROCEDURE DrawButton*(W: Gui.Widget; x, y: INTEGER);
|
|
|
+PROCEDURE DrawNormalButton*(W: Gui.Widget; x, y: INTEGER);
|
|
|
VAR c: G.Color;
|
|
|
- f: G.Font;
|
|
|
- fw, fh: INTEGER;
|
|
|
BEGIN
|
|
|
- G.MakeCol(c, 210, 205, 200);
|
|
|
+ G.MakeCol(c, 212, 208, 200);
|
|
|
G.FillRect(x, y, x + W.w - 1, y + W.h - 1, c);
|
|
|
G.MakeCol(c, 255, 255, 255);
|
|
|
G.Rect(x, y, x + W.w - 1, y + W.h - 1, c);
|
|
|
- G.MakeCol(c, 0, 0, 0);
|
|
|
+ G.MakeCol(c, 64, 64, 64);
|
|
|
G.HLine(x, y + W.h - 1, x + W.w - 1, c);
|
|
|
G.VLine(x + W.w - 1, y, y + W.h - 1, c);
|
|
|
- G.MakeCol(c, 80, 80, 80);
|
|
|
+ G.MakeCol(c, 128, 128, 128);
|
|
|
G.HLine(x + 1, y + W.h - 2, x + W.w - 2, c);
|
|
|
- G.VLine(x + W.w - 2, y + 1, y + W.h - 2, c);
|
|
|
+ G.VLine(x + W.w - 2, y + 1, y + W.h - 2, c)
|
|
|
+END DrawNormalButton;
|
|
|
+
|
|
|
+PROCEDURE DrawDownButton*(W: Gui.Widget; x, y: INTEGER);
|
|
|
+VAR c: G.Color;
|
|
|
+BEGIN
|
|
|
+ G.MakeCol(c, 212, 208, 200);
|
|
|
+ G.FillRect(x, y, x + W.w - 1, y + W.h - 1, c);
|
|
|
+ G.MakeCol(c, 64, 64, 64);
|
|
|
+ G.Rect(x, y, x + W.w - 1, y + W.h - 1, c);
|
|
|
+ G.MakeCol(c, 255, 255, 255);
|
|
|
+ G.HLine(x + 1, y + W.h - 1, x + W.w - 1, c);
|
|
|
+ G.VLine(x + W.w - 1, y + 1, y + W.h - 1, c);
|
|
|
+ G.MakeCol(c, 128, 128, 128);
|
|
|
+ G.HLine(x + 1, y + 1, x + W.w - 2, c);
|
|
|
+ G.VLine(x + 1, y + 1, y + W.h - 2, c)
|
|
|
+END DrawDownButton;
|
|
|
+
|
|
|
+PROCEDURE DrawButton*(W: Gui.Widget; x, y: INTEGER);
|
|
|
+VAR c: G.Color;
|
|
|
+ f: G.Font;
|
|
|
+ fw, fh: INTEGER;
|
|
|
+BEGIN
|
|
|
+ IF Gui.down IN W.state THEN DrawDownButton(W, x, y)
|
|
|
+ ELSE DrawNormalButton(W, x, y)
|
|
|
+ END;
|
|
|
f := Gui.GetFont(W);
|
|
|
G.GetMonoFontSize(f, fw, fh);
|
|
|
G.MakeCol(c, 0, 0, 0);
|
|
|
- G.DrawString(W.text.s(*!FIXME*), x + 4,
|
|
|
- y + (W.h - fh) DIV 2, f, c)
|
|
|
+
|
|
|
+ INC(x, 4); INC(y, (W.h - fh) DIV 2);
|
|
|
+ IF Gui.down IN W.state THEN INC(x); INC(y) END;
|
|
|
+
|
|
|
+ G.DrawString(W.text.s(*!FIXME*), x, y, f, c)
|
|
|
END DrawButton;
|
|
|
|
|
|
PROCEDURE InitButton*(b: Button; w, h: INTEGER; text: ARRAY OF CHAR);
|