00001
00002
00003
00004
00005 #ifndef _KOWMFSTRUCT_H_
00006 #define _KOWMFSTRUCT_H_
00007
00008 #include <qglobal.h>
00009 #include <qnamespace.h>
00010 #include <QPainter>
00011
00012 #define APMHEADER_KEY 0x9AC6CDD7
00013 #define ENHMETA_SIGNATURE 0x464D4520
00014
00015 struct WmfMetaHeader
00016 {
00017 quint16 fileType;
00018 quint16 headerSize;
00019 quint16 version;
00020 quint32 fileSize;
00021 quint16 numOfObjects;
00022 quint32 maxRecordSize;
00023 quint16 numOfParameters;
00024 };
00025
00026
00027 struct WmfPlaceableHeader
00028 {
00029 quint32 key;
00030 quint16 handle;
00031 qint16 left;
00032 qint16 top;
00033 qint16 right;
00034 qint16 bottom;
00035 quint16 inch;
00036 quint32 reserved;
00037 quint16 checksum;
00038 };
00039
00040
00041 struct WmfEnhMetaHeader
00042 {
00043 quint32 recordType;
00044 quint32 recordSize;
00045
00046 qint32 boundsLeft;
00047 qint32 boundsTop;
00048 qint32 boundsRight;
00049 qint32 boundsBottom;
00050 qint32 frameLeft;
00051 qint32 frameTop;
00052 qint32 frameRight;
00053 qint32 frameBottom;
00054 quint32 signature;
00055 quint32 version;
00056 quint32 size;
00057 quint32 numOfRecords;
00058 quint16 numHandles;
00059
00060 quint16 reserved;
00061 quint32 sizeOfDescription;
00062
00063 quint32 offsetOfDescription;
00064
00065 quint32 numPaletteEntries;
00066 qint32 widthDevicePixels;
00067 qint32 heightDevicePixels;
00068 qint32 widthDeviceMM;
00069 qint32 heightDeviceMM;
00070 };
00071
00072
00073 struct WmfMetaRecord
00074 {
00075 quint32 size;
00076 quint16 function;
00077 quint16 param[ 1 ];
00078 };
00079
00080
00081 struct WmfEnhMetaRecord
00082 {
00083 quint32 function;
00084 quint32 size;
00085 quint32 param[ 1 ];
00086 };
00087
00088
00089 static const struct OpTab
00090 {
00091 quint32 winRasterOp;
00092 QPainter::CompositionMode qtRasterOp;
00093 } koWmfOpTab32[] =
00094 {
00095
00096 { 0x00CC0020, QPainter::CompositionMode_Source },
00097 { 0x00EE0086, QPainter::CompositionMode_SourceOver },
00098 { 0x008800C6, QPainter::CompositionMode_SourceIn },
00099 { 0x00660046, QPainter::CompositionMode_Xor },
00100 { 0x00440328, QPainter::CompositionMode_DestinationOut },
00101 { 0x00330008, QPainter::CompositionMode_DestinationOut },
00102 { 0x001100A6, QPainter::CompositionMode_SourceOut },
00103 { 0x00C000CA, QPainter::CompositionMode_Source },
00104 { 0x00BB0226, QPainter::CompositionMode_Destination },
00105 { 0x00F00021, QPainter::CompositionMode_Source },
00106 { 0x00FB0A09, QPainter::CompositionMode_Source },
00107 { 0x005A0049, QPainter::CompositionMode_Source },
00108 { 0x00550009, QPainter::CompositionMode_DestinationOut },
00109 { 0x00000042, QPainter::CompositionMode_Clear },
00110 { 0x00FF0062, QPainter::CompositionMode_Source }
00111 };
00112
00113 static const QPainter::CompositionMode koWmfOpTab16[] =
00114 {
00115
00116 QPainter::CompositionMode_Source,
00117 QPainter::CompositionMode_Clear,
00118 QPainter::CompositionMode_SourceOut,
00119 QPainter::CompositionMode_SourceOut,
00120 QPainter::CompositionMode_DestinationOut,
00121 QPainter::CompositionMode_DestinationOut,
00122 QPainter::CompositionMode_DestinationOut,
00123 QPainter::CompositionMode_Xor,
00124 QPainter::CompositionMode_Source,
00125 QPainter::CompositionMode_SourceIn,
00126 QPainter::CompositionMode_SourceIn,
00127 QPainter::CompositionMode_Destination,
00128 QPainter::CompositionMode_Destination,
00129 QPainter::CompositionMode_Source,
00130 QPainter::CompositionMode_Source,
00131 QPainter::CompositionMode_SourceOver,
00132 QPainter::CompositionMode_Source
00133 };
00134
00135 static const Qt::BrushStyle koWmfHatchedStyleBrush[] =
00136 {
00137 Qt::HorPattern,
00138 Qt::VerPattern,
00139 Qt::FDiagPattern,
00140 Qt::BDiagPattern,
00141 Qt::CrossPattern,
00142 Qt::DiagCrossPattern
00143 };
00144
00145 static const Qt::BrushStyle koWmfStyleBrush[] =
00146 { Qt::SolidPattern,
00147 Qt::NoBrush,
00148 Qt::FDiagPattern,
00149 Qt::Dense4Pattern,
00150 Qt::HorPattern,
00151 Qt::VerPattern,
00152 Qt::Dense6Pattern,
00153 Qt::Dense2Pattern,
00154 Qt::Dense3Pattern
00155 };
00156
00157 static const Qt::PenStyle koWmfStylePen[] =
00158 { Qt::SolidLine, Qt::DashLine, Qt::DotLine, Qt::DashDotLine, Qt::DashDotDotLine,
00159 Qt::NoPen, Qt::SolidLine };
00160
00161 #endif
00162