--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/ptikoreanqwertycore/inc/PtiKoreanQwertyCore.h Fri Feb 19 23:09:27 2010 +0200
@@ -0,0 +1,401 @@
+/*
+* Copyright (c) 2002-2006 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:
+*
+*/
+
+
+#ifndef __PTIKOREANQWERTYCORE_H__
+#define __PTIKOREANQWERTYCORE_H__
+
+#include <e32base.h> // CBase
+#include <e32std.h> // TBuf
+
+#include <PtiCore.h>
+#include <osscombination.h>
+
+class COssHangulInputContext;
+class CRepository;
+class CActiveCallback;
+
+class CPtiKoreanQwertyCore : public CPtiCore
+ {
+public:
+ static CPtiKoreanQwertyCore* NewLC(
+ CPtiEngine* aOwner,
+ TDes* aTextBuffer);
+
+ static CPtiKoreanQwertyCore* NewL(
+ CPtiEngine* aOwner,
+ TDes* aTextBuffer);
+
+ virtual ~CPtiKoreanQwertyCore();
+
+private:
+
+ CPtiKoreanQwertyCore(
+ CPtiEngine* aOwner,
+ TDes* aTextBuffer);
+
+ void ConstructL();
+
+private: // from CPtiCore
+
+ /**
+ * Initialized core object. This method is called by PtiEngine framework when core object
+ * is loaded.
+ *
+ * @since 2.6
+ * @param aOwner Pointer to onwing PtiEngine framework instance.
+ * @param aTextBuffer A pointer to PtiEngine main text buffer.
+ * @param aLanguageList A language list to be filled with language bindings to this core
+ * onbject
+ * @param aUseDefautUserDictionary A boolean value indicating whether default user dictionary shoulkd be used
+ * (in case this core object supports user dictionaries).
+ */
+ virtual void InitializeL(
+ CPtiEngine* aOwner,
+ TDes* aTextBuffer,
+ CArrayPtrFlat<CPtiCoreLanguage>* aLanguageList,
+ TBool aUseDefautUserDictionary);
+
+ /**
+ * Removes languages associated to this core object from given language list. Languages
+ * not associated to this core abject are not touched.
+ *
+ * @since 2.6
+ * @param aLanguageList A language list to be cleaned.
+ */
+ virtual void DropLanguages(CArrayPtrFlat<CPtiCoreLanguage>* aLanguageList);
+
+ /**
+ * Opens resources for given language and itinialized them.
+ *
+ * @since 2.6
+ * @param aLanguage Symbian OS language code a language to be initialized.
+ * @return KErrNone or a system wide error code.
+ */
+ virtual TInt OpenLanguageL(CPtiCoreLanguage *aLanguage);
+
+ /**
+ * Closes currently activate language and frees resources associated to it.
+ *
+ * @since 2.6
+ * @return KErrNone of system wide error ocde.
+ */
+ virtual TInt CloseLanguageL();
+
+ /**
+ * Returns the contents of text buffer.
+ *
+ * @since 2.6
+ * @return A constant pointer to text buffer.
+ */
+ virtual TPtrC GetCurrentWord() const;
+
+ /**
+ * Commits current word. Commiting means that user has added current
+ * word as part of text. Frequency information and other related attributes
+ * can then be updated.
+ *
+ * @since 2.6
+ * @return KErrNone or a system wide error code.
+ */
+ virtual TInt CommitCurrentWord();
+
+ /**
+ * Returns a pointer core info structure. Core info struct contains useful
+ * information about core object and its features.
+ *
+ */
+ virtual MPtiCoreInfo* GetCoreInfo();
+
+ /**
+ * Turns reoreding feature on or off. Reordering means that prediction engine
+ * maintains frequency information for used words and modifys the order of candidate list
+ * based on that information. This feature may not be supported by all prediction engines.
+ *
+ * @since 2.6
+ * @param aStatus New status for reorderinf feature.
+ * @return KErrNone or a system wide error code.
+ */
+ virtual TInt SetReordering(TBool aStatus);
+
+ /**
+ * This is the single most important core API method, most of the text input functionality
+ * will be utilize this method. Call to this method indicates core object that a key was
+ * pressed and it should act accordingly and fill the output buffer.
+ *
+ * @since 2.6
+ * @param aKey Enum value for pressed key.
+ */
+ virtual void AppendKeyPress(TPtiKey aKey);
+
+ /**
+ * Indicates core object that it should perform 'delete key press'-operation.
+ *
+ * @since 2.6
+ */
+ virtual void DeleteKeyPress();
+
+ /**
+ * Call to this method notifys core object that input buffer was cleared.
+ *
+ * @since 2.6
+ */
+ virtual void ClearBuffer();
+
+ /**
+ * Sets current input sequence. The end result of this operation must be same as
+ * if user had entered keys in input array as individual key presses.
+ *
+ * @since 2.6
+ * @param aInput An array containing sequence of key presses (type TPtiKey).
+ * @return KErrNone or a system wide error code.
+ */
+ virtual TInt SetCurrentInputSequence(TPtrC8 aInput);
+
+ /**
+ * Converts given string from one character set to another. Possible conversion types
+ * are defined in PtiDefs.h
+ *
+ * @since 2.6
+ * @param aType Conversion type.
+ * @param aInput Pointer to input string to be converted.
+ * @param aInputLength Length of input buffer.
+ * @param aOutput pointer to output buffer.
+ * @return KErrNone or a system wide error code.
+ */
+ virtual TInt Convert(
+ TPtiCharConversion aType,
+ TAny* aInput,
+ TInt aInputLength,
+ TAny* aOutput);
+
+ /**
+ * Re-defines keymappings for given key / input mode / case combination. Previous
+ * keymapping will be deleted and new mappings will be used instead.
+ *
+ * @since 2.6
+ * @param aMode Input mode for new key mapping.
+ * @param aKey A key to be replaced.
+ * @param aKeyMap New keymapping data for aKey.
+ * @param aCase Text case to be replaced.
+ * @return KErrNone or system wide error code.
+ */
+ virtual TInt SetExternalKeyMapL(
+ TPtiEngineInputMode aMode,
+ TPtiKey aKey,
+ TDesC& aKeyMap,
+ TPtiTextCase aCase);
+ /**
+ * Returns alternate spelling for given unicode characters. Possible conversion
+ * types are defined in header PtiDefs.h.
+ *
+ * @sinec 2.6
+ * @aInput A character to be converted.
+ * @aOutput Resulting alternate spelling will be stored here.
+ * @aType Spelling conversion type.
+ * @return KErrNone or system wide error code.
+ */
+ virtual TInt GetSpelling(TUint16 aInput, TDes& aOutput, TPtiSpelling aType);
+
+ /**
+ * Cancels all on-going core obejct timner activity.
+ *
+ * @since 2.6
+ * @return KErrNone or system wide error code.
+ */
+ virtual TInt CancelTimerActivity();
+
+ /**
+ * A generic command handling method for extending PtiEngine API without adding
+ * new base class methods. It is recommended to use this only in force major
+ * situations, where there is no other way.
+ *
+ * @since 2.6
+ * @param aCommand A Command id value. Platform wide command ids are defined in PtiDefs.h.
+ * @param aParams TAny pointer for passing any required parameters.
+ * @return An integer containing possible return value related to command.
+ */
+ virtual TInt HandleCommandL(
+ TPtiEngineCommand aCommand,
+ TAny* aParams);
+
+//
+// Predictive latin API
+//
+private:
+ /**
+ * Returns number of candidates for currently entered key sequence.
+ *
+ * @since 2.6
+ * @return Number of prediction candidates for currently entered key sequence.
+ */
+ virtual TInt NumberOfCandidates();
+
+ /**
+ * Returns a list of candidate words for currently entered key sequence.
+ *
+ * @since 2.6
+ * @param aList A list to be filled with candidate words.
+ * @return Number of candidate works in aList.
+ */
+ virtual TInt GetCandidateListL(CDesCArray& aList);
+
+ /**
+ * Returns next word candidate list. Next word candidates are words
+ * potentially related to currently selected candidate. Next word prediction
+ * feature must supported by the engine and turned on.
+ *
+ * @since 2.6
+ */
+ virtual TInt GetNextWordCandidateListL(CDesCArray& aList);
+
+ /**
+ * Returns first word in list of candidate words for current input sequence.
+ *
+ * @since 2.6
+ * @param aResult A descriptor where resulting word will be stored.
+ * @return KErrnNone or system wide error code.
+ */
+ virtual TInt GetFirstCandidate(TDes& aResult);
+
+ /**
+ * Returns next word in list of candidate words for current input sequence.
+ *
+ * @since 2.6
+ * @param aResult A descriptor where resulting word will be stored.
+ * @return KErrnNone or system wide error code.
+ */
+ virtual TInt GetNextCandidate(TDes& aResult);
+
+ /**
+ * Returns previous word in list of candidate words for current input sequence.
+ *
+ * @since 2.6
+ * @param aResult A descriptor where resulting word will be stored.
+ * @return KErrnNone or system wide error code.
+ */
+ virtual TInt GetPreviousCandidate(TDes& aResult);
+
+//
+// User dictionary API
+//
+private:
+ virtual TInt AddUserDictionaryEntry(
+ MPtiUserDictionaryEntry& aEntry,
+ CPtiUserDictionary* aDict);
+
+ virtual TInt RemoveUserDictionaryEntry(
+ MPtiUserDictionaryEntry& aEntry,
+ CPtiUserDictionary* aDict);
+
+ virtual TInt NumberOfEntriesInUserDictionary(
+ CPtiUserDictionary* aDict);
+
+ virtual TInt GetUserDictionaryEntry(
+ TInt aIndex,
+ MPtiUserDictionaryEntry& aResult,
+ CPtiUserDictionary* aDict);
+
+ virtual CPtiUserDictionary* CreateEmptyUserDictionaryL(TInt aMaxSize);
+
+ virtual TInt AttachUserDictionary(CPtiUserDictionary* aDict);
+
+ virtual TBool DetachUserDictionary(CPtiUserDictionary* aDict);
+
+//
+// Chinese API
+//
+private:
+
+ virtual TPtrC GetCandidatePage();
+
+ virtual TBool NextCandidatePage();
+
+ virtual TBool PreviousCandidatePage();
+
+ virtual TBool MoreCandidatePages();
+
+ virtual void SetCandidatePageLength(TInt aLength);
+
+ virtual TPtrC GetPhoneticSpelling(TInt aIndex) const;
+
+ virtual TInt PhoneticSpellingCount() const;
+
+ virtual TBool SelectPhoneticSpelling(TInt aIndex);
+
+ virtual TInt SelectedPhoneticSpelling() const;
+
+ virtual TBool ToneMark(TText& aToneMark) const;
+
+ virtual TBool IsToneMarkValidForSpelling();
+
+ virtual TBool SetPredictiveChineseChar(const TDesC& aChar);
+
+ virtual TBool SetToneMark(TInt aToneMark);
+
+
+//
+// Japanese API
+//
+private:
+
+ virtual TPtrC ReadingTextL();
+
+ virtual MPtiEngineCompositionDataInterface* CompositionData();
+
+//
+// Chinese API
+//
+private:
+
+ virtual HBufC* GetCandidatesByInputString(
+ const TDesC& aInputString,
+ RPointerArray<HBufC>& aList,
+ const TBool aIsPredictive);
+
+ void UpdateFromRepositoryL();
+
+ void UpdateDblConsonentL(
+ const TInt& aCenRepId,
+ const TOssCombinationItem& aCombination);
+
+public:
+
+ static TInt CBSettingChanged(void* aSelf);
+
+private:
+
+ CPtiEngine* iOwner;
+
+ TDes* iTextBuffer;
+
+ TBool iKoreanLanOpen;
+
+ COssHangulInputContext* iHic;
+
+ COssCombination* iCombination;
+
+ TBool iLowerCase;
+
+ CRepository* iRepository;
+
+ CActiveCallback* iCRNotifier;
+
+ };
+
+#endif // __PTIKOREANQWERTYCORE_H__
+