1/* libs/graphics/animator/SkDisplayMovie.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 SkDisplayMovie_DEFINED 19#define SkDisplayMovie_DEFINED 20 21#include "SkAnimator.h" 22#include "SkDrawable.h" 23#include "SkMemberInfo.h" 24 25struct SkEventState; 26 27class SkDisplayMovie : public SkDrawable { 28 DECLARE_DISPLAY_MEMBER_INFO(Movie); 29 SkDisplayMovie(); 30 virtual ~SkDisplayMovie(); 31 void buildMovie(); 32 virtual SkDisplayable* deepCopy(SkAnimateMaker* ); 33 virtual void dirty(); 34 bool doEvent(const SkEvent& evt) { 35 return fLoaded && fMovie.doEvent(evt); 36 } 37 virtual bool doEvent(SkDisplayEvent::Kind , SkEventState* state ); 38 virtual bool draw(SkAnimateMaker& ); 39#ifdef SK_DUMP_ENABLED 40 virtual void dump(SkAnimateMaker* ); 41 virtual void dumpEvents(); 42#endif 43 virtual bool enable(SkAnimateMaker& ); 44 const SkAnimator* getAnimator() const { return &fMovie; } 45 virtual bool hasEnable() const; 46 virtual void onEndElement(SkAnimateMaker& ); 47protected: 48 SkString src; 49 SkAnimator fMovie; 50 SkBool8 fDecodedSuccessfully; 51 SkBool8 fLoaded; 52 SkBool8 fMovieBuilt; 53 friend class SkAnimateMaker; 54 friend class SkPost; 55private: 56 typedef SkDrawable INHERITED; 57}; 58 59#endif // SkDisplayMovie_DEFINED 60 61