From e9ec987a36b73cecaa6e99e6502023ca516fde97 Mon Sep 17 00:00:00 2001 From: David Elliott Date: Wed, 14 Apr 2004 05:53:50 +0000 Subject: [PATCH] Added wxRegion construction from an NSRect or an array of NSRects git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/cocoa/region.h | 6 ++++++ src/cocoa/region.mm | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/include/wx/cocoa/region.h b/include/wx/cocoa/region.h index 287217ff24..652b5c8b47 100644 --- a/include/wx/cocoa/region.h +++ b/include/wx/cocoa/region.h @@ -14,6 +14,8 @@ #include "wx/generic/region.h" +typedef struct _NSRect NSRect; + class WXDLLEXPORT wxRegion : public wxRegionGeneric { DECLARE_DYNAMIC_CLASS(wxRegion); @@ -42,6 +44,10 @@ public: wxRegion& operator= (const wxRegion& r) { return *(wxRegion*)&(this->wxRegionGeneric::operator=(r)); } + // Cocoa-specific creation + 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. If the bitmap has a mask then it will be used, // otherwise the colour to be treated as transparent may be specified, diff --git a/src/cocoa/region.mm b/src/cocoa/region.mm index 170ef49b6f..04f2c15fe0 100644 --- a/src/cocoa/region.mm +++ b/src/cocoa/region.mm @@ -11,5 +11,26 @@ #include "wx/region.h" +#import + IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject); +inline wxRect NSRectToWxRect(const NSRect& rect) +{ + return wxRect((wxCoord)rect.origin.x, (wxCoord)rect.origin.y, + (wxCoord)rect.size.width, (wxCoord)rect.size.height); +} + +wxRegion::wxRegion(const NSRect& rect) +{ + Union(NSRectToWxRect(rect)); +} + +wxRegion::wxRegion(const NSRect *rects, int count) +{ + for(int i=0; i