Increase interoperability between wxPoint and wxRealPoint introducing constructors which convert between the two classes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64539 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2010-06-09 18:03:27 +00:00
parent 6f32f3cea2
commit a5664fd6ef
3 changed files with 64 additions and 0 deletions

View File

@@ -395,6 +395,16 @@ 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
wxRealPoint& operator+=(const wxRealPoint& p) { x += p.x; y += p.y; return *this; }
wxRealPoint& operator-=(const wxRealPoint& p) { x -= p.x; y -= p.y; return *this; }
wxRealPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; }
wxRealPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; }
};
@@ -502,6 +512,7 @@ public:
wxPoint() : x(0), y(0) { }
wxPoint(int xx, int yy) : x(xx), y(yy) { }
wxPoint(const wxRealPoint& pt) : x(pt.x), y(pt.y) { }
// no copy ctor or assignment operator - the defaults are ok

View File

@@ -137,6 +137,48 @@ public:
*/
wxRealPoint(double x, double y);
/**
Converts the given wxPoint (with integer coordinates) to a wxRealPoint.
*/
wxRealPoint(const wxPoint& pt);
/**
@name Miscellaneous operators
Note that these operators are documented as class members
(to make them easier to find) but, as their prototype shows,
they are implemented as global operators; note that this is
transparent to the user but it helps to understand why the
following functions are documented to take the wxPoint they
operate on as an explicit argument.
*/
//@{
wxRealPoint& operator=(const wxRealPoint& pt);
bool operator ==(const wxRealPoint& p1, const wxRealPoint& p2);
bool operator !=(const wxRealPoint& p1, const wxRealPoint& p2);
wxRealPoint operator +(const wxRealPoint& p1, const wxRealPoint& p2);
wxRealPoint operator -(const wxRealPoint& p1, const wxRealPoint& p2);
wxRealPoint& operator +=(const wxRealPoint& pt);
wxRealPoint& operator -=(const wxRealPoint& pt);
wxRealPoint operator +(const wxRealPoint& pt, const wxSize& sz);
wxRealPoint operator -(const wxRealPoint& pt, const wxSize& sz);
wxRealPoint operator +(const wxSize& sz, const wxRealPoint& pt);
wxRealPoint operator -(const wxSize& sz, const wxRealPoint& pt);
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 *(int factor, const wxSize& sz);
wxSize& operator /=(int factor);
wxSize& operator *=(int factor);
//@}
/**
X coordinate of this point.
*/
@@ -498,6 +540,12 @@ public:
*/
wxPoint(int x, int y);
/**
Converts the given wxRealPoint (with floating point coordinates) to a
wxPoint instance.
*/
wxPoint(const wxRealPoint& pt);
/**
@name Miscellaneous operators

View File

@@ -252,6 +252,11 @@ wxRect operator*(const wxRect& r1, const wxRect& r2)
return wxRect(x1, y1, x2-x1, y2-y1);
}
wxRealPoint::wxRealPoint(const wxPoint& pt)
: x(pt.x), y(pt.y)
{
}
// ============================================================================
// wxColourDatabase
// ============================================================================