diff options
author | Miguel Revilla | 2016-08-11 12:54:05 +0200 |
---|---|---|
committer | Miguel Revilla | 2016-08-11 12:54:05 +0200 |
commit | fac7826cc4709391b0fe96bdd69cea38386b4933 (patch) | |
tree | c80ae0e13e523c3772037c2313c11add1727d42a | |
parent | 63bf83bc99b7a52471d23376c887e4c84d1d7f72 (diff) | |
download | aur-fac7826cc4709391b0fe96bdd69cea38386b4933.tar.gz |
Update to 1.5.9 which now includes by upstream the changes made by the patch in 1.5.8-2
-rw-r--r-- | .SRCINFO | 12 | ||||
-rw-r--r-- | PKGBUILD | 15 | ||||
-rw-r--r-- | wxsvg-1.5.8-wxSVGMatrix.patch | 949 |
3 files changed, 9 insertions, 967 deletions
@@ -1,9 +1,9 @@ # Generated by mksrcinfo v8 -# Wed Aug 3 20:27:51 UTC 2016 +# Thu Aug 11 10:54:03 UTC 2016 pkgbase = wxsvg pkgdesc = C++ library to create, manipulate and render SVG files - pkgver = 1.5.8 - pkgrel = 2 + pkgver = 1.5.9 + pkgrel = 1 url = http://wxsvg.sourceforge.net/ arch = i686 arch = x86_64 @@ -13,10 +13,8 @@ pkgbase = wxsvg depends = ffmpeg-compat depends = webkitgtk2 options = !libtool - source = http://downloads.sourceforge.net/project/wxsvg/wxsvg/1.5.8/wxsvg-1.5.8.tar.bz2 - source = wxsvg-1.5.8-wxSVGMatrix.patch - md5sums = a1df94fd485a16d5c71ee8ba22dde160 - md5sums = 2840378a1977739b2365df2c38e46b1f + source = http://downloads.sourceforge.net/project/wxsvg/wxsvg/1.5.9/wxsvg-1.5.9.tar.bz2 + md5sums = 02d715277d0ac7b28288c3c40b8cc087 pkgname = wxsvg @@ -4,23 +4,16 @@ # Contributor: Daniel J Griffiths <ghost1227@archlinux.us> pkgname=wxsvg -pkgver=1.5.8 -pkgrel=2 +pkgver=1.5.9 +pkgrel=1 pkgdesc="C++ library to create, manipulate and render SVG files" arch=('i686' 'x86_64') url="http://wxsvg.sourceforge.net/" license=('custom:wxWindows') depends=('wxgtk' 'ffmpeg' 'ffmpeg-compat' 'webkitgtk2') options=('!libtool') -source=("http://downloads.sourceforge.net/project/wxsvg/wxsvg/${pkgver}/wxsvg-${pkgver}.tar.bz2" - "wxsvg-1.5.8-wxSVGMatrix.patch") -md5sums=('a1df94fd485a16d5c71ee8ba22dde160' - '2840378a1977739b2365df2c38e46b1f') - -prepare() { - cd "${srcdir}/${pkgname}-${pkgver}" - patch -p1 < ../wxsvg-1.5.8-wxSVGMatrix.patch -} +source=("http://downloads.sourceforge.net/project/wxsvg/wxsvg/${pkgver}/wxsvg-${pkgver}.tar.bz2") +md5sums=('02d715277d0ac7b28288c3c40b8cc087') build() { cd "${srcdir}/${pkgname}-${pkgver}" diff --git a/wxsvg-1.5.8-wxSVGMatrix.patch b/wxsvg-1.5.8-wxSVGMatrix.patch deleted file mode 100644 index edef919ac391..000000000000 --- a/wxsvg-1.5.8-wxSVGMatrix.patch +++ /dev/null @@ -1,949 +0,0 @@ -diff -rup wxsvg-1.5.8/include/wxSVG/SVGCanvasItem.h wxsvg/include/wxSVG/SVGCanvasItem.h ---- wxsvg-1.5.8/include/wxSVG/SVGCanvasItem.h 2016-01-09 23:31:15.000000000 +0000 -+++ wxsvg/include/wxSVG/SVGCanvasItem.h 2016-07-27 09:54:21.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Canvas items - // Author: Alex Thuering - // Created: 2005/05/09 --// RCS-ID: $Id: SVGCanvasItem.h,v 1.28 2016/01/09 23:31:15 ntalex Exp $ -+// RCS-ID: $Id: SVGCanvasItem.h,v 1.29 2016/07/27 08:54:21 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ///////////////////////////////////////////////////////////////////////////// -@@ -44,9 +44,9 @@ class wxSVGCanvasItem { - wxSVGCanvasItemType GetType() { return m_type; } - - /** returns the bounding box of the item */ -- virtual wxSVGRect GetBBox(const wxSVGMatrix& matrix = *(wxSVGMatrix*)NULL) { return wxSVGRect(); } -+ virtual wxSVGRect GetBBox(const wxSVGMatrix* matrix = NULL) { return wxSVGRect(); } - virtual wxSVGRect GetResultBBox(const wxCSSStyleDeclaration& style, -- const wxSVGMatrix& matrix = *(wxSVGMatrix*)NULL) { return GetBBox(); } -+ const wxSVGMatrix* matrix = NULL) { return GetBBox(matrix); } - - protected: - wxSVGCanvasItemType m_type; -@@ -114,8 +114,8 @@ struct wxSVGCanvasTextChunk { - wxSVGCanvasTextCharList chars; - wxCSSStyleDeclaration style; - wxSVGMatrix matrix; -- wxSVGRect GetBBox(const wxSVGMatrix& matrix); -- wxSVGRect GetBBox() { return GetBBox(*(wxSVGMatrix*)NULL); } -+ wxSVGRect GetBBox(const wxSVGMatrix* matrix); -+ wxSVGRect GetBBox() { return GetBBox(NULL); } - }; - - WX_DECLARE_OBJARRAY(wxSVGCanvasTextChunk, wxSVGCanvasTextChunkList); -@@ -128,7 +128,7 @@ class wxSVGCanvasText: public wxSVGCanva - virtual ~wxSVGCanvasText(); - - virtual void Init(wxSVGTextElement& element, const wxCSSStyleDeclaration& style, wxSVGMatrix* matrix); -- virtual wxSVGRect GetBBox(const wxSVGMatrix& matrix = *(wxSVGMatrix*)NULL); -+ virtual wxSVGRect GetBBox(const wxSVGMatrix* matrix = NULL); - virtual long GetNumberOfChars(); - virtual double GetComputedTextLength(); - virtual double GetSubStringLength(unsigned long charnum, unsigned long nchars); -diff -rup wxsvg-1.5.8/src/cairo/SVGCanvasCairo.cpp wxsvg/src/cairo/SVGCanvasCairo.cpp ---- wxsvg-1.5.8/src/cairo/SVGCanvasCairo.cpp 2015-09-19 18:18:23.000000000 +0100 -+++ wxsvg/src/cairo/SVGCanvasCairo.cpp 2016-07-27 09:54:21.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Cairo render - // Author: Alex Thuering - // Created: 2005/05/12 --// RCS-ID: $Id: SVGCanvasCairo.cpp,v 1.33 2015/09/19 17:18:23 ntalex Exp $ -+// RCS-ID: $Id: SVGCanvasCairo.cpp,v 1.34 2016/07/27 08:54:21 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -451,7 +451,8 @@ void wxSVGCanvasCairo::DrawCanvasPath(wx - int dx = int(floor(stdX * 3 * sqrt(2 * M_PI) / 4 + 0.5)); - int dy = int(floor(stdY * 3 * sqrt(2 * M_PI) / 4 + 0.5)); - -- wxSVGRect rect = canvasPath.GetResultBBox(style, matrix.Inverse()); -+ wxSVGMatrix invMatrix = matrix.Inverse(); -+ wxSVGRect rect = canvasPath.GetResultBBox(style, &invMatrix); - rect.SetX(rect.GetX() - 2*dx); - rect.SetY(rect.GetY() - 2*dy); - rect.SetWidth(rect.GetWidth() + 4*dx); -diff -rup wxsvg-1.5.8/src/cairo/SVGCanvasPathCairo.cpp wxsvg/src/cairo/SVGCanvasPathCairo.cpp ---- wxsvg-1.5.8/src/cairo/SVGCanvasPathCairo.cpp 2014-11-23 11:36:16.000000000 +0000 -+++ wxsvg/src/cairo/SVGCanvasPathCairo.cpp 2016-07-27 09:54:21.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Cairo canvas path - // Author: Alex Thuering - // Created: 2005/05/12 --// RCS-ID: $Id: SVGCanvasPathCairo.cpp,v 1.14 2014/11/23 11:36:16 ntalex Exp $ -+// RCS-ID: $Id: SVGCanvasPathCairo.cpp,v 1.15 2016/07/27 08:54:21 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -35,15 +35,16 @@ cairo_path_t* wxSVGCanvasPathCairo::GetP - return cairo_copy_path(m_cr); - } - --wxSVGRect wxSVGCanvasPathCairo::GetBBox(const wxSVGMatrix& matrix) { -- if (&matrix) { -+wxSVGRect wxSVGCanvasPathCairo::GetBBox(const wxSVGMatrix* matrix) { -+ if (matrix) { - cairo_matrix_t m; -- cairo_matrix_init(&m, matrix.GetA(), matrix.GetB(), matrix.GetC(), matrix.GetD(), matrix.GetE(), matrix.GetF()); -+ cairo_matrix_init(&m, matrix->GetA(), matrix->GetB(), matrix->GetC(), matrix->GetD(), -+ matrix->GetE(), matrix->GetF()); - cairo_set_matrix(m_cr, &m); - } - double x1, y1, x2, y2; - cairo_fill_extents(m_cr, &x1, &y1, &x2, &y2); -- if (&matrix) { -+ if (matrix) { - cairo_matrix_t mat; - cairo_matrix_init(&mat, 1, 0, 0, 1, 0, 0); - cairo_set_matrix(m_cr, &mat); -@@ -51,10 +52,11 @@ wxSVGRect wxSVGCanvasPathCairo::GetBBox( - return wxSVGRect(x1, y1, x2 - x1, y2 - y1); - } - --wxSVGRect wxSVGCanvasPathCairo::GetResultBBox(const wxCSSStyleDeclaration& style, const wxSVGMatrix& matrix) { -- if (&matrix) { -+wxSVGRect wxSVGCanvasPathCairo::GetResultBBox(const wxCSSStyleDeclaration& style, const wxSVGMatrix* matrix) { -+ if (matrix) { - cairo_matrix_t m; -- cairo_matrix_init(&m, matrix.GetA(), matrix.GetB(), matrix.GetC(), matrix.GetD(), matrix.GetE(), matrix.GetF()); -+ cairo_matrix_init(&m, matrix->GetA(), matrix->GetB(), matrix->GetC(), matrix->GetD(), -+ matrix->GetE(), matrix->GetF()); - cairo_set_matrix(m_cr, &m); - } - ApplyStrokeStyle(m_cr, style); -@@ -63,7 +65,7 @@ wxSVGRect wxSVGCanvasPathCairo::GetResul - cairo_stroke_extents(m_cr, &x1, &y1, &x2, &y2); - else - cairo_fill_extents(m_cr, &x1, &y1, &x2, &y2); -- if (&matrix) { -+ if (matrix) { - cairo_matrix_t mat; - cairo_matrix_init(&mat, 1, 0, 0, 1, 0, 0); - cairo_set_matrix(m_cr, &mat); -diff -rup wxsvg-1.5.8/src/cairo/SVGCanvasPathCairo.h wxsvg/src/cairo/SVGCanvasPathCairo.h ---- wxsvg-1.5.8/src/cairo/SVGCanvasPathCairo.h 2013-01-19 18:26:28.000000000 +0000 -+++ wxsvg/src/cairo/SVGCanvasPathCairo.h 2016-07-27 09:54:21.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Cairo canvas path - // Author: Alex Thuering - // Created: 2005/05/12 --// RCS-ID: $Id: SVGCanvasPathCairo.h,v 1.6 2013/01/19 18:26:28 ntalex Exp $ -+// RCS-ID: $Id: SVGCanvasPathCairo.h,v 1.7 2016/07/27 08:54:21 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -24,8 +24,8 @@ public: - virtual ~wxSVGCanvasPathCairo(); - - void End(); -- wxSVGRect GetBBox(const wxSVGMatrix& matrix = *(wxSVGMatrix*) NULL); -- wxSVGRect GetResultBBox(const wxCSSStyleDeclaration& style, const wxSVGMatrix& matrix = *(wxSVGMatrix*) NULL); -+ wxSVGRect GetBBox(const wxSVGMatrix* matrix = NULL); -+ wxSVGRect GetResultBBox(const wxCSSStyleDeclaration& style, const wxSVGMatrix* matrix = NULL); - - cairo_t* GetCr() { return m_cr; } - cairo_path_t* GetPath(); -diff -rup wxsvg-1.5.8/src/SVGCanvasItem.cpp wxsvg/src/SVGCanvasItem.cpp ---- wxsvg-1.5.8/src/SVGCanvasItem.cpp 2016-05-16 22:08:51.000000000 +0100 -+++ wxsvg/src/SVGCanvasItem.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: - // Author: Alex Thuering - // Created: 2005/05/09 --// RCS-ID: $Id: SVGCanvasItem.cpp,v 1.53 2016/05/16 21:08:51 ntalex Exp $ -+// RCS-ID: $Id: SVGCanvasItem.cpp,v 1.55 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -1164,12 +1164,12 @@ void wxSVGCanvasText::EndTextAnchor() { - } - } - --wxSVGRect wxSVGCanvasTextChunk::GetBBox(const wxSVGMatrix& matrix) { -+wxSVGRect wxSVGCanvasTextChunk::GetBBox(const wxSVGMatrix* matrix) { - wxSVGRect bbox; - for (int i = 0; i < (int) chars.Count(); i++) { - wxSVGRect elemBBox = chars[i].path->GetBBox(matrix); - if (elemBBox.IsEmpty()) -- elemBBox = &matrix ? chars[i].bbox.MatrixTransform(matrix) : chars[i].bbox; -+ elemBBox = matrix ? chars[i].bbox.MatrixTransform(*matrix) : chars[i].bbox; - if (i == 0) - bbox = elemBBox; - else { -@@ -1190,15 +1190,15 @@ wxSVGRect wxSVGCanvasTextChunk::GetBBox( - return bbox; - } - --wxSVGRect wxSVGCanvasText::GetBBox(const wxSVGMatrix& matrix) -+wxSVGRect wxSVGCanvasText::GetBBox(const wxSVGMatrix* matrix) - { - wxSVGRect bbox; - for (int i=0; i<(int)m_chunks.Count(); i++) - { - wxSVGMatrix tmpMatrix = m_chunks[i].matrix; -- if (&matrix) -- tmpMatrix = ((wxSVGMatrix&) matrix).Multiply(m_chunks[i].matrix); -- wxSVGRect elemBBox = m_chunks[i].GetBBox(tmpMatrix); -+ if (matrix) -+ tmpMatrix = (*matrix).Multiply(m_chunks[i].matrix); -+ wxSVGRect elemBBox = m_chunks[i].GetBBox(&tmpMatrix); - if (i == 0) - bbox = elemBBox; - else -diff -rup wxsvg-1.5.8/src/SVGLineElement.cpp wxsvg/src/SVGLineElement.cpp ---- wxsvg-1.5.8/src/SVGLineElement.cpp 2006-01-08 12:44:30.000000000 +0000 -+++ wxsvg/src/SVGLineElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGLineElement.cpp,v 1.4 2006/01/08 12:44:30 ntalex Exp $ -+// RCS-ID: $Id: SVGLineElement.cpp,v 1.5 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -11,55 +11,53 @@ - #include "SVGLineElement.h" - #include "SVGCanvas.h" - --wxSVGRect wxSVGLineElement::GetBBox(wxSVG_COORDINATES coordinates) --{ -- wxSVGPoint p1 = wxSVGPoint(GetX1().GetAnimVal(), GetY1().GetAnimVal()); -- wxSVGPoint p2 = wxSVGPoint(GetX2().GetAnimVal(), GetY2().GetAnimVal()); -- if (coordinates != wxSVG_COORDINATES_USER) -- { -- wxSVGMatrix matrix = GetMatrix(coordinates); -- p1 = p1.MatrixTransform(matrix); -- p2 = p2.MatrixTransform(matrix); -- } -- -- double x1 = p1.GetX(); -- double y1 = p1.GetY(); -- double x2 = p2.GetX(); -- double y2 = p2.GetY(); -- -- wxSVGRect bbox(x1, y1, x2 - x1, y2 - y1); -- -- if (x1 > x2) -- { -- bbox.SetX(x2); -- bbox.SetWidth(x1 - x2); -- } -- -- if (y1 > y2) -- { -- bbox.SetY(y2); -- bbox.SetHeight(y1 - y2); -- } -- -- return bbox; -+wxSVGRect wxSVGLineElement::GetBBox(wxSVG_COORDINATES coordinates) { -+ wxSVGPoint p1 = wxSVGPoint(GetX1().GetAnimVal(), GetY1().GetAnimVal()); -+ wxSVGPoint p2 = wxSVGPoint(GetX2().GetAnimVal(), GetY2().GetAnimVal()); -+ if (coordinates != wxSVG_COORDINATES_USER) { -+ wxSVGMatrix matrix = GetMatrix(coordinates); -+ p1 = p1.MatrixTransform(matrix); -+ p2 = p2.MatrixTransform(matrix); -+ } -+ -+ double x1 = p1.GetX(); -+ double y1 = p1.GetY(); -+ double x2 = p2.GetX(); -+ double y2 = p2.GetY(); -+ -+ wxSVGRect bbox(x1, y1, x2 - x1, y2 - y1); -+ -+ if (x1 > x2) { -+ bbox.SetX(x2); -+ bbox.SetWidth(x1 - x2); -+ } -+ -+ if (y1 > y2) { -+ bbox.SetY(y2); -+ bbox.SetHeight(y1 - y2); -+ } -+ -+ return bbox; - } - --wxSVGRect wxSVGLineElement::GetResultBBox(wxSVG_COORDINATES coordinates) --{ -- wxCSSStyleDeclaration style = GetResultStyle(*this); -- if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -- return GetBBox(coordinates); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? -- m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return bbox; -+wxSVGRect wxSVGLineElement::GetResultBBox(wxSVG_COORDINATES coordinates) { -+ wxCSSStyleDeclaration style = GetResultStyle(*this); -+ if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -+ return GetBBox(coordinates); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return bbox; - } - --void wxSVGLineElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) --{ -- if (m_canvasItem) -- delete m_canvasItem; -- m_canvasItem = canvasItem; -+void wxSVGLineElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) { -+ if (m_canvasItem) -+ delete m_canvasItem; -+ m_canvasItem = canvasItem; - } -diff -rup wxsvg-1.5.8/src/SVGPathElement.cpp wxsvg/src/SVGPathElement.cpp ---- wxsvg-1.5.8/src/SVGPathElement.cpp 2014-08-09 12:13:02.000000000 +0100 -+++ wxsvg/src/SVGPathElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Implementation of wxSVGPathElement - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGPathElement.cpp,v 1.7 2014/08/09 11:13:02 ntalex Exp $ -+// RCS-ID: $Id: SVGPathElement.cpp,v 1.8 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -14,8 +14,13 @@ - - wxSVGRect wxSVGPathElement::GetBBox(wxSVG_COORDINATES coordinates) { - WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? m_canvasItem->GetBBox() : -- m_canvasItem->GetBBox(GetMatrix(coordinates)); -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetBBox(); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetBBox(&m); -+ } - WX_SVG_CLEAR_M_CANVAS_ITEM - return bbox; - } -@@ -25,8 +30,13 @@ wxSVGRect wxSVGPathElement::GetResultBBo - if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) - return GetBBox(coordinates); - WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } - WX_SVG_CLEAR_M_CANVAS_ITEM - return bbox; - } -@@ -77,38 +87,38 @@ wxSVGPathSegLinetoRel wxSVGPathElement:: - return res; - } - --wxSVGPathSegCurvetoCubicAbs wxSVGPathElement::CreateSVGPathSegCurvetoCubicAbs( -- double x, double y, double x1, double y1, double x2, double y2) const { -+wxSVGPathSegCurvetoCubicAbs wxSVGPathElement::CreateSVGPathSegCurvetoCubicAbs(double x, double y, double x1, double y1, -+ double x2, double y2) const { - wxSVGPathSegCurvetoCubicAbs res; - return res; - } - --wxSVGPathSegCurvetoCubicRel wxSVGPathElement::CreateSVGPathSegCurvetoCubicRel( -- double x, double y, double x1, double y1, double x2, double y2) const { -+wxSVGPathSegCurvetoCubicRel wxSVGPathElement::CreateSVGPathSegCurvetoCubicRel(double x, double y, double x1, double y1, -+ double x2, double y2) const { - wxSVGPathSegCurvetoCubicRel res; - return res; - } - --wxSVGPathSegCurvetoQuadraticAbs wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticAbs( -- double x, double y, double x1, double y1) const { -+wxSVGPathSegCurvetoQuadraticAbs wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticAbs(double x, double y, double x1, -+ double y1) const { - wxSVGPathSegCurvetoQuadraticAbs res; - return res; - } - --wxSVGPathSegCurvetoQuadraticRel wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticRel( -- double x, double y, double x1, double y1) const { -+wxSVGPathSegCurvetoQuadraticRel wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticRel(double x, double y, double x1, -+ double y1) const { - wxSVGPathSegCurvetoQuadraticRel res; - return res; - } - --wxSVGPathSegArcAbs wxSVGPathElement::CreateSVGPathSegArcAbs(double x, double y, -- double r1, double r2, double angle, bool largeArcFlag, bool sweepFlag) const { -+wxSVGPathSegArcAbs wxSVGPathElement::CreateSVGPathSegArcAbs(double x, double y, double r1, double r2, double angle, -+ bool largeArcFlag, bool sweepFlag) const { - wxSVGPathSegArcAbs res; - return res; - } - --wxSVGPathSegArcRel wxSVGPathElement::CreateSVGPathSegArcRel(double x, double y, -- double r1, double r2, double angle, bool largeArcFlag, bool sweepFlag) const { -+wxSVGPathSegArcRel wxSVGPathElement::CreateSVGPathSegArcRel(double x, double y, double r1, double r2, double angle, -+ bool largeArcFlag, bool sweepFlag) const { - wxSVGPathSegArcRel res; - return res; - } -@@ -133,26 +143,26 @@ wxSVGPathSegLinetoVerticalRel wxSVGPathE - return res; - } - --wxSVGPathSegCurvetoCubicSmoothAbs wxSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothAbs( -- double x, double y, double x2, double y2) const { -+wxSVGPathSegCurvetoCubicSmoothAbs wxSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothAbs(double x, double y, double x2, -+ double y2) const { - wxSVGPathSegCurvetoCubicSmoothAbs res; - return res; - } - --wxSVGPathSegCurvetoCubicSmoothRel wxSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothRel( -- double x, double y, double x2, double y2) const { -+wxSVGPathSegCurvetoCubicSmoothRel wxSVGPathElement::CreateSVGPathSegCurvetoCubicSmoothRel(double x, double y, double x2, -+ double y2) const { - wxSVGPathSegCurvetoCubicSmoothRel res; - return res; - } - --wxSVGPathSegCurvetoQuadraticSmoothAbs wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothAbs( -- double x, double y) const { -+wxSVGPathSegCurvetoQuadraticSmoothAbs wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothAbs(double x, -+ double y) const { - wxSVGPathSegCurvetoQuadraticSmoothAbs res; - return res; - } - --wxSVGPathSegCurvetoQuadraticSmoothRel wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothRel( -- double x, double y) const { -+wxSVGPathSegCurvetoQuadraticSmoothRel wxSVGPathElement::CreateSVGPathSegCurvetoQuadraticSmoothRel(double x, -+ double y) const { - wxSVGPathSegCurvetoQuadraticSmoothRel res; - return res; - } -diff -rup wxsvg-1.5.8/src/SVGPolygonElement.cpp wxsvg/src/SVGPolygonElement.cpp ---- wxsvg-1.5.8/src/SVGPolygonElement.cpp 2006-01-08 12:44:30.000000000 +0000 -+++ wxsvg/src/SVGPolygonElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGPolygonElement.cpp,v 1.4 2006/01/08 12:44:30 ntalex Exp $ -+// RCS-ID: $Id: SVGPolygonElement.cpp,v 1.5 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -11,62 +11,58 @@ - #include "SVGPolygonElement.h" - #include "SVGCanvas.h" - --wxSVGRect wxSVGPolygonElement::GetBBox(wxSVG_COORDINATES coordinates) --{ -- const wxSVGPointList& points = GetPoints(); -- if (points.Count() == 0) -- return wxSVGRect(); -- -- wxSVGPoint p0 = points[0]; -- wxSVGMatrix matrix; -- if (coordinates != wxSVG_COORDINATES_USER) -- { -- matrix = GetMatrix(coordinates); -- p0 = p0.MatrixTransform(matrix); -- } -- wxSVGRect bbox(p0.GetX(), p0.GetY(), 0, 0); -- -- wxSVGPoint pi = wxSVGPoint(); -- for (int i = 1; i<(int)points.Count(); i++) -- { -- pi = coordinates == wxSVG_COORDINATES_USER ? -- points[i] : points[i].MatrixTransform(matrix); -- if (bbox.GetX() > pi.GetX()) -- { -- bbox.SetWidth(bbox.GetWidth() + bbox.GetX() - pi.GetX()); -- bbox.SetX(pi.GetX()); -+wxSVGRect wxSVGPolygonElement::GetBBox(wxSVG_COORDINATES coordinates) { -+ const wxSVGPointList& points = GetPoints(); -+ if (points.Count() == 0) -+ return wxSVGRect(); -+ -+ wxSVGPoint p0 = points[0]; -+ wxSVGMatrix matrix; -+ if (coordinates != wxSVG_COORDINATES_USER) { -+ matrix = GetMatrix(coordinates); -+ p0 = p0.MatrixTransform(matrix); - } -- if (bbox.GetY() > pi.GetY()) -- { -- bbox.SetHeight(bbox.GetHeight() + bbox.GetY() - pi.GetY()); -- bbox.SetY(pi.GetY()); -+ wxSVGRect bbox(p0.GetX(), p0.GetY(), 0, 0); -+ -+ wxSVGPoint pi = wxSVGPoint(); -+ for (int i = 1; i < (int) points.Count(); i++) { -+ pi = coordinates == wxSVG_COORDINATES_USER ? points[i] : points[i].MatrixTransform(matrix); -+ if (bbox.GetX() > pi.GetX()) { -+ bbox.SetWidth(bbox.GetWidth() + bbox.GetX() - pi.GetX()); -+ bbox.SetX(pi.GetX()); -+ } -+ if (bbox.GetY() > pi.GetY()) { -+ bbox.SetHeight(bbox.GetHeight() + bbox.GetY() - pi.GetY()); -+ bbox.SetY(pi.GetY()); -+ } -+ -+ if (bbox.GetX() + bbox.GetWidth() < pi.GetX()) -+ bbox.SetWidth(pi.GetX() - bbox.GetX()); -+ if (bbox.GetY() + bbox.GetHeight() < pi.GetY()) -+ bbox.SetHeight(pi.GetY() - bbox.GetY()); - } -- -- if (bbox.GetX() + bbox.GetWidth() < pi.GetX()) -- bbox.SetWidth(pi.GetX() - bbox.GetX()); -- if (bbox.GetY() + bbox.GetHeight() < pi.GetY()) -- bbox.SetHeight(pi.GetY() - bbox.GetY()); -- } -- -- return bbox; -+ -+ return bbox; - } - --wxSVGRect wxSVGPolygonElement::GetResultBBox(wxSVG_COORDINATES coordinates) --{ -- wxCSSStyleDeclaration style = GetResultStyle(*this); -- if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -- return GetBBox(coordinates); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? -- m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return bbox; -+wxSVGRect wxSVGPolygonElement::GetResultBBox(wxSVG_COORDINATES coordinates) { -+ wxCSSStyleDeclaration style = GetResultStyle(*this); -+ if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -+ return GetBBox(coordinates); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return bbox; - } - --void wxSVGPolygonElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) --{ -- if (m_canvasItem) -- delete m_canvasItem; -- m_canvasItem = canvasItem; -+void wxSVGPolygonElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) { -+ if (m_canvasItem) -+ delete m_canvasItem; -+ m_canvasItem = canvasItem; - } -diff -rup wxsvg-1.5.8/src/SVGPolylineElement.cpp wxsvg/src/SVGPolylineElement.cpp ---- wxsvg-1.5.8/src/SVGPolylineElement.cpp 2006-01-08 12:44:30.000000000 +0000 -+++ wxsvg/src/SVGPolylineElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGPolylineElement.cpp,v 1.4 2006/01/08 12:44:30 ntalex Exp $ -+// RCS-ID: $Id: SVGPolylineElement.cpp,v 1.5 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -11,62 +11,58 @@ - #include "SVGPolylineElement.h" - #include "SVGCanvas.h" - --wxSVGRect wxSVGPolylineElement::GetBBox(wxSVG_COORDINATES coordinates) --{ -- const wxSVGPointList& points = GetPoints(); -- if (points.Count() == 0) -- return wxSVGRect(); -- -- wxSVGPoint p0 = points[0]; -- wxSVGMatrix matrix; -- if (coordinates != wxSVG_COORDINATES_USER) -- { -- matrix = GetMatrix(coordinates); -- p0 = p0.MatrixTransform(matrix); -- } -- wxSVGRect bbox(p0.GetX(), p0.GetY(), 0, 0); -- -- wxSVGPoint pi; -- for (int i = 1; i<(int)points.Count(); i++) -- { -- pi = coordinates == wxSVG_COORDINATES_USER ? -- points[i] : points[i].MatrixTransform(matrix); -- if (bbox.GetX() > pi.GetX()) -- { -- bbox.SetWidth(bbox.GetWidth() + bbox.GetX() - pi.GetX()); -- bbox.SetX(pi.GetX()); -+wxSVGRect wxSVGPolylineElement::GetBBox(wxSVG_COORDINATES coordinates) { -+ const wxSVGPointList& points = GetPoints(); -+ if (points.Count() == 0) -+ return wxSVGRect(); -+ -+ wxSVGPoint p0 = points[0]; -+ wxSVGMatrix matrix; -+ if (coordinates != wxSVG_COORDINATES_USER) { -+ matrix = GetMatrix(coordinates); -+ p0 = p0.MatrixTransform(matrix); - } -- if (bbox.GetY() > pi.GetY()) -- { -- bbox.SetHeight(bbox.GetHeight() + bbox.GetY() - pi.GetY()); -- bbox.SetY(pi.GetY()); -+ wxSVGRect bbox(p0.GetX(), p0.GetY(), 0, 0); -+ -+ wxSVGPoint pi; -+ for (int i = 1; i < (int) points.Count(); i++) { -+ pi = coordinates == wxSVG_COORDINATES_USER ? points[i] : points[i].MatrixTransform(matrix); -+ if (bbox.GetX() > pi.GetX()) { -+ bbox.SetWidth(bbox.GetWidth() + bbox.GetX() - pi.GetX()); -+ bbox.SetX(pi.GetX()); -+ } -+ if (bbox.GetY() > pi.GetY()) { -+ bbox.SetHeight(bbox.GetHeight() + bbox.GetY() - pi.GetY()); -+ bbox.SetY(pi.GetY()); -+ } -+ -+ if (bbox.GetX() + bbox.GetWidth() < pi.GetX()) -+ bbox.SetWidth(pi.GetX() - bbox.GetX()); -+ if (bbox.GetY() + bbox.GetHeight() < pi.GetY()) -+ bbox.SetHeight(pi.GetY() - bbox.GetY()); - } -- -- if (bbox.GetX() + bbox.GetWidth() < pi.GetX()) -- bbox.SetWidth(pi.GetX() - bbox.GetX()); -- if (bbox.GetY() + bbox.GetHeight() < pi.GetY()) -- bbox.SetHeight(pi.GetY() - bbox.GetY()); -- } -- -- return bbox; -+ -+ return bbox; - } - --wxSVGRect wxSVGPolylineElement::GetResultBBox(wxSVG_COORDINATES coordinates) --{ -- wxCSSStyleDeclaration style = GetResultStyle(*this); -- if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -- return GetBBox(coordinates); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? -- m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return bbox; -+wxSVGRect wxSVGPolylineElement::GetResultBBox(wxSVG_COORDINATES coordinates) { -+ wxCSSStyleDeclaration style = GetResultStyle(*this); -+ if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -+ return GetBBox(coordinates); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return bbox; - } - --void wxSVGPolylineElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) --{ -- if (m_canvasItem) -- delete m_canvasItem; -- m_canvasItem = canvasItem; -+void wxSVGPolylineElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) { -+ if (m_canvasItem) -+ delete m_canvasItem; -+ m_canvasItem = canvasItem; - } -diff -rup wxsvg-1.5.8/src/SVGRectElement.cpp wxsvg/src/SVGRectElement.cpp ---- wxsvg-1.5.8/src/SVGRectElement.cpp 2014-03-24 21:16:35.000000000 +0000 -+++ wxsvg/src/SVGRectElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: Implementation of wxSVGRectElement - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGRectElement.cpp,v 1.6 2014/03/24 21:16:35 ntalex Exp $ -+// RCS-ID: $Id: SVGRectElement.cpp,v 1.7 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -18,8 +18,13 @@ const double pi = 3.1415926; - - wxSVGRect wxSVGRectElement::GetBBox(wxSVG_COORDINATES coordinates) { - WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? m_canvasItem->GetBBox() : -- m_canvasItem->GetBBox(GetMatrix(coordinates)); -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetBBox(); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetBBox(&m); -+ } - WX_SVG_CLEAR_M_CANVAS_ITEM - return bbox; - } -@@ -29,8 +34,13 @@ wxSVGRect wxSVGRectElement::GetResultBBo - if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) - return GetBBox(coordinates); - WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } - WX_SVG_CLEAR_M_CANVAS_ITEM - return bbox; - } -diff -rup wxsvg-1.5.8/src/SVGTextElement.cpp wxsvg/src/SVGTextElement.cpp ---- wxsvg-1.5.8/src/SVGTextElement.cpp 2008-04-14 16:44:55.000000000 +0100 -+++ wxsvg/src/SVGTextElement.cpp 2016-07-28 10:05:28.000000000 +0100 -@@ -3,7 +3,7 @@ - // Purpose: svg text element - // Author: Alex Thuering - // Created: 2005/05/10 --// RCS-ID: $Id: SVGTextElement.cpp,v 1.5 2008/04/14 15:44:55 etisserant Exp $ -+// RCS-ID: $Id: SVGTextElement.cpp,v 1.6 2016/07/28 09:05:28 ntalex Exp $ - // Copyright: (c) 2005 Alex Thuering - // Licence: wxWindows licence - ////////////////////////////////////////////////////////////////////////////// -@@ -12,108 +12,106 @@ - #include "SVGCanvas.h" - #include <math.h> - --wxSVGRect wxSVGTextElement::GetBBox(wxSVG_COORDINATES coordinates) --{ -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? -- m_canvasItem->GetBBox() : m_canvasItem->GetBBox(GetMatrix(coordinates)); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return bbox.MatrixTransform(matrix); -- //return bbox; --} -- --wxSVGRect wxSVGTextElement::GetResultBBox(wxSVG_COORDINATES coordinates) --{ -- wxCSSStyleDeclaration style = GetResultStyle(*this); -- if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -- return GetBBox(coordinates); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect bbox = coordinates == wxSVG_COORDINATES_USER ? -- m_canvasItem->GetResultBBox(style) : -- m_canvasItem->GetResultBBox(style, GetMatrix(coordinates)); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return bbox; --} -- --void wxSVGTextElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) --{ -- if (m_canvasItem) -- delete m_canvasItem; -- m_canvasItem = canvasItem; --} -- --long wxSVGTextElement::GetNumberOfChars() --{ -- WX_SVG_CREATE_M_CANVAS_ITEM -- long number = ((wxSVGCanvasText*)m_canvasItem)->GetNumberOfChars(); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return number; --} -- --double wxSVGTextElement::GetComputedTextLength() --{ -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- double length = ((wxSVGCanvasText*)m_canvasItem)->GetComputedTextLength(); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return length * sqrt(matrix.GetA() * matrix.GetA() + matrix.GetB() * matrix.GetB()); --} -- --double wxSVGTextElement::GetSubStringLength(unsigned long charnum, unsigned long nchars) --{ -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- double length = ((wxSVGCanvasText*)m_canvasItem)->GetSubStringLength(charnum, nchars); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return length * sqrt(matrix.GetA() * matrix.GetA() + matrix.GetB() * matrix.GetB()); --} -- --wxSVGPoint wxSVGTextElement::GetStartPositionOfChar(unsigned long charnum) --{ -- wxSVGPoint real_position; -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGPoint position = ((wxSVGCanvasText*)m_canvasItem)->GetStartPositionOfChar(charnum); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- real_position.SetX(matrix.GetA() * position.GetX() + matrix.GetB() * position.GetY() + matrix.GetE()); -- real_position.SetY(matrix.GetB() * position.GetX() + matrix.GetD() * position.GetY() + matrix.GetF()); -- return real_position; --} -- --wxSVGPoint wxSVGTextElement::GetEndPositionOfChar(unsigned long charnum) --{ -- wxSVGPoint real_position; -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGPoint position = ((wxSVGCanvasText*)m_canvasItem)->GetEndPositionOfChar(charnum); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- real_position.SetX(matrix.GetA() * position.GetX() + matrix.GetB() * position.GetY() + matrix.GetE()); -- real_position.SetY(matrix.GetB() * position.GetX() + matrix.GetD() * position.GetY() + matrix.GetF()); -- return real_position; --} -- --wxSVGRect wxSVGTextElement::GetExtentOfChar(unsigned long charnum) --{ -- wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -- WX_SVG_CREATE_M_CANVAS_ITEM -- wxSVGRect extent = ((wxSVGCanvasText*)m_canvasItem)->GetExtentOfChar(charnum); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return extent.MatrixTransform(matrix); --} -- --double wxSVGTextElement::GetRotationOfChar(unsigned long charnum) --{ -- WX_SVG_CREATE_M_CANVAS_ITEM -- double rotation = ((wxSVGCanvasText*)m_canvasItem)->GetRotationOfChar(charnum); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return rotation; --} -- --long wxSVGTextElement::GetCharNumAtPosition(const wxSVGPoint& point) --{ -- WX_SVG_CREATE_M_CANVAS_ITEM -- long charnum = ((wxSVGCanvasText*)m_canvasItem)->GetCharNumAtPosition(point); -- WX_SVG_CLEAR_M_CANVAS_ITEM -- return charnum; -+wxSVGRect wxSVGTextElement::GetBBox(wxSVG_COORDINATES coordinates) { -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetBBox(); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetBBox(&m); -+ } -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return bbox.MatrixTransform(matrix); -+ //return bbox; -+} -+ -+wxSVGRect wxSVGTextElement::GetResultBBox(wxSVG_COORDINATES coordinates) { -+ wxCSSStyleDeclaration style = GetResultStyle(*this); -+ if (style.GetStroke().GetPaintType() == wxSVG_PAINTTYPE_NONE) -+ return GetBBox(coordinates); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect bbox; -+ if (coordinates == wxSVG_COORDINATES_USER) { -+ bbox = m_canvasItem->GetResultBBox(style); -+ } else { -+ wxSVGMatrix m = GetMatrix(coordinates); -+ bbox = m_canvasItem->GetResultBBox(style, &m); -+ } -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return bbox; -+} -+ -+void wxSVGTextElement::SetCanvasItem(wxSVGCanvasItem* canvasItem) { -+ if (m_canvasItem) -+ delete m_canvasItem; -+ m_canvasItem = canvasItem; -+} -+ -+long wxSVGTextElement::GetNumberOfChars() { -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ long number = ((wxSVGCanvasText*) m_canvasItem)->GetNumberOfChars(); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return number; -+} -+ -+double wxSVGTextElement::GetComputedTextLength() { -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ double length = ((wxSVGCanvasText*) m_canvasItem)->GetComputedTextLength(); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return length * sqrt(matrix.GetA() * matrix.GetA() + matrix.GetB() * matrix.GetB()); -+} -+ -+double wxSVGTextElement::GetSubStringLength(unsigned long charnum, unsigned long nchars) { -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ double length = ((wxSVGCanvasText*) m_canvasItem)->GetSubStringLength(charnum, nchars); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return length * sqrt(matrix.GetA() * matrix.GetA() + matrix.GetB() * matrix.GetB()); -+} -+ -+wxSVGPoint wxSVGTextElement::GetStartPositionOfChar(unsigned long charnum) { -+ wxSVGPoint real_position; -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGPoint position = ((wxSVGCanvasText*) m_canvasItem)->GetStartPositionOfChar(charnum); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ real_position.SetX(matrix.GetA() * position.GetX() + matrix.GetB() * position.GetY() + matrix.GetE()); -+ real_position.SetY(matrix.GetB() * position.GetX() + matrix.GetD() * position.GetY() + matrix.GetF()); -+ return real_position; -+} -+ -+wxSVGPoint wxSVGTextElement::GetEndPositionOfChar(unsigned long charnum) { -+ wxSVGPoint real_position; -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGPoint position = ((wxSVGCanvasText*) m_canvasItem)->GetEndPositionOfChar(charnum); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ real_position.SetX(matrix.GetA() * position.GetX() + matrix.GetB() * position.GetY() + matrix.GetE()); -+ real_position.SetY(matrix.GetB() * position.GetX() + matrix.GetD() * position.GetY() + matrix.GetF()); -+ return real_position; -+} -+ -+wxSVGRect wxSVGTextElement::GetExtentOfChar(unsigned long charnum) { -+ wxSVGMatrix matrix = wxSVGLocatable::GetCTM(this); -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ wxSVGRect extent = ((wxSVGCanvasText*) m_canvasItem)->GetExtentOfChar(charnum); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return extent.MatrixTransform(matrix); -+} -+ -+double wxSVGTextElement::GetRotationOfChar(unsigned long charnum) { -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ double rotation = ((wxSVGCanvasText*) m_canvasItem)->GetRotationOfChar(charnum); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return rotation; -+} -+ -+long wxSVGTextElement::GetCharNumAtPosition(const wxSVGPoint& point) { -+ WX_SVG_CREATE_M_CANVAS_ITEM -+ long charnum = ((wxSVGCanvasText*) m_canvasItem)->GetCharNumAtPosition(point); -+ WX_SVG_CLEAR_M_CANVAS_ITEM -+ return charnum; - } |