|  |  | 
|  | /* | 
|  | * 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 "SkADrawable.h" | 
|  | #include "SkIntArray.h" | 
|  |  | 
|  | class SkActive; | 
|  |  | 
|  | class SkApply : public SkADrawable { | 
|  | 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); | 
|  | bool contains(SkDisplayable*) override; | 
|  | //  void createActive(SkAnimateMaker& ); | 
|  | SkDisplayable* deepCopy(SkAnimateMaker* ) override; | 
|  | void disable(); | 
|  | bool draw(SkAnimateMaker& ) override; | 
|  | #ifdef SK_DUMP_ENABLED | 
|  | void dump(SkAnimateMaker* ) override; | 
|  | #endif | 
|  | bool enable(SkAnimateMaker& ) override; | 
|  | void enableCreate(SkAnimateMaker& ); | 
|  | void enableDynamic(SkAnimateMaker& ); | 
|  | void endSave(int index); | 
|  | Mode getMode() { return mode; } | 
|  | bool getProperty(int index, SkScriptValue* value) const override; | 
|  | SkADrawable* getScope() { return scope; } | 
|  | void getStep(SkScriptValue* ); | 
|  | SkADrawable* getTarget(SkAnimateBase* ); | 
|  | bool hasDelayedAnimator() const; | 
|  | bool hasEnable() const override; | 
|  | bool inactivate(SkAnimateMaker& maker); | 
|  | void initialize() override; | 
|  | bool interpolate(SkAnimateMaker& , SkMSec time); | 
|  | void onEndElement(SkAnimateMaker& ) override; | 
|  | const SkMemberInfo* preferredChild(SkDisplayTypes type) override; | 
|  | void refresh(SkAnimateMaker& ); | 
|  | void reset(); | 
|  | bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* ) override; | 
|  | bool resolveField(SkAnimateMaker& , SkDisplayable* parent, SkString* str); | 
|  | void save(int index); | 
|  | void setEmbedded() { fEmbedded = true; } | 
|  | bool setProperty(int index, SkScriptValue& ) override; | 
|  | void setSteps(int _steps) override; | 
|  | //  virtual void setTime(SkMSec time); | 
|  | #ifdef SK_DEBUG | 
|  | void validate() override; | 
|  | #endif | 
|  | private: | 
|  | SkMSec begin; | 
|  | SkBool dontDraw; | 
|  | SkString dynamicScope; | 
|  | SkMSec interval; | 
|  | Mode mode; | 
|  | #if 0 | 
|  | SkBool pickup; | 
|  | #endif | 
|  | SkBool restore; | 
|  | SkADrawable* scope; | 
|  | int32_t steps; | 
|  | Transition transition; | 
|  | SkActive* fActive; | 
|  | SkTDAnimateArray fAnimators; | 
|  | //  SkADrawable* 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 SkADrawable INHERITED; | 
|  | }; | 
|  |  | 
|  | #endif // SkDisplayApply_DEFINED |