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 SkDisplayApply_DEFINED 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkDisplayApply_DEFINED 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkAnimateBase.h" 148a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkDrawable.h" 158a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkIntArray.h" 168a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkActive; 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkApply : public SkDrawable { 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com DECLARE_MEMBER_INFO(Apply); 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkApply(); 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual ~SkApply(); 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com enum Transition { 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kTransition_normal, 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kTransition_reverse 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com }; 30d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com enum Mode { 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kMode_create, 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com kMode_immediate, 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com //kMode_once 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com }; 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void activate(SkAnimateMaker& ); 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void append(SkApply* apply); 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void appendActive(SkActive* ); 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void applyValues(int animatorIndex, SkOperand* values, int count, 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDisplayTypes , SkMSec time); 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool contains(SkDisplayable*); 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// void createActive(SkAnimateMaker& ); 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual SkDisplayable* deepCopy(SkAnimateMaker* ); 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void disable(); 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool draw(SkAnimateMaker& ); 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DUMP_ENABLED 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void dump(SkAnimateMaker* ); 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool enable(SkAnimateMaker& ); 508a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void enableCreate(SkAnimateMaker& ); 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void enableDynamic(SkAnimateMaker& ); 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void endSave(int index); 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Mode getMode() { return mode; } 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool getProperty(int index, SkScriptValue* value) const; 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawable* getScope() { return scope; } 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void getStep(SkScriptValue* ); 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawable* getTarget(SkAnimateBase* ); 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool hasDelayedAnimator() const; 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool hasEnable() const; 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool inactivate(SkAnimateMaker& maker); 61d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com virtual void initialize(); 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool interpolate(SkAnimateMaker& , SkMSec time); 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void onEndElement(SkAnimateMaker& ); 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual const SkMemberInfo* preferredChild(SkDisplayTypes type); 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void refresh(SkAnimateMaker& ); 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void reset(); 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* ); 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com bool resolveField(SkAnimateMaker& , SkDisplayable* parent, SkString* str); 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void save(int index); 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void setEmbedded() { fEmbedded = true; } 718a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual bool setProperty(int index, SkScriptValue& ); 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void setSteps(int _steps); 738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// virtual void setTime(SkMSec time); 748a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DEBUG 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void validate(); 768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprivate: 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkMSec begin; 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool dontDraw; 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkString dynamicScope; 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkMSec interval; 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Mode mode; 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if 0 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool pickup; 858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool restore; 878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkDrawable* scope; 888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int32_t steps; 898a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com Transition transition; 908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkActive* fActive; 918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkTDAnimateArray fAnimators; 928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com// SkDrawable* fCurrentScope; 938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkMSec fLastTime; // used only to return script property time 948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkTDDrawableArray fScopes; 958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fAppended : 1; 968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fContainsScope : 1; 978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fDeleteScope : 1; 988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fEmbedded : 1; 998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fEnabled : 1; 1008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkBool fEnabling : 1; // set if calling interpolate from enable 1018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com friend class SkActive; 1028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com friend class SkDisplayList; 1038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com typedef SkDrawable INHERITED; 1048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 1058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1068a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif // SkDisplayApply_DEFINED 107