aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/svg/parser/SkSVGElements.cpp
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2015-02-06 08:43:51 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-02-06 08:43:51 -0800
commit02c8fd0ad5e5279004dd49ec49fbae00f8522ec0 (patch)
tree9481cf1a74644398c15565a00717b8a46de945ee /src/svg/parser/SkSVGElements.cpp
parent3cb3840c9af6f70896cf5565a38d4ee03c02d767 (diff)
Move SVG parser files under {include,src}/svg/parser/
R=reed@google.com Review URL: https://codereview.chromium.org/884713007
Diffstat (limited to 'src/svg/parser/SkSVGElements.cpp')
-rw-r--r--src/svg/parser/SkSVGElements.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/svg/parser/SkSVGElements.cpp b/src/svg/parser/SkSVGElements.cpp
new file mode 100644
index 0000000000..a1bd100571
--- /dev/null
+++ b/src/svg/parser/SkSVGElements.cpp
@@ -0,0 +1,86 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#include "SkSVGElements.h"
+#include "SkSVGParser.h"
+
+SkSVGBase::~SkSVGBase() {
+}
+
+void SkSVGBase::addAttribute(SkSVGParser& parser, int attrIndex,
+ const char* attrValue, size_t attrLength) {
+ SkString* first = (SkString*) ((char*) this + sizeof(SkSVGElement));
+ first += attrIndex;
+ first->set(attrValue, attrLength);
+}
+
+
+SkSVGElement::SkSVGElement() : fParent(NULL), fIsDef(false), fIsNotDef(true) {
+}
+
+SkSVGElement::~SkSVGElement() {
+}
+
+SkSVGElement* SkSVGElement::getGradient() {
+ return NULL;
+}
+
+bool SkSVGElement::isGroupParent() {
+ SkSVGElement* parent = fParent;
+ while (parent) {
+ if (parent->getType() != SkSVGType_G)
+ return false;
+ parent = parent->fParent;
+ }
+ return true;
+}
+
+bool SkSVGElement::isDef() {
+ return isGroupParent() == false ? fParent->isDef() : fIsDef;
+}
+
+bool SkSVGElement::isFlushable() {
+ return true;
+}
+
+bool SkSVGElement::isGroup() {
+ return false;
+}
+
+bool SkSVGElement::isNotDef() {
+ return isGroupParent() == false ? fParent->isNotDef() : fIsNotDef;
+}
+
+bool SkSVGElement::onEndElement(SkSVGParser& parser) {
+ if (f_id.size() > 0)
+ parser.getIDs().set(f_id.c_str(), f_id.size(), this);
+ return false;
+}
+
+bool SkSVGElement::onStartElement(SkSVGElement* child) {
+ *fChildren.append() = child;
+ return false;
+}
+
+void SkSVGElement::translate(SkSVGParser& parser, bool) {
+ if (f_id.size() > 0)
+ SVG_ADD_ATTRIBUTE(id);
+}
+
+void SkSVGElement::setIsDef() {
+ fIsDef = isDef();
+}
+
+//void SkSVGElement::setIsNotDef() {
+// fIsNotDef = isNotDef();
+//}
+
+void SkSVGElement::write(SkSVGParser& , SkString& ) {
+ SkASSERT(0);
+}