diff -r 4baee4f15982 -r 6385c4c93049 browserui/browser/BrowserAppSrc/BrowserAnimation.cpp --- a/browserui/browser/BrowserAppSrc/BrowserAnimation.cpp Thu Aug 19 09:57:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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: -* Helper class to put animation to contextPane. -* -* -*/ - - -// INCLUDE FILES - -#include "BrowserAnimation.h" -#include "logger.h" - -#include -#include -#include -#include -#include // for TResourceReader -#include // for TAknsItemID - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// CBrowserAnimation::NewL() -// --------------------------------------------------------- -// -CBrowserAnimation* CBrowserAnimation::NewL( TInt aResourceId ) - { -LOG_ENTERFN("Anim::NewL"); - CBrowserAnimation* self = new( ELeave )CBrowserAnimation; - CleanupStack::PushL( self ); - self->ConstructL( aResourceId ); - CleanupStack::Pop(); // self - return self; - } - -// --------------------------------------------------------- -// CBrowserAnimation::~CBrowserAnimation() -// --------------------------------------------------------- -// -CBrowserAnimation::~CBrowserAnimation() - { - delete iAnimation; - } - -// --------------------------------------------------------- -// CBrowserAnimation::StartL() -// --------------------------------------------------------- -// -void CBrowserAnimation::StartL() - { -LOG_ENTERFN("Anim::StartL"); - if ( iAnimation && !iIsRunning ) - { - // Getting status pane control - CEikStatusPane* sp = STATIC_CAST( CAknAppUi*, - CEikonEnv::Static()->EikAppUi() ) - ->StatusPane(); - - // Fetch pointer to contextpane - CAknContextPane* contextPane = STATIC_CAST( CAknContextPane*, - sp->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ); - - //this sets an empty bitmap to the contextpanes background to - //avoid to have the original one in the back of the animation - //the ownership is taken by the contextpane - CFbsBitmap *emptyFbsBitmap = new (ELeave) CFbsBitmap(); - - CleanupStack::PushL( emptyFbsBitmap ); - emptyFbsBitmap->Create( TSize(1, 1), ENone); - CEikImage * emptyEikImage = new (ELeave) CEikImage( ); - emptyEikImage->SetBitmap( emptyFbsBitmap ); - contextPane->SetPicture( emptyEikImage ); - CleanupStack::Pop();//emptyFbsBitmap ownership is taken - - iAnimation->StartAnimationL(); // displays the animation - iIsRunning = ETrue; - } - } - -// --------------------------------------------------------- -// CBrowserAnimation::StopL() -// --------------------------------------------------------- -// -void CBrowserAnimation::StopL() - { -LOG_ENTERFN("Anim::StopL"); - if ( iAnimation && iIsRunning ) // Is the animation running? - { - iAnimation->CancelAnimation(); // ends the animation - iIsRunning = EFalse; - - // Getting status pane control - CEikStatusPane* sp = STATIC_CAST( CAknAppUi*, - CEikonEnv::Static()->EikAppUi() )->StatusPane(); - - // Fetch pointer to contextpane - CAknContextPane* contextPane = NULL; - TRAP_IGNORE( contextPane = STATIC_CAST( CAknContextPane*, sp->ControlL - ( TUid::Uid( EEikStatusPaneUidContext ) ) ) ); - - if ( contextPane ) - { - contextPane->SetPictureToDefaultL(); - contextPane->DrawNow(); // draw original icon - } - } - } - -// --------------------------------------------------------- -// CBrowserAnimation::ConstructL() -// --------------------------------------------------------- -// -void CBrowserAnimation::ConstructL( TInt aResourceId ) - { -LOG_ENTERFN("Anim::ConstructL"); -PERFLOG_LOCAL_INIT -PERFLOG_STOPWATCH_START - // Getting status pane control - CEikStatusPane* sp = STATIC_CAST( CAknAppUi*, - CEikonEnv::Static()->EikAppUi() ) ->StatusPane(); - - if ((sp && sp->PaneCapabilities( - TUid::Uid(EEikStatusPaneUidContext)).IsInCurrentLayout())) - { - // Fetch pointer to contextpane - CAknContextPane* contextPane = - STATIC_CAST( CAknContextPane*, - sp->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) ); - - iAnimation = CAknBitmapAnimation::NewL(); - iAnimation->SetContainerWindowL( *contextPane ); - - TResourceReader rr; - TAknsItemID animationSkinID; - animationSkinID.Set( EAknsMajorAvkon, aResourceId ); - - if( !iAnimation->ConstructFromSkinL( animationSkinID ) ) - { - iAnimation->ControlEnv()->CreateResourceReaderLC( rr, aResourceId ); - iAnimation->ConstructFromResourceL( rr ); // read from resource - CleanupStack::PopAndDestroy(); // rr - } - - iAnimation->SetRect(contextPane->Rect()); -PERFLOG_STOP_WRITE("Animation ConstructL phase 1") -#if 0 - // Start and stop animation out of the screen. - // This way it saves context pane's content as background frame. - const TInt KWmlAnimationDummyPos = 1000; - iAnimation->SetPosition( TPoint( KWmlAnimationDummyPos, - KWmlAnimationDummyPos ) ); - iAnimation->SetRect(contextPane->Rect()); -PERFLOG_STOPWATCH_START - StartL(); - StopL(); - iAnimation->SetPosition( TPoint( 0, 0 ) ); -PERFLOG_STOP_WRITE("Animation ConstructL phase 2") -#endif - } - } - -// End of File