Update library source to V2.

This commit is contained in:
David Brown 2016-06-16 14:56:42 +01:00
parent 4245c6e8b3
commit 7bdc53145e
46 changed files with 3141 additions and 3349 deletions

View file

@ -32,8 +32,14 @@ VAR
initialized: BOOLEAN; (* first call to Open sets this to TRUE *)
image: X11.XImagePtr;
map: POINTER TO ARRAY OF ARRAY OF SET;
PROCEDURE -aincludexlib "#include <X11/Xlib.h>";
PROCEDURE -aincludexutil "#include <X11/Xutil.h>";
PROCEDURE -aincludexresource "#include <X11/Xresource.h>";
PROCEDURE Error (msg: ARRAY OF CHAR);
BEGIN
Out.String ("Error: ");
@ -70,6 +76,7 @@ PROCEDURE Dot* (x, y, mode: INTEGER);
X11.XDrawPoint (display, window, fg, x, H-1-y)
| erase:
X11.XDrawPoint (display, window, bg, x, H-1-y)
ELSE
END;
X11.XFlush (display);
END
@ -135,44 +142,43 @@ PROCEDURE Key* (): CHAR;
PROCEDURE Open*;
(* Initializes the drawing plane. *)
VAR
screen: C.int;
parent: X11.Window;
bgColor, fgColor: C.longint;
screen: C.int;
parent: X11.Window;
bgColor: C.longint;
fgColor: C.longint;
gcValue: X11.XGCValues;
event: X11.XEvent;
x, y: INTEGER;
tmpstr : string;
(*tmpint : INTEGER;*)
scrn : C.int;
vis : X11.VisualPtr;
event: X11.XEvent;
x, y: INTEGER;
tmpstr: string;
scrn : C.int;
vis : X11.VisualPtr;
BEGIN
IF ~initialized THEN
initialized := TRUE;
tmpstr[0] := 0X;
(*display := X11.XOpenDisplay (NIL);*)
display := X11.XOpenDisplay (tmpstr);
display := X11.XOpenDisplay(tmpstr);
(*display := X11.OpenDisplay (NIL);*)
IF (display = NIL) THEN
Error ("Couldn't open display")
Error("Couldn't open display")
ELSE
screen := X11.XDefaultScreen (display);
screen := X11.XDefaultScreen(display);
X := 0; Y := 0;
W := SHORT (X11.XDisplayWidth (display, screen));
H := SHORT (X11.XDisplayHeight (display, screen));
H := SHORT (X11.XDisplayHeight(display, screen));
(* adjust ratio W:H to 3:4 [for no paritcular reason] *)
IF (W > 3*H DIV 4) THEN
W := 3*H DIV 4
END;
parent := X11.XRootWindow (display, screen);
fgColor := X11.XBlackPixel (display, screen);
bgColor := X11.XWhitePixel (display, screen);
window := X11.XCreateSimpleWindow (display, parent, 0, 0,
parent := X11.XRootWindow(display, screen);
fgColor := X11.XBlackPixel(display, screen);
bgColor := X11.XWhitePixel(display, screen);
window := X11.XCreateSimpleWindow(display, parent, 0, 0,
W, H, 0, 0, bgColor);
X11.XStoreName (display, window, "XYplane");
X11.XSelectInput (display, window, X11.KeyPressMask+X11.ExposureMask);
X11.XMapWindow (display, window);
X11.XStoreName(display, window, "XYplane");
X11.XSelectInput(display, window, X11.KeyPressMask+X11.ExposureMask);
X11.XMapWindow(display, window);
X11.XFlush (display);
(*tmpint := W + ((*sizeSet*)32-1);
tmpint := tmpint DIV 32(*sizeSet*);*)
@ -184,16 +190,16 @@ PROCEDURE Open*;
END
END;
scrn := X11.XDefaultScreen (display);
vis := X11.XDefaultVisual (display, scrn);
image := X11.XCreateImage (display,
scrn := X11.XDefaultScreen(display);
vis := X11.XDefaultVisual(display, scrn);
image := X11.XCreateImage (display,
(*X11.XDefaultVisual (display, X11.XDefaultScreen (display)),*)
vis,
(*1, X11.XYBitmap, 0, SYSTEM.ADR (map^), W, H, sizeSet, 0);*)
1, X11.ZPixmap, 0, SYSTEM.ADR (map^), W, H, (*sizeSet*)32, 0);
1, X11.ZPixmap, 0, SYSTEM.VAL(C.address,SYSTEM.ADR(map^)), W, H, (*sizeSet*)32, 0);
(* wait until the window manager gives its ok to draw things *)
X11.XMaskEvent (display, X11.ExposureMask, event);
X11.XMaskEvent(display, X11.ExposureMask, event);
(* create graphic context to draw resp. erase a point *)
gcValue. foreground := fgColor;
@ -208,7 +214,7 @@ PROCEDURE Open*;
END
END Open;
PROCEDURE Close*;
PROCEDURE Close*;
BEGIN
(* X11.XDestroyImage(image);