]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxRegion construction from an NSRect or an array of NSRects
authorDavid Elliott <dfe@tgwbd.org>
Wed, 14 Apr 2004 05:53:50 +0000 (05:53 +0000)
committerDavid Elliott <dfe@tgwbd.org>
Wed, 14 Apr 2004 05:53:50 +0000 (05:53 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/cocoa/region.h
src/cocoa/region.mm

index 287217ff24ea958cdb4aaca297e3d3306d379547..652b5c8b47913dcae9fd01f5a0036ed4404c7b78 100644 (file)
@@ -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,
index 170ef49b6f77637bdcc9951b7c8f6fa7226b534b..04f2c15fe0a53b15236850dd64dc7e376cc97df3 100644 (file)
 
 #include "wx/region.h"
 
+#import <Foundation/NSGeometry.h>
+
 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<count; i++)
+    {
+        Union(NSRectToWxRect(rects[i]));
+    }
+}
+