]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/gdicmn.h
Minor doc corrections for [q-r] in ticket #9581 (most of the patch was applied alread...
[wxWidgets.git] / interface / gdicmn.h
index f372fd5aa0a8517bacf27705e1e370d2580331e2..f415ecf9d81259c728e1b0179d9baa595bec6040 100644 (file)
 /////////////////////////////////////////////////////////////////////////////
 // Name:        gdicmn.h
-// Purpose:     documentation for wxRealPoint class
+// Purpose:     interface of wxRealPoint
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/**
+    Bitmap type flags. See wxBitmap and wxImage classes.
+*/
+enum wxBitmapType
+{
+    wxBITMAP_TYPE_INVALID,
+    wxBITMAP_TYPE_BMP,
+    wxBITMAP_TYPE_BMP_RESOURCE,
+    wxBITMAP_TYPE_RESOURCE = wxBITMAP_TYPE_BMP_RESOURCE,
+    wxBITMAP_TYPE_ICO,
+    wxBITMAP_TYPE_ICO_RESOURCE,
+    wxBITMAP_TYPE_CUR,
+    wxBITMAP_TYPE_CUR_RESOURCE,
+    wxBITMAP_TYPE_XBM,
+    wxBITMAP_TYPE_XBM_DATA,
+    wxBITMAP_TYPE_XPM,
+    wxBITMAP_TYPE_XPM_DATA,
+    wxBITMAP_TYPE_TIF,
+    wxBITMAP_TYPE_TIF_RESOURCE,
+    wxBITMAP_TYPE_GIF,
+    wxBITMAP_TYPE_GIF_RESOURCE,
+    wxBITMAP_TYPE_PNG,
+    wxBITMAP_TYPE_PNG_RESOURCE,
+    wxBITMAP_TYPE_JPEG,
+    wxBITMAP_TYPE_JPEG_RESOURCE,
+    wxBITMAP_TYPE_PNM,
+    wxBITMAP_TYPE_PNM_RESOURCE,
+    wxBITMAP_TYPE_PCX,
+    wxBITMAP_TYPE_PCX_RESOURCE,
+    wxBITMAP_TYPE_PICT,
+    wxBITMAP_TYPE_PICT_RESOURCE,
+    wxBITMAP_TYPE_ICON,
+    wxBITMAP_TYPE_ICON_RESOURCE,
+    wxBITMAP_TYPE_ANI,
+    wxBITMAP_TYPE_IFF,
+    wxBITMAP_TYPE_TGA,
+    wxBITMAP_TYPE_MACCURSOR,
+    wxBITMAP_TYPE_MACCURSOR_RESOURCE,
+    wxBITMAP_TYPE_ANY = 50
+};
+
+/**
+    Standard cursors. See wxCursor.
+*/
+enum wxStockCursor
+{
+    wxCURSOR_NONE,
+    wxCURSOR_ARROW,             ///< A standard arrow cursor.
+    wxCURSOR_RIGHT_ARROW,       ///< A standard arrow cursor pointing to the right.
+    wxCURSOR_BULLSEYE,          ///< Bullseye cursor.
+    wxCURSOR_CHAR,              ///< Rectangular character cursor.
+    wxCURSOR_CROSS,             ///< A cross cursor.
+    wxCURSOR_HAND,              ///< A hand cursor.
+    wxCURSOR_IBEAM,             ///< An I-beam cursor (vertical line).
+    wxCURSOR_LEFT_BUTTON,       ///< Represents a mouse with the left button depressed.
+    wxCURSOR_MAGNIFIER,         ///< A magnifier icon.
+    wxCURSOR_MIDDLE_BUTTON,     ///< Represents a mouse with the middle button depressed.
+    wxCURSOR_NO_ENTRY,          ///< A no-entry sign cursor.
+    wxCURSOR_PAINT_BRUSH,       ///< A paintbrush cursor.
+    wxCURSOR_PENCIL,            ///< A pencil cursor.
+    wxCURSOR_POINT_LEFT,        ///< A cursor that points left.
+    wxCURSOR_POINT_RIGHT,       ///< A cursor that points right.
+    wxCURSOR_QUESTION_ARROW,    ///< An arrow and question mark.
+    wxCURSOR_RIGHT_BUTTON,      ///< Represents a mouse with the right button depressed.
+    wxCURSOR_SIZENESW,          ///< A sizing cursor pointing NE-SW.
+    wxCURSOR_SIZENS,            ///< A sizing cursor pointing N-S.
+    wxCURSOR_SIZENWSE,          ///< A sizing cursor pointing NW-SE.
+    wxCURSOR_SIZEWE,            ///< A sizing cursor pointing W-E.
+    wxCURSOR_SIZING,            ///< A general sizing cursor.
+    wxCURSOR_SPRAYCAN,          ///< A spraycan cursor.
+    wxCURSOR_WAIT,              ///< A wait cursor.
+    wxCURSOR_WATCH,             ///< A watch cursor.
+    wxCURSOR_BLANK,             ///< Transparent cursor.
+    wxCURSOR_DEFAULT,           ///< Standard X11 cursor (only in wxGTK).
+    wxCURSOR_COPY_ARROW ,       ///< MacOS Theme Plus arrow (only in wxMac).
+    wxCURSOR_CROSS_REVERSE,     ///< Only available on wxX11.
+    wxCURSOR_DOUBLE_ARROW,      ///< Only available on wxX11.
+    wxCURSOR_BASED_ARROW_UP,    ///< Only available on wxX11.
+    wxCURSOR_BASED_ARROW_DOWN,  ///< Only available on wxX11.
+    wxCURSOR_ARROWWAIT,         ///< A wait cursor with a standard arrow.
+    wxCURSOR_MAX
+};
+
+
+
 /**
     @class wxRealPoint
     @wxheader{gdicmn.h}
 
-    A @b wxRealPoint is a useful data structure for graphics operations.
-    It contains floating point @e x and @e y members.
-    See also wxPoint for an integer version.
+    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.
 
     @library{wxcore}
     @category{data}
 
-    @seealso
-    wxPoint
+    @see wxPoint
 */
 class wxRealPoint
 {
 public:
-    //@{
+    wxRealPoint();
+
     /**
-        Create a point.
-        
-        double  x
-        
-        double  y
-        
-        Members of the @b wxRealPoint object.
+        Initializes the point with the given coordinates.
     */
-    wxRealPoint();
     wxRealPoint(double x, double y);
-    //@}
+
+    /**
+        X coordinate of this point.
+    */
+    double x;
+
+    /**
+        Y coordinate of this point.
+    */
+    double y;
 };
 
 
