MW.DEF 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. (******************************************************************************)
  2. (* MW.DEF - MetaWINDOW (Plus) 3.6a Interface. *)
  3. (* *)
  4. (* This definition module provides an interface with the Microsoft C *)
  5. (* interface for MetaWINDOW and MetaWINDOW Plus v3.6a. It should not be *)
  6. (* IMPORTed into your programs directly. IMPORT Meta instead which provides *)
  7. (* access to this module and performs the necessary initialisations. *)
  8. (* *)
  9. (* PSW 06/28/91 08:30am *)
  10. (******************************************************************************)
  11. (*# module(implementation=>off, init_code=>off) *)
  12. DEFINITION MODULE MW;
  13. (*
  14. * Graphix
  15. * Release 3.7
  16. * (c) Copyright 1986-1992 PMI
  17. * Green Bay, Wisconsin
  18. * (414) 468-6040
  19. * All rights reserved
  20. *
  21. *)
  22. FROM GrConst IMPORT rect, point, adsPoint, image, adsImage, polyHead,
  23. adsPolyHead, event, cursor, patRcd, HCInfoRec, penState, dirRec,
  24. imageHeader, dashRcd, palData, CCBtype, MCBtype, mapArray, adsImage;
  25. FROM GrPorts IMPORT bitmap, adsBMap, metaPort, adsPort, pusharea, adsMem;
  26. FROM GrFonts IMPORT adsFont;
  27. (*# save, name(prefix => none) *)
  28. VAR
  29. Meta_DPL: BYTE; (* Used to 'find' MetaWINDOW. *)
  30. (*# data(near_ptr => off),
  31. call(o_a_copy => off, o_a_size => off, c_conv => on, near_call => off,
  32. reg_saved => (si, di, ds, st1, st2), reg_param => ()),
  33. name(prefix => c)
  34. *)
  35. TYPE
  36. MsProc = PROCEDURE (); (* Mouse service handler. *)
  37. UsProc = PROCEDURE (VAR CCBtype); (* User service handler. *)
  38. PROCEDURE AddPt (VAR SRCPT, DSTPT: point);
  39. PROCEDURE AlignPattern (PATTERN, PATX, PATY: INTEGER);
  40. PROCEDURE BackColor (COLOR: INTEGER);
  41. PROCEDURE BackLColor (LCOLOR: LONGINT);
  42. PROCEDURE BackPattern (PATTERN: INTEGER);
  43. PROCEDURE BorderColor (COLOR: INTEGER);
  44. PROCEDURE CenterRect (VAR PT: point; WIDTHX, HEIGHTY: INTEGER; VAR R: rect);
  45. PROCEDURE CharWidth (CH: CHAR) : INTEGER;
  46. PROCEDURE ClearText ();
  47. PROCEDURE ClipRect (VAR R: rect);
  48. PROCEDURE CodeSeg (): WORD;
  49. PROCEDURE CopyBits (VAR SRCMAP, DSTMAP: bitmap;
  50. VAR SRCRECT, DSTRECT, DSTCLIP: rect; RASOP: INTEGER);
  51. PROCEDURE CursorBitmap (NEWMAP: adsBMap);
  52. PROCEDURE CursorColor (FORECOLOR, BACKCOLOR: LONGINT);
  53. PROCEDURE CursorMap (VAR BUTTONMAP: mapArray);
  54. PROCEDURE CursorStyle (CURSORNBR: INTEGER);
  55. PROCEDURE DataSeg (): WORD;
  56. PROCEDURE DefineCursor (CURSORNBR, HOTX, HOTY: INTEGER;
  57. VAR SCREENMASK, CURSORMASK: cursor);
  58. PROCEDURE DefineDash (DASHNBR: INTEGER; VAR DASHARRAY: dashRcd);
  59. PROCEDURE DefinePattern (PATTERN: INTEGER; VAR PATIMAGE: patRcd);
  60. PROCEDURE DrawChar (CH: CHAR);
  61. PROCEDURE DrawString (TEXTSTR: ARRAY OF CHAR);
  62. PROCEDURE DrawText (TEXTSTR: ARRAY OF CHAR; INDEX, COUNT: INTEGER);
  63. PROCEDURE DupBitmap (VAR SRCMAP, DSTMAP: bitmap);
  64. PROCEDURE DupPort (VAR SRCPORT, DSTPORT: metaPort);
  65. PROCEDURE DupPt (VAR SRCPT, DSTPT: point);
  66. PROCEDURE DupRect (VAR SRCRECT, DSTRECT: rect);
  67. PROCEDURE EqualPt (VAR PT1, PT2: point): BOOLEAN;
  68. PROCEDURE EqualRect (VAR RECT1, RECT2: rect): BOOLEAN;
  69. PROCEDURE EraseArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER);
  70. PROCEDURE EraseOval (VAR R: rect);
  71. PROCEDURE ErasePoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  72. POLYPTS: adsPoint);
  73. PROCEDURE EraseRect (VAR R: rect);
  74. PROCEDURE EraseRoundRect (VAR R: rect; DIAX, DIAY: INTEGER);
  75. PROCEDURE EventQueue (TF: BOOLEAN);
  76. PROCEDURE ExtraSeg (): WORD;
  77. PROCEDURE FileAttr (FILENAME: ARRAY OF CHAR; ATTR: WORD): INTEGER;
  78. PROCEDURE FileDelete (FILENAME: ARRAY OF CHAR): INTEGER;
  79. PROCEDURE FileLoad (FILENAME: ARRAY OF CHAR;
  80. DATAAREA: adsMem; AREASIZE: CARDINAL): INTEGER;
  81. PROCEDURE FileQuery (FILESPEC: ARRAY OF CHAR;
  82. VAR DIRINFO: dirRec; DIRSIZE: CARDINAL): INTEGER;
  83. PROCEDURE FileRename (OLDNAME, NEWNAME: ARRAY OF CHAR): INTEGER;
  84. PROCEDURE FileStore (FILENAME: ARRAY OF CHAR; DATAAREA: adsMem; AREASIZE: CARDINAL): INTEGER;
  85. PROCEDURE FillArc (VAR R: rect; BGNANGLE: INTEGER;
  86. ARCANGLE, PATTERN: INTEGER);
  87. PROCEDURE FillOval (VAR R: rect; PATTERN: INTEGER);
  88. PROCEDURE FillPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  89. POLYPTS: adsPoint; PATTERN: INTEGER);
  90. PROCEDURE FillRect (VAR R: rect; PATTERN: INTEGER);
  91. PROCEDURE FillRoundRect (VAR R: rect; DIAX, DIAY, PATTERN: INTEGER);
  92. PROCEDURE FrameArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER);
  93. PROCEDURE FrameOval (VAR R: rect);
  94. PROCEDURE FramePoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  95. POLYPTS: adsPoint);
  96. PROCEDURE FrameRect (VAR R: rect);
  97. PROCEDURE FrameRoundRect (VAR R: rect; DIAX, DIAY: INTEGER);
  98. PROCEDURE Gbl2LclPt (VAR PT: point);
  99. PROCEDURE Gbl2LclRect (VAR R: rect);
  100. PROCEDURE Gbl2VirPt (VAR PT: point);
  101. PROCEDURE Gbl2VirRect (VAR R: rect);
  102. PROCEDURE GetAddress (VARBL: FarADDRESS; VAR SGM, OFF: INTEGER);
  103. PROCEDURE GetBits (X, Y: INTEGER; VAR SRCMAP: bitmap): LONGINT;
  104. PROCEDURE GetCmdLine (VAR CMDSTRING: ARRAY OF CHAR);
  105. PROCEDURE GetFontField (FIELD: INTEGER): INTEGER;
  106. PROCEDURE GetLPixel (X, Y: INTEGER; VAR LCOLOR: LONGINT);
  107. PROCEDURE GetPenState (VAR STATE: penState);
  108. PROCEDURE GetPixel (X, Y: INTEGER): INTEGER;
  109. PROCEDURE GetPort (VAR PORTPTR: adsPort);
  110. PROCEDURE GrInitErr (ERROR: INTEGER);
  111. PROCEDURE HardCopy (SRCPORT: adsPort): WORD;
  112. PROCEDURE HideCursor ();
  113. PROCEDURE HidePen ();
  114. PROCEDURE ImagePara (VAR R: rect): WORD;
  115. PROCEDURE ImageSize (VAR R: rect): LONGINT;
  116. PROCEDURE InceptRect (VAR RECT1, RECT2, DSTRECT: rect): BOOLEAN;
  117. PROCEDURE InitBitmap (VAR NEWMAP: bitmap; INTERLEAVE,
  118. BASESEG, BASEOFF, INTERSEG, INTEROFF: INTEGER);
  119. PROCEDURE InitGrafix (DEVMODE: INTEGER): INTEGER;
  120. PROCEDURE InitMouse (MOUSPORT: INTEGER);
  121. PROCEDURE InitPort (PORT: adsPort);
  122. PROCEDURE InitRowTable (NEWMAP: adsBMap; INTERLEAVE,
  123. INTERSEG, INTEROFF: INTEGER);
  124. PROCEDURE InsetRect (VAR R: rect; DX, DY: INTEGER);
  125. PROCEDURE InvertArc (VAR R: rect; BGNANGLE, ARCANGLE: INTEGER);
  126. PROCEDURE InvertOval (VAR R: rect);
  127. PROCEDURE InvertPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  128. POLYPTS: adsPoint);
  129. PROCEDURE InvertRect (VAR R: rect);
  130. PROCEDURE InvertRoundRect(VAR R: rect; DIAX, DIAY: INTEGER);
  131. PROCEDURE KeyEvent (WAIT: BOOLEAN; VAR EVNT: event): BOOLEAN;
  132. PROCEDURE Lcl2GblPt (VAR PT: point);
  133. PROCEDURE Lcl2GblRect (VAR R: rect);
  134. PROCEDURE Lcl2VirPt (VAR PT: point);
  135. PROCEDURE Lcl2VirRect (VAR R: rect);
  136. PROCEDURE LimitMouse (XMIN, YMIN, XMAX, YMAX: INTEGER);
  137. PROCEDURE LineRel (DLTX, DLTY: INTEGER);
  138. PROCEDURE LineTo (X, Y: INTEGER);
  139. PROCEDURE LoadFont (FONTNAME: ARRAY OF CHAR): INTEGER;
  140. PROCEDURE LoadPalette (BGNINDEX, ENDINDEX: INTEGER; VAR COLORS: ARRAY OF WORD);
  141. PROCEDURE MapPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  142. POLYPTS: adsPoint; VAR SRCR: rect; VAR DSTR: rect);
  143. PROCEDURE MapPt (VAR PT: point; VAR SRCR, DSTR: rect);
  144. PROCEDURE MapRect (VAR R: rect; VAR SRCR, DSTR: rect);
  145. PROCEDURE MarkerAngle (ANGLE: INTEGER);
  146. PROCEDURE MarkerSize (WIDTH, HEIGHT: INTEGER);
  147. PROCEDURE MarkerType (MARKERNBR: INTEGER);
  148. PROCEDURE MetaVersion (VAR STRING: ARRAY OF CHAR);
  149. PROCEDURE MiterLimit (LIMITANGLE: INTEGER);
  150. PROCEDURE MoveCursor (X, Y: INTEGER);
  151. PROCEDURE MovePortTo (GBLLEFT, GBLTOP: INTEGER);
  152. PROCEDURE MoveRel (DLTX, DLTY: INTEGER);
  153. PROCEDURE MoveTo (X, Y: INTEGER);
  154. PROCEDURE OffsetPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  155. POLYPTS: adsPoint; DX, DY: INTEGER);
  156. PROCEDURE OffsetRect (VAR R: rect; DX, DY: INTEGER);
  157. PROCEDURE OvalPt (VAR R: rect; ANGLE: INTEGER; VAR PT: point);
  158. PROCEDURE PaintArc (VAR R: rect; BGNANGLE, ENDANGLE: INTEGER);
  159. PROCEDURE PaintOval (VAR R: rect);
  160. PROCEDURE PaintPoly (POLYCNT: INTEGER; POLYHDR: adsPolyHead;
  161. POLYPTS: adsPoint);
  162. PROCEDURE PaintRect (VAR R: rect);
  163. PROCEDURE PaintRoundRect (VAR R: rect; DIAX, DIAY: INTEGER);
  164. PROCEDURE PeekEvent (INDEX: INTEGER; VAR EVNT: event): BOOLEAN;
  165. PROCEDURE PenCap (CAPSTYLE: INTEGER);
  166. PROCEDURE PenColor (COLOR: INTEGER);
  167. PROCEDURE PenDash (DASHSTYLE: INTEGER);
  168. PROCEDURE PenJoin (JOINSTYLE: INTEGER);
  169. PROCEDURE PenLColor (LCOLOR: LONGINT);
  170. PROCEDURE PenMode (RASOP: INTEGER);
  171. PROCEDURE PenNormal ();
  172. PROCEDURE PenOffset (DASHOFFSET: INTEGER);
  173. PROCEDURE PenPattern (PATTERN: INTEGER);
  174. PROCEDURE PenSize (DIAX, DIAY: INTEGER);
  175. PROCEDURE PlaneMask (PMASK: INTEGER);
  176. PROCEDURE PolyLine (PTCNT: INTEGER; PTS: adsPoint);
  177. PROCEDURE PolyMarker (NPTS: INTEGER; XYPTS: adsPoint);
  178. PROCEDURE PopGrafix (VAR SAVEAREA: pusharea);
  179. PROCEDURE PortBitmap (NEWMAP: adsBMap);
  180. PROCEDURE PortOrigin (TOPBOT: BOOLEAN);
  181. PROCEDURE PortSize (PIXWIDTHX, PIXHEIGHTY: INTEGER);
  182. PROCEDURE ProtectOff ();
  183. PROCEDURE ProtectRect (VAR R: rect);
  184. PROCEDURE Pt2Rect (VAR PT1, PT2: point; VAR R: rect);
  185. PROCEDURE PtInArc (VAR TESTPT: point; VAR R: rect;
  186. BGNANGLE, ARCANGLE: INTEGER): BOOLEAN;
  187. PROCEDURE PtInOval (VAR TESTPT: point; VAR R: rect): BOOLEAN;
  188. PROCEDURE PtInPoly (VAR TESTPT: point; POLYCNT: INTEGER;
  189. POLYHDRS: adsPolyHead; POLYPTS: adsPoint): BOOLEAN;
  190. PROCEDURE PtInRect (VAR TESTPT: point; VAR R: rect): BOOLEAN;
  191. PROCEDURE PtInRoundRect (VAR TESTPT: point; VAR R: rect;
  192. DIAX, DIAY: INTEGER): BOOLEAN;
  193. PROCEDURE PtOnArc (VAR TESTPT: point; VAR R: rect;
  194. BGNANGLE, ARCANGLE, SIZEX, SIZEY: INTEGER): INTEGER;
  195. PROCEDURE PtOnLine (VAR TESTPT: point; VAR PT1, PT2: point;
  196. SIZEX, SIZEY: INTEGER): BOOLEAN;
  197. PROCEDURE PtOnOval (VAR TESTPT: point; VAR R: rect;
  198. SIZEX, SIZEY: INTEGER): INTEGER;
  199. PROCEDURE PtOnRect (VAR TESTPT: point; VAR R: rect;
  200. SIZEX, SIZEY: INTEGER): INTEGER;
  201. PROCEDURE PtOnRoundRect (VAR TESTPT: point; VAR R: rect;
  202. DIAX, DIAY: INTEGER; SIZEX, SIZEY: INTEGER): INTEGER;
  203. PROCEDURE PtOnPoly (VAR TESTPT: point; POLYCNT: INTEGER;
  204. POLYHDRS: adsPolyHead; POLYPTS: adsPoint;
  205. penX, penY: INTEGER): INTEGER;
  206. PROCEDURE PtToAngle (VAR R: rect; VAR PT: point): INTEGER;
  207. PROCEDURE PushGrafix (VAR SAVEAREA: pusharea);
  208. PROCEDURE QueryColors (): INTEGER;
  209. PROCEDURE QueryComm (): INTEGER;
  210. PROCEDURE QueryCursor (VAR CURSORX, CURSORY, CURSORLEVEL, BUTTONS: INTEGER);
  211. PROCEDURE QueryError (): INTEGER;
  212. PROCEDURE QueryGrafix (): INTEGER;
  213. PROCEDURE QueryPosn (VAR X, Y: INTEGER);
  214. PROCEDURE QueryRes (VAR RESX, RESY: INTEGER);
  215. PROCEDURE QueryX (): INTEGER;
  216. PROCEDURE QueryY (): INTEGER;
  217. PROCEDURE RasterOp (RASOP: INTEGER);
  218. PROCEDURE ReadImage (VAR SRCR: rect; DSTIMAGE: adsImage);
  219. PROCEDURE ReadMouse (VAR X, Y, SW: INTEGER);
  220. PROCEDURE ReadPalette (PALNBR, BGNINDX, ENDINDX: INTEGER; VAR COLORS: ARRAY OF palData);
  221. PROCEDURE ScaleMouse (FACTORX, FACTORY: INTEGER);
  222. PROCEDURE ScalePt (VAR PT: point; VAR SRCR, DSTR: rect);
  223. PROCEDURE ScreenRect (VAR SCRNR: rect);
  224. PROCEDURE ScreenSize (VAR SCRNXMAX, SCRNYMAX: INTEGER);
  225. PROCEDURE ScrollRect (VAR R: rect; DX, DY: INTEGER);
  226. PROCEDURE SetBitmap (PAGE: INTEGER);
  227. PROCEDURE SetBits (X, Y: INTEGER; COLOR: LONGINT; RASOP: INTEGER;
  228. VAR CLIP_RECT: rect; VAR SRCMAP: bitmap);
  229. PROCEDURE SetHardCopy (VAR HCI: HCInfoRec);
  230. PROCEDURE SetDisplay (PAGE: INTEGER);
  231. PROCEDURE SetFont (FONTBUFFER: adsFont);
  232. PROCEDURE SetLocal ();
  233. PROCEDURE SetOrigin (LCLX, LCLY: INTEGER);
  234. PROCEDURE SetPalette (BACKGROUND: INTEGER; PALETTE: WORD);
  235. PROCEDURE SetPenState (VAR STATE: penState);
  236. PROCEDURE SetPixel (X, Y: INTEGER);
  237. PROCEDURE SetPort (NEWPORT: adsPort);
  238. PROCEDURE SetPt (VAR PT: point; X, Y: INTEGER);
  239. PROCEDURE SetRect (VAR R: rect; X1, Y1, X2, Y2: INTEGER);
  240. PROCEDURE SetVirtual ();
  241. PROCEDURE ShiftRect (VAR R: rect; DX, DY: INTEGER; VAR R1, R2: rect): INTEGER;
  242. PROCEDURE ShowCursor ();
  243. PROCEDURE ShowPen ();
  244. PROCEDURE StackPtr (): WORD;
  245. PROCEDURE StackSeg (): WORD;
  246. PROCEDURE StopEvent ();
  247. PROCEDURE StopMouse ();
  248. PROCEDURE StopTimer ();
  249. PROCEDURE StoreEvent (VAR EVNT: event): BOOLEAN;
  250. PROCEDURE StringWidth (TEXTSTR: ARRAY OF CHAR): INTEGER;
  251. PROCEDURE SubPt (VAR SRCPT, DSTPT: point);
  252. PROCEDURE SystemFont (FONTNBR: INTEGER): INTEGER;
  253. PROCEDURE TextAlign (HORZ, VERT: INTEGER);
  254. PROCEDURE TextAngle (ANGLE: INTEGER);
  255. PROCEDURE TextExtra (SPACE: INTEGER);
  256. PROCEDURE TextFace (FACE: INTEGER);
  257. PROCEDURE TextMode (RASOP: INTEGER);
  258. PROCEDURE TextPath (PATH: INTEGER);
  259. PROCEDURE TextScore (GAP: INTEGER);
  260. PROCEDURE TextSize (WIDTHX, HEIGHTY: INTEGER);
  261. PROCEDURE TextSlant (ANGLE: INTEGER);
  262. PROCEDURE TextSpace (SPACE: INTEGER);
  263. PROCEDURE TextUnder (BELOW: INTEGER);
  264. PROCEDURE TextWidth (TEXTSTR: ARRAY OF CHAR; INDEX, COUNT: INTEGER): INTEGER;
  265. PROCEDURE TrackCursor (TF: BOOLEAN);
  266. PROCEDURE UnionRect (VAR RECT1, RECT2, DSTRECT: rect);
  267. PROCEDURE UserMouse (VAR MOUSESVC: MsProc; VAR MCB: MCBtype);
  268. PROCEDURE MouseSvc (I1, I2, I3: INTEGER; VAR MCB: MCBtype);
  269. PROCEDURE UserTimer (VAR TIMERSVC: UsProc; TIMECOUNT: INTEGER; VAR CCB: CCBtype);
  270. PROCEDURE TimerSvc (VAR CCB: CCBtype);
  271. PROCEDURE Vir2GblPt (VAR PT: point);
  272. PROCEDURE Vir2GblRect (VAR R: rect);
  273. PROCEDURE Vir2LclPt (VAR PT: point);
  274. PROCEDURE Vir2LclRect (VAR R: rect);
  275. PROCEDURE VirtualRect (VAR R: rect);
  276. PROCEDURE WriteImage (VAR DSTR: rect; SRCIMAGE: adsImage);
  277. PROCEDURE WritePalette (PALNBR, BGNINDX, ENDINDX: INTEGER; VAR COLORS: ARRAY OF palData);
  278. PROCEDURE XlateImage (SRCIMAGE, DSTIMAGE: adsImage;
  279. DSTBITS, DSTPLANES: INTEGER; VAR XLTABLE: LONGINT);
  280. PROCEDURE XYInRect (X, Y: INTEGER; VAR R: rect): INTEGER;
  281. PROCEDURE ZoomBits (SRCMAP, DSTMAP: adsBMap;
  282. VAR SRCRECT, DSTRECT, DSTCLIP: rect; RASOP: INTEGER);
  283. (*# restore *)
  284. END MW.