gfx/skia/trunk/src/svg/SkSVGClipPath.cpp

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:00ee3bdc554d
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 "SkSVGClipPath.h"
11 #include "SkSVGParser.h"
12 #include "SkSVGUse.h"
13
14 DEFINE_SVG_NO_INFO(ClipPath)
15
16 bool SkSVGClipPath::isDef() {
17 return true;
18 }
19
20 bool SkSVGClipPath::isNotDef() {
21 return false;
22 }
23
24 void SkSVGClipPath::translate(SkSVGParser& parser, bool defState) {
25 parser._startElement("clip");
26 INHERITED::translate(parser, defState);
27 SkASSERT(fChildren.count() == 1);
28 SkSVGElement* child = *fChildren.begin();
29 SkASSERT(child->getType() == SkSVGType_Use);
30 SkSVGUse* use = (SkSVGUse*) child;
31 SkSVGElement* ref = NULL;
32 const char* refStr = &use->f_xlink_href.c_str()[1];
33 SkASSERT(parser.getIDs().find(refStr, &ref));
34 SkASSERT(ref);
35 if (ref->getType() == SkSVGType_Rect)
36 parser._addAttribute("rectangle", refStr);
37 else
38 parser._addAttribute("path", refStr);
39 parser._endElement();
40 }

mercurial