X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1fc25a89ac1e6c5208db24bfc0abc8666b791dc6..e8332ccfe0cf1653b257d46d5c41339e2b2da438:/contrib/include/wx/ogl/mfutils.h diff --git a/contrib/include/wx/ogl/mfutils.h b/contrib/include/wx/ogl/mfutils.h index b070e1781d..7e171721c7 100644 --- a/contrib/include/wx/ogl/mfutils.h +++ b/contrib/include/wx/ogl/mfutils.h @@ -7,157 +7,364 @@ // Created: 12/07/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _MFUTILS_H_ #define _MFUTILS_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "mfutils.h" #endif + #include #ifndef GetRValue -#define GetRValue(rgb) ((unsigned char)(rgb)) -#define GetGValue(rgb) ((unsigned char)(((int)(rgb)) >> 8)) -#define GetBValue(rgb) ((unsigned char)((rgb)>>16)) +#define GetRValue(rgb) ((unsigned char)(rgb)) +#define GetGValue(rgb) ((unsigned char)(((int)(rgb)) >> 8)) +#define GetBValue(rgb) ((unsigned char)((rgb)>>16)) #endif /* Metafile Functions */ -/* Win32s/Borland need these macros, although META_SETBKCOLOR is defined */ -#if 1 // !defined(META_SETBKCOLOR) // || defined(WIN32) - -#define META_SETBKCOLOR 0x0201 -#define META_SETBKMODE 0x0102 -#define META_SETMAPMODE 0x0103 -#define META_SETROP2 0x0104 -#define META_SETRELABS 0x0105 -#define META_SETPOLYFILLMODE 0x0106 -#define META_SETSTRETCHBLTMODE 0x0107 -#define META_SETTEXTCHAREXTRA 0x0108 -#define META_SETTEXTCOLOR 0x0209 -#define META_SETTEXTJUSTIFICATION 0x020A -#define META_SETWINDOWORG 0x020B -#define META_SETWINDOWEXT 0x020C -#define META_SETVIEWPORTORG 0x020D -#define META_SETVIEWPORTEXT 0x020E -#define META_OFFSETWINDOWORG 0x020F -#define META_SCALEWINDOWEXT 0x0410 -#define META_OFFSETVIEWPORTORG 0x0211 -#define META_SCALEVIEWPORTEXT 0x0412 -#define META_LINETO 0x0213 -#define META_MOVETO 0x0214 -#define META_EXCLUDECLIPRECT 0x0415 -#define META_INTERSECTCLIPRECT 0x0416 -#define META_ARC 0x0817 -#define META_ELLIPSE 0x0418 -#define META_FLOODFILL 0x0419 -#define META_PIE 0x081A -#define META_RECTANGLE 0x041B -#define META_ROUNDRECT 0x061C -#define META_PATBLT 0x061D -#define META_SAVEDC 0x001E -#define META_SETPIXEL 0x041F -#define META_OFFSETCLIPRGN 0x0220 -#define META_TEXTOUT 0x0521 -#define META_BITBLT 0x0922 -#define META_STRETCHBLT 0x0B23 -#define META_POLYGON 0x0324 -#define META_POLYLINE 0x0325 -#define META_ESCAPE 0x0626 -#define META_RESTOREDC 0x0127 -#define META_FILLREGION 0x0228 -#define META_FRAMEREGION 0x0429 -#define META_INVERTREGION 0x012A -#define META_PAINTREGION 0x012B -#define META_SELECTCLIPREGION 0x012C -#define META_SELECTOBJECT 0x012D -#define META_SETTEXTALIGN 0x012E -#define META_DRAWTEXT 0x062F - -#define META_CHORD 0x0830 -#define META_SETMAPPERFLAGS 0x0231 -#define META_EXTTEXTOUT 0x0a32 -#define META_SETDIBTODEV 0x0d33 -#define META_SELECTPALETTE 0x0234 -#define META_REALIZEPALETTE 0x0035 -#define META_ANIMATEPALETTE 0x0436 -#define META_SETPALENTRIES 0x0037 -#define META_POLYPOLYGON 0x0538 -#define META_RESIZEPALETTE 0x0139 - -#define META_DIBBITBLT 0x0940 -#define META_DIBSTRETCHBLT 0x0b41 -#define META_DIBCREATEPATTERNBRUSH 0x0142 -#define META_STRETCHDIB 0x0f43 - -#define META_EXTFLOODFILL 0x0548 - -#define META_RESETDC 0x014C -#define META_STARTDOC 0x014D -#define META_STARTPAGE 0x004F -#define META_ENDPAGE 0x0050 -#define META_ABORTDOC 0x0052 -#define META_ENDDOC 0x005E - -#define META_DELETEOBJECT 0x01f0 - -#define META_CREATEPALETTE 0x00f7 -#define META_CREATEBRUSH 0x00F8 -#define META_CREATEPATTERNBRUSH 0x01F9 -#define META_CREATEPENINDIRECT 0x02FA -#define META_CREATEFONTINDIRECT 0x02FB -#define META_CREATEBRUSHINDIRECT 0x02FC -#define META_CREATEBITMAPINDIRECT 0x02FD -#define META_CREATEBITMAP 0x06FE -#define META_CREATEREGION 0x06FF +// some compilers have them in their include files + +#ifndef META_SETBKCOLOR + #define META_SETBKCOLOR 0x0201 +#endif +#ifndef META_SETBKMODE + #define META_SETBKMODE 0x0102 +#endif +#ifndef META_SETMAPMODE + #define META_SETMAPMODE 0x0103 +#endif +#ifndef META_SETROP2 + #define META_SETROP2 0x0104 +#endif +#ifndef META_SETRELABS + #define META_SETRELABS 0x0105 +#endif +#ifndef META_SETPOLYFILLMODE + #define META_SETPOLYFILLMODE 0x0106 +#endif +#ifndef META_SETSTRETCHBLTMODE + #define META_SETSTRETCHBLTMODE 0x0107 +#endif +#ifndef META_SETTEXTCHAREXTRA + #define META_SETTEXTCHAREXTRA 0x0108 +#endif +#ifndef META_SETTEXTCOLOR + #define META_SETTEXTCOLOR 0x0209 +#endif +#ifndef META_SETTEXTJUSTIFICATION + #define META_SETTEXTJUSTIFICATION 0x020A +#endif +#ifndef META_SETWINDOWORG + #define META_SETWINDOWORG 0x020B +#endif +#ifndef META_SETWINDOWEXT + #define META_SETWINDOWEXT 0x020C +#endif +#ifndef META_SETVIEWPORTORG + #define META_SETVIEWPORTORG 0x020D +#endif +#ifndef META_SETVIEWPORTEXT + #define META_SETVIEWPORTEXT 0x020E +#endif +#ifndef META_OFFSETWINDOWORG + #define META_OFFSETWINDOWORG 0x020F +#endif +#ifndef META_SCALEWINDOWEXT + #define META_SCALEWINDOWEXT 0x0410 +#endif +#ifndef META_OFFSETVIEWPORTORG + #define META_OFFSETVIEWPORTORG 0x0211 +#endif +#ifndef META_SCALEVIEWPORTEXT + #define META_SCALEVIEWPORTEXT 0x0412 +#endif +#ifndef META_LINETO + #define META_LINETO 0x0213 +#endif +#ifndef META_MOVETO + #define META_MOVETO 0x0214 +#endif +#ifndef META_EXCLUDECLIPRECT + #define META_EXCLUDECLIPRECT 0x0415 +#endif +#ifndef META_INTERSECTCLIPRECT + #define META_INTERSECTCLIPRECT 0x0416 +#endif +#ifndef META_ARC + #define META_ARC 0x0817 +#endif +#ifndef META_ELLIPSE + #define META_ELLIPSE 0x0418 +#endif +#ifndef META_FLOODFILL + #define META_FLOODFILL 0x0419 +#endif +#ifndef META_PIE + #define META_PIE 0x081A +#endif +#ifndef META_RECTANGLE + #define META_RECTANGLE 0x041B +#endif +#ifndef META_ROUNDRECT + #define META_ROUNDRECT 0x061C +#endif +#ifndef META_PATBLT + #define META_PATBLT 0x061D +#endif +#ifndef META_SAVEDC + #define META_SAVEDC 0x001E +#endif +#ifndef META_SETPIXEL + #define META_SETPIXEL 0x041F +#endif +#ifndef META_OFFSETCLIPRGN + #define META_OFFSETCLIPRGN 0x0220 +#endif +#ifndef META_TEXTOUT + #define META_TEXTOUT 0x0521 +#endif +#ifndef META_BITBLT + #define META_BITBLT 0x0922 +#endif +#ifndef META_STRETCHBLT + #define META_STRETCHBLT 0x0B23 +#endif +#ifndef META_POLYGON + #define META_POLYGON 0x0324 +#endif +#ifndef META_POLYLINE + #define META_POLYLINE 0x0325 +#endif +#ifndef META_ESCAPE + #define META_ESCAPE 0x0626 +#endif +#ifndef META_RESTOREDC + #define META_RESTOREDC 0x0127 +#endif +#ifndef META_FILLREGION + #define META_FILLREGION 0x0228 +#endif +#ifndef META_FRAMEREGION + #define META_FRAMEREGION 0x0429 +#endif +#ifndef META_INVERTREGION + #define META_INVERTREGION 0x012A +#endif +#ifndef META_PAINTREGION + #define META_PAINTREGION 0x012B +#endif +#ifndef META_SELECTCLIPREGION + #define META_SELECTCLIPREGION 0x012C +#endif +#ifndef META_SELECTOBJECT + #define META_SELECTOBJECT 0x012D +#endif +#ifndef META_SETTEXTALIGN + #define META_SETTEXTALIGN 0x012E +#endif +#ifndef META_DRAWTEXT + #define META_DRAWTEXT 0x062F +#endif + +#ifndef META_CHORD + #define META_CHORD 0x0830 +#endif +#ifndef META_SETMAPPERFLAGS + #define META_SETMAPPERFLAGS 0x0231 +#endif +#ifndef META_EXTTEXTOUT + #define META_EXTTEXTOUT 0x0a32 +#endif +#ifndef META_SETDIBTODEV + #define META_SETDIBTODEV 0x0d33 +#endif +#ifndef META_SELECTPALETTE + #define META_SELECTPALETTE 0x0234 +#endif +#ifndef META_REALIZEPALETTE + #define META_REALIZEPALETTE 0x0035 +#endif +#ifndef META_ANIMATEPALETTE + #define META_ANIMATEPALETTE 0x0436 +#endif +#ifndef META_SETPALENTRIES + #define META_SETPALENTRIES 0x0037 +#endif +#ifndef META_POLYPOLYGON + #define META_POLYPOLYGON 0x0538 +#endif +#ifndef META_RESIZEPALETTE + #define META_RESIZEPALETTE 0x0139 +#endif + +#ifndef META_DIBBITBLT + #define META_DIBBITBLT 0x0940 +#endif +#ifndef META_DIBSTRETCHBLT + #define META_DIBSTRETCHBLT 0x0b41 +#endif +#ifndef META_DIBCREATEPATTERNBRUSH + #define META_DIBCREATEPATTERNBRUSH 0x0142 +#endif +#ifndef META_STRETCHDIB + #define META_STRETCHDIB 0x0f43 +#endif + +#ifndef META_EXTFLOODFILL + #define META_EXTFLOODFILL 0x0548 +#endif + +#ifndef META_RESETDC + #define META_RESETDC 0x014C +#endif +#ifndef META_STARTDOC + #define META_STARTDOC 0x014D +#endif +#ifndef META_STARTPAGE + #define META_STARTPAGE 0x004F +#endif +#ifndef META_ENDPAGE + #define META_ENDPAGE 0x0050 +#endif +#ifndef META_ABORTDOC + #define META_ABORTDOC 0x0052 +#endif +#ifndef META_ENDDOC + #define META_ENDDOC 0x005E +#endif + +#ifndef META_DELETEOBJECT + #define META_DELETEOBJECT 0x01f0 +#endif + +#ifndef META_CREATEPALETTE + #define META_CREATEPALETTE 0x00f7 +#endif +#ifndef META_CREATEBRUSH + #define META_CREATEBRUSH 0x00F8 +#endif +#ifndef META_CREATEPATTERNBRUSH + #define META_CREATEPATTERNBRUSH 0x01F9 +#endif +#ifndef META_CREATEPENINDIRECT + #define META_CREATEPENINDIRECT 0x02FA +#endif +#ifndef META_CREATEFONTINDIRECT + #define META_CREATEFONTINDIRECT 0x02FB +#endif +#ifndef META_CREATEBRUSHINDIRECT + #define META_CREATEBRUSHINDIRECT 0x02FC +#endif +#ifndef META_CREATEBITMAPINDIRECT + #define META_CREATEBITMAPINDIRECT 0x02FD +#endif +#ifndef META_CREATEBITMAP + #define META_CREATEBITMAP 0x06FE +#endif +#ifndef META_CREATEREGION + #define META_CREATEREGION 0x06FF +#endif /* Background Modes */ -#define TRANSPARENT 1 -#define OPAQUE 2 +#ifndef TRANSPARENT + #define TRANSPARENT 1 +#endif +#ifndef OPAQUE + #define OPAQUE 2 +#endif /* Pen Styles */ -#define PS_SOLID 0 -#define PS_DASH 1 -#define PS_DOT 2 -#define PS_DASHDOT 3 -#define PS_DASHDOTDOT 4 -#define PS_NULL 5 -#define PS_INSIDEFRAME 6 +#ifndef PS_SOLID + #define PS_SOLID 0 +#endif +#ifndef PS_DASH + #define PS_DASH 1 +#endif +#ifndef PS_DOT + #define PS_DOT 2 +#endif +#ifndef PS_DASHDOT + #define PS_DASHDOT 3 +#endif +#ifndef PS_DASHDOTDOT + #define PS_DASHDOTDOT 4 +#endif +#ifndef PS_NULL + #define PS_NULL 5 +#endif +#ifndef PS_INSIDEFRAME + #define PS_INSIDEFRAME 6 +#endif /* PitchAndFamily family values (high 4 bits) */ -/* Win32s/Borland don't need this */ -#ifndef FF_DONTCARE // !defined(__BORLANDC__) && !defined(WIN32) -#define FF_DONTCARE 0x00 -#define FF_ROMAN 0x10 -#define FF_SWISS 0x20 -#define FF_MODERN 0x30 -#define FF_SCRIPT 0x40 -#define FF_DECORATIVE 0x50 +#ifndef FF_DONTCARE + #define FF_DONTCARE 0x00 +#endif +#ifndef FF_ROMAN + #define FF_ROMAN 0x10 +#endif +#ifndef FF_SWISS + #define FF_SWISS 0x20 +#endif +#ifndef FF_MODERN + #define FF_MODERN 0x30 +#endif +#ifndef FF_SCRIPT + #define FF_SCRIPT 0x40 +#endif +#ifndef FF_DECORATIVE + #define FF_DECORATIVE 0x50 #endif /* Brush Styles */ -#define BS_SOLID 0 -#define BS_NULL 1 -#define BS_HOLLOW BS_NULL -#define BS_HATCHED 2 -#define BS_PATTERN 3 -#define BS_INDEXED 4 -#define BS_DIBPATTERN 5 +#ifndef BS_SOLID + #define BS_SOLID 0 +#endif +#ifndef BS_NULL + #define BS_NULL 1 +#endif +#ifndef BS_HOLLOW + #define BS_HOLLOW BS_NULL +#endif +#ifndef BS_HATCHED + #define BS_HATCHED 2 +#endif +#ifndef BS_PATTERN + #define BS_PATTERN 3 +#endif +#ifndef BS_INDEXED + #define BS_INDEXED 4 +#endif +#ifndef BS_DIBPATTERN + #define BS_DIBPATTERN 5 +#endif /* Hatch Styles */ -#define HS_HORIZONTAL 0 -#define HS_VERTICAL 1 -#define HS_FDIAGONAL 2 -#define HS_BDIAGONAL 3 -#define HS_CROSS 4 -#define HS_DIAGCROSS 5 - -#endif // metafile functions +#ifndef HS_HORIZONTAL + #define HS_HORIZONTAL 0 +#endif +#ifndef HS_VERTICAL + #define HS_VERTICAL 1 +#endif +#ifndef HS_FDIAGONAL + #define HS_FDIAGONAL 2 +#endif +#ifndef HS_BDIAGONAL + #define HS_BDIAGONAL 3 +#endif +#ifndef HS_CROSS + #define HS_CROSS 4 +#endif +#ifndef HS_DIAGCROSS + #define HS_DIAGCROSS 5 +#endif -class wxMetaRecord: public wxObject +class WXDLLIMPEXP_OGL wxMetaRecord: public wxObject { public: int metaFunction; @@ -169,9 +376,9 @@ class wxMetaRecord: public wxObject long param6; long param7; long param8; - char *stringParam; + wxChar *stringParam; wxRealPoint *points; - + wxMetaRecord(int fun) { metaFunction = fun; points = NULL; stringParam = NULL; @@ -180,7 +387,7 @@ class wxMetaRecord: public wxObject ~wxMetaRecord(void); }; -class wxXMetaFile: public wxObject +class WXDLLIMPEXP_OGL wxXMetaFile: public wxObject { public: double lastX; @@ -195,16 +402,16 @@ class wxXMetaFile: public wxObject wxList metaRecords; wxList gdiObjects; // List of wxMetaRecord objects created with Create..., // referenced by position in list by SelectObject - wxXMetaFile(char *file = NULL); + wxXMetaFile(const wxChar* file = NULL); ~wxXMetaFile(void); - + // After this is called, the metafile cannot be used for anything // since it is now owned by the clipboard. bool SetClipboard(int width = 0, int height = 0); bool Play(wxDC *dc); inline bool Ok(void) const { return ok; } - bool ReadFile(char *file); + bool ReadFile(const wxChar *file); }; #endif