+
 /**
     @class wxRect
     @wxheader{gdicmn.h}
@@ -48,202 +138,206 @@ public:
     @library{wxcore}
     @category{data}
 
-    @seealso
-    wxPoint, wxSize
+    @see wxPoint, wxSize
 */
 class wxRect
 {
 public:
-    //@{
     /**
-        Creates a wxRect object from size values at the origin.
+        Default constructor.
     */
     wxRect();
+    /**
+        Creates a wxRect object from @a x, @a y, @a width and @a height values.
+    */
     wxRect(int x, int y, int width, int height);
+    /**
+        Creates a wxRect object from top-left and bottom-right points.
+    */
     wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
+    /**
+        Creates a wxRect object from position and @a size values.
+    */
     wxRect(const wxPoint& pos, const wxSize& size);
+    /**
+        Creates a wxRect object from @a size values at the origin.
+    */
     wxRect(const wxSize& size);
-    //@}
 
     //@{
     /**
-        Returns the rectangle having the same size as this one but centered relatively
-        to the given rectangle @e r. By default, rectangle is centred in both
-        directions but if @e dir includes only @c wxVERTICAL or only
-        @c wxHORIZONTAL flag, then it is only centered in this direction while
+        Returns the rectangle having the same size as this one but centered
+        relatively to the given rectangle @a r. By default, rectangle is
+        centred in both directions but if @a dir includes only @c wxVERTICAL or
+        only @c wxHORIZONTAL, then it is only centered in this direction while
         the other component of its position remains unchanged.
     */
-    wxRect CentreIn(const wxRect& r, int dir = wxBOTH);
-    wxRect CenterIn(const wxRect& r, int dir = wxBOTH);
+    wxRect CentreIn(const wxRect& r, int dir = wxBOTH) const;
+    wxRect CenterIn(const wxRect& r, int dir = wxBOTH) const;
     //@}
 
-    //@{
     /**
-        Returns @true if the given rectangle is completely inside this rectangle
-        (or touches its boundary) and @false otherwise.
+        Returns @true if the given point is inside the rectangle (or on its
+        boundary) and @false otherwise.
     */
-    bool Contains(int x, int y);
-    bool Contains(const wxPoint& pt);
-    bool Contains(const wxRect& rect);
-    //@}
+    bool Contains(int x, int y) const;
+    /**
+        Returns @true if the given point is inside the rectangle (or on its
+        boundary) and @false otherwise.
+    */
+    bool Contains(const wxPoint& pt) const;
+    /**
+        Returns @true if the given rectangle is completely inside this
+        rectangle (or touches its boundary) and @false otherwise.
+    */
+    bool Contains(const wxRect& rect) const;
 
     //@{
     /**
         Decrease the rectangle size.
-        
-        This method is the opposite from Inflate():
-        Deflate(a, b) is equivalent to Inflate(-a, -b).
-        Please refer to Inflate() for full description.
-        
-        @sa Inflate()
+
+        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);
+    wxRect Deflate(wxCoord dx, wxCoord dy) const;
     //@}
 
     /**
         Gets the bottom point of the rectangle.
     */
-    int GetBottom();
+    int GetBottom() const;
 
     /**
         Gets the position of the bottom left corner.
     */
-    wxPoint GetBottomLeft();
+    wxPoint GetBottomLeft() const;
 
     /**
         Gets the position of the bottom right corner.
     */
-    wxPoint GetBottomRight();
+    wxPoint GetBottomRight() const;
 
     /**
         Gets the height member.
     */
-    int GetHeight();
+    int GetHeight() const;
 
     /**
-        Gets the left point of the rectangle (the same as wxRect::GetX).
+        Gets the left point of the rectangle (the same as GetX()).
     */
-    int GetLeft();
+    int GetLeft() const;
 
     /**
         Gets the position.
     */
-    wxPoint GetPosition();
+    wxPoint GetPosition() const;
 
     /**
         Gets the right point of the rectangle.
     */
-    int GetRight();
+    int GetRight() const;
 
     /**
         Gets the size.
-        
-        @sa SetSize()
+
+        @see SetSize()
     */
-    wxSize GetSize();
+    wxSize GetSize() const;
 
     /**
-        Gets the top point of the rectangle (the same as wxRect::GetY).
+        Gets the top point of the rectangle (the same as GetY()).
     */
-    int GetTop();
+    int GetTop() const;
 
     /**
         Gets the position of the top left corner of the rectangle, same as
         GetPosition().
     */
-    wxPoint GetTopLeft();
+    wxPoint GetTopLeft() const;
 
     /**
         Gets the position of the top right corner.
     */
-    wxPoint GetTopRight();
+    wxPoint GetTopRight() const;
 
     /**
         Gets the width member.
     */
-    int GetWidth();
+    int GetWidth() const;
 
     /**
         Gets the x member.
     */
-#define int GetX()     /* implementation is private */
+    int GetX() const;
 
     /**
         Gets the y member.
     */
-#define int GetY()     /* implementation is private */
+    int GetY() const;
 
     //@{
     /**
         Increases the size of the rectangle.
-        
-        The second form uses the same @e diff for both @e dx and @e dy.
-        
-        The first two versions modify the rectangle in place, the last one returns a
-        new rectangle leaving this one unchanged.
-        
-        The left border is moved farther left and the right border is moved farther
-        right by @e dx. The upper border is moved farther up and the bottom border
-        is moved farther down by @e dy. (Note the the width and height of the
-        rectangle thus change by 2*@e dx and 2*@e dy, respectively.) If one or
-        both of @e dx and @e dy are negative, the opposite happens: the rectangle
-        size decreases in the respective direction.
-        
-        Inflating and deflating behaves "naturally''. Defined more precisely, that
-        means:
-        
-             "Real'' inflates (that is, @e dx and/or @e dy = 0) are not
-                constrained. Thus inflating a rectangle can cause its upper left corner
-                to move into the negative numbers. (the versions prior to 2.5.4 forced
-                the top left coordinate to not fall below (0, 0), which implied a
-                forced move of the rectangle.)
-        
-             Deflates are clamped to not reduce the width or height of the
-                rectangle below zero. In such cases, the top-left corner is nonetheless
-                handled properly. For example, a rectangle at (10, 10) with size (20,
-                40) that is inflated by (-15, -15) will become located at (20, 25) at
-                size (0, 10). Finally, observe that the width and height are treated
-                independently. In the above example, the width is reduced by 20,
-                whereas the height is reduced by the full 30 (rather than also stopping
-                at 20, when the width reached zero).
-        
-        @sa Deflate()
+
+        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
+        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.
+
+        Inflating and deflating behaves "naturally". Defined more precisely,
+        that means:
+        -# "Real" inflates (that is, @a dx and/or @a dy = 0) are not
+           constrained. Thus inflating a rectangle can cause its upper left
+           corner to move into the negative numbers. (2.5.4 and older forced
+           the top left coordinate to not fall below (0, 0), which implied a
+           forced move of the rectangle.)
+        -# Deflates are clamped to not reduce the width or height of the
+           rectangle below zero. In such cases, the top-left corner is
+           nonetheless handled properly. For example, a rectangle at (10, 10)
+           with size (20, 40) that is inflated by (-15, -15) will become
+           located at (20, 25) at size (0, 10). Finally, observe that the width
+           and height are treated independently. In the above example, the
+           width is reduced by 20, whereas the height is reduced by the full 30
+           (rather than also stopping at 20, when the width reached zero).
+
+        @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(wxCoord dx, wxCoord dy) const;
     //@}
 
     //@{
     /**
-        Modifies the rectangle to contain the overlapping box of this rectangle and the
-        one passed in as parameter. The const version returns the new rectangle, the
-        other one modifies this rectangle in place.
+        Modifies the rectangle to contain the overlapping box of this rectangle
+        and the one passed in as parameter.
     */
-    wxRect Intersect(const wxRect& rect);
-    wxRect Intersect(const wxRect& rect);
+    wxRect Intersect(const wxRect& rect) const;
+    wxRect& Intersect(const wxRect& rect);
     //@}
 
     /**
         Returns @true if this rectangle has a non-empty intersection with the
-        rectangle @e rect and @false otherwise.
+        rectangle @a rect and @false otherwise.
     */
-    bool Intersects(const wxRect& rect);
+    bool Intersects(const wxRect& rect) const;
 
     /**
-        Returns @true if this rectangle has a width or height less than or equal to
-        0 and @false otherwise.
+        Returns @true if this rectangle has a width or height less than or
+        equal to 0 and @false otherwise.
     */
-    bool IsEmpty();
+    bool IsEmpty() const;
 
     //@{
     /**
-        Moves the rectangle by the specified offset. If @e dx is positive, the
-        rectangle is moved to the right, if @e dy is positive, it is moved to the
+        Moves the rectangle by the specified offset. If @a dx is positive, the
+        rectangle is moved to the right, if @a dy is positive, it is moved to the
         bottom, otherwise it is moved to the left or top respectively.
     */
     void Offset(wxCoord dx, wxCoord dy);
@@ -257,8 +351,8 @@ public:
 
     /**
         Sets the size.
-        
-        @sa GetSize()
+
+        @see GetSize()
     */
     void SetSize(const wxSize& s);
 
@@ -270,40 +364,41 @@ public:
     /**
         Sets the x position.
     */
-#define void SetX(int x)     /* implementation is private */
+    void SetX(int x);
 
     /**
         Sets the y position.
     */
-#define void SetY(int y)     /* implementation is private */
+    void SetY(int y);
 
     //@{
     /**
-        Modifies the rectangle to contain the bounding box of this rectangle and the
-        one passed in as parameter. The const version returns the new rectangle, the
-        other one modifies this rectangle in place.
+        Modifies the rectangle to contain the bounding box of this rectangle
+        and the one passed in as parameter.
     */
-    wxRect Union(const wxRect& rect);
-    wxRect Union(const wxRect& rect);
+    wxRect Union(const wxRect& rect) const;
+    wxRect& Union(const wxRect& rect);
     //@}
 
     /**
-        int height
-        
-        Height member.
+        Inequality operator.
     */
+    bool operator !=(const wxRect& r1, const wxRect& r2);
 
+    //@{
+    /**
+        Like Union(), but doesn't treat empty rectangles specially.
+    */
+    wxRect operator +(const wxRect& r1, const wxRect& r2);
+    wxRect& operator +=(const wxRect& r);
+    //@}
 
     //@{
     /**
         Returns the intersection of two rectangles (which may be empty).
     */
-    bool operator !=(const wxRect& r1, const wxRect& r2);
-    wxRect operator +(const wxRect& r1, const wxRect& r2);
-    wxRect operator +=(const wxRect& r);
-    See also wxRect  operator *(const wxRect& r1,
-                                const wxRect& r2);
-    wxRect operator *=(const wxRect& r);
+    wxRect operator *(const wxRect& r1, const wxRect& r2);
+    wxRect& operator *=(const wxRect& r);
     //@}
 
     /**
@@ -317,220 +412,217 @@ public:
     bool operator ==(const wxRect& r1, const wxRect& r2);
 
     /**
-        int width
-        
-        Width member.
+        Height member.
     */
+    int height;
 
+    /**
+        Width member.
+    */
+    int width;
 
     /**
-        int x
-        
         x coordinate of the top-level corner of the rectangle.
     */
-
+    int x;
 
     /**
-        int y
-        
         y coordinate of the top-level corner of the rectangle.
     */
+    int y;
 };
 
 
