X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8acd14d1779dd5610b0fa16b0863adc7df5d9a82..859588540321276b8e813f479dbedbd53f23a0c5:/include/wx/dcgraph.h?ds=sidebyside diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h old mode 100755 new mode 100644 index 894e33ea56..7ac6f8b47e --- a/include/wx/dcgraph.h +++ b/include/wx/dcgraph.h @@ -16,10 +16,9 @@ #include "wx/geometry.h" #include "wx/dynarray.h" +#include "wx/graphics.h" -class WXDLLEXPORT wxGraphicsContext; -class WXDLLEXPORT wxWindowDC; - +class WXDLLIMPEXP_FWD_CORE wxWindowDC; #ifdef __WXMAC__ #define wxGCDC wxDC @@ -27,9 +26,9 @@ class WXDLLEXPORT wxWindowDC; class WXDLLEXPORT wxGCDC: #ifdef __WXMAC__ - public wxDCBase + public wxDCBase #else - public wxDC + public wxDC #endif { DECLARE_DYNAMIC_CLASS(wxGCDC) @@ -37,6 +36,9 @@ class WXDLLEXPORT wxGCDC: public: wxGCDC(const wxWindowDC& dc); +#ifdef __WXMSW__ + wxGCDC( const wxMemoryDC& dc); +#endif wxGCDC(); virtual ~wxGCDC(); @@ -48,11 +50,14 @@ public: virtual void Clear(); - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; } - virtual void EndDoc(void) {} + virtual bool StartDoc( const wxString& message ); + virtual void EndDoc(); - virtual void StartPage(void) {} - virtual void EndPage(void) {} + virtual void StartPage(); + virtual void EndPage(); + + // flushing the content of this dc immediately onto screen + virtual void Flush(); virtual void SetFont(const wxFont& font); virtual void SetPen(const wxPen& pen); @@ -85,9 +90,9 @@ public: virtual void ComputeScaleAndOrigin(); - wxGraphicsContext* GetGraphicContext() { return m_graphicContext; } - virtual void SetGraphicsContext( wxGraphicsContext* ctx ) - { delete m_graphicContext; m_graphicContext = ctx; } + wxGraphicsContext* GetGraphicsContext() { return m_graphicContext; } + virtual void SetGraphicsContext( wxGraphicsContext* ctx ); + protected: // the true implementations virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, @@ -108,7 +113,7 @@ protected: virtual void DoDrawPoint(wxCoord x, wxCoord y); #if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points); + virtual void DoDrawSpline(const wxPointList *points); #endif virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2); @@ -143,6 +148,14 @@ protected: wxDC *source, wxCoord xsrc, wxCoord ysrc, int 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, + wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); + virtual void DoGetSize(int *,int *) const; virtual void DoGetSizeMM(int* width, int* height) const; @@ -163,15 +176,18 @@ protected: wxCoord *x, wxCoord *y, wxCoord *descent = NULL, wxCoord *externalLeading = NULL, - wxFont *theFont = NULL) const; + const wxFont *theFont = NULL) const; virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const; protected: // scaling variables + bool m_logicalFunctionSupported; double m_mm_to_pix_x, m_mm_to_pix_y; - - double m_formerScaleX, m_formerScaleY; + wxGraphicsMatrix m_matrixOriginal; + wxGraphicsMatrix m_matrixCurrent; + + double m_formerScaleX, m_formerScaleY; wxGraphicsContext* m_graphicContext; };