| /* |
| * 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 _GDIPLUSTYPES_H |
| #define _GDIPLUSTYPES_H |
| |
| typedef float REAL; |
| |
| enum Status{ |
| Ok = 0, |
| GenericError = 1, |
| InvalidParameter = 2, |
| OutOfMemory = 3, |
| ObjectBusy = 4, |
| InsufficientBuffer = 5, |
| NotImplemented = 6, |
| Win32Error = 7, |
| WrongState = 8, |
| Aborted = 9, |
| FileNotFound = 10, |
| ValueOverflow = 11, |
| AccessDenied = 12, |
| UnknownImageFormat = 13, |
| FontFamilyNotFound = 14, |
| FontStyleNotFound = 15, |
| NotTrueTypeFont = 16, |
| UnsupportedGdiplusVersion = 17, |
| GdiplusNotInitialized = 18, |
| PropertyNotFound = 19, |
| PropertyNotSupported = 20, |
| ProfileNotFound = 21 |
| }; |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef BOOL (CALLBACK * ImageAbort)(VOID *); |
| typedef ImageAbort DrawImageAbort; |
| typedef ImageAbort GetThumbnailImageAbort; |
| typedef struct GdiplusAbort GdiplusAbort; |
| |
| typedef BOOL (CALLBACK * EnumerateMetafileProc)(EmfPlusRecordType,UINT,UINT,const BYTE*,VOID*); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| #ifdef __cplusplus |
| |
| class Point |
| { |
| public: |
| Point() |
| { |
| X = Y = 0; |
| } |
| |
| Point(IN const Point &pt) |
| { |
| X = pt.X; |
| Y = pt.Y; |
| } |
| |
| /* FIXME: missing constructor that takes a Size */ |
| |
| Point(IN INT x, IN INT y) |
| { |
| X = x; |
| Y = y; |
| } |
| |
| Point operator+(IN const Point& pt) const |
| { |
| return Point(X + pt.X, Y + pt.Y); |
| } |
| |
| Point operator-(IN const Point& pt) const |
| { |
| return Point(X - pt.X, Y - pt.Y); |
| } |
| |
| BOOL Equals(IN const Point& pt) |
| { |
| return (X == pt.X) && (Y == pt.Y); |
| } |
| |
| public: |
| INT X; |
| INT Y; |
| }; |
| |
| class PointF |
| { |
| public: |
| PointF() |
| { |
| X = Y = 0.0f; |
| } |
| |
| PointF(IN const PointF &pt) |
| { |
| X = pt.X; |
| Y = pt.Y; |
| } |
| |
| /* FIXME: missing constructor that takes a SizeF */ |
| |
| PointF(IN REAL x, IN REAL y) |
| { |
| X = x; |
| Y = y; |
| } |
| |
| PointF operator+(IN const PointF& pt) const |
| { |
| return PointF(X + pt.X, Y + pt.Y); |
| } |
| |
| PointF operator-(IN const PointF& pt) const |
| { |
| return PointF(X - pt.X, Y - pt.Y); |
| } |
| |
| BOOL Equals(IN const PointF& pt) |
| { |
| return (X == pt.X) && (Y == pt.Y); |
| } |
| |
| public: |
| REAL X; |
| REAL Y; |
| }; |
| |
| class PathData |
| { |
| public: |
| PathData() |
| { |
| Count = 0; |
| Points = NULL; |
| Types = NULL; |
| } |
| |
| ~PathData() |
| { |
| if (Points != NULL) |
| { |
| delete Points; |
| } |
| |
| if (Types != NULL) |
| { |
| delete Types; |
| } |
| } |
| |
| private: |
| PathData(const PathData &); |
| PathData& operator=(const PathData &); |
| |
| public: |
| INT Count; |
| PointF* Points; |
| BYTE* Types; |
| }; |
| |
| /* FIXME: missing the methods. */ |
| class RectF |
| { |
| public: |
| REAL X; |
| REAL Y; |
| REAL Width; |
| REAL Height; |
| }; |
| |
| /* FIXME: missing the methods. */ |
| class Rect |
| { |
| public: |
| INT X; |
| INT Y; |
| INT Width; |
| INT Height; |
| }; |
| |
| class CharacterRange |
| { |
| public: |
| CharacterRange() |
| { |
| First = Length = 0; |
| } |
| |
| CharacterRange(INT first, INT length) |
| { |
| First = first; |
| Length = length; |
| } |
| |
| CharacterRange& operator=(const CharacterRange& rhs) |
| { |
| First = rhs.First; |
| Length = rhs.Length; |
| return *this; |
| } |
| public: |
| INT First; |
| INT Length; |
| }; |
| |
| #else /* end of c++ typedefs */ |
| |
| typedef struct Point |
| { |
| INT X; |
| INT Y; |
| } Point; |
| |
| typedef struct PointF |
| { |
| REAL X; |
| REAL Y; |
| } PointF; |
| |
| typedef struct PathData |
| { |
| INT Count; |
| PointF* Points; |
| BYTE* Types; |
| } PathData; |
| |
| typedef struct RectF |
| { |
| REAL X; |
| REAL Y; |
| REAL Width; |
| REAL Height; |
| } RectF; |
| |
| typedef struct Rect |
| { |
| INT X; |
| INT Y; |
| INT Width; |
| INT Height; |
| } Rect; |
| |
| typedef struct CharacterRange |
| { |
| INT First; |
| INT Length; |
| } CharacterRange; |
| |
| typedef enum Status Status; |
| |
| #endif /* end of c typedefs */ |
| |
| #endif |