Orders added

This commit is contained in:
yuri 2003-03-27 18:11:23 +00:00
parent c6fbaed636
commit 1712c1a175

View File

@ -4,7 +4,7 @@
PMGPI interface unit
FPC Pascal Runtime Library for OS/2
Copyright (c) 1999-2000 by Florian Klmpfl
Copyright (c) 1999-2000 by Florian Klaempfl
Copyright (c) 1999-2000 by Ramon Bosque
The Free Pascal runtime library is distributed under the Library GNU Public
@ -39,6 +39,8 @@ unit pmgpi;
interface
{$MACRO ON}
uses os2def,pmbitmap;
const GPI_ERROR = 0;
@ -699,6 +701,942 @@ type SizeL=record
PPolyset=^Polyset;
TPolyset=Polyset;
// ===========================================================================
//*
//* The orders fall into 4 categories :-
//*
//* 1) 1-byte orders
//*
//* 2) 2-byte orders - second byte contains the value
//*
//* 3) Long orders - second byte gives the order length, subsequent bytes
//* contain the values (up to 256 bytes long)
//*
//* 4) Very long orders - third and fourth bytes gives the order length,
//* subsequent bytes contain the values (up to 64K long)
//*
//* ===========================================================================
//#pragma pack(1) /* pack on byte boundary */
//***************************************************************************\
//*
//* Miscellaneous structures used in this file
//*
//***************************************************************************/
// form of RECTL with shorts instead of longs
type
RECT1S=record // rcs
xLeft: Integer;
yBottom: Integer;
xRight: Integer;
yTop: Integer;
end;
// form of POINTL with 1 byte offsets instead of longs
ODPOINT=record // odpt
dx: Char;
dy: Char;
end;
// form of SIZEL with shorts instead of longs
SIZES=record // sizs
cx: Integer;
cy: Integer;
end;
// unsigned two-byte swapped integer
SWPUSHORT=record // swpus
HiByte: Byte;
LoByte: Byte;
end;
//***************************************************************************\
//*
//* 1-byte orders
//*
//***************************************************************************/
// macro to tell whether this is a 1-byte order
{$define BYTE_ORDER(oc):=((oc)=OCODE_GNOP1 or (oc)=OCODE_GESD)}
// 1-byte order codes
const
OCODE_GNOP1 =$00; // No-operation
OCODE_GESD =$FF; // End symbol definition
//***************************************************************************\
//
// 2-byte orders
//
//***************************************************************************/
// definitions to help determine whether an order code is a 2-byte order
const
OCODE2_1 =$80;
OCODE2_2 =$88;
{$define SHORT_ORDER(oc):=((((oc) xor OCODE2_1) and OCODE2_2)=OCODE2_2)}
// General 2-byte order structure
type
ORDER=record // ord
idCode: Byte;
uchData: Byte;
end;
// 2-byte order codes
const
OCODE_GBAR =$68; // Begin area
OCODE_GCFIG =$7D; // Close figure
OCODE_GEEL =$49; // End element
OCODE_GEPTH =$7F; // End path
OCODE_GEPROL =$3E; // End prologue
OCODE_GPOP =$3F; // Pop
OCODE_GSBMX =$0D; // Set background mix
OCODE_GPSBMX =$4D; // Push & set b/g mix
OCODE_GSCD =$3A; // Set char direction
OCODE_GPSCD =$7A; // Push & set char direction
OCODE_GSCR =$39; // Set char precision
OCODE_GPSCR =$79; // Push & set char precision
OCODE_GSCS =$38; // Set char set
OCODE_GPSCS =$78; // Push & set char set
OCODE_GSCOL =$0A; // Set color
OCODE_GPSCOL =$4A; // Push & set color
OCODE_GSLE =$1A; // Set line end
OCODE_GPSLE =$5A; // Push & set line end
OCODE_GSLJ =$1B; // Set line join
OCODE_GPSLJ =$5B; // Push & set line join
OCODE_GSLT =$18; // Set line type
OCODE_GPSLT =$58; // Push & set line type
OCODE_GSLW =$19; // Set line width
OCODE_GPSLW =$59; // Push & set line width
OCODE_GSMP =$3B; // Set marker precision
OCODE_GPSMP =$7B; // Push & set marker precision
OCODE_GSMS =$3C; // Set marker set
OCODE_GPSMS =$7C; // Push & set marker set
OCODE_GSMT =$29; // Set marker symbol
OCODE_GPSMT =$69; // Push & set marker symbol
OCODE_GSMX =$0C; // Set mix
OCODE_GPSMX =$4C; // Push & set mix
OCODE_GSPS =$08; // Set pattern set
OCODE_GPSPS =$48; // Push & set pattern set
OCODE_GSPT =$28; // Set pattern symbol
OCODE_GPSPT =$09; // Push & set pattern symbol
// constants for 2-byte orders
// Begin area
const
GBAR_RESERVED =$80;
GBAR_BOUNDARY =$C0;
GBAR_NOBOUNDARY =$80;
GBAR_WINDING =$A0;
GBAR_ALTERNATE =$80;
// Set Character Precision
const
GSCR_PRECISION =$0F;
//***************************************************************************\
//*
//* Long orders
//*
//***************************************************************************/
// definitions to help determine whether an order code is a long order
const
OCODE_VLONG =$FE;
{$define LONG_ORDER(oc):=(not((oc)=OCODE_VLONG or BYTE_ORDER(oc) or SHORT_ORDER(oc)))}
// long order structure
const
LORDER_ML=253;
type
LORDER=record // lord
idCode: Byte;
uchLength: Byte;
uchData: Array[0..LORDER_ML-1] of Byte;
end;
// Long orders for which the length of data is normally zero
const
OCODE_GEAR =$60; // End Area
OCODE_GEIMG =$93; // End Image
// Long orders for which the data is contained in a type already defined
// Character String
const
OCODE_GCCHST = $83; // char string at curr posn
GCCHST_MC = 255; // Max len of string in bytes
OCODE_GCHST = $C3; // 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 = $B1; // char string move at c.p.
GCCHSTM_MC = 255; // Max len of string in byte
OCODE_GCHSTM = $F1; // 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 = $01; // Comment
GCOMT_ML = 255; // Maximum len of comment data
// Image
OCODE_GIMD = $92; // Image data
GIMD_ML = 255; // Maximum len of image data
// Full Arc
OCODE_GCFARC = $87; // full arc at current posn
OCODE_GFARC = $C7; // full arc at given posn
// Label
OCODE_GLABL = $D3; // Label
// Set Current Position
OCODE_GSCP = $21; // Set current position
OCODE_GPSCP = $61; // Push and set curr posn
// Bezier spline
OCODE_GCBEZ = $A5; // Bezier spline at curr pos
GCBEZ_SMB = 21; // Max number of splines (S)
GCBEZ_LMB = 10; // Max number of splines (L)
OCODE_GBEZ = $E5; // Bezier spline at given pos
GBEZ_SMB = 20; // Max number of splines (S)
GBEZ_LMB = 10; // Max number of splines (L)
// Fillet
OCODE_GCFLT = $85; // fillet at current posn
GCFLT_SMP = 63; // Max number of points (S)
GCFLT_LMP = 31; // Max number of points (L)
OCODE_GFLT = $C5; // fillet at given position
GFLT_SMP = 62; // Max number of points (S)
GFLT_LMP = 30; // Max number of points (L)
// Polyline
OCODE_GCLINE = $81; // polyline at current posn
GCLINE_SMP = 63; // Max number of points (S)
GCLINE_LMP = 31; // Max number of points (L)
OCODE_GLINE = $C1; // polyline at given posn
GLINE_SMP = 62; // Max number of points (S)
GLINE_LMP = 30; // Max number of points (L)
// Polymarker
OCODE_GCMRK = $82; // marker at current posn
GCMRK_SMP = 63; // Max number of points (S)
GCMRK_LMP = 31; // Max number of points (L)
OCODE_GMRK = $C2; // marker at given posn
GMRK_SMP = 62; // Max number of points (S)
GMRK_LMP = 30; // Max number of points (L)
// Relative Line
OCODE_GCRLINE =$A1; // Relative line at curr pos
GCRLINE_MP =127; // Max number of points
OCODE_GRLINE = $E1; // 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 = $25; // Set background color
OCODE_GPSBCOL = $65; // Push and set b/g color
// Set Extended Color
OCODE_GSECOL = $26; // Set extended color
OCODE_GPSECOL = $66; // Push and set ext color
// Extended Color values
SECOL_DEFAULT0 =$0000;
SECOL_DEFAULT1 =$FF00;
SECOL_NEUTRAL =$FF07;
SECOL_RESET =$FF08;
// Set Character Angle
OCODE_GSCA = $34; // Set character angle
OCODE_GPSCA = $74; // Push and set char angle
// Set Character Shear
OCODE_GSCH = $35; // Set character shear
OCODE_GPSCH = $75; // Push and set char shear
// Set Fractional Line Width
OCODE_GSFLW = $11; // Set fractional line width
OCODE_GPSFLW = $51; // Push and set frac l width
// Set Pick Identifier
OCODE_GSPIK = $43; // Set pick identifier
OCODE_GPSPIK = $23; // Push and set pick id
// Long Orders for which a structure can be defined for the data
// Arc
OCODE_GCARC = $86; // Arc at Current Position
OCODE_GARC = $C6; // Arc at Given Position
type
ORDERS_GCARC=record // osgcarc
ptInter: POINTS;
ptEnd: POINTS;
end;
ORDERL_GCARC=record // olgcarc
ptInter: POINTL;
ptEnd: POINTL;
end;
// Begin Element
const
OCODE_GBEL = $D2; // Begin Element
GBEL_DL = 251;
type
ORDER_GBEL=record // ogbel
lElementType: Longint;
achDesc: Array[0..GBEL_DL-1] of Char;
end;
// Begin Image
const
OCODE_GCBIMG = $91; // Begin Image at curr posn
OCODE_GBIMG = $D1; // Begin Image at given posn
type
ORDER_GCBIMG=record // ogbimg
uchFormat: Byte;
uchReserved: Byte;
cx: SWPUSHORT;
cy: SWPUSHORT;
end;
// Begin Path
const
OCODE_GBPTH = $D0; // Begin Path
type
ORDER_GBPTH=record // ogbpth
usReserved: Word;
idPath: Longint;
end;
// Box
const
OCODE_GCBOX =$80; // Box at current position
OCODE_GBOX =$C0; // Box at given position
type
ORDERS_GCBOX=record // osgcbox
fbFlags: Byte;
uchReserved: Byte;
ptCorner: POINTS;
hAxis: Integer;
vAxis: Integer;
end;
ORDERL_GCBOX=record // olgcbox
fbFlags: Byte;
uchReserved: Byte;
ptCorner: POINTL;
hAxis: Longint;
vAxis: Longint;
end;
const
GCBOX_FILL =$40;
GCBOX_BOUNDARY =$20;
// Call Segment
OCODE_GCALLS =$07; // call segment
type
ORDER_GCALLS=record // ogcalls
sReserved: Word;
idSegment: Longint;
end;
// Fill Path
const
OCODE_GFPTH =$D7; // Fill path
type
ORDER_GFPTH=record // ogfpth
fbFlags: Byte;
uchReserved: Byte;
idPath: Longint;
end;
const
GFPTH_ALTERNATE =$00;
GFPTH_WINDING =$40;
GFPTH_MODIFY =$20;
// Outline Path
OCODE_GOPTH =$D4; // Outline Path
type
ORDER_GOPTH=record // ogopth
fbFlags: Byte;
uchReserved: Byte;
idPath: Longint;
end;
// Modify Path
const
OCODE_GMPTH =$D8; // modify path
type
ORDER_GMPTH=record // ogmpth
uchMode: Byte;
uchReserved: Byte;
idPath: Longint;
end;
const
GMPTH_STROKE =$06;
// Partial Arc
OCODE_GCPARC =$A3; // Partial arc at curr posn
OCODE_GPARC =$E3; // Partial arc at given posn
type
ORDERS_GCPARC=record // osgcparc
ptCenter: POINTS;
ufx88Multiplier: FIXED88;
usStartAngle: Longint;
usSweepAngle: Longint;
end;
ORDERL_GCPARC=record // olgcparc
ptCenter: POINTL;
ufxMultiplier: FIXED;
usStartAngle: Longint;
usSweepAngle: Longint;
end;
// Set Clip Path
const
OCODE_GSCPTH =$B4; // Set clip path
type
ORDER_GSCPTH=record // ogscpth
fbFlags: Byte;
uchReserved: Byte;
idPath: Longint;
end;
const
GSCPTH_ALTERNATE =$00;
GSCPTH_WINDING =$40;
GSCPTH_RESET =$00;
GSCPTH_INTERSECT =$20;
// Set Arc Parameters
OCODE_GSAP =$22; // Set arc parameters
OCODE_GPSAP =$62; // Push and set arc params
type
ORDERS_GSAP=record // osgsap
p: Integer;
q: Integer;
r: Integer;
s: Integer;
end;
ORDERL_GSAP=record // olgsap
p: Longint;
q: Longint;
r: Longint;
s: Longint;
end;
// Set Background Indexed Color
const
OCODE_GSBICOL =$A7; // Set b/g indexed color
OCODE_GPSBICOL =$E7; // Push and set b/g ind color
OCODE_GSICOL =$A6; // Set indexed color
OCODE_GPSICOL =$E6; // Push and set indexd color
type
ORDER_GSBICOL=record // ogbicol
fbFlags: Byte;
auchColor: Array[0..3-1] of Byte;
end;
const
SICOL_SPECIFY =$00;
SICOL_SPECIAL =$40;
SICOL_DEFAULT =$80;
SICOL_BLACK =1;
SICOL_WHITE =2;
SICOL_ONES =4;
SICOL_ZEROES =5;
// Set Character Cell
OCODE_GSCC =$33; // Set character cell
OCODE_GPSCC =$03; // Push and set char cell
type
ORDERS_GSCC=record // osgscc
cxInt: Integer;
cyInt: Integer;
cxFract: Word;
cyFract: Word;
fbFlags: Byte;
uchReserved: Byte;
end;
ORDERL_GSCC=record // olgscc
cxInt: Longint;
cyInt: Longint;
cxFract: Word;
cyFract: Word;
fbFlags: Byte;
uchReserved: Byte;
end;
const
GSCC_ZERODEF =$00;
GSCC_ZEROZERO =$80;
// Set Marker Cell
OCODE_GSMC =$37; // Set marker cell
OCODE_GPSMC =$77; // Push and set marker cell
type
ORDERS_GSMC=record // osgsmc
cx: Integer;
cy: Integer;
fbFlags: Byte;
uchReserved: Byte;
end;
ORDERL_GSMC=record // olgsmc
cx: Longint;
cy: Longint;
fbFlags: Byte;
uchReserved: Byte;
end;
const
GSMC_ZERODEF =$00;
GSMC_ZEROZERO =$80;
// Set Pattern Reference Point
OCODE_GSPRP =$A0; // Set pattern ref point
OCODE_GPSPRP =$E0; // Push and set patt ref pt
type
ORDERS_GSPRP=record // osgsprp
fbFlags: Byte;
uchReserved: Byte;
ptPos: POINTS;
end;
ORDERL_GSPRP=record // olgsprp
fbFlags: Byte;
uchReserved: Byte;
ptPos: POINTL;
end;
const
GSPRP_DEFAULT =$80;
GSPRP_SPECIFY =$00;
// Set Individual Attribute
OCODE_GSIA =$14; // Set individual attribute
OCODE_GPSIA =$54; // Push and set ind attr
GSIA_VL=3;
type
ORDER_GSIA=record // ogsia
uchAttrType: Byte;
uchPrimType: Byte;
fbFlags: Byte;
auchValue: Array[0..GSIA_VL-1] of Byte;
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;
// Set Model /Viewing Transform
OCODE_GSTM =$24; // Set model transform
OCODE_GPSTM =$64; // Push and set model tfm
OCODE_GSTV =$31; // Set Viewing Transform
GSTM_ML =16;
type
ORDERS_GSTM=record // osgstm
uchReserved: Byte;
fbFlags: Byte;
fsMask: Word;
asMatrix: Array[0..GSTM_ML-1] of Integer;
end;
ORDERL_GSTM=record // olgstm
uchReserved: Byte;
fbFlags: Byte;
fsMask: Word;
alMatrix: Array[0..GSTM_ML-1] of Longint;
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;
// Set Segment Boundary, Viewing Window
OCODE_GSSB =$32; // Set segment boundary
OCODE_GSVW =$27; // Set viewing window
OCODE_GPSVW =$67; // Push and set view window
GSSB_ML =4;
type
ORDERS_GSSB=record // osgssb
fbFlags: Byte;
fbMask: Byte;
alMatrix: Array[0..GSSB_ML-1] of Integer;
end;
ORDERL_GSSB=record // olgssb
fbFLags: Byte;
fbMask: Byte;
alMatrix: Array[0..GSSB_ML-1] of Longint;
end;
const
GSSB_XLEFT =$20;
GSSB_XRIGHT =$10;
GSSB_YBOTTOM =$08;
GSSB_YTOP =$04;
GSVW_INTERSECT =$00;
GSVW_REPLACE =$80;
// Set Segment Characteristics
OCODE_GSGCH =$04; // Set segment characteristics
GSGCH_ML =254;
type
ORDER_GSGCH=record // ogsgch
uchIdent: Byte;
auchData: Array[0..GSGCH_ML-1] of Byte;
end;
// Set Stroke Line Width
const
OCODE_GSSLW =$15; // Set stroke line width
OCODE_GPSSLW =$55; // Push and set strk l width
type
ORDERS_GSSLW=record // osgsslw
fbFlags: Byte;
uchReserved: Byte;
LineWidth: Integer;
end;
type
ORDERL_GSSLW=record // olgsslw
fbFlags: Byte;
uchReserved: Byte;
LineWidth: Longint;
end;
const
GSSLW_DEFAULT =$80;
GSSLW_SPECIFY =$00;
// Sharp Fillet at Current Position
OCODE_GCSFLT =$A4; // Sharp fillet at curr pos
OCODE_GSFLT =$E4; // Sharp fillet at given pos
GCSFLT_SMF =21;
GSFLT_SMF =20;
type
ORDERS_GCSFLT=record // osgcsflt
apt: Array[0..2*GCSFLT_SMF-1] of POINTS;
afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED;
end;
const
GCSFLT_LMF = 12;
GSFLT_LMF = 12;
type
ORDERL_GCSFLT=record // olgcsflt
apt: Array[0..2*GCSFLT_SMF-1] of POINTL;
afxSharpness: Array[0..GCSFLT_SMF-1] of FIXED;
end;
// Bitblt
const
OCODE_GBBLT =$D6; // Bitblt
type
ORDERS_GBBLT=record // osgbblt
fsFlags: Word;
usMix: Word;
hbmSrc: HBITMAP;
lOptions: Longint;
rcsTargetRect: RECT1S;
rclSourceRect: RECTL;
end;
ORDERL_GBBLT=record // olgbblt
fsFlags: Word;
usMix: Word;
hbmSrc: HBITMAP;
lOptions: Longint;
rclTargetRect: RECTL;
rclSourceRect: RECTL;
end;
// Char & break extra
const
OCODE_GSCE =$17; // Set char extra
OCODE_GPSCE =$57; // Push and set char extra
OCODE_GSCBE =$05; // Set char break extra
OCODE_GPSCBE =$45; // Push and set char break extra
type
ORDER_GSCBE=record // osgsce
fbFlags: Byte;
uchReserved: Byte;
ufxextra: FIXED;
end;
ORDER_GSCE=ORDER_GSCBE;
ORDER_GPSCE=ORDER_GSCBE;
ORDER_GPSCBE=ORDER_GSCBE;
// Escape
const
OCODE_GESCP =$D5; // Escape
//* type describes type of escape order, identifier gives the escape
//* order if the type is registered
const
GESCP_ML = 253;
type
ORDER_GESCP=record // ogescp
uchType: Byte;
uchIdent: Byte;
auchData: Array[0..GESCP_ML-1] of Byte; // Escape data
end;
const
GESCP_REG =$80; // identifier is registered
// Escape (Bitblt)
const
GEBB_REGID =$02; // uchIdent - Bitblt
ETYPE_GEBB =$800200D5;
GEBB_LMP =29;
type
ORDERL_GEBB=record // olgebb
fbFlags: Byte;
usMix: Word;
cPoints: Byte;
hbmSrc: HBITMAP;
lReserved: Longint;
lOptions: Longint;
aptPoints: Array[0..GEBB_LMP-1] of POINTL;
end;
// Escape (Set Pel)
const
GEPEL_REGID =$01; // uchIdent - Set Pel
ETYPE_GEPEL =$800100D5;
// Escape (DrawBits)
GEDB_REGID =$04; // uchIdent - DrawBits
ETYPE_GEDB =$800400D5;
type
ORDERL_GEDB=record // olgedb
fsFlags: Word;
usMix: Word;
pBits: Pointer;
pbmi: PBITMAPINFO2;
lOptions: Longint;
rclTargetRect: RECTL;
rclSourceRect: RECTL;
end;
// Escape (FloodFill)
const
GEFF_REGID =$03; // uchIdent - FloodFill
ETYPE_GEFF =$800300D5;
type
ORDERL_GEFF=record // olgeff
fsFlags: Byte;
auchColor: Array[0..3-1] of Byte;
end;
// Element Types for attribute bundles
const
ETYPE_LINEBUNDLE =$0000FD01;
ETYPE_CHARBUNDLE =$0000FD02;
ETYPE_MARKERBUNDLE =$0000FD03;
ETYPE_AREABUNDLE =$0000FD04;
ETYPE_IMAGEBUNDLE =$0000FD05;
//***************************************************************************\
//*
//* Very long orders
//*
//***************************************************************************/
// macro to tell whether this is a very long order
{$define VLONG_ORDER(oc):=((oc)=OCODE_VLONG)}
// Very long order structure
const
VORDER_ML =65531;
type
VORDER=record // vord
idCode: Byte;
uchQualifier: Byte;
uchLength: SWPUSHORT;
uchData: Array[0..VORDER_ML-1] of Byte;
end;
// Character String Extended
const
OCODEQ_GCCHSTE =$B0; // Qualifier - current posn
OCODEQ_GCHSTE =$F0; // Qualifier - given position
OCODEQ_GTCHSPA =$F4; // Tabbed Char String At
ETYPE_GCCHSTE =$0000FEB0;
ETYPE_GCHSTE =$0000FEF0;
type
ORDERS_GCCHSTE=record // osgcchste
fbFlags: Byte;
uchReserved: Byte;
ptRect: Array[0..2-1] of POINTS;
cchString: SWPUSHORT;
achString: Array[0..1-1] of Char;
adx: Array[0..1-1] of Integer;
end;
ORDERL_GCCHSTE=record // olgcchste
fbFlags: Byte;
uchReserved: Byte;
ptRect: Array[0..2-1] of POINTL;
cchString: SWPUSHORT;
achString: Array[0..1-1] of Char;
adx: Array[0..1-1] of Longint;
end;
ORDERL_GTCHSPA=record // olgcchspa
fbFlags: Byte;
uchReserved: Byte;
ptRect: Array[0..2-1] of POINTL;
cchString: SWPUSHORT;
achString: Array[0..1-1] of Char;
adx: Array[0..2-1] of Longint;
tabs: Array[0..1-1] of Longint;
end;
const
GCCHSTE_DRAWRECT =$80;
GCCHSTE_NORECT =$00;
GCCHSTE_CLIP =$40;
GCCHSTE_NOCLIP =$00;
GCCHSTE_DEEMPHASIZE =$20; // Reserved
GCCHSTE_NODEEMPHASIZE =$00;
GCCHSTE_LEAVEPOS =$10;
GCCHSTE_MOVEPOS =$00;
GCCHSTE_UNDERSCORE =$08;
GCCHSTE_NOUNDERSCORE =$00;
GCCHSTE_STRIKEOUT =$04;
GCCHSTE_NOSTRIKEOUT =$00;
GTCHSPA_STARTPOS =$02;
GTCHSPA_NOSTARTPOS =$00;
// Extended Escape
OCODEQ_GEESCP =$D5; // Qualifier - extended escape
GEESCP_ML =65533;
type
ORDER_GEESCP=record // ogeescp
uchType: Byte;
uchIdent: Byte;
auchData: Array[0..GEESCP_ML-1] of Byte;
end;
//#pragma pack() /* reset to default packing */
function GpiCreatePS(hab,hdc : cardinal;var psizlSize : SIZEL;flOptions : cardinal) : cardinal;cdecl;
function GpiDestroyPS(hps : cardinal) : longbool;cdecl;
function GpiAssociate(hps,hdc : cardinal) : longbool;cdecl;
@ -1226,9 +2164,13 @@ function GpiSetDefViewingLimits(hps : cardinal;var prclLimits : RECTL) : longboo
function GpiPolygons(hps,ulCount : cardinal;var paplgn : POLYGON;flOptions,flModel : cardinal) : longint; cdecl; external 'pmgpi' index 650;
end.
{
$Log$
Revision 1.4 2002-11-02 13:26:36 hajny
Revision 1.5 2003-03-27 18:11:23 yuri
Orders added
Revision 1.4 2002/11/02 13:26:36 hajny
* Gpi*Palette* parameters corrected
Revision 1.3 2002/09/07 16:01:25 peter