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 "SkSVGLinearGradient.h"
11 #include "SkSVGParser.h"
12 
13 const SkSVGAttribute SkSVGLinearGradient::gAttributes[] = {
14     SVG_ATTRIBUTE(gradientTransform),
15     SVG_ATTRIBUTE(gradientUnits),
16     SVG_ATTRIBUTE(x1),
17     SVG_ATTRIBUTE(x2),
18     SVG_ATTRIBUTE(y1),
19     SVG_ATTRIBUTE(y2)
20 };
21 
DEFINE_SVG_INFO(LinearGradient)22 DEFINE_SVG_INFO(LinearGradient)
23 
24 void SkSVGLinearGradient::translate(SkSVGParser& parser, bool defState) {
25     if (fMatrixID.size() == 0)
26         parser.translateMatrix(f_gradientTransform, &fMatrixID);
27     parser._startElement("linearGradient");
28     if (fMatrixID.size() > 0)
29         parser._addAttribute("matrix", fMatrixID);
30     INHERITED::translateGradientUnits(f_gradientUnits);
31     SkString points;
32     points.appendUnichar('[');
33     points.append(f_x1);
34     points.appendUnichar(',');
35     points.append(f_y1);
36     points.appendUnichar(',');
37     points.append(f_x2);
38     points.appendUnichar(',');
39     points.append(f_y2);
40     points.appendUnichar(']');
41     parser._addAttribute("points", points.c_str());
42     INHERITED::translate(parser, defState);
43     parser._endElement();
44 }
45