GPI.LST 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654
  1. Listing:
  2. 1 (* Release 3.10 *)
  3. 2 (*-------------------------------------------------------------------------*
  4. 3 * *
  5. 4 * GPI.DEF - OS/2 PM GPI interface *
  6. 5 * *
  7. 6 * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  8. 7 * Copyright (c) 1988 Microsoft Corporation *
  9. 8 * All Rights Reserved *
  10. 9 * This file is compatible with OS/2 version 1.2. *
  11. 10 * *
  12. 11 *--------------------------------------------------------------------------*)
  13. 12
  14. 13 (*# call(o_a_size => off,
  15. 14 o_a_copy=>off,
  16. 15 result_optional=>on,
  17. 16 reg_saved => (si, di, ds, st1, st2),
  18. 17 reg_param => (),
  19. 18 seg_name => none,
  20. 19 near_call => off,
  21. 20 ds_eq_ss => off) *)
  22. 21
  23. 22 (*# module(implementation=>off, init_code => off) *)
  24. 23 (*# name(prefix => os2_lib) *)
  25. 24 (*# data(near_ptr => off) *)
  26. 25 (*# check(index=>off,range=>off,overflow=>off,nil_ptr=>off) *)
  27. 26
  28. 27 DEFINITION MODULE Gpi;
  29. 28
  30. 29 (**)
  31. 30 (**--- OS/2 Presentation Manager GPI ---------------------------------------*)
  32. 31 (**)
  33. 32
  34. 33 FROM OS2DEF IMPORT HDC,HRGN,HAB,HPS,HBITMAP,HMF,LSET,POINTL,RECTL,STR8,HMODULE ;
  35. 34
  36. 35 (**)
  37. 36 (*--- Conditional sections, set to TRUE if required ------------------------*)
  38. 37 (**)
  39. 38 CONST
  40. 39 i_CONTROL = TRUE ; (* PS control *)
  41. 40 i_CORR = TRUE ; (* Picking, boundary and correlation *)
  42. 41 i_SEGM = TRUE ; (* Segment control and drawing *)
  43. 42 i_SEGMEDIT = TRUE ; (* Segment editing *)
  44. 43 i_TRANSF = TRUE ; (* Transforms and transform conversion *)
  45. 44 i_PATH = FALSE; (* Paths and clipping with paths *)
  46. 45 i_COLORTAB = TRUE ; (* Logical color tables *)
  47. 46 i_PRIM1 = TRUE ; (* Drawing primitives *)
  48. 47 i_PRIM2 = TRUE ; (* Drawing primitives uncommon *)
  49. 48 i_LCID = FALSE; (* Physical and logical fonts *)
  50. 49 i_BITMAP1 = TRUE ; (* Bitmaps and pel operations *)
  51. 50 i_BITMAP2 = TRUE ; (* Bitmaps and pel operations uncommon *)
  52. 51 i_BITMAP3 = FALSE; (* Bitmaps file formats *)
  53. 52 i_REGION = FALSE; (* Regions and clipping with regions *)
  54. 53 i_METAF = FALSE; (* Metafiles *)
  55. 54 i_DEFAULT = FALSE; (* Gpi Defaults *)
  56. 55 i_ORDER = FALSE; (* GOCA orders *)
  57. 56 i_FONT = FALSE; (* Font structures *)
  58. 57
  59. 58
  60. 59 (**)
  61. 60 (**--- Win General section 1 -----------------------------------------------*)
  62. 61 (**)
  63. 62
  64. 63 CONST
  65. 64 GPI_ERROR = 0; GPI_OK = 1; GPI_HITS = 2; (* HITSRET Correlation Error *)
  66. 65 GPI_ALTERROR = -1; (* GPIRET, >=0 returns value *)
  67. 66
  68. 67 TYPE
  69. 68
  70. 69 FIXED = RECORD frac : CARDINAL; int : INTEGER; END;
  71. ***** ^ not supported yet
  72. 70
  73. 71 GPIRET = LONGINT;
  74. 72 HITSRET = LONGINT;
  75. 73
  76. 74 TYPE
  77. 75
  78. 76 SIZEL = RECORD
  79. 77 cx : LONGINT;
  80. 78 cy : LONGINT;
  81. 79 END;
  82. ***** ^ not supported yet
  83. 80
  84. 81 CONST
  85. 82 CLR_NOINDEX = -254;
  86. 83 PU_ARBITRARY = 04H; PU_PELS = 08H; PU_LOMETRIC = 0CH; PU_HIMETRIC = 010H;
  87. 84 PU_LOENGLISH = 014H; PU_HIENGLISH = 018H; PU_TWIPS = 01CH;
  88. 85 GPIF_DEFAULT = 0; GPIF_SHORT = 0100H; GPIF_LONG = 0200H;
  89. 86 GPIT_NORMAL = 0; GPIT_MICRO = 01000H;
  90. 87 GPIA_NOASSOC = 0; GPIA_ASSOC = 04000H;
  91. 88 HDC_ERROR = HDC(-1);
  92. ***** ^ not supported yet
  93. ***** ^ not supported yet
  94. 89
  95. 90 PROCEDURE CreatePS(a:HAB; c:HDC; VAR s:SIZEL; o:LONGCARD) : HPS;
  96. ***** ^ undeclared identifier
  97. 91 PROCEDURE DestroyPS(h:HPS) : BOOLEAN;
  98. 92 PROCEDURE Associate(h:HPS; c:HDC) : BOOLEAN;
  99. 93 PROCEDURE RestorePS(h:HPS; p:LONGINT) : BOOLEAN;
  100. 94 PROCEDURE SavePS(h:HPS) : LONGINT;
  101. 95 PROCEDURE Erase(h:HPS) : BOOLEAN;
  102. 96 PROCEDURE QueryDevice(h:HPS) : HDC;
  103. 97
  104. 98 (**)
  105. 99 (**--- Gpi Control --------------------------------------------------------*)
  106. 100 (**)
  107. 101 (*%T i_CONTROL*)
  108. 102
  109. 103 CONST
  110. 104 (* options for GpiResetPS *)
  111. 105 GRES_ATTRS = LSET(01H); GRES_SEGMENTS = LSET(02H); GRES_ALL = LSET(04H);
  112. ***** ^ not supported yet
  113. ***** ^ not supported yet
  114. ***** ^ not supported yet
  115. ***** ^ not supported yet
  116. ***** ^ not supported yet
  117. ***** ^ not supported yet
  118. 106 (* option masks for PS options used by GpiQueryPs *)
  119. 107 PS_UNITS = LSET(0FCH);
  120. ***** ^ not supported yet
  121. ***** ^ not supported yet
  122. 108 PS_FORMAT = LSET(0F00H);
  123. ***** ^ not supported yet
  124. ***** ^ not supported yet
  125. 109 PS_TYPE = LSET(01000H);
  126. ***** ^ not supported yet
  127. ***** ^ not supported yet
  128. 110 PS_MODE = LSET(02000H);
  129. ***** ^ not supported yet
  130. ***** ^ not supported yet
  131. 111 PS_ASSOCIATE = LSET(04000H);
  132. ***** ^ not supported yet
  133. ***** ^ not supported yet
  134. 112 PS_NORESET = LSET(08000H);
  135. ***** ^ not supported yet
  136. ***** ^ not supported yet
  137. 113 (* error context returned by GpiErrorSegmentData *)
  138. 114 GPIE_SEGMENT = 0; GPIE_ELEMENT = 1; GPIE_DATA = 2;
  139. 115 (* control parameter for GpiSetDrawControl *)
  140. 116 DCTL_ERASE = 1; DCTL_DISPLAY = 2; DCTL_BOUNDARY = 3; DCTL_DYNAMIC = 4;
  141. 117 DCTL_CORRELATE = 5;
  142. 118 (* constants for GpiSet/QueryDrawControl *)
  143. 119 DCTL_ERROR = -1; DCTL_OFF = 0; DCTL_ON = 1;
  144. 120 (* constants for GpiSet/QueryStopDraw *)
  145. 121 SDW_ERROR = -1; SDW_OFF = 0; SDW_ON = 1;
  146. 122 (* drawing for GpiSet/QueryDrawingMode *)
  147. 123 DM_ERROR = 0; DM_DRAW = 1; DM_RETAIN = 2; DM_DRAWANDRETAIN = 3;
  148. 124
  149. 125 PROCEDURE ResetPS(h:HPS; o:LSET) : BOOLEAN;
  150. 126 PROCEDURE SetPS(h:HPS; VAR s:SIZEL; o:LONGCARD) : BOOLEAN;
  151. ***** ^ undeclared identifier
  152. 127 PROCEDURE QueryPS(h:HPS; VAR s:SIZEL) : LSET;
  153. 128 PROCEDURE ErrorSegmentData(h:HPS; VAR s:LONGCARD; VAR c:LONGINT) : GPIRET;
  154. ***** ^ undeclared identifier
  155. 129 PROCEDURE QueryDrawControl(h:HPS; c:LONGINT) : LONGINT;
  156. 130 PROCEDURE SetDrawControl(h:HPS; c,v:LONGINT) : BOOLEAN;
  157. 131 PROCEDURE QueryDrawingMode(h:HPS) : LONGINT;
  158. 132 PROCEDURE SetDrawingMode(h:HPS; m:LONGINT) : BOOLEAN;
  159. 133 PROCEDURE QueryStopDraw(h:HPS) : LONGINT;
  160. 134 PROCEDURE SetStopDraw(h:HPS; v:LONGINT) : BOOLEAN;
  161. 135
  162. 136 (*%E*)
  163. 137 (**)
  164. 138 (**--- Gpi Correlation ----------------------------------------------------*)
  165. 139 (**)
  166. 140 (*%T i_CORR*)
  167. 141
  168. 142 CONST
  169. 143 (* options for GpiSetPickApertureSize *)
  170. 144 PICKAP_DEFAULT = 0; PICKAP_REC = 2;
  171. 145 (* type of correlation for GpiCorrelateChain *)
  172. 146 PICKSEL_VISIBLE = 0; PICKSEL_ALL = 1;
  173. 147
  174. 148 PROCEDURE CorrelateChain(h:HPS; t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR s:ARRAY OF LONGINT) : LONGINT;
  175. ***** ^ undeclared identifier
  176. ***** ^ not supported yet
  177. 149 PROCEDURE QueryTag(h:HPS; VAR t:LONGINT) : BOOLEAN;
  178. 150 PROCEDURE SetTag(h:HPS; t:LONGINT) : BOOLEAN;
  179. 151 PROCEDURE QueryPickApertureSize(h:HPS; VAR s:SIZEL) : BOOLEAN;
  180. 152 PROCEDURE SetPickApertureSize(h:HPS; o:LONGINT; VAR s:SIZEL) : BOOLEAN;
  181. 153 PROCEDURE QueryPickAperturePosition(h:HPS; VAR p:POINTL) : BOOLEAN;
  182. 154 PROCEDURE SetPickAperturePosition(h:HPS; VAR p:POINTL) : BOOLEAN;
  183. 155 PROCEDURE QueryBoundaryData(h:HPS; VAR r:RECTL) : BOOLEAN;
  184. 156 PROCEDURE ResetBoundaryData(h:HPS) : BOOLEAN;
  185. 157 PROCEDURE CorrelateFrom(h:HPS; f,l:LONGCARD; t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR s:ARRAY OF LONGINT) : LONGINT;
  186. ***** ^ undeclared identifier
  187. ***** ^ undeclared identifier
  188. ***** ^ not supported yet
  189. 158 PROCEDURE CorrelateSegment(h:HPS; s,t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR a:ARRAY OF LONGINT) : LONGINT;
  190. ***** ^ undeclared identifier
  191. ***** ^ not supported yet
  192. 159
  193. 160 (*%E*)
  194. 161 (**)
  195. 162 (**--- Gpi Segments -------------------------------------------------------*)
  196. 163 (**)
  197. 164 (*%T i_SEGM*)
  198. 165
  199. 166 CONST
  200. 167 (* data formats for GpiPutData and GpiGetData *)
  201. 168 DFORM_NOCONV = 0; DFORM_S370SHORT = 1; DFORM_PCSHORT = 2; DFORM_PCLONG = 4;
  202. 169 (* segment attributes used by GpiSet/QuerySegmentAttrs and others *)
  203. 170 ATTR_ERROR = -1; ATTR_DETECTABLE = 1; ATTR_VISIBLE = 2; ATTR_CHAINED = 6;
  204. 171 ATTR_DYNAMIC = 8; ATTR_FASTCHAIN = 9; ATTR_PROP_DETECTABLE = 10; ATTR_PROP_VISIBLE = 11;
  205. 172 ATTR_OFF = 0; ATTR_ON = 1;
  206. 173 (* segment priority used by GpiSetSegmentPriority and others *)
  207. 174 LOWER_PRI = -1; HIGHER_PRI = 1;
  208. 175
  209. 176 (* segment control functions *)
  210. 177 PROCEDURE OpenSegment(h:HPS; s:LONGCARD) : BOOLEAN;
  211. ***** ^ undeclared identifier
  212. 178 PROCEDURE CloseSegment(h:HPS) :BOOLEAN;
  213. 179 PROCEDURE DeleteSegment(h:HPS; s:LONGCARD) : BOOLEAN;
  214. ***** ^ undeclared identifier
  215. 180 PROCEDURE QueryInitialSegmentAttrs(h:HPS; a:LONGINT) : LONGINT;
  216. 181 PROCEDURE SetInitialSegmentAttrs(h:HPS; a,v:LONGINT) : BOOLEAN;
  217. 182 PROCEDURE QuerySegmentAttrs(h:HPS; i:LONGCARD; a:LONGINT) : LONGINT;
  218. ***** ^ undeclared identifier
  219. 183 PROCEDURE SetSegmentAttrs(h:HPS; s:LONGCARD; a,v:LONGINT) : BOOLEAN;
  220. ***** ^ undeclared identifier
  221. 184 PROCEDURE QuerySegmentPriority(h:HPS; s:LONGCARD; o:LONGINT) : GPIRET;
  222. ***** ^ undeclared identifier
  223. 185 PROCEDURE SetSegmentPriority(h:HPS; s,r:LONGCARD; o:LONGINT) : BOOLEAN;
  224. ***** ^ undeclared identifier
  225. 186 PROCEDURE DeleteSegments(h:HPS; f,l:LONGCARD) : BOOLEAN;
  226. ***** ^ undeclared identifier
  227. 187 PROCEDURE QuerySegmentNames(h:HPS; f,l,m:LONGCARD; VAR s:ARRAY OF LONGCARD) : GPIRET;
  228. ***** ^ undeclared identifier
  229. ***** ^ undeclared identifier
  230. 188 (* draw functions for segments *)
  231. 189 PROCEDURE GetData(h:HPS; s:LONGCARD; VAR o:LONGINT; f:LONGCARD; l:LONGCARD; VAR d:ARRAY OF BYTE) : GPIRET;
  232. ***** ^ undeclared identifier
  233. ***** ^ undeclared identifier
  234. ***** ^ undeclared identifier
  235. ***** ^ undeclared identifier
  236. 190 PROCEDURE PutData(h:HPS; f:LONGINT; VAR c:LONGCARD; d:ARRAY OF BYTE) : HITSRET;
  237. ***** ^ undeclared identifier
  238. ***** ^ undeclared identifier
  239. 191 PROCEDURE DrawChain(h:HPS) : BOOLEAN;
  240. 192 PROCEDURE DrawFrom(h:HPS; f,l:LONGCARD) : BOOLEAN;
  241. ***** ^ undeclared identifier
  242. 193 PROCEDURE DrawSegment(h:HPS; s:LONGCARD) : BOOLEAN;
  243. ***** ^ undeclared identifier
  244. 194 PROCEDURE DrawDynamics(h:HPS) : BOOLEAN;
  245. 195 PROCEDURE RemoveDynamics(h:HPS; f,l:LONGCARD) : BOOLEAN;
  246. ***** ^ undeclared identifier
  247. 196
  248. 197 (*%E*)
  249. 198 (**)
  250. 199 (**--- Gpi Segment Editing ------------------------------------------------*)
  251. 200 (**)
  252. 201 (*%T i_SEGMEDIT*)
  253. 202
  254. 203 CONST
  255. 204 (* edit modes used by GpiSet/QueryEditMode *)
  256. 205 SEGEM_ERROR = 0; SEGEM_INSERT = 1; SEGEM_REPLACE = 2;
  257. 206
  258. 207 (*** segment editing by element functions *)
  259. 208 PROCEDURE BeginElement(h:HPS; t:LONGINT; d:ARRAY OF CHAR) : BOOLEAN;
  260. ***** ^ not supported yet
  261. 209 PROCEDURE EndElement(h:HPS) : BOOLEAN;
  262. 210 PROCEDURE Label(h:HPS; l:LONGINT) : BOOLEAN;
  263. 211 PROCEDURE Element(h:HPS; t:LONGINT; s:ARRAY OF CHAR; l:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
  264. ***** ^ not supported yet
  265. ***** ^ undeclared identifier
  266. ***** ^ undeclared identifier
  267. 212 PROCEDURE QueryElement(h:HPS; o,m:LONGCARD; VAR b:ARRAY OF BYTE) : GPIRET;
  268. ***** ^ undeclared identifier
  269. ***** ^ undeclared identifier
  270. 213 PROCEDURE DeleteElement(h:HPS) : BOOLEAN;
  271. 214 PROCEDURE DeleteElementRange(h:HPS; f,l:LONGINT) : BOOLEAN;
  272. 215 PROCEDURE DeleteElementsBetweenLabels(h:HPS; f,l:LONGINT) : BOOLEAN;
  273. 216 PROCEDURE QueryEditMode(h:HPS) : LONGINT;
  274. 217 PROCEDURE SetEditMode(h:HPS; m:LONGINT) : BOOLEAN;
  275. 218 PROCEDURE QueryElementPointer(h:HPS) : GPIRET;
  276. 219 PROCEDURE SetElementPointer(h:HPS; e:LONGINT) : BOOLEAN;
  277. 220 PROCEDURE OffsetElementPointer(h:HPS; o:LONGINT) : BOOLEAN;
  278. 221 PROCEDURE QueryElementType(h:HPS; VAR t:LONGINT; c:LONGCARD; VAR d:ARRAY OF CHAR) : GPIRET;
  279. ***** ^ undeclared identifier
  280. ***** ^ not supported yet
  281. 222 PROCEDURE SetElementPointerAtLabel(h:HPS; l:LONGINT) : BOOLEAN;
  282. 223
  283. 224 (*%E*)
  284. 225 (**)
  285. 226 (**--- Gpi Transforms -----------------------------------------------------*)
  286. 227 (**)
  287. 228 (*%T i_TRANSF*)
  288. 229
  289. 230 CONST
  290. 231 (* co-ordinates space for GpiConvert *)
  291. 232 CVTC_WORLD = 1; CVTC_MODEL = 2; CVTC_DEFAULTPAGE = 3; CVTC_PAGE = 4;
  292. 233 CVTC_DEVICE = 5;
  293. 234 (* type of transformation for GpiSetSegmentTransformMatrix *)
  294. 235 TRANSFORM_REPLACE = 0; TRANSFORM_ADD = 1; TRANSFORM_PREEMPT = 2;
  295. 236
  296. 237 TYPE
  297. 238
  298. 239 (* transform matrix *)
  299. 240 MATRIXLF = RECORD
  300. 241 M11,M12 : FIXED;
  301. 242 M13 : LONGINT;
  302. 243 M21,M22 : FIXED;
  303. 244 M23 : LONGINT;
  304. 245 M31,M32,M33 : LONGINT;
  305. 246 END;
  306. ***** ^ not supported yet
  307. 247
  308. 248 PROCEDURE QuerySegmentTransformMatrix(h:HPS; s,c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
  309. ***** ^ undeclared identifier
  310. ***** ^ not supported yet
  311. 249 PROCEDURE SetSegmentTransformMatrix(h:HPS; s,c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
  312. ***** ^ undeclared identifier
  313. ***** ^ not supported yet
  314. 250 PROCEDURE Convert(h:HPS; s,t:LONGINT; c:LONGCARD; VAR p:ARRAY OF POINTL) : BOOLEAN;
  315. ***** ^ undeclared identifier
  316. ***** ^ not supported yet
  317. 251 PROCEDURE QueryModelTransformMatrix(h:HPS; c:LONGCARD; VAR m:MATRIXLF) : BOOLEAN;
  318. ***** ^ undeclared identifier
  319. 252 PROCEDURE SetModelTransformMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
  320. ***** ^ undeclared identifier
  321. ***** ^ not supported yet
  322. 253 PROCEDURE CallSegmentMatrix(h:HPS; s:LONGCARD; c:LONGCARD; VAR m:MATRIXLF; o:LONGINT) : HITSRET;
  323. ***** ^ undeclared identifier
  324. ***** ^ undeclared identifier
  325. 254 PROCEDURE QueryDefaultViewMatrix(h:HPS; c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
  326. ***** ^ undeclared identifier
  327. ***** ^ not supported yet
  328. 255 PROCEDURE SetDefaultViewMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
  329. ***** ^ undeclared identifier
  330. ***** ^ not supported yet
  331. 256 PROCEDURE QueryPageViewport(h:HPS; VAR r:RECTL) : BOOLEAN;
  332. 257 PROCEDURE SetPageViewport(h:HPS; VAR r:RECTL) : BOOLEAN;
  333. 258 PROCEDURE QueryViewingTransformMatrix(h:HPS; c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
  334. ***** ^ undeclared identifier
  335. ***** ^ not supported yet
  336. 259 PROCEDURE SetViewingTransformMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
  337. ***** ^ undeclared identifier
  338. ***** ^ not supported yet
  339. 260 (*** transform helper routines *)
  340. 261 PROCEDURE Translate(h: HPS; VAR m: MATRIXLF; l:LONGINT; VAR p:POINTL): BOOLEAN;
  341. 262 PROCEDURE Scale(h: HPS; VAR m:MATRIXLF; l:LONGINT; VAR f:FIXED; VAR p:POINTL): BOOLEAN;
  342. 263 PROCEDURE Rotate(h: HPS; VAR m:MATRIXLF; l:LONGINT; f:FIXED; VAR p:POINTL): BOOLEAN;
  343. 264 (*** general clipping functions *)
  344. 265 PROCEDURE SetGraphicsField(h:HPS; VAR r:RECTL) : BOOLEAN;
  345. 266 PROCEDURE QueryGraphicsField(h:HPS; VAR r:RECTL) : BOOLEAN;
  346. 267 PROCEDURE SetViewingLimits(h:HPS; VAR r:RECTL) : BOOLEAN;
  347. 268 PROCEDURE QueryViewingLimits(h:HPS; VAR r:RECTL) : BOOLEAN;
  348. 269
  349. 270 (*%E*)
  350. 271 (**)
  351. 272 (**--- Gpi Paths ----------------------------------------------------------*)
  352. 273 (**)
  353. 274 (*%T i_PATH*)
  354. 275
  355. 276 CONST
  356. 277 (* modes for GpiModifyPath *)
  357. 278 MPATH_STROKE = 6;
  358. 279 (* modes for GpiFillPath *)
  359. 280 FPATH_ALTERNATE = 0; FPATH_WINDING = 2;
  360. 281 (* modes for GpiSetClipPath *)
  361. 282 SCP_ALTERNATE = 0; SCP_WINDING = 2; SCP_AND = 4; SCP_RESET = 0;
  362. 283
  363. 284 PROCEDURE BeginPath(h:HPS; i:LONGINT) : BOOLEAN;
  364. 285 PROCEDURE EndPath(h:HPS) : BOOLEAN;
  365. 286 PROCEDURE CloseFigure(h:HPS) : BOOLEAN;
  366. 287 PROCEDURE ModifyPath(h:HPS; p:LONGCARD; m:LONGINT) : BOOLEAN;
  367. ***** ^ undeclared identifier
  368. 288 PROCEDURE FillPath(h:HPS; p:LONGCARD; o:LONGINT) : HITSRET;
  369. ***** ^ undeclared identifier
  370. 289 PROCEDURE SetClipPath(h:HPS; p:LONGCARD; o:LONGINT) : BOOLEAN;
  371. ***** ^ undeclared identifier
  372. 290 PROCEDURE OutlinePath(h:HPS; Path: LONGINT; Options: LONGINT): LONGINT;
  373. 291 PROCEDURE StrokePath(h:HPS; p,o:LONGCARD) : HITSRET;
  374. ***** ^ undeclared identifier
  375. 292
  376. 293 (*%E*)
  377. 294 (**)
  378. 295 (**--- Gpi Logical Color Tables -------------------------------------------*)
  379. 296 (**)
  380. 297 (*%T i_COLORTAB*)
  381. 298
  382. 299 CONST
  383. 300 (* options for GpiCreateLogColorTable and others *)
  384. 301 LCOL_RESET = LSET(01H); LCOL_REALIZABLE = LSET(02H); LCOL_PURECOLOR = LSET(04H);
  385. ***** ^ not supported yet
  386. ***** ^ not supported yet
  387. ***** ^ not supported yet
  388. ***** ^ not supported yet
  389. ***** ^ not supported yet
  390. ***** ^ not supported yet
  391. 302 (* format of logical lColor table for GpiCreateLogColorTable and others *)
  392. 303 LCOLF_DEFAULT = 0; LCOLF_INDRGB = 1; LCOLF_CONSECRGB = 2; LCOLF_RGB = 3;
  393. 304 (* options for GpiQueryRealColors and others *)
  394. 305 LCOLOPT_REALIZED = LSET(01H); LCOLOPT_INDEX = LSET(02H);
  395. ***** ^ not supported yet
  396. ***** ^ not supported yet
  397. ***** ^ not supported yet
  398. ***** ^ not supported yet
  399. 306 (* return codes from GpiQueryLogColorTable to indicate it is in RGB mode *)
  400. 307 QLCT_ERROR = -1; QLCT_RGB = -2;
  401. 308 (* GpiQueryLogColorTable index returned for colors not explicitly loaded *)
  402. 309 QLCT_NOTLOADED = -1;
  403. 310 (* return codes for GpiQueryColorData *)
  404. 311 QCD_LCT_FORMAT = 0; QCD_LCT_LOINDEX = 1; QCD_LCT_HIINDEX = 2;
  405. 312
  406. 313 (* logical lColor table functions *)
  407. 314 PROCEDURE CreateLogColorTable(h:HPS; o:LSET; f:LONGINT; s,c:LONGCARD; VAR t:ARRAY OF LONGINT) : BOOLEAN;
  408. ***** ^ undeclared identifier
  409. ***** ^ not supported yet
  410. 315 PROCEDURE RealizeColorTable(h:HPS) : BOOLEAN;
  411. 316 PROCEDURE UnrealizeColorTable(h:HPS) : BOOLEAN;
  412. 317 PROCEDURE QueryColorData(h:HPS; c:LONGCARD; VAR a:ARRAY OF LONGINT) : BOOLEAN;
  413. ***** ^ undeclared identifier
  414. ***** ^ not supported yet
  415. 318 PROCEDURE QueryLogColorTable(h:HPS; o:LSET; s,c:LONGCARD; VAR a:ARRAY OF LONGINT) : LONGINT;
  416. ***** ^ undeclared identifier
  417. ***** ^ not supported yet
  418. 319 PROCEDURE QueryRealColors(h:HPS; o:LSET; s,c:LONGCARD; VAR a:ARRAY OF LONGINT) : GPIRET;
  419. ***** ^ undeclared identifier
  420. ***** ^ not supported yet
  421. 320 PROCEDURE QueryNearestColor(h:HPS; o:LSET; r:LONGINT) : GPIRET;
  422. 321 PROCEDURE QueryColorIndex(h:HPS; o:LSET; c:LONGINT) : LONGINT;
  423. 322 PROCEDURE QueryRGBColor(h:HPS; o:LSET; i:LONGINT) : GPIRET;
  424. 323
  425. 324 (*%E*)
  426. 325 (**)
  427. 326 (**--- Gpi Common Primitives ----------------------------------------------*)
  428. 327 (**)
  429. 328 (*%T i_PRIM1*)
  430. 329
  431. 330 CONST
  432. 331 (* default color table indices *)
  433. 332 CLR_FALSE = -5;
  434. 333 CLR_TRUE = -4;
  435. 334 CLR_ERROR = -255;
  436. 335 CLR_DEFAULT = -3;
  437. 336 CLR_WHITE = -2;
  438. 337 CLR_BLACK = -1;
  439. 338 CLR_BACKGROUND = 0;
  440. 339 CLR_BLUE = 1;
  441. 340 CLR_RED = 2;
  442. 341 CLR_PINK = 3;
  443. 342 CLR_GREEN = 4;
  444. 343 CLR_CYAN = 5;
  445. 344 CLR_YELLOW = 6;
  446. 345 CLR_NEUTRAL = 7;
  447. 346 CLR_DARKGRAY = 8;
  448. 347 CLR_DARKBLUE = 9;
  449. 348 CLR_DARKRED = 10;
  450. 349 CLR_DARKPINK = 11;
  451. 350 CLR_DARKGREEN = 12;
  452. 351 CLR_DARKCYAN = 13;
  453. 352 CLR_BROWN = 14;
  454. 353 CLR_PALEGRAY = 15;
  455. 354 (* rgb colors *)
  456. 355 RGB_ERROR = -255; RGB_BLACK = 00H; RGB_BLUE = 0FFH; RGB_GREEN = 0FF00H;
  457. 356 RGB_CYAN = 0FFFFH; RGB_RED = 0FF0000H; RGB_PINK = 0FF00FFH; RGB_YELLOW = 0FFFF00H;
  458. 357 RGB_WHITE = 0FFFFFFH;
  459. 358 (* control flags used by GpiBeginArea *)
  460. 359 BA_NOBOUNDARY = LSET(0); BA_BOUNDARY = LSET(01H); BA_ALTERNATE = LSET(0); BA_WINDING = LSET(02H);
  461. ***** ^ not supported yet
  462. ***** ^ not supported yet
  463. ***** ^ not supported yet
  464. ***** ^ not supported yet
  465. ***** ^ not supported yet
  466. ***** ^ not supported yet
  467. ***** ^ not supported yet
  468. ***** ^ not supported yet
  469. 360 (* fill options for GpiBox/GpiFullArc *)
  470. 361 DRO_FILL = 1; DRO_OUTLINE = 2; DRO_OUTLINEFILL = 3;
  471. 362 (* basic pattern symbols *)
  472. 363 PATSYM_ERROR = -1; PATSYM_DEFAULT = 0; PATSYM_DENSE1 = 1; PATSYM_DENSE2 = 2;
  473. 364 PATSYM_DENSE3 = 3; PATSYM_DENSE4 = 4; PATSYM_DENSE5 = 5; PATSYM_DENSE6 = 6;
  474. 365 PATSYM_DENSE7 = 7; PATSYM_DENSE8 = 8; PATSYM_VERT = 9; PATSYM_HORIZ = 10;
  475. 366 PATSYM_DIAG1 = 11; PATSYM_DIAG2 = 12; PATSYM_DIAG3 = 13; PATSYM_DIAG4 = 14;
  476. 367 PATSYM_NOSHADE = 15; PATSYM_SOLID = 16; PATSYM_BLANK = 64; PATSYM_HALFTONE = 17;
  477. 368 (* lcid values for GpiSet/QueryPattern and others *)
  478. 369 LCID_ERROR = -1; LCID_DEFAULT = 0;
  479. 370
  480. 371 PROCEDURE SetColor(h:HPS; c:LONGINT) : BOOLEAN;
  481. 372 PROCEDURE QueryColor(h:HPS) : LONGINT;
  482. 373 PROCEDURE Box(h:HPS; c:LONGINT; VAR p:POINTL; hr,vr:LONGINT) : HITSRET;
  483. 374 PROCEDURE Move(h:HPS; VAR p:POINTL) : BOOLEAN;
  484. 375 PROCEDURE Line(h:HPS; VAR p:POINTL) : HITSRET;
  485. 376 PROCEDURE PolyLine(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : GPIRET;
  486. ***** ^ undeclared identifier
  487. ***** ^ not supported yet
  488. 377 PROCEDURE SetPattern(h:HPS; p:LONGINT) : BOOLEAN;
  489. 378 PROCEDURE QueryPattern(h:HPS) : LONGINT;
  490. 379 PROCEDURE BeginArea(h:HPS; o:LSET) : BOOLEAN;
  491. 380 PROCEDURE EndArea(h:HPS) : HITSRET;
  492. 381 PROCEDURE CharString(h:HPS; c:LONGCARD; s:ARRAY OF CHAR) : HITSRET;
  493. ***** ^ undeclared identifier
  494. ***** ^ not supported yet
  495. 382 PROCEDURE CharStringAt(h:HPS; VAR p:POINTL; c:LONGCARD; s:ARRAY OF CHAR) : HITSRET;
  496. ***** ^ undeclared identifier
  497. ***** ^ not supported yet
  498. 383
  499. 384 (*%E*)
  500. 385 (**)
  501. 386 (**--- Gpi Uncommon Primitives --------------------------------------------*)
  502. 387 (**)
  503. 388 (*%T i_PRIM2*)
  504. 389
  505. 390 CONST
  506. 391 (* mode for GpiSetAttrMode *)
  507. 392 AM_ERROR = -1; AM_PRESERVE = 0; AM_NOPRESERVE = 1;
  508. 393 (* foreground mixes *)
  509. 394 FM_ERROR = -1; FM_DEFAULT = 0; FM_OR = 1; FM_OVERPAINT = 2;
  510. 395 FM_LEAVEALONE = 5; FM_XOR = 4; FM_AND = 6; FM_SUBTRACT = 7;
  511. 396 FM_MASKSRCNOT = 8; FM_ZERO = 9; FM_NOTMERGESRC = 10; FM_NOTXORSRC = 11;
  512. 397 FM_INVERT = 12; FM_MERGESRCNOT = 13; FM_NOTCOPYSRC = 14; FM_MERGENOTSRC = 15;
  513. 398 FM_NOTMASKSRC = 16; FM_ONE = 17;
  514. 399 (* background mixes *)
  515. 400 BM_ERROR = -1; BM_DEFAULT = 0; BM_OVERPAINT = 2; BM_LEAVEALONE = 5;
  516. 401 BM_OR = 1; BM_XOR = 4;
  517. 402 (* basic line type styles *)
  518. 403 LINETYPE_ERROR = -1; LINETYPE_DEFAULT = 0; LINETYPE_DOT = 1; LINETYPE_SHORTDASH = 2;
  519. 404 LINETYPE_DASHDOT = 3; LINETYPE_DOUBLEDOT = 4; LINETYPE_LONGDASH = 5; LINETYPE_DASHDOUBLEDOT = 6;
  520. 405 LINETYPE_SOLID = 7; LINETYPE_INVISIBLE = 8; LINETYPE_ALTERNATE = 9;
  521. 406 (* cosmetic line widths *)
  522. 407 LINEWIDTH_ERROR = -1; LINEWIDTH_DEFAULT = 0; LINEWIDTH_NORMAL = 010000H;
  523. 408 (* actual line widths *)
  524. 409 LINEWIDTHGEOM_ERROR = -1;
  525. 410 (* line end styles *)
  526. 411 LINEEND_ERROR = -1; LINEEND_DEFAULT = 0; LINEEND_FLAT = 1; LINEEND_SQUARE = 2;
  527. 412 LINEEND_ROUND = 3;
  528. 413 (* line join styles *)
  529. 414 LINEJOIN_ERROR = -1; LINEJOIN_DEFAULT = 0; LINEJOIN_BEVEL = 1; LINEJOIN_ROUND = 2;
  530. 415 LINEJOIN_MITRE = 3;
  531. 416 (* character directions *)
  532. 417 CHDIRN_ERROR = -1; CHDIRN_DEFAULT = 0; CHDIRN_LEFTRIGHT = 1; CHDIRN_TOPBOTTOM = 2;
  533. 418 CHDIRN_RIGHTLEFT = 3; CHDIRN_BOTTOMTOP = 4;
  534. 419 (* character modes *)
  535. 420 CM_ERROR = -1; CM_DEFAULT = 0; CM_MODE1 = 1; CM_MODE2 = 2;
  536. 421 CM_MODE3 = 3;
  537. 422 (* basic marker symbols *)
  538. 423 MARKSYM_ERROR = -1; MARKSYM_DEFAULT = 0; MARKSYM_CROSS = 1; MARKSYM_PLUS = 2;
  539. 424 MARKSYM_DIAMOND = 3; MARKSYM_SQUARE = 4; MARKSYM_SIXPOINTSTAR = 5; MARKSYM_EIGHTPOINTSTAR = 6;
  540. 425 MARKSYM_SOLIDDIAMOND = 7; MARKSYM_SOLIDSQUARE = 8; MARKSYM_DOT = 9; MARKSYM_SMALLCIRCLE = 10;
  541. 426 MARKSYM_BLANK = 64;
  542. 427 (* formatting options for GpiCharStringPosAt *)
  543. 428 CHS_OPAQUE = LSET(01H); CHS_VECTOR = LSET(02H); CHS_LEAVEPOS = LSET(08H); CHS_CLIP = LSET(010H);
  544. ***** ^ not supported yet
  545. ***** ^ not supported yet
  546. ***** ^ not supported yet
  547. ***** ^ not supported yet
  548. ***** ^ not supported yet
  549. ***** ^ not supported yet
  550. ***** ^ not supported yet
  551. ***** ^ not supported yet
  552. 429
  553. 430 (* bundle codes for GpiSetAttributes and GpiQueryAttributes *)
  554. 431 PRIM_LINE = 1;
  555. 432 PRIM_CHAR = 2;
  556. 433 PRIM_MARKER = 3;
  557. 434 PRIM_AREA = 4;
  558. 435 PRIM_IMAGE = 5;
  559. 436 (* line bundle mask bits *)
  560. 437 LBB_COLOR = LSET{0};
  561. ***** ^ not supported yet
  562. 438 LBB_MIX_MODE = LSET{2};
  563. 439 LBB_WIDTH = LSET{4};
  564. 440 LBB_GEOM_WIDTH = LSET{5};
  565. 441 LBB_TYPE = LSET{6};
  566. 442 LBB_END = LSET{7};
  567. 443 LBB_JOIN = LSET{8};
  568. 444 (* character bundle mask bits *)
  569. 445 CBB_COLOR = LSET{0};
  570. 446 CBB_BACK_COLOR = LSET{1};
  571. 447 CBB_MIX_MODE = LSET{2};
  572. 448 CBB_BACK_MIX_MODE = LSET{3};
  573. 449 CBB_SET = LSET{4};
  574. 450 CBB_MODE = LSET{5};
  575. 451 CBB_BOX = LSET{6};
  576. 452 CBB_ANGLE = LSET{7};
  577. 453 CBB_SHEAR = LSET{8};
  578. 454 CBB_DIRECTION = LSET{9};
  579. 455 (* marker bundle mask bits *)
  580. 456 MBB_COLOR = LSET{0};
  581. 457 MBB_BACK_COLOR = LSET{1};
  582. 458 MBB_MIX_MODE = LSET{2};
  583. 459 MBB_BACK_MIX_MODE = LSET{3};
  584. 460 MBB_SET = LSET{4};
  585. 461 MBB_SYMBOL = LSET{5};
  586. 462 MBB_BOX = LSET{6};
  587. 463 (* pattern bundle mask bits *)
  588. 464 ABB_COLOR = LSET{0};
  589. 465 ABB_BACK_COLOR = LSET{1};
  590. 466 ABB_MIX_MODE = LSET{2};
  591. 467 ABB_BACK_MIX_MODE = LSET{3};
  592. 468 ABB_SET = LSET{4};
  593. 469 ABB_SYMBOL = LSET{5};
  594. 470 ABB_REF_POINT = LSET{6};
  595. 471 (* image bundle mask bits *)
  596. 472 IBB_COLOR = LSET{0};
  597. 473 IBB_BACK_COLOR = LSET{1};
  598. 474 IBB_MIX_MODE = LSET{2};
  599. 475 IBB_BACK_MIX_MODE = LSET{3};
  600. 476
  601. 477 TYPE
  602. 478 (* structure for GpiSetArcParams and GpiQueryArcParams *)
  603. 479 ARCPARAMS = RECORD
  604. 480 P,Q,R,S : LONGINT;
  605. 481 END;
  606. 482
  607. 483 (* variation of SIZE used for FIXEDs *)
  608. 484 SIZEF = RECORD
  609. 485 cx,cy : LONGINT;
  610. 486 END;
  611. 487
  612. 488 (* structure for gradient parameters e.g. for GpiSetCharAngle *)
  613. 489 GRADIENTL = RECORD
  614. 490 x,y : LONGINT;
  615. 491 END;
  616. 492
  617. 493 (* line bundle for GpiSetAttributes and GpiQueryAttributes *)
  618. 494 LINEBUNDLE = RECORD
  619. 495 Color : LONGINT;
  620. 496 Reserved : LONGINT;
  621. 497 MixMode : CARDINAL;
  622. 498 Reserved2 : CARDINAL;
  623. 499 Width : LONGINT;
  624. 500 GeomWidth : LONGINT;
  625. 501 Type : CARDINAL;
  626. 502 End : CARDINAL;
  627. 503 Join : CARDINAL;
  628. 504 END;
  629. 505
  630. 506 (* character bundle for GpiSetAttributes and GpiQueryAttributes *)
  631. 507 CHARBUNDLE = RECORD
  632. 508 Color : LONGINT;
  633. 509 BackColor : LONGINT;
  634. 510 MixMode : CARDINAL;
  635. 511 BackMixMode : CARDINAL;
  636. 512 Set : CARDINAL;
  637. 513 Precision : CARDINAL;
  638. 514 Cell : SIZEF;
  639. 515 Angle : POINTL;
  640. 516 Shear : POINTL;
  641. 517 Direction : CARDINAL;
  642. 518 END;
  643. 519
  644. 520 (* marker bundle for GpiSetAttributes and GpiQueryAttributes *)
  645. 521 MARKERBUNDLE = RECORD
  646. 522 Color : LONGINT;
  647. 523 BackColor : LONGINT;
  648. 524 MixMode : CARDINAL;
  649. 525 BackMixMode : CARDINAL;
  650. 526 Set : CARDINAL;
  651. 527 Symbol : CARDINAL;
  652. 528 Cell : SIZEF;
  653. 529 END;
  654. 530
  655. 531 (* pattern bundle for GpiSetAttributes and GpiQueryAttributes *)
  656. 532 AREABUNDLE = RECORD
  657. 533 Color : LONGINT;
  658. 534 BackColor : LONGINT;
  659. 535 MixMode : CARDINAL;
  660. 536 BackMixMode : CARDINAL;
  661. 537 Set : CARDINAL;
  662. 538 Symbol : CARDINAL;
  663. 539 RefPoint : POINTL;
  664. 540 END;
  665. 541
  666. 542 (* image bundle for GpiSetAttributes and GpiQueryAttributes *)
  667. 543 IMAGEBUNDLE = RECORD
  668. 544 Color : LONGINT;
  669. 545 BackColor : LONGINT;
  670. 546 MixMode : CARDINAL;
  671. 547 BackMixMode : CARDINAL;
  672. 548 END;
  673. 549 (* pointer to any bundle used by GpiSet/QueryAttrs *)
  674. 550 PBUNDLE = FarADDRESS;
  675. 551
  676. 552 CONST
  677. 553 (* array indices for GpiQueryTextBox *)
  678. 554 TXTBOX_TOPLEFT = 0; TXTBOX_BOTTOMLEFT = 1; TXTBOX_TOPRIGHT = 2; TXTBOX_BOTTOMRIGHT = 3;
  679. 555 TXTBOX_CONCAT = 4; TXTBOX_COUNT = 5;
  680. 556 (* return codes for GpiPtVisible *)
  681. 557 PVIS_ERROR = 0; PVIS_INVISIBLE = 1; PVIS_VISIBLE = 2;
  682. 558 (* return codes for GpiRectVisible *)
  683. 559 RVIS_ERROR = 0; RVIS_INVISIBLE = 1; RVIS_PARTIAL = 2; RVIS_VISIBLE = 3;
  684. 560
  685. 561 (*** attribute mode functions *)
  686. 562 PROCEDURE SetAttrMode(h:HPS; m:LONGINT) : BOOLEAN;
  687. 563 PROCEDURE QueryAttrMode(h:HPS) : LONGINT;
  688. 564 PROCEDURE SetAttrs(h:HPS; p:LONGINT; a,d:LSET; b:FarADDRESS) : BOOLEAN;
  689. 565 PROCEDURE QueryAttrs(h:HPS; p:LONGINT; a:LSET; b:FarADDRESS) : LSET;
  690. 566 PROCEDURE SetBackColor(h:HPS; c:LONGINT) : BOOLEAN;
  691. 567 PROCEDURE QueryBackColor(h:HPS) : LONGINT;
  692. 568 PROCEDURE SetMix(h:HPS; m:LONGINT) : BOOLEAN;
  693. 569 PROCEDURE QueryMix(h:HPS) : LONGINT;
  694. 570 PROCEDURE SetBackMix(h:HPS; c:LONGINT) : BOOLEAN;
  695. 571 PROCEDURE QueryBackMix(h:HPS) : LONGINT;
  696. 572 PROCEDURE SetLineType(h:HPS; t:LONGINT) : BOOLEAN;
  697. 573 PROCEDURE QueryLineType(h:HPS) : LONGINT;
  698. 574 PROCEDURE SetLineWidth(h:HPS; w:FIXED) : BOOLEAN;
  699. 575 PROCEDURE QueryLineWidth(h:HPS) : LONGINT;
  700. 576 PROCEDURE SetLineWidthGeom(h:HPS; w:LONGINT) : BOOLEAN;
  701. 577 PROCEDURE QueryLineWidthGeom(h:HPS) : LONGINT;
  702. 578 PROCEDURE SetLineEnd(h:HPS; e:LONGINT) : BOOLEAN;
  703. 579 PROCEDURE QueryLineEnd(h:HPS) : LONGINT;
  704. 580 PROCEDURE SetLineJoin(h:HPS; j:LONGINT) : BOOLEAN;
  705. 581 PROCEDURE QueryLineJoin(h:HPS) : LONGINT;
  706. 582 PROCEDURE SetCurrentPosition(h:HPS; VAR p:POINTL) : BOOLEAN;
  707. 583 PROCEDURE QueryCurrentPosition(h:HPS; VAR p:POINTL) : BOOLEAN;
  708. 584 PROCEDURE SetArcParams(h:HPS; VAR a:ARCPARAMS) : BOOLEAN;
  709. 585 PROCEDURE QueryArcParams(h:HPS; VAR a:ARCPARAMS) : BOOLEAN;
  710. 586 PROCEDURE PointArc(h:HPS; VAR p:POINTL) : HITSRET;
  711. 587 PROCEDURE FullArc(h:HPS; c:LONGINT; m:FIXED) : HITSRET;
  712. 588 PROCEDURE PartialArc(h:HPS; VAR p:POINTL; m:FIXED; a,s:LONGINT) : HITSRET;
  713. 589 PROCEDURE PolyFilletSharp(h:HPS; c:LONGCARD; p:ARRAY OF POINTL; s:ARRAY OF FIXED) : HITSRET;
  714. 590 PROCEDURE PolySpline(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : HITSRET;
  715. 591 PROCEDURE PolyFillet(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : HITSRET;
  716. 592 PROCEDURE SetPatternSet(h:HPS; s:LONGINT) : BOOLEAN;
  717. 593 PROCEDURE QueryPatternSet(h:HPS) : LONGINT;
  718. 594 PROCEDURE SetPatternRefPoint(h:HPS; VAR p:POINTL) : BOOLEAN;
  719. 595 PROCEDURE QueryPatternRefPoint(h:HPS; VAR p:POINTL) : BOOLEAN;
  720. 596 PROCEDURE QueryCharStringPos(h:HPS; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; x:ARRAY OF LONGINT; VAR p:ARRAY OF POINTL) : BOOLEAN;
  721. 597 PROCEDURE QueryCharStringPosAt(h:HPS; VAR p:POINTL; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; x:ARRAY OF LONGINT; VAR po:ARRAY OF POINTL) : BOOLEAN;
  722. 598 PROCEDURE QueryTextBox(h:HPS; c:LONGCARD; s:ARRAY OF CHAR; c2:LONGCARD; VAR p:ARRAY OF POINTL) : BOOLEAN;
  723. 599 PROCEDURE QueryDefCharBox(h:HPS; VAR s:SIZEL) : BOOLEAN;
  724. 600 PROCEDURE SetCharSet(h:HPS; i:LONGINT) : BOOLEAN;
  725. 601 PROCEDURE QueryCharSet(h:HPS) : LONGINT;
  726. 602 PROCEDURE SetCharBox(h:HPS; VAR b:SIZEF) : BOOLEAN;
  727. 603 PROCEDURE QueryCharBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
  728. 604 PROCEDURE SetCharAngle(h:HPS; VAR a:GRADIENTL) : BOOLEAN;
  729. 605 PROCEDURE QueryCharAngle(h:HPS; VAR a:GRADIENTL) : BOOLEAN;
  730. 606 PROCEDURE SetCharShear(h:HPS; VAR p:POINTL) : BOOLEAN;
  731. 607 PROCEDURE QueryCharShear(h:HPS; VAR p:POINTL) : BOOLEAN;
  732. 608 PROCEDURE SetCharDirection(h:HPS; d:LONGINT) : BOOLEAN;
  733. 609 PROCEDURE QueryCharDirection(h:HPS) : LONGINT;
  734. 610 PROCEDURE SetCharMode(h:HPS; m:LONGINT) : BOOLEAN;
  735. 611 PROCEDURE QueryCharMode(h:HPS) : LONGINT;
  736. 612 PROCEDURE CharStringPos(h:HPS; VAR r:RECTL; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; VAR i: ARRAY OF LONGINT) : HITSRET;
  737. 613 PROCEDURE CharStringPosAt(h:HPS; VAR p:POINTL; VAR r:RECTL; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; VAR i:ARRAY OF LONGINT) : HITSRET;
  738. 614 PROCEDURE SetMarkerSet(h:HPS; s:LONGINT) : BOOLEAN;
  739. 615 PROCEDURE QueryMarkerSet(h:HPS) : LONGINT;
  740. 616 PROCEDURE SetMarker(h:HPS; s:LONGINT) : BOOLEAN;
  741. 617 PROCEDURE QueryMarker(h:HPS) :LONGINT;
  742. 618 PROCEDURE SetMarkerBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
  743. 619 PROCEDURE QueryMarkerBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
  744. 620 PROCEDURE Marker(h:HPS; VAR p:POINTL) : HITSRET;
  745. 621 PROCEDURE PolyMarker(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : GPIRET;
  746. 622 PROCEDURE Image(h:HPS; f:LONGINT; VAR s:SIZEL; l:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
  747. 623 PROCEDURE Pop(h:HPS; c:LONGCARD) : BOOLEAN;
  748. 624 PROCEDURE PtVisible(h:HPS; VAR p:POINTL) : LONGINT;
  749. 625 PROCEDURE RectVisible(h:HPS; VAR r:RECTL) : LONGINT;
  750. 626 PROCEDURE Comment(h:HPS; l:LONGCARD; VAR b:ARRAY OF BYTE) : BOOLEAN;
  751. 627
  752. 628 (*%E*)
  753. 629 (**)
  754. 630 (**--- Gpi LCIDS ----------------------------------------------------------*)
  755. 631 (**)
  756. 632 (*%T i_LCID*)
  757. 633
  758. 634 CONST
  759. 635 (* return codes from GpiCreateLogFont *)
  760. 636 FONT_DEFAULT = 1;
  761. 637 FONT_MATCH = 2;
  762. 638 (* lcid type for GpiQuerySetIds *)
  763. 639 LCIDT_FONT = 6;
  764. 640 LCIDT_BITMAP = 7;
  765. 641 LCID_ALL = -1;
  766. 642
  767. 643 TYPE
  768. 644 (* kerning data returned by GpiQueryKerningPairs *)
  769. 645 KERNINGPAIRS = RECORD
  770. 646 FirstChar : INTEGER;
  771. 647 SecondChar : INTEGER;
  772. 648 KerningAmount : INTEGER;
  773. 649 END;
  774. 650
  775. 651 CONST
  776. 652 (* options for GpiQueryFonts *)
  777. 653 QF_PUBLIC = LSET(01H);
  778. 654 QF_PRIVATE = LSET(02H);
  779. 655
  780. 656 TYPE
  781. 657 (* font file descriptions for GpiQueryFontFileDescriptions *)
  782. 658 FFDESCS = ARRAY [0..1] OF ARRAY [0..31] OF CHAR;
  783. 659
  784. 660 CONST
  785. 661 (* values of Selection field of FATTRS structure *)
  786. 662 FATTR_SEL_ITALIC = 001H;
  787. 663 FATTR_SEL_UNDERSCORE = 002H;
  788. 664 FATTR_SEL_OUTLINE = 008H;
  789. 665 FATTR_SEL_STRIKEOUT = 010H;
  790. 666 FATTR_SEL_BOLD = 020H;
  791. 667
  792. 668 (* values of Type field of FATTRS structure *)
  793. 669 FATTR_TYPE_FIXED = 002H;
  794. 670 FATTR_TYPE_KERNING = 004H;
  795. 671 FATTR_TYPE_MBCS = 008H;
  796. 672 FATTR_TYPE_DBCS = 010H;
  797. 673 FATTR_TYPE_ANTIALIASED= 020H;
  798. 674
  799. 675 (* values of FontUse field of FATTRS structure *)
  800. 676 FATTR_FONTUSE_NOMIX = 002H;
  801. 677 FATTR_FONTUSE_OUTLINE = 004H;
  802. 678 FATTR_FONTUSE_TRANSFORMABLE = 008H;
  803. 679
  804. 680 (* size for fields in the font structures *)
  805. 681 FACESIZE = 32;
  806. 682
  807. 683 TYPE
  808. 684 FATTRS = RECORD
  809. 685 RecordLength : CARDINAL;
  810. 686 Selection : CARDINAL;
  811. 687 Match : LONGINT;
  812. 688 FaceName : ARRAY [0..31] OF CHAR;
  813. 689 IdRegistry : CARDINAL;
  814. 690 CodePage : CARDINAL;
  815. 691 MaxBaselineExt : LONGINT;
  816. 692 AveCharWidth : LONGINT;
  817. 693 Type : CARDINAL;
  818. 694 FontUse : CARDINAL;
  819. 695 END;
  820. 696
  821. 697 CONST
  822. 698 (* values of fsType field of FONTMETRICS structure *)
  823. 699 FM_TYPE_FIXED = 0001H;
  824. 700 FM_TYPE_LICENSED = 0002H;
  825. 701 FM_TYPE_KERNING = 0004H;
  826. 702 FM_TYPE_DBCS = 0010H;
  827. 703 FM_TYPE_MBCS = 0018H;
  828. 704 FM_TYPE_64K = 8000H;
  829. 705
  830. 706 (* values of fsDefn field of FONTMETRICS structure *)
  831. 707 FM_DEFN_OUTLINE = 0;
  832. 708 FM_DEFN_GENERIC = 15;
  833. 709
  834. 710 (* values of fsSelection field of FONTMETRICS structure *)
  835. 711 FM_SEL_ITALIC = 0001H;
  836. 712 FM_SEL_UNDERSCORE = 0002H;
  837. 713 FM_SEL_NEGATIVE = 0004H;
  838. 714 FM_SEL_OUTLINE = 0008H; (* Hollow Outline Font *)
  839. 715 FM_SEL_STRIKEOUT = 0010H;
  840. 716 FM_SEL_BOLD = 0020H;
  841. 717
  842. 718 (* values of fsCapabilities field of FONTMETRICS structure *)
  843. 719 FM_CAP_NOMIX = 0001H;
  844. 720
  845. 721 TYPE
  846. 722 FONTMETRICS = RECORD
  847. 723 Familyname : ARRAY [0..31] OF CHAR;
  848. 724 Facename : ARRAY [0..31] OF CHAR;
  849. 725 IdRegistry : INTEGER;
  850. 726 CodePage : INTEGER;
  851. 727 EmHeight : LONGINT;
  852. 728 XHeight : LONGINT;
  853. 729 MaxAscender : LONGINT;
  854. 730 MaxDescender : LONGINT;
  855. 731 LowerCaseAscent : LONGINT;
  856. 732 LowerCaseDescent : LONGINT;
  857. 733 InternalLeading : LONGINT;
  858. 734 ExternalLeading : LONGINT;
  859. 735 AveCharWidth : LONGINT;
  860. 736 MaxCharInc : LONGINT;
  861. 737 EmInc : LONGINT;
  862. 738 MaxBaselineExt : LONGINT;
  863. 739 CharSlope : INTEGER;
  864. 740 InlineDir : INTEGER;
  865. 741 CharRot : INTEGER;
  866. 742 WeightClass : CARDINAL;
  867. 743 WidthClass : CARDINAL;
  868. 744 XDeviceRes : INTEGER;
  869. 745 YDeviceRes : INTEGER;
  870. 746 FirstChar : INTEGER;
  871. 747 LastChar : INTEGER;
  872. 748 DefaultChar : INTEGER;
  873. 749 BreakChar : INTEGER;
  874. 750 NominalPointSize : INTEGER;
  875. 751 MinimumPointSize : INTEGER;
  876. 752 MaximumPointSize : INTEGER;
  877. 753 Type : CARDINAL;
  878. 754 Defn : BITSET;
  879. 755 Selection : CARDINAL;
  880. 756 Capabilities : CARDINAL;
  881. 757 SubscriptXSize : LONGINT;
  882. 758 SubscriptYSize : LONGINT;
  883. 759 SubscriptXOffset : LONGINT;
  884. 760 SubscriptYOffset : LONGINT;
  885. 761 SuperscriptXSize : LONGINT;
  886. 762 SuperscriptYSize : LONGINT;
  887. 763 SuperscriptXOffset : LONGINT;
  888. 764 SuperscriptYOffset : LONGINT;
  889. 765 UnderscoreSize : LONGINT;
  890. 766 UnderscorePosition : LONGINT;
  891. 767 StrikeoutSize : LONGINT;
  892. 768 StrikeoutPosition : LONGINT;
  893. 769 KerningPairs : INTEGER;
  894. 770 Reserved : INTEGER;
  895. 771 Match : LONGINT;
  896. 772 END;
  897. 773
  898. 774 (*** physical and logical font functions *)
  899. 775 PROCEDURE DeleteSetId(h:HPS; i:LONGINT) : BOOLEAN;
  900. 776 PROCEDURE QueryNumberSetIds(h:HPS) : GPIRET;
  901. 777 PROCEDURE QuerySetIds(h:HPS; c:LONGCARD; VAR t:ARRAY OF LONGINT; VAR n:ARRAY OF STR8; VAR i:ARRAY OF LONGCARD) : BOOLEAN;
  902. 778 PROCEDURE LoadFonts(a:HAB; f:ARRAY OF CHAR) : BOOLEAN;
  903. 779 PROCEDURE UnloadFonts(a:HAB; f:ARRAY OF CHAR) : BOOLEAN;
  904. 780 PROCEDURE CreateLogFont(h:HPS; VAR n:STR8; i:LONGCARD; VAR a:FATTRS) : LONGINT;
  905. 781 PROCEDURE QueryFonts(h:HPS; o:LSET; f:ARRAY OF CHAR; VAR c:LONGINT; l:LONGINT; VAR m:ARRAY OF FONTMETRICS) : LONGINT;
  906. 782 PROCEDURE QueryFontMetrics(h:HPS; c:LONGCARD; VAR m:ARRAY OF FONTMETRICS) : BOOLEAN;
  907. 783 PROCEDURE QueryKerningPairs(h:HPS; c:LONGCARD; VAR d:ARRAY OF KERNINGPAIRS) : GPIRET;
  908. 784 PROCEDURE QueryWidthTable(h:HPS; f,c:LONGCARD; VAR d:ARRAY OF LONGCARD) : BOOLEAN;
  909. 785 PROCEDURE SetCp(h:HPS; p:CARDINAL) : BOOLEAN;
  910. 786 PROCEDURE QueryCp(h:HPS) : CARDINAL;
  911. 787 PROCEDURE QueryFontFileDescriptions(a:HAB; f:ARRAY OF CHAR; VAR c:LONGCARD; VAR d:ARRAY OF FFDESCS) : GPIRET;
  912. 788
  913. 789 (*%E*)
  914. 790 (**)
  915. 791 (**--- Gpi Common BITMAP functions ----------------------------------------*)
  916. 792 (**)
  917. 793 (*%T i_BITMAP1*)
  918. 794
  919. 795 CONST
  920. 796 (* rastor operations defined for GpiBitBlt *)
  921. 797 ROP_SRCCOPY = 0CCH; ROP_SRCPAINT = 0EEH; ROP_SRCAND = 088H; ROP_SRCINVERT = 066H;
  922. 798 ROP_SRCERASE = 044H; ROP_NOTSRCCOPY = 033H; ROP_NOTSRCERASE = 011H; ROP_MERGECOPY = 0C0H;
  923. 799 ROP_MERGEPAINT = 0BBH; ROP_PATCOPY = 0F0H; ROP_PATPAINT = 0FBH; ROP_PATINVERT = 05AH;
  924. 800 ROP_DSTINVERT = 055H; ROP_ZERO = 00H; ROP_ONE = 0FFH;
  925. 801 (* Blt options for GpiBitBlt *)
  926. 802 BBO_OR = LSET(0); BBO_AND = LSET(1); BBO_IGNORE = LSET(2);
  927. 803 (* error return for GpiSetBitmap *)
  928. 804 HBM_ERROR = HBITMAP(-1);
  929. 805
  930. 806 (*** bitmap and pel functions *)
  931. 807 PROCEDURE LoadBitmap(s:HPS; r:HMODULE; b:CARDINAL; w,h:LONGCARD) : HBITMAP;
  932. 808 PROCEDURE DeleteBitmap(b:HBITMAP) : BOOLEAN;
  933. 809 PROCEDURE SetBitmap(h:HPS; b:HBITMAP) : HBITMAP;
  934. 810 PROCEDURE BitBlt(t,s:HPS; c:LONGCARD; VAR p:ARRAY OF POINTL; r:LONGCARD; o:LSET) : HITSRET;
  935. 811 PROCEDURE WCBitBlt(h:HPS; b:HBITMAP; c:LONGCARD; p:ARRAY OF POINTL; r:LONGINT; o:LSET) : HITSRET;
  936. 812
  937. 813 (*%E*)
  938. 814 (**)
  939. 815 (**--- Gpi Uncommon BITMAP Funtions ---------------------------------------*)
  940. 816 (**)
  941. 817 (*%T i_BITMAP2*)
  942. 818
  943. 819 CONST
  944. 820 (* usage flags for GpiCreateBitmap *)
  945. 821 CBM_INIT = LSET(04H);
  946. 822
  947. 823 TYPE
  948. 824
  949. 825 (* bitmap parameterization used by GpiCreateBitmap and others *)
  950. 826 BITMAPINFOHEADER = RECORD
  951. 827 Fix : LONGCARD;
  952. 828 x : CARDINAL;
  953. 829 y : CARDINAL;
  954. 830 Planes : CARDINAL;
  955. 831 BitCount : CARDINAL;
  956. 832 END;
  957. 833
  958. 834 (* RGB data for _BITMAPINFO struct *)
  959. 835 RGB = RECORD
  960. 836 Blue : SHORTCARD;
  961. 837 Green : SHORTCARD;
  962. 838 Red : SHORTCARD;
  963. 839 END;
  964. 840
  965. 841 (* bitmap data used by GpiSetBitmapBits and others *)
  966. 842 BITMAPINFO = RECORD
  967. 843 Fix : LONGCARD;
  968. 844 x : CARDINAL;
  969. 845 y : CARDINAL;
  970. 846 Planes : CARDINAL;
  971. 847 BitCount : CARDINAL;
  972. 848 Color : ARRAY [0..0] OF RGB; (* *** *)
  973. 849 END;
  974. 850
  975. 851 CONST
  976. 852 (* error return code for GpiSet/QueryBitmapBits *)
  977. 853 BMB_ERROR = -1;
  978. 854
  979. 855 (*** bitmap and pel functions *)
  980. 856 PROCEDURE CreateBitmap(h:HPS; VAR n:BITMAPINFOHEADER; o:LSET; VAR d:ARRAY OF BYTE; VAR i:BITMAPINFO) : HBITMAP;
  981. 857 PROCEDURE SetBitmapDimension(b:HBITMAP; VAR s:SIZEL) : BOOLEAN;
  982. 858 PROCEDURE QueryBitmapDimension(b:HBITMAP; VAR s:SIZEL) : BOOLEAN;
  983. 859 PROCEDURE QueryDeviceBitmapFormats(h:HPS; c:LONGCARD; VAR a:ARRAY OF LONGINT) : BOOLEAN;
  984. 860 PROCEDURE QueryBitmapParameters(b:HBITMAP; VAR i:BITMAPINFOHEADER) : BOOLEAN;
  985. 861 PROCEDURE QueryBitmapBits(h:HPS; s,n:LONGCARD; VAR b:ARRAY OF BYTE; VAR i:BITMAPINFO) : GPIRET;
  986. 862 PROCEDURE SetBitmapBits(h:HPS; s,n :LONGCARD; b:ARRAY OF BYTE; VAR d:BITMAPINFO) : GPIRET;
  987. 863 PROCEDURE SetPel(h:HPS; VAR p:POINTL) : LONGINT;
  988. 864 PROCEDURE QueryPel(h:HPS; VAR p:POINTL) : GPIRET;
  989. 865 PROCEDURE SetBitmapId(h:HPS; b:HBITMAP; y:LONGINT) : BOOLEAN;
  990. 866 PROCEDURE QueryBitmapHandle(h:HPS; i:LONGINT) : HBITMAP;
  991. 867
  992. 868 (*%E*)
  993. 869 (**)
  994. 870 (**--- Bitmap file formats ------------------------------------------------*)
  995. 871 (**)
  996. 872 (*%T i_BITMAP3*)
  997. 873
  998. 874 (*
  999. 875 * This is the file format structure for Bit Maps, Pointers and Icons
  1000. 876 * as stored in the resource file of a PM application.
  1001. 877 *
  1002. 878 * Notes on file format:
  1003. 879 * Each BITMAPFILEHEADER entry is immediately followed by the color table
  1004. 880 * for the bit map bits it references.
  1005. 881 * Icons and Pointers contain two BITMAPFILEHEADERs for each ARRAYHEADER
  1006. 882 * item. The first one is for the ANDXOR mask, the second is for the
  1007. 883 * COLOR mask. All offsets are absolute based on the start of the FILE.
  1008. 884 *)
  1009. 885
  1010. 886 TYPE
  1011. 887 BITMAPFILEHEADER = RECORD
  1012. 888 Type: CARDINAL;
  1013. 889 Size: LONGCARD;
  1014. 890 xHotspot: INTEGER;
  1015. 891 yHotspot: INTEGER;
  1016. 892 offBits : LONGCARD;
  1017. 893 bmp : BITMAPINFOHEADER;
  1018. 894 END;
  1019. 895
  1020. 896 (* This is the 1.2 device independent format header *)
  1021. 897 BITMAPARRAYFILEHEADER = RECORD
  1022. 898 Type: CARDINAL;
  1023. 899 Size: LONGCARD;
  1024. 900 offNext : LONGCARD;
  1025. 901 cxDisplay: CARDINAL;
  1026. 902 cyDisplay: CARDINAL;
  1027. 903 bfh : BITMAPFILEHEADER;
  1028. 904 END;
  1029. 905
  1030. 906 (* These are the identifying values that go in the usType field of the
  1031. 907 * BITMAPFILEHEADER and BITMAPARRAYFILEHEADER. (BFT_ => Bit map File Type) *)
  1032. 908 CONST
  1033. 909 BFT_ICON = 04349H; (* 'IC' *)
  1034. 910 BFT_BMAP = 04D42H; (* 'BM' *)
  1035. 911 BFT_POINTER = 05450H; (* 'PT' *)
  1036. 912 BFT_COLORICON = 04943H; (* 'CI' *)
  1037. 913 BFT_COLORPOINTER = 05043H; (* 'CP' *)
  1038. 914 BFT_BITMAPARRAY = 04142H; (* 'BA' *)
  1039. 915
  1040. 916 (*%E*)
  1041. 917 (**)
  1042. 918 (**--- Gpi Regions --------------------------------------------------------*)
  1043. 919 (**)
  1044. 920 (*%T i_REGION*)
  1045. 921
  1046. 922 CONST
  1047. 923 (* options for GpiCombineRegion *)
  1048. 924 CRGN_OR = 1; CRGN_COPY = 2; CRGN_XOR = 4; CRGN_AND = 6; CRGN_DIFF = 7;
  1049. 925 (* usDirection of returned region data for GpiQueryRegionRects *)
  1050. 926 RECTDIR_LFRT_TOPBOT = 1; RECTDIR_RTLF_TOPBOT = 2; RECTDIR_LFRT_BOTTOP = 3; RECTDIR_RTLF_BOTTOP = 4;
  1051. 927
  1052. 928 TYPE
  1053. 929
  1054. 930 (* control data for GpiQueryRegionRects *)
  1055. 931 RGNRECT = RECORD
  1056. 932 Start : CARDINAL;
  1057. 933 crc : CARDINAL;
  1058. 934 crcReturned : CARDINAL;
  1059. 935 Direction : CARDINAL;
  1060. 936 END;
  1061. 937
  1062. 938 CONST
  1063. 939 (* return code to indicate type of region for GpiCombineRegion and others *)
  1064. 940 RGN_ERROR = 0; RGN_NULL = 1; RGN_RECT = 2; RGN_COMPLEX = 3;
  1065. 941 (* return codes for GpiPtInRegion *)
  1066. 942 PRGN_ERROR = 0; PRGN_OUTSIDE = 1; PRGN_INSIDE = 2;
  1067. 943 (* return codes for GpiRectInRegion *)
  1068. 944 RRGN_ERROR = 0; RRGN_OUTSIDE = 1; RRGN_PARTIAL = 2; RRGN_INSIDE = 3;
  1069. 945 (* return codes for GpiEqualRegion *)
  1070. 946 EQRGN_ERROR = 0; EQRGN_NOTEQUAL = 1; EQRGN_EQUAL = 2;
  1071. 947 (* error return code for GpiSetRegion *)
  1072. 948 HRGN_ERROR = HRGN(-1);
  1073. 949
  1074. 950 (*** main region functions *)
  1075. 951 PROCEDURE CreateRegion(h:HPS; c:LONGCARD; VAR r:ARRAY OF RECTL) : HRGN;
  1076. 952 PROCEDURE SetRegion(h:HPS; r:HRGN; c:LONGCARD; a:ARRAY OF RECTL) : BOOLEAN;
  1077. 953 PROCEDURE DestroyRegion(h:HPS; r:HRGN) : BOOLEAN;
  1078. 954 PROCEDURE CombineRegion(h:HPS; d,s1,s2:HRGN; m:LONGCARD) : LONGINT;
  1079. 955 PROCEDURE EqualRegion(h:HPS; s1,s2:HRGN) : LONGINT;
  1080. 956 PROCEDURE OffsetRegion(h:HPS; r:HRGN; VAR p:POINTL) : BOOLEAN;
  1081. 957 PROCEDURE PtInRegion(h:HPS; r:HRGN; VAR p:POINTL) : LONGINT;
  1082. 958 PROCEDURE RectInRegion(h:HPS; r:HRGN; VAR t:RECTL) : LONGINT;
  1083. 959 PROCEDURE QueryRegionBox(h:HPS; r:HRGN; VAR b:RECTL) : LONGINT;
  1084. 960 PROCEDURE QueryRegionRects(h:HPS; r:HRGN; VAR b:RECTL; VAR c:RGNRECT; VAR a:ARRAY OF RECTL) : BOOLEAN;
  1085. 961 PROCEDURE PaintRegion(h:HPS; r:HRGN) : HITSRET;
  1086. 962 PROCEDURE SetClipRegion(h:HPS; r:HRGN; VAR o:HRGN) : LONGINT;
  1087. 963 PROCEDURE QueryClipRegion(h:HPS) : HRGN;
  1088. 964 PROCEDURE QueryClipBox(h:HPS; VAR r:RECTL) : LONGINT;
  1089. 965 PROCEDURE IntersectClipRectangle(h:HPS; VAR r:RECTL) : LONGINT;
  1090. 966 PROCEDURE ExcludeClipRectangle(h:HPS; VAR r:RECTL) : LONGINT;
  1091. 967 PROCEDURE OffsetClipRegion(h:HPS; VAR p:POINTL) : LONGINT;
  1092. 968
  1093. 969 (*%E*)
  1094. 970 (**)
  1095. 971 (**--- Gpi Metafiles ------------------------------------------------------*)
  1096. 972 (**)
  1097. 973 (*%T i_METAF*)
  1098. 974
  1099. 975 CONST
  1100. 976 (* constants for index values of options array for GpiPlayMetafile *)
  1101. 977 PMF_SEGBASE = 0; PMF_LOADTYPE = 1; PMF_RESOLVE = 2; PMF_LCIDS = 3;
  1102. 978 PMF_RESET = 4; PMF_SUPPRESS = 5; PMF_COLORTABLES = 6; PMF_COLORREALIZABLE = 7;
  1103. 979 (* options for GpiPlayMetafile *)
  1104. 980 RS_DEFAULT = 0; RS_NODISCARD = 1;
  1105. 981 LC_DEFAULT = 0; LC_NOLOAD = 1; LC_LOADDISC = 3;
  1106. 982 LT_DEFAULT = 0; LT_NOMODIFY = 1; LT_ORIGINALVIEW = 4;
  1107. 983 RES_DEFAULT = 0; RES_NORESET = 1; RES_RESET = 2;
  1108. 984 SUP_DEFAULT = 0; SUP_NOSUPPRESS = 1; SUP_SUPPRESS = 2;
  1109. 985 CTAB_DEFAULT = 0; CTAB_NOMODIFY = 1; CTAB_REPLACE = 3;
  1110. 986 CREA_DEFAULT = 0; CREA_REALIZE = 1; CREA_NOREALIZE = 2;
  1111. 987 DDEF_DEFAULT = 0; DDEF_IGNORE = 1; DDEF_LOADDISC = 3;
  1112. 988 RSP_DEFAULT = 0; RSP_NODISCARD = 1;
  1113. 989
  1114. 990 PROCEDURE LoadMetaFile(a:HAB; f:ARRAY OF CHAR) : HMF;
  1115. 991 PROCEDURE PlayMetaFile(h:HPS; f:HMF; c1:LONGCARD; VAR o:ARRAY OF LONGINT; VAR s:LONGCARD; c2:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
  1116. 992 PROCEDURE SaveMetaFile(f:HMF; n:ARRAY OF CHAR) : BOOLEAN;
  1117. 993 PROCEDURE DeleteMetaFile(f:HMF) : BOOLEAN;
  1118. 994 PROCEDURE CopyMetaFile(f:HMF) : HMF;
  1119. 995 PROCEDURE QueryMetaFileLength(f:HMF) : GPIRET;
  1120. 996 PROCEDURE QueryMetaFileBits(f:HMF; o,c:LONGCARD; VAR d:ARRAY OF BYTE) : BOOLEAN;
  1121. 997 PROCEDURE SetMetaFileBits(f:HMF; o,c:LONGCARD; d:ARRAY OF BYTE) : BOOLEAN;
  1122. 998
  1123. 999 (*%E*)
  1124. 1000 (**)
  1125. 1001 (**--- Gpi Defaults ------------------------------------------------------*)
  1126. 1002 (**)
  1127. 1003 (*%T i_DEFAULT*)
  1128. 1004
  1129. 1005 (* default functions *)
  1130. 1006 PROCEDURE QueryDefArcParams(h:HPS; VAR a:ARCPARAMS): BOOLEAN;
  1131. 1007 PROCEDURE QueryDefAttrs(h:HPS; Prim: LONGINT; Mask: LONGCARD; bun: PBUNDLE): BOOLEAN;
  1132. 1008 PROCEDURE QueryDefTag(h:HPS; VAR Tag: LONGINT): BOOLEAN;
  1133. 1009 PROCEDURE QueryDefViewingLimits(h:HPS; VAR Limits: RECTL): BOOLEAN;
  1134. 1010 PROCEDURE SetDefArcParams(h:HPS; VAR p: ARCPARAMS): BOOLEAN;
  1135. 1011 PROCEDURE SetDefAttrs(h:HPS; Prim: LONGINT; Mask: LSET; bun: PBUNDLE): BOOLEAN;
  1136. 1012 PROCEDURE SetDefTag(h:HPS; Tag: LONGINT): BOOLEAN;
  1137. 1013 PROCEDURE SetDefViewingLimits(h:HPS; VAR Limits:RECTL): BOOLEAN;
  1138. 1014
  1139. 1015 (*%E*)
  1140. 1016 (**)
  1141. 1017 (**--- GOCA Orders --------------------------------------------------------*)
  1142. 1018 (**)
  1143. 1019 (*%T i_ORDER*)
  1144. 1020
  1145. 1021 (* form of RECTL with shorts instead of longs *)
  1146. 1022 TYPE
  1147. 1023 RECT1S = RECORD
  1148. 1024 xLeft,
  1149. 1025 yBottom,
  1150. 1026 xRight,
  1151. 1027 yTop: INTEGER;
  1152. 1028 END;
  1153. 1029
  1154. 1030 (* form of POINTL with 1 byte offsets instead of longs *)
  1155. 1031 ODPOINT = RECORD
  1156. 1032 dx,dy: SHORTCARD;
  1157. 1033 END;
  1158. 1034
  1159. 1035 (* form of SIZEL with shorts instead of longs *)
  1160. 1036 SIZES = RECORD
  1161. 1037 cx,cy: INTEGER;
  1162. 1038 END;
  1163. 1039
  1164. 1040 (* unsigned two-byte swapped integer *)
  1165. 1041 SWPUSHORT = RECORD
  1166. 1042 HiByte: SHORTCARD;
  1167. 1043 LoByte: SHORTCARD;
  1168. 1044 END;
  1169. 1045
  1170. 1046 CONST
  1171. 1047 (* 1-byte order codes *)
  1172. 1048 OCODE_GNOP1 = 000H; (* No-operation *)
  1173. 1049 OCODE_GESD = 0FFH; (* End symbol definition *)
  1174. 1050
  1175. 1051 (* definitions to help determine whether an order code is a 2-byte order *)
  1176. 1052 OCODE2_1 = 080H;
  1177. 1053 OCODE2_2 = 088H;
  1178. 1054
  1179. 1055 TYPE
  1180. 1056 (* General 2-byte order structure *)
  1181. 1057 ORDER = RECORD
  1182. 1058 Code,Data: SHORTCARD;
  1183. 1059 END;
  1184. 1060
  1185. 1061 CONST
  1186. 1062 (* 2-byte order codes *)
  1187. 1063 OCODE_GBAR = 068H; (* Begin area *)
  1188. 1064 OCODE_GCFIG = 07DH; (* Close figure *)
  1189. 1065 OCODE_GEEL = 049H; (* End element *)
  1190. 1066 OCODE_GEPTH = 07FH; (* End path *)
  1191. 1067 OCODE_GEPROL = 03EH; (* End prologue *)
  1192. 1068 OCODE_GPOP = 03FH; (* Pop *)
  1193. 1069 OCODE_GSBMX = 00DH; (* Set background mix *)
  1194. 1070 OCODE_GPSBMX = 04DH; (* Push & set b/g mix *)
  1195. 1071 OCODE_GSCD = 03AH; (* Set char direction *)
  1196. 1072 OCODE_GPSCD = 07AH; (* Push & set char direction *)
  1197. 1073 OCODE_GSCR = 039H; (* Set char precision *)
  1198. 1074 OCODE_GPSCR = 079H; (* Push & set char precision *)
  1199. 1075 OCODE_GSCS = 038H; (* Set char set *)
  1200. 1076 OCODE_GPSCS = 078H; (* Push & set char set *)
  1201. 1077 OCODE_GSCOL = 00AH; (* Set color *)
  1202. 1078 OCODE_GPSCOL = 04AH; (* Push & set color *)
  1203. 1079 OCODE_GSLE = 01AH; (* Set line end *)
  1204. 1080 OCODE_GPSLE = 05AH; (* Push & set line end *)
  1205. 1081 OCODE_GSLJ = 01BH; (* Set line join *)
  1206. 1082 OCODE_GPSLJ = 05BH; (* Push & set line join *)
  1207. 1083 OCODE_GSLT = 018H; (* Set line type *)
  1208. 1084 OCODE_GPSLT = 058H; (* Push & set line type *)
  1209. 1085 OCODE_GSLW = 019H; (* Set line width *)
  1210. 1086 OCODE_GPSLW = 059H; (* Push & set line width *)
  1211. 1087 OCODE_GSMP = 03BH; (* Set marker precision *)
  1212. 1088 OCODE_GPSMP = 07BH; (* Push & set marker precision *)
  1213. 1089 OCODE_GSMS = 03CH; (* Set marker set *)
  1214. 1090 OCODE_GPSMS = 07CH; (* Push & set marker set *)
  1215. 1091 OCODE_GSMT = 029H; (* Set marker symbol *)
  1216. 1092 OCODE_GPSMT = 069H; (* Push & set marker symbol *)
  1217. 1093 OCODE_GSMX = 00CH; (* Set mix *)
  1218. 1094 OCODE_GPSMX = 04CH; (* Push & set mix *)
  1219. 1095 OCODE_GSPS = 008H; (* Set pattern set *)
  1220. 1096 OCODE_GPSPS = 048H; (* Push & set pattern set *)
  1221. 1097 OCODE_GSPT = 028H; (* Set pattern symbol *)
  1222. 1098 OCODE_GPSPT = 009H; (* Push & set pattern symbol *)
  1223. 1099
  1224. 1100 (* constants for 2-byte orders *)
  1225. 1101
  1226. 1102 (* Begin area *)
  1227. 1103 GBAR_RESERVED = 080H;
  1228. 1104 GBAR_BOUNDARY = 0C0H;
  1229. 1105 GBAR_NOBOUNDARY = 080H;
  1230. 1106 GBAR_WINDING = 0A0H;
  1231. 1107 GBAR_ALTERNATE = 080H;
  1232. 1108
  1233. 1109 (* Set Character Precision *)
  1234. 1110 GSCR_PRECISION = 00FH;
  1235. 1111
  1236. 1112 (* definitions to help determine whether an order code is a long order *)
  1237. 1113
  1238. 1114 OCODE_VLONG = 0FEH;
  1239. 1115
  1240. 1116 (* long order structure *)
  1241. 1117 LORDER_ML = 253;
  1242. 1118
  1243. 1119 TYPE
  1244. 1120 LORDER = RECORD
  1245. 1121 Code,length: SHORTCARD;
  1246. 1122 Data: ARRAY [0..LORDER_ML] OF SHORTCARD;
  1247. 1123 END;
  1248. 1124
  1249. 1125 CONST
  1250. 1126 (* Long orders for which the length of data is normally zero *)
  1251. 1127 OCODE_GEAR = 060H; (* End Area *)
  1252. 1128 OCODE_GEIMG = 093H; (* End Image *)
  1253. 1129
  1254. 1130 (* Long orders for which the data is contained in a type already defined *)
  1255. 1131
  1256. 1132 (* Character String *)
  1257. 1133 OCODE_GCCHST = 083H; (* char string at curr posn *)
  1258. 1134 GCCHST_MC = 255; (* Max len of string in bytes *)
  1259. 1135
  1260. 1136 OCODE_GCHST = 0C3H; (* char string at given pos *)
  1261. 1137 GCHST_SMC = 251; (* Max len of string (S) *)
  1262. 1138 GCHST_LMC = 247; (* Max len of string (L) *)
  1263. 1139
  1264. 1140 (* Character String Move *)
  1265. 1141 OCODE_GCCHSTM = 0B1H; (* char string move at c.p. *)
  1266. 1142 GCCHSTM_MC = 255; (* Max len of string in byte *)
  1267. 1143
  1268. 1144 OCODE_GCHSTM = 0F1H; (* char string move at g.p. *)
  1269. 1145 GCHSTM_SMC = 251; (* Max len of string (S) *)
  1270. 1146 GCHSTM_LMC = 247; (* Max len of string (L) *)
  1271. 1147
  1272. 1148 (* Comment *)
  1273. 1149 OCODE_GCOMT = 001H; (* Comment *)
  1274. 1150 GCOMT_ML = 255; (* Maximum len of comment data *)
  1275. 1151
  1276. 1152 (* Image *)
  1277. 1153 OCODE_GIMD = 092H; (* Image data *)
  1278. 1154 GIMD_ML = 255; (* Maximum len of image data *)
  1279. 1155
  1280. 1156 (* Full Arc *)
  1281. 1157 OCODE_GCFARC = 087H; (* full arc at current posn *)
  1282. 1158 OCODE_GFARC = 0C7H; (* full arc at given posn *)
  1283. 1159
  1284. 1160 (* Label *)
  1285. 1161 OCODE_GLABL = 0D3H; (* Label *)
  1286. 1162
  1287. 1163 (* Set Current Position *)
  1288. 1164 OCODE_GSCP = 021H; (* Set current position *)
  1289. 1165 OCODE_GPSCP = 061H; (* Push and set curr posn *)
  1290. 1166
  1291. 1167 (* Bezier spline *)
  1292. 1168 OCODE_GCBEZ = 0A5H; (* Bezier spline at curr pos *)
  1293. 1169 GCBEZ_SMB = 21; (* Max number of splines (S) *)
  1294. 1170 GCBEZ_LMB = 10; (* Max number of splines (L) *)
  1295. 1171
  1296. 1172 OCODE_GBEZ = 0E5H; (* Bezier spline at given pos *)
  1297. 1173 GBEZ_SMB = 20; (* Max number of splines (S) *)
  1298. 1174 GBEZ_LMB = 10; (* Max number of splines (L) *)
  1299. 1175
  1300. 1176 (* Fillet *)
  1301. 1177 OCODE_GCFLT = 085H; (* fillet at current posn *)
  1302. 1178 GCFLT_SMP = 63; (* Max number of points (S) *)
  1303. 1179 GCFLT_LMP = 31; (* Max number of points (L) *)
  1304. 1180
  1305. 1181 OCODE_GFLT = 0C5H; (* fillet at given position *)
  1306. 1182 GFLT_SMP = 62; (* Max number of points (S) *)
  1307. 1183 GFLT_LMP = 30; (* Max number of points (L) *)
  1308. 1184
  1309. 1185 (* Polyline *)
  1310. 1186 OCODE_GCLINE = 081H; (* polyline at current posn *)
  1311. 1187 GCLINE_SMP = 63; (* Max number of points (S) *)
  1312. 1188 GCLINE_LMP = 31; (* Max number of points (L) *)
  1313. 1189
  1314. 1190 OCODE_GLINE = 0C1H; (* polyline at given posn *)
  1315. 1191 GLINE_SMP = 62; (* Max number of points (S) *)
  1316. 1192 GLINE_LMP = 30; (* Max number of points (L) *)
  1317. 1193
  1318. 1194 (* Polymarker *)
  1319. 1195 OCODE_GCMRK = 082H; (* marker at current posn *)
  1320. 1196 GCMRK_SMP = 63; (* Max number of points (S) *)
  1321. 1197 GCMRK_LMP = 31; (* Max number of points (L) *)
  1322. 1198
  1323. 1199 OCODE_GMRK = 0C2H; (* marker at given posn *)
  1324. 1200 GMRK_SMP = 62; (* Max number of points (S) *)
  1325. 1201 GMRK_LMP = 30; (* Max number of points (L) *)
  1326. 1202
  1327. 1203 (* Relative Line *)
  1328. 1204 OCODE_GCRLINE = 0A1H; (* Relative line at curr pos *)
  1329. 1205 GCRLINE_MP = 127; (* Max number of points *)
  1330. 1206
  1331. 1207 OCODE_GRLINE = 0E1H; (* Relative line at givn pos *)
  1332. 1208 GRLINE_SMP = 125; (* Max number of points (S) *)
  1333. 1209 GRLINE_LMP = 123; (* Max number of points (L) *)
  1334. 1210
  1335. 1211 (* Set Background Color *)
  1336. 1212 OCODE_GSBCOL = 025H; (* Set background color *)
  1337. 1213 OCODE_GPSBCOL = 065H; (* Push and set b/g color *)
  1338. 1214
  1339. 1215 (* Set Extended Color *)
  1340. 1216 OCODE_GSECOL = 026H; (* Set extended color *)
  1341. 1217 OCODE_GPSECOL = 066H; (* Push and set ext color *)
  1342. 1218
  1343. 1219 (* Extended Color values *)
  1344. 1220 SECOL_DEFAULT0 = 00000H;
  1345. 1221 SECOL_DEFAULT1 = 0FF00H;
  1346. 1222 SECOL_NEUTRAL = 0FF07H;
  1347. 1223 SECOL_RESET = 0FF08H;
  1348. 1224
  1349. 1225 (* Set Character Angle *)
  1350. 1226 OCODE_GSCA = 034H; (* Set character angle *)
  1351. 1227 OCODE_GPSCA = 074H; (* Push and set char angle *)
  1352. 1228
  1353. 1229 (* Set Character Shear *)
  1354. 1230 OCODE_GSCH = 035H; (* Set character shear *)
  1355. 1231 OCODE_GPSCH = 075H; (* Push and set char shear *)
  1356. 1232
  1357. 1233 (* Set Fractional Line Width *)
  1358. 1234 OCODE_GSFLW = 011H; (* Set fractional line width *)
  1359. 1235 OCODE_GPSFLW = 051H; (* Push and set frac l width *)
  1360. 1236
  1361. 1237 (* Set Pick Identifier *)
  1362. 1238 OCODE_GSPIK = 043H; (* Set pick identifier *)
  1363. 1239 OCODE_GPSPIK = 023H; (* Push and set pick id *)
  1364. 1240 OCODE_GCARC = 086H; (* Arc at Current Position *)
  1365. 1241 OCODE_GARC = 0C6H; (* Arc at Given Position *)
  1366. 1242 OCODE_GBEL = 0D2H; (* Begin Element *)
  1367. 1243 GBEL_DL = 251;
  1368. 1244 OCODE_GCBIMG = 091H; (* Begin Image at curr posn *)
  1369. 1245 OCODE_GBIMG = 0D1H; (* Begin Image at given posn *)
  1370. 1246 OCODE_GBPTH = 0D0H; (* Begin Path *)
  1371. 1247 OCODE_GCBOX = 080H; (* Box at current position *)
  1372. 1248 OCODE_GBOX = 0C0H; (* Box at given position *)
  1373. 1249 GCBOX_FILL = 040H;
  1374. 1250 GCBOX_BOUNDARY = 020H;
  1375. 1251 OCODE_GCALLS = 007H; (* call segment *)
  1376. 1252 OCODE_GFPTH = 0D7H; (* Fill path *)
  1377. 1253 GFPTH_ALTERNATE = 000H;
  1378. 1254 GFPTH_WINDING = 040H;
  1379. 1255 GFPTH_MODIFY = 020H;
  1380. 1256 OCODE_GOPTH = 0D4H; (* Outline Path *)
  1381. 1257 OCODE_GMPTH = 0D8H; (* modify path *)
  1382. 1258 GMPTH_STROKE = 006H;
  1383. 1259 OCODE_GCPARC = 0A3H; (* Partial arc at curr posn *)
  1384. 1260 OCODE_GPARC = 0E3H; (* Partial arc at given posn *)
  1385. 1261 OCODE_GSCPTH = 0B4H; (* Set clip path *)
  1386. 1262 GSCPTH_ALTERNATE = 000H;
  1387. 1263 GSCPTH_WINDING = 040H;
  1388. 1264 GSCPTH_RESET = 000H;
  1389. 1265 GSCPTH_INTERSECT = 020H;
  1390. 1266 OCODE_GSAP = 022H; (* Set arc parameters *)
  1391. 1267 OCODE_GPSAP = 062H; (* Push and set arc params *)
  1392. 1268 OCODE_GSBICOL = 0A7H; (* Set b/g indexed color *)
  1393. 1269 OCODE_GPSBICOL = 0E7H; (* Push and set b/g ind color *)
  1394. 1270 OCODE_GSICOL = 0A6H; (* Set indexed color *)
  1395. 1271 OCODE_GPSICOL = 0E6H; (* Push and set indexd color *)
  1396. 1272 SICOL_SPECIFY = 000H;
  1397. 1273 SICOL_SPECIAL = 040H;
  1398. 1274 SICOL_DEFAULT = 080H;
  1399. 1275 SICOL_BLACK = 1;
  1400. 1276 SICOL_WHITE = 2;
  1401. 1277 SICOL_ONES = 4;
  1402. 1278 SICOL_ZEROES = 5;
  1403. 1279 OCODE_GSCC = 033H; (* Set character cell *)
  1404. 1280 OCODE_GPSCC = 003H; (* Push and set char cell *)
  1405. 1281 GSCC_ZERODEF = 000H;
  1406. 1282 GSCC_ZEROZERO = 080H;
  1407. 1283 OCODE_GPSMC = 077H; (* Push and set marker cell *)
  1408. 1284 GSMC_ZERODEF = 000H;
  1409. 1285 GSMC_ZEROZERO = 080H;
  1410. 1286 OCODE_GSPRP = 0A0H; (* Set pattern ref point *)
  1411. 1287 OCODE_GPSPRP = 0E0H; (* Push and set patt ref pt *)
  1412. 1288 GSPRP_DEFAULT = 080H;
  1413. 1289 GSPRP_SPECIFY = 000H;
  1414. 1290 OCODE_GSIA = 014H; (* Set individual attribute *)
  1415. 1291 OCODE_GPSIA = 054H; (* Push and set ind attr *)
  1416. 1292 GSIA_COLOR = 001H;
  1417. 1293 GSIA_BCOLOR = 002H;
  1418. 1294 GSIA_MIX = 003H;
  1419. 1295 GSIA_BMIX = 004H;
  1420. 1296 GSIA_LINE = 001H;
  1421. 1297 GSIA_CHAR = 002H;
  1422. 1298 GSIA_MARKER = 003H;
  1423. 1299 GSIA_PATTERN = 004H;
  1424. 1300 GSIA_IMAGE = 005H;
  1425. 1301 GSIA_SPECIFY = 000H;
  1426. 1302 GSIA_SPECIAL = 040H;
  1427. 1303 GSIA_DEFAULT = 080H;
  1428. 1304 GSIA_BLACK = 1;
  1429. 1305 GSIA_WHITE = 2;
  1430. 1306 GSIA_ONES = 4;
  1431. 1307 GSIA_ZEROES = 5;
  1432. 1308 OCODE_GSTM = 024H; (* Set model transform *)
  1433. 1309 OCODE_GPSTM = 064H; (* Push and set model tfm *)
  1434. 1310 OCODE_GSTV = 031H; (* Set Viewing Transform *)
  1435. 1311 GSTM_ML = 16;
  1436. 1312 GSTM_M11 = 08000H;
  1437. 1313 GSTM_M12 = 04000H;
  1438. 1314 GSTM_M13 = 02000H;
  1439. 1315 GSTM_M14 = 01000H;
  1440. 1316 GSTM_M21 = 00800H;
  1441. 1317 GSTM_M22 = 00400H;
  1442. 1318 GSTM_M23 = 00200H;
  1443. 1319 GSTM_M24 = 00100H;
  1444. 1320 GSTM_M31 = 00080H;
  1445. 1321 GSTM_M32 = 00040H;
  1446. 1322 GSTM_M33 = 00020H;
  1447. 1323 GSTM_M34 = 00010H;
  1448. 1324 GSTM_M41 = 00008H;
  1449. 1325 GSTM_M42 = 00004H;
  1450. 1326 GSTM_M43 = 00002H;
  1451. 1327 GSTM_M44 = 00001H;
  1452. 1328 GSTM_UNITY = 000H;
  1453. 1329 GSTM_AFTER = 001H;
  1454. 1330 GSTM_BEFORE = 002H;
  1455. 1331 GSTM_OVERWRITE = 003H;
  1456. 1332 GSTV_OVERWRITE = 000H;
  1457. 1333 GSTV_AFTER = 004H;
  1458. 1334 OCODE_GSSB = 032H; (* Set segment boundary *)
  1459. 1335 OCODE_GSVW = 027H; (* Set viewing window *)
  1460. 1336 OCODE_GPSVW = 067H; (* Push and set view window *)
  1461. 1337 GSSB_ML = 4;
  1462. 1338 GSSB_XLEFT = 020H;
  1463. 1339 GSSB_XRIGHT = 010H;
  1464. 1340 GSSB_YBOTTOM = 008H;
  1465. 1341 GSSB_YTOP = 004H;
  1466. 1342 GSVW_INTERSECT = 000H;
  1467. 1343 GSVW_REPLACE = 080H;
  1468. 1344 OCODE_GSGCH = 004H; (* Set segment characteristics *)
  1469. 1345 GSGCH_ML = 254;
  1470. 1346 OCODE_GSSLW = 015H; (* Set stroke line width *)
  1471. 1347 OCODE_GPSSLW = 055H; (* Push and set strk l width *)
  1472. 1348 GSSLW_DEFAULT = 080H;
  1473. 1349 GSSLW_SPECIFY = 000H;
  1474. 1350 OCODE_GCSFLT = 0A4H; (* Sharp fillet at curr pos *)
  1475. 1351 OCODE_GSFLT = 0E4H; (* Sharp fillet at given pos *)
  1476. 1352 GCSFLT_SMF = 21;
  1477. 1353 GSFLT_SMF = 20;
  1478. 1354 GCSFLT_LMF = 12;
  1479. 1355 GSFLT_LMF = 12;
  1480. 1356 OCODE_GBBLT = 0D6H; (* Bitblt *)
  1481. 1357 OCODE_GESCP = 0D5H; (* Escape *)
  1482. 1358 GESCP_ML = 253;
  1483. 1359 GESCP_REG = 080H; (* identifier is registered *)
  1484. 1360 GEBB_REGID = 002H; (* uchIdent - Bitblt *)
  1485. 1361 ETYPE_GEBB = 0800200D5H;
  1486. 1362 GEBB_LMP = 29;
  1487. 1363 GEPEL_REGID = 001H; (* uchIdent - Set Pel *)
  1488. 1364 ETYPE_GEPEL = 0800100D5H;
  1489. 1365 ETYPE_LINEBUNDLE = 00000FD01H;
  1490. 1366 ETYPE_CHARBUNDLE = 00000FD02H;
  1491. 1367 ETYPE_MARKERBUNDLE = 00000FD03H;
  1492. 1368 ETYPE_AREABUNDLE = 00000FD04H;
  1493. 1369 ETYPE_IMAGEBUNDLE = 00000FD05H;
  1494. 1370
  1495. 1371 (***************************************************************************\
  1496. 1372 *
  1497. 1373 * Very long orders
  1498. 1374 *
  1499. 1375 \***************************************************************************)
  1500. 1376
  1501. 1377 (* Very long order structure *)
  1502. 1378 CONST
  1503. 1379 VORDER_ML = 65530;
  1504. 1380 TYPE
  1505. 1381 VORDER = RECORD
  1506. 1382 Code: SHORTCARD;
  1507. 1383 Qual: SHORTCARD;
  1508. 1384 Length: SWPUSHORT;
  1509. 1385 DATA: ARRAY [0..VORDER_ML-1] OF SHORTCARD;
  1510. 1386 END;
  1511. 1387
  1512. 1388 CONST
  1513. 1389 (* Character String Extended *)
  1514. 1390 OCODEQ_GCCHSTE = 0B0H; (* Qualifier - current posn *)
  1515. 1391 OCODEQ_GCHSTE = 0F0H; (* Qualifier - given position *)
  1516. 1392 ETYPE_GCCHSTE = 00000FEB0H;
  1517. 1393 ETYPE_GCHSTE = 00000FEF0H;
  1518. 1394 GCCHSTE_DRAWRECT = 080H;
  1519. 1395 GCCHSTE_NORECT = 000H;
  1520. 1396 GCCHSTE_CLIP = 040H;
  1521. 1397 GCCHSTE_NOCLIP = 000H;
  1522. 1398 GCCHSTE_DEEMPHASIZE = 020H;
  1523. 1399 GCCHSTE_NODEEMPHASIZE = 000H;
  1524. 1400 GCCHSTE_LEAVEPOS = 010H;
  1525. 1401 GCCHSTE_MOVEPOS = 000H;
  1526. 1402
  1527. 1403 OCODEQ_GEESCP = 0D5H; (* Qualifier - extended escape *)
  1528. 1404
  1529. 1405 (*%E*)
  1530. 1406 (**)
  1531. 1407 (**--- Font stuff ---------------------------------------------------------*)
  1532. 1408 (**)
  1533. 1409 (*%T i_FONT*)
  1534. 1410 TYPE
  1535. 1411 FOCAMETRICS = RECORD
  1536. 1412 Identity : LONGCARD;
  1537. 1413 Size : LONGCARD;
  1538. 1414 Familyname: ARRAY[0..31] OF CHAR;
  1539. 1415 Facename : ARRAY[0..31] OF CHAR;
  1540. 1416 RegistryId: INTEGER;
  1541. 1417 CodePage : INTEGER;
  1542. 1418 EmHeight : INTEGER;
  1543. 1419 XHeight : INTEGER;
  1544. 1420 yMaxAscender : INTEGER;
  1545. 1421 yMaxDescender : INTEGER;
  1546. 1422 yLowerCaseAscent : INTEGER;
  1547. 1423 yLowerCaseDescent: INTEGER;
  1548. 1424 yInternalLeading : INTEGER;
  1549. 1425 yExternalLeading : INTEGER;
  1550. 1426 xAveCharWidth : INTEGER;
  1551. 1427 xMaxCharInc : INTEGER;
  1552. 1428 xEmInc : INTEGER;
  1553. 1429 yMaxBaselineExt : INTEGER;
  1554. 1430 CharSlope : INTEGER;
  1555. 1431 InlineDir : INTEGER;
  1556. 1432 CharRot : INTEGER;
  1557. 1433 WeightClass: CARDINAL;
  1558. 1434 WidthClass : CARDINAL;
  1559. 1435 xDeviceRes : INTEGER;
  1560. 1436 yDeviceRes : INTEGER;
  1561. 1437 FirstChar : INTEGER;
  1562. 1438 LastChar : INTEGER;
  1563. 1439 DefaultChar: INTEGER;
  1564. 1440 BreakChar : INTEGER;
  1565. 1441 NominalPointSize : INTEGER;
  1566. 1442 MinimumPointSize : INTEGER;
  1567. 1443 MaximumPointSize : INTEGER;
  1568. 1444 TypeFlags : INTEGER;
  1569. 1445 Defn : INTEGER;
  1570. 1446 SelectionFlags : INTEGER;
  1571. 1447 Capabilities : INTEGER;
  1572. 1448 ySubscriptXSize : INTEGER;
  1573. 1449 ySubscriptYSize : INTEGER;
  1574. 1450 ySubscriptXOffset: INTEGER;
  1575. 1451 ySubscriptYOffset: INTEGER;
  1576. 1452 ySuperscriptXSize: INTEGER;
  1577. 1453 ySuperscriptYSize: INTEGER;
  1578. 1454 ySuperscriptXOffset: INTEGER;
  1579. 1455 ySuperscriptYOffset: INTEGER;
  1580. 1456 yUnderscoreSize : INTEGER;
  1581. 1457 yUnderscorePosition: INTEGER;
  1582. 1458 yStrikeoutSize : INTEGER;
  1583. 1459 yStrikeoutPosition : INTEGER;
  1584. 1460 KerningPairs : INTEGER;
  1585. 1461 FamilyClass : INTEGER;
  1586. 1462 DeviceNameOffset: FarADDRESS;
  1587. 1463 END;
  1588. 1464
  1589. 1465 FONTDEFINITIONHEADER = RECORD
  1590. 1466 Identity: LONGCARD;
  1591. 1467 Size : LONGCARD;
  1592. 1468 Fontdef : INTEGER;
  1593. 1469 Chardef : INTEGER;
  1594. 1470 CellSize: INTEGER;
  1595. 1471 xCellWidth : INTEGER;
  1596. 1472 yCellHeight : INTEGER;
  1597. 1473 xCellIncrement: INTEGER;
  1598. 1474 xCellA : INTEGER;
  1599. 1475 xCellB : INTEGER;
  1600. 1476 xCellC : INTEGER;
  1601. 1477 pCellBaseOffset: INTEGER;
  1602. 1478 END;
  1603. 1479
  1604. 1480 CONST
  1605. 1481 FONTDEFFONT1 = 0047H; (* set width, height, inc. & base offset *)
  1606. 1482 FONTDEFFONT2 = 0042H; (* set height & base offset *)
  1607. 1483 FONTDEFFONT3 = 0042H; (* set height & base offset *)
  1608. 1484 FONTDEFCHAR1 = 0081H; (* set char offset and width *)
  1609. 1485 FONTDEFCHAR2 = 0081H; (* set char offset and width *)
  1610. 1486 FONTDEFCHAR3 = 00B8H; (* set char offset, A, B, and C space *)
  1611. 1487 SPACE_UNDEF = 08000H; (* space undefined = take default *)
  1612. 1488
  1613. 1489 TYPE
  1614. 1490 FONTSIGNATURE = RECORD
  1615. 1491 Identity : LONGCARD;
  1616. 1492 Size : LONGCARD;
  1617. 1493 Signature: ARRAY [0..11] OF CHAR;
  1618. 1494 END;
  1619. 1495
  1620. 1496 FOCAFONT = RECORD
  1621. 1497 Signature : FONTSIGNATURE;
  1622. 1498 Metrics : FOCAMETRICS;
  1623. 1499 Definitions: FONTDEFINITIONHEADER;
  1624. 1500 END;
  1625. 1501
  1626. 1502 CONST
  1627. 1503 FONT_SIGNATURE = 0FFFFFFFEH; (* Identity header start *)
  1628. 1504 FONT_METRICS = 000000001H; (* Identity metrics *)
  1629. 1505 FONT_DEFINITION = 000000002H; (* Identity definition *)
  1630. 1506 FONT_ENDRECORD = 0FFFFFFFFH; (* Identity record end *)
  1631. 1507
  1632. 1508 (* Options for QueryFonts *)
  1633. 1509
  1634. 1510 QUERY_PUBLIC_FONTS = 01H;
  1635. 1511 QUERY_PRIVATE_FONTS = 02H;
  1636. 1512
  1637. 1513 CDEF_GENERIC = 00001H;
  1638. 1514 CDEF_BOLD = 00002H;
  1639. 1515 CDEF_ITALIC = 00004H;
  1640. 1516 CDEF_UNDERSCORE = 00008H;
  1641. 1517 CDEF_STRIKEOUT = 00010H;
  1642. 1518 CDEF_OUTLINE = 00020H;
  1643. 1519
  1644. 1520 (*%E*)
  1645. 1521 (**)
  1646. 1522 (**--- Gpi End ------------------------------------------------------------*)
  1647. 1523 (**)
  1648. 1524
  1649. 1525 END Gpi.
  1650. 123 errors