]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/region.cpp
implemented menu drawing in the GTK theme
[wxWidgets.git] / src / mac / region.cpp
index 5c01ddd438b31c848d782db2e7d34e2c1d59fcc2..a0204caad5328aaaff03d7d2709186a7b7d7ff69 100644 (file)
 
 #include "wx/region.h"
 #include "wx/gdicmn.h"
 
 #include "wx/region.h"
 #include "wx/gdicmn.h"
+#include "wx/mac/uma.h"
 
 
+#if !USE_SHARED_LIBRARY
        IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
        IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
        IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
        IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
+#endif
 
 //-----------------------------------------------------------------------------
 // wxRegionRefData implementation
 
 //-----------------------------------------------------------------------------
 // wxRegionRefData implementation
@@ -60,25 +63,25 @@ wxRegion::wxRegion()
 wxRegion::wxRegion(WXHRGN hRegion )
 {
     m_refData = new wxRegionRefData;
 wxRegion::wxRegion(WXHRGN hRegion )
 {
     m_refData = new wxRegionRefData;
-    CopyRgn( hRegion , M_REGION ) ;
+    CopyRgn( (RgnHandle) hRegion , (RgnHandle) M_REGION ) ;
 }
 
 wxRegion::wxRegion(long x, long y, long w, long h)
 {
     m_refData = new wxRegionRefData;
 }
 
 wxRegion::wxRegion(long x, long y, long w, long h)
 {
     m_refData = new wxRegionRefData;
-    SetRectRgn( M_REGION , x , y , x+w , y+h ) ;
+    SetRectRgn( (RgnHandle) M_REGION , x , y , x+w , y+h ) ;
 }
 
 wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight)
 {
     m_refData = new wxRegionRefData;
 }
 
 wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight)
 {
     m_refData = new wxRegionRefData;
-    SetRectRgn( M_REGION , topLeft.x , topLeft.y , bottomRight.x , bottomRight.y ) ;
+    SetRectRgn( (RgnHandle) M_REGION , topLeft.x , topLeft.y , bottomRight.x , bottomRight.y ) ;
 }
 
 wxRegion::wxRegion(const wxRect& rect)
 {
     m_refData = new wxRegionRefData;
 }
 
 wxRegion::wxRegion(const wxRect& rect)
 {
     m_refData = new wxRegionRefData;
-    SetRectRgn( M_REGION , rect.x , rect.y , rect.x+rect.width , rect.y+rect.height ) ;
+    SetRectRgn( (RgnHandle) M_REGION , rect.x , rect.y , rect.x+rect.width , rect.y+rect.height ) ;
 }
 
 /*!
 }
 
 /*!
@@ -191,11 +194,12 @@ bool wxRegion::Combine(const wxRect& rect, wxRegionOp op)
 //-----------------------------------------------------------------------------
 
 // Outer bounds of region
 //-----------------------------------------------------------------------------
 
 // Outer bounds of region
-void wxRegion::GetBox(long& x, long& y, long&w, long &h) const
+void wxRegion::GetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const
 {
        if (m_refData) 
        {
 {
        if (m_refData) 
        {
-               Rect box = (**M_REGION).rgnBBox ;
+               Rect box ;
+               GetRegionBounds( M_REGION , &box ) ;
         x = box.left ;
         y = box.top ;
         w = box.right - box.left ;
         x = box.left ;
         y = box.top ;
         w = box.right - box.left ;
@@ -209,7 +213,7 @@ void wxRegion::GetBox(long& x, long& y, long&w, long &h) const
 
 wxRect wxRegion::GetBox() const
 {
 
 wxRect wxRegion::GetBox() const
 {
-    long x, y, w, h;
+    wxCoord x, y, w, h;
     GetBox(x, y, w, h);
     return wxRect(x, y, w, h);
 }
     GetBox(x, y, w, h);
     return wxRect(x, y, w, h);
 }
@@ -329,7 +333,8 @@ void wxRegionIterator::Reset(const wxRegion& region)
     {
        // we cannot dissolve it into rects on mac
         m_rects = new wxRect[1];
     {
        // we cannot dissolve it into rects on mac
         m_rects = new wxRect[1];
-        Rect rect = (**OTHER_M_REGION( region )).rgnBBox ;
+               Rect rect ;
+               GetRegionBounds( OTHER_M_REGION( region ) , &rect ) ;
         m_rects[0].x = rect.left;
         m_rects[0].y = rect.top;
         m_rects[0].width = rect.right - rect.left;
         m_rects[0].x = rect.left;
         m_rects[0].y = rect.top;
         m_rects[0].width = rect.right - rect.left;