Dimitrie O. Paun | 3c77035 | 1999-01-01 19:50:40 +0000 | [diff] [blame] | 1 | #ifndef __WINE_PSDRV_H |
| 2 | #define __WINE_PSDRV_H |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 3 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 4 | /* |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 5 | * PostScript driver definitions |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 6 | * |
| 7 | * Copyright 1998 Huw D M Davies |
| 8 | */ |
Marcus Meissner | 317af32 | 1999-02-17 13:51:06 +0000 | [diff] [blame] | 9 | #include "wingdi.h" |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 10 | #include "font.h" |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 11 | #include "pen.h" |
| 12 | #include "brush.h" |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 13 | |
| 14 | typedef struct { |
| 15 | float llx, lly, urx, ury; |
| 16 | } AFMBBOX; |
| 17 | |
| 18 | typedef struct _tagAFMLIGS { |
| 19 | char *successor; |
| 20 | char *ligature; |
| 21 | struct _tagAFMLIGS *next; |
| 22 | } AFMLIGS; |
| 23 | |
| 24 | typedef struct _tagAFMMETRICS { |
| 25 | int C; /* character */ |
| 26 | float WX; |
| 27 | char *N; /* name */ |
| 28 | AFMBBOX B; |
| 29 | AFMLIGS *L; /* Ligatures */ |
| 30 | struct _tagAFMMETRICS *next; |
| 31 | } AFMMETRICS; |
| 32 | |
| 33 | typedef struct _tagAFM { |
| 34 | char *FontName; |
| 35 | char *FullName; |
| 36 | char *FamilyName; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 37 | char *EncodingScheme; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 38 | int Weight; /* FW_NORMAL etc. */ |
| 39 | float ItalicAngle; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 40 | BOOL IsFixedPitch; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 41 | float UnderlinePosition; |
| 42 | float UnderlineThickness; |
| 43 | AFMBBOX FontBBox; |
| 44 | float CapHeight; |
| 45 | float XHeight; |
| 46 | float Ascender; |
| 47 | float Descender; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 48 | float FullAscender; /* Ascent of Aring character */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 49 | float CharWidths[256]; |
| 50 | int NumofMetrics; |
| 51 | AFMMETRICS *Metrics; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 52 | } AFM; /* CharWidths is a shortcut to the WX values of numbered glyphs */ |
| 53 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 54 | /* Note no 'next' in AFM. Use AFMLISTENTRY as a container. This allow more than |
| 55 | one list to exist without having to reallocate the entire AFM structure. We |
| 56 | keep a global list of all afms (PSDRV_AFMFontList) plus a list of available |
| 57 | fonts for each DC (dc->physDev->Fonts) */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 58 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 59 | typedef struct _tagAFMLISTENTRY { |
| 60 | AFM *afm; |
| 61 | struct _tagAFMLISTENTRY *next; |
| 62 | } AFMLISTENTRY; |
| 63 | |
| 64 | typedef struct _tagFONTFAMILY { |
| 65 | char *FamilyName; /* family name */ |
| 66 | AFMLISTENTRY *afmlist; /* list of afms for this family */ |
| 67 | struct _tagFONTFAMILY *next; /* next family */ |
| 68 | } FONTFAMILY; |
| 69 | |
| 70 | extern FONTFAMILY *PSDRV_AFMFontList; |
| 71 | |
| 72 | typedef struct _tagFONTNAME { |
| 73 | char *Name; |
| 74 | struct _tagFONTNAME *next; |
| 75 | } FONTNAME; |
| 76 | |
| 77 | typedef struct { |
| 78 | float llx, lly, urx, ury; |
| 79 | } IMAGEABLEAREA; |
| 80 | |
| 81 | typedef struct { |
| 82 | float x, y; |
| 83 | } PAPERDIMENSION; |
| 84 | |
| 85 | typedef struct _tagPAGESIZE { |
| 86 | char *Name; |
| 87 | char *FullName; |
| 88 | char *InvocationString; |
| 89 | IMAGEABLEAREA *ImageableArea; |
| 90 | PAPERDIMENSION *PaperDimension; |
| 91 | WORD WinPage; /*eg DMPAPER_A4. Doesn't really belong here */ |
| 92 | struct _tagPAGESIZE *next; |
| 93 | } PAGESIZE; |
| 94 | |
| 95 | |
| 96 | typedef struct _tagOPTIONENTRY { |
| 97 | char *Name; /* eg "True" */ |
| 98 | char *FullName; /* eg "Installed" */ |
| 99 | char *InvocationString; /* Often NULL */ |
| 100 | struct _tagOPTIONENTRY *next; |
| 101 | } OPTIONENTRY; |
| 102 | |
| 103 | typedef struct _tagOPTION { /* Treat bool as a special case of pickone */ |
| 104 | char *OptionName; /* eg "*Option1" */ |
| 105 | char *FullName; /* eg "Envelope Feeder" */ |
| 106 | char *DefaultOption; /* eg "False" */ |
| 107 | OPTIONENTRY *Options; |
| 108 | struct _tagOPTION *next; |
| 109 | } OPTION; |
| 110 | |
| 111 | typedef struct _tagCONSTRAINT { |
| 112 | char *Feature1; |
| 113 | char *Value1; |
| 114 | char *Feature2; |
| 115 | char *Value2; |
| 116 | struct _tagCONSTRAINT *next; |
| 117 | } CONSTRAINT; |
| 118 | |
| 119 | typedef struct _tagINPUTSLOT { |
| 120 | char *Name; |
| 121 | char *FullName; |
| 122 | char *InvocationString; |
| 123 | WORD WinBin; /* eg DMBIN_LOWER */ |
| 124 | struct _tagINPUTSLOT *next; |
| 125 | } INPUTSLOT; |
| 126 | |
| 127 | typedef struct { |
| 128 | char *NickName; |
| 129 | int LanguageLevel; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 130 | BOOL ColorDevice; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 131 | int DefaultResolution; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 132 | signed int LandscapeOrientation; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 133 | char *JCLBegin; |
| 134 | char *JCLToPSInterpreter; |
| 135 | char *JCLEnd; |
| 136 | char *DefaultFont; |
| 137 | FONTNAME *InstalledFonts; /* ptr to a list of FontNames */ |
| 138 | PAGESIZE *PageSizes; |
| 139 | OPTION *InstalledOptions; |
| 140 | CONSTRAINT *Constraints; |
| 141 | INPUTSLOT *InputSlots; |
| 142 | } PPD; |
| 143 | |
| 144 | typedef struct { |
| 145 | DEVMODE16 dmPublic; |
| 146 | struct _tagdocprivate { |
Patrik Stridvall | 896889f | 1999-05-08 12:50:36 +0000 | [diff] [blame] | 147 | int dummy; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 148 | } dmDocPrivate; |
| 149 | struct _tagdrvprivate { |
| 150 | char ppdFileName[100]; /* Hack */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 151 | UINT numInstalledOptions; /* Options at end of struct */ |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 152 | } dmDrvPrivate; |
| 153 | |
| 154 | /* Now comes: |
| 155 | |
| 156 | numInstalledOptions of OPTIONs |
| 157 | |
| 158 | */ |
| 159 | |
| 160 | } PSDRV_DEVMODE16; |
| 161 | |
| 162 | typedef struct _tagPI { |
| 163 | char *FriendlyName; |
| 164 | PPD *ppd; |
| 165 | PSDRV_DEVMODE16 *Devmode; |
| 166 | FONTFAMILY *Fonts; |
| 167 | struct _tagPI *next; |
| 168 | } PRINTERINFO; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 169 | |
| 170 | typedef struct { |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 171 | float r, g, b; |
| 172 | } PSRGB; |
| 173 | |
| 174 | typedef struct { |
| 175 | float i; |
| 176 | } PSGRAY; |
| 177 | |
| 178 | |
| 179 | /* def's for PSCOLOR.type */ |
| 180 | #define PSCOLOR_GRAY 0 |
| 181 | #define PSCOLOR_RGB 1 |
| 182 | |
| 183 | typedef struct { |
| 184 | int type; |
| 185 | union { |
| 186 | PSRGB rgb; |
| 187 | PSGRAY gray; |
| 188 | } value; |
| 189 | } PSCOLOR; |
| 190 | |
| 191 | typedef struct { |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 192 | AFM *afm; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 193 | TEXTMETRICA tm; |
| 194 | INT size; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 195 | float scale; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 196 | INT escapement; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 197 | PSCOLOR color; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 198 | BOOL set; /* Have we done a setfont yet */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 199 | } PSFONT; |
| 200 | |
| 201 | typedef struct { |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 202 | PSCOLOR color; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 203 | BOOL set; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 204 | } PSBRUSH; |
| 205 | |
| 206 | typedef struct { |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 207 | INT width; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 208 | char *dash; |
| 209 | PSCOLOR color; |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 210 | BOOL set; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 211 | } PSPEN; |
| 212 | |
| 213 | typedef struct { |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 214 | HANDLE16 hJob; |
| 215 | LPSTR output; /* Output file/port */ |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 216 | BOOL banding; /* Have we received a NEXTBAND */ |
| 217 | BOOL NeedPageHeader; /* Page header not sent yet */ |
| 218 | INT PageNo; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 219 | } JOB; |
| 220 | |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 221 | typedef struct { |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 222 | PSFONT font; /* Current PS font */ |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 223 | PSPEN pen; |
| 224 | PSBRUSH brush; |
| 225 | PSCOLOR bkColor; |
| 226 | PSCOLOR inkColor; /* Last colour set */ |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 227 | JOB job; |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 228 | PSDRV_DEVMODE16 *Devmode; |
| 229 | PRINTERINFO *pi; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 230 | } PSDRV_PDEVICE; |
| 231 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 232 | extern HANDLE PSDRV_Heap; |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 233 | extern char *PSDRV_ANSIVector[256]; |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 234 | |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 235 | extern void PSDRV_MergeDevmodes(PSDRV_DEVMODE16 *dm1, PSDRV_DEVMODE16 *dm2, |
| 236 | PRINTERINFO *pi); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 237 | extern BOOL PSDRV_GetFontMetrics(void); |
Alexandre Julliard | 767e6f6 | 1998-08-09 12:47:43 +0000 | [diff] [blame] | 238 | extern PPD *PSDRV_ParsePPD(char *fname); |
| 239 | extern PRINTERINFO *PSDRV_FindPrinterInfo(LPCSTR name); |
| 240 | extern AFM *PSDRV_FindAFMinList(FONTFAMILY *head, char *name); |
| 241 | extern void PSDRV_AddAFMtoList(FONTFAMILY **head, AFM *afm); |
| 242 | extern void PSDRV_FreeAFMList( FONTFAMILY *head ); |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 243 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 244 | extern BOOL PSDRV_Init(void); |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 245 | extern HFONT16 PSDRV_FONT_SelectObject( DC *dc, HFONT16 hfont, FONTOBJ *font); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 246 | extern HPEN PSDRV_PEN_SelectObject( DC * dc, HPEN hpen, PENOBJ * pen ); |
| 247 | extern HBRUSH PSDRV_BRUSH_SelectObject( DC * dc, HBRUSH hbrush, |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 248 | BRUSHOBJ * brush ); |
| 249 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 250 | extern BOOL PSDRV_Brush(DC *dc, BOOL EO); |
| 251 | extern BOOL PSDRV_SetFont( DC *dc ); |
| 252 | extern BOOL PSDRV_SetPen( DC *dc ); |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 253 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 254 | extern BOOL PSDRV_CmpColor(PSCOLOR *col1, PSCOLOR *col2); |
| 255 | extern BOOL PSDRV_CopyColor(PSCOLOR *col1, PSCOLOR *col2); |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 256 | extern void PSDRV_CreateColor( PSDRV_PDEVICE *physDev, PSCOLOR *pscolor, |
| 257 | COLORREF wincolor ); |
| 258 | |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 259 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 260 | extern INT PSDRV_WriteHeader( DC *dc, char *title, int len ); |
| 261 | extern INT PSDRV_WriteFooter( DC *dc ); |
| 262 | extern INT PSDRV_WriteNewPage( DC *dc ); |
| 263 | extern INT PSDRV_WriteEndPage( DC *dc ); |
| 264 | extern BOOL PSDRV_WriteMoveTo(DC *dc, INT x, INT y); |
| 265 | extern BOOL PSDRV_WriteLineTo(DC *dc, INT x, INT y); |
| 266 | extern BOOL PSDRV_WriteStroke(DC *dc); |
| 267 | extern BOOL PSDRV_WriteRectangle(DC *dc, INT x, INT y, INT width, |
| 268 | INT height); |
| 269 | extern BOOL PSDRV_WriteSetFont(DC *dc, BOOL UseANSI); |
| 270 | extern BOOL PSDRV_WriteShow(DC *dc, char *str, INT count); |
| 271 | extern BOOL PSDRV_WriteReencodeFont(DC *dc); |
| 272 | extern BOOL PSDRV_WriteSetPen(DC *dc); |
| 273 | extern BOOL PSDRV_WriteArc(DC *dc, INT x, INT y, INT w, INT h, |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 274 | double ang1, double ang2); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 275 | extern BOOL PSDRV_WriteSetColor(DC *dc, PSCOLOR *color); |
| 276 | extern BOOL PSDRV_WriteSetBrush(DC *dc); |
| 277 | extern BOOL PSDRV_WriteFill(DC *dc); |
| 278 | extern BOOL PSDRV_WriteEOFill(DC *dc); |
| 279 | extern BOOL PSDRV_WriteGSave(DC *dc); |
| 280 | extern BOOL PSDRV_WriteGRestore(DC *dc); |
| 281 | extern BOOL PSDRV_WriteClosePath(DC *dc); |
| 282 | extern BOOL PSDRV_WriteClip(DC *dc); |
| 283 | extern BOOL PSDRV_WriteEOClip(DC *dc); |
| 284 | extern BOOL PSDRV_WriteHatch(DC *dc); |
| 285 | extern BOOL PSDRV_WriteRotate(DC *dc, float ang); |
Huw D M Davies | 44a79c4 | 1999-03-23 13:46:04 +0000 | [diff] [blame] | 286 | extern BOOL PSDRV_WriteIndexColorSpaceBegin(DC *dc, int size); |
| 287 | extern BOOL PSDRV_WriteIndexColorSpaceEnd(DC *dc); |
| 288 | extern BOOL PSDRV_WriteRGB(DC *dc, COLORREF *map, int number); |
| 289 | extern BOOL PSDRV_WriteImageDict(DC *dc, WORD depth, INT xDst, INT yDst, |
| 290 | INT widthDst, INT heightDst, INT widthSrc, |
| 291 | INT heightSrc); |
| 292 | extern BOOL PSDRV_WriteBytes(DC *dc, const BYTE *bytes, int number); |
| 293 | extern BOOL PSDRV_WriteDIBits16(DC *dc, const WORD *words, int number); |
| 294 | extern BOOL PSDRV_WriteDIBits24(DC *dc, const BYTE *bits, int number); |
| 295 | extern BOOL PSDRV_WriteDIBits32(DC *dc, const BYTE *bits, int number); |
Alexandre Julliard | ebfc0fe | 1998-06-28 18:40:26 +0000 | [diff] [blame] | 296 | |
| 297 | |
| 298 | |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 299 | extern BOOL PSDRV_Arc( DC *dc, INT left, INT top, INT right, |
| 300 | INT bottom, INT xstart, INT ystart, |
| 301 | INT xend, INT yend ); |
| 302 | extern BOOL PSDRV_Chord( DC *dc, INT left, INT top, INT right, |
| 303 | INT bottom, INT xstart, INT ystart, |
| 304 | INT xend, INT yend ); |
| 305 | extern BOOL PSDRV_Ellipse( DC *dc, INT left, INT top, INT right, |
| 306 | INT bottom ); |
| 307 | extern BOOL PSDRV_EnumDeviceFonts( DC* dc, LPLOGFONT16 plf, |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 308 | DEVICEFONTENUMPROC proc, LPARAM lp ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 309 | extern INT PSDRV_Escape( DC *dc, INT nEscape, INT cbInput, |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 310 | SEGPTR lpInData, SEGPTR lpOutData ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 311 | extern BOOL PSDRV_ExtTextOut( DC *dc, INT x, INT y, UINT flags, |
| 312 | const RECT *lprect, LPCSTR str, UINT count, |
| 313 | const INT *lpDx ); |
| 314 | extern BOOL PSDRV_GetCharWidth( DC *dc, UINT firstChar, UINT lastChar, |
| 315 | LPINT buffer ); |
| 316 | extern BOOL PSDRV_GetTextExtentPoint( DC *dc, LPCSTR str, INT count, |
| 317 | LPSIZE size ); |
| 318 | extern BOOL PSDRV_GetTextMetrics( DC *dc, TEXTMETRICA *metrics ); |
| 319 | extern BOOL PSDRV_LineTo( DC *dc, INT x, INT y ); |
| 320 | extern BOOL PSDRV_MoveToEx( DC *dc, INT x, INT y, LPPOINT pt ); |
| 321 | extern BOOL PSDRV_Pie( DC *dc, INT left, INT top, INT right, |
| 322 | INT bottom, INT xstart, INT ystart, |
| 323 | INT xend, INT yend ); |
| 324 | extern BOOL PSDRV_Polygon( DC *dc, const POINT* pt, INT count ); |
| 325 | extern BOOL PSDRV_Polyline( DC *dc, const POINT* pt, INT count ); |
| 326 | extern BOOL PSDRV_PolyPolygon( DC *dc, const POINT* pts, const INT* counts, |
| 327 | UINT polygons ); |
| 328 | extern BOOL PSDRV_PolyPolyline( DC *dc, const POINT* pts, const DWORD* counts, |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 329 | DWORD polylines ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 330 | extern BOOL PSDRV_Rectangle( DC *dc, INT left, INT top, INT right, |
| 331 | INT bottom ); |
| 332 | extern BOOL PSDRV_RoundRect(DC *dc, INT left, INT top, INT right, |
| 333 | INT bottom, INT ell_width, INT ell_height); |
| 334 | extern HGDIOBJ PSDRV_SelectObject( DC *dc, HGDIOBJ handle ); |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 335 | extern COLORREF PSDRV_SetBkColor( DC *dc, COLORREF color ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 336 | extern COLORREF PSDRV_SetPixel( DC *dc, INT x, INT y, COLORREF color ); |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 337 | extern COLORREF PSDRV_SetTextColor( DC *dc, COLORREF color ); |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 338 | extern INT PSDRV_StretchDIBits( DC *dc, INT xDst, INT yDst, |
| 339 | INT widthDst, INT heightDst, INT xSrc, |
| 340 | INT ySrc, INT widthSrc, INT heightSrc, |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 341 | const void *bits, const BITMAPINFO *info, |
Alexandre Julliard | a396029 | 1999-02-26 11:11:13 +0000 | [diff] [blame] | 342 | UINT wUsage, DWORD dwRop ); |
Huw D M Davies | 14c99d0 | 1998-10-24 10:44:05 +0000 | [diff] [blame] | 343 | |
Dimitrie O. Paun | 3c77035 | 1999-01-01 19:50:40 +0000 | [diff] [blame] | 344 | #endif |
Alexandre Julliard | a0d7731 | 1998-09-13 16:32:00 +0000 | [diff] [blame] | 345 | |
| 346 | |