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#ifndef SkDisplayPost_DEFINED
11#define SkDisplayPost_DEFINED
12
13#include "SkDisplayable.h"
14#include "SkEvent.h"
15#include "SkEventSink.h"
16#include "SkMemberInfo.h"
17#include "SkIntArray.h"
18
19class SkDataInput;
20class SkAnimateMaker;
21
22class SkPost : public SkDisplayable {
23    DECLARE_MEMBER_INFO(Post);
24    enum Mode {
25        kDeferred,
26        kImmediate
27    };
28    SkPost();
29    virtual ~SkPost();
30    virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
31    virtual bool childrenNeedDisposing() const;
32    virtual void dirty();
33#ifdef SK_DUMP_ENABLED
34    virtual void dump(SkAnimateMaker* );
35#endif
36    virtual bool enable(SkAnimateMaker& );
37    virtual bool hasEnable() const;
38    virtual void onEndElement(SkAnimateMaker& );
39    virtual void setChildHasID();
40    virtual bool setProperty(int index, SkScriptValue& );
41protected:
42    SkMSec delay;
43    SkString sink;
44//  SkBool initialized;
45    Mode mode;
46    SkEvent fEvent;
47    SkAnimateMaker* fMaker;
48    SkTDDataArray fParts;
49    SkEventSinkID fSinkID;
50    SkAnimateMaker* fTargetMaker;
51    SkBool8 fChildHasID;
52    SkBool8 fDirty;
53private:
54    void findSinkID();
55    friend class SkDataInput;
56    typedef SkDisplayable INHERITED;
57};
58
59#endif //SkDisplayPost_DEFINED
60