home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
pmos2002.zip
/
DEF
/
GWINDOWS.DEF
< prev
next >
Wrap
Text File
|
1994-04-18
|
6KB
|
154 lines
DEFINITION MODULE GWindows;
(********************************************************)
(* *)
(* Windows module for screen graphics *)
(* *)
(* Programmer: P. Moylan *)
(* Last edited: 18 April 1994 *)
(* Status: *)
(* Mostly working, still adding features. *)
(* *)
(********************************************************)
FROM ScreenGeometry IMPORT
(* type *) Point, Rectangle;
FROM Graphics IMPORT
(* type *) ColourType;
(************************************************************************)
TYPE
Window; (* is private *)
BorderType = (single, double);
(************************************************************************)
PROCEDURE InitGraphics (mode: CARDINAL);
(* Sets up the Graphics mode. Optional, since the module starts up *)
(* with a best estimate of the "best" mode possible on the *)
(* available hardware. *)
PROCEDURE OpenWindow (VAR (*OUT*) w: Window;
left, bottom, right, top: CARDINAL;
Foregrnd, Backgrnd: ColourType;
b: BorderType);
(* Creates a new window. *)
PROCEDURE OpenWindowR (VAR (*OUT*) w: Window; location: Rectangle;
Foregrnd, Backgrnd: ColourType;
b: BorderType);
(* Same as OpenWindow, except for method of specifying location. *)
PROCEDURE WindowMemory (w: Window; memory: BOOLEAN);
(* Specifying a FALSE value for the memory parameter means that *)
(* subsequent data sent to this window will be written to the *)
(* screen but not remembered. This saves time and memory, the only *)
(* penalty being that data covered by an overlapping window will *)
(* be lost. Specifying TRUE restores the default condition, where *)
(* all window data are retained for refreshing the screen when *)
(* necessary. *)
PROCEDURE CloseWindow (VAR (*INOUT*) w: Window);
(* Destroys the window. *)
PROCEDURE SetColour (w: Window; colour: ColourType);
(* Specifies the foreground colour to be used until further notice. *)
PROCEDURE PutPixel (w: Window; p: Point);
(* Plots a dot at the point (x,y) in window w. The coordinates are *)
(* relative to the bottom left of the window. If the dot lies *)
(* outside the window it will be ignored. *)
PROCEDURE PutPixel2 (w: Window; x, y: INTEGER);
(* Same as PutPixel, with a different way of specifying the point. *)
PROCEDURE PutPixel2C (w: Window; x, y: INTEGER; colour: ColourType);
(* Same as PutPixel2, with the colour explicitly specified. *)
PROCEDURE Line (w: Window; start, end: Point);
(* Draws a straight line. The points are relative to the bottom *)
(* left corner of w. Parts of the line lying outside the window *)
(* are clipped. *)
PROCEDURE Line2 (w: Window; xstart, ystart, xend, yend: INTEGER);
(* The same operation as Line, with a different way of specifying *)
(* the parameters. *)
PROCEDURE Line2C (w: Window; xstart, ystart, xend, yend: INTEGER;
colour: ColourType);
(* The same operation as Line2, but with the colour explicitly *)
(* specified. *)
PROCEDURE GString (w: Window; x, y: CARDINAL; text: ARRAY OF CHAR);
(* Writes a horizontal character string at graphics position (x,y) *)
(* relative to window w. Characters which do not fit are not *)
(* displayed. This is not considered to be a text operation since *)
(* the text cursor is not affected and there is no line wrap. *)
PROCEDURE GStringUp (w: Window; x, y: CARDINAL; text: ARRAY OF CHAR);
(* Like GString, but the string is rotated counterclockwise by *)
(* 90 degrees, i.e. it is written in the +Y direction. *)
PROCEDURE ClearWindow (w: Window);
(* Erases all data from w, but keeps it open. *)
(************************************************************************)
(* TEXT OPERATIONS *)
(************************************************************************)
(* *)
(* Every open window has a "text cursor" which is used only for text *)
(* operations and is independent of any operations on dots and lines. *)
(* The text cursor is updated after any text operation in such a way *)
(* that the characters follow one another in the way one would expect *)
(* for non-graphics windows. *)
(* *)
(************************************************************************)
PROCEDURE SetCursor (w: Window; row, column: CARDINAL);
(* Sets the text cursor to the specified row and column. The row *)
(* and column are measured in units of characters (not pixels), *)
(* with (0,0) representing the first character position at the *)
(* upper left of the window. *)
PROCEDURE SaveCursor (w: Window; VAR (*OUT*) row, column: CARDINAL);
(* Returns the current row and column of the text cursor. *)
PROCEDURE WriteChar (w: Window; ch: CHAR);
(* Writes a horizontal character at the current text cursor *)
(* position for window w. The text cursor is updated. *)
PROCEDURE WriteString (w: Window; text: ARRAY OF CHAR);
(* Writes a horizontal character string at the current text cursor *)
(* position for window w. Characters which do not fit on the *)
(* current line are wrapped around to a new row. *)
PROCEDURE WriteLn (w: Window);
(* Sets the text cursor to the start of the next text line down. *)
(* If the cursor reaches the bottom of the window, the text in the *)
(* window is scrolled. *)
END GWindows.