]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/gdicmn.h
Remove identic implementations of wxDir::Exists from platform-specific files and...
[wxWidgets.git] / interface / wx / gdicmn.h
index fb9d647fab321829000938a5c3d0214f04ba6c18..43a4aa596ff964e12b9a5dd71e32241db078bd91 100644 (file)
@@ -49,7 +49,23 @@ enum wxBitmapType
 };
 
 /**
-    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
 {
@@ -97,8 +113,11 @@ 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}
@@ -108,13 +127,58 @@ enum wxStockCursor
 class wxRealPoint
 {
 public:
+    /**
+        Initializes to zero the x and y members.
+    */
     wxRealPoint();
 
     /**
         Initializes the point with the given coordinates.
     */
     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.
     */
@@ -133,6 +197,10 @@ 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 
+    negative values.
+
     @library{wxcore}
     @category{data}
 
@@ -143,6 +211,7 @@ class wxRect
 public:
     /**
         Default constructor.
+        Initializes to zero the internal @a x, @a y, @a width and @a height members.
     */
     wxRect();
     /**
@@ -154,7 +223,7 @@ public:
     */
     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);
     /**
@@ -311,14 +380,19 @@ public:
     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
@@ -402,7 +476,7 @@ public:
     /**
         Assignment operator.
     */
-    void operator =(const wxRect& rect);
+    wxRect& operator=(const wxRect& rect);
 
     /**
         Equality operator.
@@ -437,8 +511,12 @@ public:
 
     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}
@@ -451,18 +529,35 @@ public:
 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);
-    //@}
+    
+    /**
+        Converts the given wxRealPoint (with floating point coordinates) to a
+        wxPoint instance.
+    */
+    wxPoint(const wxRealPoint& pt);
 
     /**
-        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 wxPoint they
+        operate on as an explicit argument.
     */
-    void operator =(const wxPoint& pt);
+    //@{
+    wxPoint& operator=(const wxPoint& pt);
 
     bool operator ==(const wxPoint& p1, const wxPoint& p2);
     bool operator !=(const wxPoint& p1, const wxPoint& p2);
@@ -480,7 +575,14 @@ 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);
+    //@}
+    
     /**
         x member.
     */
@@ -612,7 +714,7 @@ public:
         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
@@ -625,8 +727,14 @@ public:
 /**
     @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
@@ -648,13 +756,15 @@ public:
 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);
-    //@}
 
     //@{
     /**
@@ -754,10 +864,19 @@ public:
     */
     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);
@@ -772,6 +891,7 @@ public:
     wxSize operator *(int factor, const wxSize& sz);
     wxSize& operator /=(int factor);
     wxSize& operator *=(int factor);
+    //@}
 };
 
 /**
@@ -786,7 +906,7 @@ wxSize wxDefaultSize;
 // Global functions/macros
 // ============================================================================
 
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
 //@{
 
 /**
@@ -809,7 +929,7 @@ wxSize wxDefaultSize;
 
     @header{wx/gdicmn.h}
 */
-wxICON();
+#define wxICON(iconName)
 
 /**
     Returns @true if the display is colour, @false otherwise.
@@ -838,7 +958,7 @@ void wxSetCursor(const wxCursor& cursor);
 
 //@}
 
-/** @ingroup group_funcmacro_gdi */
+/** @addtogroup group_funcmacro_gdi */
 //@{
 /**
     Returns the dimensions of the work area on the display. On Windows this
@@ -852,11 +972,14 @@ void wxClientDisplayRect(int* x, int* y, int* width, int* height);
 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
@@ -864,22 +987,30 @@ wxRect wxGetClientDisplayRect();
 wxSize wxGetDisplayPPI();
 //@}
 
-/** @ingroup group_funcmacro_gdi */
+/** @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);