michael@0: michael@0: /* michael@0: * Copyright 2006 The Android Open Source Project michael@0: * michael@0: * Use of this source code is governed by a BSD-style license that can be michael@0: * found in the LICENSE file. michael@0: */ michael@0: michael@0: michael@0: #ifndef SkDisplayMovie_DEFINED michael@0: #define SkDisplayMovie_DEFINED michael@0: michael@0: #include "SkAnimator.h" michael@0: #include "SkDrawable.h" michael@0: #include "SkMemberInfo.h" michael@0: michael@0: struct SkEventState; michael@0: michael@0: class SkDisplayMovie : public SkDrawable { michael@0: DECLARE_DISPLAY_MEMBER_INFO(Movie); michael@0: SkDisplayMovie(); michael@0: virtual ~SkDisplayMovie(); michael@0: void buildMovie(); michael@0: virtual SkDisplayable* deepCopy(SkAnimateMaker* ); michael@0: virtual void dirty(); michael@0: bool doEvent(const SkEvent& evt) { michael@0: return fLoaded && fMovie.doEvent(evt); michael@0: } michael@0: virtual bool doEvent(SkDisplayEvent::Kind , SkEventState* state ); michael@0: virtual bool draw(SkAnimateMaker& ); michael@0: #ifdef SK_DUMP_ENABLED michael@0: virtual void dump(SkAnimateMaker* ); michael@0: virtual void dumpEvents(); michael@0: #endif michael@0: virtual bool enable(SkAnimateMaker& ); michael@0: const SkAnimator* getAnimator() const { return &fMovie; } michael@0: virtual bool hasEnable() const; michael@0: virtual void onEndElement(SkAnimateMaker& ); michael@0: protected: michael@0: SkString src; michael@0: SkAnimator fMovie; michael@0: SkBool8 fDecodedSuccessfully; michael@0: SkBool8 fLoaded; michael@0: SkBool8 fMovieBuilt; michael@0: friend class SkAnimateMaker; michael@0: friend class SkPost; michael@0: private: michael@0: typedef SkDrawable INHERITED; michael@0: }; michael@0: michael@0: #endif // SkDisplayMovie_DEFINED