DEFINITION MODULE VDIOutputs;


FROM GEMVDIbase IMPORT PxyArrayType;



PROCEDURE PolyLine (Handle, Count: INTEGER;
                    VAR PxyArray : ARRAY OF INTEGER);

(* display a polyline on graphics display *)
 

PROCEDURE PolyMarker (Handle, Count: INTEGER;
                      VAR PxyArray : ARRAY OF INTEGER);

(* draw markers at points specified *)


PROCEDURE GraphicText (Handle, x, y: INTEGER; VAR string: ARRAY OF CHAR);

(* write text to display surface *)


PROCEDURE FillArea (Handle, Count: INTEGER;
                    VAR PxyArray: ARRAY OF INTEGER);

(* fill a complex polygon *)


PROCEDURE CellArray (Handle  : INTEGER;
                      VAR PxyArray: PxyArrayType;
                          RowLength, ElUsed, NumRows, WrtMode: INTEGER;
                      VAR ColArray: ARRAY OF INTEGER);

(* bit tricky to explain ... see documentation *)


PROCEDURE ContourFill (Handle, x, y, index: INTEGER);

(* fill an area *)


PROCEDURE FillRectangle (Handle: INTEGER; VAR PxyArray: PxyArrayType);

(* fill rectangle *)


(* generalised drawing primitives *)

PROCEDURE DrawBar (Handle: INTEGER; VAR PxyArray: PxyArrayType);

PROCEDURE DrawArc (Handle, x, y, Radius, BegAng, EndAng: INTEGER);

PROCEDURE DrawPieSlice (Handle, x, y, Radius, BegAng, EndAng: INTEGER);

PROCEDURE DrawCircle (Handle, x, y, Radius: INTEGER);

PROCEDURE DrawEllipticalArc (Handle, x, y,
                             xRadius, yRadius, BegAng, EndAng: INTEGER);

PROCEDURE DrawEllipticalPie (Handle, x, y,
                             xRadius, yRadius, BegAng, EndAng: INTEGER);

PROCEDURE DrawEllipse (Handle, x, y, xRadius, yRadius: INTEGER);

PROCEDURE DrawRoundedBox (Handle: INTEGER; VAR xyArray: PxyArrayType);

PROCEDURE DrawRoundedFilledBox (Handle: INTEGER;
                                VAR xyArray: PxyArrayType);


(* justified graphics text *)

PROCEDURE JustifiedText (Handle, x, y: INTEGER;
                         VAR String: ARRAY OF CHAR;
                             Length, WordSpace, CharSpace: INTEGER);

(* output text both left and right justified *)

END VDIOutputs.
