From 1264ae9af4f4aa3bc9f6495e84a7888cd16809da Mon Sep 17 00:00:00 2001 From: Emmanuel Pacaud Date: Tue, 2 May 2006 23:35:06 +0200 Subject: [PATCH] SVG: Really use width and height in point unit. I guess it makes more sense to use a unit for specifying image size that doesn't depend on context. --- src/cairo-svg-surface.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c index b713fc9b0..e06afb7f4 100644 --- a/src/cairo-svg-surface.c +++ b/src/cairo-svg-surface.c @@ -1625,6 +1625,7 @@ _cairo_svg_document_create (cairo_output_stream_t *output_stream, cairo_svg_document_t *document; xmlDocPtr doc; xmlNodePtr node; + xmlBufferPtr xml_buffer; char buffer[CAIRO_SVG_DTOSTR_BUFFER_LEN]; document = malloc (sizeof (cairo_svg_document_t)); @@ -1657,10 +1658,30 @@ _cairo_svg_document_create (cairo_output_stream_t *output_stream, document->xml_node_main = node; document->xml_node_defs = xmlNewChild (node, NULL, CC2XML ("defs"), NULL); + xml_buffer = xmlBufferCreate (); + _cairo_dtostr (buffer, sizeof buffer, width); - xmlSetProp (node, CC2XML ("width"), CC2XML (buffer)); + xmlBufferCat (xml_buffer, C2XML (buffer)); + xmlBufferCat (xml_buffer, CC2XML ("pt")); + xmlSetProp (node, CC2XML ("width"), C2XML (xmlBufferContent (xml_buffer))); + xmlBufferEmpty (xml_buffer); + _cairo_dtostr (buffer, sizeof buffer, height); - xmlSetProp (node, CC2XML ("height"), CC2XML (buffer)); + xmlBufferCat (xml_buffer, C2XML (buffer)); + xmlBufferCat (xml_buffer, CC2XML ("pt")); + xmlSetProp (node, CC2XML ("height"), C2XML (xmlBufferContent (xml_buffer))); + xmlBufferEmpty (xml_buffer); + + xmlBufferCat (xml_buffer, CC2XML ("0 0 ")); + _cairo_dtostr (buffer, sizeof buffer, width); + xmlBufferCat (xml_buffer, C2XML (buffer)); + xmlBufferCat (xml_buffer, CC2XML (" ")); + _cairo_dtostr (buffer, sizeof buffer, height); + xmlBufferCat (xml_buffer, C2XML (buffer)); + xmlSetProp (node, CC2XML ("viewBox"), C2XML (xmlBufferContent (xml_buffer))); + + xmlBufferFree (xml_buffer); + xmlSetProp (node, CC2XML ("xmlns"), CC2XML ("http://www.w3.org/2000/svg")); xmlSetProp (node, CC2XML ("xmlns:xlink"), CC2XML ("http://www.w3.org/1999/xlink")); xmlSetProp (node, CC2XML ("version"), CC2XML ("1.2"));