X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/55ccdb93e4ae4b606a4068cb37492c1ec3ed77a6..f51723055aa4334a355a19e87bb2b478b4204d15:/src/gtk/region.cpp diff --git a/src/gtk/region.cpp b/src/gtk/region.cpp index 57b6b02ffc..e58d23498d 100644 --- a/src/gtk/region.cpp +++ b/src/gtk/region.cpp @@ -32,7 +32,7 @@ // wxRegionRefData: private class containing the information about the region // ---------------------------------------------------------------------------- -class wxRegionRefData : public wxObjectRefData +class wxRegionRefData : public wxGDIRefData { public: wxRegionRefData() @@ -41,7 +41,7 @@ public: } wxRegionRefData(const wxRegionRefData& refData) - : wxObjectRefData() + : wxGDIRefData() { m_region = gdk_region_copy(refData.m_region); } @@ -90,7 +90,8 @@ wxRegion::wxRegion( GdkRegion *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++ ) @@ -119,12 +120,12 @@ wxRegion::~wxRegion() // 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); } @@ -327,7 +328,7 @@ wxRegionContain wxRegion::DoContainsRect(const wxRect& r) const GdkRegion *wxRegion::GetRegion() const { if (!m_refData) - return (GdkRegion*) NULL; + return NULL; return M_REGIONDATA->m_region; } @@ -455,3 +456,23 @@ wxRect wxRegionIterator::GetRect() const 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; +}