meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrgui/mrfieldbuilderpluginextension/src/cesmrinputmodeobserver.cpp Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2002-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 <e32cmn.h> // TUid
+#include <AknFepInternalCRKeys.h> // KCRUidAknFep, KAknFepPredTxtFlag
+#include <centralrepository.h> // CRepository
+
+#include <CPcsDefs.h> // PCS TKeyboardModes enum
+#include <eikenv.h>
+
+// 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
+