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 19 class SkDataInput; 20 class SkAnimateMaker; 21 22 class SkPost : public SkDisplayable { 23 DECLARE_MEMBER_INFO(Post); 24 enum Mode { 25 kDeferred, 26 kImmediate 27 }; 28 SkPost(); 29 virtual ~SkPost(); 30 bool addChild(SkAnimateMaker& , SkDisplayable* child) override; 31 bool childrenNeedDisposing() const override; 32 void dirty() override; 33 #ifdef SK_DUMP_ENABLED 34 void dump(SkAnimateMaker* ) override; 35 #endif 36 bool enable(SkAnimateMaker& ) override; 37 bool hasEnable() const override; 38 void onEndElement(SkAnimateMaker& ) override; 39 void setChildHasID() override; 40 bool setProperty(int index, SkScriptValue& ) override; 41 protected: 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; 53 private: 54 void findSinkID(); 55 friend class SkDataInput; 56 typedef SkDisplayable INHERITED; 57 }; 58 59 #endif //SkDisplayPost_DEFINED 60