Add wxSize::IncBy() and DecBy() overloads taking wxPoint.

It seems to make at least as much sense to extend a wxSize by wxPoint than by
another wxSize (which doesn't make much size to me...) so add Inc/DecBy()
overloads doing this.

We might also add operator+=() overloads taking wxPoint for consistency but
for now don't add more operator overloads unnecessarily, let's wait if anybody
asks about this first.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64883 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-07-11 10:44:03 +00:00
parent e61fedabe7
commit 89b799cccf
2 changed files with 29 additions and 20 deletions

View File

@@ -255,10 +255,12 @@ public:
{ if ( sz.x < x ) x = sz.x; if ( sz.y < y ) y = sz.y; } { 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(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(const wxSize& sz) { IncBy(sz.x, sz.y); }
void IncBy(int d) { IncBy(d, d); } void IncBy(int d) { IncBy(d, d); }
void DecBy(int dx, int dy) { IncBy(-dx, -dy); } 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(const wxSize& sz) { DecBy(sz.x, sz.y); }
void DecBy(int d) { DecBy(d, d); } void DecBy(int d) { DecBy(d, d); }
@@ -396,7 +398,7 @@ public:
wxRealPoint() : x(0.0), y(0.0) { } wxRealPoint() : x(0.0), y(0.0) { }
wxRealPoint(double xx, double yy) : x(xx), y(yy) { } wxRealPoint(double xx, double yy) : x(xx), y(yy) { }
wxRealPoint(const wxPoint& pt); wxRealPoint(const wxPoint& pt);
// no copy ctor or assignment operator - the defaults are ok // no copy ctor or assignment operator - the defaults are ok
//assignment operators //assignment operators
@@ -827,6 +829,11 @@ inline bool wxRect::Inside(const wxRect& rect) const { return Contains(rect); }
#endif // WXWIN_COMPATIBILITY_2_6 #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 // Management of pens, brushes and fonts
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View File

@@ -113,10 +113,10 @@ enum wxStockCursor
A wxRealPoint is a useful data structure for graphics operations. A wxRealPoint is a useful data structure for graphics operations.
It contains floating point @e x and @e y members. It contains floating point @e x and @e y members.
See wxPoint for an integer version. See wxPoint for an integer version.
Note that the coordinates stored inside a wxRealPoint object may be negative Note that the coordinates stored inside a wxRealPoint object may be negative
and that wxRealPoint functions do not perform any check against negative values. and that wxRealPoint functions do not perform any check against negative values.
@library{wxcore} @library{wxcore}
@@ -136,7 +136,7 @@ public:
Initializes the point with the given coordinates. Initializes the point with the given coordinates.
*/ */
wxRealPoint(double x, double y); wxRealPoint(double x, double y);
/** /**
Converts the given wxPoint (with integer coordinates) to a wxRealPoint. Converts the given wxPoint (with integer coordinates) to a wxRealPoint.
*/ */
@@ -144,7 +144,7 @@ public:
/** /**
@name Miscellaneous operators @name Miscellaneous operators
Note that these operators are documented as class members Note that these operators are documented as class members
(to make them easier to find) but, as their prototype shows, (to make them easier to find) but, as their prototype shows,
they are implemented as global operators; note that this is they are implemented as global operators; note that this is
@@ -171,14 +171,14 @@ public:
wxRealPoint& operator +=(const wxSize& sz); wxRealPoint& operator +=(const wxSize& sz);
wxRealPoint& operator -=(const wxSize& sz); wxRealPoint& operator -=(const wxSize& sz);
wxSize operator /(const wxRealPoint& sz, int factor); wxSize operator /(const wxRealPoint& sz, int factor);
wxSize operator *(const wxRealPoint& sz, int factor); wxSize operator *(const wxRealPoint& sz, int factor);
wxSize operator *(int factor, const wxSize& sz); wxSize operator *(int factor, const wxSize& sz);
wxSize& operator /=(int factor); wxSize& operator /=(int factor);
wxSize& operator *=(int factor); wxSize& operator *=(int factor);
//@} //@}
/** /**
X coordinate of this point. X coordinate of this point.
*/ */
@@ -197,8 +197,8 @@ public:
A class for manipulating rectangles. A class for manipulating rectangles.
Note that the x, y coordinates and the width and height stored inside a wxRect Note that the x, y coordinates and the width and height stored inside a wxRect
object may be negative and that wxRect functions do not perform any check against object may be negative and that wxRect functions do not perform any check against
negative values. negative values.
@library{wxcore} @library{wxcore}
@@ -511,7 +511,7 @@ public:
A wxPoint is a useful data structure for graphics operations. A wxPoint is a useful data structure for graphics operations.
It contains integer @e x and @e y members. It contains integer @e x and @e y members.
See wxRealPoint for a floating point version. See wxRealPoint for a floating point version.
Note that the width and height stored inside a wxPoint object may be negative Note that the width and height stored inside a wxPoint object may be negative
@@ -534,12 +534,12 @@ public:
Initializes the internal x and y coordinates to zero. Initializes the internal x and y coordinates to zero.
*/ */
wxPoint(); wxPoint();
/** /**
Initializes the point object with the given @a x and @a y coordinates. Initializes the point object with the given @a x and @a y coordinates.
*/ */
wxPoint(int x, int y); wxPoint(int x, int y);
/** /**
Converts the given wxRealPoint (with floating point coordinates) to a Converts the given wxRealPoint (with floating point coordinates) to a
wxPoint instance. wxPoint instance.
@@ -548,7 +548,7 @@ public:
/** /**
@name Miscellaneous operators @name Miscellaneous operators
Note that these operators are documented as class members Note that these operators are documented as class members
(to make them easier to find) but, as their prototype shows, (to make them easier to find) but, as their prototype shows,
they are implemented as global operators; note that this is they are implemented as global operators; note that this is
@@ -575,14 +575,14 @@ public:
wxPoint& operator +=(const wxSize& sz); wxPoint& operator +=(const wxSize& sz);
wxPoint& operator -=(const wxSize& sz); wxPoint& operator -=(const wxSize& sz);
wxSize operator /(const wxPoint& sz, int factor); wxSize operator /(const wxPoint& sz, int factor);
wxSize operator *(const wxPoint& sz, int factor); wxSize operator *(const wxPoint& sz, int factor);
wxSize operator *(int factor, const wxSize& sz); wxSize operator *(int factor, const wxSize& sz);
wxSize& operator /=(int factor); wxSize& operator /=(int factor);
wxSize& operator *=(int factor); wxSize& operator *=(int factor);
//@} //@}
/** /**
x member. x member.
*/ */
@@ -727,9 +727,9 @@ public:
/** /**
@class wxSize @class wxSize
A wxSize is a useful data structure for graphics operations. A wxSize is a useful data structure for graphics operations.
It simply contains integer @e width and @e height members. It simply contains integer @e width and @e height members.
Note that the width and height stored inside a wxSize object may be negative Note that the width and height stored inside a wxSize object may be negative
and that wxSize functions do not perform any check against negative values and that wxSize functions do not perform any check against negative values
(this is used to e.g. store the special -1 value in ::wxDefaultSize instance). (this is used to e.g. store the special -1 value in ::wxDefaultSize instance).
@@ -760,7 +760,7 @@ public:
Initializes this size object with zero width and height. Initializes this size object with zero width and height.
*/ */
wxSize(); wxSize();
/** /**
Initializes this size object with the given @a width and @a height. Initializes this size object with the given @a width and @a height.
*/ */
@@ -772,6 +772,7 @@ public:
@see IncBy() @see IncBy()
*/ */
void DecBy(const wxPoint& pt);
void DecBy(const wxSize& size); void DecBy(const wxSize& size);
void DecBy(int dx, int dy); void DecBy(int dx, int dy);
void DecBy(int d); void DecBy(int d);
@@ -801,6 +802,7 @@ public:
@see DecBy() @see DecBy()
*/ */
void IncBy(const wxPoint& pt);
void IncBy(const wxSize& size); void IncBy(const wxSize& size);
void IncBy(int dx, int dy); void IncBy(int dx, int dy);
void IncBy(int d); void IncBy(int d);
@@ -864,10 +866,10 @@ public:
*/ */
void SetWidth(int width); void SetWidth(int width);
/** /**
@name Miscellaneous operators @name Miscellaneous operators
Note that these operators are documented as class members Note that these operators are documented as class members
(to make them easier to find) but, as their prototype shows, (to make them easier to find) but, as their prototype shows,
they are implemented as global operators; note that this is they are implemented as global operators; note that this is