]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dc.h
Default to wxConvUTF8 (not wxConvAuto) in wxDataInputStream and wxDataOutputStream...
[wxWidgets.git] / interface / wx / dc.h
index bc522c7c6f4f56ed0a93e01483855e47d4bb51fb..e4d387bc6db41c1406781c59038e8c6bbb004656 100644 (file)
@@ -6,6 +6,77 @@
 // Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
+
+/**
+    Logical raster operations which can be used with wxDC::SetLogicalFunction
+    and some other wxDC functions (e.g. wxDC::Blit and wxDC::StretchBlit).
+
+    The description of the values below refer to how a generic @e src source pixel
+    and the corresponding @e dst destination pixel gets combined together to produce
+    the final pixel. E.g. @c wxCLEAR and @c wxSET completely ignore the source
+    and the destination pixel and always put zeroes or ones in the final surface.
+*/
+enum wxRasterOperationMode
+{
+    wxCLEAR,       //!< 0
+    wxXOR,         //!< @e src XOR @e dst
+    wxINVERT,      //!< NOT @e dst
+    wxOR_REVERSE,  //!< @e src OR (NOT @e dst)
+    wxAND_REVERSE, //!< @e src AND (NOT @e dst)
+    wxCOPY,        //!< @e src
+    wxAND,         //!< @e src AND @e dst
+    wxAND_INVERT,  //!< (NOT @e src) AND @e dst
+    wxNO_OP,       //!< @e dst
+    wxNOR,         //!< (NOT @e src) AND (NOT @e dst)
+    wxEQUIV,       //!< (NOT @e src) XOR @e dst
+    wxSRC_INVERT,  //!< (NOT @e src)
+    wxOR_INVERT,   //!< (NOT @e src) OR @e dst
+    wxNAND,        //!< (NOT @e src) OR (NOT @e dst)
+    wxOR,          //!< @e src OR @e dst
+    wxSET          //!< 1
+};
+
+/**
+    Flood styles used by wxDC::FloodFill.
+*/
+enum wxFloodFillStyle
+{
+    /** The flooding occurs until a colour other than the given colour is encountered. */
+    wxFLOOD_SURFACE = 1,
+
+    /** The area to be flooded is bounded by the given colour. */
+    wxFLOOD_BORDER
+};
+
+/**
+    The mapping mode which can be used with wxDC::SetMapMode.
+*/
+enum wxMappingMode
+{
+    /** Each logical unit is 1 device pixel. */
+    wxMM_TEXT = 1,
+
+    wxMM_LOMETRIC,
+    wxMM_HIMETRIC,
+
+    /** Each logical unit is 1/10 of a mm. */
+    wxMM_LOENGLISH,
+
+    wxMM_HIENGLISH,
+
+    /** Each logical unit is 1/20 of a point, or 1/1440 of an inch. */
+    wxMM_TWIPS,
+
+    wxMM_ISOTROPIC,
+    wxMM_ANISOTROPIC,
+
+    /** Each logical unit is a point, or 1/72 of an inch. */
+    wxMM_POINTS,
+
+    /** Each logical unit is 1 mm. */
+    wxMM_METRIC
+};
+
 /**
     @class wxDC
 
     @library{wxcore}
     @category{dc,gdi}
 
-    @see @ref overview_dc, wxGraphicsContext
+    @see @ref overview_dc, wxGraphicsContext, wxDCFontChanger, wxDCTextColourChanger,
+         wxDCPenChanger, wxDCBrushChanger, wxDCClipper
 
     @todo Precise definition of default/initial state.
     @todo Pixelwise definition of operations (e.g. last point of a line not
@@ -266,10 +338,10 @@ public:
         character with the given index if it is != -1 and return the bounding
         rectangle if required.
     */
-    virtual void DrawLabel(const wxString& text, const wxBitmap& image,
-                           const wxRect& rect,
-                           int alignment = wxALIGN_LEFT | wxALIGN_TOP,
-                           int indexAccel = -1, wxRect* rectBounding = NULL);
+    void DrawLabel(const wxString& text, const wxBitmap& image,
+                   const wxRect& rect,
+                   int alignment = wxALIGN_LEFT | wxALIGN_TOP,
+                   int indexAccel = -1, wxRect* rectBounding = NULL);
     void DrawLabel(const wxString& text, const wxRect& rect,
                    int alignment = wxALIGN_LEFT | wxALIGN_TOP,
                    int indexAccel = -1);
@@ -651,7 +723,7 @@ public:
         @endWxPythonOnly
     */
     void GetSize(wxCoord* width, wxCoord* height) const;
-    const wxSize GetSize() const;
+    wxSize GetSize() const;
     //@}
 
     //@{
@@ -659,7 +731,7 @@ public:
         Returns the horizontal and vertical resolution in millimetres.
     */
     void GetSizeMM(wxCoord* width, wxCoord* height) const;
