diff -r 12af337248b1 -r bd7edf625bdd clock2/clockui/uilayer/clockworldview/src/clockworlditemprocessor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock2/clockui/uilayer/clockworldview/src/clockworlditemprocessor.cpp Wed Sep 01 12:32:31 2010 +0100 @@ -0,0 +1,196 @@ +/* +* Copyright (c) 2008 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: This is the source file for the CClockWorldItemProcessor class. +* +*/ + +// System includes +#include + +// User includes +#include "clockworlditemprocessor.h" +#include "clockworldcontainer.h" +#include "clock_debug.h" + +// Literals + +// Constants +const TInt KEvenNumber( 2 ); + +// --------------------------------------------------------- +// CClockWorldItemProcessor::NewL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockWorldItemProcessor* CClockWorldItemProcessor::NewL( CClockWorldContainer* aContainer ) + { + __PRINTS( "CClockWorldItemProcessor::NewL - Entry" ); + + CClockWorldItemProcessor* self = new( ELeave ) CClockWorldItemProcessor(); + + CleanupStack::PushL( self ); + self->ConstructL( aContainer ); + + CleanupStack::Pop( self ); + + __PRINTS( "CClockWorldItemProcessor::NewL - Exit" ); + + return self; + + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::~CClockWorldItemProcessor +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockWorldItemProcessor::~CClockWorldItemProcessor() + { + __PRINTS( "CClockWorldItemProcessor::~CClockWorldItemProcessor - Entry" ); + + Cancel(); + + __PRINTS( "CClockWorldItemProcessor::~CClockWorldItemProcessor - Exit" ); + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::ProcessEachItem +// rest of the details are commented in the header +// --------------------------------------------------------- +// +TInt CClockWorldItemProcessor::ProcessEachItem( TInt aIndex ) + { + __PRINTS( "CClockWorldItemProcessor::ProcessEachItem - Entry" ); + + TInt retValue( KErrNotFound ); + + if( iContainer ) + { + retValue = iContainer->RedrawItem( aIndex ); + } + + __PRINTS( "CClockWorldItemProcessor::ProcessEachItem - Exit" ); + + return retValue; + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::RunL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockWorldItemProcessor::RunL() + { + __PRINTS( "CClockWorldItemProcessor::RunL - Entry" ); + + // Call the redraw for even number lisitems first and then for the odd number lisitems + // This gives a faster loading effect on the hardware + + TInt returnValue( KErrNone ); + + returnValue = ProcessEachItem( iDrawnListItem ); + + if( returnValue ) + { + iDrawnListItem = iDrawnListItem + KEvenNumber; + } + else if( KErrNone == iDrawnListItem % KEvenNumber ) + { + iDrawnListItem = KEvenNumber - 1; + } + else + { + Cancel(); + + __PRINTS( "CClockWorldItemProcessor::RunL - Exit" ); + + return; + } + + DoAsyncCallback(); + + __PRINTS( "CClockWorldItemProcessor::RunL - Exit" ); + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::DoCancel +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockWorldItemProcessor::DoCancel() + { + __PRINTS( "CClockWorldItemProcessor::DoCancel - Entry" ); + + // No Implementation Yet. + + __PRINTS( "CClockWorldItemProcessor::DoCancel - Exit" ); + } + + +// --------------------------------------------------------- +// CClockWorldItemProcessor::CClockWorldItemProcessor +// rest of the details are commented in the header +// --------------------------------------------------------- +// +CClockWorldItemProcessor::CClockWorldItemProcessor() : CActive( CActive::EPriorityStandard ) + { + __PRINTS( "CClockWorldItemProcessor::CClockWorldItemProcessor - Entry" ); + + CActiveScheduler::Add( this ); + DoAsyncCallback(); + + __PRINTS( "CClockWorldItemProcessor::CClockWorldItemProcessor - Exit" ); + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::ConstructL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockWorldItemProcessor::ConstructL( CClockWorldContainer* aContainer ) + { + __PRINTS( "CClockWorldItemProcessor::ConstructL - Entry" ); + + iContainer = aContainer; + iDrawnListItem = 0; + + __PRINTS( "CClockWorldItemProcessor::ConstructL - Exit" ); + } + +// --------------------------------------------------------- +// CClockWorldItemProcessor::DoAsyncCallback +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockWorldItemProcessor::DoAsyncCallback() + { + __PRINTS( "CClockWorldItemProcessor::DoAsyncCallback - Entry" ); + + if( IsAdded() ) + { + if( !IsActive() ) + { + // Make sure this is the last Active Object in the list + Deque(); + CActiveScheduler::Add( this ); + TRequestStatus* status = &iStatus; + User::RequestComplete( status, KErrNone ); + SetActive(); + } + } + + __PRINTS( "CClockWorldItemProcessor::DoAsyncCallback - Exit" ); + } + +// End of file