X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7422d79765db9e7280da187be7a1b016491b8cfd..3f8445916632099542e4de6f363bf84c4055f490:/interface/wx/graphics.h diff --git a/interface/wx/graphics.h b/interface/wx/graphics.h index c0447f0c34..a8ebbabd67 100644 --- a/interface/wx/graphics.h +++ b/interface/wx/graphics.h @@ -296,6 +296,14 @@ public: @since 2.9.3 */ wxImage ConvertToImage() const; + + /** + Return the pointer to the native bitmap data. (CGImageRef for Core Graphics, + cairo_surface_t for Cairo, Bitmap* for GDI+.) + + @since 2.9.4 + */ + void* GetNativeBitmap() const; }; /** @@ -356,14 +364,14 @@ public: @see wxGraphicsRenderer::CreateContext() */ - static wxGraphicsContext* Create(const wxWindowDC& dc); + static wxGraphicsContext* Create(const wxWindowDC& windowDC); /** Creates a wxGraphicsContext from a wxMemoryDC @see wxGraphicsRenderer::CreateContext() */ - static wxGraphicsContext* Create(const wxMemoryDC& dc); + static wxGraphicsContext* Create(const wxMemoryDC& memoryDC); /** Creates a wxGraphicsContext from a wxPrinterDC. Under GTK+, this will @@ -372,7 +380,7 @@ public: @see wxGraphicsRenderer::CreateContext(), @ref overview_unixprinting */ - static wxGraphicsContext* Create(const wxPrinterDC& dc); + static wxGraphicsContext* Create(const wxPrinterDC& printerDC); /** Creates a wxGraphicsContext from a wxEnhMetaFileDC. @@ -382,7 +390,7 @@ public: @see wxGraphicsRenderer::CreateContext() */ - static wxGraphicsContext* Create(const wxEnhMetaFileDC& dc); + static wxGraphicsContext* Create(const wxEnhMetaFileDC& metaFileDC); /** Creates a wxGraphicsContext associated with a wxImage. @@ -397,6 +405,11 @@ public: */ static wxGraphicsContext* Create(wxImage& image); + /** + Create a lightweight context that can be used only for measuring text. + */ + static wxGraphicsContext* Create(); + /** Clips drawings to the specified region. */ @@ -512,6 +525,14 @@ public: wxDouble tx = 0.0, wxDouble ty = 0.0) const; + /** + Creates a native affine transformation matrix from the passed + generic one. + + @since 2.9.4 + */ + wxGraphicsMatrix CreateMatrix(const wxAffineMatrix2DBase& mat) const; + /** Creates a native graphics path which is initially empty. */ @@ -787,15 +808,17 @@ public: virtual wxAntialiasMode GetAntialiasMode() const ; /** - Sets the interpolation quality, returns true if it supported + Sets the interpolation quality, returns true if it is supported. + + Not implemented in Cairo backend currently. */ virtual bool SetInterpolationQuality(wxInterpolationQuality interpolation) = 0; - + /** - Returns the current interpolation quality + Returns the current interpolation quality. */ virtual wxInterpolationQuality GetInterpolationQuality() const; - + /** Sets the compositing operator, returns true if it supported */ @@ -806,6 +829,66 @@ public: */ virtual wxCompositionMode GetCompositionMode() const; + + /** + Push the current state of the context's transformation matrix on a + stack. + + @see wxGraphicsContext::PopState + */ + virtual void PushState() = 0; + + /** + Pops a stored state from the stack and sets the current transformation + matrix to that state. + + @see wxGraphicsContext::PopState + */ + virtual void PopState() = 0; + + + virtual bool ShouldOffset() const; + virtual void EnableOffset(bool enable = true); + void DisableOffset(); + bool OffsetEnabled(); + + /** + Begin a new document (relevant only for printing / pdf etc.) + If there is a progress dialog, message will be shown. + */ + virtual bool StartDoc( const wxString& message ); + + /** + Done with that document (relevant only for printing / pdf etc.) + */ + virtual void EndDoc(); + + /** + Opens a new page (relevant only for printing / pdf etc.) with the given + size in points. (If both are null the default page size will be used.) + */ + virtual void StartPage( wxDouble width = 0, wxDouble height = 0 ); + + /** + Ends the current page (relevant only for printing / pdf etc.) + */ + virtual void EndPage(); + + /** + Make sure that the current content of this context is immediately visible. + */ + virtual void Flush(); + + /** + Returns the size of the graphics context in device coordinates. + */ + void GetSize(wxDouble* width, wxDouble* height) const; + + /** + Returns the resolution of the graphics context in device points per inch. + */ + virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY); + }; /** @@ -964,6 +1047,13 @@ public: */ virtual wxGraphicsBitmap CreateBitmapFromImage(const wxImage& image) = 0; + /** + Creates a wxImage from a wxGraphicsBitmap. + + This method is used by the more convenient wxGraphicsBitmap::ConvertToImage. + */ + virtual wxImage CreateImageFromBitmap(const wxGraphicsBitmap& bmp) = 0; + /** Creates wxGraphicsBitmap from a native bitmap handle. @@ -981,17 +1071,17 @@ public: /** Creates a wxGraphicsContext from a wxWindowDC */ - virtual wxGraphicsContext* CreateContext(const wxWindowDC& dc) = 0 ; + virtual wxGraphicsContext* CreateContext(const wxWindowDC& windowDC) = 0 ; /** Creates a wxGraphicsContext from a wxMemoryDC */ - virtual wxGraphicsContext* CreateContext(const wxMemoryDC& dc) = 0 ; + virtual wxGraphicsContext* CreateContext(const wxMemoryDC& memoryDC) = 0 ; /** Creates a wxGraphicsContext from a wxPrinterDC */ - virtual wxGraphicsContext* CreateContext(const wxPrinterDC& dc) = 0 ; + virtual wxGraphicsContext* CreateContext(const wxPrinterDC& printerDC) = 0 ; /** Creates a wxGraphicsContext from a wxEnhMetaFileDC. @@ -999,7 +1089,7 @@ public: This function, as wxEnhMetaFileDC class itself, is only available only under MSW. */ - virtual wxGraphicsContext* CreateContext(const wxEnhMetaFileDC& dc) = 0; + virtual wxGraphicsContext* CreateContext(const wxEnhMetaFileDC& metaFileDC) = 0; /** Creates a wxGraphicsContext associated with a wxImage. @@ -1128,6 +1218,8 @@ public: on GTK we currently default to the cairo renderer. */ static wxGraphicsRenderer* GetDefaultRenderer(); + static wxGraphicsRenderer* GetCairoRenderer(); + }; @@ -1250,7 +1342,10 @@ public: virtual bool IsIdentity() const; /** - Rotates this matrix (in radians). + Rotates this matrix clockwise (in radians). + + @param radians + Rotation angle in radians, clockwise. */ virtual void Rotate(wxDouble angle); @@ -1283,3 +1378,10 @@ public: virtual void Translate(wxDouble dx, wxDouble dy); }; + +const wxGraphicsPen wxNullGraphicsPen; +const wxGraphicsBrush wxNullGraphicsBrush; +const wxGraphicsFont wxNullGraphicsFont; +const wxGraphicsBitmap wxNullGraphicsBitmap; +const wxGraphicsMatrix wxNullGraphicsMatrix; +const wxGraphicsPath wxNullGraphicsPath;