11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGUse.h"
110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkSVGParser.h"
120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectconst SkSVGAttribute SkSVGUse::gAttributes[] = {
140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(height),
150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(width),
160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(x),
170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_LITERAL_ATTRIBUTE(xlink:href, f_xlink_href),
180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SVG_ATTRIBUTE(y)
190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project};
200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source ProjectDEFINE_SVG_INFO(Use)
220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project
230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectvoid SkSVGUse::translate(SkSVGParser& parser, bool defState) {
240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    INHERITED::translate(parser, defState);
250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._startElement("add");
260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    const char* start = strchr(f_xlink_href.c_str(), '#') + 1;
270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    SkASSERT(start);
280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._addAttributeLen("use", start, strlen(start) - 1);
290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project    parser._endElement();   // clip
300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}
31