1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDisplayInclude.h" 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkAnimateMaker.h" 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkAnimator.h" 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if 0 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#undef SK_MEMBER 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SK_MEMBER(_member, _type) \ 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com { #_member, SK_OFFSETOF(BASE_CLASS::_A, _member), SkType_##_type, \ 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com sizeof(((BASE_CLASS::_A*) 0)->_member) / sizeof(SkScalar) } 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if SK_USE_CONDENSED_INFO == 0 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comconst SkMemberInfo SkInclude::fInfo[] = { 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SK_MEMBER(src, String) 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comDEFINE_GET_MEMBER(SkInclude); 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//SkInclude::SkInclude() { 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// src.init(); 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//} 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//SkInclude::~SkInclude() { 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// src.unref(); 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//} 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkInclude::enable(SkAnimateMaker & ) { 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return true; 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.combool SkInclude::hasEnable() const { 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com return true; 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comvoid SkInclude::onEndElement(SkAnimateMaker& maker) { 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fInInclude = true; 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (src.size() == 0 || maker.decodeURI(src.c_str()) == false) { 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com if (maker.getErrorCode() != SkXMLParserError::kNoError || maker.getNativeCode() != -1) { 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.setInnerError(&maker, src); 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.setErrorCode(SkDisplayXMLParserError::kInInclude); 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com } else { 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.setErrorNoun(src); 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.setErrorCode(SkDisplayXMLParserError::kIncludeNameUnknownOrMissing); 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com } 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com } 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com maker.fInInclude = false; 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com} 60