QUICKDRAW

Section: Misc. Reference Manual Pages (LOCAL)
Updated: 1/1/89
Index Return to Main Contents
 

NAME

quickdraw - a Quick Drawing Package  

AUTHOR

Jeff Vogel  

DESCRIPTION

Quickdraw is a quick drawing package written on the X Window System. It is designed to emulate the Macintosh Drawing Package.  

USING QUICKDRAW

Linking: /cs/lib/libquickdraw.a
         /cs/lib/libmquickdraw  (for lowercase pascal syntax)

Includes: "/cs/include/quickdraw.h" (c) "/cs/include/quickdraw_pascal.h" (pascal) "/cs/include/mquickdraw_pascal.h" (pascal lower case)
 

PASCAL TYPES

type
   Point = record
      x, y : integer;
   end;

   Rect = record
      top : integer;
      left : integer;
      bottom : integer;
      right : integer;
   end;

   Polygon = record
      num_vertices : integer;
      vertices : ^Point;
   end;
 

C TYPES

typedef struct  {
   int x, y;
} Point;

typedef struct {
   int  top, left, bottom, right;
} Rect;

typedef struct {
   int    num_vertices;
   Point  *vertices;
} Polygon;

 

PASCAL CALLS


procedure InitDraw(width, height : integer); external c;
procedure InitDraw4(width, height, x, y : integer); external c;
procedure ClearAll; external c;
procedure DrawGrid(spacing : integer) ; external c;
procedure GetDrawingRect(var r : Rect); external c;
procedure QuitDraw; external c;

procedure SetPt(var pt : Point; x, y : integer); external c;
procedure SetRect(var rect : Rect; left, top, right, bottom : integer); external c;
procedure OffsetRect(var rect : Rect; dh, dv : integer);external c;
procedure InsetRect(var rect : Rect; dh, dv : integer);external c;
function  PtInRect(point : Point; rect : Rect): boolean;external c;

procedure SetColor(color : Colors) ;external c;
procedure PenPat(pat : Patterns) ;external c;

function  Random:integer;external c;
procedure Randomize(seed : integer); external c;
procedure WaitDraw(t:integer);external c;

function Button: Boolean;external c;
procedure GetMouse(var x, y : integer); external c;
procedure GetMousePt(var pt : Point); external c;

procedure SetLineWidth(lineWidth : integer);external c;
procedure GetLineWidth(var lineWidth : integer);external c;
procedure SetLineStyle(style : LineStyles);external c;
procedure GetLineStyle(var style: LineStyles);external c;
procedure PenMode(mode : PenModes);external c;
procedure GetPenMode(var mode : PenModes);external c;
procedure SetFont(font : Fonts);external c;
procedure GetFont(var font : Fonts);external c;

procedure DrawLine(p1, p2 : Point);external c;
procedure EraseLine(p1, p2 : Point);external c;
procedure FrameRect(rect : Rect);external c;
procedure PaintRect(rect : Rect);external c;
procedure InvertRect(rect : Rect);external c;
procedure EraseRect(rect : Rect);external c;
procedure FrameOval(rect : Rect);external c;
procedure PaintOval(rect : Rect);external c;
procedure InvertOval(rect : Rect);external c;
procedure EraseOval(rect : Rect);external c;
procedure FrameArc(rect: Rect;  start, ending : integer);external c;
procedure PaintArc(rect: Rect;  start, ending : integer);external c;
procedure InvertArc(rect: Rect;  start, ending : integer);external c;
procedure EraseArc(rect: Rect;  start, ending : integer);external c;
procedure PaintCircle(x , y, radius : integer); external c;
procedure FrameCircle(x , y, radius : integer); external c;
procedure EraseCircle(x , y, radius : integer); external c;

procedure DrawString(s : string; x, y : integer);external c;
procedure QueryStringSize(s : string; var width, height : integer);external c;

procedure MoveTo(x, y : integer); external c;
procedure LineTo(x, y : integer); external c;

function  CreatePoly: Polygon; external c;
function  CopyPoly(poly: Polygon) : Polygon; external c;
procedure PolyAddPt(var poly : Polygon; x, y: integer); external c;
procedure PolyQueryPt(poly : Polygon; index : integer; var x, y : integer);
external c;
procedure FramePoly(poly : Polygon); external c;
procedure ErasePoly(poly : Polygon); external c;
procedure PaintPoly(poly : Polygon); external c;
procedure InsetPoly(var poly: Polygon; dx, dy : integer); external c;
procedure OffsetPoly(var poly: Polygon; dx, dy: integer); external c;

 

C CALLS


extern void  QDclose();
extern void  QDreset();
extern void  QDopen();
extern void  QDallowKeypress();

extern void  InitDraw();
extern void  InitDraw4();
extern void  ClearAll();
extern void  QuitDraw();
extern void  GetDrawingRect();
extern void  DrawGrid();
extern void  SetErrorHandler();

extern int   Random();
extern void  Randomize();
extern void  WaitDraw();

extern Boolean Button();
extern void    GetMouse();
extern void    GetMousePt();

extern void    SetLineWidth();
extern void    GetLineWidth();
extern void    SetLineStyle();
extern void    GetLineStyle();
extern void    PenMode();
extern void    GetPenMode();
extern void    SetFont();
extern void    GetFont();

extern void    DrawLine();
extern void    EraseLine();

extern void    FrameRect();
extern void    PaintRect();
extern void    EraseRect();
extern void    InvertRect();
extern void    FrameOval();
extern void    PaintOval();
extern void    EraseOval();
extern void    InvertOval();
extern void    FrameArc();
extern void    PaintArc();
extern void    EraseArc();
extern void    InvertArc();
extern void    EraseCircle();
extern void    PaintCircle();
extern void    FrameCircle();

extern void    DrawString();
extern void    QueryStringSize();

extern void    SetRect();
extern void    SetPt();
extern void    OffsetRect();
extern void    InRect();
extern Boolean PtInRect();

extern void    SetColor();
extern void    PenPat();

extern void    LineTo();
extern void    MoveTo();

extern Polygon CreatePoly();
extern Polygon CopyPoly();
extern void    PolyAddPt();
extern void    PolyQueryPt();
extern void    FramePoly();
extern void    PaintPoly();
extern void    ErasePoly();
extern void    InsetPoly();
extern void    OffsetPoly();

 

ERRORS

   1) Call QuickDraw routines without InitDraw (initilizing).
   2) Call QuitDraw when no InitDraw precedes it.
   3) Try to REinitilize QuickDraw. (InitDraw in succession)
   4) Try to use/create a Rect that is illegal.
   5) Send bad paramaters to the Set procedures.

 

AUTHOR

Jeff Vogel (jlv)


 

Index

NAME
AUTHOR
DESCRIPTION
USING QUICKDRAW
PASCAL TYPES
C TYPES
PASCAL CALLS
C CALLS
ERRORS
AUTHOR

This document was created by man2html, using the manual pages.
Time: 00:30:12 GMT, December 05, 2024