diff -r 000000000000 -r 5d03bc08d59c windowing/windowserver/test/MBMANIM.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/windowing/windowserver/test/MBMANIM.CPP Tue Feb 02 01:47:50 2010 +0200 @@ -0,0 +1,159 @@ +// Copyright (c) 1999-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: +// Anim DLL to animate a bitmap +// +// + +#include "MBMCMD.H" +#include "MBMANIM.H" + +#define DEFAUlT_LINE_WIDTH 4 +#define DEFAUlT_MASK_WIDTH_FACTOR 3 +#define DEFAUlT_END_POINT_FACTOR 2 +#define BLACK TRgb::Gray2(0) +#define WHITE TRgb::Gray2(1) + + +EXPORT_C CAnimDll *CreateCAnimDllL() + { + return(new(ELeave) CAnimateMbmAnimDll()); + } + + +/*CAnimateMbmAnimDll*/ + +CAnim *CAnimateMbmAnimDll::CreateInstanceL(TInt /*aType*/) + { + return new(ELeave) CAnimateMbm(); + } + + +/*CAnimTimer*/ + +void CAnimTimer::ConstructL() + { + CTimer::ConstructL(); + } + +void CAnimTimer::DoCancel() + {} + +void CAnimTimer::RunL() + { + iAnimator->Animate(); + } + + +/*CAnimateMbm*/ + +CAnimateMbm::~CAnimateMbm() + { + delete iTimer; + delete iBitmap; + } + +void CAnimateMbm::ConstructL(TAny *, TBool ) + { + iTimer=new(ELeave) CAnimTimer(this); + iTimer->ConstructL(); + CActiveScheduler::Add(iTimer); + iInterval=100000; //0.1 secs + iBitmap=new(ELeave) CFbsBitmap(); + iWindowFunctions->SetRect(TRect(0,0,20,20)); + } + +void CAnimateMbm::Animate() + { + if (!iRunning) + return; + iTimer->After(iInterval); + ++iIndex; + while(LoadBitmap()!=KErrNone) + iIndex=0; + iWindowFunctions->ActivateGc(); + Redraw(); + WindowFunctions()->DeactivateGc(); + WindowFunctions()->Update(); + } + +TBool CAnimateMbm::OfferRawEvent(const TRawEvent& /*aRawEvent*/) + { + return EFalse; + } + +void CAnimateMbm::Animate(TDateTime* /*aDateTime*/) + { + } + +void CAnimateMbm::Redraw() + { + iGc->BitBlt(TPoint(),iBitmap); + /*if (1>0) + { + iGc->SetBrushStyle(CGraphicsContext::ESolidBrush); + iGc->SetBrushColor(TRgb::Gray16(iIndex)); + iGc->DrawRect(TRect(5,5,300,300)); + }*/ + } + +void CAnimateMbm::Command(TInt aOpcode,TAny* /*aParams*/) + { + switch (aOpcode) + { + case EMbmOpDeactivate: + //iFunctions->SetSync(MAnimGeneralFunctions::ESyncNone); + if (iRunning) + { + WindowFunctions()->ActivateGc(); + WindowFunctions()->DeactivateGc(); + iRunning=EFalse; + } + break; + case EMbmOpFaster: + iInterval=(19*iInterval.Int())/20; + break; + case EMbmOpSlower: + iInterval=(21*iInterval.Int())/20; + break; + default: + iFunctions->Panic(); + } + } + +void CAnimateMbm::FocusChanged(TBool ) + { + } + +TInt CAnimateMbm::CommandReplyL(TInt aOpcode,TAny* aParams) + { + switch (aOpcode) + { + case EMbmOpActivate: + //iFunctions->SetSync(MAnimGeneralFunctions::ESyncSecond); + if (!iRunning) + { + iRunning=ETrue; + } + iTimer->After(iInterval); + break; + case EMbmOpSetFileName: + iName=*STATIC_CAST(TBuf<32>*,aParams); + iIndex=0; + User::LeaveIfError(LoadBitmap()); + break; + default: + iFunctions->Panic(); + } + return KErrNone; + }