diff -r 890b5dd735f8 -r f15ac8e65a02 vtuis/videotelui/src/commands/cvtuicommandpolicymanager.cpp --- a/vtuis/videotelui/src/commands/cvtuicommandpolicymanager.cpp Thu Aug 19 09:57:36 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,334 +0,0 @@ -/* -* 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: Command policy manager class. -* -*/ - - -#include - -#include "cvtuicommandpolicymanager.h" -#include "cvtuicmdcontext.h" -#include "cvtuicmdvalidatorbase.h" -#include "cvtuicmdvalidationactionbase.h" -#include "cvtuicmdcustomvalidationactionbase.h" -#include "cvtuiprimarycmdpolicy.h" -#include "cvtuicommandmanager.h" - -// ======== LOCAL FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Used in InsertInOrder() method to compare two instances of CVtUiCmdContext. -// --------------------------------------------------------------------------- -// -TInt ContextTypeCmpFunc( const CVtUiCmdContext& aV1, - const CVtUiCmdContext& aV2 ) - { - return static_cast< TInt >( aV1.ContextType() ) - - static_cast< TInt >( aV2.ContextType() ); - } - -// --------------------------------------------------------------------------- -// Used in FindInOrder() method to compare instances of CVtUiCmdContext versus -// given key value. -// --------------------------------------------------------------------------- -// -TInt ContextTypeCmpFuncVsKey( const TVtUiCmdContextType* aKey, - const CVtUiCmdContext& aValue ) - { - return static_cast< TInt > ( *aKey ) - - static_cast< TInt >( aValue.ContextType() ); - } - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::NewL -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager* -CVtUiCommandPolicyManager::NewL( const CVtUiCommandManager& aCmdManager ) - { - CVtUiCommandPolicyManager* self = - new ( ELeave ) CVtUiCommandPolicyManager( aCmdManager ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::~CVtUiCommandPolicyManager -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager::~CVtUiCommandPolicyManager() - { - __VTPRINTENTER( "CmdPolicyMgr.~" ) - iContexts.Reset(); - iValidators.Reset(); - delete iPrimaryCommandPolicy; - __VTPRINTEXIT( "CmdPolicyMgr.~" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::RegisterCommandContext -// --------------------------------------------------------------------------- -// -TInt CVtUiCommandPolicyManager::RegisterCommandContext( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.RegisterCommandContext" ) - TLinearOrder< CVtUiCmdContext > cmpFunc( ::ContextTypeCmpFunc ); - TInt result( KErrNone ); - TInt index( iContexts.FindInOrder( &aContext, cmpFunc ) ); - if ( index == KErrNotFound ) - { - TInt error( iContexts.InsertInOrder( &aContext, cmpFunc ) ); - if ( !error ) - { - CommandContextRegistered( aContext ); - } - result = error; - } - else - { - result = KErrAlreadyExists; - } - __VTPRINTEXITR( "CmdPolicyMgr.RegisterCommandContext %d", result ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::UnregisterCommandContext -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::UnregisterCommandContext( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.UnregisterCommandContext" ) - TLinearOrder< CVtUiCmdContext > cmpFunc( ::ContextTypeCmpFunc ); - TInt index( iContexts.FindInOrder( &aContext, cmpFunc ) ); - if ( index != KErrNotFound ) - { - iContexts.Remove( index ); - CommandContextUnregistered( aContext ); - } - __VTPRINTEXIT( "CmdPolicyMgr.UnregisterCommandContext" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::AddValidator -// --------------------------------------------------------------------------- -// -TInt CVtUiCommandPolicyManager::AddValidator( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.AddValidator" ) - TInt error( iValidators.Append( &aValidator ) ); - if ( !error ) - { - ValidatorAdded( aValidator ); - } - __VTPRINTEXITR( "CmdPolicyMgr.AddValidator %d", error ) - return error; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::RemoveValidator -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::RemoveValidator( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.RemoveValidator" ) - TInt index( iValidators.Find( &aValidator ) ); - if ( index != KErrNotFound ) - { - iValidators.Remove( index ); - ValidatorRemoved( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.RemoveValidator" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateMenuItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateMenuItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateMenuItemsL" ) - ValidateL( EVtUiCmdContextTypeMenu, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateMenuItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateSoftkeyItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateSoftkeyItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateSoftkeyItemsL" ) - ValidateL( EVtUiCmdContextTypeSoftkey, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateSoftkeyItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateToolbarItemsL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateToolbarItemsL( - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateToolbarItemsL" ) - ValidateL( EVtUiCmdContextTypeToolbar, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.ValidateToolbarItemsL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CustomValidateL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CustomValidateL( - CVtUiCmdCustomValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.CustomValidateL" ) - ValidateL( EVtUiCmdContextTypeExecution, aAction ); - __VTPRINTEXIT( "CmdPolicyMgr.CustomValidateL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CVtUiCommandPolicyManager -// --------------------------------------------------------------------------- -// -CVtUiCommandPolicyManager::CVtUiCommandPolicyManager( - const CVtUiCommandManager& aCmdManager ) : iCommandManager( aCmdManager ) - { - __VTPRINTENTER( "CmdPolicyMgr.ctor" ) - __VTPRINTEXIT( "CmdPolicyMgr.ctor" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ConstructL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ConstructL() - { - __VTPRINTENTER( "CmdPolicyMgr.ConstructL" ) - iPrimaryCommandPolicy = - CVtUiPrimaryCmdPolicy::NewL( iCommandManager.UiStates(), - iCommandManager.AppUi() ); - User::LeaveIfError( AddValidator( *iPrimaryCommandPolicy ) ); - __VTPRINTEXIT( "CmdPolicyMgr.ConstructL" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CommandContextRegistered -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CommandContextRegistered( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.CommandContextRegistered" ) - for ( TInt i = iValidators.Count() - 1 ; i >= 0; i-- ) - { - aContext.AddValidator( *iValidators[ i ] ); - } - __VTPRINTEXIT( "CmdPolicyMgr.CommandContextRegistered" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::CommandContextUnregistered -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::CommandContextUnregistered( - CVtUiCmdContext& aContext ) - { - __VTPRINTENTER( "CmdPolicyMgr.CommandContextUnregistered" ) - for ( TInt i = iValidators.Count() - 1 ; i >= 0; i-- ) - { - aContext.RemoveValidator( *iValidators[ i ] ); - } - __VTPRINTEXIT( "CmdPolicyMgr.CommandContextUnregistered" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidatorAdded -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidatorAdded( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidatorAdded" ) - for ( TInt i = iContexts.Count() - 1 ; i >= 0; i-- ) - { - iContexts[ i ]->AddValidator( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidatorAdded" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidatorRemoved -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidatorRemoved( - CVtUiCmdValidatorBase& aValidator ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidatorRemoved" ) - for ( TInt i = iContexts.Count() - 1 ; i >= 0; i-- ) - { - iContexts[ i ]->RemoveValidator( aValidator ); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidatorRemoved" ) - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::FindCommandContextByType -// --------------------------------------------------------------------------- -// -CVtUiCmdContext* CVtUiCommandPolicyManager::FindCommandContextByType( - TVtUiCmdContextType aContextType ) - { - __VTPRINTENTER( "CmdPolicyMgr.FindCommandContextByType" ) - CVtUiCmdContext* result = NULL; - TInt index( iContexts.FindInOrder( aContextType, - ::ContextTypeCmpFuncVsKey ) ); - if ( index != KErrNotFound ) - { - result = iContexts[ index ]; - } - __VTPRINTEXIT( "CmdPolicyMgr.FindCommandContextByType" ) - return result; - } - -// --------------------------------------------------------------------------- -// CVtUiCommandPolicyManager::ValidateL -// --------------------------------------------------------------------------- -// -void CVtUiCommandPolicyManager::ValidateL( TVtUiCmdContextType aContextType, - CVtUiCmdValidationActionBase& aAction ) - { - __VTPRINTENTER( "CmdPolicyMgr.ValidateL" ) - CVtUiCmdContext* context = - FindCommandContextByType( aContextType ); - if ( context ) - { - aAction.BeginProcess(); - context->ValidateL( aAction ); - aAction.EndProcess(); - } - __VTPRINTEXIT( "CmdPolicyMgr.ValidateL" ) - } -