-/**
-    @class wxBrushList
-    @wxheader{gdicmn.h}
-
-    A brush list is a list containing all brushes which have been created.
-
-    @library{wxcore}
-    @category{gdi}
-
-    @seealso
-    wxBrush
-*/
-class wxBrushList : public wxList
-{
-public:
-    /**
-        Constructor. The application should not construct its own brush list:
-        use the object pointer @b wxTheBrushList.
-    */
-    wxBrushList();
-
-    /**
-        Finds a brush with the specified attributes and returns it, else creates a new
-        brush, adds it
-        to the brush list, and returns it.
-        
-        @param colour
-        Colour object.
-        
-        @param style
-        Brush style. See wxBrush::SetStyle for a list of styles.
-    */
-    wxBrush * FindOrCreateBrush(const wxColour& colour,
-                                int style = wxSOLID);
-};
-
 
 /**
     @class wxPoint
     @wxheader{gdicmn.h}
 
-    A @b wxPoint is a useful data structure for graphics operations.
-    It simply contains integer @e x and @e y members.
+    A wxPoint is a useful data structure for graphics operations.
 
-    See also wxRealPoint for a floating point version.
+    It contains integer @e x and @e y members. See wxRealPoint for a floating
+    point version.
 
     @library{wxcore}
     @category{data}
 
-    @seealso
-    wxRealPoint
+    @stdobjects
+    ::wxDefaultPosition
+
+    @see wxRealPoint
 */
 class wxPoint
 {
 public:
     //@{
     /**
-        Create a point.
+        Constructs a point.
     */
     wxPoint();
     wxPoint(int x, int y);
     //@}
 
-    //@{
     /**
-        Operators for sum and subtraction between a wxPoint object and a
-        wxSize object.
+        Assignment operator.
     */
     void operator =(const wxPoint& pt);
+
     bool operator ==(const wxPoint& p1, const wxPoint& p2);
     bool operator !=(const wxPoint& p1, const wxPoint& p2);
+
     wxPoint operator +(const wxPoint& p1, const wxPoint& p2);
     wxPoint operator -(const wxPoint& p1, const wxPoint& p2);
-    wxPoint operator +=(const wxPoint& pt);
-    wxPoint operator -=(const wxPoint& pt);
+
+    wxPoint& operator +=(const wxPoint& pt);
+    wxPoint& operator -=(const wxPoint& pt);
+
     wxPoint operator +(const wxPoint& pt, const wxSize& sz);
     wxPoint operator -(const wxPoint& pt, const wxSize& sz);
     wxPoint operator +(const wxSize& sz, const wxPoint& pt);
     wxPoint operator -(const wxSize& sz, const wxPoint& pt);
-    wxPoint operator +=(const wxSize& sz);
-    wxPoint operator -=(const wxSize& sz);
-    //@}
+
+    wxPoint& operator +=(const wxSize& sz);
+    wxPoint& operator -=(const wxSize& sz);
 
     /**
-        int x
-        
         x member.
     */
-
+    int x;
 
     /**
-        int  y
-        
         y member.
     */
+    int  y;
 };
 
