// Name: wx/cocoa/region.h
// Purpose: wxRegion class
// Author: David Elliott
-// Modified by:
+// Modified by:
// Created: 2004/04/12
// RCS-ID: $Id$
// Copyright: (c) 2004 David Elliott
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_COCOA_REGION_H__
#include "wx/generic/region.h"
+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)
: wxRegionGeneric(rect)
{}
wxRegion() {}
+ wxRegion(const wxBitmap& bmp)
+ : wxRegionGeneric()
+ { Union(bmp); }
wxRegion(const wxBitmap& bmp,
- const wxColour& transColour = wxNullColour,
- int tolerance = 0)
+ const wxColour& transColour, int tolerance = 0)
: wxRegionGeneric()
- {
- Union(bmp, transColour, tolerance);
- }
- ~wxRegion() {}
+ { Union(bmp, transColour, tolerance); }
+ virtual ~wxRegion() {}
wxRegion(const wxRegion& r)
: wxRegionGeneric(r)
{}
wxRegion& operator= (const wxRegion& r)
{ return *(wxRegion*)&(this->wxRegionGeneric::operator=(r)); }
- // Use the non-transparent pixels of a wxBitmap for the region to combine
- // with this region. If the bitmap has a mask then it will be used,
- // otherwise the colour to be treated as transparent may be specified,
- // along with an optional tolerance value.
- // NOTE: implemented in common/rgncmn.cpp
- bool Union(const wxBitmap& bmp,
- const wxColour& transColour = wxNullColour,
- 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;
+ // Cocoa-specific creation
+ wxRegion(const NSRect& rect);
+ wxRegion(const NSRect *rects, int count);
+private:
+ DECLARE_DYNAMIC_CLASS(wxRegion);
};
class WXDLLEXPORT wxRegionIterator : public wxRegionIteratorGeneric
wxRegionIterator(const wxRegionIterator& iterator)
: wxRegionIteratorGeneric(iterator)
{}
- ~wxRegionIterator() {}
+ virtual ~wxRegionIterator() {}
wxRegionIterator& operator=(const wxRegionIterator& iter)
{ return *(wxRegionIterator*)&(this->wxRegionIteratorGeneric::operator=(iter)); }
};
-#endif //ndef _WX_COCOA_REGION_H__
+#endif
+ //ndef _WX_COCOA_REGION_H__