diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,167 @@ +/* +* 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: Input mode observer class implementation +* +*/ + +#include "emailtrace.h" +#include "cesmrinputmodeobserver.h" + +#include "cesmrclslistshandler.h" + +#include // TUid +#include // KCRUidAknFep, KAknFepPredTxtFlag +#include // CRepository + +#include // PCS TKeyboardModes enum +#include + +// Unnamed namespace for local definitions +namespace{ + +_LIT( KErrorMessage, "Input mode observer: wrong callback method."); + +}//namespace + +// ======== MEMBER FUNCTIONS ======== + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::NewL +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CESMRInputModeObserver* CESMRInputModeObserver::NewL( CRepository& aCr, CESMRClsListsHandler& aListHandler ) + { + FUNC_LOG; + CESMRInputModeObserver* self = new ( ELeave ) CESMRInputModeObserver( aCr, aListHandler ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::~CESMRInputModeObserver +// Destructor. +// ----------------------------------------------------------------------------- +// +CESMRInputModeObserver::~CESMRInputModeObserver() + { + FUNC_LOG; + if( iCenRepNotifyWrapper ) + { + iCenRepNotifyWrapper->StopListening(); + delete iCenRepNotifyWrapper; + } + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::CESMRInputModeObserver +// Constructor. +// ----------------------------------------------------------------------------- +// +CESMRInputModeObserver::CESMRInputModeObserver( CRepository& aCr, CESMRClsListsHandler& aListHandler ) : + iAkvkFepCenRep( aCr ), iClsListHandler( aListHandler ) + { + FUNC_LOG; + // Nothing + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::ConstructL +// Symbian 2nd phase constructor. +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::ConstructL() + { + FUNC_LOG; + iCenRepNotifyWrapper = CCenRepNotifyHandler::NewL( *this, iAkvkFepCenRep, + CCenRepNotifyHandler::EIntKey, KAknFepPredTxtFlag ); + iCenRepNotifyWrapper->StartListeningL(); + } + +// callback methods for CenRepNotifyHandler +void CESMRInputModeObserver::HandleNotifyInt( TUint32 aId, TInt aNewValue ) + { + FUNC_LOG; + // set new input mode for matchers through list handler + if( aId == KAknFepPredTxtFlag ) + { + TKeyboardModes inputMode = EQwerty; + if( aNewValue ) + { + inputMode = EItut; + } + + TRAPD( error, iClsListHandler.InputModeChangedL( inputMode ) ); + if ( error != KErrNone ) + { + CEikonEnv::Static()-> // codescanner::eikonenvstatic + HandleError(error); + } + } + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::HandleNotifyReal +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::HandleNotifyReal( TUint32 /*aId*/, TReal /*aNewValue*/ ) + { + FUNC_LOG; + User::Panic( KErrorMessage, KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::HandleNotifyString +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::HandleNotifyString( TUint32 /*aId*/, const TDesC16& /*aNewValue*/ ) + { + FUNC_LOG; + User::Panic( KErrorMessage, KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::HandleNotifyBinary +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::HandleNotifyBinary( TUint32 /*id*/, const TDesC8& /*aNewValue*/ ) + { + FUNC_LOG; + User::Panic( KErrorMessage, KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::HandleNotifyGeneric +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::HandleNotifyGeneric( TUint32 /*aId*/ ) + { + FUNC_LOG; + User::Panic( KErrorMessage, KErrNotSupported ); + } + +// ----------------------------------------------------------------------------- +// CESMRInputModeObserver::HandleNotifyError +// ----------------------------------------------------------------------------- +// +void CESMRInputModeObserver::HandleNotifyError( TUint32 /*aId*/, TInt aError, CCenRepNotifyHandler* /*aHandler*/ ) + { + FUNC_LOG; + User::Panic( KErrorMessage, aError ); + } + +// End of file +