X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbe0af5b15f8b8e95ed45abc2140fb3a1fac3c87..82dd98a702e7dd277c36a6d6c53879893dfc3250:/src/gtk1/region.cpp diff --git a/src/gtk1/region.cpp b/src/gtk1/region.cpp index 305967bc7d..5718597469 100644 --- a/src/gtk1/region.cpp +++ b/src/gtk1/region.cpp @@ -13,15 +13,9 @@ #include "wx/region.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" +#include +#include -#ifdef __WXDEBUG__ -#ifdef NULL -#undef NULL -#endif -#define NULL ((void*)0L) -#endif //----------------------------------------------------------------------------- // wxRegion @@ -29,23 +23,20 @@ class wxRegionRefData: public wxObjectRefData { - public: - - wxRegionRefData(void); - ~wxRegionRefData(void); +public: + wxRegionRefData(); + ~wxRegionRefData(); - public: - GdkRegion *m_region; wxList m_rects; }; -wxRegionRefData::wxRegionRefData(void) +wxRegionRefData::wxRegionRefData() { m_region = (GdkRegion *) NULL; } -wxRegionRefData::~wxRegionRefData(void) +wxRegionRefData::~wxRegionRefData() { if (m_region) gdk_region_destroy( m_region ); @@ -113,13 +104,13 @@ wxRegion::wxRegion( const wxRect& rect ) } } -wxRegion::wxRegion(void) +wxRegion::wxRegion() { m_refData = new wxRegionRefData(); M_REGIONDATA->m_region = gdk_region_new(); } -wxRegion::~wxRegion(void) +wxRegion::~wxRegion() { } @@ -133,7 +124,7 @@ bool wxRegion::operator != ( const wxRegion& region ) return m_refData != region.m_refData; } -void wxRegion::Clear(void) +void wxRegion::Clear() { UnRef(); m_refData = new wxRegionRefData(); @@ -266,43 +257,15 @@ void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const y = 0; w = -1; h = -1; - wxNode *node = GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - if (node == GetRectList()->First()) - { - x = r->x; - y = r->y; - w = r->width; - h = r->height; - } - else - { - if (r->x < x) - { - x = r->x; - w += x - r->x; - } - if (r->y < y) - { - y = r->y; - h += y - r->y; - } - if (r->width+r->x > x+w) - { - w = r->x + r->width - x; - } - if (r->height+r->y > y+h) - { - h = r->y + r->height - y; - } - } - node = node->Next(); - } + GdkRectangle rect; + gdk_region_get_clipbox( M_REGIONDATA->m_region, &rect ); + x = rect.x; + y = rect.y; + w = rect.width; + h = rect.height; } -wxRect wxRegion::GetBox(void) const +wxRect wxRegion::GetBox() const { long x = 0; long y = 0; @@ -312,7 +275,7 @@ wxRect wxRegion::GetBox(void) const return wxRect( x, y, w, h ); } -bool wxRegion::Empty(void) const +bool wxRegion::Empty() const { return gdk_region_empty( M_REGIONDATA->m_region ); } @@ -352,7 +315,7 @@ wxRegionContain wxRegion::Contains(const wxRect& rect) const return Contains( rect.x, rect.y, rect.width, rect.height ); } -GdkRegion *wxRegion::GetRegion(void) const +GdkRegion *wxRegion::GetRegion() const { return M_REGIONDATA->m_region; } @@ -368,7 +331,7 @@ wxList *wxRegion::GetRectList() const IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject); -wxRegionIterator::wxRegionIterator(void) +wxRegionIterator::wxRegionIterator() { m_current = 0; } @@ -385,17 +348,17 @@ void wxRegionIterator::Reset( const wxRegion& region ) m_current = 0; } -wxRegionIterator::operator bool (void) const +wxRegionIterator::operator bool () const { return m_current < m_region.GetRectList()->Number(); } -bool wxRegionIterator::HaveRects(void) const +bool wxRegionIterator::HaveRects() const { return m_current < m_region.GetRectList()->Number(); } -void wxRegionIterator::operator ++ (void) +void wxRegionIterator::operator ++ () { if (m_current < m_region.GetRectList()->Number()) ++m_current; } @@ -405,7 +368,7 @@ void wxRegionIterator::operator ++ (int) if (m_current < m_region.GetRectList()->Number()) ++m_current; } -long wxRegionIterator::GetX(void) const +wxCoord wxRegionIterator::GetX() const { wxNode *node = m_region.GetRectList()->Nth( m_current ); if (!node) return 0; @@ -413,7 +376,7 @@ long wxRegionIterator::GetX(void) const return r->x; } -long wxRegionIterator::GetY(void) const +wxCoord wxRegionIterator::GetY() const { wxNode *node = m_region.GetRectList()->Nth( m_current ); if (!node) return 0; @@ -421,7 +384,7 @@ long wxRegionIterator::GetY(void) const return r->y; } -long wxRegionIterator::GetW(void) const +wxCoord wxRegionIterator::GetW() const { wxNode *node = m_region.GetRectList()->Nth( m_current ); if (!node) return 0; @@ -429,7 +392,7 @@ long wxRegionIterator::GetW(void) const return r->width; } -long wxRegionIterator::GetH(void) const +wxCoord wxRegionIterator::GetH() const { wxNode *node = m_region.GetRectList()->Nth( m_current ); if (!node) return 0;