1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/graphics/windowing/windowserver/test/ANIMWIN.CPP Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,127 @@
1.4 +// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +// Animated Bitmap Window
1.18 +//
1.19 +//
1.20 +
1.21 +#include "MBMCMD.H"
1.22 +#include "ANIMWIN.H"
1.23 +
1.24 +
1.25 +/*TestWindow11*/
1.26 +
1.27 +TestWindow11::TestWindow11() : CTWin()
1.28 + {
1.29 + }
1.30 +
1.31 +TestWindow11::~TestWindow11()
1.32 + {
1.33 + delete iAnim;
1.34 + delete iAnimDll;
1.35 + }
1.36 +
1.37 +void TestWindow11::InitWinL()
1.38 + {
1.39 + iAnimDll=new(ELeave) RAnimDll(Client()->iWs);
1.40 + //__ASSERT_DEBUG(iAnimDll,Panic());
1.41 + iAnim=new(ELeave) RMbmAnim(*iAnimDll);
1.42 + //__ASSERT_DEBUG(iAnim,Panic());
1.43 +
1.44 + CWsBitmap *bitmap=new(ELeave) CWsBitmap(Client()->iWs);
1.45 + //__ASSERT_DEBUG(bitmap,Panic());
1.46 + iWin.SetRequiredDisplayMode(EColor256);
1.47 + User::LeaveIfError(bitmap->Load(VIDEO_MBM_NAME,0));
1.48 + iVideoSize=bitmap->SizeInPixels();
1.49 + iWin.SetExtent(TPoint(320-(iVideoSize.iWidth>>1),0),iVideoSize);
1.50 + delete bitmap;
1.51 + TRAP_IGNORE(LoadDllL());
1.52 + }
1.53 +
1.54 +void TestWindow11::Draw()
1.55 + {
1.56 + TSize size=Size();
1.57 + TRect rect(size);
1.58 +
1.59 + iGc->SetPenStyle(CGraphicsContext::ENullPen);
1.60 + iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
1.61 + iGc->SetBrushColor(TRgb::Gray2(1));
1.62 + iGc->DrawRect(rect);
1.63 + }
1.64 +
1.65 +void TestWindow11::WinKeyL(const TKeyEvent &aKey,const TTime &)
1.66 + {
1.67 + if (aKey.iCode=='p' || aKey.iCode=='P')
1.68 + {
1.69 + CheckWindowSize();
1.70 + iAnim->Activate();
1.71 + }
1.72 + else if (aKey.iCode=='s' || aKey.iCode=='S')
1.73 + iAnim->Deactivate();
1.74 + else if (aKey.iCode==',' || aKey.iCode=='<')
1.75 + iAnim->SlowDown();
1.76 + else if (aKey.iCode=='.' || aKey.iCode=='>')
1.77 + iAnim->SpeedUp();
1.78 + }
1.79 +
1.80 +void TestWindow11::LoadDllL()
1.81 + {
1.82 + _LIT(DllName,"MbmAnim.DLL");
1.83 + iAnimDll->Load(DllName);
1.84 + iAnim->ConstructL(iWin);
1.85 + TBuf<32> name(VIDEO_MBM_NAME);
1.86 + iAnim->SetMbmFile(name);
1.87 + }
1.88 +
1.89 +void TestWindow11::CheckWindowSize()
1.90 + {
1.91 + TSize size=iWin.Size();
1.92 + if (size.iWidth<iVideoSize.iWidth || size.iHeight<iVideoSize.iHeight)
1.93 + iWin.SetExtent(TPoint(320-(iVideoSize.iWidth>>1),0),iVideoSize);
1.94 + }
1.95 +
1.96 +
1.97 +/*RMbmAnim*/
1.98 +
1.99 +void RMbmAnim::ConstructL(const RWindowBase &aDevice)
1.100 + {
1.101 + TPtrC8 des(NULL,0);
1.102 + User::LeaveIfError(RAnim::Construct(aDevice,0,des));
1.103 + }
1.104 +
1.105 +void RMbmAnim::SetMbmFile(const TBuf<32>& aFileName)
1.106 + {
1.107 + TPckgBuf<TBuf<32> > param;
1.108 + param()=aFileName;
1.109 + Command(EMbmOpSetFileName,param);
1.110 + }
1.111 +
1.112 +void RMbmAnim::Activate()
1.113 + {
1.114 + Command(EMbmOpActivate);
1.115 + }
1.116 +
1.117 +void RMbmAnim::Deactivate()
1.118 + {
1.119 + Command(EMbmOpDeactivate);
1.120 + }
1.121 +
1.122 +void RMbmAnim::SpeedUp()
1.123 + {
1.124 + Command(EMbmOpFaster);
1.125 + }
1.126 +
1.127 +void RMbmAnim::SlowDown()
1.128 + {
1.129 + Command(EMbmOpSlower);
1.130 + }