summaryrefslogtreecommitdiff
path: root/external/gdiplus/include/gdiplusmetaheader.h
diff options
context:
space:
mode:
authorTor Lillqvist <tlillqvist@novell.com>2011-07-14 15:56:47 +0300
committerTor Lillqvist <tlillqvist@novell.com>2011-07-14 15:57:16 +0300
commitc25d059a8b70c2afa566c0c555d5d477a40ba935 (patch)
tree3325909dc1b05dffcf7b43da9b4ddc3061e82b4e /external/gdiplus/include/gdiplusmetaheader.h
parent3ed940516f2384255625fa88d7f29a94f30f89cd (diff)
Add the gdiplus headers and import library from Wine, for cross-compilation
Diffstat (limited to 'external/gdiplus/include/gdiplusmetaheader.h')
-rw-r--r--external/gdiplus/include/gdiplusmetaheader.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/external/gdiplus/include/gdiplusmetaheader.h b/external/gdiplus/include/gdiplusmetaheader.h
new file mode 100644
index 000000000000..e59ab09c8e49
--- /dev/null
+++ b/external/gdiplus/include/gdiplusmetaheader.h
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2007 Google (Evan Stade)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef _GDIPLUSMETAHEADER_H
+#define _GDIPLUSMETAHEADER_H
+
+typedef struct
+{
+ DWORD iType;
+ DWORD nSize;
+ RECTL rclBounds;
+ RECTL rclFrame;
+ DWORD dSignature;
+ DWORD nVersion;
+ DWORD nBytes;
+ DWORD nRecords;
+ WORD nHandles;
+ WORD sReserved;
+ DWORD nDescription;
+ DWORD offDescription;
+ DWORD nPalEntries;
+ SIZEL szlDevice;
+ SIZEL szlMillimeters;
+} ENHMETAHEADER3;
+
+#include <pshpack2.h>
+
+typedef struct
+{
+ INT16 Left;
+ INT16 Top;
+ INT16 Right;
+ INT16 Bottom;
+} PWMFRect16;
+
+typedef struct
+{
+ UINT32 Key;
+ INT16 Hmf;
+ PWMFRect16 BoundingBox;
+ INT16 Inch;
+ UINT32 Reserved;
+ INT16 Checksum;
+} WmfPlaceableFileHeader;
+
+#include <poppack.h>
+
+#define GDIP_EMFPLUSFLAGS_DISPLAY 0x00000001
+
+#ifdef __cplusplus
+class MetafileHeader
+{
+public:
+ MetafileType Type;
+ UINT Size;
+ UINT Version;
+ UINT EmfPlusFlags;
+ REAL DpiX;
+ REAL DpiY;
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+ union
+ {
+ METAHEADER WmfHeader;
+ ENHMETAHEADER3 EmfHeader;
+ };
+ INT EmfPlusHeaderSize;
+ INT LogicalDpiX;
+ INT LogicalDpiY;
+
+public:
+ MetafileType GetType() const { return Type; }
+
+ UINT GetMetafileSize() const { return Size; }
+
+ UINT GetVersion() const { return Version; }
+
+ UINT GetEmfPlusFlags() const { return EmfPlusFlags; }
+
+ REAL GetDpiX() const { return DpiX; }
+
+ REAL GetDpiY() const { return DpiY; }
+
+ VOID GetBounds (OUT Rect *r) const
+ {
+ r->X = X;
+ r->Y = Y;
+ r->Width = Width;
+ r->Height = Height;
+ }
+
+ BOOL IsWmf() const
+ {
+ return ((Type == MetafileTypeWmf) || (Type == MetafileTypeWmfPlaceable));
+ }
+
+ BOOL IsWmfPlaceable() const { return (Type == MetafileTypeWmfPlaceable); }
+
+ BOOL IsEmf() const { return (Type == MetafileTypeEmf); }
+
+ BOOL IsEmfOrEmfPlus() const { return (Type >= MetafileTypeEmf); }
+
+ BOOL IsEmfPlus() const { return (Type >= MetafileTypeEmfPlusOnly); }
+
+ BOOL IsEmfPlusDual() const { return (Type == MetafileTypeEmfPlusDual); }
+
+ BOOL IsEmfPlusOnly() const { return (Type == MetafileTypeEmfPlusOnly); }
+
+ BOOL IsDisplay() const
+ {
+ return IsEmfPlus() && ((EmfPlusFlags & GDIP_EMFPLUSFLAGS_DISPLAY) != 0);
+ }
+
+ const METAHEADER * GetWmfHeader() const
+ {
+ return IsWmf() ? &WmfHeader : NULL;
+ }
+
+ const ENHMETAHEADER3 * GetEmfHeader() const
+ {
+ return IsEmfOrEmfPlus() ? &EmfHeader : NULL;
+ }
+};
+#else /* end of c++ typedefs */
+
+typedef struct MetafileHeader
+{
+ MetafileType Type;
+ UINT Size;
+ UINT Version;
+ UINT EmfPlusFlags;
+ REAL DpiX;
+ REAL DpiY;
+ INT X;
+ INT Y;
+ INT Width;
+ INT Height;
+ union
+ {
+ METAHEADER WmfHeader;
+ ENHMETAHEADER3 EmfHeader;
+ } DUMMYUNIONNAME;
+ INT EmfPlusHeaderSize;
+ INT LogicalDpiX;
+ INT LogicalDpiY;
+} MetafileHeader;
+
+#endif /* end of c typedefs */
+
+#endif /* _GDIPLUSMETAHEADER_H */