clock2/clockui/uilayer/clockworldview/src/clockworlditemprocessor.cpp
branchRCL_3
changeset 30 bd7edf625bdd
--- /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 <e32base.h>
+
+// 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