00001 #ifndef __CAnimation__ 00002 #define __CAnimation__ 00003 00004 #include "CControl.hpp" 00005 #include "../Graphics/CImageManager.hpp" 00006 00007 // =========================================================================== 00008 00009 using Exponent::GUI::Controls::CControl; 00010 using Exponent::GUI::Graphics::CImageManager; 00011 00012 // =========================================================================== 00013 00014 namespace Exponent 00015 { 00016 namespace GUI 00017 { 00018 namespace Controls 00019 { 00037 class CAnimation : public CControl 00038 { 00040 EXPONENT_CLASS_DECLARATION; 00043 // =========================================================================== 00044 00045 public: 00046 00047 // =========================================================================== 00048 00055 CAnimation(IControlRoot *root, const long uniqueId, const CRect &area); 00056 00060 virtual ~CAnimation(); 00061 00062 // =========================================================================== 00063 00071 virtual void setAnimationImage(IImage *theImage, const long heightOfEachFrame, const long numberOfFrames, const bool invertAnimation = false); 00072 00078 virtual void setAnimationImage(CImageManager::CAnimationReference *animationReference, const bool invertAnimation = false); 00079 00080 // =========================================================================== 00081 00086 virtual void drawControl(CGraphics &graphics); 00087 00088 // =========================================================================== 00089 00090 protected: 00091 00092 // =========================================================================== 00093 00094 long m_frameHeight; 00095 long m_numberOfFrames; 00096 CRect m_offsetArea; 00097 bool m_invertAnimationStrip; 00098 }; 00099 } 00100 } 00101 } 00102 #endif // End of CAnimation.hpp