imstutils/imconversationview/imcvuiapp/src/cimcvappstatuspanehandler.cpp
branchRCL_3
changeset 28 3104fc151679
parent 27 2b7283837edb
child 29 9a48e301e94b
--- a/imstutils/imconversationview/imcvuiapp/src/cimcvappstatuspanehandler.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,890 +0,0 @@
-/*
-* Copyright (c) 2007-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:  Handles statuspane, context pane, navi pane
-<<<<<<< C:\DOCUME~1\mbn\LOCALS~1\Temp\cimcvappstatuspanehandler-3_GAA.cpp
-*
-*/
-
-
-// INCLUDE FILES
-#include	"cimcvappstatuspanehandler.h"
-#include 	"mimcvtabobserver.h"
-
-
-// for logs
-#include 	"imcvlogger.h"
-//#include <aknindicatorcontainer.h> 
-#include <eikenv.h>
-#include <aknenv.h>
-#include <aknnavi.h>
-#include <aknnavide.h>
-#include <aknEditStateIndicator.h>
-#include <AknIndicatorContainer.h>
-#include <featmgr.h>
-#include <hlplch.h>
-#include <e32property.h>
-
-// system includes
-#include   <layoutmetadata.cdl.h>
-#include   <aknlayoutscalable_avkon.cdl.h>
-#include <imconnectionproviderconsts.h>
-#include "cimcvenginefactory.h"
-#include "mimcvenginefactory.h"
-const TUint16 KNewMessageIcon( 0xF818 ); 
-
-// ================= MEMBER FUNCTIONS =======================
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ConstructL
-// (other items were commented in a header).
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CIMCVAppStatusPaneHandler::CIMCVAppStatusPaneHandler(MIMCVEngineFactory& aEngineFactory):
-    iEngineFactory( aEngineFactory )
-    {
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::CIMCVAppStatusPaneHandler()" ));
-    }
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ConstructL
-// (other items were commented in a header).
-// Symbian OS default constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ConstructL()
-    {
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::ConstructL() start" ));
-    // Get pointer to status-pane
-    CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->
-		    StatusPane();
-	
-	iNaviPane = static_cast<CAknNavigationControlContainer*>(
-		    statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-		    
-     // Get pointer to title-pane
-    iTitlePane = static_cast<CAknTitlePane*>( statusPane->ControlL(
-			TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
-	iContextPane = static_cast<CAknContextPane*>( statusPane->ControlL(
-		    TUid::Uid( EEikStatusPaneUidContext ) ) );
-	
-	iNewMsgIcon = HBufC::NewL( 1 );  
-	
-	TPtr iconPtr( iNewMsgIcon->Des() );
-	iconPtr.Append( TChar( KNewMessageIcon ) );
-	
-	InitMessageIndicatorL();	
-	
-    //Get the service id  - this property is published by imcvlauncher
-    TInt error = RProperty::Get( KMeCoPropertyUid, KMeCoConvViewServiceIdKey, iServiceId );
-    User::LeaveIfError(error);
-	
-	iEngineFactory.RegisterOpenChatObserver(this);
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::ConstructL() end" ));
-    }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::NewL
-// (other items were commented in a header).
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CIMCVAppStatusPaneHandler* CIMCVAppStatusPaneHandler::NewL(MIMCVEngineFactory& aEngineFactory)
-    {
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::NewL() start" ));
-    CIMCVAppStatusPaneHandler* self = new ( ELeave ) CIMCVAppStatusPaneHandler( aEngineFactory );
-
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::NewL() end" ));
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::~CIMCVAppStatusPaneHandler
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CIMCVAppStatusPaneHandler::~CIMCVAppStatusPaneHandler()
-    {
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::~CIMCVAppStatusPaneHandler() start" ));
-	
-	if (iLastTitle)
-		{
-		delete iLastTitle;
-		iLastTitle = NULL;	
-		}
-	DestroyMessageIndicator();
-	
-	iObserverList.Reset();
-    
-    delete iNewMsgIcon;    
-	delete iNewDecoratedTabGroup;	
-	
-	iEngineFactory.UnRegisterOpenChatObserver();
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::~CIMCVAppStatusPaneHandler() end" ));
-    }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::SetPicture
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SetPicture( const CFbsBitmap* aPicture ,
-									  const CFbsBitmap* aMask )
-	{
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetPicture() start" ));
-    TBool landscape( Layout_Meta_Data::IsLandscapeOrientation() );
-    
-    TBool cpVisible( iContextPane ? iContextPane->IsVisible() : EFalse );
-    TBool useTitle( !cpVisible || landscape );
-	if( useTitle )
-		{
-		iTitlePane->SetSmallPicture(aPicture, aMask ,useTitle );
-		}
-	 else
-		 {
-		 iContextPane->SetPicture( aPicture, aMask );	
-		 }
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetPicture() end" ));
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::SetTitleL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SetTitleL( const TDesC& aTitle )
-	{
-	
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetTitleL() start %S" ), &aTitle);
-	iTitlePane->SetTextL( aTitle );
-	if (iLastTitle)
-		{
-		delete iLastTitle;
-		iLastTitle = NULL;	
-		}
-	iLastTitle = aTitle.AllocL();
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetTitleL() end" ));
-	}
-	
-	
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ShowTabGroupL
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-TInt CIMCVAppStatusPaneHandler::ShowTabGroupL( const TDesC& aId, 
-										const TBool noCreate /* = EFalse */ )
-    {	
-	
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::ShowTabGroupL() start %S" ), &aId);
-	iPrevTabId = 0;
-    iCurrentTabId =0;
-	
-	iCurrentTabId = iEngineFactory.FindIndexL(aId);
-	
-    CreateTabsL(noCreate); 
-        
-   
-   return iCurrentTabId;        
-   }
-    
-
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::CreateTabsL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::CreateTabsL(const TBool noCreate)
-	{	
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::CreateTabs() start " ));
-	iOpenChatArrayCount = iEngineFactory.Count(); 
-	
-
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::CreateTabs() OPEN CHAT ARRAY COUNT %d" ), iOpenChatArrayCount);	
-	if ( (noCreate) && (iNewDecoratedTabGroup) )
-		{
-		
-		CAknTabGroup* origtabGroup = 
-	    	static_cast<CAknTabGroup*>( iNewDecoratedTabGroup->DecoratedControl() );   
-	    	
-		if ( origtabGroup->TabCount() == (iOpenChatArrayCount-1) )
-			{	
-		
-			for (TInt index=0; index<iOpenChatArrayCount; index++)
-				{
-				if ( (iEngineFactory.IsMsgPendingL(index)) 
-						&& ( index != iCurrentTabId ) )
-					{
-					origtabGroup->ReplaceTabTextL(index, iNewMsgIcon->Des());				
-					}
-				else
-					{						
-					origtabGroup->ReplaceTabTextL( index, iEngineFactory.GetDisplayNameL(index) );
-					}						
-				}
-			
-			return;
-				
-			}		
-
-		} 
-		
-		
-	CAknNavigationDecorator* tmpDecoration = iNaviPane->CreateTabGroupL();
-	
-	CleanupStack::PushL( tmpDecoration );
-	
-	CAknTabGroup* tabGroup = 
-    	static_cast<CAknTabGroup*>( tmpDecoration->DecoratedControl() );   
-    
-    if( iOpenChatArrayCount > 2 )
-            {
-            tabGroup->SetTabFixedWidthL( EAknTabWidthWithThreeTabs );
-            }
-    else if ( iOpenChatArrayCount == 2 )
-            {
-            tabGroup->SetTabFixedWidthL( EAknTabWidthWithTwoTabs );
-            }
-    else
-            {
-            tabGroup->SetTabFixedWidthL( EAknTabWidthWithOneTab );
-            }
-            
-    
-	tabGroup->SetObserver( this );
-	
-	
-	for (TInt index=0; index<iOpenChatArrayCount; index++)
-		{
-	
-		if ( (iEngineFactory.IsMsgPendingL(index)) 
-				&& ( index != iCurrentTabId ) )
-			{
-			tabGroup->AddTabL(index, iNewMsgIcon->Des());	
-			}
-		else
-			{
-            if (  1 == iOpenChatArrayCount )
-                {
-                // When a single conversation exists , no need to display name on tab
-                tabGroup->AddTabL( index, KNullDesC );
-                }
-            else
-                {
-                // When more than one conversation exists , display names are displayed on the tabs
-                tabGroup->AddTabL( index, iEngineFactory.GetDisplayNameL(index) );
-                }
-			}
-        }
-				
-    CleanupStack::Pop( tmpDecoration );
-    
-    delete iNewDecoratedTabGroup; 
-	iNewDecoratedTabGroup = tmpDecoration;
-
-	ShowTabL();
-	
-
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::CreateTabs() end" ));
-
-	}
-	
-	
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::TabChangedL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::TabChangedL(TInt aIndex)
-    {
-    TInt activechatitemindex; 
-    CAknTabGroup* tabGroup = static_cast<CAknTabGroup*>( 
-            iNewDecoratedTabGroup->DecoratedControl()); 
-    if ( tabGroup )
-        {
-        tabGroup->SetActiveTabByIndex( aIndex );
-        iEngineFactory.SetActiveItemL(tabGroup->ActiveTabId());
-        iPrevTabId = iCurrentTabId;
-        iCurrentTabId = tabGroup->ActiveTabId();
-        // Get the corrent position in open chat array using tab id
-        if( iOpenChatArrayCount > iEngineFactory.Count() )
-            {
-            activechatitemindex =  (( iPrevTabId<iCurrentTabId )?iPrevTabId:iCurrentTabId);
-            }
-        else
-            {
-            activechatitemindex =  iCurrentTabId ;   
-            }
-        tabGroup->ReplaceTabTextL( iCurrentTabId, iEngineFactory.GetDisplayNameL(activechatitemindex) ); // replace of iCurrentTabId using activechatitemindex	
-        for (TInt index=0; index<iObserverList.Count(); index++)
-            {
-            iObserverList[index]->SwitchTabL( iEngineFactory.GetActiveServiceId(), iEngineFactory.GetTargetIdL(iCurrentTabId), iCurrentTabId );	
-            }
-
-        }	
-    }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler: AddObserver
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::AddObserver(
-									MIMCVTabObserver* aObserver) 
-	{	    
-	
-	ASSERT( aObserver);	
-	TInt status( iObserverList.Find( aObserver ) );
-    if ( status == KErrNotFound )
-	    {
-		status = iObserverList.Append( aObserver ) ;
-		if( status != KErrNone)
-			{
-			CActiveScheduler::Current()->Error( status );	
-			}
-	    }
-	    
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler: RemoveObserver
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::RemoveObserver(
-									MIMCVTabObserver* aObserver )
-	{
-	
-	ASSERT( aObserver);
-	const TInt status( iObserverList.Find( aObserver ) );
-    if ( status != KErrNotFound )
-        {
-        iObserverList.Remove( status );
-        iObserverList.Compress();
-        }
-
-	
-	}
-
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ShowTabL
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ShowTabL()
-    {   
-    CAknTabGroup* tabGroup = static_cast<CAknTabGroup*>( 
-                        iNewDecoratedTabGroup->DecoratedControl());        
-    
-    tabGroup->SetActiveTabById( iCurrentTabId );
-    iEngineFactory.SetActiveItemL(iCurrentTabId);
-    
-    /* Pushes new decorator object to top of the stack and draws it*/
-    
-    iNaviPane->PushL( *iNewDecoratedTabGroup );        
-    
-    }
-
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::HideTab
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::HideTab()
-    {   		
-	
-    /* Pops*/        
-    iNaviPane->Pop( iNewDecoratedTabGroup );
-    
-    }
-
-
-
-
-// ---------------------------------------------------------	
-// CIMCVAppStatusPaneHandler::SetActiveTabByIndexL
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SetActiveTabByIndexL( const TInt aIndex )
-	{
-
-	CAknTabGroup* tabGroup = static_cast<CAknTabGroup*>( 
-                        iNewDecoratedTabGroup->DecoratedControl());        
-    
-    if (!tabGroup)
-	    {
-		return ;
-	    }
-	
-	iCurrentTabId = aIndex;
-	
-	TRAP_IGNORE( tabGroup->ReplaceTabL( iCurrentTabId, 
-	        iEngineFactory.GetDisplayNameL(iCurrentTabId) ) );
-			
-	tabGroup->SetActiveTabById( iCurrentTabId );   
-	
-	iEngineFactory.SetActiveItemL(iCurrentTabId);
-	    	
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::RefreshTitlePaneTextL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::RefreshTitlePaneTextL()
-	{
-	// seems that this is the only way that the title pane text color updates..
-    if( iTitlePane->Text() )
-        {
-        HBufC* origText = iTitlePane->Text()->AllocLC();
-	    HBufC* empty = HBufC::NewLC( 1 );
-	    iTitlePane->SetText( empty );
-	    iTitlePane->SetText( origText);
-	    CleanupStack::Pop( 2, origText ); // empty, origText
-        }
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::TabGroup
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknTabGroup* CIMCVAppStatusPaneHandler::TabGroup() const
-	{
-	// Returns pointer to topmost decorator's tabgroup
-	return static_cast<CAknTabGroup*>( 
-	                        iNewDecoratedTabGroup->DecoratedControl() );
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::PopNaviPane
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::PopNaviPane()
-	{
-	// Pops the topmost decorator out of decorator stack.
-    iNaviPane->Pop();
-    
-	}
-		
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ClearNaviPaneL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ClearNaviPaneL( TBool aAllowDuplicates )
-	{
-	// Pushes default decorator object (empty one)
-	// to top of the stack and draws it. if aAllowDuplicates is ETrue
-	// the new empty decorator is created on top of the stack, rather than
-	// raising the existing one.
-    iNaviPane->PushDefaultL( aAllowDuplicates );   
-    }
-
-
-// ---------------------------------------------------------	
-// CIMCVAppStatusPaneHandler::HandleChangeL
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::HandleChangeL(TInt /*aServiceId*/, TInt aIndex, TOpenChatsEventType aChangeType) 
-	{
-    switch( aChangeType )
-		{
-		case ENewChat:
-			{
-			if( iCurrentTabId >= aIndex )
-			    {
-			    iCurrentTabId = iCurrentTabId+1;
-			    iEngineFactory.SetActiveItemL( iCurrentTabId );
-			    }
-			const TDesC& chatId ( iEngineFactory.GetActiveItemL() );
-			TRAP_IGNORE(  
-            	{
-            	if ( (iCurrentTabId == -1) || (!chatId.Length()) )
-					{	
-					ShowTabGroupL(iEngineFactory.GetTargetIdL(aIndex));								
-					}
-				else
-					{
-					ShowTabGroupL(chatId) ;		
-					}
-            	}
-         	);
-			break;
-			}
-		case EChatClosed: 
-			{
-			if( aIndex == 0 ) 
-				{
-				return;	
-				}
-			iEngineFactory.SetActiveItemL( aIndex -1 );
-			
-			const TDesC& chatId (iEngineFactory.GetActiveItemL());
-			
-			TRAP_IGNORE(  
-            	{
-            	if ( (iCurrentTabId == -1) || (!chatId.Length()) )
-					{	
-					ShowTabGroupL(iEngineFactory.GetTargetIdL(aIndex));								
-					}
-				else
-					{
-					ShowTabGroupL(chatId) ;		
-					}
-            	}
-         	);
-         
-			break;		
-			}
-    
-		
-		case EUnReadCountChanged:
-			{
-			    					
-			const TDesC& chatId (iEngineFactory.GetActiveItemL());
-			
-			if (!chatId.Length())
-				{
-				break;
-				}
-
-			TRAP_IGNORE(
-				{				
-				ShowTabGroupL(chatId, ETrue); 					
-				PushFadeTextL();			
-				ShowFadeText( *iStatusPaneText );
-				delete iStatusPaneText;
-				iStatusPaneText = NULL;
-				}
-			);
-        	
-			break;
-			}
-	
-		default:
-			{
-			//should never be here.
-			break;
-			}
-		}
-	    	
-	
-	}	    
-	
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::SetStatusMsgL()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SetStatusMsgL(TInt /*aServiceId*/, TInt aIndex,const TDesC & aMsg)
-	{
-	if(aIndex>=0)
-		{
-		_LIT(KColun, ": ");
-		iStatusPaneText = HBufC::NewL(iEngineFactory.GetTargetIdL(aIndex).Length() +
-							aMsg.Length() + KColun().Length());
-		TPtr statusPanePtr(iStatusPaneText->Des());
-		
-		statusPanePtr.Copy(iEngineFactory.GetTargetIdL(aIndex));
-		statusPanePtr.Append(KColun);
-		statusPanePtr.Append(aMsg);
-		}
-	}
-
-	
-	
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::RunFadeText()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::RunFadeText()
-	{
-	static_cast<CIMCVNewMsgFadeControl*>(iDecoratedFadeText->DecoratedControl())->Start();
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::HideFadeText
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::HideFadeText()
-	{
-	if ( iDecoratedFadeText ) 
-		{
-		iNaviPane->Pop( iDecoratedFadeText );
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ShowFadeText
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ShowFadeText( TDesC& aTextToFade )
-	{
-	IMessageIndicator()->SetMessage( aTextToFade );
-	RunFadeText();
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ShowNavipaneIndicators
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ShowNavipaneIndicators()
-	{
-    MAknEditingStateIndicator* editStateIndicator = 
-                                    CAknEnv::Static()->EditingStateIndicator();                                   
-    
-    if ( editStateIndicator )
-        {
-        CAknIndicatorContainer* indicatorContainer = editStateIndicator->IndicatorContainer();
-              
-        if( indicatorContainer )
-            {
-            indicatorContainer->SetIndicatorState( 
-    		    TUid::Uid( EAknNaviPaneEditorIndicatorMessageInfo ), 
-    		    EAknIndicatorStateOn );
-            }        
-        }
-	}
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::HideNavipaneIndicators()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::HideNavipaneIndicators()
-	{
-    MAknEditingStateIndicator* editStateIndicator = 
-                                    CAknEnv::Static()->EditingStateIndicator();                                  
-    
-    if ( editStateIndicator )
-        {
-        CAknIndicatorContainer* indicatorContainer = editStateIndicator->IndicatorContainer(); 
-        
-        if( indicatorContainer )
-            {
-            indicatorContainer->SetIndicatorState( 
-    			TUid::Uid( EAknNaviPaneEditorIndicatorMessageInfo ), 
-    			EAknIndicatorStateOff ); 
-            }               
-        }
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::IMessageIndicator
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CIMCVNewMsgFadeControl* CIMCVAppStatusPaneHandler::IMessageIndicator() const
-	{
-	if( iDecoratedFadeText )
-		{
-		return static_cast<CIMCVNewMsgFadeControl*>(iDecoratedFadeText->DecoratedControl());
-		}
-	else
-		{
-		return NULL;
-		}
-
-	}
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::PushFadeTextL()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::PushFadeTextL()
-	{
-	if ( iDecoratedFadeText ) 
-		{
-		iNaviPane->PushL( *iDecoratedFadeText );
-		}
-	}
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ResetFadeText()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ResetFadeText()
-	{
-	IMessageIndicator()->Reset();
-	}
-
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::InitMessageIndicatorL()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::InitMessageIndicatorL()
-	{
-	CAknNavigationDecorator* fade = CreateIMessageIndicatorL();
-	delete iDecoratedFadeText;
-	iDecoratedFadeText = fade;
-	}
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::DestroyMessageIndicator()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::DestroyMessageIndicator()
-	{
-	delete iDecoratedFadeText;
-	iDecoratedFadeText = NULL;
-	}
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::CreateIMessageIndicatorL()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-CAknNavigationDecorator* CIMCVAppStatusPaneHandler::CreateIMessageIndicatorL()
-	{
-	
-	CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->
-		    StatusPane();		    
-	
-	CIMCVNewMsgFadeControl* fadetext = CIMCVNewMsgFadeControl::NewLC( 
-		statusPane->PaneRectL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-	fadetext->SetContainerWindowL( *iNaviPane );
-	
-	CAknNavigationDecorator* decoratedFadetext = 
-		CAknNavigationDecorator::NewL( iNaviPane, fadetext, 
-		CAknNavigationDecorator::EHintText );
-
-	CleanupStack::Pop( fadetext );
-	CleanupStack::PushL( decoratedFadetext );
-	decoratedFadetext->SetContainerWindowL( *iNaviPane );
-	decoratedFadetext->SetControlContext( iNaviPane );
-	decoratedFadetext->MakeScrollButtonVisible( EFalse );
-	
-	CleanupStack::Pop( decoratedFadetext );
-
-	return decoratedFadetext;	
-	}	
-
-// ---------------------------------------------------------
-// CIMCVAppStatusPaneHandler::ClearTitlePaneL()
-// (other items were commented in a header).
-// ---------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::ClearTitlePaneL( )
-    {
-    iTitlePane->SetTextL( _L(" ") );
-    iTitlePane->SetSmallPicture( NULL, NULL, EFalse );
-    }
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::SetPreviousTitleL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SetPreviousTitleL()
-	{
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetPreviousTitleL() start" ));	
-	
-	HBufC* setTitle = NULL; 
-	if (iLastTitle)
-		{
-		setTitle = iLastTitle->AllocLC();
-		}
-	else
-		{
-		setTitle = KNullDesC().AllocLC();	
-		}			
-	SetTitleL(*setTitle);	
-	CleanupStack::PopAndDestroy();		
-	IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::SetPreviousTitleL() end" ));
-	}
-
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::SendBackGroundL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::SendBackGroundL()
-	{
-	ClearTitlePaneL();
-	ClearNaviPaneL(ETrue);		    	
-	}
-
-// -----------------------------------------------------------------------------
-// CIMCVAppStatusPaneHandler::BringToForegroundL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::BringToForegroundL()
-	{
-	SetPreviousTitleL();	
-	ShowTabL();
-	}		    
-
-// -----------------------------------------------------------------------------
-// CVIMPSTProcessArray::RefreshTabL()
-// -----------------------------------------------------------------------------
-//
-void CIMCVAppStatusPaneHandler::RefreshTabL(const TDesC& aUserId, const TDesC& aDisplayName)
-    {
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab() Start" ));
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab()aUserId: %S " ), &aUserId);
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab() aDisplayName : %S " ), &aDisplayName);
-    // find if itsthe active conversation, only then the
-    // the statuspane title and tab text should be updated.
-    CAknTabGroup* tabGroup = static_cast<CAknTabGroup*>( 
-                        iNewDecoratedTabGroup->DecoratedControl());        
-    if (tabGroup)
-        {
-        TInt index = iEngineFactory.FindIndexL(aUserId);
-        IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab() Get the index  %d" ), index);
-        if(KErrNotFound != index)
-            {
-            const TDesC& activeContversationName = iEngineFactory.GetTargetIdL(index);
-            IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab(): %S " ), &activeContversationName);
-
-            if(activeContversationName.Compare(aUserId) == 0 )
-                {
-                IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab(): Inside if" ));
-                SetTitleL(aDisplayName);
-                }
-            // only the tab text needs to be updated.
-            tabGroup->ReplaceTabTextL( index, aDisplayName); 
-            }
-        }
-    IM_CV_LOGS(TXT("CIMCVAppStatusPaneHandler::RefreshTab() End" ));
-    }
-//End of file