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 "SkDisplayInclude.h"
11#include "SkAnimateMaker.h"
12#include "SkAnimator.h"
13
14#if 0
15#undef SK_MEMBER
16#define SK_MEMBER(_member, _type) \
17    { #_member, SK_OFFSETOF(BASE_CLASS::_A, _member), SkType_##_type, \
18    sizeof(((BASE_CLASS::_A*) 0)->_member) / sizeof(SkScalar) }
19#endif
20
21#if SK_USE_CONDENSED_INFO == 0
22
23const SkMemberInfo SkInclude::fInfo[] = {
24    SK_MEMBER(src, String)
25};
26
27#endif
28
29DEFINE_GET_MEMBER(SkInclude);
30
31//SkInclude::SkInclude() {
32//  src.init();
33//}
34
35//SkInclude::~SkInclude() {
36//  src.unref();
37//}
38
39bool SkInclude::enable(SkAnimateMaker & ) {
40    return true;
41}
42
43bool SkInclude::hasEnable() const {
44    return true;
45}
46
47void SkInclude::onEndElement(SkAnimateMaker& maker) {
48    maker.fInInclude = true;
49    if (src.size() == 0 || maker.decodeURI(src.c_str()) == false) {
50        if (maker.getErrorCode() != SkXMLParserError::kNoError || maker.getNativeCode() != -1) {
51            maker.setInnerError(&maker, src);
52            maker.setErrorCode(SkDisplayXMLParserError::kInInclude);
53        } else {
54            maker.setErrorNoun(src);
55            maker.setErrorCode(SkDisplayXMLParserError::kIncludeNameUnknownOrMissing);
56        }
57    }
58    maker.fInInclude = false;
59}
60