]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/region.cpp
wxMotif Solaris 2.6 compilation fixes
[wxWidgets.git] / src / msw / region.cpp
index 1e59e6b0b9d55393d92cd81e14901b8d9faf8f4a..56846e68ddd58aad58cb330d1e4c7895a8e452dd 100644 (file)
@@ -1,7 +1,8 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
-// File:      region.cpp
+// Name:        msw/region.cpp
 // Purpose:   Region handling for wxWindows/X11
 // Author:    Markus Holzem
 // Purpose:   Region handling for wxWindows/X11
 // Author:    Markus Holzem
+// Modified by:
 // Created:   Fri Oct 24 10:46:34 MET 1997
 // RCS-ID:       $Id$
 // Copyright: (c) 1997 Julian Smart and Markus Holzem
 // Created:   Fri Oct 24 10:46:34 MET 1997
 // RCS-ID:       $Id$
 // Copyright: (c) 1997 Julian Smart and Markus Holzem
@@ -12,6 +13,7 @@
 #pragma implementation "region.h"
 #endif
 
 #pragma implementation "region.h"
 #endif
 
+// For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
@@ -36,6 +38,7 @@ class WXDLLEXPORT wxRegionRefData : public wxGDIRefData {
 public:
        wxRegionRefData(void)
        {
 public:
        wxRegionRefData(void)
        {
+        m_region = 0;
        }
 
        wxRegionRefData(const wxRegionRefData& data)
        }
 
        wxRegionRefData(const wxRegionRefData& data)
@@ -285,6 +288,14 @@ wxRegionContain wxRegion::Contains(const wxRect& rect) const
     return Contains(x, y, w, h);
 }
 
     return Contains(x, y, w, h);
 }
 
+// Get internal region handle
+WXHRGN wxRegion::GetHRGN() const
+{
+    if (!m_refData)
+        return (WXHRGN) 0;
+    return (WXHRGN) M_REGION;
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                                                                                                      //
 //                                                        wxRegionIterator                                                              //
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                                                                                                      //
 //                                                        wxRegionIterator                                                              //
@@ -340,13 +351,13 @@ void wxRegionIterator::Reset(const wxRegion& region)
 
         m_rects = new wxRect[header->nCount];
 
 
         m_rects = new wxRect[header->nCount];
 
-        RECT* rect = (RECT*) (rgnData + sizeof(RGNDATAHEADER)) ;
-        uint i;
+        RECT* rect = (RECT*) ((char*)rgnData + sizeof(RGNDATAHEADER)) ;
+        size_t i;
         for (i = 0; i < header->nCount; i++)
         {
             m_rects[i] = wxRect(rect->left, rect->top,
                                  rect->right - rect->left, rect->bottom - rect->top);
         for (i = 0; i < header->nCount; i++)
         {
             m_rects[i] = wxRect(rect->left, rect->top,
                                  rect->right - rect->left, rect->bottom - rect->top);
-            rect += sizeof(RECT);
+            rect ++; // Advances pointer by sizeof(RECT)
         }
 
         m_numRects = header->nCount;
         }
 
         m_numRects = header->nCount;