X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/527343602e91d60c65fb7589a6ddcf4683930c78..34075dba7c0e34bcc2836fc3856f231272a2d8b2:/src/common/gdicmn.cpp diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp index 0214f8cad3..fb3f055d0e 100644 --- a/src/common/gdicmn.cpp +++ b/src/common/gdicmn.cpp @@ -58,6 +58,10 @@ WXDLLIMPEXP_DATA_CORE(wxIconBundle) wxNullIconBundle; const wxSize wxDefaultSize(wxDefaultCoord, wxDefaultCoord); const wxPoint wxDefaultPosition(wxDefaultCoord, wxDefaultCoord); +#include "wx/listimpl.cpp" +WX_DEFINE_LIST(wxPointList) + + #if wxUSE_EXTENDED_RTTI // wxPoint @@ -110,23 +114,6 @@ wxRect::wxRect(const wxPoint& point1, const wxPoint& point2) height++; } -bool wxRect::operator==(const wxRect& rect) const -{ - return ((x == rect.x) && - (y == rect.y) && - (width == rect.width) && - (height == rect.height)); -} - -wxRect wxRect::operator+(const wxRect& rect) const -{ - int x1 = wxMin(this->x, rect.x); - int y1 = wxMin(this->y, rect.y); - int y2 = wxMax(y+height, rect.height+rect.y); - int x2 = wxMax(x+width, rect.width+rect.x); - return wxRect(x1, y1, x2-x1, y2-y1); -} - wxRect& wxRect::Union(const wxRect& rect) { // ignore empty rectangles: union with an empty rectangle shouldn't extend @@ -232,6 +219,38 @@ bool wxRect::Intersects(const wxRect& rect) const return r.width != 0; } +wxRect& wxRect::operator+=(const wxRect& rect) +{ + *this = *this + rect; + return *this; +} + + +wxRect& wxRect::operator*=(const wxRect& rect) +{ + *this = *this * rect; + return *this; +} + + +wxRect operator+(const wxRect& r1, const wxRect& r2) +{ + int x1 = wxMin(r1.x, r2.x); + int y1 = wxMin(r1.y, r2.y); + int y2 = wxMax(r1.y+r1.height, r2.height+r2.y); + int x2 = wxMax(r1.x+r1.width, r2.width+r2.x); + return wxRect(x1, y1, x2-x1, y2-y1); +} + +wxRect operator*(const wxRect& r1, const wxRect& r2) +{ + int x1 = wxMax(r1.x, r2.x); + int y1 = wxMax(r1.y, r2.y); + int y2 = wxMin(r1.y+r1.height, r2.height+r2.y); + int x2 = wxMin(r1.x+r1.width, r2.width+r2.x); + return wxRect(x1, y1, x2-x1, y2-y1); +} + // ============================================================================ // wxColourDatabase // ============================================================================ @@ -717,16 +736,15 @@ wxGDIObjListBase::~wxGDIObjListBase() wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, int style) { - for (wxList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext()) + for ( wxList::compatibility_iterator node = list.GetFirst(); + node; + node = node->GetNext() ) { - wxPen *each_pen = (wxPen *) node->GetData (); - if ( - each_pen->GetWidth () == width && - each_pen->GetStyle () == style && - each_pen->GetColour ().Red () == colour.Red () && - each_pen->GetColour ().Green () == colour.Green () && - each_pen->GetColour ().Blue () == colour.Blue ()) - return each_pen; + wxPen * const pen = (wxPen *) node->GetData(); + if ( pen->GetWidth () == width && + pen->GetStyle () == style && + pen->GetColour() == colour ) + return pen; } wxPen* pen = NULL; @@ -742,15 +760,13 @@ wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, int style) wxBrush *wxBrushList::FindOrCreateBrush (const wxColour& colour, int style) { - for (wxList::compatibility_iterator node = list.GetFirst(); node; node = node->GetNext()) + for ( wxList::compatibility_iterator node = list.GetFirst(); + node; + node = node->GetNext() ) { - wxBrush *each_brush = (wxBrush *) node->GetData (); - if ( - each_brush->GetStyle () == style && - each_brush->GetColour ().Red () == colour.Red () && - each_brush->GetColour ().Green () == colour.Green () && - each_brush->GetColour ().Blue () == colour.Blue ()) - return each_brush; + wxBrush * const brush = (wxBrush *) node->GetData (); + if ( brush->GetStyle () == style && brush->GetColour() == colour ) + return brush; } wxBrush* brush = NULL;