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 13enum { 14 kCliipRule, 15 kFillRule, 16 kPoints 17}; 18 19const 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 25DEFINE_SVG_INFO(Polyline) 26 27void 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 36void 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