/////////////////////////////////////////////////////////////////////////////
-// File: region.cpp
+// Name: msw/region.cpp
// 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
#pragma implementation "region.h"
#endif
+// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
public:
wxRegionRefData(void)
{
+ m_region = 0;
}
wxRegionRefData(const wxRegionRefData& data)
M_REGION = ::CreateRectRgn(0, 0, 0, 0);
}
+wxRegion::wxRegion(WXHRGN hRegion)
+{
+ m_refData = new wxRegionRefData;
+ M_REGION = (HRGN) hRegion;
+}
+
wxRegion::wxRegion(long x, long y, long w, long h)
{
m_refData = new wxRegionRefData;
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 //
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);
- rect += sizeof(RECT);
+ rect ++; // Advances pointer by sizeof(RECT)
}
m_numRects = header->nCount;