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 25 struct SkEventState; 26 27 class 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& ); 47 protected: 48 SkString src; 49 SkAnimator fMovie; 50 SkBool8 fDecodedSuccessfully; 51 SkBool8 fLoaded; 52 SkBool8 fMovieBuilt; 53 friend class SkAnimateMaker; 54 friend class SkPost; 55 private: 56 typedef SkDrawable INHERITED; 57 }; 58 59 #endif // SkDisplayMovie_DEFINED 60 61