diff -r 000000000000 -r eb1f2e154e89 textinput/ptienginev2/inc/PtiDefaultCore.h --- /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 +#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* aLanguageList, TBool aUseDefautUserDictionary); + void DropLanguages(CArrayPtrFlat* 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* 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 iFactoryBindings; + CArrayPtrFlat* 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