diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/xSPExtensionManager/src/CxSPSortNamesListViewExtension.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/xSPExtensionManager/src/CxSPSortNamesListViewExtension.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2006 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: +* Implementation for CxSPSortNamesListViewExtension. +* +*/ + + +// INCLUDE FILES +#include "CxSPSortNamesListViewExtension.h" + +// System includes +#include +#include + +// From Phonebook2 +#include +#include +#include +#include + +// internal +#include "ExtensionManager.hrh" +#include +#include "MxSPCommandMapper.h" +#include "ExtensionManagerUID.H" + +using namespace Phonebook2; + +// ================= MEMBER FUNCTIONS ======================= + +inline CxSPSortNamesListViewExtension::CxSPSortNamesListViewExtension() + { + } + +inline void CxSPSortNamesListViewExtension::ConstructL() + { + } + +CxSPSortNamesListViewExtension* CxSPSortNamesListViewExtension::NewL() + { + CxSPSortNamesListViewExtension* self = new(ELeave) CxSPSortNamesListViewExtension(); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +CxSPSortNamesListViewExtension::~CxSPSortNamesListViewExtension() + { + } + +void CxSPSortNamesListViewExtension::DoRelease() + { + delete this; + } + +void CxSPSortNamesListViewExtension::DynInitMenuPaneL + ( TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/ ) + { + } + +void CxSPSortNamesListViewExtension::DynInitNamesListMainMenuPaneL + ( TInt /*aResourceId*/, CEikMenuPane* aMenuPane ) + { + AddMenuContentsL( *aMenuPane ); + ChangeCommandL( *aMenuPane, EExtensionManagerCmdSort ); + } + +void CxSPSortNamesListViewExtension::AddMenuContentsL( CEikMenuPane& aMenuPane ) + { + TInt newCommand; + TInt err = iMapper->GetNewCommand( KEXTENSIONMANAGERIMPLEMENTATIONUID, + EExtensionManagerCmdSort, + newCommand ); + User::LeaveIfError( err ); + TInt pos; + if( !aMenuPane.MenuItemExists( newCommand, pos ) ) + { + aMenuPane.AddMenuItemsL( R_SORT_NAMES_LIST_VIEW_MENU ); + } + } + +void CxSPSortNamesListViewExtension::ChangeCommandL( CEikMenuPane& aMenuPane, TInt aOldCommand ) + { + TInt pos; + if( aMenuPane.MenuItemExists( aOldCommand, pos ) ) + { + TInt newCommand; + TInt err = iMapper->GetNewCommand( KEXTENSIONMANAGERIMPLEMENTATIONUID, + aOldCommand, + newCommand ); + User::LeaveIfError( err ); + CEikMenuPaneItem::SData& data = aMenuPane.ItemDataByIndexL( pos ); + data.iCommandId = newCommand; + } + } + +TBool CxSPSortNamesListViewExtension::HandleCommandL( TInt aCommandId, + MPbk2ContactUiControl* aUiControl ) + { + TBool result( EFalse ); + TInt oldCommand; + TInt err = iMapper->GetOldCommand( KEXTENSIONMANAGERIMPLEMENTATIONUID, aCommandId, oldCommand ); + + if( !err ) + { + switch( oldCommand ) + { + case EExtensionManagerCmdSort: + { + CPbk2ViewState* state = aUiControl->ControlStateL(); + CleanupStack::PushL( state ); + Pbk2AppUi()->Pbk2ViewExplorer()-> + ActivatePhonebook2ViewL( TUid::Uid( + EExtensionManagerSortViewId ), state ); + CleanupStack::PopAndDestroy( state ); + aUiControl->UpdateAfterCommandExecution(); + result = ETrue; + break; + } + default: + { + break; + } + } + } + + return result; + } + +void CxSPSortNamesListViewExtension::RegisterCommandMapper( MxSPCommandMapper& aMapper ) + { + iMapper = &aMapper; + } + +TInt CxSPSortNamesListViewExtension::CommandInfoResource() const + { + return R_EXTENSION_MANAGER_COMMAND_INFO; + } + +// End of File