diff -r c84cf270c54f -r 8871b09be73b phoneapp/phoneuiview/src/cphoneeasydialingcontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuiview/src/cphoneeasydialingcontroller.cpp Fri Feb 19 22:50:26 2010 +0200 @@ -0,0 +1,153 @@ +/* +* Copyright (c) 2009 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: Class handles Easy dialing specific commands +* +*/ + +#include "cphoneeasydialingcontroller.h" + +#include "cdialer.h" +#include "tphonecommandparam.h" +#include "tphonecmdparaminteger.h" +#include "tphonecmdparamdynmenu.h" +#include "dialingextensioninterface.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CPhoneEasyDialingController::CPhoneEasyDialingController +// --------------------------------------------------------------------------- +// +CPhoneEasyDialingController::CPhoneEasyDialingController( + CDialer& aDialer ) + : iDialer ( aDialer ) + { + // Get Easydialing interface. This can be NULL if easydialing is not + // present in current device configuration. + iEasyDialing = iDialer.GetEasyDialingInterface(); + } + + // --------------------------------------------------------------------------- + // CPhoneEasyDialingController::NewL + // --------------------------------------------------------------------------- + // +CPhoneEasyDialingController* CPhoneEasyDialingController::NewL( + CDialer& aDialer ) + { + return new (ELeave) CPhoneEasyDialingController( aDialer ); + } + +// --------------------------------------------------------------------------- +// CPhoneEasyDialingController::~CPhoneEasyDialingController +// --------------------------------------------------------------------------- +// +CPhoneEasyDialingController::~CPhoneEasyDialingController() + { + } + +// --------------------------------------------------------------------------- +// CPhoneEasyDialingController::ExecuteCommandL +// --------------------------------------------------------------------------- +// +void CPhoneEasyDialingController::ExecuteCommandL( + TPhoneViewCommandId aCmdId, + TPhoneCommandParam* aCommandParam ) + { + if ( iEasyDialing ) + { + switch ( aCmdId ) + { + case EPhoneViewGetEasyDialingMenuId: + { + TPhoneCmdParamInteger* paramInt = + static_cast( aCommandParam ); + paramInt->SetInteger( iEasyDialing->MenuResourceId() ); + } + break; + + case EPhoneViewGetEasyDialingCbaId: + { + TPhoneCmdParamInteger* paramInt = + static_cast( aCommandParam ); + paramInt->SetInteger( iEasyDialing->CbaResourceId() ); + } + break; + + default: + break; + } + } + } + +// --------------------------------------------------------------------------- +// CPhoneEasyDialingController::HandleCommandL +// --------------------------------------------------------------------------- +// +TPhoneViewResponseId CPhoneEasyDialingController::HandleCommandL( + TPhoneViewCommandId aCmdId ) + { + TPhoneViewResponseId viewResponse = EPhoneViewResponseFailed; + + switch ( aCmdId ) + { + // commands defined in easydialingcommands.hrh are forwarded to + // easydialing plugin + case EEasyDialingVoiceCall: + case EEasyDialingVideoCall: + case EEasyDialingSendMessage: + case EEasyDialingOpenContact: + case EEasyDialingCallHandlingActivated: + case EEasyDialingEnterKeyAction: + case EEasyDialingOn: + case EEasyDialingOff: + { + if( iEasyDialing && iEasyDialing->HandleCommandL( aCmdId ) ) + { + viewResponse = EPhoneViewResponseSuccess; + } + } + break; + + case EPhoneViewGetEasyDialingInFocusStatus: + { + if ( iEasyDialing && iEasyDialing->IsFocused() ) + { + viewResponse = EPhoneViewResponseSuccess; + } + } + break; + } + + return viewResponse; + } + +// --------------------------------------------------------------------------- +// CPhoneEasyDialingController::InitializeEasyDialingMenuL +// --------------------------------------------------------------------------- +// +TBool CPhoneEasyDialingController::InitializeEasyDialingMenuL( + TPhoneCommandParam* aCommandParam ) + { + TBool retVal( EFalse ); + if ( iEasyDialing ) + { + TPhoneCmdParamDynMenu* menu = static_cast( aCommandParam ); + + // TInt resourceId = menu->ResourceId(); + CEikMenuPane* menuPane = reinterpret_cast( menu->DynMenu() ); + + retVal = iEasyDialing->InitializeMenuPaneL( *menuPane, menu->ResourceId() ); + } + return retVal; + }