X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6b2f55531a7ed7fc286aae49efc8d123c7ae8ed8..968a7de2c5da97f4fba0ca29957f75a0bba92ae2:/interface/wx/gdicmn.h diff --git a/interface/wx/gdicmn.h b/interface/wx/gdicmn.h index 2c5d6a7994..b660421374 100644 --- a/interface/wx/gdicmn.h +++ b/interface/wx/gdicmn.h @@ -3,7 +3,7 @@ // Purpose: interface of wxRealPoint // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -113,10 +113,10 @@ enum wxStockCursor 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. - 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. @library{wxcore} @@ -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. */ @@ -155,8 +197,8 @@ public: A class for manipulating rectangles. - 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 + 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 negative values. @library{wxcore} @@ -224,10 +266,10 @@ public: This method is the opposite from Inflate(): Deflate(a, b) is equivalent to Inflate(-a, -b). Please refer to Inflate() for full description. */ - void Deflate(wxCoord dx, wxCoord dy); - void Deflate(const wxSize& diff); - void Deflate(wxCoord diff); - wxRect Deflate(wxCoord dx, wxCoord dy) const; + wxRect& Deflate(wxCoord dx, wxCoord dy); + wxRect& Deflate(const wxSize& diff); + wxRect& Deflate(wxCoord diff); + wxRect Deflate(wxCoord dx, wxCoord dy) const; //@} /** @@ -309,7 +351,7 @@ public: The left border is moved farther left and the right border is moved farther right by @a dx. The upper border is moved farther up and the - bottom border is moved farther down by @a dy. (Note the the width and + bottom border is moved farther down by @a dy. (Note that the width and height of the rectangle thus change by 2*dx and 2*dy, respectively.) If one or both of @a dx and @a dy are negative, the opposite happens: the rectangle size decreases in the respective direction. @@ -332,9 +374,9 @@ public: @see Deflate() */ - void Inflate(wxCoord dx, wxCoord dy); - void Inflate(const wxSize& diff); - void Inflate(wxCoord diff); + wxRect& Inflate(wxCoord dx, wxCoord dy); + wxRect& Inflate(const wxSize& diff); + wxRect& Inflate(wxCoord diff); wxRect Inflate(wxCoord dx, wxCoord dy) const; //@} @@ -469,7 +511,7 @@ public: 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. Note that the width and height stored inside a wxPoint object may be negative @@ -492,14 +534,27 @@ public: Initializes the internal x and y coordinates to zero. */ wxPoint(); - + /** Initializes the point object with the given @a x and @a y coordinates. */ wxPoint(int x, int y); + /** + Converts the given wxRealPoint (with floating point coordinates) to a + wxPoint instance. + */ + wxPoint(const wxRealPoint& 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. */ //@{ wxPoint& operator=(const wxPoint& pt); @@ -520,8 +575,57 @@ public: 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 *(int factor, const wxSize& sz); + wxSize& operator /=(int factor); + wxSize& operator *=(int factor); //@} - + + + /** + @name Defaults handling. + + Test for and set non-specified wxPoint components. + + Although a wxPoint is always initialized to (0, 0), wxWidgets commonly + uses wxDefaultCoord (defined as @c -1) to indicate that a point hasn't + been initialized or specified. In particular, ::wxDefaultPosition is + used in many places with this meaning. + */ + //@{ + + /** + Returns @true if neither of the point components is equal to + wxDefaultCoord. + + This method is typically used before calling SetDefaults(). + + @since 2.9.2 + */ + bool IsFullySpecified() const; + + /** + Combine this object with another one replacing the uninitialized + values. + + It is typically used like this: + + @code + if ( !pos.IsFullySpecified() ) + { + pos.SetDefaults(GetDefaultPosition()); + } + @endcode + + @see IsFullySpecified() + + @since 2.9.2 + */ + void SetDefaults(const wxPoint& pt); + //@} + /** x member. */ @@ -534,9 +638,9 @@ public: }; /** - Global istance of a wxPoint initialized with values (-1,-1). + Global instance of a wxPoint initialized with values (-1,-1). */ -wxPoint wxDefaultPosition; +const wxPoint wxDefaultPosition; /** @@ -663,12 +767,18 @@ public: }; +/** + Global instance of a wxColourDatabase. +*/ +wxColourDatabase* wxTheColourDatabase; + + /** @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. - + 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 (this is used to e.g. store the special -1 value in ::wxDefaultSize instance). @@ -699,7 +809,7 @@ public: Initializes this size object with zero width and height. */ wxSize(); - + /** Initializes this size object with the given @a width and @a height. */ @@ -711,6 +821,7 @@ public: @see IncBy() */ + void DecBy(const wxPoint& pt); void DecBy(const wxSize& size); void DecBy(int dx, int dy); void DecBy(int d); @@ -740,6 +851,7 @@ public: @see DecBy() */ + void IncBy(const wxPoint& pt); void IncBy(const wxSize& size); void IncBy(int dx, int dy); void IncBy(int d); @@ -803,9 +915,16 @@ public: */ void SetWidth(int width); - + /** @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 wxSize they + operate on as an explicit argument. */ //@{ wxSize& operator=(const wxSize& sz); @@ -829,7 +948,7 @@ public: /** Global instance of a wxSize object initialized to (-1,-1). */ -wxSize wxDefaultSize; +const wxSize wxDefaultSize;