From 3f3b45cc74b0499912409f766a595945dbbfc4c5 Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Fri, 23 May 2014 17:28:10 -0700 Subject: Convert all line endings to LF. --- .../fxge/Microsoft SDK/include/GdiPlusHeaders.h | 1586 ++++++++++---------- 1 file changed, 793 insertions(+), 793 deletions(-) (limited to 'core/src/fxge/Microsoft SDK/include/GdiPlusHeaders.h') diff --git a/core/src/fxge/Microsoft SDK/include/GdiPlusHeaders.h b/core/src/fxge/Microsoft SDK/include/GdiPlusHeaders.h index 215c4d09ea..9efcd89da2 100644 --- a/core/src/fxge/Microsoft SDK/include/GdiPlusHeaders.h +++ b/core/src/fxge/Microsoft SDK/include/GdiPlusHeaders.h @@ -1,793 +1,793 @@ -/**************************************************************************\ -* -* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. -* -* Module Name: -* -* GdiplusHeaders.h -* -* Abstract: -* -* GDI+ Native C++ public header file -* -\**************************************************************************/ - -#ifndef _GDIPLUSHEADERS_H -#define _GDIPLUSHEADERS_H - -//-------------------------------------------------------------------------- -// Abstract base class for regions -//-------------------------------------------------------------------------- - -// Include the class declarations here and have inline class implementation -// in separate file to avoid circular references. - -class Region : public GdiplusBase -{ -public: - friend class Graphics; - - Region(); - Region(IN const RectF& rect); - Region(IN const Rect& rect); - Region(IN const GraphicsPath* path); - Region(IN const BYTE* regionData, IN INT size); - Region(IN HRGN hRgn); - static Region* FromHRGN(IN HRGN hRgn); - - ~Region(); - Region* Clone() const; - - Status MakeInfinite(); - Status MakeEmpty(); - - // Get the size of the buffer needed for the GetData method - UINT GetDataSize() const; - - // buffer - where to put the data - // bufferSize - how big the buffer is (should be at least as big as GetDataSize()) - // sizeFilled - if not NULL, this is an OUT param that says how many bytes - // of data were written to the buffer. - Status GetData(OUT BYTE* buffer, - IN UINT bufferSize, - OUT UINT* sizeFilled = NULL) const; - - Status Intersect(IN const Rect& rect); - Status Intersect(IN const RectF& rect); - Status Intersect(IN const GraphicsPath* path); - Status Intersect(IN const Region* region); - Status Union(IN const Rect& rect); - Status Union(IN const RectF& rect); - Status Union(IN const GraphicsPath* path); - Status Union(IN const Region* region); - Status Xor(IN const Rect& rect); - Status Xor(IN const RectF& rect); - Status Xor(IN const GraphicsPath* path); - Status Xor(IN const Region* region); - Status Exclude(IN const Rect& rect); - Status Exclude(IN const RectF& rect); - Status Exclude(IN const GraphicsPath* path); - Status Exclude(IN const Region* region); - Status Complement(IN const Rect& rect); - Status Complement(IN const RectF& rect); - Status Complement(IN const GraphicsPath* path); - Status Complement(IN const Region* region); - Status Translate(IN REAL dx, - IN REAL dy); - Status Translate(IN INT dx, - IN INT dy); - Status Transform(IN const Matrix* matrix); - - Status GetBounds(OUT Rect* rect, - IN const Graphics* g) const; - - Status GetBounds(OUT RectF* rect, - IN const Graphics* g) const; - - HRGN GetHRGN (IN const Graphics * g) const; - - BOOL IsEmpty(IN const Graphics *g) const; - BOOL IsInfinite(IN const Graphics *g) const; - - BOOL IsVisible(IN INT x, - IN INT y, - IN const Graphics* g = NULL) const - { - return IsVisible(Point(x, y), g); - } - - BOOL IsVisible(IN const Point& point, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN const Graphics* g = NULL) const - { - return IsVisible(PointF(x, y), g); - } - - BOOL IsVisible(IN const PointF& point, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN const Graphics* g) const - { - return IsVisible(Rect(x, y, width, height), g); - } - - BOOL IsVisible(IN const Rect& rect, - IN const Graphics* g = NULL) const; - - BOOL IsVisible(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN const Graphics* g = NULL) const - { - return IsVisible(RectF(x, y, width, height), g); - } - - BOOL IsVisible(IN const RectF& rect, - IN const Graphics* g = NULL) const; - - BOOL Equals(IN const Region* region, - IN const Graphics* g) const; - - UINT GetRegionScansCount(IN const Matrix* matrix) const; - Status GetRegionScans(IN const Matrix* matrix, - OUT RectF* rects, - OUT INT* count) const; - Status GetRegionScans(IN const Matrix* matrix, - OUT Rect* rects, - OUT INT* count) const; - Status GetLastStatus() const; - -protected: - -#ifdef DCR_USE_NEW_250932 - -private: - Region(const Region ®ion); - Region& operator=(const Region ®ion); -protected: - -#else - Region(const Region ®ion) - { - region; // reference parameter - SetStatus(NotImplemented); - } - - Region& operator=(const Region ®ion) - { - region; // reference parameter - SetStatus(NotImplemented); - return *this; - } -#endif - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - Region(GpRegion* nativeRegion); - - VOID SetNativeRegion(GpRegion* nativeRegion); - -protected: - GpRegion* nativeRegion; - mutable Status lastResult; -}; - - -//-------------------------------------------------------------------------- -// Abstract base class for FontFamily -//-------------------------------------------------------------------------- - -class FontFamily : public GdiplusBase -{ -public: - friend class Font; - friend class Graphics; - friend class GraphicsPath; - friend class FontCollection; - - FontFamily(); - - FontFamily( - IN const WCHAR *name, - IN const FontCollection *fontCollection = NULL - ); - - ~FontFamily(); - - static const FontFamily *GenericSansSerif(); - static const FontFamily *GenericSerif(); - static const FontFamily *GenericMonospace(); - - Status GetFamilyName( - OUT WCHAR name[LF_FACESIZE], - IN LANGID language = 0 - ) const; - -// Copy operator - FontFamily * Clone() const; - - BOOL IsAvailable() const - { - return (nativeFamily != NULL); - }; - - BOOL IsStyleAvailable(IN INT style) const; - - UINT16 GetEmHeight (IN INT style) const; - UINT16 GetCellAscent (IN INT style) const; - UINT16 GetCellDescent (IN INT style) const; - UINT16 GetLineSpacing (IN INT style) const; - - /////////////////////////////////////////////////////////// - - Status GetLastStatus() const; - -#ifdef DCR_USE_NEW_250932 - -private: - FontFamily(const FontFamily &); - FontFamily& operator=(const FontFamily &); - -#endif - -protected: - Status SetStatus(Status status) const; - - // private constructor for copy - FontFamily(GpFontFamily * nativeFamily, Status status); - -/////////////////////////////////////// -// Data members -protected: - - GpFontFamily *nativeFamily; - mutable Status lastResult; -}; - -static FontFamily *GenericSansSerifFontFamily = NULL; -static FontFamily *GenericSerifFontFamily = NULL; -static FontFamily *GenericMonospaceFontFamily = NULL; - -static BYTE GenericSansSerifFontFamilyBuffer[sizeof(FontFamily)] = {0}; -static BYTE GenericSerifFontFamilyBuffer [sizeof(FontFamily)] = {0}; -static BYTE GenericMonospaceFontFamilyBuffer[sizeof(FontFamily)] = {0}; - - -//-------------------------------------------------------------------------- -// Abstract base class for fonts -//-------------------------------------------------------------------------- - -class Font : public GdiplusBase -{ -public: - friend class Graphics; - - Font(IN HDC hdc); - Font(IN HDC hdc, - IN const LOGFONTA* logfont); - Font(IN HDC hdc, - IN const LOGFONTW* logfont); -#ifdef DCR_USE_NEW_127084 - Font(IN HDC hdc, - IN const HFONT hfont); -#endif - Font( - IN const FontFamily * family, - IN REAL emSize, - IN INT style = FontStyleRegular, - IN Unit unit = UnitPoint - ); - - Font( - IN const WCHAR * familyName, - IN REAL emSize, - IN INT style = FontStyleRegular, - IN Unit unit = UnitPoint, - IN const FontCollection * fontCollection = NULL - ); - - Status GetLogFontA(IN const Graphics* g, - OUT LOGFONTA * logfontA) const; - Status GetLogFontW(IN const Graphics* g, - OUT LOGFONTW * logfontW) const; - - Font* Clone() const; - ~Font(); - BOOL IsAvailable() const; - INT GetStyle() const; - REAL GetSize() const; - Unit GetUnit() const; - Status GetLastStatus() const; - REAL GetHeight(IN const Graphics *graphics = NULL) const; -#ifdef DCR_USE_NEW_125467 - REAL GetHeight(IN REAL dpi) const; -#endif - - Status GetFamily(OUT FontFamily *family) const; - -#ifdef DCR_USE_NEW_250932 - -private: - Font(const Font &); - Font& operator=(const Font &); - -#endif - -protected: - Font(GpFont* font, Status status); - VOID SetNativeFont(GpFont *Font); - Status SetStatus(Status status) const; - -protected: - /* - * handle to native line texture object - */ - - GpFont* nativeFont; - mutable Status lastResult; -}; - -//-------------------------------------------------------------------------- -// Abstract base classes for font collections -//-------------------------------------------------------------------------- - -class FontCollection : public GdiplusBase -{ -public: - friend class FontFamily; - - FontCollection(); - virtual ~FontCollection(); - - INT GetFamilyCount() const; // number of enumerable families in the collection - - Status GetFamilies( // enumerate the fonts in a collection - IN INT numSought, - OUT FontFamily * gpfamilies, - OUT INT * numFound - ) const; - - Status GetLastStatus() const; - -#ifdef DCR_USE_NEW_250932 - -private: - FontCollection(const FontCollection &); - FontCollection& operator=(const FontCollection &); - -#endif - -protected: - Status SetStatus(Status status) const ; - - GpFontCollection *nativeFontCollection; - mutable Status lastResult; -}; - - -class InstalledFontCollection : public FontCollection -{ -public: - InstalledFontCollection(); - ~InstalledFontCollection(); - -#ifdef DCR_USE_NEW_250932 - -private: - InstalledFontCollection(const InstalledFontCollection &); - InstalledFontCollection& operator=(const InstalledFontCollection &); - -#endif - -protected: -#ifndef DCR_USE_NEW_235072 - Status InstallFontFile(IN const WCHAR* filename); - Status UninstallFontFile(IN const WCHAR* filename); -#endif - Status SetStatus(Status status) const ; -}; - - -class PrivateFontCollection : public FontCollection -{ -public: - PrivateFontCollection(); - ~PrivateFontCollection(); - - Status AddFontFile(IN const WCHAR* filename); - Status AddMemoryFont(IN const VOID* memory, - IN INT length); - -#ifdef DCR_USE_NEW_250932 - -private: - PrivateFontCollection(const PrivateFontCollection &); - PrivateFontCollection& operator=(const PrivateFontCollection &); - -#endif -}; - - -//-------------------------------------------------------------------------- -// Abstract base class for bitmap image and metafile -//-------------------------------------------------------------------------- - -// !!! Note: -// Include the class declarations here and have the inline class -// implementation in a separate file. This is done to resolve a -// circular dependency since one of the Bitmap methods needs to -// access the private member nativeGraphics of the Graphics object. - -class Image : public GdiplusBase -{ -public: - friend class Brush; - friend class TextureBrush; - friend class Graphics; - -#ifndef DCR_USE_NEW_140782 - Image( - IN const WCHAR* filename - ); - - Image( - IN IStream* stream - ); - - static Image* FromFile( - IN const WCHAR* filename - ); - - static Image* FromStream( - IN IStream* stream - ); -#else - Image( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Image( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Image* FromFile( - IN const WCHAR* filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Image* FromStream( - IN IStream* stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); -#endif - - virtual ~Image(); - virtual Image* Clone(); - - Status Save(IN const WCHAR* filename, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams = NULL); - Status Save(IN IStream* stream, - IN const CLSID* clsidEncoder, - IN const EncoderParameters *encoderParams = NULL); - Status SaveAdd(IN const EncoderParameters* encoderParams); - Status SaveAdd(IN Image* newImage, - IN const EncoderParameters* encoderParams); - - ImageType GetType() const; - Status GetPhysicalDimension(OUT SizeF* size); - Status GetBounds(OUT RectF* srcRect, - OUT Unit* srcUnit); - - UINT GetWidth(); - UINT GetHeight(); - REAL GetHorizontalResolution(); - REAL GetVerticalResolution(); - UINT GetFlags(); - Status GetRawFormat(OUT GUID *format); - PixelFormat GetPixelFormat(); - - INT GetPaletteSize(); - Status GetPalette(OUT ColorPalette* palette, - IN INT size); - Status SetPalette(IN const ColorPalette* palette); - - Image* GetThumbnailImage(IN UINT thumbWidth, - IN UINT thumbHeight, - IN GetThumbnailImageAbort callback = NULL, - IN VOID* callbackData = NULL); - UINT GetFrameDimensionsCount(); - Status GetFrameDimensionsList(OUT GUID* dimensionIDs, - IN UINT count); - UINT GetFrameCount(IN const GUID* dimensionID); - Status SelectActiveFrame(IN const GUID* dimensionID, - IN UINT frameIndex); - Status RotateFlip(IN RotateFlipType rotateFlipType); - UINT GetPropertyCount(); - Status GetPropertyIdList(IN UINT numOfProperty, - OUT PROPID* list); - UINT GetPropertyItemSize(IN PROPID propId); - Status GetPropertyItem(IN PROPID propId, - IN UINT propSize, - OUT PropertyItem* buffer); - Status GetPropertySize(OUT UINT* totalBufferSize, - OUT UINT* numProperties); - Status GetAllPropertyItems(IN UINT totalBufferSize, - IN UINT numProperties, - OUT PropertyItem* allItems); - Status RemovePropertyItem(IN PROPID propId); - Status SetPropertyItem(IN const PropertyItem* item); - - UINT GetEncoderParameterListSize(IN const CLSID* clsidEncoder); - Status GetEncoderParameterList(IN const CLSID* clsidEncoder, - IN UINT size, - OUT EncoderParameters* buffer); - - // Support for Middle East localization (right-to-left mirroring) - ImageLayout GetLayout() const; - Status SetLayout(IN const ImageLayout layout); - - Status GetLastStatus() const; - -protected: - - Image() {} - - Image(GpImage *nativeImage, Status status); - - VOID SetNativeImage(GpImage* nativeImage); - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - - GpImage* nativeImage; - mutable Status lastResult; - mutable Status loadStatus; - -#ifdef DCR_USE_NEW_250932 - -private: - -#else - -protected: - -#endif - - // Disable copy constructor and assignment operator - - Image(IN const Image& C); - Image& operator=(IN const Image& C); -}; - -class Bitmap : public Image -{ -public: - friend class Image; - friend class CachedBitmap; - - Bitmap( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Bitmap( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Bitmap* FromFile( - IN const WCHAR *filename, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - static Bitmap* FromStream( - IN IStream *stream, - IN BOOL useEmbeddedColorManagement = FALSE - ); - - Bitmap(IN INT width, - IN INT height, - IN INT stride, PixelFormat format, - IN BYTE* scan0); - Bitmap(IN INT width, - IN INT height, - IN PixelFormat format = PixelFormat32bppARGB); - Bitmap(IN INT width, - IN INT height, - IN Graphics* target); - - Bitmap* Clone(IN const Rect& rect, - IN PixelFormat format); - Bitmap* Clone(IN INT x, - IN INT y, - IN INT width, - IN INT height, - IN PixelFormat format); - Bitmap* Clone(IN const RectF& rect, - IN PixelFormat format); - Bitmap* Clone(IN REAL x, - IN REAL y, - IN REAL width, - IN REAL height, - IN PixelFormat format); - - Status LockBits(IN const Rect& rect, - IN UINT flags, - IN PixelFormat format, - OUT BitmapData* lockedBitmapData); - Status UnlockBits(IN BitmapData* lockedBitmapData); - Status GetPixel(IN INT x, - IN INT y, - OUT Color *color); - Status SetPixel(IN INT x, - IN INT y, - IN const Color &color); - Status SetResolution(IN REAL xdpi, - IN REAL ydpi); - - // GDI interop: - - Bitmap(IN IDirectDrawSurface7* surface); - Bitmap(IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData); - Bitmap(IN HBITMAP hbm, - IN HPALETTE hpal); - Bitmap(IN HICON hicon); - Bitmap(IN HINSTANCE hInstance, - IN const WCHAR * bitmapName); - static Bitmap* FromDirectDrawSurface7(IN IDirectDrawSurface7* surface); - static Bitmap* FromBITMAPINFO(IN const BITMAPINFO* gdiBitmapInfo, - IN VOID* gdiBitmapData); - static Bitmap* FromHBITMAP(IN HBITMAP hbm, - IN HPALETTE hpal); - static Bitmap* FromHICON(IN HICON hicon); - static Bitmap* FromResource(IN HINSTANCE hInstance, - IN const WCHAR * bitmapName); - - Status GetHBITMAP(IN const Color& colorBackground, - OUT HBITMAP *hbmReturn); - Status GetHICON(HICON *hicon); - -#ifdef DCR_USE_NEW_250932 -private: - Bitmap(const Bitmap &); - Bitmap& operator=(const Bitmap &); -#endif - -protected: - Bitmap(GpBitmap *nativeBitmap); -}; - -class CustomLineCap : public GdiplusBase -{ -public: - friend class Pen; - - CustomLineCap( - IN const GraphicsPath* fillPath, - IN const GraphicsPath* strokePath, - IN LineCap baseCap = LineCapFlat, - IN REAL baseInset = 0 - ); - virtual ~CustomLineCap(); - - CustomLineCap* Clone() const; - - Status SetStrokeCap(IN LineCap strokeCap) - { - // This changes both start and and caps. - - return SetStrokeCaps(strokeCap, strokeCap); - } - - Status SetStrokeCaps(IN LineCap startCap, - IN LineCap endCap); - Status GetStrokeCaps(OUT LineCap* startCap, - OUT LineCap* endCap) const; - Status SetStrokeJoin(IN LineJoin lineJoin); - LineJoin GetStrokeJoin() const; - Status SetBaseCap(IN LineCap baseCap); - LineCap GetBaseCap() const; - Status SetBaseInset(IN REAL inset); - REAL GetBaseInset() const; - Status SetWidthScale(IN REAL widthScale); - REAL GetWidthScale() const; - -protected: - CustomLineCap(); - -#ifdef DCR_USE_NEW_250932 - -private: - CustomLineCap(const CustomLineCap &); - CustomLineCap& operator=(const CustomLineCap &); -protected: - -#else - - CustomLineCap(const CustomLineCap& customLineCap) - { - customLineCap; - SetStatus(NotImplemented); - } - - CustomLineCap& operator=(const CustomLineCap& customLineCap) - { - customLineCap; - SetStatus(NotImplemented); - return *this; - } - -#endif - - CustomLineCap(GpCustomLineCap* nativeCap, Status status) - { - lastResult = status; - SetNativeCap(nativeCap); - } - - VOID SetNativeCap(GpCustomLineCap* nativeCap) - { - this->nativeCap = nativeCap; - } - - Status SetStatus(Status status) const - { - if (status != Ok) - return (lastResult = status); - else - return status; - } - -protected: - GpCustomLineCap* nativeCap; - mutable Status lastResult; -}; - -class CachedBitmap : public GdiplusBase -{ - friend Graphics; - -public: - CachedBitmap(IN Bitmap *bitmap, - IN Graphics *graphics); - virtual ~CachedBitmap(); - - Status GetLastStatus() const; - -#ifdef DCR_USE_NEW_250932 - -private: - CachedBitmap(const CachedBitmap &); - CachedBitmap& operator=(const CachedBitmap &); - -#endif - -protected: - GpCachedBitmap *nativeCachedBitmap; - mutable Status lastResult; -}; - -#endif // !_GDIPLUSHEADERS.HPP +/**************************************************************************\ +* +* Copyright (c) 1998-2000, Microsoft Corp. All Rights Reserved. +* +* Module Name: +* +* GdiplusHeaders.h +* +* Abstract: +* +* GDI+ Native C++ public header file +* +\**************************************************************************/ + +#ifndef _GDIPLUSHEADERS_H +#define _GDIPLUSHEADERS_H + +//-------------------------------------------------------------------------- +// Abstract base class for regions +//-------------------------------------------------------------------------- + +// Include the class declarations here and have inline class implementation +// in separate file to avoid circular references. + +class Region : public GdiplusBase +{ +public: + friend class Graphics; + + Region(); + Region(IN const RectF& rect); + Region(IN const Rect& rect); + Region(IN const GraphicsPath* path); + Region(IN const BYTE* regionData, IN INT size); + Region(IN HRGN hRgn); + static Region* FromHRGN(IN HRGN hRgn); + + ~Region(); + Region* Clone() const; + + Status MakeInfinite(); + Status MakeEmpty(); + + // Get the size of the buffer needed for the GetData method + UINT GetDataSize() const; + + // buffer - where to put the data + // bufferSize - how big the buffer is (should be at least as big as GetDataSize()) + // sizeFilled - if not NULL, this is an OUT param that says how many bytes + // of data were written to the buffer. + Status GetData(OUT BYTE* buffer, + IN UINT bufferSize, + OUT UINT* sizeFilled = NULL) const; + + Status Intersect(IN const Rect& rect); + Status Intersect(IN const RectF& rect); + Status Intersect(IN const GraphicsPath* path); + Status Intersect(IN const Region* region); + Status Union(IN const Rect& rect); + Status Union(IN const RectF& rect); + Status Union(IN const GraphicsPath* path); + Status Union(IN const Region* region); + Status Xor(IN const Rect& rect); + Status Xor(IN const RectF& rect); + Status Xor(IN const GraphicsPath* path); + Status Xor(IN const Region* region); + Status Exclude(IN const Rect& rect); + Status Exclude(IN const RectF& rect); + Status Exclude(IN const GraphicsPath* path); + Status Exclude(IN const Region* region); + Status Complement(IN const Rect& rect); + Status Complement(IN const RectF& rect); + Status Complement(IN const GraphicsPath* path); + Status Complement(IN const Region* region); + Status Translate(IN REAL dx, + IN REAL dy); + Status Translate(IN INT dx, + IN INT dy); + Status Transform(IN const Matrix* matrix); + + Status GetBounds(OUT Rect* rect, + IN const Graphics* g) const; + + Status GetBounds(OUT RectF* rect, + IN const Graphics* g) const; + + HRGN GetHRGN (IN const Graphics * g) const; + + BOOL IsEmpty(IN const Graphics *g) const; + BOOL IsInfinite(IN const Graphics *g) const; + + BOOL IsVisible(IN INT x, + IN INT y, + IN const Graphics* g = NULL) const + { + return IsVisible(Point(x, y), g); + } + + BOOL IsVisible(IN const Point& point, + IN const Graphics* g = NULL) const; + + BOOL IsVisible(IN REAL x, + IN REAL y, + IN const Graphics* g = NULL) const + { + return IsVisible(PointF(x, y), g); + } + + BOOL IsVisible(IN const PointF& point, + IN const Graphics* g = NULL) const; + + BOOL IsVisible(IN INT x, + IN INT y, + IN INT width, + IN INT height, + IN const Graphics* g) const + { + return IsVisible(Rect(x, y, width, height), g); + } + + BOOL IsVisible(IN const Rect& rect, + IN const Graphics* g = NULL) const; + + BOOL IsVisible(IN REAL x, + IN REAL y, + IN REAL width, + IN REAL height, + IN const Graphics* g = NULL) const + { + return IsVisible(RectF(x, y, width, height), g); + } + + BOOL IsVisible(IN const RectF& rect, + IN const Graphics* g = NULL) const; + + BOOL Equals(IN const Region* region, + IN const Graphics* g) const; + + UINT GetRegionScansCount(IN const Matrix* matrix) const; + Status GetRegionScans(IN const Matrix* matrix, + OUT RectF* rects, + OUT INT* count) const; + Status GetRegionScans(IN const Matrix* matrix, + OUT Rect* rects, + OUT INT* count) const; + Status GetLastStatus() const; + +protected: + +#ifdef DCR_USE_NEW_250932 + +private: + Region(const Region ®ion); + Region& operator=(const Region ®ion); +protected: + +#else + Region(const Region ®ion) + { + region; // reference parameter + SetStatus(NotImplemented); + } + + Region& operator=(const Region ®ion) + { + region; // reference parameter + SetStatus(NotImplemented); + return *this; + } +#endif + + Status SetStatus(Status status) const + { + if (status != Ok) + return (lastResult = status); + else + return status; + } + + Region(GpRegion* nativeRegion); + + VOID SetNativeRegion(GpRegion* nativeRegion); + +protected: + GpRegion* nativeRegion; + mutable Status lastResult; +}; + + +//-------------------------------------------------------------------------- +// Abstract base class for FontFamily +//-------------------------------------------------------------------------- + +class FontFamily : public GdiplusBase +{ +public: + friend class Font; + friend class Graphics; + friend class GraphicsPath; + friend class FontCollection; + + FontFamily(); + + FontFamily( + IN const WCHAR *name, + IN const FontCollection *fontCollection = NULL + ); + + ~FontFamily(); + + static const FontFamily *GenericSansSerif(); + static const FontFamily *GenericSerif(); + static const FontFamily *GenericMonospace(); + + Status GetFamilyName( + OUT WCHAR name[LF_FACESIZE], + IN LANGID language = 0 + ) const; + +// Copy operator + FontFamily * Clone() const; + + BOOL IsAvailable() const + { + return (nativeFamily != NULL); + }; + + BOOL IsStyleAvailable(IN INT style) const; + + UINT16 GetEmHeight (IN INT style) const; + UINT16 GetCellAscent (IN INT style) const; + UINT16 GetCellDescent (IN INT style) const; + UINT16 GetLineSpacing (IN INT style) const; + + /////////////////////////////////////////////////////////// + + Status GetLastStatus() const; + +#ifdef DCR_USE_NEW_250932 + +private: + FontFamily(const FontFamily &); + FontFamily& operator=(const FontFamily &); + +#endif + +protected: + Status SetStatus(Status status) const; + + // private constructor for copy + FontFamily(GpFontFamily * nativeFamily, Status status); + +/////////////////////////////////////// +// Data members +protected: + + GpFontFamily *nativeFamily; + mutable Status lastResult; +}; + +static FontFamily *GenericSansSerifFontFamily = NULL; +static FontFamily *GenericSerifFontFamily = NULL; +static FontFamily *GenericMonospaceFontFamily = NULL; + +static BYTE GenericSansSerifFontFamilyBuffer[sizeof(FontFamily)] = {0}; +static BYTE GenericSerifFontFamilyBuffer [sizeof(FontFamily)] = {0}; +static BYTE GenericMonospaceFontFamilyBuffer[sizeof(FontFamily)] = {0}; + + +//-------------------------------------------------------------------------- +// Abstract base class for fonts +//-------------------------------------------------------------------------- + +class Font : public GdiplusBase +{ +public: + friend class Graphics; + + Font(IN HDC hdc); + Font(IN HDC hdc, + IN const LOGFONTA* logfont); + Font(IN HDC hdc, + IN const LOGFONTW* logfont); +#ifdef DCR_USE_NEW_127084 + Font(IN HDC hdc, + IN const HFONT hfont); +#endif + Font( + IN const FontFamily * family, + IN REAL emSize, + IN INT style = FontStyleRegular, + IN Unit unit = UnitPoint + ); + + Font( + IN const WCHAR * familyName, + IN REAL emSize, + IN INT style = FontStyleRegular, + IN Unit unit = UnitPoint, + IN const FontCollection * fontCollection = NULL + ); + + Status GetLogFontA(IN const Graphics* g, + OUT LOGFONTA * logfontA) const; + Status GetLogFontW(IN const Graphics* g, + OUT LOGFONTW * logfontW) const; + + Font* Clone() const; + ~Font(); + BOOL IsAvailable() const; + INT GetStyle() const; + REAL GetSize() const; + Unit GetUnit() const; + Status GetLastStatus() const; + REAL GetHeight(IN const Graphics *graphics = NULL) const; +#ifdef DCR_USE_NEW_125467 + REAL GetHeight(IN REAL dpi) const; +#endif + + Status GetFamily(OUT FontFamily *family) const; + +#ifdef DCR_USE_NEW_250932 + +private: + Font(const Font &); + Font& operator=(const Font &); + +#endif + +protected: + Font(GpFont* font, Status status); + VOID SetNativeFont(GpFont *Font); + Status SetStatus(Status status) const; + +protected: + /* + * handle to native line texture object + */ + + GpFont* nativeFont; + mutable Status lastResult; +}; + +//-------------------------------------------------------------------------- +// Abstract base classes for font collections +//-------------------------------------------------------------------------- + +class FontCollection : public GdiplusBase +{ +public: + friend class FontFamily; + + FontCollection(); + virtual ~FontCollection(); + + INT GetFamilyCount() const; // number of enumerable families in the collection + + Status GetFamilies( // enumerate the fonts in a collection + IN INT numSought, + OUT FontFamily * gpfamilies, + OUT INT * numFound + ) const; + + Status GetLastStatus() const; + +#ifdef DCR_USE_NEW_250932 + +private: + FontCollection(const FontCollection &); + FontCollection& operator=(const FontCollection &); + +#endif + +protected: + Status SetStatus(Status status) const ; + + GpFontCollection *nativeFontCollection; + mutable Status lastResult; +}; + + +class InstalledFontCollection : public FontCollection +{ +public: + InstalledFontCollection(); + ~InstalledFontCollection(); + +#ifdef DCR_USE_NEW_250932 + +private: + InstalledFontCollection(const InstalledFontCollection &); + InstalledFontCollection& operator=(const InstalledFontCollection &); + +#endif + +protected: +#ifndef DCR_USE_NEW_235072 + Status InstallFontFile(IN const WCHAR* filename); + Status UninstallFontFile(IN const WCHAR* filename); +#endif + Status SetStatus(Status status) const ; +}; + + +class PrivateFontCollection : public FontCollection +{ +public: + PrivateFontCollection(); + ~PrivateFontCollection(); + + Status AddFontFile(IN const WCHAR* filename); + Status AddMemoryFont(IN const VOID* memory, + IN INT length); + +#ifdef DCR_USE_NEW_250932 + +private: + PrivateFontCollection(const PrivateFontCollection &); + PrivateFontCollection& operator=(const PrivateFontCollection &); + +#endif +}; + + +//-------------------------------------------------------------------------- +// Abstract base class for bitmap image and metafile +//-------------------------------------------------------------------------- + +// !!! Note: +// Include the class declarations here and have the inline class +// implementation in a separate file. This is done to resolve a +// circular dependency since one of the Bitmap methods needs to +// access the private member nativeGraphics of the Graphics object. + +class Image : public GdiplusBase +{ +public: + friend class Brush; + friend class TextureBrush; + friend class Graphics; + +#ifndef DCR_USE_NEW_140782 + Image( + IN const WCHAR* filename + ); + + Image( + IN IStream* stream + ); + + static Image* FromFile( + IN const WCHAR* filename + ); + + static Image* FromStream( + IN IStream* stream + ); +#else + Image( + IN const WCHAR* filename, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + Image( + IN IStream* stream, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + static Image* FromFile( + IN const WCHAR* filename, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + static Image* FromStream( + IN IStream* stream, + IN BOOL useEmbeddedColorManagement = FALSE + ); +#endif + + virtual ~Image(); + virtual Image* Clone(); + + Status Save(IN const WCHAR* filename, + IN const CLSID* clsidEncoder, + IN const EncoderParameters *encoderParams = NULL); + Status Save(IN IStream* stream, + IN const CLSID* clsidEncoder, + IN const EncoderParameters *encoderParams = NULL); + Status SaveAdd(IN const EncoderParameters* encoderParams); + Status SaveAdd(IN Image* newImage, + IN const EncoderParameters* encoderParams); + + ImageType GetType() const; + Status GetPhysicalDimension(OUT SizeF* size); + Status GetBounds(OUT RectF* srcRect, + OUT Unit* srcUnit); + + UINT GetWidth(); + UINT GetHeight(); + REAL GetHorizontalResolution(); + REAL GetVerticalResolution(); + UINT GetFlags(); + Status GetRawFormat(OUT GUID *format); + PixelFormat GetPixelFormat(); + + INT GetPaletteSize(); + Status GetPalette(OUT ColorPalette* palette, + IN INT size); + Status SetPalette(IN const ColorPalette* palette); + + Image* GetThumbnailImage(IN UINT thumbWidth, + IN UINT thumbHeight, + IN GetThumbnailImageAbort callback = NULL, + IN VOID* callbackData = NULL); + UINT GetFrameDimensionsCount(); + Status GetFrameDimensionsList(OUT GUID* dimensionIDs, + IN UINT count); + UINT GetFrameCount(IN const GUID* dimensionID); + Status SelectActiveFrame(IN const GUID* dimensionID, + IN UINT frameIndex); + Status RotateFlip(IN RotateFlipType rotateFlipType); + UINT GetPropertyCount(); + Status GetPropertyIdList(IN UINT numOfProperty, + OUT PROPID* list); + UINT GetPropertyItemSize(IN PROPID propId); + Status GetPropertyItem(IN PROPID propId, + IN UINT propSize, + OUT PropertyItem* buffer); + Status GetPropertySize(OUT UINT* totalBufferSize, + OUT UINT* numProperties); + Status GetAllPropertyItems(IN UINT totalBufferSize, + IN UINT numProperties, + OUT PropertyItem* allItems); + Status RemovePropertyItem(IN PROPID propId); + Status SetPropertyItem(IN const PropertyItem* item); + + UINT GetEncoderParameterListSize(IN const CLSID* clsidEncoder); + Status GetEncoderParameterList(IN const CLSID* clsidEncoder, + IN UINT size, + OUT EncoderParameters* buffer); + + // Support for Middle East localization (right-to-left mirroring) + ImageLayout GetLayout() const; + Status SetLayout(IN const ImageLayout layout); + + Status GetLastStatus() const; + +protected: + + Image() {} + + Image(GpImage *nativeImage, Status status); + + VOID SetNativeImage(GpImage* nativeImage); + + Status SetStatus(Status status) const + { + if (status != Ok) + return (lastResult = status); + else + return status; + } + + GpImage* nativeImage; + mutable Status lastResult; + mutable Status loadStatus; + +#ifdef DCR_USE_NEW_250932 + +private: + +#else + +protected: + +#endif + + // Disable copy constructor and assignment operator + + Image(IN const Image& C); + Image& operator=(IN const Image& C); +}; + +class Bitmap : public Image +{ +public: + friend class Image; + friend class CachedBitmap; + + Bitmap( + IN const WCHAR *filename, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + Bitmap( + IN IStream *stream, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + static Bitmap* FromFile( + IN const WCHAR *filename, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + static Bitmap* FromStream( + IN IStream *stream, + IN BOOL useEmbeddedColorManagement = FALSE + ); + + Bitmap(IN INT width, + IN INT height, + IN INT stride, PixelFormat format, + IN BYTE* scan0); + Bitmap(IN INT width, + IN INT height, + IN PixelFormat format = PixelFormat32bppARGB); + Bitmap(IN INT width, + IN INT height, + IN Graphics* target); + + Bitmap* Clone(IN const Rect& rect, + IN PixelFormat format); + Bitmap* Clone(IN INT x, + IN INT y, + IN INT width, + IN INT height, + IN PixelFormat format); + Bitmap* Clone(IN const RectF& rect, + IN PixelFormat format); + Bitmap* Clone(IN REAL x, + IN REAL y, + IN REAL width, + IN REAL height, + IN PixelFormat format); + + Status LockBits(IN const Rect& rect, + IN UINT flags, + IN PixelFormat format, + OUT BitmapData* lockedBitmapData); + Status UnlockBits(IN BitmapData* lockedBitmapData); + Status GetPixel(IN INT x, + IN INT y, + OUT Color *color); + Status SetPixel(IN INT x, + IN INT y, + IN const Color &color); + Status SetResolution(IN REAL xdpi, + IN REAL ydpi); + + // GDI interop: + + Bitmap(IN IDirectDrawSurface7* surface); + Bitmap(IN const BITMAPINFO* gdiBitmapInfo, + IN VOID* gdiBitmapData); + Bitmap(IN HBITMAP hbm, + IN HPALETTE hpal); + Bitmap(IN HICON hicon); + Bitmap(IN HINSTANCE hInstance, + IN const WCHAR * bitmapName); + static Bitmap* FromDirectDrawSurface7(IN IDirectDrawSurface7* surface); + static Bitmap* FromBITMAPINFO(IN const BITMAPINFO* gdiBitmapInfo, + IN VOID* gdiBitmapData); + static Bitmap* FromHBITMAP(IN HBITMAP hbm, + IN HPALETTE hpal); + static Bitmap* FromHICON(IN HICON hicon); + static Bitmap* FromResource(IN HINSTANCE hInstance, + IN const WCHAR * bitmapName); + + Status GetHBITMAP(IN const Color& colorBackground, + OUT HBITMAP *hbmReturn); + Status GetHICON(HICON *hicon); + +#ifdef DCR_USE_NEW_250932 +private: + Bitmap(const Bitmap &); + Bitmap& operator=(const Bitmap &); +#endif + +protected: + Bitmap(GpBitmap *nativeBitmap); +}; + +class CustomLineCap : public GdiplusBase +{ +public: + friend class Pen; + + CustomLineCap( + IN const GraphicsPath* fillPath, + IN const GraphicsPath* strokePath, + IN LineCap baseCap = LineCapFlat, + IN REAL baseInset = 0 + ); + virtual ~CustomLineCap(); + + CustomLineCap* Clone() const; + + Status SetStrokeCap(IN LineCap strokeCap) + { + // This changes both start and and caps. + + return SetStrokeCaps(strokeCap, strokeCap); + } + + Status SetStrokeCaps(IN LineCap startCap, + IN LineCap endCap); + Status GetStrokeCaps(OUT LineCap* startCap, + OUT LineCap* endCap) const; + Status SetStrokeJoin(IN LineJoin lineJoin); + LineJoin GetStrokeJoin() const; + Status SetBaseCap(IN LineCap baseCap); + LineCap GetBaseCap() const; + Status SetBaseInset(IN REAL inset); + REAL GetBaseInset() const; + Status SetWidthScale(IN REAL widthScale); + REAL GetWidthScale() const; + +protected: + CustomLineCap(); + +#ifdef DCR_USE_NEW_250932 + +private: + CustomLineCap(const CustomLineCap &); + CustomLineCap& operator=(const CustomLineCap &); +protected: + +#else + + CustomLineCap(const CustomLineCap& customLineCap) + { + customLineCap; + SetStatus(NotImplemented); + } + + CustomLineCap& operator=(const CustomLineCap& customLineCap) + { + customLineCap; + SetStatus(NotImplemented); + return *this; + } + +#endif + + CustomLineCap(GpCustomLineCap* nativeCap, Status status) + { + lastResult = status; + SetNativeCap(nativeCap); + } + + VOID SetNativeCap(GpCustomLineCap* nativeCap) + { + this->nativeCap = nativeCap; + } + + Status SetStatus(Status status) const + { + if (status != Ok) + return (lastResult = status); + else + return status; + } + +protected: + GpCustomLineCap* nativeCap; + mutable Status lastResult; +}; + +class CachedBitmap : public GdiplusBase +{ + friend Graphics; + +public: + CachedBitmap(IN Bitmap *bitmap, + IN Graphics *graphics); + virtual ~CachedBitmap(); + + Status GetLastStatus() const; + +#ifdef DCR_USE_NEW_250932 + +private: + CachedBitmap(const CachedBitmap &); + CachedBitmap& operator=(const CachedBitmap &); + +#endif + +protected: + GpCachedBitmap *nativeCachedBitmap; + mutable Status lastResult; +}; + +#endif // !_GDIPLUSHEADERS.HPP -- cgit v1.2.3