(******************************************************************************) (* MW.DEF - MetaWINDOW (Plus) 3.6a Interface. *) (* *) (* This definition module provides an interface with the Microsoft C *) (* interface for MetaWINDOW and MetaWINDOW Plus v3.6a. It should not be *) (* IMPORTed into your programs directly. IMPORT Meta instead which provides *) (* access to this module and performs the necessary initialisations. *) (* *) (* PSW 06/28/91 08:30am *) (******************************************************************************) (*# module(implementation=>off, init_code=>off) *) DEFINITION MODULE MW; (* * Graphix * Release 3.7 * (c) Copyright 1986-1992 PMI * Green Bay, Wisconsin * (414) 468-6040 * All rights reserved * *) FROM GrConst IMPORT rect, point, adsPoint, image, adsImage, polyHead, adsPolyHead, event, cursor, patRcd, HCInfoRec, penState, dirRec, imageHeader, dashRcd, palData, CCBtype, MCBtype, mapArray, adsImage; FROM GrPorts IMPORT bitmap, adsBMap, metaPort, adsPort, pusharea, adsMem; FROM GrFonts IMPORT adsFont; (*# save, name(prefix => none) *) VAR Meta_DPL: BYTE; (* Used to 'find' MetaWINDOW. *) (*# data(near_ptr => off), call(o_a_copy => off, o_a_size => off, c_conv => on, near_call => off, reg_saved => (si, di, ds, st1, st2), reg_param => ()), name(prefix => c) *) TYPE MsProc = PROCEDURE (); (* Mouse service handler. *) UsProc = PROCEDURE (VAR CCBtype); (* User service handler. *) PROCEDURE AddPt (VAR SRCPT, DSTPT: point); PROCEDURE AlignPattern (PATTERN, PATX, PATY: INTEGER); PROCEDURE BackColor (COLOR: INTEGER); PROCEDURE BackLColor (LCOLOR: LONGINT); PROCEDURE BackPattern (PATTERN: INTEGER); PROCEDURE BorderColor (COLOR: INTEGER); PROCEDURE CenterRect (VAR PT: point; WIDTHX, HEIGHTY: INTEGER; VAR R: rect); PROCEDURE CharWidth (CH: CHAR) : INTEGER; PROCEDURE ClearText (); PROCEDURE ClipRect (VAR R: rect); PROCEDURE CodeSeg (): WORD; PROCEDURE CopyBits (VAR SRCMAP, DSTMAP: bitmap; VAR SRCRECT, DSTRECT, DSTCLIP: rect; RASOP: INTEGER); PROCEDURE CursorBitmap (NEWMAP: adsBMap); PROCEDURE CursorColor (FORECOLOR, BACKCOLOR: LONGINT); PROCEDURE CursorMap (VAR BUTTONMAP: mapArray); PROCEDURE CursorStyle (CURSORNBR: INTEGER); PROCEDURE DataSeg (): WORD; PROCEDURE DefineCursor (CURSORNBR, HOTX, HOTY: INTEGER; VAR SCREENMASK, CURSORMASK: cursor); PROCEDURE DefineDash (DASHNBR: INTEGER; VAR DASHARRAY: dashRcd); PROCEDURE DefinePattern (PATTERN: INTEGER; VAR PATIMAGE: patRcd); PROCEDURE DrawChar (CH: CHAR); PROCEDURE DrawString (TEXTSTR: ARRAY OF CHAR); PROCEDURE DrawText (TEXTSTR: ARRAY OF CHAR; INDEX, COUNT: INTEGER); PROCEDURE DupBitmap (VAR SRCMAP, DSTMAP: bitmap); PROCEDURE DupPort (VAR SRCPORT, DSTPORT: metaPort); PROCEDURE DupPt (VAR SRCPT, DSTPT: point); PROCEDURE DupRect (VAR SRCRECT, DSTRECT: rect); PROCEDURE EqualPt (VAR PT1, PT2: point): BOOLEAN; PROCEDURE EqualRect (VAR RECT1, RECT2: rect): BOOLEAN; PROCEDURE EraseArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER); PROCEDURE EraseOval (VAR R: rect); PROCEDURE ErasePoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint); PROCEDURE EraseRect (VAR R: rect); PROCEDURE EraseRoundRect (VAR R: rect; DIAX, DIAY: INTEGER); PROCEDURE EventQueue (TF: BOOLEAN); PROCEDURE ExtraSeg (): WORD; PROCEDURE FileAttr (FILENAME: ARRAY OF CHAR; ATTR: WORD): INTEGER; PROCEDURE FileDelete (FILENAME: ARRAY OF CHAR): INTEGER; PROCEDURE FileLoad (FILENAME: ARRAY OF CHAR; DATAAREA: adsMem; AREASIZE: CARDINAL): INTEGER; PROCEDURE FileQuery (FILESPEC: ARRAY OF CHAR; VAR DIRINFO: dirRec; DIRSIZE: CARDINAL): INTEGER; PROCEDURE FileRename (OLDNAME, NEWNAME: ARRAY OF CHAR): INTEGER; PROCEDURE FileStore (FILENAME: ARRAY OF CHAR; DATAAREA: adsMem; AREASIZE: CARDINAL): INTEGER; PROCEDURE FillArc (VAR R: rect; BGNANGLE: INTEGER; ARCANGLE, PATTERN: INTEGER); PROCEDURE FillOval (VAR R: rect; PATTERN: INTEGER); PROCEDURE FillPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint; PATTERN: INTEGER); PROCEDURE FillRect (VAR R: rect; PATTERN: INTEGER); PROCEDURE FillRoundRect (VAR R: rect; DIAX, DIAY, PATTERN: INTEGER); PROCEDURE FrameArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER); PROCEDURE FrameOval (VAR R: rect); PROCEDURE FramePoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint); PROCEDURE FrameRect (VAR R: rect); PROCEDURE FrameRoundRect (VAR R: rect; DIAX, DIAY: INTEGER); PROCEDURE Gbl2LclPt (VAR PT: point); PROCEDURE Gbl2LclRect (VAR R: rect); PROCEDURE Gbl2VirPt (VAR PT: point); PROCEDURE Gbl2VirRect (VAR R: rect); PROCEDURE GetAddress (VARBL: FarADDRESS; VAR SGM, OFF: INTEGER); PROCEDURE GetBits (X, Y: INTEGER; VAR SRCMAP: bitmap): LONGINT; PROCEDURE GetCmdLine (VAR CMDSTRING: ARRAY OF CHAR); PROCEDURE GetFontField (FIELD: INTEGER): INTEGER; PROCEDURE GetLPixel (X, Y: INTEGER; VAR LCOLOR: LONGINT); PROCEDURE GetPenState (VAR STATE: penState); PROCEDURE GetPixel (X, Y: INTEGER): INTEGER; PROCEDURE GetPort (VAR PORTPTR: adsPort); PROCEDURE GrInitErr (ERROR: INTEGER); PROCEDURE HardCopy (SRCPORT: adsPort): WORD; PROCEDURE HideCursor (); PROCEDURE HidePen (); PROCEDURE ImagePara (VAR R: rect): WORD; PROCEDURE ImageSize (VAR R: rect): LONGINT; PROCEDURE InceptRect (VAR RECT1, RECT2, DSTRECT: rect): BOOLEAN; PROCEDURE InitBitmap (VAR NEWMAP: bitmap; INTERLEAVE, BASESEG, BASEOFF, INTERSEG, INTEROFF: INTEGER); PROCEDURE InitGrafix (DEVMODE: INTEGER): INTEGER; PROCEDURE InitMouse (MOUSPORT: INTEGER); PROCEDURE InitPort (PORT: adsPort); PROCEDURE InitRowTable (NEWMAP: adsBMap; INTERLEAVE, INTERSEG, INTEROFF: INTEGER); PROCEDURE InsetRect (VAR R: rect; DX, DY: INTEGER); PROCEDURE InvertArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER); PROCEDURE InvertOval (VAR R: rect); PROCEDURE InvertPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint); PROCEDURE InvertRect (VAR R: rect); PROCEDURE InvertRoundRect(VAR R: rect; DIAX, DIAY: INTEGER); PROCEDURE KeyEvent (WAIT: BOOLEAN; VAR EVNT: event): BOOLEAN; PROCEDURE Lcl2GblPt (VAR PT: point); PROCEDURE Lcl2GblRect (VAR R: rect); PROCEDURE Lcl2VirPt (VAR PT: point); PROCEDURE Lcl2VirRect (VAR R: rect); PROCEDURE LimitMouse (XMIN, YMIN, XMAX, YMAX: INTEGER); PROCEDURE LineRel (DLTX, DLTY: INTEGER); PROCEDURE LineTo (X, Y: INTEGER); PROCEDURE LoadFont (FONTNAME: ARRAY OF CHAR): INTEGER; PROCEDURE LoadPalette (BGNINDEX, ENDINDEX: INTEGER; VAR COLORS: ARRAY OF WORD); PROCEDURE MapPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint; VAR SRCR: rect; VAR DSTR: rect); PROCEDURE MapPt (VAR PT: point; VAR SRCR, DSTR: rect); PROCEDURE MapRect (VAR R: rect; VAR SRCR, DSTR: rect); PROCEDURE MarkerAngle (ANGLE: INTEGER); PROCEDURE MarkerSize (WIDTH, HEIGHT: INTEGER); PROCEDURE MarkerType (MARKERNBR: INTEGER); PROCEDURE MetaVersion (VAR STRING: ARRAY OF CHAR); PROCEDURE MiterLimit (LIMITANGLE: INTEGER); PROCEDURE MoveCursor (X, Y: INTEGER); PROCEDURE MovePortTo (GBLLEFT, GBLTOP: INTEGER); PROCEDURE MoveRel (DLTX, DLTY: INTEGER); PROCEDURE MoveTo (X, Y: INTEGER); PROCEDURE OffsetPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint; DX, DY: INTEGER); PROCEDURE OffsetRect (VAR R: rect; DX, DY: INTEGER); PROCEDURE OvalPt (VAR R: rect; ANGLE: INTEGER; VAR PT: point); PROCEDURE PaintArc (VAR R: rect; BGNANGLE, ENDANGLE: INTEGER); PROCEDURE PaintOval (VAR R: rect); PROCEDURE PaintPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead; POLYPTS: adsPoint); PROCEDURE PaintRect (VAR R: rect); PROCEDURE PaintRoundRect (VAR R: rect; DIAX, DIAY: INTEGER); PROCEDURE PeekEvent (INDEX: INTEGER; VAR EVNT: event): BOOLEAN; PROCEDURE PenCap (CAPSTYLE: INTEGER); PROCEDURE PenColor (COLOR: INTEGER); PROCEDURE PenDash (DASHSTYLE: INTEGER); PROCEDURE PenJoin (JOINSTYLE: INTEGER); PROCEDURE PenLColor (LCOLOR: LONGINT); PROCEDURE PenMode (RASOP: INTEGER); PROCEDURE PenNormal (); PROCEDURE PenOffset (DASHOFFSET: INTEGER); PROCEDURE PenPattern (PATTERN: INTEGER); PROCEDURE PenSize (DIAX, DIAY: INTEGER); PROCEDURE PlaneMask (PMASK: INTEGER); PROCEDURE PolyLine (PTCNT: INTEGER; PTS: adsPoint); PROCEDURE PolyMarker (NPTS: INTEGER; XYPTS: adsPoint); PROCEDURE PopGrafix (VAR SAVEAREA: pusharea); PROCEDURE PortBitmap (NEWMAP: adsBMap); PROCEDURE PortOrigin (TOPBOT: BOOLEAN); PROCEDURE PortSize (PIXWIDTHX, PIXHEIGHTY: INTEGER); PROCEDURE ProtectOff (); PROCEDURE ProtectRect (VAR R: rect); PROCEDURE Pt2Rect (VAR PT1, PT2: point; VAR R: rect); PROCEDURE PtInArc (VAR TESTPT: point; VAR R: rect; BGNANGLE, ARCANGLE: INTEGER): BOOLEAN; PROCEDURE PtInOval (VAR TESTPT: point; VAR R: rect): BOOLEAN; PROCEDURE PtInPoly (VAR TESTPT: point; POLYCNT: INTEGER; POLYHDRS: adsPolyHead; POLYPTS: adsPoint): BOOLEAN; PROCEDURE PtInRect (VAR TESTPT: point; VAR R: rect): BOOLEAN; PROCEDURE PtInRoundRect (VAR TESTPT: point; VAR R: rect; DIAX, DIAY: INTEGER): BOOLEAN; PROCEDURE PtOnArc (VAR TESTPT: point; VAR R: rect; BGNANGLE, ARCANGLE, SIZEX, SIZEY: INTEGER): INTEGER; PROCEDURE PtOnLine (VAR TESTPT: point; VAR PT1, PT2: point; SIZEX, SIZEY: INTEGER): BOOLEAN; PROCEDURE PtOnOval (VAR TESTPT: point; VAR R: rect; SIZEX, SIZEY: INTEGER): INTEGER; PROCEDURE PtOnRect (VAR TESTPT: point; VAR R: rect; SIZEX, SIZEY: INTEGER): INTEGER; PROCEDURE PtOnRoundRect (VAR TESTPT: point; VAR R: rect; DIAX, DIAY: INTEGER; SIZEX, SIZEY: INTEGER): INTEGER; PROCEDURE PtOnPoly (VAR TESTPT: point; POLYCNT: INTEGER; POLYHDRS: adsPolyHead; POLYPTS: adsPoint; penX, penY: INTEGER): INTEGER; PROCEDURE PtToAngle (VAR R: rect; VAR PT: point): INTEGER; PROCEDURE PushGrafix (VAR SAVEAREA: pusharea); PROCEDURE QueryColors (): INTEGER; PROCEDURE QueryComm (): INTEGER; PROCEDURE QueryCursor (VAR CURSORX, CURSORY, CURSORLEVEL, BUTTONS: INTEGER); PROCEDURE QueryError (): INTEGER; PROCEDURE QueryGrafix (): INTEGER; PROCEDURE QueryPosn (VAR X, Y: INTEGER); PROCEDURE QueryRes (VAR RESX, RESY: INTEGER); PROCEDURE QueryX (): INTEGER; PROCEDURE QueryY (): INTEGER; PROCEDURE RasterOp (RASOP: INTEGER); PROCEDURE ReadImage (VAR SRCR: rect; DSTIMAGE: adsImage); PROCEDURE ReadMouse (VAR X, Y, SW: INTEGER); PROCEDURE ReadPalette (PALNBR, BGNINDX, ENDINDX: INTEGER; VAR COLORS: ARRAY OF palData); PROCEDURE ScaleMouse (FACTORX, FACTORY: INTEGER); PROCEDURE ScalePt (VAR PT: point; VAR SRCR, DSTR: rect); PROCEDURE ScreenRect (VAR SCRNR: rect); PROCEDURE ScreenSize (VAR SCRNXMAX, SCRNYMAX: INTEGER); PROCEDURE ScrollRect (VAR R: rect; DX, DY: INTEGER); PROCEDURE SetBitmap (PAGE: INTEGER); PROCEDURE SetBits (X, Y: INTEGER; COLOR: LONGINT; RASOP: INTEGER; VAR CLIP_RECT: rect; VAR SRCMAP: bitmap); PROCEDURE SetHardCopy (VAR HCI: HCInfoRec); PROCEDURE SetDisplay (PAGE: INTEGER); PROCEDURE SetFont (FONTBUFFER: adsFont); PROCEDURE SetLocal (); PROCEDURE SetOrigin (LCLX, LCLY: INTEGER); PROCEDURE SetPalette (BACKGROUND: INTEGER; PALETTE: WORD); PROCEDURE SetPenState (VAR STATE: penState); PROCEDURE SetPixel (X, Y: INTEGER); PROCEDURE SetPort (NEWPORT: adsPort); PROCEDURE SetPt (VAR PT: point; X, Y: INTEGER); PROCEDURE SetRect (VAR R: rect; X1, Y1, X2, Y2: INTEGER); PROCEDURE SetVirtual (); PROCEDURE ShiftRect (VAR R: rect; DX, DY: INTEGER; VAR R1, R2: rect): INTEGER; PROCEDURE ShowCursor (); PROCEDURE ShowPen (); PROCEDURE StackPtr (): WORD; PROCEDURE StackSeg (): WORD; PROCEDURE StopEvent (); PROCEDURE StopMouse (); PROCEDURE StopTimer (); PROCEDURE StoreEvent (VAR EVNT: event): BOOLEAN; PROCEDURE StringWidth (TEXTSTR: ARRAY OF CHAR): INTEGER; PROCEDURE SubPt (VAR SRCPT, DSTPT: point); PROCEDURE SystemFont (FONTNBR: INTEGER): INTEGER; PROCEDURE TextAlign (HORZ, VERT: INTEGER); PROCEDURE TextAngle (ANGLE: INTEGER); PROCEDURE TextExtra (SPACE: INTEGER); PROCEDURE TextFace (FACE: INTEGER); PROCEDURE TextMode (RASOP: INTEGER); PROCEDURE TextPath (PATH: INTEGER); PROCEDURE TextScore (GAP: INTEGER); PROCEDURE TextSize (WIDTHX, HEIGHTY: INTEGER); PROCEDURE TextSlant (ANGLE: INTEGER); PROCEDURE TextSpace (SPACE: INTEGER); PROCEDURE TextUnder (BELOW: INTEGER); PROCEDURE TextWidth (TEXTSTR: ARRAY OF CHAR; INDEX, COUNT: INTEGER): INTEGER; PROCEDURE TrackCursor (TF: BOOLEAN); PROCEDURE UnionRect (VAR RECT1, RECT2, DSTRECT: rect); PROCEDURE UserMouse (VAR MOUSESVC: MsProc; VAR MCB: MCBtype); PROCEDURE MouseSvc (I1, I2, I3: INTEGER; VAR MCB: MCBtype); PROCEDURE UserTimer (VAR TIMERSVC: UsProc; TIMECOUNT: INTEGER; VAR CCB: CCBtype); PROCEDURE TimerSvc (VAR CCB: CCBtype); PROCEDURE Vir2GblPt (VAR PT: point); PROCEDURE Vir2GblRect (VAR R: rect); PROCEDURE Vir2LclPt (VAR PT: point); PROCEDURE Vir2LclRect (VAR R: rect); PROCEDURE VirtualRect (VAR R: rect); PROCEDURE WriteImage (VAR DSTR: rect; SRCIMAGE: adsImage); PROCEDURE WritePalette (PALNBR, BGNINDX, ENDINDX: INTEGER; VAR COLORS: ARRAY OF palData); PROCEDURE XlateImage (SRCIMAGE, DSTIMAGE: adsImage; DSTBITS, DSTPLANES: INTEGER; VAR XLTABLE: LONGINT); PROCEDURE XYInRect (X, Y: INTEGER; VAR R: rect): INTEGER; PROCEDURE ZoomBits (SRCMAP, DSTMAP: adsBMap; VAR SRCRECT, DSTRECT, DSTCLIP: rect; RASOP: INTEGER); (*# restore *) END MW.