1685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 2685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com/* 3685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Copyright 2006 The Android Open Source Project 4685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * 5685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * found in the LICENSE file. 7685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com */ 8685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkSVGClipPath.h" 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkSVGParser.h" 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkSVGUse.h" 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comDEFINE_SVG_NO_INFO(ClipPath) 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.combool SkSVGClipPath::isDef() { 17bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com return true; 18bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com} 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 20bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.combool SkSVGClipPath::isNotDef() { 21bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com return false; 22bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com} 23bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 24bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comvoid SkSVGClipPath::translate(SkSVGParser& parser, bool defState) { 25bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com parser._startElement("clip"); 26bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com INHERITED::translate(parser, defState); 27bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkASSERT(fChildren.count() == 1); 28bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkSVGElement* child = *fChildren.begin(); 29bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkASSERT(child->getType() == SkSVGType_Use); 30bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkSVGUse* use = (SkSVGUse*) child; 31d53efacc7412f55f119e82fcdd0aff2da0801e62tomhudson@google.com SkSVGElement* ref = NULL; 32bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com const char* refStr = &use->f_xlink_href.c_str()[1]; 33bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkASSERT(parser.getIDs().find(refStr, &ref)); 34bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkASSERT(ref); 35dfb3e3c0faadabc131ac1532e29ca71667328513rmistry@google.com if (ref->getType() == SkSVGType_Rect) 36bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com parser._addAttribute("rectangle", refStr); 37bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com else 38bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com parser._addAttribute("path", refStr); 39bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com parser._endElement(); 40bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com} 41