uifw/EikStd/coctlsrc/Aknedsts.cpp
changeset 0 2f259fa3e83a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/EikStd/coctlsrc/Aknedsts.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,357 @@
+/*
+* Copyright (c) 1997-2000 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:
+*
+*/
+
+
+
+#include "aknedsts.h"
+#include "eikccpu.h"
+#include "eikmenub.h"
+#include <AknFormAccessor.h>
+#include <aknedformaccessor.h>
+#include <eikedwin.pan>
+#include <eikedwin.h>
+#include <avkon.rsg>
+
+//
+// class CAknEdwinState
+//
+
+CAknEdwinState::~CAknEdwinState()
+	{
+	}
+
+CAknEdwinState::CAknEdwinState(MEikCcpuEditor* aCcpuState) :
+	iFlags(EAknEditorFlagDefault),
+	iDefaultInputMode(EAknEditorTextInputMode),
+	iPermittedInputModes(EAknEditorAllInputModes),
+	iDefaultCase(EAknEditorTextCase),
+	iPermittedCases(EAknEditorAllCaseModes),
+	iLocalLanguage(TLanguage(0)), // explicitly set to language code 0
+	iSpecialCharacterTableResourceId(-1), // -1 sets default SCT
+	iNumericKeymap(EAknEditorAlphanumericNumberModeKeymap),
+	iCcpuState(aCcpuState)
+	{
+	iCbaState.iLeftSoftkeyCommandId=0;
+	iCbaState.iRightSoftkeyCommandId=0;
+	iMiddleSoftkeyCommandId=0;
+	}
+
+EXPORT_C CAknEdwinState::CAknEdwinState() :
+	iFlags(EAknEditorFlagDefault),
+	iDefaultInputMode(EAknEditorTextInputMode),
+	iPermittedInputModes(EAknEditorAllInputModes),
+	iDefaultCase(EAknEditorTextCase),
+	iPermittedCases(EAknEditorAllCaseModes),
+	iLocalLanguage(TLanguage(0)), // explicitly set to language code 0
+	iSpecialCharacterTableResourceId(-1), // -1 sets default SCT
+	iNumericKeymap(EAknEditorAlphanumericNumberModeKeymap)
+	{
+	iCbaState.iLeftSoftkeyCommandId=0;
+	iCbaState.iRightSoftkeyCommandId=0;
+	iMiddleSoftkeyCommandId=0;
+	}
+
+EXPORT_C void CAknEdwinState::SetObserver(MAknEdStateObserver* aObserver)
+	{
+	iObserver = aObserver;
+	}
+
+EXPORT_C void CAknEdwinState::ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateEvent aEventType)
+	{
+	if (iObserver)
+        {
+		iObserver->HandleAknEdwinStateEventL(this, aEventType);
+        }
+	}
+
+EXPORT_C TInt CAknEdwinState::Flags() const
+	{
+	return iFlags;
+	}
+
+EXPORT_C TInt CAknEdwinState::DefaultInputMode() const
+	{
+	return iDefaultInputMode;
+	}
+
+EXPORT_C TInt CAknEdwinState::CurrentInputMode() const
+	{
+	return iCurrentInputMode;
+	}
+
+EXPORT_C TInt CAknEdwinState::PermittedInputModes() const
+	{
+	return iPermittedInputModes;
+	}
+
+EXPORT_C TInt CAknEdwinState::DefaultCase() const
+	{
+	return iDefaultCase;
+	}
+
+EXPORT_C TInt CAknEdwinState::CurrentCase() const
+	{
+	return iCaseState.CurrentCase();
+	}
+
+EXPORT_C TInt CAknEdwinState::PermittedCases() const
+	{
+	return iPermittedCases;
+	}
+
+EXPORT_C TInt CAknEdwinState::DefaultLanguage() const
+	{
+    // T9 language codes are not anymore supported, use LocalLanguage instead
+    return 0;
+	}
+
+EXPORT_C TInt CAknEdwinState::SpecialCharacterTableResourceId() const
+	{
+	return iSpecialCharacterTableResourceId;
+	}
+
+EXPORT_C TAknEditorNumericKeymap CAknEdwinState::NumericKeymap() const
+	{
+	return iNumericKeymap;
+	}
+
+EXPORT_C TCursorSelection CAknEdwinState::CurrentInlineEditSpan() const
+	{
+	return iCurrentInlineEditSpan;
+	}
+
+EXPORT_C CAknEdwinState::SEditorCbaState& CAknEdwinState::CbaState()
+	{
+	return iCbaState;
+	}
+
+EXPORT_C MEikCcpuEditor* CAknEdwinState::CcpuState() const
+	{
+	return iCcpuState;
+	}
+
+EXPORT_C CEikMenuBar* CAknEdwinState::MenuBar() const
+	{
+	return iMenu;
+	}
+
+EXPORT_C TLanguage CAknEdwinState::LocalLanguage() const
+	{
+	return iLocalLanguage;
+	}
+
+EXPORT_C CAknEdwinFormAccessor* CAknEdwinState::FormAccessor() const
+	{
+	return iFormAccessor;
+	}
+
+EXPORT_C void CAknEdwinState::SetFlags( TInt aFlags )
+	{
+    TBool flagsChange( iFlags != aFlags );	
+    TInt oldFlags( iFlags );
+	iFlags = aFlags;
+	if ( flagsChange && iFormAccessor )
+	    {
+	    CEikEdwin* edwin( static_cast<CEikEdwin*>( 
+	        iFormAccessor->FormClientControl() ) );
+	    edwin->OnEditorStateFlagChange( oldFlags, aFlags );
+	    }
+	}
+
+EXPORT_C void CAknEdwinState::SetDefaultInputMode(TInt aInputMode)
+	{
+	iDefaultInputMode=aInputMode;
+	}
+
+EXPORT_C void CAknEdwinState::SetCurrentInputMode(TInt aInputMode)
+	{
+	iCurrentInputMode=aInputMode;
+	}
+
+EXPORT_C void CAknEdwinState::SetPermittedInputModes(TInt aInputModes)
+	{
+	iPermittedInputModes=aInputModes;
+	}
+
+EXPORT_C void CAknEdwinState::SetDefaultCase(TInt aCase)
+	{
+	iDefaultCase=aCase;
+	}
+
+EXPORT_C void CAknEdwinState::SetCurrentCase(TInt aCase)
+	{
+	iCaseState.SetCurrentCase(aCase);
+	iCaseState.SetFlag(TAknEditorCaseState::EFlagSupressAutoUpdateCase);
+	}
+
+EXPORT_C void CAknEdwinState::SetPermittedCases(TInt aCases)
+	{
+	iPermittedCases=aCases;
+	}
+
+EXPORT_C void CAknEdwinState::SetDefaultLanguage(TInt /* aLanguage */)
+	{
+    // T9 language codes are not anymore supported (use SetLocalLanguage instead)    
+	}
+
+EXPORT_C void CAknEdwinState::SetSpecialCharacterTableResourceId(TInt aResourceId)
+	{
+	iSpecialCharacterTableResourceId=aResourceId;
+	}
+
+EXPORT_C void CAknEdwinState::SetNumericKeymap(TAknEditorNumericKeymap aKeymap)
+	{
+	iNumericKeymap=aKeymap;
+	}
+
+EXPORT_C void CAknEdwinState::SetInlineEditSpan(TCursorSelection aCurrentInlineEditSpan)
+	{
+	iCurrentInlineEditSpan=aCurrentInlineEditSpan;
+	}
+
+EXPORT_C void CAknEdwinState::SetCba()
+	{
+	iObjectProvider->MopGetObject(iCbaState.iCurrentCba);
+	iCbaState.iLeftSoftkeyCommandId=0;
+	iCbaState.iRightSoftkeyCommandId=0;
+	iMiddleSoftkeyCommandId=0;
+	}
+
+EXPORT_C void CAknEdwinState::SetMenu()
+	{
+	iObjectProvider->MopGetObject(iMenu);
+	}
+
+EXPORT_C void CAknEdwinState::SetLocalLanguage(TLanguage aLanguage)
+	{
+	iLocalLanguage = aLanguage;
+	}
+
+EXPORT_C void CAknEdwinState::SetFormAccessor(CAknEdwinFormAccessor* aFormAccessor)
+	{
+	iFormAccessor = aFormAccessor;
+	}
+
+EXPORT_C void CAknEdwinState::SetCurrentCaseWithNoInitialisation(TInt aCase)
+	{
+	iCaseState.SetCurrentCase(aCase);
+	}
+
+EXPORT_C void CAknEdwinState::SetCcpuState(MEikCcpuEditor* aCcpuEditor)
+	{
+	iCcpuState=aCcpuEditor;
+	}
+
+EXPORT_C TAknEditorCaseState& CAknEdwinState::CaseState()
+	{
+	return iCaseState;
+	}
+
+void CAknEdwinState::CheckLRCursorAndT9Consistency()
+	{
+#ifdef _DEBUG
+	_LIT(KPanicCategory,"CAknEdwinState");
+#endif
+	__ASSERT_DEBUG(
+					(!(iFlags&EAknEditorFlagNoLRNavigation)) ||
+					(!(iPermittedInputModes& EAknEditorTextInputMode)),
+					User::Panic(KPanicCategory,EEikPanicEdwinInvalidFlagCombination)
+				);
+	}
+
+EXPORT_C MObjectProvider* CAknEdwinState::ObjectProvider() const
+	{
+	return iObjectProvider;
+	}
+
+EXPORT_C void CAknEdwinState::SetObjectProvider(MObjectProvider* aObjectProvider)
+	{
+	iObjectProvider = aObjectProvider;
+	}
+
+
+EXPORT_C void CAknEdwinState::SetMiddleSoftkeyCommandId(TInt aCommandId)
+	{
+	iMiddleSoftkeyCommandId = aCommandId;
+	}
+
+
+EXPORT_C TInt CAknEdwinState::MiddleSoftkeyCommandId() const
+	{
+	return iMiddleSoftkeyCommandId;
+	}
+
+
+/**
+ *	TAknEditorCaseState
+ *
+ *	Data structure to hold the current state of all case state
+ *	information currently held by the fep and applicable to an
+ *	editor
+ *
+ */
+EXPORT_C TAknEditorCaseState::TAknEditorCaseState()
+	{
+	SetFlag(EFlagInitialiseRequired);
+	}
+
+EXPORT_C void TAknEditorCaseState::SetCurrentCase(TUint aCase)
+	{
+	iCurrentCase = STATIC_CAST(TUint8, (aCase&0x000F));  // 0 fill most sig 24 bits and cast
+	}
+
+EXPORT_C void TAknEditorCaseState::SetPreviousCase(TUint aCase)
+	{
+	iPreviousCase = STATIC_CAST(TUint8, (aCase&0x000F));  // 0 fill most sig 24 bits and cast
+	}
+
+EXPORT_C void TAknEditorCaseState::SetPreviousCaseUsedToEnterText(TUint aCase)
+	{
+	iPreviousCaseUsedToEnterText = STATIC_CAST(TUint8, (aCase&0x000F));  // 0 fill most sig 24 bits and cast
+	}
+
+EXPORT_C TUint TAknEditorCaseState::CurrentCase() const
+	{
+	return iCurrentCase;
+	}
+
+EXPORT_C TUint TAknEditorCaseState::PreviousCase() const
+	{
+	return iPreviousCase;
+	}
+
+EXPORT_C TUint TAknEditorCaseState::PreviousCaseUsedToEnterText() const
+	{
+	return iPreviousCaseUsedToEnterText;
+	}
+
+EXPORT_C void TAknEditorCaseState::SetFlag(TCaseStateFlags aFlag)
+	{
+	iFlags |= aFlag;
+	}
+
+EXPORT_C void TAknEditorCaseState::ClearFlag(TCaseStateFlags aFlag)
+	{
+	iFlags &= ~aFlag;
+	}
+
+EXPORT_C TBool TAknEditorCaseState::IsFlagSet(TCaseStateFlags aFlag) const
+	{
+	return iFlags & aFlag;
+	}
+
+