fpc/rtl/os2/pmord.pas
1998-03-25 11:18:12 +00:00

726 lines
15 KiB
ObjectPascal

{****************************************************************************
Copyright (c) 1993,94 by Florian Kl„mpfl
****************************************************************************}
unit pmord;
interface
uses
os2def,pmgpi;
{$PACKRECORDS 1}
type
RECT1S = record
xLeft : SHORT;
yBottom : SHORT;
xRight : SHORT;
yTop : SHORT;
end;
ODPOINT = record
dx : CHAR;
dy : CHAR;
end;
SIZES = record
cx : SHORT;
cy : SHORT;
end;
SWPUSHORT = record
HiByte : UCHAR;
LoByte : UCHAR;
end;
const
OCODE_GNOP1 = $00;
OCODE_GESD = $FF;
OCODE2_1 = $80;
OCODE2_2 = $88;
type
ORDER = record
idCode : UCHAR;
uchData : UCHAR;
end;
const
OCODE_GBAR = $68;
OCODE_GCFIG = $7D;
OCODE_GEEL = $49;
OCODE_GEPTH = $7F;
OCODE_GEPROL = $3E;
OCODE_GPOP = $3F;
OCODE_GSBMX = $0D;
OCODE_GPSBMX = $4D;
OCODE_GSCD = $3A;
OCODE_GPSCD = $7A;
OCODE_GSCR = $39;
OCODE_GPSCR = $79;
OCODE_GSCS = $38;
OCODE_GPSCS = $78;
OCODE_GSCOL = $0A;
OCODE_GPSCOL = $4A;
OCODE_GSLE = $1A;
OCODE_GPSLE = $5A;
OCODE_GSLJ = $1B;
OCODE_GPSLJ = $5B;
OCODE_GSLT = $18;
OCODE_GPSLT = $58;
OCODE_GSLW = $19;
OCODE_GPSLW = $59;
OCODE_GSMP = $3B;
OCODE_GPSMP = $7B;
OCODE_GSMS = $3C;
OCODE_GPSMS = $7C;
OCODE_GSMT = $29;
OCODE_GPSMT = $69;
OCODE_GSMX = $0C;
OCODE_GPSMX = $4C;
OCODE_GSPS = $08;
OCODE_GPSPS = $48;
OCODE_GSPT = $28;
OCODE_GPSPT = $09;
GBAR_RESERVED = $80;
GBAR_BOUNDARY = $C0;
GBAR_NOBOUNDARY = $80;
GBAR_WINDING = $A0;
GBAR_ALTERNATE = $80;
GSCR_PRECISION = $0F;
OCODE_VLONG = $FE;
LORDER_ML = 253;
type
LORDER = record
idCode : UCHAR;
uchLength : UCHAR;
uchData : array[0..LORDER_ML-1] of UCHAR;
end;
const
OCODE_GEAR = $60;
OCODE_GEIMG = $93;
OCODE_GCCHST = $83;
GCCHST_MC = 255;
OCODE_GCHST = $C3;
GCHST_SMC = 251;
GCHST_LMC = 247;
OCODE_GCCHSTM = $B1;
GCCHSTM_MC = 255;
OCODE_GCHSTM = $F1;
GCHSTM_SMC = 251;
GCHSTM_LMC = 247;
OCODE_GCOMT = $01;
GCOMT_ML = 255;
OCODE_GIMD = $92;
GIMD_ML = 255;
OCODE_GCFARC = $87;
OCODE_GFARC = $C7;
OCODE_GLABL = $D3;
OCODE_GSCP = $21;
OCODE_GPSCP = $61;
OCODE_GCBEZ = $A5;
GCBEZ_SMB = 21;
GCBEZ_LMB = 10;
OCODE_GBEZ = $E5;
GBEZ_SMB = 20;
GBEZ_LMB = 10;
OCODE_GCFLT = $85;
GCFLT_SMP = 63;
GCFLT_LMP = 31;
OCODE_GFLT = $C5;
GFLT_SMP = 62;
GFLT_LMP = 30;
OCODE_GCLINE = $81;
GCLINE_SMP = 63;
GCLINE_LMP = 31;
OCODE_GLINE = $C1;
GLINE_SMP = 62;
GLINE_LMP = 30;
OCODE_GCMRK = $82;
GCMRK_SMP = 63;
GCMRK_LMP = 31;
OCODE_GMRK = $C2;
GMRK_SMP = 62;
GMRK_LMP = 30;
OCODE_GCRLINE = $A1;
GCRLINE_MP = 127;
OCODE_GRLINE = $E1;
GRLINE_SMP = 125;
GRLINE_LMP = 123;
OCODE_GSBCOL = $25;
OCODE_GPSBCOL = $65;
OCODE_GSECOL = $26;
OCODE_GPSECOL = $66;
SECOL_DEFAULT0 = $0000;
SECOL_DEFAULT1 = $FF00;
SECOL_NEUTRAL = $FF07;
SECOL_RESET = $FF08;
OCODE_GSCA = $34;
OCODE_GPSCA = $74;
OCODE_GSCH = $35;
OCODE_GPSCH = $75;
OCODE_GSFLW = $11;
OCODE_GPSFLW = $51;
OCODE_GSPIK = $43;
OCODE_GPSPIK = $23;
OCODE_GCARC = $86;
OCODE_GARC = $C6;
type
ORDERS_GCARC = record
ptInter : POINTS;
ptEnd : POINTS;
end;
ORDERL_GCARC = record
ptInter : POINTL;
ptEnd : POINTL;
end;
const
OCODE_GBEL = $D2;
GBEL_DL = 251;
type
ORDER_GBEL = record
lElementType : LONG;
achDesc : array[0..GBEL_DL-1] of CHAR;
end;
const
OCODE_GCBIMG = $91;
OCODE_GBIMG = $D1;
type
ORDER_GCBIMG = record
uchFormat : UCHAR;
uchReserved : UCHAR;
cx : SWPUSHORT;
cy : SWPUSHORT;
end;
const
OCODE_GBPTH = $D0;
type
ORDER_GBPTH = record
usReserved : USHORT;
idPath : LONG;
end;
const
OCODE_GCBOX = $80;
OCODE_GBOX = $C0;
type
ORDERS_GCBOX = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptCorner : POINTS;
hAxis : SHORT;
vAxis : SHORT;
end;
ORDERL_GCBOX = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptCorner : POINTL;
hAxis : LONG;
vAxis : LONG;
end;
const
GCBOX_FILL = $40;
GCBOX_BOUNDARY = $20;
OCODE_GCALLS = $07;
type
ORDER_GCALLS = record
sReserved : USHORT;
idSegment : LONG;
end;
const
OCODE_GFPTH = $D7;
type
ORDER_GFPTH = record
fbFlags : UCHAR;
uchReserved : UCHAR;
idPath : LONG;
end;
const
GFPTH_ALTERNATE = $00;
GFPTH_WINDING = $40;
GFPTH_MODIFY = $20;
OCODE_GOPTH = $D4;
type
ORDER_GOPTH = record
fbFlags : UCHAR;
uchReserved : UCHAR;
idPath : LONG;
end;
const
OCODE_GMPTH = $D8;
type
ORDER_GMPTH = record
uchMode : UCHAR;
uchReserved : UCHAR;
idPath : LONG;
end;
const
GMPTH_STROKE = $06;
OCODE_GCPARC = $A3;
OCODE_GPARC = $E3;
type
ORDERS_GCPARC = record
ptCenter : POINTS;
ufx88Multiplier : FIXED88;
usStartAngle : LONG;
usSweepAngle : LONG;
end;
ORDERL_GCPARC = record
ptCenter : POINTL;
ufxMultiplier : FIXED;
usStartAngle : LONG;
usSweepAngle : LONG;
end;
const
OCODE_GSCPTH = $B4;
type
ORDER_GSCPTH = record
fbFlags : UCHAR;
uchReserved : UCHAR;
idPath : LONG;
end;
const
GSCPTH_ALTERNATE = $00;
GSCPTH_WINDING = $40;
GSCPTH_RESET = $00;
GSCPTH_INTERSECT = $20;
OCODE_GSAP = $22;
OCODE_GPSAP = $62;
type
ORDERS_GSAP = record
p : SHORT;
q : SHORT;
r : SHORT;
s : SHORT;
end;
ORDERL_GSAP = record
p : LONG;
q : LONG;
r : LONG;
s : LONG;
end;
const
OCODE_GSBICOL = $A7;
OCODE_GPSBICOL = $E7;
OCODE_GSICOL = $A6;
OCODE_GPSICOL = $E6;
type
ORDER_GSBICOL = record
fbFlags : UCHAR;
auchColor : array[0..3-1] of UCHAR;
end;
const
SICOL_SPECIFY = $00;
SICOL_SPECIAL = $40;
SICOL_DEFAULT = $80;
SICOL_BLACK = 1;
SICOL_WHITE = 2;
SICOL_ONES = 4;
SICOL_ZEROES = 5;
OCODE_GSCC = $33;
OCODE_GPSCC = $03;
type
ORDERS_GSCC = record
cxInt : SHORT;
cyInt : SHORT;
cxFract : USHORT;
cyFract : USHORT;
fbFlags : UCHAR;
uchReserved : UCHAR;
end;
ORDERL_GSCC = record
cxInt : LONG;
cyInt : LONG;
cxFract : USHORT;
cyFract : USHORT;
fbFlags : UCHAR;
uchReserved : UCHAR;
end;
const
GSCC_ZERODEF = $00;
GSCC_ZEROZERO = $80;
OCODE_GSMC = $37;
OCODE_GPSMC = $77;
type
ORDERS_GSMC = record
cx : SHORT;
cy : SHORT;
fbFlags : UCHAR;
uchReserved : UCHAR;
end;
ORDERL_GSMC = record
cx : LONG;
cy : LONG;
fbFlags : UCHAR;
uchReserved : UCHAR;
end;
const
GSMC_ZERODEF = $00;
GSMC_ZEROZERO = $80;
OCODE_GSPRP = $A0;
OCODE_GPSPRP = $E0;
type
ORDERS_GSPRP = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptPos : POINTS;
end;
ORDERL_GSPRP = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptPos : POINTL;
end;
const
GSPRP_DEFAULT = $80;
GSPRP_SPECIFY = $00;
OCODE_GSIA = $14;
OCODE_GPSIA = $54;
GSIA_VL = 3;
type
ORDER_GSIA = record
uchAttrType : UCHAR;
uchPrimType : UCHAR;
fbFlags : UCHAR;
auchValue : array[0..GSIA_VL-1] of UCHAR;
end;
const
GSIA_COLOR = $01;
GSIA_BCOLOR = $02;
GSIA_MIX = $03;
GSIA_BMIX = $04;
GSIA_LINE = $01;
GSIA_CHAR = $02;
GSIA_MARKER = $03;
GSIA_PATTERN = $04;
GSIA_IMAGE = $05;
GSIA_SPECIFY = $00;
GSIA_SPECIAL = $40;
GSIA_DEFAULT = $80;
GSIA_BLACK = 1;
GSIA_WHITE = 2;
GSIA_ONES = 4;
GSIA_ZEROES = 5;
OCODE_GSTM = $24;
OCODE_GPSTM = $64;
OCODE_GSTV = $31;
GSTM_ML = 16;
type
ORDERS_GSTM = record
uchReserved : UCHAR;
fbFlags : UCHAR;
fsMask : USHORT;
asMatrix : array[0..GSTM_ML-1] of SHORT;
end;
ORDERL_GSTM = record
uchReserved : UCHAR;
fbFlags : UCHAR;
fsMask : USHORT;
alMatrix : array[0..GSTM_ML-1] of LONG;
end;
const
GSTM_M11 = $8000;
GSTM_M12 = $4000;
GSTM_M13 = $2000;
GSTM_M14 = $1000;
GSTM_M21 = $0800;
GSTM_M22 = $0400;
GSTM_M23 = $0200;
GSTM_M24 = $0100;
GSTM_M31 = $0080;
GSTM_M32 = $0040;
GSTM_M33 = $0020;
GSTM_M34 = $0010;
GSTM_M41 = $0008;
GSTM_M42 = $0004;
GSTM_M43 = $0002;
GSTM_M44 = $0001;
GSTM_UNITY = $00;
GSTM_AFTER = $01;
GSTM_BEFORE = $02;
GSTM_OVERWRITE = $03;
GSTV_OVERWRITE = $00;
GSTV_AFTER = $04;
OCODE_GSSB = $32;
OCODE_GSVW = $27;
OCODE_GPSVW = $67;
GSSB_ML = 4;
type
ORDERS_GSSB = record
fbFlags : UCHAR;
fbMask : UCHAR;
alMatrix : array[0..GSSB_ML-1] of SHORT;
end;
ORDERL_GSSB = record
fbFLags : UCHAR;
fbMask : UCHAR;
alMatrix : array[0..GSSB_ML-1] of LONG;
end;
const
GSSB_XLEFT = $20;
GSSB_XRIGHT = $10;
GSSB_YBOTTOM = $08;
GSSB_YTOP = $04;
GSVW_INTERSECT = $00;
GSVW_REPLACE = $80;
OCODE_GSGCH = $04;
GSGCH_ML = 254;
type
ORDER_GSGCH = record
uchIdent : UCHAR;
auchData : array[0..GSGCH_ML-1] of UCHAR;
end;
const
OCODE_GSSLW = $15;
OCODE_GPSSLW = $55;
type
ORDERS_GSSLW = record
fbFlags : UCHAR;
uchReserved : UCHAR;
LineWidth : SHORT;
end;
ORDERL_GSSLW = record
fbFlags : UCHAR;
uchReserved : UCHAR;
LineWidth : LONG;
end;
const
GSSLW_DEFAULT = $80;
GSSLW_SPECIFY = $00;
OCODE_GCSFLT = $A4;
OCODE_GSFLT = $E4;
GCSFLT_SMF = 21;
GSFLT_SMF = 20;
GCSFLT_SMF2 = GCSFLT_SMF*2;
type
ORDERS_GCSFLT = record
apt : array[0..GCSFLT_SMF2-1] of POINTS;
afxSharpness : array[0..GCSFLT_SMF-1] of FIXED;
end;
const
GCSFLT_LMF = 12;
GSFLT_LMF = 12;
GCSFLT_LMF2 = GCSFLT_LMF*2;
type
ORDERL_GCSFLT = record
apt : array[0..GCSFLT_LMF2-1] of POINTL;
afxSharpness : array[0..GCSFLT_LMF-1] of FIXED;
end;
const
OCODE_GBBLT = $D6;
type
ORDERS_GBBLT = record
fsFlags : USHORT;
usMix : USHORT;
hbmSrc : HBITMAP;
lOptions : LONG;
rcsTargetRect : RECT1S;
rclSourceRect : RECTL;
end;
ORDERL_GBBLT = record
fsFlags : USHORT;
usMix : USHORT;
hbmSrc : HBITMAP;
lOptions : LONG;
rclTargetRect : RECTL;
rclSourceRect : RECTL;
end;
const
OCODE_GSCE = $17;
OCODE_GPSCE = $57;
OCODE_GSCBE = $05;
OCODE_GPSCBE = $45;
type
ORDER_GSCBE = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ufxextra : FIXED;
end;
const
OCODE_GESCP = $D5;
GESCP_ML = 253;
type
ORDER_GESCP = record
uchType : UCHAR;
uchIdent : UCHAR;
auchData : array[0..GESCP_ML-1] of UCHAR;
end;
const
GESCP_REG = $80;
GEBB_REGID = $02;
ETYPE_GEBB = $800200D5;
GEBB_LMP = 29;
type
ORDERL_GEBB = record
fbFlags : UCHAR;
usMix : USHORT;
cPoints : UCHAR;
hbmSrc : HBITMAP;
lReserved : LONG;
lOptions : LONG;
aptPoints : array[0..GEBB_LMP-1] of POINTL;
end;
const
GEPEL_REGID = $01;
ETYPE_GEPEL = $800100D5;
GEDB_REGID = $04;
ETYPE_GEDB = $800400D5;
type
ORDERL_GEDB = record
fsFlags : USHORT;
usMix : USHORT;
pBits : PVOID;
pbmi : PBITMAPINFO2;
lOptions : LONG;
rclTargetRect : RECTL;
rclSourceRect : RECTL;
end;
const
GEFF_REGID = $03;
ETYPE_GEFF = $800300D5;
type
ORDERL_GEFF = record
fsFlags : UCHAR;
auchColor : array[0..3-1] of UCHAR;
end;
const
ETYPE_LINEBUNDLE = $0000FD01;
ETYPE_CHARBUNDLE = $0000FD02;
ETYPE_MARKERBUNDLE = $0000FD03;
ETYPE_AREABUNDLE = $0000FD04;
ETYPE_IMAGEBUNDLE = $0000FD05;
VORDER_ML = 65531;
type
VORDER = record
idCode : UCHAR;
uchQualifier : UCHAR;
uchLength : SWPUSHORT;
uchData : array[0..VORDER_ML-1] of UCHAR;
end;
const
OCODEQ_GCCHSTE = $B0;
OCODEQ_GCHSTE = $F0;
ETYPE_GCCHSTE = $0000FEB0;
ETYPE_GCHSTE = $0000FEF0;
type
ORDERS_GCCHSTE = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptRect : array[0..2-1] of POINTS;
cchString : SWPUSHORT;
achString : array[0..1-1] of CHAR;
adx : array[0..1-1] of SHORT;
end;
ORDERL_GCCHSTE = record
fbFlags : UCHAR;
uchReserved : UCHAR;
ptRect : array[0..2-1] of POINTL;
cchString : SWPUSHORT;
achString : array[0..1-1] of CHAR;
adx : array[0..1-1] of LONG;
end;
const
GCCHSTE_DRAWRECT = $80;
GCCHSTE_NORECT = $00;
GCCHSTE_CLIP = $40;
GCCHSTE_NOCLIP = $00;
GCCHSTE_DEEMPHASIZE = $20;
GCCHSTE_NODEEMPHASIZE = $00;
GCCHSTE_LEAVEPOS = $10;
GCCHSTE_MOVEPOS = $00;
GCCHSTE_UNDERSCORE = $08;
GCCHSTE_NOUNDERSCORE = $00;
GCCHSTE_STRIKEOUT = $04;
GCCHSTE_NOSTRIKEOUT = $00;
OCODEQ_GEESCP = $D5;
GEESCP_ML = 65533;
type
ORDER_GEESCP = record
uchType : UCHAR;
uchIdent : UCHAR;
auchData : array[0..GEESCP_ML-1] of UCHAR;
end;
{$PACKRECORDS NORMAL}
implementation
end.