• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/include/wx/ogl/
1/////////////////////////////////////////////////////////////////////////////
2// Name:        mfutils.h
3// Purpose:     Metafile utilities: reading a placeable metafile independently
4//              of Windows.
5// Author:      Julian Smart
6// Modified by:
7// Created:     12/07/98
8// RCS-ID:      $Id: mfutils.h 35812 2005-10-06 18:17:23Z ABX $
9// Copyright:   (c) Julian Smart
10// Licence:     wxWindows licence
11/////////////////////////////////////////////////////////////////////////////
12
13#ifndef _MFUTILS_H_
14#define _MFUTILS_H_
15
16
17#include "wx/metafile.h"
18
19#ifndef GetRValue
20#define GetRValue(rgb) ((unsigned char)(rgb))
21#define GetGValue(rgb) ((unsigned char)(((int)(rgb)) >> 8))
22#define GetBValue(rgb) ((unsigned char)((rgb)>>16))
23#endif
24
25/* Metafile Functions */
26// some compilers have them in their include files
27
28#ifndef META_SETBKCOLOR
29  #define META_SETBKCOLOR            0x0201
30#endif
31#ifndef META_SETBKMODE
32  #define META_SETBKMODE             0x0102
33#endif
34#ifndef META_SETMAPMODE
35  #define META_SETMAPMODE            0x0103
36#endif
37#ifndef META_SETROP2
38  #define META_SETROP2               0x0104
39#endif
40#ifndef META_SETRELABS
41  #define META_SETRELABS             0x0105
42#endif
43#ifndef META_SETPOLYFILLMODE
44  #define META_SETPOLYFILLMODE       0x0106
45#endif
46#ifndef META_SETSTRETCHBLTMODE
47  #define META_SETSTRETCHBLTMODE     0x0107
48#endif
49#ifndef META_SETTEXTCHAREXTRA
50  #define META_SETTEXTCHAREXTRA      0x0108
51#endif
52#ifndef META_SETTEXTCOLOR
53  #define META_SETTEXTCOLOR          0x0209
54#endif
55#ifndef META_SETTEXTJUSTIFICATION
56  #define META_SETTEXTJUSTIFICATION  0x020A
57#endif
58#ifndef META_SETWINDOWORG
59  #define META_SETWINDOWORG          0x020B
60#endif
61#ifndef META_SETWINDOWEXT
62  #define META_SETWINDOWEXT          0x020C
63#endif
64#ifndef META_SETVIEWPORTORG
65  #define META_SETVIEWPORTORG        0x020D
66#endif
67#ifndef META_SETVIEWPORTEXT
68  #define META_SETVIEWPORTEXT        0x020E
69#endif
70#ifndef META_OFFSETWINDOWORG
71  #define META_OFFSETWINDOWORG       0x020F
72#endif
73#ifndef META_SCALEWINDOWEXT
74  #define META_SCALEWINDOWEXT        0x0410
75#endif
76#ifndef META_OFFSETVIEWPORTORG
77  #define META_OFFSETVIEWPORTORG     0x0211
78#endif
79#ifndef META_SCALEVIEWPORTEXT
80  #define META_SCALEVIEWPORTEXT      0x0412
81#endif
82#ifndef META_LINETO
83  #define META_LINETO                0x0213
84#endif
85#ifndef META_MOVETO
86  #define META_MOVETO                0x0214
87#endif
88#ifndef META_EXCLUDECLIPRECT
89  #define META_EXCLUDECLIPRECT       0x0415
90#endif
91#ifndef META_INTERSECTCLIPRECT
92  #define META_INTERSECTCLIPRECT     0x0416
93#endif
94#ifndef META_ARC
95  #define META_ARC                   0x0817
96#endif
97#ifndef META_ELLIPSE
98  #define META_ELLIPSE               0x0418
99#endif
100#ifndef META_FLOODFILL
101  #define META_FLOODFILL             0x0419
102#endif
103#ifndef META_PIE
104  #define META_PIE                   0x081A
105#endif
106#ifndef META_RECTANGLE
107  #define META_RECTANGLE             0x041B
108#endif
109#ifndef META_ROUNDRECT
110  #define META_ROUNDRECT             0x061C
111#endif
112#ifndef META_PATBLT
113  #define META_PATBLT                0x061D
114#endif
115#ifndef META_SAVEDC
116  #define META_SAVEDC                0x001E
117#endif
118#ifndef META_SETPIXEL
119  #define META_SETPIXEL              0x041F
120#endif
121#ifndef META_OFFSETCLIPRGN
122  #define META_OFFSETCLIPRGN         0x0220
123#endif
124#ifndef META_TEXTOUT
125  #define META_TEXTOUT               0x0521
126#endif
127#ifndef META_BITBLT
128  #define META_BITBLT                0x0922
129#endif
130#ifndef META_STRETCHBLT
131  #define META_STRETCHBLT            0x0B23
132#endif
133#ifndef META_POLYGON
134  #define META_POLYGON               0x0324
135#endif
136#ifndef META_POLYLINE
137  #define META_POLYLINE              0x0325
138#endif
139#ifndef META_ESCAPE
140  #define META_ESCAPE                0x0626
141#endif
142#ifndef META_RESTOREDC
143  #define META_RESTOREDC             0x0127
144#endif
145#ifndef META_FILLREGION
146  #define META_FILLREGION            0x0228
147#endif
148#ifndef META_FRAMEREGION
149  #define META_FRAMEREGION           0x0429
150#endif
151#ifndef META_INVERTREGION
152  #define META_INVERTREGION          0x012A
153#endif
154#ifndef META_PAINTREGION
155  #define META_PAINTREGION           0x012B
156#endif
157#ifndef META_SELECTCLIPREGION
158  #define META_SELECTCLIPREGION      0x012C
159#endif
160#ifndef META_SELECTOBJECT
161  #define META_SELECTOBJECT          0x012D
162#endif
163#ifndef META_SETTEXTALIGN
164  #define META_SETTEXTALIGN          0x012E
165#endif
166#ifndef META_DRAWTEXT
167  #define META_DRAWTEXT              0x062F
168#endif
169
170#ifndef META_CHORD
171  #define META_CHORD                 0x0830
172#endif
173#ifndef META_SETMAPPERFLAGS
174  #define META_SETMAPPERFLAGS        0x0231
175#endif
176#ifndef META_EXTTEXTOUT
177  #define META_EXTTEXTOUT            0x0a32
178#endif
179#ifndef META_SETDIBTODEV
180  #define META_SETDIBTODEV           0x0d33
181#endif
182#ifndef META_SELECTPALETTE
183  #define META_SELECTPALETTE         0x0234
184#endif
185#ifndef META_REALIZEPALETTE
186  #define META_REALIZEPALETTE        0x0035
187#endif
188#ifndef META_ANIMATEPALETTE
189  #define META_ANIMATEPALETTE        0x0436
190#endif
191#ifndef META_SETPALENTRIES
192  #define META_SETPALENTRIES         0x0037
193#endif
194#ifndef META_POLYPOLYGON
195  #define META_POLYPOLYGON           0x0538
196#endif
197#ifndef META_RESIZEPALETTE
198  #define META_RESIZEPALETTE         0x0139
199#endif
200
201#ifndef META_DIBBITBLT
202  #define META_DIBBITBLT             0x0940
203#endif
204#ifndef META_DIBSTRETCHBLT
205  #define META_DIBSTRETCHBLT         0x0b41
206#endif
207#ifndef META_DIBCREATEPATTERNBRUSH
208  #define META_DIBCREATEPATTERNBRUSH 0x0142
209#endif
210#ifndef META_STRETCHDIB
211  #define META_STRETCHDIB            0x0f43
212#endif
213
214#ifndef META_EXTFLOODFILL
215  #define META_EXTFLOODFILL          0x0548
216#endif
217
218#ifndef META_RESETDC
219  #define META_RESETDC               0x014C
220#endif
221#ifndef META_STARTDOC
222  #define META_STARTDOC              0x014D
223#endif
224#ifndef META_STARTPAGE
225  #define META_STARTPAGE             0x004F
226#endif
227#ifndef META_ENDPAGE
228  #define META_ENDPAGE               0x0050
229#endif
230#ifndef META_ABORTDOC
231  #define META_ABORTDOC              0x0052
232#endif
233#ifndef META_ENDDOC
234  #define META_ENDDOC                0x005E
235#endif
236
237#ifndef META_DELETEOBJECT
238  #define META_DELETEOBJECT          0x01f0
239#endif
240
241#ifndef META_CREATEPALETTE
242  #define META_CREATEPALETTE         0x00f7
243#endif
244#ifndef META_CREATEBRUSH
245  #define META_CREATEBRUSH           0x00F8
246#endif
247#ifndef META_CREATEPATTERNBRUSH
248  #define META_CREATEPATTERNBRUSH    0x01F9
249#endif
250#ifndef META_CREATEPENINDIRECT
251  #define META_CREATEPENINDIRECT     0x02FA
252#endif
253#ifndef META_CREATEFONTINDIRECT
254  #define META_CREATEFONTINDIRECT    0x02FB
255#endif
256#ifndef META_CREATEBRUSHINDIRECT
257  #define META_CREATEBRUSHINDIRECT   0x02FC
258#endif
259#ifndef META_CREATEBITMAPINDIRECT
260  #define META_CREATEBITMAPINDIRECT  0x02FD
261#endif
262#ifndef META_CREATEBITMAP
263  #define META_CREATEBITMAP          0x06FE
264#endif
265#ifndef META_CREATEREGION
266  #define META_CREATEREGION          0x06FF
267#endif
268
269/* Background Modes */
270#ifndef TRANSPARENT
271  #define TRANSPARENT     1
272#endif
273#ifndef OPAQUE
274  #define OPAQUE          2
275#endif
276
277/* Pen Styles */
278#ifndef PS_SOLID
279  #define PS_SOLID        0
280#endif
281#ifndef PS_DASH
282  #define PS_DASH         1
283#endif
284#ifndef PS_DOT
285  #define PS_DOT          2
286#endif
287#ifndef PS_DASHDOT
288  #define PS_DASHDOT      3
289#endif
290#ifndef PS_DASHDOTDOT
291  #define PS_DASHDOTDOT   4
292#endif
293#ifndef PS_NULL
294  #define PS_NULL         5
295#endif
296#ifndef PS_INSIDEFRAME
297  #define PS_INSIDEFRAME  6
298#endif
299
300/* PitchAndFamily family values (high 4 bits) */
301#ifndef FF_DONTCARE
302  #define FF_DONTCARE         0x00
303#endif
304#ifndef FF_ROMAN
305  #define FF_ROMAN            0x10
306#endif
307#ifndef FF_SWISS
308  #define FF_SWISS            0x20
309#endif
310#ifndef FF_MODERN
311  #define FF_MODERN           0x30
312#endif
313#ifndef FF_SCRIPT
314  #define FF_SCRIPT           0x40
315#endif
316#ifndef FF_DECORATIVE
317  #define FF_DECORATIVE       0x50
318#endif
319
320/* Brush Styles */
321#ifndef BS_SOLID
322  #define BS_SOLID        0
323#endif
324#ifndef BS_NULL
325  #define BS_NULL         1
326#endif
327#ifndef BS_HOLLOW
328  #define BS_HOLLOW       BS_NULL
329#endif
330#ifndef BS_HATCHED
331  #define BS_HATCHED      2
332#endif
333#ifndef BS_PATTERN
334  #define BS_PATTERN      3
335#endif
336#ifndef BS_INDEXED
337  #define BS_INDEXED      4
338#endif
339#ifndef BS_DIBPATTERN
340  #define BS_DIBPATTERN   5
341#endif
342
343/* Hatch Styles */
344#ifndef HS_HORIZONTAL
345  #define HS_HORIZONTAL       0
346#endif
347#ifndef HS_VERTICAL
348  #define HS_VERTICAL         1
349#endif
350#ifndef HS_FDIAGONAL
351  #define HS_FDIAGONAL        2
352#endif
353#ifndef HS_BDIAGONAL
354  #define HS_BDIAGONAL        3
355#endif
356#ifndef HS_CROSS
357  #define HS_CROSS            4
358#endif
359#ifndef HS_DIAGCROSS
360  #define HS_DIAGCROSS        5
361#endif
362
363class WXDLLIMPEXP_OGL wxMetaRecord: public wxObject
364{
365  public:
366  int metaFunction;
367  long param1;
368  long param2;
369  long param3;
370  long param4;
371  long param5;
372  long param6;
373  long param7;
374  long param8;
375  wxChar *stringParam;
376  wxRealPoint *points;
377
378  wxMetaRecord(int fun)
379  {
380    metaFunction = fun; points = NULL; stringParam = NULL;
381    param1 = 0;
382  }
383  ~wxMetaRecord(void);
384};
385
386class WXDLLIMPEXP_OGL wxXMetaFile: public wxObject
387{
388 public:
389  double lastX;
390  double lastY;
391  bool ok;
392
393  double left;
394  double top;
395  double right;
396  double bottom;
397
398  wxList metaRecords;
399  wxList gdiObjects; // List of wxMetaRecord objects created with Create...,
400                     // referenced by position in list by SelectObject
401  wxXMetaFile(const wxChar* file = NULL);
402  ~wxXMetaFile(void);
403
404  // After this is called, the metafile cannot be used for anything
405  // since it is now owned by the clipboard.
406  bool SetClipboard(int width = 0, int height = 0);
407
408  bool Play(wxDC *dc);
409  inline bool Ok(void) const { return ok; }
410  bool ReadFile(const wxChar *file);
411};
412
413#endif
414 // _MFUTILS_H_
415