]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/region.cpp
Merge new item attributes if any are already existing
[wxWidgets.git] / src / mac / carbon / region.cpp
index 8bbc439e8e602beeab09782dda9f821d4fde2c9f..b8147e5db86a6910530b98ba1d6d445f9cbfe91b 100644 (file)
@@ -87,6 +87,8 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
 {
     m_refData = new wxRegionRefData;
 
+#ifndef __LP64__
+    // TODO : any APIs ?
     // OS X somehow does not collect the region invisibly as before, so sometimes things
     // get drawn on screen instead of just being combined into a region, therefore we allocate a temp gworld now
 
@@ -124,6 +126,7 @@ wxRegion::wxRegion(size_t n, const wxPoint *points, int WXUNUSED(fillStyle))
 
         ::SetGWorld( oldWorld, oldGDHandle );
     }
+#endif
 }
 
 wxRegion::~wxRegion()
@@ -270,7 +273,7 @@ wxRegionContain wxRegion::DoContainsRect(const wxRect& r) const
     if (!m_refData)
         return wxOutRegion;
 
-    Rect rect = { r.y , r.x , r.y + r.h , r.x + r.w } ;
+    Rect rect = { r.y , r.x , r.y + r.height , r.x + r.width } ;
     if (RectInRgn( &rect , M_REGION ) )
         return wxInRegion;
     else
@@ -406,14 +409,26 @@ void wxRegionIterator::Reset(const wxRegion& region)
     }
     else
     {
-        RegionToRectsUPP proc = NewRegionToRectsUPP( wxMacRegionToRectsCounterCallback );
+        RegionToRectsUPP proc = 
+#ifdef __MACH__
+        (RegionToRectsUPP) wxMacRegionToRectsCounterCallback;
+#else
+        NewRegionToRectsUPP( wxMacRegionToRectsCounterCallback );
+#endif
 
         OSStatus err = noErr;
         err = QDRegionToRects (OTHER_M_REGION( region ) , kQDParseRegionFromTopLeft, proc, (void*)&m_numRects);
         if (err == noErr)
         {
+#ifndef __MACH__
             DisposeRegionToRectsUPP (proc);
-            proc = NewRegionToRectsUPP (wxMacRegionToRectsSetterCallback);
+#endif
+            proc = 
+#ifdef __MACH__
+            (RegionToRectsUPP) wxMacRegionToRectsSetterCallback;
+#else
+            NewRegionToRectsUPP (wxMacRegionToRectsSetterCallback);
+#endif
             m_rects = new wxRect[m_numRects];
             RegionToRectsCallbackData data ;
             data.m_rects = m_rects ;
@@ -425,7 +440,9 @@ void wxRegionIterator::Reset(const wxRegion& region)
             m_numRects = 0;
         }
 
+#ifndef __MACH__
         DisposeRegionToRectsUPP( proc );
+#endif
     }
 }