update to match latest skia apis
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 17 May 2010 14:34:13 +0000 (14:34 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Mon, 17 May 2010 14:34:13 +0000 (14:34 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@566 2bbb7eff-a529-9590-31e7-b0007b416f81

include/svg/SkSVGParser.h
include/svg/SkSVGTypes.h
src/svg/SkSVGParser.cpp
src/svg/SkSVGRect.cpp
src/svg/SkSVGSVG.cpp
src/svg/SkSVGSVG.h

index 86ae4c28d9dcdbd90b6199d0c398f5b4d5bb5889..83b120dd64d66417e8b00af7046862041f3f84f5 100644 (file)
@@ -32,7 +32,7 @@ class SkSVGElement;
 
 class SkSVGParser : public SkXMLParser {
 public:
-    SkSVGParser();
+    SkSVGParser(SkXMLParserError* err = NULL);
     virtual ~SkSVGParser();
     void _addAttribute(const char* attrName, const char* attrValue) {
         fXMLWriter.addAttribute(attrName, attrValue); }
index 38d63cec1ccea34ebb059fcf5b9ce49a5a5ffc0a..99d8ca191359d51f669124a99dfa578279c7c572 100644 (file)
@@ -40,6 +40,7 @@ enum SkSVGTypes {
     SkSVGType_Symbol,
     SkSVGType_Text,
     SkSVGType_Tspan,
+       SkSVGType_Unknown,
     SkSVGType_Use
 };
 
index b55c5edbef2cf1b7df787b5784caf89c1d978a4d..df861780b201bb9d492e385dd5e1e767681b63e1 100644 (file)
@@ -43,7 +43,9 @@
 
 static int gGeneratedMatrixID = 0;
 
-SkSVGParser::SkSVGParser() : fHead(&fEmptyPaint), fIDs(256),
+SkSVGParser::SkSVGParser(SkXMLParserError* errHandler) : 
+       SkXMLParser(errHandler),
+       fHead(&fEmptyPaint), fIDs(256),
         fXMLWriter(&fStream), fCurrElement(NULL), fInSVG(false), fSuppressPaint(false) {
     fLastTransform.reset();
     fEmptyPaint.f_fill.set("black");
@@ -157,7 +159,7 @@ bool SkSVGParser::onAddAttributeLen(const char name[], const char value[], size_
     if (fCurrElement == NULL)    // this signals we should ignore attributes for this element
         return true;
     if (fCurrElement->fIsDef == false && fCurrElement->fIsNotDef == false)
-        return true; // also an ignored element
+        return false; // also an ignored element
     size_t nameLen = strlen(name);
     int attrIndex = findAttribute(fCurrElement, name, nameLen, false);
     if (attrIndex == -1) {
@@ -201,9 +203,11 @@ bool SkSVGParser::onStartElementLen(const char name[], size_t len) {
     if (nextColon && nextColon - name < len)
         return false;
     SkSVGTypes type = GetType(name, len);
-    SkASSERT(type >= 0);
-    if (type < 0)
-        return true;
+//    SkASSERT(type >= 0);
+    if (type < 0) {
+               type = SkSVGType_G;
+//        return true;
+       }
     SkSVGElement* parent = fParents.count() > 0 ? fParents.top() : NULL;
     SkSVGElement* element = CreateElement(type, parent);
     bool result = false;
index 03fdfdcc3a0cf5907da4ef84e9ebb1140fea108f..8765d1d7c17fadaf8936b98312c065ccc3d192e2 100644 (file)
@@ -33,7 +33,7 @@ SkSVGRect::SkSVGRect() {
 }
 
 void SkSVGRect::translate(SkSVGParser& parser, bool defState) {
-    parser._startElement("rectangle");
+    parser._startElement("rect");
     INHERITED::translate(parser, defState);
     SVG_ADD_ATTRIBUTE_ALIAS(left, x);
     SVG_ADD_ATTRIBUTE_ALIAS(top, y);
index 1678fc168efe32ebbff9c082955a44ce0e0af3fc..9423c3ac4022273ff5577fd1f7e2beec28bb9b32 100644 (file)
@@ -27,9 +27,11 @@ const SkSVGAttribute SkSVGSVG::gAttributes[] = {
     SVG_ATTRIBUTE(width),
     SVG_ATTRIBUTE(version),
     SVG_ATTRIBUTE(viewBox),
+    SVG_ATTRIBUTE(x),
     SVG_LITERAL_ATTRIBUTE(xml:space, f_xml_space),
     SVG_ATTRIBUTE(xmlns),
-    SVG_LITERAL_ATTRIBUTE(xmlns:xlink, f_xml_xlink)
+    SVG_LITERAL_ATTRIBUTE(xmlns:xlink, f_xml_xlink),
+    SVG_ATTRIBUTE(y),
 };
 
 DEFINE_SVG_INFO(SVG)
index f331ccd94e54054bdf94234b5e7a1965a3c2736e..257c136445450999e561fad708ed029646413f73 100644 (file)
@@ -30,9 +30,12 @@ private:
     SkString f_width;
     SkString f_version;
     SkString f_viewBox;
+       SkString f_x;
     SkString f_xml_space;
     SkString f_xmlns;
     SkString f_xml_xlink;
+       SkString f_y;
+
     typedef SkSVGElement INHERITED;
 };