|  | /* | 
|  | * 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; | 
|  |  | 
|  | #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; | 
|  | }; | 
|  |  | 
|  | #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 |