MODULE Confirm EXPORTS Main;
IMPORT Trestle, VBT, TextVBT, RigidVBT, ButtonVBT, BorderedVBT, HVSplit;
IMPORT PaintOp, Pixmap, Axis;
IMPORT ConfirmVBT;
PROCEDURE Yes (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
BEGIN
Trestle.Delete(main);
END Yes;
PROCEDURE QuitAction (self: ButtonVBT.T; READONLY cd: VBT.MouseRec) =
VAR
msg := "Do you really wish to quit?";
confirm := ConfirmVBT.New(msg, Yes);
BEGIN
Trestle.Install(confirm)
END QuitAction;
CONST
(* sizes for the RigidVBT *)
horz = 30.0;
vert = 10.0; (* size in millimeters *)
(* border size for text and button *)
bsize = 1.5; (* size in millimeters *)
VAR
blue := PaintOp.FromRGB(0.0, 0.0, 1.0);
green := PaintOp.FromRGB(0.0, 1.0, 0.0);
text := RigidVBT.FromHV(TextVBT.New("Confirm demo"), horz, vert);
top := BorderedVBT.New(
text, size := bsize, op := blue, txt := Pixmap.Solid);
button := ButtonVBT.New(TextVBT.New("Quit"), QuitAction);
bottom := BorderedVBT.New(
button, size := bsize, op := green, txt := Pixmap.Gray);
main := HVSplit.Cons(Axis.T.Ver, top, bottom);
BEGIN
Trestle.Install(main);
Trestle.AwaitDelete(main)
END Confirm.