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#ifndef SkDisplayPost_DEFINED
118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkDisplayPost_DEFINED
128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDisplayable.h"
148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkEvent.h"
158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkEventSink.h"
168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkMemberInfo.h"
178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkIntArray.h"
188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
198d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.comclass SkDataInput;
208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkAnimateMaker;
218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkPost : public SkDisplayable {
238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    DECLARE_MEMBER_INFO(Post);
248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    enum Mode {
258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        kDeferred,
268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com        kImmediate
278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    };
288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkPost();
298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual ~SkPost();
301d3c411f5e4d2ad31bc92b3a85957004329ac00dtfarina@chromium.org    virtual bool addChild(SkAnimateMaker& , SkDisplayable* child) SK_OVERRIDE;
318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool childrenNeedDisposing() const;
328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void dirty();
338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED
348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void dump(SkAnimateMaker* );
358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif
368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool enable(SkAnimateMaker& );
378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool hasEnable() const;
388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void onEndElement(SkAnimateMaker& );
398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual void setChildHasID();
408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    virtual bool setProperty(int index, SkScriptValue& );
418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected:
428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkMSec delay;
438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkString sink;
448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com//  SkBool initialized;
458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    Mode mode;
468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkEvent fEvent;
478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkAnimateMaker* fMaker;
488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkTDDataArray fParts;
498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkEventSinkID fSinkID;
508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkAnimateMaker* fTargetMaker;
518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkBool8 fChildHasID;
528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    SkBool8 fDirty;
538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate:
548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    void findSinkID();
558d0b5770f8fcfdeb8ad9808e58c49116f14b6190reed@google.com    friend class SkDataInput;
568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com    typedef SkDisplayable INHERITED;
578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com};
588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com
598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif //SkDisplayPost_DEFINED
60