Scribus
Open source desktop publishing at your fingertips
metafuncs.h
1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 
8 /* Original code from KOffice libwmf */
9 
10 /* WMF Metafile Function Description Table
11  * Author: Stefan Taferner <taferner@kde.org>
12  */
13 #ifndef metafunc_h
14 #define metafunc_h
15 
16 #include <QList>
17 
18 class WMFImport;
19 class PageItem;
20 
21 static const struct MetaFuncRec
22 {
23  const char* name;
24  unsigned short func;
25  void ( WMFImport::*method )( QList<PageItem*>& items, long, short* );
26 } metaFuncTab[] =
27  {
28  { "SETBKCOLOR", 0x0201, &WMFImport::setBkColor },
29  { "SETBKMODE", 0x0102, &WMFImport::setBkMode },
30  { "SETMAPMODE", 0x0103, &WMFImport::noop },
31  { "SETROP2", 0x0104, &WMFImport::noop },
32  { "SETRELABS", 0x0105, &WMFImport::noop },
33  { "SETPOLYFILLMODE", 0x0106, &WMFImport::setPolyFillMode },
34  { "SETSTRETCHBLTMODE", 0x0107, &WMFImport::noop },
35  { "SETTEXTCHAREXTRA", 0x0108, &WMFImport::noop },
36  { "SETTEXTCOLOR", 0x0209, &WMFImport::setTextColor },
37  { "SETTEXTJUSTIFICATION", 0x020A, &WMFImport::noop },
38  { "SETWINDOWORG", 0x020B, &WMFImport::setWindowOrg },
39  { "SETWINDOWEXT", 0x020C, &WMFImport::setWindowExt },
40  { "SETVIEWPORTORG", 0x020D, &WMFImport::noop },
41  { "SETVIEWPORTEXT", 0x020E, &WMFImport::noop },
42  { "OFFSETWINDOWORG", 0x020F, &WMFImport::noop },
43  { "SCALEWINDOWEXT", 0x0410, &WMFImport::noop },
44  { "OFFSETVIEWPORTORG", 0x0211, &WMFImport::noop },
45  { "SCALEVIEWPORTEXT", 0x0412, &WMFImport::noop },
46  { "LINETO", 0x0213, &WMFImport::lineTo },
47  { "MOVETO", 0x0214, &WMFImport::moveTo },
48  { "EXCLUDECLIPRECT", 0x0415, &WMFImport::excludeClipRect },
49  { "INTERSECTCLIPRECT", 0x0416, &WMFImport::intersectClipRect },
50  { "ARC", 0x0817, &WMFImport::arc },
51  { "ELLIPSE", 0x0418, &WMFImport::ellipse },
52  { "FLOODFILL", 0x0419, &WMFImport::noop },
53  { "PIE", 0x081A, &WMFImport::pie },
54  { "RECTANGLE", 0x041B, &WMFImport::rectangle },
55  { "ROUNDRECT", 0x061C, &WMFImport::roundRect },
56  { "PATBLT", 0x061D, &WMFImport::noop },
57  { "SAVEDC", 0x001E, &WMFImport::saveDC },
58  { "SETPIXEL", 0x041F, &WMFImport::noop },
59  { "OFFSETCLIPRGN", 0x0220, &WMFImport::noop },
60  { "TEXTOUT", 0x0521, &WMFImport::textOut },
61  { "BITBLT", 0x0922, &WMFImport::noop },
62  { "STRETCHBLT", 0x0B23, &WMFImport::noop },
63  { "POLYGON", 0x0324, &WMFImport::polygon },
64  { "POLYLINE", 0x0325, &WMFImport::polyline },
65  { "ESCAPE", 0x0626, &WMFImport::noop },
66  { "RESTOREDC", 0x0127, &WMFImport::restoreDC },
67  { "FILLREGION", 0x0228, &WMFImport::noop },
68  { "FRAMEREGION", 0x0429, &WMFImport::noop },
69  { "INVERTREGION", 0x012A, &WMFImport::noop },
70  { "PAINTREGION", 0x012B, &WMFImport::noop },
71  { "SELECTCLIPREGION", 0x012C, &WMFImport::noop },
72  { "SELECTOBJECT", 0x012D, &WMFImport::selectObject },
73  { "SETTEXTALIGN", 0x012E, &WMFImport::setTextAlign },
74  { "CHORD", 0x0830, &WMFImport::chord },
75  { "SETMAPPERFLAGS", 0x0231, &WMFImport::noop },
76  { "EXTTEXTOUT", 0x0a32, &WMFImport::extTextOut },
77  { "SETDIBTODEV", 0x0d33, &WMFImport::noop },
78  { "SELECTPALETTE", 0x0234, &WMFImport::noop },
79  { "REALIZEPALETTE", 0x0035, &WMFImport::noop },
80  { "ANIMATEPALETTE", 0x0436, &WMFImport::noop },
81  { "SETPALENTRIES", 0x0037, &WMFImport::noop },
82  { "POLYPOLYGON", 0x0538, &WMFImport::polyPolygon },
83  { "RESIZEPALETTE", 0x0139, &WMFImport::noop },
84  { "DIBBITBLT", 0x0940, &WMFImport::noop },
85  { "DIBSTRETCHBLT", 0x0b41, &WMFImport::noop },
86  { "DIBCREATEPATTERNBRUSH", 0x0142, &WMFImport::noop },
87  { "STRETCHDIB", 0x0f43, &WMFImport::noop },
88  { "EXTFLOODFILL", 0x0548, &WMFImport::noop },
89  { "DELETEOBJECT", 0x01f0, &WMFImport::deleteObject },
90  { "CREATEPALETTE", 0x00f7, &WMFImport::createEmptyObject },
91  { "CREATEPATTERNBRUSH", 0x01F9, &WMFImport::createEmptyObject },
92  { "CREATEPENINDIRECT", 0x02FA, &WMFImport::createPenIndirect },
93  { "CREATEFONTINDIRECT", 0x02FB, &WMFImport::createFontIndirect },
94  { "CREATEBRUSHINDIRECT", 0x02FC, &WMFImport::createBrushIndirect },
95  { "CREATEREGION", 0x06FF, &WMFImport::createEmptyObject },
96  { "END", 0, &WMFImport::end },
97  // always the latest in the table : in case of unknown function
98  { NULL, 0, &WMFImport::noop },
99  };
100 
101 
102 #endif /*metafunc_h*/
void roundRect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:964
void moveTo(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:826
void polygon(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:852
void polyPolygon(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:877
void saveDC(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1122
void setBkColor(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1109
void createEmptyObject(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1298
void end(QList< PageItem * > &items, long, short *)
Definition: wmfimport.cpp:1402
void textOut(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1153
void createBrushIndirect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1306
void setTextColor(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1143
void setTextAlign(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1148
void createFontIndirect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1377
void deleteObject(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1293
void excludeClipRect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1138
void chord(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1029
void rectangle(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:940
void arc(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:996
void pie(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1066
void createPenIndirect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1355
void intersectClipRect(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1133
Definition: wmfimport.h:36
void polyline(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:917
void setWindowOrg(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:789
void selectObject(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1286
void lineTo(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:799
void ellipse(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:831
Definition: pageitem.h:92
void noop(QList< PageItem * > &items, long, short *)
Definition: wmfimport.cpp:1398
void setWindowExt(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:794
void restoreDC(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1127
void setBkMode(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1114
void setPolyFillMode(QList< PageItem * > &items, long num, short *params)
Definition: wmfimport.cpp:1104