]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/region.cpp
guard against nullptr
[wxWidgets.git] / src / os2 / region.cpp
index 0bf37cdcc3a822797528dcb263c3422ce2c79564..90c7306c8da10993e289e0413f653a34683efd5e 100644 (file)
@@ -70,7 +70,7 @@ public:
         }
     }
 
-    ~wxRegionRefData()
+    virtual ~wxRegionRefData()
     {
         ::GpiDestroyRegion(m_hPS, m_hRegion);
     }
@@ -151,10 +151,8 @@ wxRegion::wxRegion(
                                      );
 } // end of wxRegion::wxRegion
 
-wxRegion::wxRegion(
-  const wxPoint&                    rTopLeft
-, const wxPoint&                    rBottomRight
-)
+wxRegion::wxRegion(const wxPoint& rTopLeft,
+                   const wxPoint& rBottomRight)
 {
     RECTL                           vRect;
     SIZEL                           vSize = {0, 0};
@@ -188,9 +186,7 @@ wxRegion::wxRegion(
                                      );
 } // end of wxRegion::wxRegion
 
-wxRegion::wxRegion(
-  const wxRect&                     rRect
-)
+wxRegion::wxRegion(const wxRect& rRect)
 {
     RECTL                           vRect;
     SIZEL                           vSize = {0, 0};
@@ -225,6 +221,11 @@ wxRegion::wxRegion(
                                      );
 } // end of wxRegion::wxRegion
 
+wxRegion::wxRegion(size_t n, const wxPoint *points, wxPolygonFillMode WXUNUSED(fillStyle))
+{
+    // TO DO
+}
+
 //
 // Destroy the region.
 //
@@ -232,12 +233,12 @@ wxRegion::~wxRegion()
 {
 } // end of wxRegion::~wxRegion
 
-wxObjectRefData *wxRegion::CreateData() const
+wxGDIRefData *wxRegion::CreateGDIRefData() const
 {
     return new wxRegionRefData;
 }
 
-wxObjectRefData *wxRegion::CloneData(const wxObjectRefData *data) const
+wxGDIRefData *wxRegion::CloneGDIRefData(const wxGDIRefData *data) const
 {
     return new wxRegionRefData(*(wxRegionRefData *)data);
 }
@@ -246,7 +247,7 @@ wxObjectRefData *wxRegion::CloneData(const wxObjectRefData *data) const
 //# Modify region
 //-----------------------------------------------------------------------------
 
