MODULE BUTTEST; FROM GSXMAIN IMPORT OpenStation, CRT, CloseStation, VECTOR, DrawMode, replace; FROM GSXIN IMPORT Locator, Mouse, CursorX, CursorY; FROM GSXFILL IMPORT FillBar, FillPie, FillStyle, FillIndex, hatch, pattern, xxx; FROM GSXLINE IMPORT PolyLine, LineType, solid, dot; FROM GSXBUTON IMPORT BUTTON, CreateButton, CursorAtButton, FlipButtonArea, ExecuteButton; VAR X, Y : CARDINAL; C : CHAR; Moved, Terminated : BOOLEAN; line : ARRAY [1..2] OF VECTOR; i : CARDINAL; Break : BOOLEAN; B1,B2,B3 : BUTTON; PROCEDURE Pie ( c : CHAR ); BEGIN FillStyle ( hatch ); FillIndex ( xxx ); DrawMode ( replace ); CASE c OF ' ' : FillPie ( 16384, 16384, 2000, 0, 1800 ); | '!' : FillPie ( 16384, 16384, 2000, 0, 1900 ); | '"' : FillPie ( 16384, 16384, 2000, 0 ,2000 ); END; END Pie; PROCEDURE Bar ( c : CHAR ); BEGIN FillStyle ( pattern ); FillIndex ( 5 ); DrawMode ( replace ); CASE c OF ' ' : FillBar ( 16384, 16384, 2048, 2048 ); | '!' : FillBar ( 16384, 16384, 3072, 3072 ); | '"' : FillBar ( 16384, 16384, 4096, 4096 ); END; END Bar; PROCEDURE Ende ( c : CHAR ); BEGIN Break := TRUE; END Ende; BEGIN OpenStation ( CRT ); LineType ( dot ); FOR i := 0 TO 32 DO Y := i * 1024; IF Y > 32767 THEN Y := 32767; END; line[1].X := 0; line[1].Y := Y; line[2].X := 32767; line[2].Y := Y; PolyLine ( 2, line ); END; LineType ( solid ); FOR i := 0 TO 32 DO X := i * 1024; IF X > 32767 THEN X := 32767; END; line[1].X := X; line[1].Y := 0; line[2].X := X; line[2].Y := 32767; PolyLine ( 2, line ); END; B1 := CreateButton ( 1000, 1000, 2000, 2000, Pie ); B2 := CreateButton ( 10000,10000,2000, 2000, Bar ); B3 := CreateButton ( 1000, 30000,2000, 2000, Ende ); FillStyle ( pattern ); FillIndex ( 1 ); FillBar ( 1000, 1000, 2000, 2000 ); FillIndex ( 2 ); FillBar ( 10000,10000,2000, 2000 ); FillIndex ( 3 ); FillBar ( 1000, 30000,2000, 2000 ); REPEAT Break := FALSE; Locator ( Mouse, C, Moved, Terminated ); IF CursorAtButton ( B1 ) THEN FlipButtonArea ( B1 ); ExecuteButton ( B1, C ); FlipButtonArea ( B1 ); END; IF CursorAtButton ( B2 ) THEN FlipButtonArea ( B2 ); ExecuteButton ( B2, C ); FlipButtonArea ( B2 ); END; IF CursorAtButton ( B3 ) THEN FlipButtonArea ( B3 ); ExecuteButton ( B3, C ); END; UNTIL Break; CloseStation; END BUTTEST.