X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b7cacb43db1e69b87b257a67912b4d52995b070a..f77c0fe312a1dedde4a86c9b967d095802c10384:/include/wx/region.h diff --git a/include/wx/region.h b/include/wx/region.h index b0a6c47bdd..eede02e617 100644 --- a/include/wx/region.h +++ b/include/wx/region.h @@ -12,12 +12,12 @@ #ifndef _WX_REGION_H_BASE_ #define _WX_REGION_H_BASE_ -#include "wx/bitmap.h" #include "wx/gdiobj.h" #include "wx/gdicmn.h" -class WXDLLEXPORT wxColour; -class WXDLLEXPORT wxRegion; +class WXDLLIMPEXP_FWD_CORE wxBitmap; +class WXDLLIMPEXP_FWD_CORE wxColour; +class WXDLLIMPEXP_FWD_CORE wxRegion; // ---------------------------------------------------------------------------- // constants @@ -142,23 +142,20 @@ public: #endif // wxUSE_IMAGE // Intersect rectangle or region with this one. - bool Intersect(wxCoord x, wxCoord y, wxCoord w, wxCoord h) - { return Intersect(wxRect(x, y, w, h)); } + bool Intersect(wxCoord x, wxCoord y, wxCoord w, wxCoord h); bool Intersect(const wxRect& rect); bool Intersect(const wxRegion& region) { return DoIntersect(region); } // Subtract rectangle or region from this: // Combines the parts of 'this' that are not part of the second region. - bool Subtract(wxCoord x, wxCoord y, wxCoord w, wxCoord h) - { return Subtract(wxRect(x, y, w, h)); } + bool Subtract(wxCoord x, wxCoord y, wxCoord w, wxCoord h); bool Subtract(const wxRect& rect); bool Subtract(const wxRegion& region) { return DoSubtract(region); } // XOR: the union of two combined regions except for any overlapping areas. - bool Xor(wxCoord x, wxCoord y, wxCoord w, wxCoord h) - { return Xor(wxRect(x, y, w, h)); } + bool Xor(wxCoord x, wxCoord y, wxCoord w, wxCoord h); bool Xor(const wxRect& rect); bool Xor(const wxRegion& region) { return DoXor(region); } @@ -210,17 +207,11 @@ protected: virtual bool DoCombine(const wxRegion& region, wxRegionOp op) = 0; // implement some wxRegionBase pure virtuals in terms of Combine() - virtual bool DoUnionWithRect(const wxRect& rect) - { return Combine(rect, wxRGN_OR); } - virtual bool DoUnionWithRegion(const wxRegion& region) - { return Combine(region, wxRGN_OR); } - - virtual bool DoIntersect(const wxRegion& region) - { return Combine(region, wxRGN_AND); } - virtual bool DoSubtract(const wxRegion& region) - { return Combine(region, wxRGN_DIFF); } - virtual bool DoXor(const wxRegion& region) - { return Combine(region, wxRGN_XOR); } + virtual bool DoUnionWithRect(const wxRect& rect); + virtual bool DoUnionWithRegion(const wxRegion& region); + virtual bool DoIntersect(const wxRegion& region); + virtual bool DoSubtract(const wxRegion& region); + virtual bool DoXor(const wxRegion& region); }; #endif // ports with wxRegion::Combine() @@ -270,6 +261,24 @@ inline bool wxRegionBase::Xor(const wxRect& rect) return DoXor(wxRegion(rect)); } +// ...and these functions are here because they call the ones above, and its +// not really proper to call an inline function before its defined inline. + +inline bool wxRegionBase::Intersect(wxCoord x, wxCoord y, wxCoord w, wxCoord h) +{ + return Intersect(wxRect(x, y, w, h)); +} + +inline bool wxRegionBase::Subtract(wxCoord x, wxCoord y, wxCoord w, wxCoord h) +{ + return Subtract(wxRect(x, y, w, h)); +} + +inline bool wxRegionBase::Xor(wxCoord x, wxCoord y, wxCoord w, wxCoord h) +{ + return Xor(wxRect(x, y, w, h)); +} + #ifdef wxHAS_REGION_COMBINE inline bool wxRegionWithCombine::Combine(wxCoord x,