]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dc.h
Implement monitoring of file descriptors in wxMotif event loop.
[wxWidgets.git] / interface / wx / dc.h
index e1f100f64ca33be79545106f88d05502d42553cc..49e0f0efc01a6f38438ccb2aa4476725243de7e7 100644 (file)
@@ -73,7 +73,7 @@ enum wxMappingMode
     wxMM_TWIPS,
 
     /**
     wxMM_TWIPS,
 
     /**
-        Each logical unit is a @e "printer point" i.e. 1/72 of an inch.
+        Each logical unit is a @e "printer point" i.e.\ 1/72 of an inch.
         Equivalent to about 353 micrometers.
     */
     wxMM_POINTS
         Equivalent to about 353 micrometers.
     */
     wxMM_POINTS
@@ -413,7 +413,7 @@ public:
         Not supported by wxPerl.
         @endWxPerlOnly
     */
         Not supported by wxPerl.
         @endWxPerlOnly
     */
-    void DrawLines(int n, wxPoint points[], wxCoord xoffset = 0,
+    void DrawLines(int n, const wxPoint points[], wxCoord xoffset = 0,
                    wxCoord yoffset = 0);
     /**
         This method uses a list of wxPoints, adding the optional offset
                    wxCoord yoffset = 0);
     /**
         This method uses a list of wxPoints, adding the optional offset
@@ -455,7 +455,7 @@ public:
         Not supported by wxPerl.
         @endWxPerlOnly
     */
         Not supported by wxPerl.
         @endWxPerlOnly
     */
-    void DrawPolygon(int n, wxPoint points[], wxCoord xoffset = 0,
+    void DrawPolygon(int n, const wxPoint points[], wxCoord xoffset = 0,
                      wxCoord yoffset = 0,
                      wxPolygonFillMode fill_style = wxODDEVEN_RULE);
     /**
                      wxCoord yoffset = 0,
                      wxPolygonFillMode fill_style = wxODDEVEN_RULE);
     /**
@@ -504,7 +504,7 @@ public:
         the DrawPolygon() member function, the polygons created by this
         method are not closed automatically.
     */
         the DrawPolygon() member function, the polygons created by this
         method are not closed automatically.
     */
-    void DrawPolyPolygon(int n, int count[], wxPoint points[],
+    void DrawPolyPolygon(int n, const int count[], const wxPoint points[],
                          wxCoord xoffset = 0, wxCoord yoffset = 0,
                          wxPolygonFillMode fill_style = wxODDEVEN_RULE);
 
                          wxCoord xoffset = 0, wxCoord yoffset = 0,
                          wxPolygonFillMode fill_style = wxODDEVEN_RULE);
 
@@ -579,7 +579,7 @@ public:
         Not supported by wxPerl.
         @endWxPerlOnly
     */
         Not supported by wxPerl.
         @endWxPerlOnly
     */
-    void DrawSpline(int n, wxPoint points[]);
+    void DrawSpline(int n, const wxPoint points[]);
 
     /**
         @overload
 
     /**
         @overload
@@ -678,6 +678,9 @@ public:
         - wxFLOOD_BORDER: The area to be flooded is bounded by the given
           colour.
 
         - wxFLOOD_BORDER: The area to be flooded is bounded by the given
           colour.
 
+        Currently this method is not implemented in wxOSX and does nothing
+        there.
+
         @return @false if the operation failed.
 
         @note The present implementation for non-Windows platforms may fail to
         @return @false if the operation failed.
 
         @note The present implementation for non-Windows platforms may fail to
@@ -1413,7 +1416,7 @@ public:
     bool IsOk() const;
 
     /**
     bool IsOk() const;
 
     /**
-        Sets the x and y axis orientation (i.e., the direction from lowest to
+        Sets the x and y axis orientation (i.e.\ the direction from lowest to
         highest values on the axis). The default orientation is x axis from
         left to right and y axis from top down.
 
         highest values on the axis). The default orientation is x axis from
         left to right and y axis from top down.
 
@@ -1427,7 +1430,7 @@ public:
     void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
 
     /**
     void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
 
     /**
-        Sets the device origin (i.e., the origin in pixels after scaling has
+        Sets the device origin (i.e.\ the origin in pixels after scaling has
         been applied). This function may be useful in Windows printing
         operations for placing a graphic on a page.
     */
         been applied). This function may be useful in Windows printing
         operations for placing a graphic on a page.
     */
@@ -1534,6 +1537,45 @@ public:
 
     //@}
 
 
     //@}
 
+    
+    /**
+        @name query capabilities
+    */
+    //@{
+
+    /**
+       Does the DC support drawing bitmaps?
+    */
+    bool CanDrawBitmap() const;
+
+    /**
+       Does the DC supoprt calculating the size required to draw text?
+    */
+    bool CanGetTextExtent() const;
+    
+    //@}
+
+    /**
+       Returns a value that can be used as a handle to the native drawing
+       context, if this wxDC has something that could be thought of in that
+       way.  (Not all of them do.)
+
+       For example, on Windows the return value is an HDC, on OSX it is a
+       CGContextRef and on wxGTK it will be a GdkDrawable.  If the DC is a
+       wxGCDC then the return value will be the value returned from
+       wxGraphicsContext::GetNativeContext.  A value of NULL is returned if
+       the DC does not have anything that fits the handle concept.
+       
+       @since 2.9.5
+     */
+    void* GetHandle() const;
+
+    
+    /**
+       If supported by the platform and the type of DC, fetch the contents of the DC, or a subset of it, as a bitmap.
+    */
+    wxBitmap GetAsBitmap(const wxRect *subrect = NULL) const;
+
 
     void SetLogicalScale(double x, double y);
     void GetLogicalScale(double *x, double *y) const;
 
     void SetLogicalScale(double x, double y);
     void GetLogicalScale(double *x, double *y) const;
@@ -1548,10 +1590,12 @@ public:
 /**
     @class wxDCClipper
 
 /**
     @class wxDCClipper
 
-    wxDCClipper is a small helper class for setting a clipping region on a wxDC
-    and unsetting it automatically. An object of wxDCClipper class is typically
-    created on the stack so that it is automatically destroyed when the object
-    goes out of scope. A typical usage example:
+    wxDCClipper is a helper class for setting a clipping region on a wxDC
+    during its lifetime.
+
+    An object of wxDCClipper class is typically created on the stack so that it
+    is automatically destroyed when the object goes out of scope. A typical
+    usage example:
 
     @code
     void MyFunction(wxDC& dc)
 
     @code
     void MyFunction(wxDC& dc)
@@ -1568,6 +1612,12 @@ public:
     }
     @endcode
 
     }
     @endcode
 
+    @note Unlike other similar classes such as wxDCFontChanger, wxDCClipper
+        currently doesn't restore the previously active clipping region when it
+        is destroyed but simply resets clipping on the associated wxDC. This
+        may be changed in the future wxWidgets versions but has to be taken
+        into account explicitly in the current one.
+
     @library{wxcore}
     @category{gdi}
 
     @library{wxcore}
     @category{gdi}