| |
| /* |
| * Copyright 2006 The Android Open Source Project |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| |
| #ifndef SkDisplayApply_DEFINED |
| #define SkDisplayApply_DEFINED |
| |
| #include "SkAnimateBase.h" |
| #include "SkDrawable.h" |
| #include "SkIntArray.h" |
| |
| class SkActive; |
| |
| class SkApply : public SkDrawable { |
| DECLARE_MEMBER_INFO(Apply); |
| public: |
| |
| SkApply(); |
| virtual ~SkApply(); |
| |
| enum Transition { |
| kTransition_normal, |
| kTransition_reverse |
| }; |
| |
| enum Mode { |
| kMode_create, |
| kMode_immediate, |
| //kMode_once |
| }; |
| void activate(SkAnimateMaker& ); |
| void append(SkApply* apply); |
| void appendActive(SkActive* ); |
| void applyValues(int animatorIndex, SkOperand* values, int count, |
| SkDisplayTypes , SkMSec time); |
| virtual bool contains(SkDisplayable*); |
| // void createActive(SkAnimateMaker& ); |
| virtual SkDisplayable* deepCopy(SkAnimateMaker* ); |
| void disable(); |
| virtual bool draw(SkAnimateMaker& ); |
| #ifdef SK_DUMP_ENABLED |
| virtual void dump(SkAnimateMaker* ); |
| #endif |
| virtual bool enable(SkAnimateMaker& ); |
| void enableCreate(SkAnimateMaker& ); |
| void enableDynamic(SkAnimateMaker& ); |
| void endSave(int index); |
| Mode getMode() { return mode; } |
| virtual bool getProperty(int index, SkScriptValue* value) const; |
| SkDrawable* getScope() { return scope; } |
| void getStep(SkScriptValue* ); |
| SkDrawable* getTarget(SkAnimateBase* ); |
| bool hasDelayedAnimator() const; |
| virtual bool hasEnable() const; |
| bool inactivate(SkAnimateMaker& maker); |
| virtual void initialize(); |
| bool interpolate(SkAnimateMaker& , SkMSec time); |
| virtual void onEndElement(SkAnimateMaker& ); |
| virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); |
| void refresh(SkAnimateMaker& ); |
| void reset(); |
| virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* ); |
| bool resolveField(SkAnimateMaker& , SkDisplayable* parent, SkString* str); |
| void save(int index); |
| void setEmbedded() { fEmbedded = true; } |
| virtual bool setProperty(int index, SkScriptValue& ); |
| virtual void setSteps(int _steps); |
| // virtual void setTime(SkMSec time); |
| #ifdef SK_DEBUG |
| virtual void validate(); |
| #endif |
| private: |
| SkMSec begin; |
| SkBool dontDraw; |
| SkString dynamicScope; |
| SkMSec interval; |
| Mode mode; |
| #if 0 |
| SkBool pickup; |
| #endif |
| SkBool restore; |
| SkDrawable* scope; |
| int32_t steps; |
| Transition transition; |
| SkActive* fActive; |
| SkTDAnimateArray fAnimators; |
| // SkDrawable* fCurrentScope; |
| SkMSec fLastTime; // used only to return script property time |
| SkTDDrawableArray fScopes; |
| SkBool fAppended : 1; |
| SkBool fContainsScope : 1; |
| SkBool fDeleteScope : 1; |
| SkBool fEmbedded : 1; |
| SkBool fEnabled : 1; |
| SkBool fEnabling : 1; // set if calling interpolate from enable |
| friend class SkActive; |
| friend class SkDisplayList; |
| typedef SkDrawable INHERITED; |
| }; |
| |
| #endif // SkDisplayApply_DEFINED |
| |
| |