--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/ptienginev2/inc/PtiDefaultCore.h Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,203 @@
+/*
+* Copyright (c) 2003-2007 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: Default english multitapping core for PtiEngine
+* This core implementation is always available.
+*
+*/
+
+
+#ifndef _PTI_DEFAULT_CORE_H
+#define _PTI_DEFAULT_CORE_H
+
+// INCLUDES
+#include <e32base.h>
+#include "PtiCore.h"
+
+// FORWARD DECLARATIONS
+class CPtiKeyMappings;
+//class CPtiKeyMapData;
+class CPtiKeyMapDataFactory;
+
+const TInt KDefaulCoreMaximumWordLength = 100;
+const TInt32 KDefaultCoreUid = 0xffffffff;
+
+const TUid KPtiEnginePSUid = {0x101F8610}; // Same as PtiEngine dll
+enum TPtiEnginePSKeys
+ {
+ EKeyMapPropertyCount,
+ EKeyMapPropertyData
+ };
+
+//
+// TPtiDataFactoryBinding
+//
+class TPtiDataFactoryBinding
+ {
+ public:
+ inline TPtiDataFactoryBinding();
+ inline TPtiDataFactoryBinding(TInt aLanguage, TInt aImplUid);
+
+ public:
+ TInt iLanguage;
+ TInt iFactoryImplUid;
+ };
+
+
+// ---------------------------------------------------------------------------
+// TPtiDataFactoryBinding::TPtiDataFactoryBinding
+//
+// ---------------------------------------------------------------------------
+//
+inline TPtiDataFactoryBinding::TPtiDataFactoryBinding() :
+ iLanguage(0), iFactoryImplUid(0)
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// TPtiDataFactoryBinding::TPtiDataFactoryBinding
+//
+// ---------------------------------------------------------------------------
+//
+inline TPtiDataFactoryBinding::TPtiDataFactoryBinding(TInt aLanguage, TInt aImplUid)
+ : iLanguage(aLanguage), iFactoryImplUid(aImplUid)
+ {
+ }
+
+
+//
+// CMultiTapTimer
+//
+NONSHARABLE_CLASS(CMultiTapTimer) : public CTimer
+ {
+ public:
+ static CMultiTapTimer* NewL(TCallBack aCallback);
+ void After(TTimeIntervalMicroSeconds32 aInterval);
+ private:
+ CMultiTapTimer(TCallBack aCallback);
+ void ConstructL();
+ // from CActive
+ virtual void RunL();
+ private:
+ TCallBack iCallback;
+ };
+
+
+/**
+Default multitapping & qwerty core.
+*/
+NONSHARABLE_CLASS(CPtiDefaultCore) : public CPtiCore
+ {
+ public:
+ static CPtiDefaultCore* NewL(CPtiEngine* aOwner, TDes* aTextBuffer);
+ ~CPtiDefaultCore();
+
+ // From MPtiCore
+ void InitializeL(CPtiEngine* aOwner, TDes* aTextBuffer, CArrayPtrFlat<CPtiCoreLanguage>* aLanguageList, TBool aUseDefautUserDictionary);
+ void DropLanguages(CArrayPtrFlat<CPtiCoreLanguage>* aLanguageList);
+ TInt OpenLanguageL(CPtiCoreLanguage *aLanguage);
+ TInt CloseLanguageL();
+ TPtrC GetCurrentWord() const;
+ TInt CommitCurrentWord();
+ TInt NumberOfCandidates();
+ MPtiCoreInfo* GetCoreInfo();
+ TInt SetReordering(TBool aStatus);
+ void AppendKeyPress(TPtiKey aKey);
+ void DeleteKeyPress();
+ void ClearBuffer();
+ TInt SetCurrentInputSequence(TPtrC8 aInput);
+ TInt Convert(TPtiCharConversion aType,
+ TAny* aInput,
+ TInt aInputLength,
+ TAny* aOutput);
+ TInt SetExternalKeyMapL(TPtiEngineInputMode aMode,
+ TPtiKey aKey,
+ TDesC& aKeyMap,
+ TPtiTextCase aCase);
+ TInt GetSpelling(TUint16 aInput, TDes& aOutput, TPtiSpelling aType);
+ TInt CancelTimerActivity();
+ TInt HandleCommandL(TPtiEngineCommand aCommand, TAny* aParams);
+ void ListDataFactoryLanguagesL(CPtiKeyMapDataFactory* aDataFactory,
+ TInt aImplUid,
+ CArrayPtrFlat<CPtiCoreLanguage>* aLanguageList);
+ void LoadFactoryForLanguageL(TInt aLanguage);
+
+ private:
+ CPtiDefaultCore();
+ CPtiDefaultCore(CPtiEngine* aOwner, TDes* aTextBuffer);
+ void ConstructL();
+ static TInt TimerExpire(TAny* aPtr);
+ TInt DoTimerExpire();
+ void FillCoreInfo();
+ void ClearVowelSequence();
+ void ShutDownKeymapFactory();
+
+ private:
+ enum
+ {
+ EPtiDeadKeyRootFlag = 0x01,
+ EPtiGetAllFlag = 0x02,
+ EPtiFlagVowelSeq = 0x04,
+ EPtiDoubleWideEntry = 0x08
+ };
+ inline void SetFlag(TInt aFlag);
+ inline TBool IsFlagSet(TInt aFlag) const;
+ inline void ClearFlag(TInt aFlag);
+
+ private:
+ CPtiEngine* iOwner; // Not owned.
+ TDes* iTextBuffer; // Not owned.
+ CMultiTapTimer* iTimer;
+ TPtiCoreInfo iCoreInfo;
+ CPtiKeyMappings* iNumericMappings;
+ CPtiKeyMapData* iNumericData;
+ TInt iFlags;
+ CPtiKeyMapDataFactory* iKeyMapDataFactory;
+ RArray<TPtiDataFactoryBinding> iFactoryBindings;
+ CArrayPtrFlat<CPtiCoreLanguage>* iLanguageList; // Not owned
+ };
+
+
+// ---------------------------------------------------------------------------
+// CPtiDefaultCore::SetFlag
+//
+// ---------------------------------------------------------------------------
+//
+inline void CPtiDefaultCore::SetFlag(TInt aFlag)
+ {
+ iFlags |= aFlag;
+ }
+
+// ---------------------------------------------------------------------------
+// CPtiDefaultCore::IsFlagSet
+//
+// ---------------------------------------------------------------------------
+//
+inline TBool CPtiDefaultCore::IsFlagSet(TInt aFlag) const
+ {
+ return (iFlags & aFlag) != 0;
+ }
+
+// ---------------------------------------------------------------------------
+// CPtiDefaultCore::ClearFlag
+//
+// ---------------------------------------------------------------------------
+//
+inline void CPtiDefaultCore::ClearFlag(TInt aFlag)
+ {
+ iFlags &= ~aFlag;
+ }
+
+#endif // _PTI_DEFAULT_CORE_H
+
+// End of file