X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f26e88002c5b81ac8d96f62774ec9b176a8c0d0..92c0fc34c104c8d7c12d6a3b78ea232690fc23f4:/interface/wx/dc.h?ds=sidebyside diff --git a/interface/wx/dc.h b/interface/wx/dc.h index fb7590c180..41dfbdaba0 100644 --- a/interface/wx/dc.h +++ b/interface/wx/dc.h @@ -2,7 +2,6 @@ // Name: dc.h // Purpose: interface of wxDC // Author: wxWidgets team -// RCS-ID: $Id$ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -73,7 +72,7 @@ enum wxMappingMode 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 @@ -409,27 +408,17 @@ public: Draws lines using an array of points of size @a n adding the optional offset coordinate. The current pen is used for drawing the lines. - @beginWxPythonOnly - The wxPython version of this method accepts a Python list of wxPoint - objects. - @endWxPythonOnly - @beginWxPerlOnly 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 coordinate. The programmer is responsible for deleting the list of points. - @beginWxPythonOnly - The wxPython version of this method accepts a Python list of wxPoint - objects. - @endWxPythonOnly - @beginWxPerlOnly The wxPerl version of this method accepts as its first parameter a reference to an array @@ -465,7 +454,7 @@ public: 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); /** @@ -481,11 +470,6 @@ public: The programmer is responsible for deleting the list of points. - @beginWxPythonOnly - The wxPython version of this method accepts a Python list of wxPoint - objects. - @endWxPythonOnly - @beginWxPerlOnly The wxPerl version of this method accepts as its first parameter a reference to an array @@ -518,12 +502,8 @@ public: call to DrawPolyPolygon() must be closed. Unlike polygons created by the DrawPolygon() member function, the polygons created by this method are not closed automatically. - - @beginWxPythonOnly - Not implemented yet. - @endWxPythonOnly */ - 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); @@ -594,16 +574,11 @@ public: /** Draws a spline between all given points using the current pen. - @beginWxPythonOnly - The wxPython version of this method accepts a Python list of wxPoint - objects. - @endWxPythonOnly - @beginWxPerlOnly Not supported by wxPerl. @endWxPerlOnly */ - void DrawSpline(int n, wxPoint points[]); + void DrawSpline(int n, const wxPoint points[]); /** @overload @@ -702,6 +677,9 @@ public: - 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 @@ -753,11 +731,6 @@ public: /** Gets the rectangle surrounding the current clipping region. - - @beginWxPythonOnly - No arguments are required and the four values defining the rectangle - are returned as a tuple. - @endWxPythonOnly */ void GetClippingBox(wxCoord *x, wxCoord *y, wxCoord *width, wxCoord *height) const; @@ -883,11 +856,6 @@ public: function that is faster or more accurate than the generic implementation then it should be used instead. - @beginWxPythonOnly - This method only takes the @a text parameter and returns a Python list - of integers. - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method only takes the @a text parameter and returns the widths as a list of integers. @@ -914,13 +882,6 @@ public: @note This function only works with single-line strings. - @beginWxPythonOnly - The following methods are implemented in wxPython: - - GetTextExtent(string) - Returns a 2-tuple, (width, height). - - GetFullTextExtent(string, font=NULL) - - Returns a 4-tuple, (width, height, descent, externalLeading). - @endWxPythonOnly - @beginWxPerlOnly In wxPerl this method is implemented as GetTextExtent(string, font = undef) returning a 4-element list (width, height, @@ -1388,10 +1349,6 @@ public: @note This method shouldn't be used with wxPaintDC as accessing the DC while drawing can result in unexpected results, notably in wxGTK. - - @beginWxPythonOnly - The wxColour value is returned and is not required as a parameter. - @endWxPythonOnly */ bool GetPixel(wxCoord x, wxCoord y, wxColour* colour) const; @@ -1416,13 +1373,6 @@ public: dc.SetUserScale(min(scaleX, scaleY),min(scaleX, scaleY)); @endcode - @beginWxPythonOnly - In place of a single overloaded method name, wxPython implements the - following methods: - - GetSize() - Returns a wxSize. - - GetSizeWH() - Returns a 2-tuple (width, height). - @endWxPythonOnly - @beginWxPerlOnly In wxPerl there are two methods instead of a single overloaded method: @@ -1465,7 +1415,7 @@ public: 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. @@ -1479,7 +1429,7 @@ public: 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. */ @@ -1586,6 +1536,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; @@ -1600,10 +1589,12 @@ public: /** @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) @@ -1620,6 +1611,12 @@ public: } @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}