// Purpose: interface of wxRealPoint
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
};
/**
- Standard cursors. See wxCursor.
+ Polygon filling mode. See wxDC::DrawPolygon.
+*/
+enum wxPolygonFillMode
+{
+ wxODDEVEN_RULE = 1,
+ wxWINDING_RULE
+};
+
+/**
+ Standard cursors.
+
+ Notice that under wxMSW some of these cursors are defined in @c wx.rc file
+ and not by the system itself so you should include this file from your own
+ resource file (possibly creating a trivial resource file just containing a
+ single include line if you don't need it otherwise) to be able to use them.
+
+ See wxCursor.
*/
enum wxStockCursor
{
A wxRealPoint is a useful data structure for graphics operations.
- It contains floating point @e x and @e y members. See wxPoint for an
- integer version.
+ 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
+ and that wxRealPoint functions do not perform any check against negative values.
@library{wxcore}
@category{data}
class wxRealPoint
{
public:
+ /**
+ Initializes to zero the x and y members.
+ */
wxRealPoint();
/**
*/
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.
*/
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
+ negative values.
+
@library{wxcore}
@category{data}
public:
/**
Default constructor.
+ Initializes to zero the internal @a x, @a y, @a width and @a height members.
*/
wxRect();
/**
*/
wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
/**
- Creates a wxRect object from position and @a size values.
+ Creates a wxRect object from position @a pos and @a size values.
*/
wxRect(const wxPoint& pos, const wxSize& size);
/**
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;
//@}
/**
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.
@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;
//@}
- //@{
/**
- Modifies the rectangle to contain the overlapping box of this rectangle
+ Modifies this rectangle to contain the overlapping portion of this rectangle
and the one passed in as parameter.
+
+ @return This rectangle, modified.
*/
- wxRect Intersect(const wxRect& rect) const;
wxRect& Intersect(const wxRect& rect);
- //@}
+
+ /**
+ Returns the overlapping portion of this rectangle and the one passed in as
+ parameter.
+ */
+ wxRect Intersect(const wxRect& rect) const;
/**
Returns @true if this rectangle has a non-empty intersection with the
/**
Assignment operator.
*/
- void operator =(const wxRect& rect);
+ wxRect& operator=(const wxRect& rect);
/**
Equality operator.
A wxPoint is a useful data structure for graphics operations.
- It contains integer @e x and @e y members. See wxRealPoint for a floating
- point version.
+ 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
+ and that wxPoint functions do not perform any check against negative values
+ (this is used to e.g. store the special -1 value in ::wxDefaultPosition instance).
@library{wxcore}
@category{data}
class wxPoint
{
public:
- //@{
/**
Constructs a point.
+ 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);
- //@}
/**
- Assignment operator.
+ Converts the given wxRealPoint (with floating point coordinates) to a
+ wxPoint instance.
*/
- void operator =(const wxPoint& pt);
+ 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);
bool operator ==(const wxPoint& p1, const wxPoint& p2);
bool operator !=(const wxPoint& p1, const wxPoint& p2);
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.
*/
};
/**
- 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;
/**
is, wxColour::IsOk() will return @false) if the colour wasn't found in
the database.
*/
- wxColour Find(const wxString& colourName);
+ wxColour Find(const wxString& colourName) const;
/**
Finds a colour name given the colour. Returns an empty string if the
};
+/**
+ Global instance of a wxColourDatabase.
+*/
+wxColourDatabase* wxTheColourDatabase;
+
+
/**
@class wxSize
- A wxSize is a useful data structure for graphics operations. It simply
- contains integer @e width and @e height members.
+ 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).
+ See also IsFullySpecified() and SetDefaults() for utility functions regarding
+ the special -1 value.
wxSize is used throughout wxWidgets as well as wxPoint which, although
almost equivalent to wxSize, has a different meaning: wxPoint represents a
class wxSize
{
public:
- //@{
/**
- Creates a size object.
+ Initializes this size object with zero width and height.
*/
wxSize();
+
+ /**
+ Initializes this size object with the given @a width and @a height.
+ */
wxSize(int width, int height);
- //@}
//@{
/**
@see IncBy()
*/
+ void DecBy(const wxPoint& pt);
void DecBy(const wxSize& size);
void DecBy(int dx, int dy);
void DecBy(int d);
@see DecBy()
*/
+ void IncBy(const wxPoint& pt);
void IncBy(const wxSize& size);
void IncBy(int dx, int dy);
void IncBy(int d);
*/
void SetWidth(int width);
+
/**
- Assignment operator.
+ @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.
*/
- void operator =(const wxSize& sz);
+ //@{
+ wxSize& operator=(const wxSize& sz);
bool operator ==(const wxSize& s1, const wxSize& s2);
bool operator !=(const wxSize& s1, const wxSize& s2);
wxSize operator *(int factor, const wxSize& sz);
wxSize& operator /=(int factor);
wxSize& operator *=(int factor);
+ //@}
};
/**
Global instance of a wxSize object initialized to (-1,-1).
*/
-wxSize wxDefaultSize;
+const wxSize wxDefaultSize;
// Global functions/macros
// ============================================================================
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
//@{
/**
@header{wx/gdicmn.h}
*/
-wxICON();
+#define wxICON(iconName)
/**
Returns @true if the display is colour, @false otherwise.
//@}
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
//@{
/**
Returns the dimensions of the work area on the display. On Windows this
wxRect wxGetClientDisplayRect();
//@}
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
+//@{
+/**
+ Returns the display resolution in pixels per inch.
+
+ The @c x component of the returned wxSize object contains the horizontal
+ resolution and the @c y one -- the vertical resolution.
+
+ @header{wx/gdicmn.h}
+
+ @since 2.9.0
+*/
+wxSize wxGetDisplayPPI();
+//@}
+
+/** @addtogroup group_funcmacro_gdi */
//@{
/**
Returns the display size in pixels.
+ For the version taking @a width and @a header arguments, either of them
+ can be @NULL if the caller is not interested in the returned value.
+
@header{wx/gdicmn.h}
*/
void wxDisplaySize(int* width, int* height);
wxSize wxGetDisplaySize();
//@}
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
//@{
/**
Returns the display size in millimeters.
+ For the version taking @a width and @a header arguments, either of them
+ can be @NULL if the caller is not interested in the returned value.
+
+ @see wxGetDisplayPPI()
+
@header{wx/gdicmn.h}
*/
void wxDisplaySizeMM(int* width, int* height);