X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fdaad94e75273fa586ec9af9d53518222f9699d0..14b682f7c36ecf660c2f0bd5c791b8d36d9775f8:/include/wx/dcgraph.h diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h index 0c2dec4771..c0fa7451b1 100644 --- a/include/wx/dcgraph.h +++ b/include/wx/dcgraph.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/graphdc.h +// Name: wx/dcgraph.h // Purpose: graphics context device bridge header // Author: Stefan Csomor // Modified by: @@ -26,15 +26,30 @@ class WXDLLIMPEXP_CORE wxGCDC: public wxDC public: wxGCDC( const wxWindowDC& dc ); wxGCDC( const wxMemoryDC& dc ); +#if wxUSE_PRINTING_ARCHITECTURE wxGCDC( const wxPrinterDC& dc ); +#endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE + wxGCDC( const wxEnhMetaFileDC& dc ); +#endif + wxGCDC(wxGraphicsContext* context); + wxGCDC(); virtual ~wxGCDC(); - - wxGraphicsContext* GetGraphicsContext(); + + wxGraphicsContext* GetGraphicsContext() const; void SetGraphicsContext( wxGraphicsContext* ctx ); - + +#ifdef __WXMSW__ + // override wxDC virtual functions to provide access to HDC associated with + // this Graphics object (implemented in src/msw/graphics.cpp) + virtual WXHDC AcquireHDC(); + virtual void ReleaseHDC(WXHDC hdc); +#endif // __WXMSW__ + +private: DECLARE_DYNAMIC_CLASS(wxGCDC) - DECLARE_NO_COPY_CLASS(wxGCDC) + wxDECLARE_NO_COPY_CLASS(wxGCDC); }; @@ -43,9 +58,14 @@ class WXDLLIMPEXP_CORE wxGCDCImpl: public wxDCImpl public: wxGCDCImpl( wxDC *owner, const wxWindowDC& dc ); wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ); +#if wxUSE_PRINTING_ARCHITECTURE wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ); +#endif +#if defined(__WXMSW__) && wxUSE_ENH_METAFILE + wxGCDCImpl( wxDC *owner, const wxEnhMetaFileDC& dc ); +#endif wxGCDCImpl( wxDC *owner ); - + virtual ~wxGCDCImpl(); void Init(); @@ -61,7 +81,7 @@ public: virtual void StartPage(); virtual void EndPage(); - + // flushing the content of this dc immediately onto screen virtual void Flush(); @@ -82,21 +102,19 @@ public: virtual int GetDepth() const; virtual wxSize GetPPI() const; - virtual void SetMapMode(int mode); - - virtual void SetLogicalFunction(int function); + virtual void SetLogicalFunction(wxRasterOperationMode function); virtual void SetTextForeground(const wxColour& colour); virtual void SetTextBackground(const wxColour& colour); virtual void ComputeScaleAndOrigin(); - wxGraphicsContext* GetGraphicsContext() { return m_graphicContext; } + wxGraphicsContext* GetGraphicsContext() const { return m_graphicContext; } virtual void SetGraphicsContext( wxGraphicsContext* ctx ); - + // the true implementations virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - int style = wxFLOOD_SURFACE); + wxFloodFillStyle style = wxFLOOD_SURFACE); virtual void DoGradientFillLinear(const wxRect& rect, const wxColour& initialColour, @@ -145,15 +163,16 @@ public: double angle); virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1); + wxDC *source, wxCoord xsrc, wxCoord ysrc, + wxRasterOperationMode rop = wxCOPY, bool useMask = false, + wxCoord xsrcMask = -1, wxCoord ysrcMask = -1); virtual bool DoStretchBlit(wxCoord xdest, wxCoord ydest, wxCoord dstWidth, wxCoord dstHeight, wxDC *source, wxCoord xsrc, wxCoord ysrc, wxCoord srcWidth, wxCoord srcHeight, - int rop = wxCOPY, bool useMask = false, + wxRasterOperationMode = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); virtual void DoGetSize(int *,int *) const; @@ -162,11 +181,11 @@ public: virtual void DoDrawLines(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset); virtual void DoDrawPolygon(int n, wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - int fillStyle = wxODDEVEN_RULE); + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle = wxODDEVEN_RULE); virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - int fillStyle); + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle); virtual void DoSetDeviceClippingRegion(const wxRegion& region); virtual void DoSetClippingRegion(wxCoord x, wxCoord y, @@ -180,19 +199,22 @@ public: virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const; +#ifdef __WXMSW__ + virtual wxRect MSWApplyGDIPlusTransform(const wxRect& r) const; +#endif // __WXMSW__ + protected: // scaling variables bool m_logicalFunctionSupported; - double m_mm_to_pix_x, m_mm_to_pix_y; wxGraphicsMatrix m_matrixOriginal; wxGraphicsMatrix m_matrixCurrent; double m_formerScaleX, m_formerScaleY; wxGraphicsContext* m_graphicContext; - + DECLARE_CLASS(wxGCDCImpl) - DECLARE_NO_COPY_CLASS(wxGCDCImpl) + wxDECLARE_NO_COPY_CLASS(wxGCDCImpl); }; #endif // wxUSE_GRAPHICS_CONTEXT