home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 1: Collection A
/
17Bit_Collection_A.iso
/
files
/
1065.dms
/
1065.adf
/
Cross
/
txt
/
CPCGads.mod
< prev
next >
Wrap
Text File
|
1987-06-04
|
3KB
|
135 lines
IMPLEMENTATION MODULE CPCGads;
FROM CPCGlobal
IMPORT lstring,switch,search,show,window,rastport,msg,stat;
FROM Gadgets IMPORT noRequester,GadFlags,GadFlagSet,DrawBoolGadget,RemGadget;
FROM Graphics IMPORT RastPortPtr,SetAPen,RectFill;
FROM IntuiIO IMPORT WINDOW,GADGET;
CONST
maxgadgets=10;
outergadwidth=639-((stat-1)*8);
gadgoff=639-outergadwidth;
innergadwidth=outergadwidth-6;
TYPE
ShowMode=(startup,allgads,justfinish,finishing,nogads);
VAR
gads: ARRAY [0..maxgadgets] OF GADGET;
gadpresent: ARRAY [0..maxgadgets] OF BOOLEAN;
loop: INTEGER;
mode: ShowMode;
PROCEDURE mkGadget(x,y: INTEGER; text: lstring; id: INTEGER; gaddis: BOOLEAN);
VAR
t: lstring;
BEGIN
IF gadpresent[id] THEN
RemGadget(gads[id],window,FALSE);
gadpresent[id]:=FALSE;
END;
t:=text;
IF gaddis THEN
gads[id]:=DrawBoolGadget(window,noRequester,x,y,innergadwidth,12,
GadFlagSet{border,disabled,selectUp},t,id);
gadpresent[id]:=TRUE;
ELSE
gads[id]:=DrawBoolGadget(window,noRequester,x,y,innergadwidth,12,
GadFlagSet{border,selectUp},t,id);
gadpresent[id]:=TRUE;
END;
END mkGadget;
PROCEDURE ShowCommands;
BEGIN
IF (search=off) AND (show=on) AND (mode#allgads) THEN
SetAPen(rastport,0);
RectFill(rastport,gadgoff-2,38,639,200);
mkGadget(gadgoff, 40,msg[ 1],1,FALSE);
mkGadget(gadgoff, 56,msg[53],2,FALSE);
mkGadget(gadgoff, 72,msg[54],3,FALSE);
mkGadget(gadgoff, 88,msg[55],4,FALSE);
mkGadget(gadgoff,104,msg[56],5,FALSE);
mkGadget(gadgoff,120,msg[57],6,FALSE);
mkGadget(gadgoff,136,msg[58],7,FALSE);
mkGadget(gadgoff,152,msg[59],8,FALSE);
mkGadget(gadgoff,175,msg[60],0,FALSE);
mode:=allgads;
ELSIF (search=off) AND (show=off) AND (mode#finishing) THEN
SetAPen(rastport,0);
RectFill(rastport,gadgoff-2,38,639,200);
mkGadget(gadgoff, 40,msg[ 2],1,FALSE);
mkGadget(gadgoff, 56,msg[53],2,TRUE);
mkGadget(gadgoff, 72,msg[54],3,TRUE);
mkGadget(gadgoff, 88,msg[55],4,TRUE);
mkGadget(gadgoff,104,msg[56],5,TRUE);
mkGadget(gadgoff,120,msg[57],6,TRUE);
mkGadget(gadgoff,136,msg[58],7,TRUE);
mkGadget(gadgoff,152,msg[59],8,TRUE);
mkGadget(gadgoff,175,msg[60],0,FALSE);
mode:=finishing;
ELSIF (search=on) AND (mode#justfinish) THEN
SetAPen(rastport,0);
RectFill(rastport,gadgoff-2,38,639,200);
mkGadget(gadgoff, 40,msg[ 3],1,FALSE);
mkGadget(gadgoff, 56,msg[53],2,TRUE);
mkGadget(gadgoff, 72,msg[54],3,TRUE);
mkGadget(gadgoff, 88,msg[55],4,TRUE);
mkGadget(gadgoff,104,msg[56],5,TRUE);
mkGadget(gadgoff,120,msg[57],6,TRUE);
mkGadget(gadgoff,136,msg[58],7,TRUE);
mkGadget(gadgoff,152,msg[59],8,TRUE);
mkGadget(gadgoff,175,msg[60],0,FALSE);
mode:=justfinish;
END;
END ShowCommands;
PROCEDURE ForceShowCommands;
BEGIN
mode:=startup;
ShowCommands;
END ForceShowCommands;
PROCEDURE AllGadsOff;
BEGIN
IF mode#nogads THEN
SetAPen(rastport,0);
RectFill(rastport,gadgoff-2,38,639,200);
mkGadget(gadgoff, 40,"",1,TRUE);
mkGadget(gadgoff, 56,"",2,TRUE);
mkGadget(gadgoff, 72,"",3,TRUE);
mkGadget(gadgoff, 88,"",4,TRUE);
mkGadget(gadgoff,104,"",5,TRUE);
mkGadget(gadgoff,120,"",6,TRUE);
mkGadget(gadgoff,136,"",7,TRUE);
mkGadget(gadgoff,152,"",8,TRUE);
mkGadget(gadgoff,175,"",0,TRUE);
mode:=nogads;
END;
END AllGadsOff;
BEGIN
FOR loop:=0 TO maxgadgets DO
gadpresent[loop]:=FALSE;
END;
mode:=startup;
END CPCGads.