OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> |
3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> |
4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "core/svg/SVGPathByteStreamBuilder.h" | 30 #include "core/svg/SVGPathByteStreamBuilder.h" |
31 #include "core/svg/SVGPathByteStreamSource.h" | 31 #include "core/svg/SVGPathByteStreamSource.h" |
32 #include "core/svg/SVGPathElement.h" | 32 #include "core/svg/SVGPathElement.h" |
33 #include "core/svg/SVGPathParser.h" | 33 #include "core/svg/SVGPathParser.h" |
34 #include "core/svg/SVGPathSegListBuilder.h" | 34 #include "core/svg/SVGPathSegListBuilder.h" |
35 #include "core/svg/SVGPathSegListSource.h" | 35 #include "core/svg/SVGPathSegListSource.h" |
36 #include "core/svg/SVGPathUtilities.h" | 36 #include "core/svg/SVGPathUtilities.h" |
37 | 37 |
38 namespace blink { | 38 namespace blink { |
39 | 39 |
40 SVGPathSegList::SVGPathSegList(SVGPathElement* contextElement, SVGPathSegRole ro
le) | 40 SVGPathSegList::SVGPathSegList(SVGPathElement* contextElement) |
41 : m_contextElement(contextElement) | 41 : m_contextElement(contextElement) |
42 , m_role(role) | |
43 , m_listSyncedToByteStream(true) | 42 , m_listSyncedToByteStream(true) |
44 { | 43 { |
45 ASSERT(contextElement); | 44 ASSERT(contextElement); |
46 } | 45 } |
47 | 46 |
48 SVGPathSegList::SVGPathSegList(SVGPathElement* contextElement, SVGPathSegRole ro
le, PassOwnPtr<SVGPathByteStream> byteStream) | 47 SVGPathSegList::SVGPathSegList(SVGPathElement* contextElement, PassOwnPtr<SVGPat
hByteStream> byteStream) |
49 : m_contextElement(contextElement) | 48 : m_contextElement(contextElement) |
50 , m_role(role) | |
51 , m_byteStream(byteStream) | 49 , m_byteStream(byteStream) |
52 , m_listSyncedToByteStream(true) | 50 , m_listSyncedToByteStream(true) |
53 { | 51 { |
54 ASSERT(contextElement); | 52 ASSERT(contextElement); |
55 } | 53 } |
56 | 54 |
57 SVGPathSegList::~SVGPathSegList() | 55 SVGPathSegList::~SVGPathSegList() |
58 { | 56 { |
59 } | 57 } |
60 | 58 |
61 PassRefPtr<SVGPathSegList> SVGPathSegList::clone() | 59 PassRefPtr<SVGPathSegList> SVGPathSegList::clone() |
62 { | 60 { |
63 RefPtr<SVGPathSegList> svgPathSegList = adoptRef(new SVGPathSegList(m_contex
tElement, m_role, byteStream()->copy())); | 61 RefPtr<SVGPathSegList> svgPathSegList = adoptRef(new SVGPathSegList(m_contex
tElement, byteStream()->copy())); |
64 svgPathSegList->invalidateList(); | 62 svgPathSegList->invalidateList(); |
65 return svgPathSegList.release(); | 63 return svgPathSegList.release(); |
66 } | 64 } |
67 | 65 |
68 PassRefPtr<SVGPropertyBase> SVGPathSegList::cloneForAnimation(const String& valu
e) const | 66 PassRefPtr<SVGPropertyBase> SVGPathSegList::cloneForAnimation(const String& valu
e) const |
69 { | 67 { |
70 RefPtr<SVGPathSegList> svgPathSegList = SVGPathSegList::create(m_contextElem
ent); | 68 RefPtr<SVGPathSegList> svgPathSegList = SVGPathSegList::create(m_contextElem
ent); |
71 svgPathSegList->setValueAsString(value, IGNORE_EXCEPTION); | 69 svgPathSegList->setValueAsString(value, IGNORE_EXCEPTION); |
72 return svgPathSegList; | 70 return svgPathSegList; |
73 } | 71 } |
(...skipping 23 matching lines...) Expand all Loading... |
97 { | 95 { |
98 if (m_listSyncedToByteStream) | 96 if (m_listSyncedToByteStream) |
99 return; | 97 return; |
100 | 98 |
101 Base::clear(); | 99 Base::clear(); |
102 | 100 |
103 if (m_byteStream && !m_byteStream->isEmpty()) { | 101 if (m_byteStream && !m_byteStream->isEmpty()) { |
104 SVGPathSegListBuilder builder; | 102 SVGPathSegListBuilder builder; |
105 builder.setCurrentSVGPathElement(m_contextElement); | 103 builder.setCurrentSVGPathElement(m_contextElement); |
106 builder.setCurrentSVGPathSegList(this); | 104 builder.setCurrentSVGPathSegList(this); |
107 builder.setCurrentSVGPathSegRole(PathSegUnalteredRole); | |
108 | 105 |
109 SVGPathByteStreamSource source(m_byteStream.get()); | 106 SVGPathByteStreamSource source(m_byteStream.get()); |
110 | 107 |
111 SVGPathParser parser; | 108 SVGPathParser parser; |
112 parser.setCurrentConsumer(&builder); | 109 parser.setCurrentConsumer(&builder); |
113 parser.setCurrentSource(&source); | 110 parser.setCurrentSource(&source); |
114 parser.parsePathDataFromSource(UnalteredParsing); | 111 parser.parsePathDataFromSource(UnalteredParsing); |
115 } | 112 } |
116 | 113 |
117 m_listSyncedToByteStream = true; | 114 m_listSyncedToByteStream = true; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
230 } | 227 } |
231 } | 228 } |
232 | 229 |
233 float SVGPathSegList::calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGEleme
nt*) | 230 float SVGPathSegList::calculateDistance(PassRefPtr<SVGPropertyBase> to, SVGEleme
nt*) |
234 { | 231 { |
235 // FIXME: Support paced animations. | 232 // FIXME: Support paced animations. |
236 return -1; | 233 return -1; |
237 } | 234 } |
238 | 235 |
239 } | 236 } |
OLD | NEW |