williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __ANIMATIONFRAME_H__ williamr@2: #define __ANIMATIONFRAME_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: class CFbsBitmap; williamr@2: williamr@2: /** williamr@2: Data format for individual bitmap format animation frames. williamr@2: williamr@2: Animators and data providers which use the "bitmap" data type use objects williamr@2: of this type to transfer data. williamr@2: williamr@2: You do not need to instantiate an object of this type unless you are writing williamr@2: a new data provider. williamr@2: williamr@2: @see CBitmapAnimator williamr@2: @see CICLAnimationDataProvider williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class CAnimationFrame : public CBase williamr@2: { williamr@2: public: williamr@2: /** Structure used for passing a CAnimationFrame safely over a williamr@2: client/server connection.*/ williamr@2: struct THandles williamr@2: { williamr@2: /** A handle to the bitmap into which the decoded frame(s) are put */ williamr@2: TInt iBitmapHandle; williamr@2: /** The bitmap mask for the changed area for this frame */ williamr@2: TInt iMaskHandle; williamr@2: /** General frame info provided by all plugins */ williamr@2: TFrameInfo iFrameInfo; williamr@2: }; williamr@2: public: williamr@2: virtual ~CAnimationFrame(); williamr@2: IMPORT_C static CAnimationFrame* NewL(); williamr@2: IMPORT_C static CAnimationFrame* NewL(const THandles& aHandles); williamr@2: IMPORT_C void GetHandles(THandles & aHandles) const; williamr@2: IMPORT_C void SetHandlesL(const THandles & aHandles); williamr@2: IMPORT_C void CreateL(const TFrameInfo& aFrameInfo); williamr@2: /** Returns the bitmap image for the changed area for this frame williamr@2: @return A pointer to a CFbsBitmap */ williamr@2: CFbsBitmap* Bitmap() { return iBitmap; } williamr@2: /** Returns the bitmap image for the changed area for this frame williamr@2: @return A pointer to a const CFbsBitmap */ williamr@2: const CFbsBitmap* Bitmap() const { return iBitmap; } williamr@2: /** Returns the bitmap mask for the changed area for this frame williamr@2: @return A pointer to a CFbsBitmap */ williamr@2: CFbsBitmap* Mask() { return iMask; } williamr@2: /** Returns the bitmap mask for the changed area for this frame williamr@2: @return A pointer to a const CFbsBitmap */ williamr@2: const CFbsBitmap* Mask() const { return iMask; } williamr@2: /** Returns information about the frame. williamr@2: @return A TFrameInfo */ williamr@2: TFrameInfo& FrameInfo() { return iFrameInfo; } williamr@2: /** Returns information about the frame. williamr@2: @return A const TFrameInfo */ williamr@2: const TFrameInfo& FrameInfo() const { return iFrameInfo; } williamr@2: protected: williamr@2: IMPORT_C virtual void CAnimationFrame_Reserved1(); williamr@2: IMPORT_C virtual void CAnimationFrame_Reserved2(); williamr@2: private: williamr@2: TInt iCAnimationFrame_Reserved; williamr@2: private: williamr@2: CAnimationFrame() {}; williamr@2: CAnimationFrame(const CAnimationFrame&); // no implementation williamr@2: CAnimationFrame& operator=(const CAnimationFrame&); // no implementation williamr@2: void ConstructL(); williamr@2: private: williamr@2: CFbsBitmap* iBitmap; williamr@2: CFbsBitmap* iMask; williamr@2: TFrameInfo iFrameInfo; williamr@2: }; williamr@2: williamr@2: #endif //__ANIMATIONFRAME_H__