-class WXDLLIMPEXP_CORE wxSVGFileDC : public wxDC
-{
-
- private:
- wxFileOutputStream * m_outfile ;
- wxString m_filename ;
- //holds number of png format images we have
- int m_sub_images ;
- bool m_OK, m_graphics_changed ;
- int m_width, m_height ;
-
- double
- m_logicalScaleX,
- m_logicalScaleY,
- m_userScaleX,
- m_userScaleY,
- m_scaleX,
- m_scaleY,
- m_OriginX,
- m_OriginY,
- m_mm_to_pix_x,
- m_mm_to_pix_y;
-
- bool
- m_needComputeScaleX,
- m_needComputeScaleY; // not yet used
-
-
- bool DoGetPixel(wxCoord, wxCoord, class wxColour *) const
- { wxASSERT_MSG (false, wxT("wxSVGFILEDC::DoGetPixel Call not implemented")); return true; }
-
- virtual bool DoBlit(wxCoord, wxCoord, wxCoord, wxCoord, class wxDC *,
- wxCoord, wxCoord, int = wxCOPY, bool = 0, int = -1, int = -1) ;
-
- void DoCrossHair(wxCoord, wxCoord)
- { wxASSERT_MSG (false, wxT("wxSVGFILEDC::CrossHair Call not implemented")); return ; }
-
- void DoDrawArc(wxCoord, wxCoord, wxCoord, wxCoord, wxCoord, wxCoord);
-
- void DoDrawBitmap(const class wxBitmap &, wxCoord, wxCoord, bool = 0) ;
-
- void DoDrawCheckMark(wxCoord x, wxCoord y, wxCoord width, wxCoord height) ;
-
- void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) ;
-
- void DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea) ;
-
- void DoDrawIcon(const class wxIcon &, wxCoord, wxCoord) ;
-
- void DoDrawLine (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) ;
-
- void DoDrawPoint(wxCoord, wxCoord) ;
-
- void DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset,int fillStyle) ;
-
- void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) ;
-
- void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle) ;
-
- void DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius = 20) ;
-
- void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
-
- bool DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), const wxColour& WXUNUSED(col),
- int WXUNUSED(style) = wxFLOOD_SURFACE)
- { wxASSERT_MSG (false, wxT("wxSVGFILEDC::DoFloodFill Call not implemented")); return false ; }
-
- void DoGetSize(int * x, int *y) const { *x = m_width; *y = m_height ; return ; }
-
- void DoGetTextExtent(const wxString& string, wxCoord *w, wxCoord *h, wxCoord *descent = NULL, wxCoord *externalLeading = NULL, const wxFont *font = NULL) const ;
-
- void DoSetClippingRegionAsRegion(const class wxRegion &)
- { wxASSERT_MSG (false, wxT("wxSVGFILEDC::DoSetClippingRegionAsRegion Call not yet implemented")); return ; }
-
- void Init (wxString f, int Width, int Height, float dpi);
-
- void NewGraphics () ;
-
-#ifdef XDEV2LOG
-#undef XDEV2LOG
-#endif
- wxCoord XDEV2LOG(wxCoord x) const
- {
- wxCoord new_x = x - m_deviceOriginX;
- if (new_x > 0)
- return (wxCoord)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
- else
- return (wxCoord)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
- }
-#ifdef XDEV2LOGREL
-#undef XDEV2LOGREL
-#endif
- wxCoord XDEV2LOGREL(wxCoord x) const
- {
- if (x > 0)
- return (wxCoord)((double)(x) / m_scaleX + 0.5);
- else
- return (wxCoord)((double)(x) / m_scaleX - 0.5);
- }
-#ifdef YDEV2LOG
-#undef YDEV2LOG
-#endif
- wxCoord YDEV2LOG(wxCoord y) const
- {
- wxCoord new_y = y - m_deviceOriginY;
- if (new_y > 0)
- return (wxCoord)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
- else
- return (wxCoord)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
- }
-#ifdef YDEV2LOGREL
-#undef YDEV2LOGREL
-#endif
- wxCoord YDEV2LOGREL(wxCoord y) const
- {
- if (y > 0)
- return (wxCoord)((double)(y) / m_scaleY + 0.5);
- else
- return (wxCoord)((double)(y) / m_scaleY - 0.5);
- }
-#ifdef XLOG2DEV
-#undef XLOG2DEV
-#endif
- wxCoord XLOG2DEV(wxCoord x) const
- {
- wxCoord new_x = x - m_logicalOriginX;
- if (new_x > 0)
- return (wxCoord)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
- else
- return (wxCoord)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
- }
-#ifdef XLOG2DEVREL
-#undef XLOG2DEVREL
-#endif
- wxCoord XLOG2DEVREL(wxCoord x) const
- {
- if (x > 0)
- return (wxCoord)((double)(x) * m_scaleX + 0.5);
- else
- return (wxCoord)((double)(x) * m_scaleX - 0.5);
- }
-#ifdef YLOG2DEV
-#undef YLOG2DEV
-#endif
- wxCoord YLOG2DEV(wxCoord y) const
- {
- wxCoord new_y = y - m_logicalOriginY;
- if (new_y > 0)
- return (wxCoord)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
- else
- return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
- }
-#ifdef YLOG2DEVREL
-#undef YLOG2DEVREL
-#endif
- wxCoord YLOG2DEVREL(wxCoord y) const
- {
- if (y > 0)
- return (wxCoord)((double)(y) * m_scaleY + 0.5);
- else
- return (wxCoord)((double)(y) * m_scaleY - 0.5);
- }
-
- void write(const wxString &s);
-
- public:
-
- wxSVGFileDC (wxString f);
- wxSVGFileDC (wxString f, int Width, int Height);
- wxSVGFileDC (wxString f, int Width, int Height, float dpi);
- ~wxSVGFileDC();