git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35812 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			415 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			415 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        mfutils.h
 | |
| // Purpose:     Metafile utilities: reading a placeable metafile independently
 | |
| //              of Windows.
 | |
| // Author:      Julian Smart
 | |
| // Modified by:
 | |
| // Created:     12/07/98
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) Julian Smart
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _MFUTILS_H_
 | |
| #define _MFUTILS_H_
 | |
| 
 | |
| 
 | |
| #include "wx/metafile.h"
 | |
| 
 | |
| #ifndef GetRValue
 | |
| #define GetRValue(rgb) ((unsigned char)(rgb))
 | |
| #define GetGValue(rgb) ((unsigned char)(((int)(rgb)) >> 8))
 | |
| #define GetBValue(rgb) ((unsigned char)((rgb)>>16))
 | |
| #endif
 | |
| 
 | |
| /* Metafile Functions */
 | |
| // 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 */
 | |
| #ifndef TRANSPARENT
 | |
|   #define TRANSPARENT     1
 | |
| #endif
 | |
| #ifndef OPAQUE
 | |
|   #define OPAQUE          2
 | |
| #endif
 | |
| 
 | |
| /* Pen Styles */
 | |
| #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) */
 | |
| #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 */
 | |
| #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 */
 | |
| #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 WXDLLIMPEXP_OGL wxMetaRecord: public wxObject
 | |
| {
 | |
|   public:
 | |
|   int metaFunction;
 | |
|   long param1;
 | |
|   long param2;
 | |
|   long param3;
 | |
|   long param4;
 | |
|   long param5;
 | |
|   long param6;
 | |
|   long param7;
 | |
|   long param8;
 | |
|   wxChar *stringParam;
 | |
|   wxRealPoint *points;
 | |
| 
 | |
|   wxMetaRecord(int fun)
 | |
|   {
 | |
|     metaFunction = fun; points = NULL; stringParam = NULL;
 | |
|     param1 = 0;
 | |
|   }
 | |
|   ~wxMetaRecord(void);
 | |
| };
 | |
| 
 | |
| class WXDLLIMPEXP_OGL wxXMetaFile: public wxObject
 | |
| {
 | |
|  public:
 | |
|   double lastX;
 | |
|   double lastY;
 | |
|   bool ok;
 | |
| 
 | |
|   double left;
 | |
|   double top;
 | |
|   double right;
 | |
|   double bottom;
 | |
| 
 | |
|   wxList metaRecords;
 | |
|   wxList gdiObjects; // List of wxMetaRecord objects created with Create...,
 | |
|                      // referenced by position in list by SelectObject
 | |
|   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(const wxChar *file);
 | |
| };
 | |
| 
 | |
| #endif
 | |
|  // _MFUTILS_H_
 |