-bool wxRegion::Offset( wxCoord x, wxCoord y )
+bool wxRegion::DoOffset( wxCoord x, wxCoord y )
 {
     if ( !x && !y )
     {
@@ -259,7 +260,7 @@ bool wxRegion::Offset( wxCoord x, wxCoord y )
 #if 0
     if ( ::OffsetRgn(GetHrgn(), x, y) == ERROR )
     {
-        wxLogLastError(_T("OffsetRgn"));
+        wxLogLastError(wxT("OffsetRgn"));
 
         return false;
     }
@@ -275,24 +276,10 @@ void wxRegion::Clear()
     UnRef();
 } // end of wxRegion::Clear
 
-//
-// Combine rectangle (x, y, w, h) with this.
-//
-bool wxRegion::Combine(
-  wxCoord                           x
-, wxCoord                           y
-, wxCoord                           vWidth
-, wxCoord                           vHeight
-, wxRegionOp                        eOp
-)
-{
-    return Combine(wxRegion(x, y, vWidth, vHeight), eOp);
-} // end of wxRegion::Combine
-
 //
 // Union region with this.
 //
-bool wxRegion::Combine( const wxRegion& rRegion, wxRegionOp eOp )
+bool wxRegion::DoCombine( const wxRegion& rRegion, wxRegionOp eOp )
 {
     //
     // We can't use the API functions if we don't have a valid region handle
@@ -310,7 +297,7 @@ bool wxRegion::Combine( const wxRegion& rRegion, wxRegionOp eOp )
                 break;
 
             default:
-                wxFAIL_MSG( _T("unknown region operation") );
+                wxFAIL_MSG( wxT("unknown region operation") );
                 // fall through
 
             case wxRGN_AND:
@@ -357,27 +344,19 @@ bool wxRegion::Combine( const wxRegion& rRegion, wxRegionOp eOp )
     return true;
 } // end of wxRegion::Combine
 
-bool wxRegion::Combine(
-  const wxRect&                     rRect
-, wxRegionOp                        eOp
-)
-{
-    return Combine( rRect.GetLeft()
-                   ,rRect.GetTop()
-                   ,rRect.GetWidth()
-                   ,rRect.GetHeight()
-                   ,eOp
-                  );
-} // end of wxRegion::Combine
-
 //-----------------------------------------------------------------------------
 //# Information on region
 //-----------------------------------------------------------------------------
 
+bool wxRegion::DoIsEqual(const wxRegion& WXUNUSED(region)) const
+{
+    return false;
+}
+
 //
 // Outer bounds of region
 //
-void wxRegion::GetBox(
+bool wxRegion::DoGetBox(
   wxCoord&                          x
 , wxCoord&                          y
 , wxCoord&                          vWidth
@@ -397,24 +376,19 @@ void wxRegion::GetBox(
         y       = vRect.yBottom;
         vWidth  = vRect.xRight - vRect.xLeft;
         vHeight = vRect.yTop - vRect.yBottom;
+        return true;
     }
     else
     {
         x = y = vWidth = vHeight = 0L;
+        return false;
     }
 } // end of wxRegion::GetBox
 
-wxRect wxRegion::GetBox() const
-{
-    wxCoord x, y, w, h;
-    GetBox(x, y, w, h);
-    return wxRect(x, y, w, h);
-}
-
 //
 // Is region empty?
 //
-bool wxRegion::Empty() const
+bool wxRegion::IsEmpty() const
 {
     wxCoord x;
     wxCoord y;
@@ -430,7 +404,7 @@ bool wxRegion::Empty() const
            ,vHeight
           );
     return ((vWidth == 0) && (vHeight == 0));
-} // end of wxRegion::Empty
+} // end of wxRegion::IsEmpty
 
 //-----------------------------------------------------------------------------
 // Tests
@@ -438,9 +412,9 @@ bool wxRegion::Empty() const
 //
 // Does the region contain the point pt?
 //
-wxRegionContain wxRegion::Contains( const wxPoint& rPoint ) const
+wxRegionContain wxRegion::DoContainsPoint( wxCoord x, wxCoord y ) const
 {
-    POINTL                          vPoint = { rPoint.x, rPoint.y };
+    POINTL vPoint = { x, y };
 
     if (!m_refData)
         return wxOutRegion;
@@ -448,7 +422,7 @@ wxRegionContain wxRegion::Contains( const wxPoint& rPoint ) const
     LONG lInside = ::GpiPtInRegion( ((wxRegionRefData*)m_refData)->m_hPS,
                                     M_REGION,
                                     &vPoint
-                                 );
+                                  );
     if (lInside == PRGN_INSIDE)
         return wxInRegion;
     else
@@ -458,23 +432,20 @@ wxRegionContain wxRegion::Contains( const wxPoint& rPoint ) const
 //
 // Does the region contain the rectangle (x, y, w, h)?
 //
-wxRegionContain wxRegion::Contains( wxCoord x,
-                                   wxCoord y,
-                                   wxCoord vWidth,
-                                   wxCoord vHeight ) const
+wxRegionContain wxRegion::DoContainsRect(const wxRect& rect) const
 {
     if (!m_refData)
         return wxOutRegion;
 
     RECTL   vRect;
-    vRect.xLeft   = x;
-    vRect.xRight  = x + vWidth;
-    vRect.yTop    = y + vHeight;
-    vRect.yBottom = y;
+    vRect.xLeft   = rect.x;
+    vRect.xRight  = rect.x + rect.width;
+    vRect.yTop    = rect.y + rect.height;
+    vRect.yBottom = rect.y;
 
     LONG lInside = ::GpiRectInRegion( ((wxRegionRefData*)m_refData)->m_hPS,
                                       M_REGION,
-                                      &vRect    
+                                      &vRect
                                     );
     switch (lInside)
     {
@@ -483,6 +454,7 @@ wxRegionContain wxRegion::Contains( wxCoord x,
         case RRGN_ERROR     :
         default             :   return wxOutRegion;
     }
+
 } // end of wxRegion::Contains
 
 //