123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- MODULE TestGraph;
- IMPORT G := Graph, Out;
- VAR c, f: G.Color;
- X, Y, W, H: INTEGER;
- font: G.Font;
- ZZ: ARRAY 2 OF CHAR;
- PROCEDURE Draw;
- BEGIN
- G.ClearToColor(c);
- IF X # -1 THEN
- G.Line(0, 0, X, Y, f);
- G.Line(0, H, X, Y, f);
- G.Line(W, H, X, Y, f);
- G.Line(W, 0, X, Y, f)
- END
- END Draw;
- PROCEDURE Message;
- BEGIN
- IF font # NIL THEN
- G.DrawString('Press space to return. X for down, ESC for up.',
- 0, 0, font, f);
- G.DrawString(ZZ, 0, 16, font, f)
- END
- END Message;
- PROCEDURE Animation;
- VAR ch: CHAR;
- BEGIN ch := 0X;
- REPEAT
- INC(X); IF X > W THEN X := 0 END;
- Draw;
- Message;
- G.Flip;
- G.Delay(1);
- IF G.KeyPressed() THEN
- ch := G.ReadKey();
- IF ch = 'x' THEN INC(Y, 100)
- ELSIF ch = CHR(27) THEN DEC(Y, 100)
- END
- END
- UNTIL ch = ' ';
- END Animation;
- PROCEDURE ByKey;
- VAR ch: CHAR;
- BEGIN
- REPEAT
- INC(X, 50); IF X > W THEN X := 0 END;
- Draw;
- Message;
- G.Flip;
- ch := G.ReadKey();
- IF ch = 'x' THEN INC(Y, 100)
- ELSIF ch = CHR(27) THEN DEC(Y, 100)
- ELSE ZZ[0] := ch
- END
- UNTIL ch = ' '
- END ByKey;
- PROCEDURE Do;
- VAR e: G.Event;
- done: BOOLEAN;
- BEGIN
- (*G.Settings(320, 200, {G.window});*)
- G.Init;
- G.ShowMouse(FALSE);
- font := G.LoadFont('Data/Fonts/Main');
- IF font = NIL THEN
- Out.String("Could not load font."); Out.Ln;
- ELSE
- G.GetTargetSize(W, H); DEC(W); DEC(H);
- G.MakeCol(c, 20, 30, 80);
- G.MakeCol(f, 0, 180, 255);
- done := FALSE; X := -1; ZZ[0] := 0X; ZZ[1] := 0X;
- REPEAT
- WHILE G.HasEvents() DO
- G.WaitEvent(e);
- IF e.type = G.quit THEN done := TRUE
- ELSIF e.type = G.mouseMove THEN
- X := e.x; Y := e.y
- ELSIF e.type = G.mouseDown THEN
- IF e.button = 1 THEN Animation
- ELSIF e.button = 2 THEN ByKey
- END
- END
- END;
- Draw;
- G.DrawString('Left mouse button - KeyPressed, right - ReadKey test',
- 0, 0, font, f);
- G.Flip;
- G.Delay(1)
- UNTIL done
- END;
- G.Close
- END Do;
- BEGIN
- Do
- END TestGraph.
|