| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526 |
- (* Release 3.10 *)
- (*-------------------------------------------------------------------------*
- * *
- * GPI.DEF - OS/2 PM GPI interface *
- * *
- * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
- * Copyright (c) 1988 Microsoft Corporation *
- * All Rights Reserved *
- * This file is compatible with OS/2 version 1.2. *
- * *
- *--------------------------------------------------------------------------*)
- (*# call(o_a_size => off,
- o_a_copy=>off,
- result_optional=>on,
- reg_saved => (si, di, ds, st1, st2),
- reg_param => (),
- seg_name => none,
- near_call => off,
- ds_eq_ss => off) *)
- (*# module(implementation=>off, init_code => off) *)
- (*# name(prefix => os2_lib) *)
- (*# data(near_ptr => off) *)
- (*# check(index=>off,range=>off,overflow=>off,nil_ptr=>off) *)
- DEFINITION MODULE Gpi;
- (**)
- (**--- OS/2 Presentation Manager GPI ---------------------------------------*)
- (**)
- FROM OS2DEF IMPORT HDC,HRGN,HAB,HPS,HBITMAP,HMF,LSET,POINTL,RECTL,STR8,HMODULE ;
- (**)
- (*--- Conditional sections, set to TRUE if required ------------------------*)
- (**)
- CONST
- i_CONTROL = TRUE ; (* PS control *)
- i_CORR = TRUE ; (* Picking, boundary and correlation *)
- i_SEGM = TRUE ; (* Segment control and drawing *)
- i_SEGMEDIT = TRUE ; (* Segment editing *)
- i_TRANSF = TRUE ; (* Transforms and transform conversion *)
- i_PATH = FALSE; (* Paths and clipping with paths *)
- i_COLORTAB = TRUE ; (* Logical color tables *)
- i_PRIM1 = TRUE ; (* Drawing primitives *)
- i_PRIM2 = TRUE ; (* Drawing primitives uncommon *)
- i_LCID = FALSE; (* Physical and logical fonts *)
- i_BITMAP1 = TRUE ; (* Bitmaps and pel operations *)
- i_BITMAP2 = TRUE ; (* Bitmaps and pel operations uncommon *)
- i_BITMAP3 = FALSE; (* Bitmaps file formats *)
- i_REGION = FALSE; (* Regions and clipping with regions *)
- i_METAF = FALSE; (* Metafiles *)
- i_DEFAULT = FALSE; (* Gpi Defaults *)
- i_ORDER = FALSE; (* GOCA orders *)
- i_FONT = FALSE; (* Font structures *)
- (**)
- (**--- Win General section 1 -----------------------------------------------*)
- (**)
- CONST
- GPI_ERROR = 0; GPI_OK = 1; GPI_HITS = 2; (* HITSRET Correlation Error *)
- GPI_ALTERROR = -1; (* GPIRET, >=0 returns value *)
- TYPE
- FIXED = RECORD frac : CARDINAL; int : INTEGER; END;
- GPIRET = LONGINT;
- HITSRET = LONGINT;
- TYPE
- SIZEL = RECORD
- cx : LONGINT;
- cy : LONGINT;
- END;
- CONST
- CLR_NOINDEX = -254;
- PU_ARBITRARY = 04H; PU_PELS = 08H; PU_LOMETRIC = 0CH; PU_HIMETRIC = 010H;
- PU_LOENGLISH = 014H; PU_HIENGLISH = 018H; PU_TWIPS = 01CH;
- GPIF_DEFAULT = 0; GPIF_SHORT = 0100H; GPIF_LONG = 0200H;
- GPIT_NORMAL = 0; GPIT_MICRO = 01000H;
- GPIA_NOASSOC = 0; GPIA_ASSOC = 04000H;
- HDC_ERROR = HDC(-1);
- PROCEDURE CreatePS(a:HAB; c:HDC; VAR s:SIZEL; o:LONGCARD) : HPS;
- PROCEDURE DestroyPS(h:HPS) : BOOLEAN;
- PROCEDURE Associate(h:HPS; c:HDC) : BOOLEAN;
- PROCEDURE RestorePS(h:HPS; p:LONGINT) : BOOLEAN;
- PROCEDURE SavePS(h:HPS) : LONGINT;
- PROCEDURE Erase(h:HPS) : BOOLEAN;
- PROCEDURE QueryDevice(h:HPS) : HDC;
- (**)
- (**--- Gpi Control --------------------------------------------------------*)
- (**)
- (*%T i_CONTROL*)
- CONST
- (* options for GpiResetPS *)
- GRES_ATTRS = LSET(01H); GRES_SEGMENTS = LSET(02H); GRES_ALL = LSET(04H);
- (* option masks for PS options used by GpiQueryPs *)
- PS_UNITS = LSET(0FCH);
- PS_FORMAT = LSET(0F00H);
- PS_TYPE = LSET(01000H);
- PS_MODE = LSET(02000H);
- PS_ASSOCIATE = LSET(04000H);
- PS_NORESET = LSET(08000H);
- (* error context returned by GpiErrorSegmentData *)
- GPIE_SEGMENT = 0; GPIE_ELEMENT = 1; GPIE_DATA = 2;
- (* control parameter for GpiSetDrawControl *)
- DCTL_ERASE = 1; DCTL_DISPLAY = 2; DCTL_BOUNDARY = 3; DCTL_DYNAMIC = 4;
- DCTL_CORRELATE = 5;
- (* constants for GpiSet/QueryDrawControl *)
- DCTL_ERROR = -1; DCTL_OFF = 0; DCTL_ON = 1;
- (* constants for GpiSet/QueryStopDraw *)
- SDW_ERROR = -1; SDW_OFF = 0; SDW_ON = 1;
- (* drawing for GpiSet/QueryDrawingMode *)
- DM_ERROR = 0; DM_DRAW = 1; DM_RETAIN = 2; DM_DRAWANDRETAIN = 3;
- PROCEDURE ResetPS(h:HPS; o:LSET) : BOOLEAN;
- PROCEDURE SetPS(h:HPS; VAR s:SIZEL; o:LONGCARD) : BOOLEAN;
- PROCEDURE QueryPS(h:HPS; VAR s:SIZEL) : LSET;
- PROCEDURE ErrorSegmentData(h:HPS; VAR s:LONGCARD; VAR c:LONGINT) : GPIRET;
- PROCEDURE QueryDrawControl(h:HPS; c:LONGINT) : LONGINT;
- PROCEDURE SetDrawControl(h:HPS; c,v:LONGINT) : BOOLEAN;
- PROCEDURE QueryDrawingMode(h:HPS) : LONGINT;
- PROCEDURE SetDrawingMode(h:HPS; m:LONGINT) : BOOLEAN;
- PROCEDURE QueryStopDraw(h:HPS) : LONGINT;
- PROCEDURE SetStopDraw(h:HPS; v:LONGINT) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi Correlation ----------------------------------------------------*)
- (**)
- (*%T i_CORR*)
- CONST
- (* options for GpiSetPickApertureSize *)
- PICKAP_DEFAULT = 0; PICKAP_REC = 2;
- (* type of correlation for GpiCorrelateChain *)
- PICKSEL_VISIBLE = 0; PICKSEL_ALL = 1;
- PROCEDURE CorrelateChain(h:HPS; t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR s:ARRAY OF LONGINT) : LONGINT;
- PROCEDURE QueryTag(h:HPS; VAR t:LONGINT) : BOOLEAN;
- PROCEDURE SetTag(h:HPS; t:LONGINT) : BOOLEAN;
- PROCEDURE QueryPickApertureSize(h:HPS; VAR s:SIZEL) : BOOLEAN;
- PROCEDURE SetPickApertureSize(h:HPS; o:LONGINT; VAR s:SIZEL) : BOOLEAN;
- PROCEDURE QueryPickAperturePosition(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE SetPickAperturePosition(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE QueryBoundaryData(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE ResetBoundaryData(h:HPS) : BOOLEAN;
- PROCEDURE CorrelateFrom(h:HPS; f,l:LONGCARD; t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR s:ARRAY OF LONGINT) : LONGINT;
- PROCEDURE CorrelateSegment(h:HPS; s,t:LONGINT; VAR p:POINTL; m,d:LONGCARD; VAR a:ARRAY OF LONGINT) : LONGINT;
- (*%E*)
- (**)
- (**--- Gpi Segments -------------------------------------------------------*)
- (**)
- (*%T i_SEGM*)
- CONST
- (* data formats for GpiPutData and GpiGetData *)
- DFORM_NOCONV = 0; DFORM_S370SHORT = 1; DFORM_PCSHORT = 2; DFORM_PCLONG = 4;
- (* segment attributes used by GpiSet/QuerySegmentAttrs and others *)
- ATTR_ERROR = -1; ATTR_DETECTABLE = 1; ATTR_VISIBLE = 2; ATTR_CHAINED = 6;
- ATTR_DYNAMIC = 8; ATTR_FASTCHAIN = 9; ATTR_PROP_DETECTABLE = 10; ATTR_PROP_VISIBLE = 11;
- ATTR_OFF = 0; ATTR_ON = 1;
- (* segment priority used by GpiSetSegmentPriority and others *)
- LOWER_PRI = -1; HIGHER_PRI = 1;
- (* segment control functions *)
- PROCEDURE OpenSegment(h:HPS; s:LONGCARD) : BOOLEAN;
- PROCEDURE CloseSegment(h:HPS) :BOOLEAN;
- PROCEDURE DeleteSegment(h:HPS; s:LONGCARD) : BOOLEAN;
- PROCEDURE QueryInitialSegmentAttrs(h:HPS; a:LONGINT) : LONGINT;
- PROCEDURE SetInitialSegmentAttrs(h:HPS; a,v:LONGINT) : BOOLEAN;
- PROCEDURE QuerySegmentAttrs(h:HPS; i:LONGCARD; a:LONGINT) : LONGINT;
- PROCEDURE SetSegmentAttrs(h:HPS; s:LONGCARD; a,v:LONGINT) : BOOLEAN;
- PROCEDURE QuerySegmentPriority(h:HPS; s:LONGCARD; o:LONGINT) : GPIRET;
- PROCEDURE SetSegmentPriority(h:HPS; s,r:LONGCARD; o:LONGINT) : BOOLEAN;
- PROCEDURE DeleteSegments(h:HPS; f,l:LONGCARD) : BOOLEAN;
- PROCEDURE QuerySegmentNames(h:HPS; f,l,m:LONGCARD; VAR s:ARRAY OF LONGCARD) : GPIRET;
- (* draw functions for segments *)
- PROCEDURE GetData(h:HPS; s:LONGCARD; VAR o:LONGINT; f:LONGCARD; l:LONGCARD; VAR d:ARRAY OF BYTE) : GPIRET;
- PROCEDURE PutData(h:HPS; f:LONGINT; VAR c:LONGCARD; d:ARRAY OF BYTE) : HITSRET;
- PROCEDURE DrawChain(h:HPS) : BOOLEAN;
- PROCEDURE DrawFrom(h:HPS; f,l:LONGCARD) : BOOLEAN;
- PROCEDURE DrawSegment(h:HPS; s:LONGCARD) : BOOLEAN;
- PROCEDURE DrawDynamics(h:HPS) : BOOLEAN;
- PROCEDURE RemoveDynamics(h:HPS; f,l:LONGCARD) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi Segment Editing ------------------------------------------------*)
- (**)
- (*%T i_SEGMEDIT*)
- CONST
- (* edit modes used by GpiSet/QueryEditMode *)
- SEGEM_ERROR = 0; SEGEM_INSERT = 1; SEGEM_REPLACE = 2;
- (*** segment editing by element functions *)
- PROCEDURE BeginElement(h:HPS; t:LONGINT; d:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE EndElement(h:HPS) : BOOLEAN;
- PROCEDURE Label(h:HPS; l:LONGINT) : BOOLEAN;
- PROCEDURE Element(h:HPS; t:LONGINT; s:ARRAY OF CHAR; l:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
- PROCEDURE QueryElement(h:HPS; o,m:LONGCARD; VAR b:ARRAY OF BYTE) : GPIRET;
- PROCEDURE DeleteElement(h:HPS) : BOOLEAN;
- PROCEDURE DeleteElementRange(h:HPS; f,l:LONGINT) : BOOLEAN;
- PROCEDURE DeleteElementsBetweenLabels(h:HPS; f,l:LONGINT) : BOOLEAN;
- PROCEDURE QueryEditMode(h:HPS) : LONGINT;
- PROCEDURE SetEditMode(h:HPS; m:LONGINT) : BOOLEAN;
- PROCEDURE QueryElementPointer(h:HPS) : GPIRET;
- PROCEDURE SetElementPointer(h:HPS; e:LONGINT) : BOOLEAN;
- PROCEDURE OffsetElementPointer(h:HPS; o:LONGINT) : BOOLEAN;
- PROCEDURE QueryElementType(h:HPS; VAR t:LONGINT; c:LONGCARD; VAR d:ARRAY OF CHAR) : GPIRET;
- PROCEDURE SetElementPointerAtLabel(h:HPS; l:LONGINT) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi Transforms -----------------------------------------------------*)
- (**)
- (*%T i_TRANSF*)
- CONST
- (* co-ordinates space for GpiConvert *)
- CVTC_WORLD = 1; CVTC_MODEL = 2; CVTC_DEFAULTPAGE = 3; CVTC_PAGE = 4;
- CVTC_DEVICE = 5;
- (* type of transformation for GpiSetSegmentTransformMatrix *)
- TRANSFORM_REPLACE = 0; TRANSFORM_ADD = 1; TRANSFORM_PREEMPT = 2;
- TYPE
- (* transform matrix *)
- MATRIXLF = RECORD
- M11,M12 : FIXED;
- M13 : LONGINT;
- M21,M22 : FIXED;
- M23 : LONGINT;
- M31,M32,M33 : LONGINT;
- END;
- PROCEDURE QuerySegmentTransformMatrix(h:HPS; s,c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
- PROCEDURE SetSegmentTransformMatrix(h:HPS; s,c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
- PROCEDURE Convert(h:HPS; s,t:LONGINT; c:LONGCARD; VAR p:ARRAY OF POINTL) : BOOLEAN;
- PROCEDURE QueryModelTransformMatrix(h:HPS; c:LONGCARD; VAR m:MATRIXLF) : BOOLEAN;
- PROCEDURE SetModelTransformMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
- PROCEDURE CallSegmentMatrix(h:HPS; s:LONGCARD; c:LONGCARD; VAR m:MATRIXLF; o:LONGINT) : HITSRET;
- PROCEDURE QueryDefaultViewMatrix(h:HPS; c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
- PROCEDURE SetDefaultViewMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
- PROCEDURE QueryPageViewport(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE SetPageViewport(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE QueryViewingTransformMatrix(h:HPS; c:LONGCARD; VAR m:ARRAY OF MATRIXLF) : BOOLEAN;
- PROCEDURE SetViewingTransformMatrix(h:HPS; c:LONGCARD; m:ARRAY OF MATRIXLF; o:LONGINT) : BOOLEAN;
- (*** transform helper routines *)
- PROCEDURE Translate(h: HPS; VAR m: MATRIXLF; l:LONGINT; VAR p:POINTL): BOOLEAN;
- PROCEDURE Scale(h: HPS; VAR m:MATRIXLF; l:LONGINT; VAR f:FIXED; VAR p:POINTL): BOOLEAN;
- PROCEDURE Rotate(h: HPS; VAR m:MATRIXLF; l:LONGINT; f:FIXED; VAR p:POINTL): BOOLEAN;
- (*** general clipping functions *)
- PROCEDURE SetGraphicsField(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE QueryGraphicsField(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE SetViewingLimits(h:HPS; VAR r:RECTL) : BOOLEAN;
- PROCEDURE QueryViewingLimits(h:HPS; VAR r:RECTL) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi Paths ----------------------------------------------------------*)
- (**)
- (*%T i_PATH*)
- CONST
- (* modes for GpiModifyPath *)
- MPATH_STROKE = 6;
- (* modes for GpiFillPath *)
- FPATH_ALTERNATE = 0; FPATH_WINDING = 2;
- (* modes for GpiSetClipPath *)
- SCP_ALTERNATE = 0; SCP_WINDING = 2; SCP_AND = 4; SCP_RESET = 0;
- PROCEDURE BeginPath(h:HPS; i:LONGINT) : BOOLEAN;
- PROCEDURE EndPath(h:HPS) : BOOLEAN;
- PROCEDURE CloseFigure(h:HPS) : BOOLEAN;
- PROCEDURE ModifyPath(h:HPS; p:LONGCARD; m:LONGINT) : BOOLEAN;
- PROCEDURE FillPath(h:HPS; p:LONGCARD; o:LONGINT) : HITSRET;
- PROCEDURE SetClipPath(h:HPS; p:LONGCARD; o:LONGINT) : BOOLEAN;
- PROCEDURE OutlinePath(h:HPS; Path: LONGINT; Options: LONGINT): LONGINT;
- PROCEDURE StrokePath(h:HPS; p,o:LONGCARD) : HITSRET;
- (*%E*)
- (**)
- (**--- Gpi Logical Color Tables -------------------------------------------*)
- (**)
- (*%T i_COLORTAB*)
- CONST
- (* options for GpiCreateLogColorTable and others *)
- LCOL_RESET = LSET(01H); LCOL_REALIZABLE = LSET(02H); LCOL_PURECOLOR = LSET(04H);
- (* format of logical lColor table for GpiCreateLogColorTable and others *)
- LCOLF_DEFAULT = 0; LCOLF_INDRGB = 1; LCOLF_CONSECRGB = 2; LCOLF_RGB = 3;
- (* options for GpiQueryRealColors and others *)
- LCOLOPT_REALIZED = LSET(01H); LCOLOPT_INDEX = LSET(02H);
- (* return codes from GpiQueryLogColorTable to indicate it is in RGB mode *)
- QLCT_ERROR = -1; QLCT_RGB = -2;
- (* GpiQueryLogColorTable index returned for colors not explicitly loaded *)
- QLCT_NOTLOADED = -1;
- (* return codes for GpiQueryColorData *)
- QCD_LCT_FORMAT = 0; QCD_LCT_LOINDEX = 1; QCD_LCT_HIINDEX = 2;
- (* logical lColor table functions *)
- PROCEDURE CreateLogColorTable(h:HPS; o:LSET; f:LONGINT; s,c:LONGCARD; VAR t:ARRAY OF LONGINT) : BOOLEAN;
- PROCEDURE RealizeColorTable(h:HPS) : BOOLEAN;
- PROCEDURE UnrealizeColorTable(h:HPS) : BOOLEAN;
- PROCEDURE QueryColorData(h:HPS; c:LONGCARD; VAR a:ARRAY OF LONGINT) : BOOLEAN;
- PROCEDURE QueryLogColorTable(h:HPS; o:LSET; s,c:LONGCARD; VAR a:ARRAY OF LONGINT) : LONGINT;
- PROCEDURE QueryRealColors(h:HPS; o:LSET; s,c:LONGCARD; VAR a:ARRAY OF LONGINT) : GPIRET;
- PROCEDURE QueryNearestColor(h:HPS; o:LSET; r:LONGINT) : GPIRET;
- PROCEDURE QueryColorIndex(h:HPS; o:LSET; c:LONGINT) : LONGINT;
- PROCEDURE QueryRGBColor(h:HPS; o:LSET; i:LONGINT) : GPIRET;
- (*%E*)
- (**)
- (**--- Gpi Common Primitives ----------------------------------------------*)
- (**)
- (*%T i_PRIM1*)
- CONST
- (* default color table indices *)
- CLR_FALSE = -5;
- CLR_TRUE = -4;
- CLR_ERROR = -255;
- CLR_DEFAULT = -3;
- CLR_WHITE = -2;
- CLR_BLACK = -1;
- CLR_BACKGROUND = 0;
- CLR_BLUE = 1;
- CLR_RED = 2;
- CLR_PINK = 3;
- CLR_GREEN = 4;
- CLR_CYAN = 5;
- CLR_YELLOW = 6;
- CLR_NEUTRAL = 7;
- CLR_DARKGRAY = 8;
- CLR_DARKBLUE = 9;
- CLR_DARKRED = 10;
- CLR_DARKPINK = 11;
- CLR_DARKGREEN = 12;
- CLR_DARKCYAN = 13;
- CLR_BROWN = 14;
- CLR_PALEGRAY = 15;
- (* rgb colors *)
- RGB_ERROR = -255; RGB_BLACK = 00H; RGB_BLUE = 0FFH; RGB_GREEN = 0FF00H;
- RGB_CYAN = 0FFFFH; RGB_RED = 0FF0000H; RGB_PINK = 0FF00FFH; RGB_YELLOW = 0FFFF00H;
- RGB_WHITE = 0FFFFFFH;
- (* control flags used by GpiBeginArea *)
- BA_NOBOUNDARY = LSET(0); BA_BOUNDARY = LSET(01H); BA_ALTERNATE = LSET(0); BA_WINDING = LSET(02H);
- (* fill options for GpiBox/GpiFullArc *)
- DRO_FILL = 1; DRO_OUTLINE = 2; DRO_OUTLINEFILL = 3;
- (* basic pattern symbols *)
- PATSYM_ERROR = -1; PATSYM_DEFAULT = 0; PATSYM_DENSE1 = 1; PATSYM_DENSE2 = 2;
- PATSYM_DENSE3 = 3; PATSYM_DENSE4 = 4; PATSYM_DENSE5 = 5; PATSYM_DENSE6 = 6;
- PATSYM_DENSE7 = 7; PATSYM_DENSE8 = 8; PATSYM_VERT = 9; PATSYM_HORIZ = 10;
- PATSYM_DIAG1 = 11; PATSYM_DIAG2 = 12; PATSYM_DIAG3 = 13; PATSYM_DIAG4 = 14;
- PATSYM_NOSHADE = 15; PATSYM_SOLID = 16; PATSYM_BLANK = 64; PATSYM_HALFTONE = 17;
- (* lcid values for GpiSet/QueryPattern and others *)
- LCID_ERROR = -1; LCID_DEFAULT = 0;
- PROCEDURE SetColor(h:HPS; c:LONGINT) : BOOLEAN;
- PROCEDURE QueryColor(h:HPS) : LONGINT;
- PROCEDURE Box(h:HPS; c:LONGINT; VAR p:POINTL; hr,vr:LONGINT) : HITSRET;
- PROCEDURE Move(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE Line(h:HPS; VAR p:POINTL) : HITSRET;
- PROCEDURE PolyLine(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : GPIRET;
- PROCEDURE SetPattern(h:HPS; p:LONGINT) : BOOLEAN;
- PROCEDURE QueryPattern(h:HPS) : LONGINT;
- PROCEDURE BeginArea(h:HPS; o:LSET) : BOOLEAN;
- PROCEDURE EndArea(h:HPS) : HITSRET;
- PROCEDURE CharString(h:HPS; c:LONGCARD; s:ARRAY OF CHAR) : HITSRET;
- PROCEDURE CharStringAt(h:HPS; VAR p:POINTL; c:LONGCARD; s:ARRAY OF CHAR) : HITSRET;
- (*%E*)
- (**)
- (**--- Gpi Uncommon Primitives --------------------------------------------*)
- (**)
- (*%T i_PRIM2*)
- CONST
- (* mode for GpiSetAttrMode *)
- AM_ERROR = -1; AM_PRESERVE = 0; AM_NOPRESERVE = 1;
- (* foreground mixes *)
- FM_ERROR = -1; FM_DEFAULT = 0; FM_OR = 1; FM_OVERPAINT = 2;
- FM_LEAVEALONE = 5; FM_XOR = 4; FM_AND = 6; FM_SUBTRACT = 7;
- FM_MASKSRCNOT = 8; FM_ZERO = 9; FM_NOTMERGESRC = 10; FM_NOTXORSRC = 11;
- FM_INVERT = 12; FM_MERGESRCNOT = 13; FM_NOTCOPYSRC = 14; FM_MERGENOTSRC = 15;
- FM_NOTMASKSRC = 16; FM_ONE = 17;
- (* background mixes *)
- BM_ERROR = -1; BM_DEFAULT = 0; BM_OVERPAINT = 2; BM_LEAVEALONE = 5;
- BM_OR = 1; BM_XOR = 4;
- (* basic line type styles *)
- LINETYPE_ERROR = -1; LINETYPE_DEFAULT = 0; LINETYPE_DOT = 1; LINETYPE_SHORTDASH = 2;
- LINETYPE_DASHDOT = 3; LINETYPE_DOUBLEDOT = 4; LINETYPE_LONGDASH = 5; LINETYPE_DASHDOUBLEDOT = 6;
- LINETYPE_SOLID = 7; LINETYPE_INVISIBLE = 8; LINETYPE_ALTERNATE = 9;
- (* cosmetic line widths *)
- LINEWIDTH_ERROR = -1; LINEWIDTH_DEFAULT = 0; LINEWIDTH_NORMAL = 010000H;
- (* actual line widths *)
- LINEWIDTHGEOM_ERROR = -1;
- (* line end styles *)
- LINEEND_ERROR = -1; LINEEND_DEFAULT = 0; LINEEND_FLAT = 1; LINEEND_SQUARE = 2;
- LINEEND_ROUND = 3;
- (* line join styles *)
- LINEJOIN_ERROR = -1; LINEJOIN_DEFAULT = 0; LINEJOIN_BEVEL = 1; LINEJOIN_ROUND = 2;
- LINEJOIN_MITRE = 3;
- (* character directions *)
- CHDIRN_ERROR = -1; CHDIRN_DEFAULT = 0; CHDIRN_LEFTRIGHT = 1; CHDIRN_TOPBOTTOM = 2;
- CHDIRN_RIGHTLEFT = 3; CHDIRN_BOTTOMTOP = 4;
- (* character modes *)
- CM_ERROR = -1; CM_DEFAULT = 0; CM_MODE1 = 1; CM_MODE2 = 2;
- CM_MODE3 = 3;
- (* basic marker symbols *)
- MARKSYM_ERROR = -1; MARKSYM_DEFAULT = 0; MARKSYM_CROSS = 1; MARKSYM_PLUS = 2;
- MARKSYM_DIAMOND = 3; MARKSYM_SQUARE = 4; MARKSYM_SIXPOINTSTAR = 5; MARKSYM_EIGHTPOINTSTAR = 6;
- MARKSYM_SOLIDDIAMOND = 7; MARKSYM_SOLIDSQUARE = 8; MARKSYM_DOT = 9; MARKSYM_SMALLCIRCLE = 10;
- MARKSYM_BLANK = 64;
- (* formatting options for GpiCharStringPosAt *)
- CHS_OPAQUE = LSET(01H); CHS_VECTOR = LSET(02H); CHS_LEAVEPOS = LSET(08H); CHS_CLIP = LSET(010H);
- (* bundle codes for GpiSetAttributes and GpiQueryAttributes *)
- PRIM_LINE = 1;
- PRIM_CHAR = 2;
- PRIM_MARKER = 3;
- PRIM_AREA = 4;
- PRIM_IMAGE = 5;
- (* line bundle mask bits *)
- LBB_COLOR = LSET{0};
- LBB_MIX_MODE = LSET{2};
- LBB_WIDTH = LSET{4};
- LBB_GEOM_WIDTH = LSET{5};
- LBB_TYPE = LSET{6};
- LBB_END = LSET{7};
- LBB_JOIN = LSET{8};
- (* character bundle mask bits *)
- CBB_COLOR = LSET{0};
- CBB_BACK_COLOR = LSET{1};
- CBB_MIX_MODE = LSET{2};
- CBB_BACK_MIX_MODE = LSET{3};
- CBB_SET = LSET{4};
- CBB_MODE = LSET{5};
- CBB_BOX = LSET{6};
- CBB_ANGLE = LSET{7};
- CBB_SHEAR = LSET{8};
- CBB_DIRECTION = LSET{9};
- (* marker bundle mask bits *)
- MBB_COLOR = LSET{0};
- MBB_BACK_COLOR = LSET{1};
- MBB_MIX_MODE = LSET{2};
- MBB_BACK_MIX_MODE = LSET{3};
- MBB_SET = LSET{4};
- MBB_SYMBOL = LSET{5};
- MBB_BOX = LSET{6};
- (* pattern bundle mask bits *)
- ABB_COLOR = LSET{0};
- ABB_BACK_COLOR = LSET{1};
- ABB_MIX_MODE = LSET{2};
- ABB_BACK_MIX_MODE = LSET{3};
- ABB_SET = LSET{4};
- ABB_SYMBOL = LSET{5};
- ABB_REF_POINT = LSET{6};
- (* image bundle mask bits *)
- IBB_COLOR = LSET{0};
- IBB_BACK_COLOR = LSET{1};
- IBB_MIX_MODE = LSET{2};
- IBB_BACK_MIX_MODE = LSET{3};
- TYPE
- (* structure for GpiSetArcParams and GpiQueryArcParams *)
- ARCPARAMS = RECORD
- P,Q,R,S : LONGINT;
- END;
- (* variation of SIZE used for FIXEDs *)
- SIZEF = RECORD
- cx,cy : LONGINT;
- END;
- (* structure for gradient parameters e.g. for GpiSetCharAngle *)
- GRADIENTL = RECORD
- x,y : LONGINT;
- END;
- (* line bundle for GpiSetAttributes and GpiQueryAttributes *)
- LINEBUNDLE = RECORD
- Color : LONGINT;
- Reserved : LONGINT;
- MixMode : CARDINAL;
- Reserved2 : CARDINAL;
- Width : LONGINT;
- GeomWidth : LONGINT;
- Type : CARDINAL;
- End : CARDINAL;
- Join : CARDINAL;
- END;
- (* character bundle for GpiSetAttributes and GpiQueryAttributes *)
- CHARBUNDLE = RECORD
- Color : LONGINT;
- BackColor : LONGINT;
- MixMode : CARDINAL;
- BackMixMode : CARDINAL;
- Set : CARDINAL;
- Precision : CARDINAL;
- Cell : SIZEF;
- Angle : POINTL;
- Shear : POINTL;
- Direction : CARDINAL;
- END;
- (* marker bundle for GpiSetAttributes and GpiQueryAttributes *)
- MARKERBUNDLE = RECORD
- Color : LONGINT;
- BackColor : LONGINT;
- MixMode : CARDINAL;
- BackMixMode : CARDINAL;
- Set : CARDINAL;
- Symbol : CARDINAL;
- Cell : SIZEF;
- END;
- (* pattern bundle for GpiSetAttributes and GpiQueryAttributes *)
- AREABUNDLE = RECORD
- Color : LONGINT;
- BackColor : LONGINT;
- MixMode : CARDINAL;
- BackMixMode : CARDINAL;
- Set : CARDINAL;
- Symbol : CARDINAL;
- RefPoint : POINTL;
- END;
- (* image bundle for GpiSetAttributes and GpiQueryAttributes *)
- IMAGEBUNDLE = RECORD
- Color : LONGINT;
- BackColor : LONGINT;
- MixMode : CARDINAL;
- BackMixMode : CARDINAL;
- END;
- (* pointer to any bundle used by GpiSet/QueryAttrs *)
- PBUNDLE = FarADDRESS;
- CONST
- (* array indices for GpiQueryTextBox *)
- TXTBOX_TOPLEFT = 0; TXTBOX_BOTTOMLEFT = 1; TXTBOX_TOPRIGHT = 2; TXTBOX_BOTTOMRIGHT = 3;
- TXTBOX_CONCAT = 4; TXTBOX_COUNT = 5;
- (* return codes for GpiPtVisible *)
- PVIS_ERROR = 0; PVIS_INVISIBLE = 1; PVIS_VISIBLE = 2;
- (* return codes for GpiRectVisible *)
- RVIS_ERROR = 0; RVIS_INVISIBLE = 1; RVIS_PARTIAL = 2; RVIS_VISIBLE = 3;
- (*** attribute mode functions *)
- PROCEDURE SetAttrMode(h:HPS; m:LONGINT) : BOOLEAN;
- PROCEDURE QueryAttrMode(h:HPS) : LONGINT;
- PROCEDURE SetAttrs(h:HPS; p:LONGINT; a,d:LSET; b:FarADDRESS) : BOOLEAN;
- PROCEDURE QueryAttrs(h:HPS; p:LONGINT; a:LSET; b:FarADDRESS) : LSET;
- PROCEDURE SetBackColor(h:HPS; c:LONGINT) : BOOLEAN;
- PROCEDURE QueryBackColor(h:HPS) : LONGINT;
- PROCEDURE SetMix(h:HPS; m:LONGINT) : BOOLEAN;
- PROCEDURE QueryMix(h:HPS) : LONGINT;
- PROCEDURE SetBackMix(h:HPS; c:LONGINT) : BOOLEAN;
- PROCEDURE QueryBackMix(h:HPS) : LONGINT;
- PROCEDURE SetLineType(h:HPS; t:LONGINT) : BOOLEAN;
- PROCEDURE QueryLineType(h:HPS) : LONGINT;
- PROCEDURE SetLineWidth(h:HPS; w:FIXED) : BOOLEAN;
- PROCEDURE QueryLineWidth(h:HPS) : LONGINT;
- PROCEDURE SetLineWidthGeom(h:HPS; w:LONGINT) : BOOLEAN;
- PROCEDURE QueryLineWidthGeom(h:HPS) : LONGINT;
- PROCEDURE SetLineEnd(h:HPS; e:LONGINT) : BOOLEAN;
- PROCEDURE QueryLineEnd(h:HPS) : LONGINT;
- PROCEDURE SetLineJoin(h:HPS; j:LONGINT) : BOOLEAN;
- PROCEDURE QueryLineJoin(h:HPS) : LONGINT;
- PROCEDURE SetCurrentPosition(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE QueryCurrentPosition(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE SetArcParams(h:HPS; VAR a:ARCPARAMS) : BOOLEAN;
- PROCEDURE QueryArcParams(h:HPS; VAR a:ARCPARAMS) : BOOLEAN;
- PROCEDURE PointArc(h:HPS; VAR p:POINTL) : HITSRET;
- PROCEDURE FullArc(h:HPS; c:LONGINT; m:FIXED) : HITSRET;
- PROCEDURE PartialArc(h:HPS; VAR p:POINTL; m:FIXED; a,s:LONGINT) : HITSRET;
- PROCEDURE PolyFilletSharp(h:HPS; c:LONGCARD; p:ARRAY OF POINTL; s:ARRAY OF FIXED) : HITSRET;
- PROCEDURE PolySpline(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : HITSRET;
- PROCEDURE PolyFillet(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : HITSRET;
- PROCEDURE SetPatternSet(h:HPS; s:LONGINT) : BOOLEAN;
- PROCEDURE QueryPatternSet(h:HPS) : LONGINT;
- PROCEDURE SetPatternRefPoint(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE QueryPatternRefPoint(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE QueryCharStringPos(h:HPS; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; x:ARRAY OF LONGINT; VAR p:ARRAY OF POINTL) : BOOLEAN;
- 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;
- PROCEDURE QueryTextBox(h:HPS; c:LONGCARD; s:ARRAY OF CHAR; c2:LONGCARD; VAR p:ARRAY OF POINTL) : BOOLEAN;
- PROCEDURE QueryDefCharBox(h:HPS; VAR s:SIZEL) : BOOLEAN;
- PROCEDURE SetCharSet(h:HPS; i:LONGINT) : BOOLEAN;
- PROCEDURE QueryCharSet(h:HPS) : LONGINT;
- PROCEDURE SetCharBox(h:HPS; VAR b:SIZEF) : BOOLEAN;
- PROCEDURE QueryCharBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
- PROCEDURE SetCharAngle(h:HPS; VAR a:GRADIENTL) : BOOLEAN;
- PROCEDURE QueryCharAngle(h:HPS; VAR a:GRADIENTL) : BOOLEAN;
- PROCEDURE SetCharShear(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE QueryCharShear(h:HPS; VAR p:POINTL) : BOOLEAN;
- PROCEDURE SetCharDirection(h:HPS; d:LONGINT) : BOOLEAN;
- PROCEDURE QueryCharDirection(h:HPS) : LONGINT;
- PROCEDURE SetCharMode(h:HPS; m:LONGINT) : BOOLEAN;
- PROCEDURE QueryCharMode(h:HPS) : LONGINT;
- PROCEDURE CharStringPos(h:HPS; VAR r:RECTL; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; VAR i: ARRAY OF LONGINT) : HITSRET;
- PROCEDURE CharStringPosAt(h:HPS; VAR p:POINTL; VAR r:RECTL; o:LSET; c:LONGCARD; s:ARRAY OF CHAR; VAR i:ARRAY OF LONGINT) : HITSRET;
- PROCEDURE SetMarkerSet(h:HPS; s:LONGINT) : BOOLEAN;
- PROCEDURE QueryMarkerSet(h:HPS) : LONGINT;
- PROCEDURE SetMarker(h:HPS; s:LONGINT) : BOOLEAN;
- PROCEDURE QueryMarker(h:HPS) :LONGINT;
- PROCEDURE SetMarkerBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
- PROCEDURE QueryMarkerBox(h:HPS; VAR s:SIZEF) : BOOLEAN;
- PROCEDURE Marker(h:HPS; VAR p:POINTL) : HITSRET;
- PROCEDURE PolyMarker(h:HPS; c:LONGCARD; p:ARRAY OF POINTL) : GPIRET;
- PROCEDURE Image(h:HPS; f:LONGINT; VAR s:SIZEL; l:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
- PROCEDURE Pop(h:HPS; c:LONGCARD) : BOOLEAN;
- PROCEDURE PtVisible(h:HPS; VAR p:POINTL) : LONGINT;
- PROCEDURE RectVisible(h:HPS; VAR r:RECTL) : LONGINT;
- PROCEDURE Comment(h:HPS; l:LONGCARD; VAR b:ARRAY OF BYTE) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi LCIDS ----------------------------------------------------------*)
- (**)
- (*%T i_LCID*)
- CONST
- (* return codes from GpiCreateLogFont *)
- FONT_DEFAULT = 1;
- FONT_MATCH = 2;
- (* lcid type for GpiQuerySetIds *)
- LCIDT_FONT = 6;
- LCIDT_BITMAP = 7;
- LCID_ALL = -1;
- TYPE
- (* kerning data returned by GpiQueryKerningPairs *)
- KERNINGPAIRS = RECORD
- FirstChar : INTEGER;
- SecondChar : INTEGER;
- KerningAmount : INTEGER;
- END;
- CONST
- (* options for GpiQueryFonts *)
- QF_PUBLIC = LSET(01H);
- QF_PRIVATE = LSET(02H);
- TYPE
- (* font file descriptions for GpiQueryFontFileDescriptions *)
- FFDESCS = ARRAY [0..1] OF ARRAY [0..31] OF CHAR;
- CONST
- (* values of Selection field of FATTRS structure *)
- FATTR_SEL_ITALIC = 001H;
- FATTR_SEL_UNDERSCORE = 002H;
- FATTR_SEL_OUTLINE = 008H;
- FATTR_SEL_STRIKEOUT = 010H;
- FATTR_SEL_BOLD = 020H;
- (* values of Type field of FATTRS structure *)
- FATTR_TYPE_FIXED = 002H;
- FATTR_TYPE_KERNING = 004H;
- FATTR_TYPE_MBCS = 008H;
- FATTR_TYPE_DBCS = 010H;
- FATTR_TYPE_ANTIALIASED= 020H;
- (* values of FontUse field of FATTRS structure *)
- FATTR_FONTUSE_NOMIX = 002H;
- FATTR_FONTUSE_OUTLINE = 004H;
- FATTR_FONTUSE_TRANSFORMABLE = 008H;
- (* size for fields in the font structures *)
- FACESIZE = 32;
- TYPE
- FATTRS = RECORD
- RecordLength : CARDINAL;
- Selection : CARDINAL;
- Match : LONGINT;
- FaceName : ARRAY [0..31] OF CHAR;
- IdRegistry : CARDINAL;
- CodePage : CARDINAL;
- MaxBaselineExt : LONGINT;
- AveCharWidth : LONGINT;
- Type : CARDINAL;
- FontUse : CARDINAL;
- END;
- CONST
- (* values of fsType field of FONTMETRICS structure *)
- FM_TYPE_FIXED = 0001H;
- FM_TYPE_LICENSED = 0002H;
- FM_TYPE_KERNING = 0004H;
- FM_TYPE_DBCS = 0010H;
- FM_TYPE_MBCS = 0018H;
- FM_TYPE_64K = 8000H;
- (* values of fsDefn field of FONTMETRICS structure *)
- FM_DEFN_OUTLINE = 0;
- FM_DEFN_GENERIC = 15;
- (* values of fsSelection field of FONTMETRICS structure *)
- FM_SEL_ITALIC = 0001H;
- FM_SEL_UNDERSCORE = 0002H;
- FM_SEL_NEGATIVE = 0004H;
- FM_SEL_OUTLINE = 0008H; (* Hollow Outline Font *)
- FM_SEL_STRIKEOUT = 0010H;
- FM_SEL_BOLD = 0020H;
- (* values of fsCapabilities field of FONTMETRICS structure *)
- FM_CAP_NOMIX = 0001H;
- TYPE
- FONTMETRICS = RECORD
- Familyname : ARRAY [0..31] OF CHAR;
- Facename : ARRAY [0..31] OF CHAR;
- IdRegistry : INTEGER;
- CodePage : INTEGER;
- EmHeight : LONGINT;
- XHeight : LONGINT;
- MaxAscender : LONGINT;
- MaxDescender : LONGINT;
- LowerCaseAscent : LONGINT;
- LowerCaseDescent : LONGINT;
- InternalLeading : LONGINT;
- ExternalLeading : LONGINT;
- AveCharWidth : LONGINT;
- MaxCharInc : LONGINT;
- EmInc : LONGINT;
- MaxBaselineExt : LONGINT;
- CharSlope : INTEGER;
- InlineDir : INTEGER;
- CharRot : INTEGER;
- WeightClass : CARDINAL;
- WidthClass : CARDINAL;
- XDeviceRes : INTEGER;
- YDeviceRes : INTEGER;
- FirstChar : INTEGER;
- LastChar : INTEGER;
- DefaultChar : INTEGER;
- BreakChar : INTEGER;
- NominalPointSize : INTEGER;
- MinimumPointSize : INTEGER;
- MaximumPointSize : INTEGER;
- Type : CARDINAL;
- Defn : BITSET;
- Selection : CARDINAL;
- Capabilities : CARDINAL;
- SubscriptXSize : LONGINT;
- SubscriptYSize : LONGINT;
- SubscriptXOffset : LONGINT;
- SubscriptYOffset : LONGINT;
- SuperscriptXSize : LONGINT;
- SuperscriptYSize : LONGINT;
- SuperscriptXOffset : LONGINT;
- SuperscriptYOffset : LONGINT;
- UnderscoreSize : LONGINT;
- UnderscorePosition : LONGINT;
- StrikeoutSize : LONGINT;
- StrikeoutPosition : LONGINT;
- KerningPairs : INTEGER;
- Reserved : INTEGER;
- Match : LONGINT;
- END;
- (*** physical and logical font functions *)
- PROCEDURE DeleteSetId(h:HPS; i:LONGINT) : BOOLEAN;
- PROCEDURE QueryNumberSetIds(h:HPS) : GPIRET;
- PROCEDURE QuerySetIds(h:HPS; c:LONGCARD; VAR t:ARRAY OF LONGINT; VAR n:ARRAY OF STR8; VAR i:ARRAY OF LONGCARD) : BOOLEAN;
- PROCEDURE LoadFonts(a:HAB; f:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE UnloadFonts(a:HAB; f:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE CreateLogFont(h:HPS; VAR n:STR8; i:LONGCARD; VAR a:FATTRS) : LONGINT;
- PROCEDURE QueryFonts(h:HPS; o:LSET; f:ARRAY OF CHAR; VAR c:LONGINT; l:LONGINT; VAR m:ARRAY OF FONTMETRICS) : LONGINT;
- PROCEDURE QueryFontMetrics(h:HPS; c:LONGCARD; VAR m:ARRAY OF FONTMETRICS) : BOOLEAN;
- PROCEDURE QueryKerningPairs(h:HPS; c:LONGCARD; VAR d:ARRAY OF KERNINGPAIRS) : GPIRET;
- PROCEDURE QueryWidthTable(h:HPS; f,c:LONGCARD; VAR d:ARRAY OF LONGCARD) : BOOLEAN;
- PROCEDURE SetCp(h:HPS; p:CARDINAL) : BOOLEAN;
- PROCEDURE QueryCp(h:HPS) : CARDINAL;
- PROCEDURE QueryFontFileDescriptions(a:HAB; f:ARRAY OF CHAR; VAR c:LONGCARD; VAR d:ARRAY OF FFDESCS) : GPIRET;
- (*%E*)
- (**)
- (**--- Gpi Common BITMAP functions ----------------------------------------*)
- (**)
- (*%T i_BITMAP1*)
- CONST
- (* rastor operations defined for GpiBitBlt *)
- ROP_SRCCOPY = 0CCH; ROP_SRCPAINT = 0EEH; ROP_SRCAND = 088H; ROP_SRCINVERT = 066H;
- ROP_SRCERASE = 044H; ROP_NOTSRCCOPY = 033H; ROP_NOTSRCERASE = 011H; ROP_MERGECOPY = 0C0H;
- ROP_MERGEPAINT = 0BBH; ROP_PATCOPY = 0F0H; ROP_PATPAINT = 0FBH; ROP_PATINVERT = 05AH;
- ROP_DSTINVERT = 055H; ROP_ZERO = 00H; ROP_ONE = 0FFH;
- (* Blt options for GpiBitBlt *)
- BBO_OR = LSET(0); BBO_AND = LSET(1); BBO_IGNORE = LSET(2);
- (* error return for GpiSetBitmap *)
- HBM_ERROR = HBITMAP(-1);
- (*** bitmap and pel functions *)
- PROCEDURE LoadBitmap(s:HPS; r:HMODULE; b:CARDINAL; w,h:LONGCARD) : HBITMAP;
- PROCEDURE DeleteBitmap(b:HBITMAP) : BOOLEAN;
- PROCEDURE SetBitmap(h:HPS; b:HBITMAP) : HBITMAP;
- PROCEDURE BitBlt(t,s:HPS; c:LONGCARD; VAR p:ARRAY OF POINTL; r:LONGCARD; o:LSET) : HITSRET;
- PROCEDURE WCBitBlt(h:HPS; b:HBITMAP; c:LONGCARD; p:ARRAY OF POINTL; r:LONGINT; o:LSET) : HITSRET;
- (*%E*)
- (**)
- (**--- Gpi Uncommon BITMAP Funtions ---------------------------------------*)
- (**)
- (*%T i_BITMAP2*)
- CONST
- (* usage flags for GpiCreateBitmap *)
- CBM_INIT = LSET(04H);
- TYPE
- (* bitmap parameterization used by GpiCreateBitmap and others *)
- BITMAPINFOHEADER = RECORD
- Fix : LONGCARD;
- x : CARDINAL;
- y : CARDINAL;
- Planes : CARDINAL;
- BitCount : CARDINAL;
- END;
- (* RGB data for _BITMAPINFO struct *)
- RGB = RECORD
- Blue : SHORTCARD;
- Green : SHORTCARD;
- Red : SHORTCARD;
- END;
- (* bitmap data used by GpiSetBitmapBits and others *)
- BITMAPINFO = RECORD
- Fix : LONGCARD;
- x : CARDINAL;
- y : CARDINAL;
- Planes : CARDINAL;
- BitCount : CARDINAL;
- Color : ARRAY [0..0] OF RGB; (* *** *)
- END;
- CONST
- (* error return code for GpiSet/QueryBitmapBits *)
- BMB_ERROR = -1;
- (*** bitmap and pel functions *)
- PROCEDURE CreateBitmap(h:HPS; VAR n:BITMAPINFOHEADER; o:LSET; VAR d:ARRAY OF BYTE; VAR i:BITMAPINFO) : HBITMAP;
- PROCEDURE SetBitmapDimension(b:HBITMAP; VAR s:SIZEL) : BOOLEAN;
- PROCEDURE QueryBitmapDimension(b:HBITMAP; VAR s:SIZEL) : BOOLEAN;
- PROCEDURE QueryDeviceBitmapFormats(h:HPS; c:LONGCARD; VAR a:ARRAY OF LONGINT) : BOOLEAN;
- PROCEDURE QueryBitmapParameters(b:HBITMAP; VAR i:BITMAPINFOHEADER) : BOOLEAN;
- PROCEDURE QueryBitmapBits(h:HPS; s,n:LONGCARD; VAR b:ARRAY OF BYTE; VAR i:BITMAPINFO) : GPIRET;
- PROCEDURE SetBitmapBits(h:HPS; s,n :LONGCARD; b:ARRAY OF BYTE; VAR d:BITMAPINFO) : GPIRET;
- PROCEDURE SetPel(h:HPS; VAR p:POINTL) : LONGINT;
- PROCEDURE QueryPel(h:HPS; VAR p:POINTL) : GPIRET;
- PROCEDURE SetBitmapId(h:HPS; b:HBITMAP; y:LONGINT) : BOOLEAN;
- PROCEDURE QueryBitmapHandle(h:HPS; i:LONGINT) : HBITMAP;
- (*%E*)
- (**)
- (**--- Bitmap file formats ------------------------------------------------*)
- (**)
- (*%T i_BITMAP3*)
- (*
- * This is the file format structure for Bit Maps, Pointers and Icons
- * as stored in the resource file of a PM application.
- *
- * Notes on file format:
- * Each BITMAPFILEHEADER entry is immediately followed by the color table
- * for the bit map bits it references.
- * Icons and Pointers contain two BITMAPFILEHEADERs for each ARRAYHEADER
- * item. The first one is for the ANDXOR mask, the second is for the
- * COLOR mask. All offsets are absolute based on the start of the FILE.
- *)
- TYPE
- BITMAPFILEHEADER = RECORD
- Type: CARDINAL;
- Size: LONGCARD;
- xHotspot: INTEGER;
- yHotspot: INTEGER;
- offBits : LONGCARD;
- bmp : BITMAPINFOHEADER;
- END;
- (* This is the 1.2 device independent format header *)
- BITMAPARRAYFILEHEADER = RECORD
- Type: CARDINAL;
- Size: LONGCARD;
- offNext : LONGCARD;
- cxDisplay: CARDINAL;
- cyDisplay: CARDINAL;
- bfh : BITMAPFILEHEADER;
- END;
- (* These are the identifying values that go in the usType field of the
- * BITMAPFILEHEADER and BITMAPARRAYFILEHEADER. (BFT_ => Bit map File Type) *)
- CONST
- BFT_ICON = 04349H; (* 'IC' *)
- BFT_BMAP = 04D42H; (* 'BM' *)
- BFT_POINTER = 05450H; (* 'PT' *)
- BFT_COLORICON = 04943H; (* 'CI' *)
- BFT_COLORPOINTER = 05043H; (* 'CP' *)
- BFT_BITMAPARRAY = 04142H; (* 'BA' *)
- (*%E*)
- (**)
- (**--- Gpi Regions --------------------------------------------------------*)
- (**)
- (*%T i_REGION*)
- CONST
- (* options for GpiCombineRegion *)
- CRGN_OR = 1; CRGN_COPY = 2; CRGN_XOR = 4; CRGN_AND = 6; CRGN_DIFF = 7;
- (* usDirection of returned region data for GpiQueryRegionRects *)
- RECTDIR_LFRT_TOPBOT = 1; RECTDIR_RTLF_TOPBOT = 2; RECTDIR_LFRT_BOTTOP = 3; RECTDIR_RTLF_BOTTOP = 4;
- TYPE
- (* control data for GpiQueryRegionRects *)
- RGNRECT = RECORD
- Start : CARDINAL;
- crc : CARDINAL;
- crcReturned : CARDINAL;
- Direction : CARDINAL;
- END;
- CONST
- (* return code to indicate type of region for GpiCombineRegion and others *)
- RGN_ERROR = 0; RGN_NULL = 1; RGN_RECT = 2; RGN_COMPLEX = 3;
- (* return codes for GpiPtInRegion *)
- PRGN_ERROR = 0; PRGN_OUTSIDE = 1; PRGN_INSIDE = 2;
- (* return codes for GpiRectInRegion *)
- RRGN_ERROR = 0; RRGN_OUTSIDE = 1; RRGN_PARTIAL = 2; RRGN_INSIDE = 3;
- (* return codes for GpiEqualRegion *)
- EQRGN_ERROR = 0; EQRGN_NOTEQUAL = 1; EQRGN_EQUAL = 2;
- (* error return code for GpiSetRegion *)
- HRGN_ERROR = HRGN(-1);
- (*** main region functions *)
- PROCEDURE CreateRegion(h:HPS; c:LONGCARD; VAR r:ARRAY OF RECTL) : HRGN;
- PROCEDURE SetRegion(h:HPS; r:HRGN; c:LONGCARD; a:ARRAY OF RECTL) : BOOLEAN;
- PROCEDURE DestroyRegion(h:HPS; r:HRGN) : BOOLEAN;
- PROCEDURE CombineRegion(h:HPS; d,s1,s2:HRGN; m:LONGCARD) : LONGINT;
- PROCEDURE EqualRegion(h:HPS; s1,s2:HRGN) : LONGINT;
- PROCEDURE OffsetRegion(h:HPS; r:HRGN; VAR p:POINTL) : BOOLEAN;
- PROCEDURE PtInRegion(h:HPS; r:HRGN; VAR p:POINTL) : LONGINT;
- PROCEDURE RectInRegion(h:HPS; r:HRGN; VAR t:RECTL) : LONGINT;
- PROCEDURE QueryRegionBox(h:HPS; r:HRGN; VAR b:RECTL) : LONGINT;
- PROCEDURE QueryRegionRects(h:HPS; r:HRGN; VAR b:RECTL; VAR c:RGNRECT; VAR a:ARRAY OF RECTL) : BOOLEAN;
- PROCEDURE PaintRegion(h:HPS; r:HRGN) : HITSRET;
- PROCEDURE SetClipRegion(h:HPS; r:HRGN; VAR o:HRGN) : LONGINT;
- PROCEDURE QueryClipRegion(h:HPS) : HRGN;
- PROCEDURE QueryClipBox(h:HPS; VAR r:RECTL) : LONGINT;
- PROCEDURE IntersectClipRectangle(h:HPS; VAR r:RECTL) : LONGINT;
- PROCEDURE ExcludeClipRectangle(h:HPS; VAR r:RECTL) : LONGINT;
- PROCEDURE OffsetClipRegion(h:HPS; VAR p:POINTL) : LONGINT;
- (*%E*)
- (**)
- (**--- Gpi Metafiles ------------------------------------------------------*)
- (**)
- (*%T i_METAF*)
- CONST
- (* constants for index values of options array for GpiPlayMetafile *)
- PMF_SEGBASE = 0; PMF_LOADTYPE = 1; PMF_RESOLVE = 2; PMF_LCIDS = 3;
- PMF_RESET = 4; PMF_SUPPRESS = 5; PMF_COLORTABLES = 6; PMF_COLORREALIZABLE = 7;
- (* options for GpiPlayMetafile *)
- RS_DEFAULT = 0; RS_NODISCARD = 1;
- LC_DEFAULT = 0; LC_NOLOAD = 1; LC_LOADDISC = 3;
- LT_DEFAULT = 0; LT_NOMODIFY = 1; LT_ORIGINALVIEW = 4;
- RES_DEFAULT = 0; RES_NORESET = 1; RES_RESET = 2;
- SUP_DEFAULT = 0; SUP_NOSUPPRESS = 1; SUP_SUPPRESS = 2;
- CTAB_DEFAULT = 0; CTAB_NOMODIFY = 1; CTAB_REPLACE = 3;
- CREA_DEFAULT = 0; CREA_REALIZE = 1; CREA_NOREALIZE = 2;
- DDEF_DEFAULT = 0; DDEF_IGNORE = 1; DDEF_LOADDISC = 3;
- RSP_DEFAULT = 0; RSP_NODISCARD = 1;
- PROCEDURE LoadMetaFile(a:HAB; f:ARRAY OF CHAR) : HMF;
- PROCEDURE PlayMetaFile(h:HPS; f:HMF; c1:LONGCARD; VAR o:ARRAY OF LONGINT; VAR s:LONGCARD; c2:LONGCARD; VAR d:ARRAY OF BYTE) : HITSRET;
- PROCEDURE SaveMetaFile(f:HMF; n:ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE DeleteMetaFile(f:HMF) : BOOLEAN;
- PROCEDURE CopyMetaFile(f:HMF) : HMF;
- PROCEDURE QueryMetaFileLength(f:HMF) : GPIRET;
- PROCEDURE QueryMetaFileBits(f:HMF; o,c:LONGCARD; VAR d:ARRAY OF BYTE) : BOOLEAN;
- PROCEDURE SetMetaFileBits(f:HMF; o,c:LONGCARD; d:ARRAY OF BYTE) : BOOLEAN;
- (*%E*)
- (**)
- (**--- Gpi Defaults ------------------------------------------------------*)
- (**)
- (*%T i_DEFAULT*)
- (* default functions *)
- PROCEDURE QueryDefArcParams(h:HPS; VAR a:ARCPARAMS): BOOLEAN;
- PROCEDURE QueryDefAttrs(h:HPS; Prim: LONGINT; Mask: LONGCARD; bun: PBUNDLE): BOOLEAN;
- PROCEDURE QueryDefTag(h:HPS; VAR Tag: LONGINT): BOOLEAN;
- PROCEDURE QueryDefViewingLimits(h:HPS; VAR Limits: RECTL): BOOLEAN;
- PROCEDURE SetDefArcParams(h:HPS; VAR p: ARCPARAMS): BOOLEAN;
- PROCEDURE SetDefAttrs(h:HPS; Prim: LONGINT; Mask: LSET; bun: PBUNDLE): BOOLEAN;
- PROCEDURE SetDefTag(h:HPS; Tag: LONGINT): BOOLEAN;
- PROCEDURE SetDefViewingLimits(h:HPS; VAR Limits:RECTL): BOOLEAN;
- (*%E*)
- (**)
- (**--- GOCA Orders --------------------------------------------------------*)
- (**)
- (*%T i_ORDER*)
- (* form of RECTL with shorts instead of longs *)
- TYPE
- RECT1S = RECORD
- xLeft,
- yBottom,
- xRight,
- yTop: INTEGER;
- END;
- (* form of POINTL with 1 byte offsets instead of longs *)
- ODPOINT = RECORD
- dx,dy: SHORTCARD;
- END;
- (* form of SIZEL with shorts instead of longs *)
- SIZES = RECORD
- cx,cy: INTEGER;
- END;
- (* unsigned two-byte swapped integer *)
- SWPUSHORT = RECORD
- HiByte: SHORTCARD;
- LoByte: SHORTCARD;
- END;
- CONST
- (* 1-byte order codes *)
- OCODE_GNOP1 = 000H; (* No-operation *)
- OCODE_GESD = 0FFH; (* End symbol definition *)
- (* definitions to help determine whether an order code is a 2-byte order *)
- OCODE2_1 = 080H;
- OCODE2_2 = 088H;
- TYPE
- (* General 2-byte order structure *)
- ORDER = RECORD
- Code,Data: SHORTCARD;
- END;
- CONST
- (* 2-byte order codes *)
- OCODE_GBAR = 068H; (* Begin area *)
- OCODE_GCFIG = 07DH; (* Close figure *)
- OCODE_GEEL = 049H; (* End element *)
- OCODE_GEPTH = 07FH; (* End path *)
- OCODE_GEPROL = 03EH; (* End prologue *)
- OCODE_GPOP = 03FH; (* Pop *)
- OCODE_GSBMX = 00DH; (* Set background mix *)
- OCODE_GPSBMX = 04DH; (* Push & set b/g mix *)
- OCODE_GSCD = 03AH; (* Set char direction *)
- OCODE_GPSCD = 07AH; (* Push & set char direction *)
- OCODE_GSCR = 039H; (* Set char precision *)
- OCODE_GPSCR = 079H; (* Push & set char precision *)
- OCODE_GSCS = 038H; (* Set char set *)
- OCODE_GPSCS = 078H; (* Push & set char set *)
- OCODE_GSCOL = 00AH; (* Set color *)
- OCODE_GPSCOL = 04AH; (* Push & set color *)
- OCODE_GSLE = 01AH; (* Set line end *)
- OCODE_GPSLE = 05AH; (* Push & set line end *)
- OCODE_GSLJ = 01BH; (* Set line join *)
- OCODE_GPSLJ = 05BH; (* Push & set line join *)
- OCODE_GSLT = 018H; (* Set line type *)
- OCODE_GPSLT = 058H; (* Push & set line type *)
- OCODE_GSLW = 019H; (* Set line width *)
- OCODE_GPSLW = 059H; (* Push & set line width *)
- OCODE_GSMP = 03BH; (* Set marker precision *)
- OCODE_GPSMP = 07BH; (* Push & set marker precision *)
- OCODE_GSMS = 03CH; (* Set marker set *)
- OCODE_GPSMS = 07CH; (* Push & set marker set *)
- OCODE_GSMT = 029H; (* Set marker symbol *)
- OCODE_GPSMT = 069H; (* Push & set marker symbol *)
- OCODE_GSMX = 00CH; (* Set mix *)
- OCODE_GPSMX = 04CH; (* Push & set mix *)
- OCODE_GSPS = 008H; (* Set pattern set *)
- OCODE_GPSPS = 048H; (* Push & set pattern set *)
- OCODE_GSPT = 028H; (* Set pattern symbol *)
- OCODE_GPSPT = 009H; (* Push & set pattern symbol *)
- (* constants for 2-byte orders *)
- (* Begin area *)
- GBAR_RESERVED = 080H;
- GBAR_BOUNDARY = 0C0H;
- GBAR_NOBOUNDARY = 080H;
- GBAR_WINDING = 0A0H;
- GBAR_ALTERNATE = 080H;
- (* Set Character Precision *)
- GSCR_PRECISION = 00FH;
- (* definitions to help determine whether an order code is a long order *)
- OCODE_VLONG = 0FEH;
- (* long order structure *)
- LORDER_ML = 253;
- TYPE
- LORDER = RECORD
- Code,length: SHORTCARD;
- Data: ARRAY [0..LORDER_ML] OF SHORTCARD;
- END;
- CONST
- (* Long orders for which the length of data is normally zero *)
- OCODE_GEAR = 060H; (* End Area *)
- OCODE_GEIMG = 093H; (* End Image *)
- (* Long orders for which the data is contained in a type already defined *)
- (* Character String *)
- OCODE_GCCHST = 083H; (* char string at curr posn *)
- GCCHST_MC = 255; (* Max len of string in bytes *)
- OCODE_GCHST = 0C3H; (* char string at given pos *)
- GCHST_SMC = 251; (* Max len of string (S) *)
- GCHST_LMC = 247; (* Max len of string (L) *)
- (* Character String Move *)
- OCODE_GCCHSTM = 0B1H; (* char string move at c.p. *)
- GCCHSTM_MC = 255; (* Max len of string in byte *)
- OCODE_GCHSTM = 0F1H; (* char string move at g.p. *)
- GCHSTM_SMC = 251; (* Max len of string (S) *)
- GCHSTM_LMC = 247; (* Max len of string (L) *)
- (* Comment *)
- OCODE_GCOMT = 001H; (* Comment *)
- GCOMT_ML = 255; (* Maximum len of comment data *)
- (* Image *)
- OCODE_GIMD = 092H; (* Image data *)
- GIMD_ML = 255; (* Maximum len of image data *)
- (* Full Arc *)
- OCODE_GCFARC = 087H; (* full arc at current posn *)
- OCODE_GFARC = 0C7H; (* full arc at given posn *)
- (* Label *)
- OCODE_GLABL = 0D3H; (* Label *)
- (* Set Current Position *)
- OCODE_GSCP = 021H; (* Set current position *)
- OCODE_GPSCP = 061H; (* Push and set curr posn *)
- (* Bezier spline *)
- OCODE_GCBEZ = 0A5H; (* Bezier spline at curr pos *)
- GCBEZ_SMB = 21; (* Max number of splines (S) *)
- GCBEZ_LMB = 10; (* Max number of splines (L) *)
- OCODE_GBEZ = 0E5H; (* Bezier spline at given pos *)
- GBEZ_SMB = 20; (* Max number of splines (S) *)
- GBEZ_LMB = 10; (* Max number of splines (L) *)
- (* Fillet *)
- OCODE_GCFLT = 085H; (* fillet at current posn *)
- GCFLT_SMP = 63; (* Max number of points (S) *)
- GCFLT_LMP = 31; (* Max number of points (L) *)
- OCODE_GFLT = 0C5H; (* fillet at given position *)
- GFLT_SMP = 62; (* Max number of points (S) *)
- GFLT_LMP = 30; (* Max number of points (L) *)
- (* Polyline *)
- OCODE_GCLINE = 081H; (* polyline at current posn *)
- GCLINE_SMP = 63; (* Max number of points (S) *)
- GCLINE_LMP = 31; (* Max number of points (L) *)
- OCODE_GLINE = 0C1H; (* polyline at given posn *)
- GLINE_SMP = 62; (* Max number of points (S) *)
- GLINE_LMP = 30; (* Max number of points (L) *)
- (* Polymarker *)
- OCODE_GCMRK = 082H; (* marker at current posn *)
- GCMRK_SMP = 63; (* Max number of points (S) *)
- GCMRK_LMP = 31; (* Max number of points (L) *)
- OCODE_GMRK = 0C2H; (* marker at given posn *)
- GMRK_SMP = 62; (* Max number of points (S) *)
- GMRK_LMP = 30; (* Max number of points (L) *)
- (* Relative Line *)
- OCODE_GCRLINE = 0A1H; (* Relative line at curr pos *)
- GCRLINE_MP = 127; (* Max number of points *)
- OCODE_GRLINE = 0E1H; (* Relative line at givn pos *)
- GRLINE_SMP = 125; (* Max number of points (S) *)
- GRLINE_LMP = 123; (* Max number of points (L) *)
- (* Set Background Color *)
- OCODE_GSBCOL = 025H; (* Set background color *)
- OCODE_GPSBCOL = 065H; (* Push and set b/g color *)
- (* Set Extended Color *)
- OCODE_GSECOL = 026H; (* Set extended color *)
- OCODE_GPSECOL = 066H; (* Push and set ext color *)
- (* Extended Color values *)
- SECOL_DEFAULT0 = 00000H;
- SECOL_DEFAULT1 = 0FF00H;
- SECOL_NEUTRAL = 0FF07H;
- SECOL_RESET = 0FF08H;
- (* Set Character Angle *)
- OCODE_GSCA = 034H; (* Set character angle *)
- OCODE_GPSCA = 074H; (* Push and set char angle *)
- (* Set Character Shear *)
- OCODE_GSCH = 035H; (* Set character shear *)
- OCODE_GPSCH = 075H; (* Push and set char shear *)
- (* Set Fractional Line Width *)
- OCODE_GSFLW = 011H; (* Set fractional line width *)
- OCODE_GPSFLW = 051H; (* Push and set frac l width *)
- (* Set Pick Identifier *)
- OCODE_GSPIK = 043H; (* Set pick identifier *)
- OCODE_GPSPIK = 023H; (* Push and set pick id *)
- OCODE_GCARC = 086H; (* Arc at Current Position *)
- OCODE_GARC = 0C6H; (* Arc at Given Position *)
- OCODE_GBEL = 0D2H; (* Begin Element *)
- GBEL_DL = 251;
- OCODE_GCBIMG = 091H; (* Begin Image at curr posn *)
- OCODE_GBIMG = 0D1H; (* Begin Image at given posn *)
- OCODE_GBPTH = 0D0H; (* Begin Path *)
- OCODE_GCBOX = 080H; (* Box at current position *)
- OCODE_GBOX = 0C0H; (* Box at given position *)
- GCBOX_FILL = 040H;
- GCBOX_BOUNDARY = 020H;
- OCODE_GCALLS = 007H; (* call segment *)
- OCODE_GFPTH = 0D7H; (* Fill path *)
- GFPTH_ALTERNATE = 000H;
- GFPTH_WINDING = 040H;
- GFPTH_MODIFY = 020H;
- OCODE_GOPTH = 0D4H; (* Outline Path *)
- OCODE_GMPTH = 0D8H; (* modify path *)
- GMPTH_STROKE = 006H;
- OCODE_GCPARC = 0A3H; (* Partial arc at curr posn *)
- OCODE_GPARC = 0E3H; (* Partial arc at given posn *)
- OCODE_GSCPTH = 0B4H; (* Set clip path *)
- GSCPTH_ALTERNATE = 000H;
- GSCPTH_WINDING = 040H;
- GSCPTH_RESET = 000H;
- GSCPTH_INTERSECT = 020H;
- OCODE_GSAP = 022H; (* Set arc parameters *)
- OCODE_GPSAP = 062H; (* Push and set arc params *)
- OCODE_GSBICOL = 0A7H; (* Set b/g indexed color *)
- OCODE_GPSBICOL = 0E7H; (* Push and set b/g ind color *)
- OCODE_GSICOL = 0A6H; (* Set indexed color *)
- OCODE_GPSICOL = 0E6H; (* Push and set indexd color *)
- SICOL_SPECIFY = 000H;
- SICOL_SPECIAL = 040H;
- SICOL_DEFAULT = 080H;
- SICOL_BLACK = 1;
- SICOL_WHITE = 2;
- SICOL_ONES = 4;
- SICOL_ZEROES = 5;
- OCODE_GSCC = 033H; (* Set character cell *)
- OCODE_GPSCC = 003H; (* Push and set char cell *)
- GSCC_ZERODEF = 000H;
- GSCC_ZEROZERO = 080H;
- OCODE_GPSMC = 077H; (* Push and set marker cell *)
- GSMC_ZERODEF = 000H;
- GSMC_ZEROZERO = 080H;
- OCODE_GSPRP = 0A0H; (* Set pattern ref point *)
- OCODE_GPSPRP = 0E0H; (* Push and set patt ref pt *)
- GSPRP_DEFAULT = 080H;
- GSPRP_SPECIFY = 000H;
- OCODE_GSIA = 014H; (* Set individual attribute *)
- OCODE_GPSIA = 054H; (* Push and set ind attr *)
- GSIA_COLOR = 001H;
- GSIA_BCOLOR = 002H;
- GSIA_MIX = 003H;
- GSIA_BMIX = 004H;
- GSIA_LINE = 001H;
- GSIA_CHAR = 002H;
- GSIA_MARKER = 003H;
- GSIA_PATTERN = 004H;
- GSIA_IMAGE = 005H;
- GSIA_SPECIFY = 000H;
- GSIA_SPECIAL = 040H;
- GSIA_DEFAULT = 080H;
- GSIA_BLACK = 1;
- GSIA_WHITE = 2;
- GSIA_ONES = 4;
- GSIA_ZEROES = 5;
- OCODE_GSTM = 024H; (* Set model transform *)
- OCODE_GPSTM = 064H; (* Push and set model tfm *)
- OCODE_GSTV = 031H; (* Set Viewing Transform *)
- GSTM_ML = 16;
- GSTM_M11 = 08000H;
- GSTM_M12 = 04000H;
- GSTM_M13 = 02000H;
- GSTM_M14 = 01000H;
- GSTM_M21 = 00800H;
- GSTM_M22 = 00400H;
- GSTM_M23 = 00200H;
- GSTM_M24 = 00100H;
- GSTM_M31 = 00080H;
- GSTM_M32 = 00040H;
- GSTM_M33 = 00020H;
- GSTM_M34 = 00010H;
- GSTM_M41 = 00008H;
- GSTM_M42 = 00004H;
- GSTM_M43 = 00002H;
- GSTM_M44 = 00001H;
- GSTM_UNITY = 000H;
- GSTM_AFTER = 001H;
- GSTM_BEFORE = 002H;
- GSTM_OVERWRITE = 003H;
- GSTV_OVERWRITE = 000H;
- GSTV_AFTER = 004H;
- OCODE_GSSB = 032H; (* Set segment boundary *)
- OCODE_GSVW = 027H; (* Set viewing window *)
- OCODE_GPSVW = 067H; (* Push and set view window *)
- GSSB_ML = 4;
- GSSB_XLEFT = 020H;
- GSSB_XRIGHT = 010H;
- GSSB_YBOTTOM = 008H;
- GSSB_YTOP = 004H;
- GSVW_INTERSECT = 000H;
- GSVW_REPLACE = 080H;
- OCODE_GSGCH = 004H; (* Set segment characteristics *)
- GSGCH_ML = 254;
- OCODE_GSSLW = 015H; (* Set stroke line width *)
- OCODE_GPSSLW = 055H; (* Push and set strk l width *)
- GSSLW_DEFAULT = 080H;
- GSSLW_SPECIFY = 000H;
- OCODE_GCSFLT = 0A4H; (* Sharp fillet at curr pos *)
- OCODE_GSFLT = 0E4H; (* Sharp fillet at given pos *)
- GCSFLT_SMF = 21;
- GSFLT_SMF = 20;
- GCSFLT_LMF = 12;
- GSFLT_LMF = 12;
- OCODE_GBBLT = 0D6H; (* Bitblt *)
- OCODE_GESCP = 0D5H; (* Escape *)
- GESCP_ML = 253;
- GESCP_REG = 080H; (* identifier is registered *)
- GEBB_REGID = 002H; (* uchIdent - Bitblt *)
- ETYPE_GEBB = 0800200D5H;
- GEBB_LMP = 29;
- GEPEL_REGID = 001H; (* uchIdent - Set Pel *)
- ETYPE_GEPEL = 0800100D5H;
- ETYPE_LINEBUNDLE = 00000FD01H;
- ETYPE_CHARBUNDLE = 00000FD02H;
- ETYPE_MARKERBUNDLE = 00000FD03H;
- ETYPE_AREABUNDLE = 00000FD04H;
- ETYPE_IMAGEBUNDLE = 00000FD05H;
- (***************************************************************************\
- *
- * Very long orders
- *
- \***************************************************************************)
- (* Very long order structure *)
- CONST
- VORDER_ML = 65530;
- TYPE
- VORDER = RECORD
- Code: SHORTCARD;
- Qual: SHORTCARD;
- Length: SWPUSHORT;
- DATA: ARRAY [0..VORDER_ML-1] OF SHORTCARD;
- END;
- CONST
- (* Character String Extended *)
- OCODEQ_GCCHSTE = 0B0H; (* Qualifier - current posn *)
- OCODEQ_GCHSTE = 0F0H; (* Qualifier - given position *)
- ETYPE_GCCHSTE = 00000FEB0H;
- ETYPE_GCHSTE = 00000FEF0H;
- GCCHSTE_DRAWRECT = 080H;
- GCCHSTE_NORECT = 000H;
- GCCHSTE_CLIP = 040H;
- GCCHSTE_NOCLIP = 000H;
- GCCHSTE_DEEMPHASIZE = 020H;
- GCCHSTE_NODEEMPHASIZE = 000H;
- GCCHSTE_LEAVEPOS = 010H;
- GCCHSTE_MOVEPOS = 000H;
- OCODEQ_GEESCP = 0D5H; (* Qualifier - extended escape *)
- (*%E*)
- (**)
- (**--- Font stuff ---------------------------------------------------------*)
- (**)
- (*%T i_FONT*)
- TYPE
- FOCAMETRICS = RECORD
- Identity : LONGCARD;
- Size : LONGCARD;
- Familyname: ARRAY[0..31] OF CHAR;
- Facename : ARRAY[0..31] OF CHAR;
- RegistryId: INTEGER;
- CodePage : INTEGER;
- EmHeight : INTEGER;
- XHeight : INTEGER;
- yMaxAscender : INTEGER;
- yMaxDescender : INTEGER;
- yLowerCaseAscent : INTEGER;
- yLowerCaseDescent: INTEGER;
- yInternalLeading : INTEGER;
- yExternalLeading : INTEGER;
- xAveCharWidth : INTEGER;
- xMaxCharInc : INTEGER;
- xEmInc : INTEGER;
- yMaxBaselineExt : INTEGER;
- CharSlope : INTEGER;
- InlineDir : INTEGER;
- CharRot : INTEGER;
- WeightClass: CARDINAL;
- WidthClass : CARDINAL;
- xDeviceRes : INTEGER;
- yDeviceRes : INTEGER;
- FirstChar : INTEGER;
- LastChar : INTEGER;
- DefaultChar: INTEGER;
- BreakChar : INTEGER;
- NominalPointSize : INTEGER;
- MinimumPointSize : INTEGER;
- MaximumPointSize : INTEGER;
- TypeFlags : INTEGER;
- Defn : INTEGER;
- SelectionFlags : INTEGER;
- Capabilities : INTEGER;
- ySubscriptXSize : INTEGER;
- ySubscriptYSize : INTEGER;
- ySubscriptXOffset: INTEGER;
- ySubscriptYOffset: INTEGER;
- ySuperscriptXSize: INTEGER;
- ySuperscriptYSize: INTEGER;
- ySuperscriptXOffset: INTEGER;
- ySuperscriptYOffset: INTEGER;
- yUnderscoreSize : INTEGER;
- yUnderscorePosition: INTEGER;
- yStrikeoutSize : INTEGER;
- yStrikeoutPosition : INTEGER;
- KerningPairs : INTEGER;
- FamilyClass : INTEGER;
- DeviceNameOffset: FarADDRESS;
- END;
- FONTDEFINITIONHEADER = RECORD
- Identity: LONGCARD;
- Size : LONGCARD;
- Fontdef : INTEGER;
- Chardef : INTEGER;
- CellSize: INTEGER;
- xCellWidth : INTEGER;
- yCellHeight : INTEGER;
- xCellIncrement: INTEGER;
- xCellA : INTEGER;
- xCellB : INTEGER;
- xCellC : INTEGER;
- pCellBaseOffset: INTEGER;
- END;
- CONST
- FONTDEFFONT1 = 0047H; (* set width, height, inc. & base offset *)
- FONTDEFFONT2 = 0042H; (* set height & base offset *)
- FONTDEFFONT3 = 0042H; (* set height & base offset *)
- FONTDEFCHAR1 = 0081H; (* set char offset and width *)
- FONTDEFCHAR2 = 0081H; (* set char offset and width *)
- FONTDEFCHAR3 = 00B8H; (* set char offset, A, B, and C space *)
- SPACE_UNDEF = 08000H; (* space undefined = take default *)
- TYPE
- FONTSIGNATURE = RECORD
- Identity : LONGCARD;
- Size : LONGCARD;
- Signature: ARRAY [0..11] OF CHAR;
- END;
- FOCAFONT = RECORD
- Signature : FONTSIGNATURE;
- Metrics : FOCAMETRICS;
- Definitions: FONTDEFINITIONHEADER;
- END;
- CONST
- FONT_SIGNATURE = 0FFFFFFFEH; (* Identity header start *)
- FONT_METRICS = 000000001H; (* Identity metrics *)
- FONT_DEFINITION = 000000002H; (* Identity definition *)
- FONT_ENDRECORD = 0FFFFFFFFH; (* Identity record end *)
- (* Options for QueryFonts *)
- QUERY_PUBLIC_FONTS = 01H;
- QUERY_PRIVATE_FONTS = 02H;
- CDEF_GENERIC = 00001H;
- CDEF_BOLD = 00002H;
- CDEF_ITALIC = 00004H;
- CDEF_UNDERSCORE = 00008H;
- CDEF_STRIKEOUT = 00010H;
- CDEF_OUTLINE = 00020H;
- (*%E*)
- (**)
- (**--- Gpi End ------------------------------------------------------------*)
- (**)
- END Gpi.
|