Home | History | Annotate | Download | only in animator
      1 /* libs/graphics/animator/SkDisplayApply.h
      2 **
      3 ** Copyright 2006, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 #ifndef SkDisplayApply_DEFINED
     19 #define SkDisplayApply_DEFINED
     20 
     21 #include "SkAnimateBase.h"
     22 #include "SkDrawable.h"
     23 #include "SkIntArray.h"
     24 
     25 class SkActive;
     26 
     27 class SkApply : public SkDrawable {
     28     DECLARE_MEMBER_INFO(Apply);
     29 public:
     30 
     31     SkApply();
     32     virtual ~SkApply();
     33 
     34     enum Transition {
     35         kTransition_normal,
     36         kTransition_reverse
     37     };
     38 
     39     enum Mode {
     40         kMode_create,
     41         kMode_immediate,
     42         //kMode_once
     43     };
     44     void activate(SkAnimateMaker& );
     45     void append(SkApply* apply);
     46     void appendActive(SkActive* );
     47     void applyValues(int animatorIndex, SkOperand* values, int count,
     48         SkDisplayTypes , SkMSec time);
     49     virtual bool contains(SkDisplayable*);
     50 //  void createActive(SkAnimateMaker& );
     51     virtual SkDisplayable* deepCopy(SkAnimateMaker* );
     52     void disable();
     53     virtual bool draw(SkAnimateMaker& );
     54 #ifdef SK_DUMP_ENABLED
     55     virtual void dump(SkAnimateMaker* );
     56 #endif
     57     virtual bool enable(SkAnimateMaker& );
     58     void enableCreate(SkAnimateMaker& );
     59     void enableDynamic(SkAnimateMaker& );
     60     void endSave(int index);
     61     Mode getMode() { return mode; }
     62     virtual bool getProperty(int index, SkScriptValue* value) const;
     63     SkDrawable* getScope() { return scope; }
     64     void getStep(SkScriptValue* );
     65     SkDrawable* getTarget(SkAnimateBase* );
     66     bool hasDelayedAnimator() const;
     67     virtual bool hasEnable() const;
     68     bool inactivate(SkAnimateMaker& maker);
     69     virtual void initialize();
     70     bool interpolate(SkAnimateMaker& , SkMSec time);
     71     virtual void onEndElement(SkAnimateMaker& );
     72     virtual const SkMemberInfo* preferredChild(SkDisplayTypes type);
     73     void refresh(SkAnimateMaker& );
     74     void reset();
     75     virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* );
     76     bool resolveField(SkAnimateMaker& , SkDisplayable* parent, SkString* str);
     77     void save(int index);
     78     void setEmbedded() { fEmbedded = true; }
     79     virtual bool setProperty(int index, SkScriptValue& );
     80     virtual void setSteps(int _steps);
     81 //  virtual void setTime(SkMSec time);
     82 #ifdef SK_DEBUG
     83     virtual void validate();
     84 #endif
     85 private:
     86     SkMSec begin;
     87     SkBool dontDraw;
     88     SkString dynamicScope;
     89     SkMSec interval;
     90     Mode mode;
     91 #if 0
     92     SkBool pickup;
     93 #endif
     94     SkBool restore;
     95     SkDrawable* scope;
     96     int32_t steps;
     97     Transition transition;
     98     SkActive* fActive;
     99     SkTDAnimateArray fAnimators;
    100 //  SkDrawable* fCurrentScope;
    101     SkMSec fLastTime;   // used only to return script property time
    102     SkTDDrawableArray fScopes;
    103     SkBool fAppended : 1;
    104     SkBool fContainsScope : 1;
    105     SkBool fDeleteScope : 1;
    106     SkBool fEmbedded : 1;
    107     SkBool fEnabled : 1;
    108     SkBool fEnabling : 1; // set if calling interpolate from enable
    109     friend class SkActive;
    110     friend class SkDisplayList;
    111     typedef SkDrawable INHERITED;
    112 };
    113 
    114 #endif // SkDisplayApply_DEFINED
    115 
    116 
    117