1 2 /* 3 * Copyright 2006 The Android Open Source Project 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10 #include "SkSVGPolyline.h" 11 #include "SkSVGParser.h" 12 13 enum { 14 kCliipRule, 15 kFillRule, 16 kPoints 17 }; 18 19 const SkSVGAttribute SkSVGPolyline::gAttributes[] = { 20 SVG_LITERAL_ATTRIBUTE(clip-rule, f_clipRule), 21 SVG_LITERAL_ATTRIBUTE(fill-rule, f_fillRule), 22 SVG_ATTRIBUTE(points) 23 }; 24 25 DEFINE_SVG_INFO(Polyline) 26 27 void SkSVGPolyline::addAttribute(SkSVGParser& , int attrIndex, 28 const char* attrValue, size_t attrLength) { 29 if (attrIndex != kPoints) 30 return; 31 f_points.set("["); 32 f_points.append(attrValue, attrLength); 33 SkSVGParser::ConvertToArray(f_points); 34 } 35 36 void SkSVGPolyline::translate(SkSVGParser& parser, bool defState) { 37 parser._startElement("polyline"); 38 INHERITED::translate(parser, defState); 39 SVG_ADD_ATTRIBUTE(points); 40 if (f_fillRule.size() > 0) 41 parser._addAttribute("fillType", f_fillRule.equals("evenodd") ? "evenOdd" : "winding"); 42 parser._endElement(); 43 } 44