// wxRegionRefData: private class containing the information about the region
// ----------------------------------------------------------------------------
-class wxRegionRefData : public wxObjectRefData
+class wxRegionRefData : public wxGDIRefData
{
public:
wxRegionRefData()
}
wxRegionRefData(const wxRegionRefData& refData)
- : wxObjectRefData()
+ : wxGDIRefData()
{
m_region = gdk_region_copy(refData.m_region);
}
M_REGIONDATA->m_region = gdk_region_copy( region );
}
-wxRegion::wxRegion( size_t n, const wxPoint *points, int fillStyle )
+wxRegion::wxRegion( size_t n, const wxPoint *points,
+ wxPolygonFillMode fillStyle )
{
GdkPoint *gdkpoints = new GdkPoint[n];
for ( size_t i = 0 ; i < n ; i++ )
// m_refData unrefed in ~wxObject
}
-wxObjectRefData *wxRegion::CreateRefData() const
+wxGDIRefData *wxRegion::CreateGDIRefData() const
{
return new wxRegionRefData;
}
-wxObjectRefData *wxRegion::CloneRefData(const wxObjectRefData *data) const
+wxGDIRefData *wxRegion::CloneGDIRefData(const wxGDIRefData *data) const
{
return new wxRegionRefData(*(wxRegionRefData *)data);
}
bool wxRegion::DoUnionWithRegion( const wxRegion& region )
{
- wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
+ wxCHECK_MSG( region.Ok(), false, wxT("invalid region") );
if (!m_refData)
{
bool wxRegion::DoIntersect( const wxRegion& region )
{
- wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
+ wxCHECK_MSG( region.Ok(), false, wxT("invalid region") );
if (!m_refData)
{
bool wxRegion::DoSubtract( const wxRegion& region )
{
- wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
+ wxCHECK_MSG( region.Ok(), false, wxT("invalid region") );
if (!m_refData)
{
bool wxRegion::DoXor( const wxRegion& region )
{
- wxCHECK_MSG( region.Ok(), false, _T("invalid region") );
+ wxCHECK_MSG( region.Ok(), false, wxT("invalid region") );
if (!m_refData)
{
GdkRegion *wxRegion::GetRegion() const
{
if (!m_refData)
- return (GdkRegion*) NULL;
+ return NULL;
return M_REGIONDATA->m_region;
}
wxCoord wxRegionIterator::GetX() const
{
- wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+ wxCHECK_MSG( HaveRects(), 0, wxT("invalid wxRegionIterator") );
return m_rects[m_current].x;
}
wxCoord wxRegionIterator::GetY() const
{
- wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+ wxCHECK_MSG( HaveRects(), 0, wxT("invalid wxRegionIterator") );
return m_rects[m_current].y;
}
wxCoord wxRegionIterator::GetW() const
{
- wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+ wxCHECK_MSG( HaveRects(), 0, wxT("invalid wxRegionIterator") );
return m_rects[m_current].width;
}
wxCoord wxRegionIterator::GetH() const
{
- wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+ wxCHECK_MSG( HaveRects(), 0, wxT("invalid wxRegionIterator") );
return m_rects[m_current].height;
}
return r;
}
+
+wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri)
+{
+ wxDELETEA(m_rects);
+
+ m_current = ri.m_current;
+ m_numRects = ri.m_numRects;
+ if ( m_numRects )
+ {
+ m_rects = new wxRect[m_numRects];
+ for ( unsigned int n = 0; n < m_numRects; n++ )
+ m_rects[n] = ri.m_rects[n];
+ }
+ else
+ {
+ m_rects = NULL;
+ }
+
+ return *this;
+}