X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e10778e0e79ad94ac74da5fd1bb087336be4321..49efebe2471223dafe8591aeeb194b8d4adc78bd:/include/wx/dcsvg.h diff --git a/include/wx/dcsvg.h b/include/wx/dcsvg.h index 92acc4cdd6..cf492e7938 100644 --- a/include/wx/dcsvg.h +++ b/include/wx/dcsvg.h @@ -15,6 +15,8 @@ #include "wx/string.h" #include "wx/dc.h" +#if wxUSE_SVG + #define wxSVGVersion wxT("v0100") #ifdef __BORLANDC__ @@ -24,14 +26,19 @@ class WXDLLIMPEXP_FWD_BASE wxFileOutputStream; -class WXDLLIMPEXP_CORE wxSVGFileDC : public wxDC + + +class WXDLLIMPEXP_FWD_CORE wxSVGFileDC; + +class WXDLLIMPEXP_CORE wxSVGFileDCImpl : public wxDCImpl { public: - wxSVGFileDC (wxString f); - wxSVGFileDC (wxString f, int Width, int Height); - wxSVGFileDC (wxString f, int Width, int Height, float dpi); + wxSVGFileDCImpl( wxSVGFileDC *owner, const wxString &filename, + int width=320, int height=240, double dpi=72.0 ); + + virtual ~wxSVGFileDCImpl(); - virtual ~wxSVGFileDC(); + bool IsOk() const { return m_OK; } virtual bool CanDrawBitmap() const { return true; } virtual bool CanGetTextExtent() const { return true; } @@ -72,15 +79,15 @@ public: wxFAIL_MSG(wxT("wxSVGFILEDC::GetClippingBox not implemented")); } - virtual void SetLogicalFunction(int WXUNUSED(function)) + virtual void SetLogicalFunction(wxRasterOperationMode WXUNUSED(function)) { wxFAIL_MSG(wxT("wxSVGFILEDC::SetLogicalFunction Call not implemented")); } - virtual int GetLogicalFunction() const + virtual wxRasterOperationMode GetLogicalFunction() const { wxFAIL_MSG(wxT("wxSVGFILEDC::GetLogicalFunction() not implemented")); - return -1; + return wxCOPY; } virtual void SetBackground( const wxBrush &brush ); @@ -89,15 +96,6 @@ public: virtual void SetFont(const wxFont& font); virtual void SetPen(const wxPen& pen); - virtual bool IsOk() const {return m_OK;} - - 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 ); - private: virtual bool DoGetPixel(wxCoord, wxCoord, wxColour *) const { @@ -106,7 +104,7 @@ private: } virtual bool DoBlit(wxCoord, wxCoord, wxCoord, wxCoord, wxDC *, - wxCoord, wxCoord, int = wxCOPY, + wxCoord, wxCoord, wxRasterOperationMode = wxCOPY, bool = 0, int = -1, int = -1); virtual void DoCrossHair(wxCoord, wxCoord) @@ -116,7 +114,7 @@ private: virtual void DoDrawArc(wxCoord, wxCoord, wxCoord, wxCoord, wxCoord, wxCoord); - virtual void DoDrawBitmap(const wxBitmap &, wxCoord, wxCoord, bool = 0); + virtual void DoDrawBitmap(const wxBitmap &, wxCoord, wxCoord, bool = false); virtual void DoDrawCheckMark(wxCoord x, wxCoord y, wxCoord w, wxCoord h); @@ -134,7 +132,9 @@ private: virtual void DoDrawPoint(wxCoord, wxCoord); - virtual void DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset,int fillStyle); + virtual void DoDrawPolygon(int n, wxPoint points[], + wxCoord xoffset, wxCoord yoffset, + wxPolygonFillMode fillStyle); virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord w, wxCoord h); @@ -149,7 +149,7 @@ private: virtual bool DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxColour& WXUNUSED(col), - int WXUNUSED(style) = wxFLOOD_SURFACE) + wxFloodFillStyle WXUNUSED(style) = wxFLOOD_SURFACE) { wxFAIL_MSG(wxT("wxSVGFILEDC::DoFloodFill Call not implemented")); return false; @@ -168,12 +168,21 @@ private: wxCoord *externalLeading = NULL, const wxFont *font = NULL) const; - virtual void DoSetClippingRegionAsRegion(const wxRegion& WXUNUSED(region)) + virtual void DoSetDeviceClippingRegion(const wxRegion& WXUNUSED(region)) + { + wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetDeviceClippingRegion not yet implemented")); + } + + virtual void DoSetClippingRegion( int WXUNUSED(x), int WXUNUSED(y), int WXUNUSED(width), int WXUNUSED(height) ) { - wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetClippingRegionAsRegion Call not yet implemented")); + wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetClippingRegion not yet implemented")); } - void Init (wxString f, int Width, int Height, float dpi); + virtual void DoGetSizeMM( int *width, int *height ) const; + + virtual wxSize GetPPI() const; + + void Init (const wxString &filename, int width, int height, double dpi); void NewGraphics(); @@ -186,9 +195,25 @@ private: bool m_OK; bool m_graphics_changed; int m_width, m_height; + double m_dpi; private: - DECLARE_ABSTRACT_CLASS(wxSVGFileDC) + DECLARE_ABSTRACT_CLASS(wxSVGFileDCImpl) }; + +class WXDLLIMPEXP_CORE wxSVGFileDC : public wxDC +{ +public: + wxSVGFileDC(const wxString& filename, + int width = 320, + int height = 240, + double dpi = 72.0) + : wxDC(new wxSVGFileDCImpl(this, filename, width, height, dpi)) + { + } +}; + +#endif // wxUSE_SVG + #endif // _WX_DCSVG_H_