]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/regiong.cpp
use native conversions that are close to the native storage of wxString
[wxWidgets.git] / src / generic / regiong.cpp
index a60937a63c62aaefc3c523603e1a3dd76c25bc27..d9ee1d95dea5c6d9a6a5e0c3678551eacfe634f6 100644 (file)
@@ -176,12 +176,12 @@ protected:
 // wxRegionRefData
 // ========================================================================
 
-class wxRegionRefData : public wxObjectRefData,
+class wxRegionRefData : public wxGDIRefData,
                         public REGION
 {
 public:
     wxRegionRefData()
-        : wxObjectRefData(),
+        : wxGDIRefData(),
           REGION()
     {
         size = 1;
@@ -194,7 +194,7 @@ public:
     }
 
     wxRegionRefData(const wxPoint& topLeft, const wxPoint& bottomRight)
-        : wxObjectRefData(),
+        : wxGDIRefData(),
           REGION()
     {
         rects = (BOX*)malloc(sizeof(BOX));
@@ -208,7 +208,7 @@ public:
     }
 
     wxRegionRefData(const wxRect& rect)
-        : wxObjectRefData(),
+        : wxGDIRefData(),
           REGION(rect)
     {
         rects = (BOX*)malloc(sizeof(BOX));
@@ -216,7 +216,7 @@ public:
     }
 
     wxRegionRefData(const wxRegionRefData& refData)
-        : wxObjectRefData(),
+        : wxGDIRefData(),
           REGION()
     {
         size = refData.size;
@@ -274,14 +274,16 @@ wxRegionGeneric::wxRegionGeneric(const wxPoint& topLeft, const wxPoint& bottomRi
 void wxRegionGeneric::Clear()
 {
     UnRef();
+    if (!m_refData)
+        m_refData = new wxRegionRefData(wxRect(0,0,0,0));
 }
 
-wxObjectRefData *wxRegionGeneric::CreateRefData() const
+wxGDIRefData *wxRegionGeneric::CreateGDIRefData() const
 {
     return new wxRegionRefData;
 }
 
-wxObjectRefData *wxRegionGeneric::CloneRefData(const wxObjectRefData *data) const
+wxGDIRefData *wxRegionGeneric::CloneGDIRefData(const wxGDIRefData *data) const
 {
     return new wxRegionRefData(*(wxRegionRefData *)data);
 }
@@ -322,19 +324,19 @@ bool wxRegionGeneric::DoUnionWithRect(const wxRect& rect)
     return REGION::XUnionRegion(&region,M_REGIONDATA,M_REGIONDATA);
 }
 
-bool wxRegionGeneric::DoUnionWithRegion(const wxRegionGeneric& region)
+bool wxRegionGeneric::DoUnionWithRegion(const wxRegion& region)
 {
     AllocExclusive();
     return REGION::XUnionRegion(M_REGIONDATA_OF(region),M_REGIONDATA,M_REGIONDATA);
 }
 
-bool wxRegionGeneric::DoIntersect(const wxRegionGeneric& region)
+bool wxRegionGeneric::DoIntersect(const wxRegion& region)
 {
     AllocExclusive();
     return REGION::XIntersectRegion(M_REGIONDATA_OF(region),M_REGIONDATA,M_REGIONDATA);
 }
 
-bool wxRegionGeneric::DoSubtract(const wxRegionGeneric& region)
+bool wxRegionGeneric::DoSubtract(const wxRegion& region)
 {
     if ( region.IsEmpty() )
     {
@@ -345,7 +347,7 @@ bool wxRegionGeneric::DoSubtract(const wxRegionGeneric& region)
     return REGION::XSubtractRegion(M_REGIONDATA_OF(region),M_REGIONDATA,M_REGIONDATA);
 }
 
-bool wxRegionGeneric::DoXor(const wxRegionGeneric& region)
+bool wxRegionGeneric::DoXor(const wxRegion& region)
 {
     AllocExclusive();
     return REGION::XXorRegion(M_REGIONDATA_OF(region),M_REGIONDATA,M_REGIONDATA);
@@ -368,7 +370,7 @@ bool wxRegionGeneric::IsEmpty() const
 }
 
 // Does the region contain the point (x,y)?
-wxRegionContain wxRegionGeneric::DoContainsPoint(long x, long y) const
+wxRegionContain wxRegionGeneric::DoContainsPoint(wxCoord x, wxCoord y) const
 {
     wxASSERT(m_refData);
     return REGION::XPointInRegion(M_REGIONDATA,x,y) ? wxInRegion : wxOutRegion;