The Great wxRegion Refactoring:

1. added wxRegionBase class and derive all wxRegions from it
2. also added wxRegionWithCombine for the ports providing Combine() method
   (MSW, OS2 and Mac) to reduce code duplication further
3. made sure region comparison works the same way in all ports (except those
   not implementing it) and added IsEqual() method


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41429 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-09-25 11:47:23 +00:00
parent b48f51ca74
commit 8a16d7370e
24 changed files with 751 additions and 1654 deletions

View File

@@ -18,7 +18,6 @@ typedef struct _NSRect NSRect;
class WXDLLEXPORT wxRegion : public wxRegionGeneric
{
DECLARE_DYNAMIC_CLASS(wxRegion);
public:
wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h)
: wxRegionGeneric(x,y,w,h)
@@ -48,27 +47,8 @@ public:
wxRegion(const NSRect& rect);
wxRegion(const NSRect *rects, int count);
// Use the non-transparent pixels of a wxBitmap for the region to combine
// with this region. First version takes transparency from bitmap's mask,
// second lets the user specify the colour to be treated as transparent
// along with an optional tolerance value.
// NOTE: implemented in common/rgncmn.cpp
bool Union(const wxBitmap& bmp);
bool Union(const wxBitmap& bmp,
const wxColour& transColour, int tolerance = 0);
/* And because of function hiding: */
bool Union(long x, long y, long width, long height)
{ return wxRegionGeneric::Union(x,y,width,height); }
bool Union(const wxRect& rect)
{ return wxRegionGeneric::Union(rect); }
bool Union(const wxRegion& region)
{ return wxRegionGeneric::Union(region); }
// Convert the region to a B&W bitmap with the black pixels being inside
// the region.
// NOTE: implemented in common/rgncmn.cpp
wxBitmap ConvertToBitmap() const;
private:
DECLARE_DYNAMIC_CLASS(wxRegion);
};
class WXDLLEXPORT wxRegionIterator : public wxRegionIteratorGeneric