X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b687dd2fc1680f149a740c61b095b6ac1f64ef08..a029059f92e75b1cff50d0c66be89e6b2b82c955:/include/wx/dcgraph.h diff --git a/include/wx/dcgraph.h b/include/wx/dcgraph.h old mode 100755 new mode 100644 index 3805a4a7e1..3e9614f239 --- a/include/wx/dcgraph.h +++ b/include/wx/dcgraph.h @@ -14,31 +14,43 @@ #if wxUSE_GRAPHICS_CONTEXT +#include "wx/dc.h" #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 -#endif - -class WXDLLEXPORT wxGCDC: -#ifdef __WXMAC__ - public wxDCBase -#else - public wxDC -#endif +class WXDLLIMPEXP_CORE wxGCDC: public wxDC { +public: + wxGCDC( const wxWindowDC& dc ); + wxGCDC( const wxMemoryDC& dc ); +#if wxUSE_PRINTING_ARCHITECTURE + wxGCDC( const wxPrinterDC& dc ); +#endif + wxGCDC(); + virtual ~wxGCDC(); + + wxGraphicsContext* GetGraphicsContext(); + void SetGraphicsContext( wxGraphicsContext* ctx ); + DECLARE_DYNAMIC_CLASS(wxGCDC) DECLARE_NO_COPY_CLASS(wxGCDC) +}; + +class WXDLLIMPEXP_CORE wxGCDCImpl: public wxDCImpl +{ public: - wxGCDC(const wxWindowDC& dc); - wxGCDC(); - virtual ~wxGCDC(); + wxGCDCImpl( wxDC *owner, const wxWindowDC& dc ); + wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ); +#if wxUSE_PRINTING_ARCHITECTURE + wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ); +#endif + wxGCDCImpl( wxDC *owner ); + + virtual ~wxGCDCImpl(); void Init(); @@ -48,11 +60,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); @@ -72,12 +87,7 @@ public: virtual wxSize GetPPI() const; virtual void SetMapMode(int mode); - virtual void SetUserScale(double x, double y); - virtual void SetLogicalScale(double x, double y); - virtual void SetLogicalOrigin(wxCoord x, wxCoord y); - virtual void SetDeviceOrigin(wxCoord x, wxCoord y); - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp); virtual void SetLogicalFunction(int function); virtual void SetTextForeground(const wxColour& colour); @@ -88,7 +98,6 @@ public: wxGraphicsContext* GetGraphicsContext() { return m_graphicContext; } virtual void SetGraphicsContext( wxGraphicsContext* ctx ); -protected: // the true implementations virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, int style = wxFLOOD_SURFACE); @@ -108,7 +117,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 +152,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; @@ -155,7 +172,7 @@ protected: wxCoord xoffset, wxCoord yoffset, int fillStyle); - virtual void DoSetClippingRegionAsRegion(const wxRegion& region); + virtual void DoSetDeviceClippingRegion(const wxRegion& region); virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height); @@ -163,19 +180,24 @@ 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; + wxGraphicsMatrix m_matrixOriginal; + wxGraphicsMatrix m_matrixCurrent; double m_formerScaleX, m_formerScaleY; wxGraphicsContext* m_graphicContext; + + DECLARE_CLASS(wxGCDCImpl) + DECLARE_NO_COPY_CLASS(wxGCDCImpl) }; -#endif - +#endif // wxUSE_GRAPHICS_CONTEXT #endif // _WX_GRAPHICS_DC_H_