]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/regiong.cpp
gtk_signal_connect -> g_signal_connect in unix/mediactrl.cpp
[wxWidgets.git] / src / generic / regiong.cpp
index 4ed586112c282b58058ec22c022a49cbec4f64b3..0867643f0c212199c1f6e9bc80935c1c6495f473 100644 (file)
@@ -28,6 +28,7 @@ struct REGION
 public:
     // Default constructor initializes nothing
     REGION() {}
+
     REGION(const wxRect& rect)
     {
         rects = &extents;
@@ -38,7 +39,11 @@ public:
         extents.y2 = rect.y + rect.height;
         size = 1;
     }
-    BoxPtr GetBox(int i) { if(i<numRects) return rects+i; else return NULL; }
+
+    BoxPtr GetBox(int i)
+    {
+        return i < numRects ? rects + i : NULL;
+    }
 
     // X.org methods
     static bool XClipBox(
@@ -159,12 +164,16 @@ protected:
 // ========================================================================
 // wxRegionRefData
 // ========================================================================
-class wxRegionRefData : public wxObjectRefData, public REGION
+
+class wxRegionRefData : public wxObjectRefData,
+                        public REGION
 {
 public:
     wxRegionRefData()
-    /* XCreateRegion */
-    {   size = 1;
+        : wxObjectRefData(),
+          REGION()
+    {
+        size = 1;
         numRects = 0;
         rects = ( BOX * )malloc( (unsigned) sizeof( BOX ));
         extents.x1 = 0;
@@ -172,10 +181,12 @@ public:
         extents.y1 = 0;
         extents.y2 = 0;
     }
+
     wxRegionRefData(const wxPoint& topLeft, const wxPoint& bottomRight)
-    :   wxObjectRefData()
-    ,   REGION()
-    {   rects = (BOX*)malloc(sizeof(BOX));
+        : wxObjectRefData(),
+          REGION()
+    {
+        rects = (BOX*)malloc(sizeof(BOX));
         size = 1;
         numRects = 1;
         extents.x1 = topLeft.x;
@@ -184,25 +195,31 @@ public:
         extents.y2 = bottomRight.y;
         *rects = extents;
     }
+
     wxRegionRefData(const wxRect& rect)
-    :   wxObjectRefData()
-    ,   REGION(rect)
-    {   rects = (BOX*)malloc(sizeof(BOX));
+        : wxObjectRefData(),
+          REGION(rect)
+    {
+        rects = (BOX*)malloc(sizeof(BOX));
         *rects = extents;
     }
+
     wxRegionRefData(const wxRegionRefData& refData)
-    :   wxObjectRefData()
-    ,   REGION()
+        : wxObjectRefData(),
+          REGION()
     {
         size = refData.size;
         numRects = refData.numRects;
         rects = (Box*)malloc(numRects*sizeof(Box));
+        memcpy(rects, refData.rects, numRects*sizeof(Box));
         extents = refData.extents;
     }
+
     ~wxRegionRefData()
     {
         free(rects);
     }
+
 private:
     // Don't allow this
     wxRegionRefData(const REGION&);
@@ -211,7 +228,7 @@ private:
 // ========================================================================
 // wxRegionGeneric
 // ========================================================================
-//IMPLEMENT_DYNAMIC_CLASS(wxRegionGeneric, wxGDIObject);
+//IMPLEMENT_DYNAMIC_CLASS(wxRegionGeneric, wxGDIObject)
 
 #define M_REGIONDATA ((wxRegionRefData *)m_refData)
 #define M_REGIONDATA_OF(rgn) ((wxRegionRefData *)(rgn.m_refData))
@@ -258,7 +275,7 @@ wxObjectRefData *wxRegionGeneric::CloneRefData(const wxObjectRefData *data) cons
     return new wxRegionRefData(*(wxRegionRefData *)data);
 }
 
-bool wxRegionGeneric::operator== (const wxRegionGeneric& region)
+bool wxRegionGeneric::operator== (const wxRegionGeneric& region) const
 {
     wxASSERT(m_refData && region.m_refData);
     return REGION::XEqualRegion(M_REGIONDATA,M_REGIONDATA_OF(region));
@@ -398,7 +415,7 @@ wxRegionContain wxRegionGeneric::Contains(const wxRect& rect) const
 // ========================================================================
 // wxRegionIteratorGeneric
 // ========================================================================
-//IMPLEMENT_DYNAMIC_CLASS(wxRegionIteratorGeneric,wxObject);
+//IMPLEMENT_DYNAMIC_CLASS(wxRegionIteratorGeneric,wxObject)
 
 wxRegionIteratorGeneric::wxRegionIteratorGeneric()
 {
@@ -443,7 +460,7 @@ wxRegionIteratorGeneric wxRegionIteratorGeneric::operator++(int)
 
 wxRect wxRegionIteratorGeneric::GetRect() const
 {
-    wxASSERT(m_refData);
+    wxASSERT(m_region.m_refData);
     const Box *box = M_REGIONDATA_OF(m_region)->GetBox(m_current);
     wxASSERT(box);
     return wxRect
@@ -456,7 +473,7 @@ wxRect wxRegionIteratorGeneric::GetRect() const
 
 long wxRegionIteratorGeneric::GetX() const
 {
-    wxASSERT(m_refData);
+    wxASSERT(m_region.m_refData);
     const Box *box = M_REGIONDATA_OF(m_region)->GetBox(m_current);
     wxASSERT(box);
     return box->x1;
@@ -464,7 +481,7 @@ long wxRegionIteratorGeneric::GetX() const
 
 long wxRegionIteratorGeneric::GetY() const
 {
-    wxASSERT(m_refData);
+    wxASSERT(m_region.m_refData);
     const Box *box = M_REGIONDATA_OF(m_region)->GetBox(m_current);
     wxASSERT(box);
     return box->y1;
@@ -472,7 +489,7 @@ long wxRegionIteratorGeneric::GetY() const
 
 long wxRegionIteratorGeneric::GetW() const
 {
-    wxASSERT(m_refData);
+    wxASSERT(m_region.m_refData);
     const Box *box = M_REGIONDATA_OF(m_region)->GetBox(m_current);
     wxASSERT(box);
     return box->x2 - box->x1;
@@ -480,7 +497,7 @@ long wxRegionIteratorGeneric::GetW() const
 
 long wxRegionIteratorGeneric::GetH() const
 {
-    wxASSERT(m_refData);
+    wxASSERT(m_region.m_refData);
     const Box *box = M_REGIONDATA_OF(m_region)->GetBox(m_current);
     wxASSERT(box);
     return box->y2 - box->y1;