diff -r 000000000000 -r bde4ae8d615e os/graphics/windowing/windowserver/stdgraphic/BITMAPANIMATIONGRAPHIC.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/graphics/windowing/windowserver/stdgraphic/BITMAPANIMATIONGRAPHIC.CPP Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,176 @@ +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#include "W32STDGRAPHIC.H" +#include + +LOCAL_C const TUid KStdBitmapAnimationType = {0x10281AAE}; + +// CWsGraphicBitmapAnimation::CFrame \\\\\\\\\\\\\\\\\\\\\\\\\\ + +EXPORT_C CWsGraphicBitmapAnimation::CFrame* CWsGraphicBitmapAnimation::CFrame::NewL() + { + CFrame* self = new(ELeave) CFrame; + return self; + } + +CWsGraphicBitmapAnimation::CFrame::CFrame() + { + } + +EXPORT_C CWsGraphicBitmapAnimation::CFrame::~CFrame() + { + delete iBitmap; + delete iMask; + } + +// public getters/setters + +EXPORT_C TFrameInfo CWsGraphicBitmapAnimation::CFrame::FrameInfo() const + { + return iFrameInfo; + } + +EXPORT_C void CWsGraphicBitmapAnimation::CFrame::SetFrameInfo(const TFrameInfo& aFrameInfo) + { + iFrameInfo = aFrameInfo; + } + +EXPORT_C const CFbsBitmap* CWsGraphicBitmapAnimation::CFrame::Bitmap() const + { + return iBitmap; + } + +EXPORT_C void CWsGraphicBitmapAnimation::CFrame::SetBitmap(CFbsBitmap* aBitmap) + { + if(iBitmap != aBitmap) + { + delete iBitmap; + iBitmap = aBitmap; + } + } + +EXPORT_C const CFbsBitmap* CWsGraphicBitmapAnimation::CFrame::Mask() const + { + return iMask; + } + +EXPORT_C void CWsGraphicBitmapAnimation::CFrame::SetMask(CFbsBitmap* aMask) + { + if(iMask != aMask) + { + delete iMask; + iMask = aMask; + } + } + +// CWsGraphicBitmapAnimation \\\\\\\\\\\\\\\\\\\\\\\\\\ + +CWsGraphicBitmapAnimation::CWsGraphicBitmapAnimation() + { + } + +EXPORT_C CWsGraphicBitmapAnimation::~CWsGraphicBitmapAnimation() + { + } + +EXPORT_C CWsGraphicBitmapAnimation* CWsGraphicBitmapAnimation::NewL(const TFrames& aFrames) + { + CWsGraphicBitmapAnimation* self = new(ELeave) CWsGraphicBitmapAnimation; + CleanupStack::PushL(self); + HBufC8* data = PackLC(aFrames); + self->BaseConstructL(KStdBitmapAnimationType,*data); + CleanupStack::PopAndDestroy(data); + CleanupStack::Pop(self); + return self; + } + +EXPORT_C CWsGraphicBitmapAnimation* CWsGraphicBitmapAnimation::NewL(TUid aUid,const TFrames& aFrames) + { + CWsGraphicBitmapAnimation* self = new(ELeave) CWsGraphicBitmapAnimation; + CleanupStack::PushL(self); + HBufC8* data = PackLC(aFrames); + self->BaseConstructL(aUid,KStdBitmapAnimationType,*data); + CleanupStack::PopAndDestroy(data); + CleanupStack::Pop(self); + return self; + } + +EXPORT_C CWsGraphicBitmapAnimation* CWsGraphicBitmapAnimation::NewL(const TWsGraphicId& aReplace,const TFrames& aFrames) + { + CWsGraphicBitmapAnimation* self = new(ELeave) CWsGraphicBitmapAnimation; + CleanupStack::PushL(self); + HBufC8* data = PackLC(aFrames); + self->BaseConstructL(aReplace,KStdBitmapAnimationType,*data); + CleanupStack::PopAndDestroy(data); + CleanupStack::Pop(self); + return self; + } + +// protected virtuals from CWsGraphic promoted to public + +EXPORT_C TInt CWsGraphicBitmapAnimation::ShareGlobally() + { + return CWsGraphic::ShareGlobally(); + } + +EXPORT_C TInt CWsGraphicBitmapAnimation::UnShareGlobally() + { + return CWsGraphic::UnShareGlobally(); + } + +EXPORT_C TInt CWsGraphicBitmapAnimation::Share(TSecureId aClientId) + { + return CWsGraphic::Share(aClientId); + } + +EXPORT_C TInt CWsGraphicBitmapAnimation::UnShare(TSecureId aClientId) + { + return CWsGraphic::UnShare(aClientId); + } + +void CWsGraphicBitmapAnimation::HandleMessage(const TDesC8& /*aData*/) + { + } + +void CWsGraphicBitmapAnimation::OnReplace() + { + } + +HBufC8* CWsGraphicBitmapAnimation::PackLC(const TFrames& aFrames) + { + __ASSERT_COMPILE(sizeof(TInt) == sizeof(TInt32)); + const TInt count = aFrames.Count(); + HBufC8* buf = HBufC8::NewL(sizeof(TInt) + ((sizeof(TFrameInfo)+sizeof(TInt)+sizeof(TInt))*count)); + CleanupStack::PushL(buf); + TPtr8 des = buf->Des(); + RDesWriteStream out(des); + out.PushL(); + out.WriteInt32L(count); + for(TInt i=0; i(&(frame->iFrameInfo)),sizeof(TFrameInfo)); + out.WriteInt32L(frame->Bitmap()? frame->Bitmap()->Handle(): 0); + out.WriteInt32L(frame->Mask()? frame->Mask()->Handle(): 0); + } + out.Pop(); + out.CommitL(); + return buf; + }