Allow to set the SVG title when creating a wxSVGFileDC.

This commit is contained in:
Maarten Bent 2016-03-15 23:50:33 +01:00
parent 2171d407e1
commit 045265a7bb
3 changed files with 17 additions and 11 deletions

View File

@ -66,7 +66,8 @@ class WXDLLIMPEXP_CORE wxSVGFileDCImpl : public wxDCImpl
{
public:
wxSVGFileDCImpl( wxSVGFileDC *owner, const wxString &filename,
int width=320, int height=240, double dpi=72.0 );
int width = 320, int height = 240, double dpi = 72.0,
const wxString &title = wxString() );
virtual ~wxSVGFileDCImpl();
@ -214,7 +215,8 @@ private:
virtual wxSize GetPPI() const wxOVERRIDE;
void Init (const wxString &filename, int width, int height, double dpi);
void Init (const wxString &filename, int width, int height,
double dpi, const wxString &title);
void write( const wxString &s );
@ -254,8 +256,9 @@ public:
wxSVGFileDC(const wxString& filename,
int width = 320,
int height = 240,
double dpi = 72.0)
: wxDC(new wxSVGFileDCImpl(this, filename, width, height, dpi))
double dpi = 72.0,
const wxString& title = wxString())
: wxDC(new wxSVGFileDCImpl(this, filename, width, height, dpi, title))
{
}

View File

@ -40,9 +40,11 @@ class wxSVGFileDC : public wxDC
public:
/**
Initializes a wxSVGFileDC with the given @a f filename with the given
@a Width and @a Height at @a dpi resolution.
@a Width and @a Height at @a dpi resolution, and an optional @a title.
The title provides a readable name for the SVG document.
*/
wxSVGFileDC(const wxString& filename, int width = 320, int height = 240, double dpi = 72);
wxSVGFileDC(const wxString& filename, int width = 320, int height = 240,
double dpi = 72, const wxString& title = wxString());
/**
Destructor.

View File

@ -378,13 +378,14 @@ void wxSVGFileDC::SetBitmapHandler(wxSVGBitmapHandler* handler)
wxIMPLEMENT_ABSTRACT_CLASS(wxSVGFileDCImpl, wxDC);
wxSVGFileDCImpl::wxSVGFileDCImpl( wxSVGFileDC *owner, const wxString &filename,
int width, int height, double dpi ) :
int width, int height, double dpi, const wxString &title ) :
wxDCImpl( owner )
{
Init( filename, width, height, dpi );
Init( filename, width, height, dpi, title );
}
void wxSVGFileDCImpl::Init (const wxString &filename, int Width, int Height, double dpi)
void wxSVGFileDCImpl::Init (const wxString &filename, int Width, int Height,
double dpi, const wxString &title)
{
m_width = Width;
m_height = Height;
@ -430,9 +431,9 @@ void wxSVGFileDCImpl::Init (const wxString &filename, int Width, int Height, dou
write(s);
s.Printf( wxT(" width=\"%scm\" height=\"%scm\" viewBox=\"0 0 %d %d \">\n"), NumStr(float(Width)/dpi*2.54), NumStr(float(Height)/dpi*2.54), Width, Height );
write(s);
s = wxT("<title>SVG Picture created as ") + wxFileName(filename).GetFullName() + wxT(" </title>\n");
s = wxT("<title>") + title + wxT("</title>\n");
write(s);
s = wxString (wxT("<desc>Picture generated by wxSVG ")) + wxSVGVersion + wxT(" </desc>\n");
s = wxString (wxT("<desc>Picture generated by wxSVG ")) + wxSVGVersion + wxT("</desc>\n");
write(s);
s = wxT("<g style=\"fill:black; stroke:black; stroke-width:1\">\n");
write(s);