-    const wxSize GetSizeMM() const;
+    wxSize GetSizeMM() const;
     //@}
 
     /**
@@ -700,7 +772,7 @@ public:
                        wxCoord* descent = NULL,
                        wxCoord* externalLeading = NULL,
                        const wxFont* font = NULL) const;
-    const wxSize  GetTextExtent(const wxString& string) const;
+    wxSize GetTextExtent(const wxString& string) const;
     //@}
 
     /**
@@ -898,46 +970,27 @@ public:
     void SetLayoutDirection(wxLayoutDirection dir);
 
     /**
-        Sets the current logical function for the device context. This
-        determines how a source pixel (from a pen or brush colour, or source
-        device context if using Blit()) combines with a destination pixel in
+        Sets the current logical function for the device context.
+        It determines how a @e source pixel (from a pen or brush colour, or source
+        device context if using Blit()) combines with a @e destination pixel in
         the current device context.
         Text drawing is not affected by this function.
 
-        The possible values and their meaning in terms of source and
-        destination pixel values are as follows:
-
-        @verbatim
-        wxAND           src AND dst
-        wxAND_INVERT    (NOT src) AND dst
-        wxAND_REVERSE   src AND (NOT dst)
-        wxCLEAR         0
-        wxCOPY          src
-        wxEQUIV         (NOT src) XOR dst
-        wxINVERT        NOT dst
-        wxNAND          (NOT src) OR (NOT dst)
-        wxNOR           (NOT src) AND (NOT dst)
-        wxNO_OP         dst
-        wxOR            src OR dst
-        wxOR_INVERT     (NOT src) OR dst
-        wxOR_REVERSE    src OR (NOT dst)
-        wxSET           1
-        wxSRC_INVERT    NOT src
-        wxXOR           src XOR dst
-        @endverbatim
-
-        The default is wxCOPY, which simply draws with the current colour. The
-        others combine the current colour and the background using a logical
-        operation. wxINVERT is commonly used for drawing rubber bands or moving
+        See ::wxRasterOperationMode enumeration values for more info.
+
+        The default is @c wxCOPY, which simply draws with the current colour.
+        The others combine the current colour and the background using a logical
+        operation. @c wxINVERT is commonly used for drawing rubber bands or moving
         outlines, since drawing twice reverts to the original colour.
     */
     void SetLogicalFunction(wxRasterOperationMode function);
 
     /**
         The mapping mode of the device context defines the unit of measurement
-        used to convert logical units to device units. Note that in X, text
-        drawing isn't handled consistently with the mapping mode; a font is
-        always specified in point size. However, setting the user scale (see
+        used to convert logical units to device units.
+
+        Note that in X, text drawing isn't handled consistently with the mapping mode;
+        a font is always specified in point size. However, setting the user scale (see
         SetUserScale()) scales the text appropriately. In Windows, scalable
         TrueType fonts are always used; in X, results depend on availability of
         fonts, but usually a reasonable match is found.
@@ -946,14 +999,6 @@ public:
 
         Drawing to a Windows printer device context uses the current mapping
         mode, but mapping mode is currently ignored for PostScript output.
-
-        The mapping mode can be one of the following:
-        - wxMM_TWIPS: Each logical unit is 1/20 of a point, or 1/1440 of an
-          inch.
-        - wxMM_POINTS: Each logical unit is a point, or 1/72 of an inch.
-        - wxMM_METRIC: Each logical unit is 1 mm.
-        - wxMM_LOMETRIC: Each logical unit is 1/10 of a mm.
-        - wxMM_TEXT: Each logical unit is 1 device pixel.
     */
     void SetMapMode(wxMappingMode mode);
 
@@ -1117,7 +1162,8 @@ public:
     @library{wxcore}
     @category{gdi}
 
-    @see wxDC::SetClippingRegion()
+    @see wxDC::SetClippingRegion(), wxDCFontChanger, wxDCTextColourChanger, wxDCPenChanger,
+         wxDCBrushChanger
 */
 class wxDCClipper
 {
@@ -1130,7 +1176,7 @@ public:
     */
     wxDCClipper(wxDC& dc, const wxRegion& r);
     wxDCClipper(wxDC& dc, const wxRect& rect);
-    wxDCClipper(wxDC& dc, int x, int y, int w, int h);
+    wxDCClipper(wxDC& dc, wxCoord x, wxCoord y, wxCoord w, wxCoord h);
     //@}
 
     /**
@@ -1149,7 +1195,8 @@ public:
     @library{wxcore}
     @category{gdi}
 
-    @see wxDC::SetBrush()
+    @see wxDC::SetBrush(), wxDCFontChanger, wxDCTextColourChanger, wxDCPenChanger,
+         wxDCClipper
 */
 class wxDCBrushChanger
 {
@@ -1180,7 +1227,8 @@ public:
     @library{wxcore}
     @category{gdi}
 
-    @see wxDC::SetPen()
+    @see wxDC::SetPen(), wxDCFontChanger, wxDCTextColourChanger, wxDCBrushChanger,
+         wxDCClipper
 */
 class wxDCPenChanger
 {
@@ -1213,7 +1261,8 @@ public:
     @library{wxcore}
     @category{gdi}
 
-    @see wxDC::SetTextForeground()
+    @see wxDC::SetTextForeground(), wxDCFontChanger, wxDCPenChanger, wxDCBrushChanger,
+         wxDCClipper
 */
 class wxDCTextColourChanger
 {
@@ -1247,7 +1296,8 @@ public:
     @library{wxcore}
     @category{gdi}
 
-    @see wxDC::SetFont()
+    @see wxDC::SetFont(), wxDCTextColourChanger, wxDCPenChanger, wxDCBrushChanger,
+         wxDCClipper
 */
 class wxDCFontChanger
 {