1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxSVGFileDC
4 // Author: Chris Elliott
7 // Copyright: (c) Chris Elliott
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
15 #include "wx/string.h"
18 #define wxSVGVersion wxT("v0100")
25 class WXDLLIMPEXP_FWD_BASE wxFileOutputStream
;
27 class WXDLLIMPEXP_CORE wxSVGFileDC
: public wxDC
30 wxSVGFileDC (wxString f
);
31 wxSVGFileDC (wxString f
, int Width
, int Height
);
32 wxSVGFileDC (wxString f
, int Width
, int Height
, float dpi
);
34 virtual ~wxSVGFileDC();
36 virtual bool CanDrawBitmap() const { return true; }
37 virtual bool CanGetTextExtent() const { return true; }
39 virtual int GetDepth() const
41 wxFAIL_MSG(wxT("wxSVGFILEDC::GetDepth Call not implemented"));
47 wxFAIL_MSG(wxT("wxSVGFILEDC::Clear() Call not implemented \nNot sensible for an output file?"));
50 virtual void DestroyClippingRegion()
52 wxFAIL_MSG(wxT("wxSVGFILEDC::void Call not yet implemented"));
55 virtual wxCoord
GetCharHeight() const;
56 virtual wxCoord
GetCharWidth() const;
58 virtual void SetClippingRegion(wxCoord
WXUNUSED(x
), wxCoord
WXUNUSED(y
),
59 wxCoord
WXUNUSED(w
), wxCoord
WXUNUSED(h
))
61 wxFAIL_MSG(wxT("wxSVGFILEDC::SetClippingRegion not implemented"));
64 virtual void SetPalette(const wxPalette
& WXUNUSED(palette
))
66 wxFAIL_MSG(wxT("wxSVGFILEDC::SetPalette not implemented"));
69 virtual void GetClippingBox(wxCoord
*WXUNUSED(x
), wxCoord
*WXUNUSED(y
),
70 wxCoord
*WXUNUSED(w
), wxCoord
*WXUNUSED(h
))
72 wxFAIL_MSG(wxT("wxSVGFILEDC::GetClippingBox not implemented"));
75 virtual void SetLogicalFunction(int WXUNUSED(function
))
77 wxFAIL_MSG(wxT("wxSVGFILEDC::SetLogicalFunction Call not implemented"));
80 virtual int GetLogicalFunction() const
82 wxFAIL_MSG(wxT("wxSVGFILEDC::GetLogicalFunction() not implemented"));
86 virtual void SetBackground( const wxBrush
&brush
);
87 virtual void SetBackgroundMode( int mode
);
88 virtual void SetBrush(const wxBrush
& brush
);
89 virtual void SetFont(const wxFont
& font
);
90 virtual void SetPen(const wxPen
& pen
);
92 virtual bool IsOk() const {return m_OK
;}
94 virtual void SetMapMode( int mode
);
95 virtual void SetUserScale( double x
, double y
);
96 virtual void SetLogicalScale( double x
, double y
);
97 virtual void SetLogicalOrigin( wxCoord x
, wxCoord y
);
98 virtual void SetDeviceOrigin( wxCoord x
, wxCoord y
);
99 virtual void SetAxisOrientation( bool xLeftRight
, bool yBottomUp
);
102 virtual bool DoGetPixel(wxCoord
, wxCoord
, wxColour
*) const
104 wxFAIL_MSG(wxT("wxSVGFILEDC::DoGetPixel Call not implemented"));
108 virtual bool DoBlit(wxCoord
, wxCoord
, wxCoord
, wxCoord
, wxDC
*,
109 wxCoord
, wxCoord
, int = wxCOPY
,
110 bool = 0, int = -1, int = -1);
112 virtual void DoCrossHair(wxCoord
, wxCoord
)
114 wxFAIL_MSG(wxT("wxSVGFILEDC::CrossHair Call not implemented"));
117 virtual void DoDrawArc(wxCoord
, wxCoord
, wxCoord
, wxCoord
, wxCoord
, wxCoord
);
119 virtual void DoDrawBitmap(const wxBitmap
&, wxCoord
, wxCoord
, bool = 0);
121 virtual void DoDrawCheckMark(wxCoord x
, wxCoord y
, wxCoord w
, wxCoord h
);
123 virtual void DoDrawEllipse(wxCoord x
, wxCoord y
, wxCoord w
, wxCoord h
);
125 virtual void DoDrawEllipticArc(wxCoord x
, wxCoord y
, wxCoord w
, wxCoord h
,
126 double sa
, double ea
);
128 virtual void DoDrawIcon(const wxIcon
&, wxCoord
, wxCoord
);
130 virtual void DoDrawLine (wxCoord x1
, wxCoord y1
, wxCoord x2
, wxCoord y2
);
132 virtual void DoDrawLines(int n
, wxPoint points
[],
133 wxCoord xoffset
= 0, wxCoord yoffset
= 0);
135 virtual void DoDrawPoint(wxCoord
, wxCoord
);
137 virtual void DoDrawPolygon(int n
, wxPoint points
[], wxCoord xoffset
, wxCoord yoffset
,int fillStyle
);
139 virtual void DoDrawRectangle(wxCoord x
, wxCoord y
, wxCoord w
, wxCoord h
);
141 virtual void DoDrawRotatedText(const wxString
& text
, wxCoord x
, wxCoord y
,
144 virtual void DoDrawRoundedRectangle(wxCoord x
, wxCoord y
,
145 wxCoord w
, wxCoord h
,
146 double radius
= 20) ;
148 virtual void DoDrawText(const wxString
& text
, wxCoord x
, wxCoord y
);
150 virtual bool DoFloodFill(wxCoord
WXUNUSED(x
), wxCoord
WXUNUSED(y
),
151 const wxColour
& WXUNUSED(col
),
152 int WXUNUSED(style
) = wxFLOOD_SURFACE
)
154 wxFAIL_MSG(wxT("wxSVGFILEDC::DoFloodFill Call not implemented"));
158 virtual void DoGetSize(int * x
, int *y
) const
166 virtual void DoGetTextExtent(const wxString
& string
, wxCoord
*w
, wxCoord
*h
,
167 wxCoord
*descent
= NULL
,
168 wxCoord
*externalLeading
= NULL
,
169 const wxFont
*font
= NULL
) const;
171 virtual void DoSetClippingRegionAsRegion(const wxRegion
& WXUNUSED(region
))
173 wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetClippingRegionAsRegion Call not yet implemented"));
176 void Init (wxString f
, int Width
, int Height
, float dpi
);
180 void write( const wxString
&s
);
183 wxFileOutputStream
*m_outfile
;
185 int m_sub_images
; // number of png format images we have
187 bool m_graphics_changed
;
188 int m_width
, m_height
;
191 DECLARE_ABSTRACT_CLASS(wxSVGFileDC
)
194 #endif // _WX_DCSVG_H_