+/**
+    Global istance of a wxPoint initialized with values (-1,-1).
+*/
+wxPoint wxDefaultPosition;
+
 
 /**
     @class wxColourDatabase
     @wxheader{gdicmn.h}
 
     wxWidgets maintains a database of standard RGB colours for a predefined
-    set of named colours (such as "BLACK'', "LIGHT GREY''). The
-    application may add to this set if desired by using
-    wxColourDatabase::AddColour and may use it to look up
-    colours by names using wxColourDatabase::Find or find the names
-    for the standard colour suing wxColourDatabase::FindName.
-
-    There is one predefined instance of this class called
-    @b wxTheColourDatabase.
+    set of named colours. The application may add to this set if desired by
+    using AddColour() and may use it to look up colours by names using Find()
+    or find the names for the standard colour using FindName().
+
+    There is one predefined, global instance of this class called
+    ::wxTheColourDatabase.
+
+    The standard database contains at least the following colours:
+
+    @beginTable
+    <tr><td>
+       AQUAMARINE
+    @n BLACK
+    @n BLUE
+    @n BLUE VIOLET
+    @n BROWN
+    @n CADET BLUE
+    @n CORAL
+    @n CORNFLOWER BLUE
+    @n CYAN
+    @n DARK GREY
+    @n DARK GREEN
+    @n DARK OLIVE GREEN
+    @n DARK ORCHID
+    @n DARK SLATE BLUE
+    @n DARK SLATE GREY
+    @n DARK TURQUOISE
+    @n DIM GREY
+    </td><td>
+       FIREBRICK
+    @n FOREST GREEN
+    @n GOLD
+    @n GOLDENROD
+    @n GREY
+    @n GREEN
+    @n GREEN YELLOW
+    @n INDIAN RED
+    @n KHAKI
+    @n LIGHT BLUE
+    @n LIGHT GREY
+    @n LIGHT STEEL BLUE
+    @n LIME GREEN
+    @n MAGENTA
+    @n MAROON
+    @n MEDIUM AQUAMARINE
+    @n MEDIUM BLUE
+    </td><td>
+       MEDIUM FOREST GREEN
+    @n MEDIUM GOLDENROD
+    @n MEDIUM ORCHID
+    @n MEDIUM SEA GREEN
+    @n MEDIUM SLATE BLUE
+    @n MEDIUM SPRING GREEN
+    @n MEDIUM TURQUOISE
+    @n MEDIUM VIOLET RED
+    @n MIDNIGHT BLUE
+    @n NAVY
+    @n ORANGE
+    @n ORANGE RED
+    @n ORCHID
+    @n PALE GREEN
+    @n PINK
+    @n PLUM
+    @n PURPLE
+    </td><td>
+       RED
+    @n SALMON
+    @n SEA GREEN
+    @n SIENNA
+    @n SKY BLUE
+    @n SLATE BLUE
+    @n SPRING GREEN
+    @n STEEL BLUE
+    @n TAN
+    @n THISTLE
+    @n TURQUOISE
+    @n VIOLET
+    @n VIOLET RED
+    @n WHEAT
+    @n WHITE
+    @n YELLOW
+    @n YELLOW GREEN
+    </td></tr>
+    @endTable
 
     @library{wxcore}
-    @category{FIXME}
+    @category{gdi}
 
-    @seealso
-    wxColour
+    @see wxColour
 */
 class wxColourDatabase
 {
 public:
     /**
-        Constructs the colour database. It will be initialized at the first use.
+        Constructs the colour database. It will be initialized at the first
+        use.
     */
     wxColourDatabase();
 
-    //@{
     /**
-        Adds a colour to the database. If a colour with the same name already exists,
-        it is replaced.
-        
-        Please note that the overload taking a pointer is deprecated and will be
-        removed in the next wxWidgets version, please don't use it.
+        Adds a colour to the database. If a colour with the same name already
+        exists, it is replaced.
     */
-    void AddColour(const wxString& colourName,
-                   const wxColour& colour);
-    void AddColour(const wxString& colourName, wxColour* colour);
-    //@}
+    void AddColour(const wxString& colourName, const wxColour& colour);
 
     /**
-        Finds a colour given the name. Returns an invalid colour object (that is, such
-        that its @ref wxColour::isok Ok method returns @false) if the colour wasn't
-        found in the database.
+        Finds a colour given the name. Returns an invalid colour object (that
+        is, wxColour::IsOk() will return @false) if the colour wasn't found in
+        the database.
     */
     wxColour Find(const wxString& colourName);
 
     /**
-        Finds a colour name given the colour. Returns an empty string if the colour is
-        not found in the database.
+        Finds a colour name given the colour. Returns an empty string if the
+        colour is not found in the database.
     */
-    wxString FindName(const wxColour& colour);
-};
-
-
-/**
-    @class wxFontList
-    @wxheader{gdicmn.h}
-
-    A font list is a list containing all fonts which have been created. There
-    is only one instance of this class: @b wxTheFontList.  Use this object to search
-    for a previously created font of the desired type and create it if not already
-    found.
-    In some windowing systems, the font may be a scarce resource, so it is best to
-    reuse old resources if possible.  When an application finishes, all fonts will
-    be
-    deleted and their resources freed, eliminating the possibility of 'memory
-    leaks'.
-
-    @library{wxcore}
-    @category{gdi}
-
-    @seealso
-    wxFont
-*/
-class wxFontList : public wxList
-{
-public:
-    /**
-        Constructor. The application should not construct its own font list:
-        use the object pointer @b wxTheFontList.
-    */
-    wxFontList();
-
-    /**
-        Finds a font of the given specification, or creates one and adds it to the
-        list. See the @ref wxFont::ctor "wxFont constructor" for
-        details of the arguments.
-    */
-    wxFont * FindOrCreateFont(int point_size, int family, int style,
-                              int weight,
-                              bool underline = @false,
-                              const wxString& facename = @NULL,
-                              wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
+    wxString FindName(const wxColour& colour) const;
 };
 
 
@@ -538,23 +630,25 @@ public:
     @class wxSize
     @wxheader{gdicmn.h}
 
-    A @b wxSize is a useful data structure for graphics operations.
-    It simply contains integer @e width and @e height members.
-
-    wxSize is used throughout wxWidgets as well as wxPoint which, although almost
-    equivalent to wxSize, has a different meaning: wxPoint represents a position
-    while wxSize - the size.
+    A wxSize is a useful data structure for graphics operations. It simply
+    contains integer @e width and @e height members.
 
-    @b wxPython note: wxPython defines aliases for the @c x and @c y members
-    named @c width and @c height since it makes much more sense for
-    sizes.
+    wxSize is used throughout wxWidgets as well as wxPoint which, although
+    almost equivalent to wxSize, has a different meaning: wxPoint represents a
+    position while wxSize represents the size.
 
+    @beginWxPythonOnly
+    wxPython defines aliases for the @e x and @e y members named @e width and
+    @e height since it makes much more sense for sizes.
+    @endWxPythonOnly
 
     @library{wxcore}
     @category{data}
 
-    @seealso
-    wxPoint, wxRealPoint
+    @stdobjects
+    ::wxDefaultSize
+
+    @see wxPoint, wxRealPoint
 */
 class wxSize
 {
@@ -569,13 +663,9 @@ public:
 
     //@{
     /**
-        Decreases the size in x- and y- directions
-        
-             By @e size.x and @e size.y for the first overload
-             By @e dx and @e dy for the second one
-             By @e d and @e d for the third one
-        
-        @sa IncBy()
+        Decreases the size in both x and y directions.
+
+        @see IncBy()
     */
     void DecBy(const wxSize& size);
     void DecBy(int dx, int dy);
@@ -583,32 +673,28 @@ public:
     //@}
 
     /**
-        Decrements this object so that both of its dimensions are not greater than the
-        corresponding dimensions of the @e size.
-        
-        @sa IncTo()
+        Decrements this object so that both of its dimensions are not greater
+        than the corresponding dimensions of the @a size.
+
+        @see IncTo()
     */
     void DecTo(const wxSize& size);
 
     /**
         Gets the height member.
     */
-    int GetHeight();
+    int GetHeight() const;
 
     /**
         Gets the width member.
     */
-    int GetWidth();
+    int GetWidth() const;
 
     //@{
     /**
-        Increases the size in x- and y- directions
-        
-             By @e size.x and @e size.y for the first overload
-             By @e dx and @e dy for the second one
-             By @e d and @e d for the third one
-        
-        @sa DecBy()
+        Increases the size in both x and y directions.
+
+        @see DecBy()
     */
     void IncBy(const wxSize& size);
     void IncBy(int dx, int dy);
@@ -616,63 +702,50 @@ public:
     //@}
 
     /**
-        Increments this object so that both of its dimensions are not less than the
-        corresponding dimensions of the @e size.
-        
-        @sa DecTo()
+        Increments this object so that both of its dimensions are not less than
+        the corresponding dimensions of the @a size.
+
+        @see DecTo()
     */
     void IncTo(const wxSize& size);
 
     /**
-        Returns @true if neither of the size object components is equal to -1, which
-        is used as default for the size values in wxWidgets (hence the predefined
-        @c wxDefaultSize has both of its components equal to -1).
-        
-        This method is typically used before calling
-        SetDefaults().
-    */
-    bool IsFullySpecified();
+        Returns @true if neither of the size object components is equal to -1,
+        which is used as default for the size values in wxWidgets (hence the
+        predefined ::wxDefaultSize has both of its components equal to -1).
 
-    //@{
-    /**
-        Operators for division and multiplication between a wxSize object and an
-        integer.
+        This method is typically used before calling SetDefaults().
     */
-    void operator =(const wxSize& sz);
-    bool operator ==(const wxSize& s1, const wxSize& s2);
-    bool operator !=(const wxSize& s1, const wxSize& s2);
-    wxSize operator +(const wxSize& s1, const wxSize& s2);
-    wxSize operator -(const wxSize& s1, const wxSize& s2);
-    wxSize operator +=(const wxSize& sz);
-    wxSize operator -=(const wxSize& sz);
-    wxSize operator /(const wxSize& sz, int factor);
-    wxSize operator *(const wxSize& sz, int factor);
-    wxSize operator *(int factor, const wxSize& sz);
-    wxSize operator /=(int factor);
-    wxSize operator *=(int factor);
-    //@}
+    bool IsFullySpecified() const;
 
     /**
-        Scales the dimensions of this object by the given factors.
-        If you want to scale both dimensions by the same factor you can also use
-        the @ref operators() "operator *="
-        
-        Returns a reference to this object (so that you can concatenate other
-        operations in the same line).
+        Scales the dimensions of this object by the given factors. If you want
+        to scale both dimensions by the same factor you can also use
+        operator*=().
+
+        @return A reference to this object (so that you can concatenate other
+                 operations in the same line).
     */
-    wxSize Scale(float xscale, float yscale);
+    wxSize& Scale(float xscale, float yscale);
 
     /**
         Sets the width and height members.
     */
-#define void Set(int width, int height)     /* implementation is private */
+    void Set(int width, int height);
 
     /**
-        Combine this size object with another one replacing the default (i.e. equal
-        to -1) components of this object with those of the other. It is typically
-        used like this:
-        
-        @sa IsFullySpecified()
+        Combine this size object with another one replacing the default (i.e.
+        equal to -1) components of this object with those of the other. It is
+        typically used like this:
+
+        @code
+        if ( !size.IsFullySpecified() )
+        {
+            size.SetDefaults(GetDefaultSize());
+        }
+        @endcode
+
+        @see IsFullySpecified()
     */
     void SetDefaults(const wxSize& sizeDefault);
 
@@ -685,138 +758,124 @@ public:
         Sets the width.
     */
     void SetWidth(int width);
-};
 
+    /**
+        Assignment operator.
+    */
+    void operator =(const wxSize& sz);
 
-/**
-    @class wxPenList
-    @wxheader{gdicmn.h}
+    bool operator ==(const wxSize& s1, const wxSize& s2);
+    bool operator !=(const wxSize& s1, const wxSize& s2);
 
-    There is only one instance of this class: @b wxThePenList.  Use
-    this object to search for a previously created pen of the desired
-    type and create it if not already found. In some windowing systems,
-    the pen may be a scarce resource, so it can pay to reuse old
-    resources if possible. When an application finishes, all pens will
-    be deleted and their resources freed, eliminating the possibility of
-    'memory leaks'. However, it is best not to rely on this automatic
-    cleanup because it can lead to double deletion in some circumstances.
-
-    There are two mechanisms in recent versions of wxWidgets which make the
-    pen list less useful than it once was. Under Windows, scarce resources
-    are cleaned up internally if they are not being used. Also, a referencing
-    counting mechanism applied to all GDI objects means that some sharing
-    of underlying resources is possible. You don't have to keep track of pointers,
-    working out when it is safe delete a pen, because the referencing counting does
-    it for you. For example, you can set a pen in a device context, and then
-    immediately delete the pen you passed, because the pen is 'copied'.
-
-    So you may find it easier to ignore the pen list, and instead create
-    and copy pens as you see fit. If your Windows resource meter suggests
-    your application is using too many resources, you can resort to using
-    GDI lists to share objects explicitly.
-
-    The only compelling use for the pen list is for wxWidgets to keep
-    track of pens in order to clean them up on exit. It is also kept for
-    backward compatibility with earlier versions of wxWidgets.
+    wxSize operator +(const wxSize& s1, const wxSize& s2);
+    wxSize operator -(const wxSize& s1, const wxSize& s2);
+    wxSize& operator +=(const wxSize& sz);
+    wxSize& operator -=(const wxSize& sz);
 
-    @library{wxcore}
-    @category{gdi}
+    wxSize operator /(const wxSize& sz, int factor);
+    wxSize operator *(const wxSize& sz, int factor);
+    wxSize operator *(int factor, const wxSize& sz);
+    wxSize& operator /=(int factor);
+    wxSize& operator *=(int factor);
+};
 
-    @seealso
-    wxPen
+/**
+    Global instance of a wxSize object initialized to (-1,-1).
 */
-class wxPenList
-{
-public:
-    /**
-        Constructor. The application should not construct its own pen list:
-        use the object pointer @b wxThePenList.
-    */
-    wxPenList();
+wxSize wxDefaultSize;
+
 
-    //@{
-    /**
-        Finds a pen with the specified attributes and returns it, else creates a new
-        pen, adds it
-        to the pen list, and returns it.
-        
-        @param colour
-        Colour object.
-        
-        @param colourName
-        Colour name, which should be in the colour database.
-        
-        @param width
-        Width of pen.
-        
-        @param style
-        Pen style. See wxPen::wxPen for a list of styles.
-    */
-    wxPen* FindOrCreatePen(const wxColour& colour, int width,
-                           int style);
-    wxPen* FindOrCreatePen(const wxString& colourName, int width,
-                           int style);
-    //@}
-};
 
 
 // ============================================================================
 // Global functions/macros
 // ============================================================================
 
+/** @ingroup group_funcmacro_gdi */
 //@{
+
 /**
-    Returns the dimensions of the work area on the display.  On Windows
-    this means the area not covered by the taskbar, etc.  Other platforms
-    are currently defaulting to the whole display until a way is found to
-    provide this info for all window managers, etc.
+    This macro loads a bitmap from either application resources (on the
+    platforms for which they exist, i.e. Windows and OS2) or from an XPM file.
+    This can help to avoid using @ifdef_ when creating bitmaps.
+
+    @see @ref overview_bitmap, wxICON()
+
+    @header{wx/gdicmn.h}
 */
-void wxClientDisplayRect(int * x, int * y, int * width,
-                         int * height);
-wxRect wxGetClientDisplayRect();
-//@}
+#define wxBITMAP(bitmapName)
 
-//@{
 /**
-    Returns the display size in pixels.
+    This macro loads an icon from either application resources (on the
+    platforms for which they exist, i.e. Windows and OS2) or from an XPM file.
+    This can help to avoid using @ifdef_ when creating icons.
+
+    @see @ref overview_bitmap, wxBITMAP()
+
+    @header{wx/gdicmn.h}
 */
-void wxDisplaySize(int * width, int * height);
-wxSize wxGetDisplaySize();
-//@}
+wxICON();
 
-//@{
 /**
-    Returns the display size in millimeters.
+    Returns @true if the display is colour, @false otherwise.
+
+    @header{wx/gdicmn.h}
 */
-void wxDisplaySizeMM(int * width, int * height);
-wxSize wxGetDisplaySizeMM();
-//@}
+bool wxColourDisplay();
 
 /**
-    This macro loads an icon from either application resources (on the platforms
-    for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
-    avoid using @c #ifdefs when creating icons.
+    Returns the depth of the display (a value of 1 denotes a monochrome
+    display).
 
-    @sa @ref overview_wxbitmapoverview "Bitmaps and icons overview", wxBITMAP
+    @header{wx/gdicmn.h}
 */
-#define wxICON()     /* implementation is private */
+int wxDisplayDepth();
 
 /**
-    Returns @true if the display is colour, @false otherwise.
+    Globally sets the cursor; only has an effect on Windows, Mac and GTK+. You
+    should call this function with wxNullCursor to restore the system cursor.
+
+    @see wxCursor, wxWindow::SetCursor()
+
+    @header{wx/gdicmn.h}
 */
-bool wxColourDisplay();
+void wxSetCursor(const wxCursor& cursor);
 
+//@}
+
+/** @ingroup group_funcmacro_gdi */
+//@{
 /**
-    This macro loads a bitmap from either application resources (on the platforms
-    for which they exist, i.e. Windows and OS2) or from an XPM file. It allows to
-    avoid using @c #ifdefs when creating bitmaps.
+    Returns the dimensions of the work area on the display. On Windows this
+    means the area not covered by the taskbar, etc. Other platforms are
+    currently defaulting to the whole display until a way is found to provide
+    this info for all window managers, etc.
 
-    @sa @ref overview_wxbitmapoverview "Bitmaps and icons overview", wxICON
+    @header{wx/gdicmn.h}
 */
-#define wxBITMAP()     /* implementation is private */
+void wxClientDisplayRect(int* x, int* y, int* width, int* height);
+wxRect wxGetClientDisplayRect();
+//@}
 
+/** @ingroup group_funcmacro_gdi */
+//@{
 /**
-    Returns the depth of the display (a value of 1 denotes a monochrome display).
+    Returns the display size in pixels.
+
+    @header{wx/gdicmn.h}
 */
-int wxDisplayDepth();
+void wxDisplaySize(int* width, int* height);
+wxSize wxGetDisplaySize();
+//@}
+
+/** @ingroup group_funcmacro_gdi */
+//@{
+/**
+    Returns the display size in millimeters.
+
+    @header{wx/gdicmn.h}
+*/
+void wxDisplaySizeMM(int* width, int* height);
+wxSize wxGetDisplaySizeMM();
+//@}