williamr@2: // Copyright (c) 2005-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@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.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: // Standard CWsGraphic plugins williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __W32STDGRAPHIC_H__ williamr@2: #define __W32STDGRAPHIC_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class TWsGraphicAnimation: public TWsGraphicMsgFixedBase williamr@2: /** data attached to a CWindowGc::DrawWsGraphic to allow the artwork to understand VCR-style williamr@2: play-stop-pause commands. williamr@2: @publishedAll williamr@2: @released williamr@2: */ { williamr@2: public: williamr@2: enum williamr@2: { williamr@2: ETypeId = 0x10281AB1 williamr@2: }; williamr@2: IMPORT_C TWsGraphicAnimation(); williamr@2: IMPORT_C void Play(TBool aLoop); williamr@2: IMPORT_C void Pause(); williamr@2: IMPORT_C void Stop(TBool aImmediately); williamr@2: IMPORT_C TBool IsPlaying() const; williamr@2: IMPORT_C TBool IsStopped() const; williamr@2: IMPORT_C TBool IsStopping() const; williamr@2: IMPORT_C TBool IsPaused() const; williamr@2: IMPORT_C TBool Loops() const; williamr@2: private: williamr@2: TUint State() const; williamr@2: void SetState(TUint aState); williamr@2: private: williamr@2: enum williamr@2: { williamr@2: // animation state in lowest nibble williamr@2: EStopped = 0x00, williamr@2: EPlaying = 0x01, williamr@2: EStopping = 0x02, williamr@2: EPaused = 0x03, williamr@2: EStateMask = 0x0F, williamr@2: // other flags above williamr@2: ELoop = 0x10, williamr@2: }; williamr@2: TUint iFlags; williamr@2: TTime iPlay; williamr@2: TTime iPauseOrStopping; williamr@2: }; williamr@2: williamr@2: NONSHARABLE_CLASS(CWsGraphicBitmap): public CWsGraphic williamr@2: /** Client representation of a window-server-side CFbsBitmap owned by this Client williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CWsGraphicBitmap* NewL(const CFbsBitmap* aBitmap,const CFbsBitmap* aMask); williamr@2: IMPORT_C static CWsGraphicBitmap* NewL(TUid aUid,const CFbsBitmap* aBitmap,const CFbsBitmap* aMask); williamr@2: IMPORT_C static CWsGraphicBitmap* NewL(const TWsGraphicId& aReplace,const CFbsBitmap* aBitmap,const CFbsBitmap* aMask); williamr@2: IMPORT_C ~CWsGraphicBitmap(); williamr@2: public: // protected virtuals from CWsGraphic promoted to public williamr@2: IMPORT_C TInt ShareGlobally(); williamr@2: IMPORT_C TInt UnShareGlobally(); williamr@2: IMPORT_C TInt Share(TSecureId aClientId); williamr@2: IMPORT_C TInt UnShare(TSecureId aClientId); williamr@2: private: williamr@2: CWsGraphicBitmap(); williamr@2: void HandleMessage(const TDesC8& aData); williamr@2: void OnReplace(); williamr@2: }; williamr@2: williamr@2: NONSHARABLE_CLASS(CWsGraphicBitmapAnimation): public CWsGraphic williamr@2: /** Client representation of a window-server-side CFbsBitmap owned by this Client williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: NONSHARABLE_CLASS(CFrame): public CBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CFrame* NewL(); williamr@2: IMPORT_C ~CFrame(); williamr@2: // public getters/setters williamr@2: IMPORT_C TFrameInfo FrameInfo() const; williamr@2: IMPORT_C void SetFrameInfo(const TFrameInfo& aFrameInfo); williamr@2: IMPORT_C const CFbsBitmap* Bitmap() const; williamr@2: IMPORT_C void SetBitmap(CFbsBitmap* aBitmap); williamr@2: IMPORT_C const CFbsBitmap* Mask() const; williamr@2: IMPORT_C void SetMask(CFbsBitmap* aMask); williamr@2: private: williamr@2: CFrame(); williamr@2: private: williamr@2: friend class CWsGraphicBitmapAnimation; williamr@2: TFrameInfo iFrameInfo; williamr@2: CFbsBitmap* iBitmap; williamr@2: CFbsBitmap* iMask; williamr@2: }; williamr@2: typedef TArray TFrames; williamr@2: public: williamr@2: IMPORT_C static CWsGraphicBitmapAnimation* NewL(const TFrames& aFrames); williamr@2: IMPORT_C static CWsGraphicBitmapAnimation* NewL(TUid aUid,const TFrames& aFrames); williamr@2: IMPORT_C static CWsGraphicBitmapAnimation* NewL(const TWsGraphicId& aReplace,const TFrames& aFrames); williamr@2: IMPORT_C ~CWsGraphicBitmapAnimation(); williamr@2: public: // protected virtuals from CWsGraphic promoted to public williamr@2: IMPORT_C TInt ShareGlobally(); williamr@2: IMPORT_C TInt UnShareGlobally(); williamr@2: IMPORT_C TInt Share(TSecureId aClientId); williamr@2: IMPORT_C TInt UnShare(TSecureId aClientId); williamr@2: private: williamr@2: CWsGraphicBitmapAnimation(); williamr@2: static HBufC8* PackLC(const TFrames& aFrames); williamr@2: void HandleMessage(const TDesC8& aData); williamr@2: void OnReplace(); williamr@2: }; williamr@2: williamr@2: #endif //__W32STDGRAPHIC_H__