X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cb332c1553bb977cb8db16c19c733684ef72805..2de77c6a543caf44069b275dd154d4fc692ad29d:/include/wx/gdicmn.h diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h index 154c6652c4..47de6eefbb 100644 --- a/include/wx/gdicmn.h +++ b/include/wx/gdicmn.h @@ -255,10 +255,12 @@ public: { if ( sz.x < x ) x = sz.x; if ( sz.y < y ) y = sz.y; } void IncBy(int dx, int dy) { x += dx; y += dy; } + void IncBy(const wxPoint& pt); void IncBy(const wxSize& sz) { IncBy(sz.x, sz.y); } void IncBy(int d) { IncBy(d, d); } void DecBy(int dx, int dy) { IncBy(-dx, -dy); } + void DecBy(const wxPoint& pt); void DecBy(const wxSize& sz) { DecBy(sz.x, sz.y); } void DecBy(int d) { DecBy(d, d); } @@ -396,7 +398,7 @@ public: wxRealPoint() : x(0.0), y(0.0) { } wxRealPoint(double xx, double yy) : x(xx), y(yy) { } wxRealPoint(const wxPoint& pt); - + // no copy ctor or assignment operator - the defaults are ok //assignment operators @@ -522,6 +524,18 @@ public: wxPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; } wxPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; } + + // check if both components are set/initialized + bool IsFullySpecified() const { return x != wxDefaultCoord && y != wxDefaultCoord; } + + // fill in the unset components with the values from the other point + void SetDefaults(const wxPoint& pt) + { + if ( x == wxDefaultCoord ) + x = pt.x; + if ( y == wxDefaultCoord ) + y = pt.y; + } }; @@ -827,6 +841,11 @@ inline bool wxRect::Inside(const wxRect& rect) const { return Contains(rect); } #endif // WXWIN_COMPATIBILITY_2_6 +// define functions which couldn't be defined above because of declarations +// order +inline void wxSize::IncBy(const wxPoint& pt) { IncBy(pt.x, pt.y); } +inline void wxSize::DecBy(const wxPoint& pt) { DecBy(pt.x, pt.y); } + // --------------------------------------------------------------------------- // Management of pens, brushes and fonts // ---------------------------------------------------------------------------