--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/inc/aknfepuiinputminiqwertypinyinphrasebase.h Wed Sep 01 12:23:33 2010 +0100
@@ -0,0 +1,542 @@
+/*
+* Copyright (c) 2008 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:
+* Provides the TAknFepInputMiniQwertyPinyinPhraseBase definition.
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+#ifndef T_AKNFEPUIINPUTMINIQWERTYPINYINPHRASEBASE_H
+#define T_AKNFEPUIINPUTMINIQWERTYPINYINPHRASEBASE_H
+
+//#include "AknFepUiInputStateChineseBase.h"
+#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
+
+class TAknFepInputMiniQwertyPinyinPhraseBase : public TAknFepInputStateCandidateQwertyBaseChinesePhrase
+ {
+public:
+
+ /**
+ * change state flag.
+ */
+ enum TAknFepStrokePhraseChange
+ {
+ EManualChangeState,
+ EAutoChangeStateFromInput,
+ EAutoChangeStateFromCandidate
+ };
+
+ /**
+ * C++ default constructor
+ *
+ * @since S60 v3.2.3
+ * @param aOwner Pointer to UI manager state interface
+ * @param aUIContainer Pointer to Chinese UI container
+ */
+ TAknFepInputMiniQwertyPinyinPhraseBase(
+ MAknFepUIManagerStateInterface* aOwner,
+ MAknFepUICtrlContainerChinese* aUIContainer
+ );
+
+ /**
+ * Handle system key press event
+ *
+ * @since S60 v3.2.3
+ * @param aKey System key
+ * @param aLength Key press length
+ * @return ETrue if handle, otherwise this class do not handle this key
+ */
+ TBool HandleKeyL( TInt aKey, TKeyPressLength aLength );
+ /**
+ * get the spell of least delimiter
+ *
+ * @since S60 v3.2.3
+ * @return the spell of least delimiter
+ */
+ TPtrC getCurrentLeastDLTSpell();
+ /**
+ * Update input window
+ *
+ * @since S60 v3.2.3
+ * @param aRefresh, if ETRue need to get the screen position, other need not.
+ * @return None
+ */
+ void RefreshUI( TBool aRefresh = EFalse );
+
+ /**
+ * check the first group stroke of keystroke.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return ETrue if the first group stroke is valid, others return EFalse.
+ */
+ TBool CheckFirstGroupStroke();
+
+ /**
+ * Add phrase to the UDB.
+ *
+ * @since S60 v3.2.3.
+ * @param aPhraseAdd that need to be added to the UDB.
+ * @return None.
+ */
+ void AddPhraseToDB( const TDesC& aPhraseAdd );
+
+
+ /**
+ * Refresh candidate
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return none
+ */
+ void RefreshCandidate();
+
+ /**
+ * Check key whether need repeat.
+ *
+ * @since S60 v3.2.3
+ * @param aLength, the key press length.
+ * @return ETrue if the key need repeat, EFalse others.
+ */
+ TBool CheckKeyNeedRepeat( TKeyPressLength aLength );
+
+ /**
+ * Commint text to EEP or editor
+ *
+ * @since S60 V3.2.3
+ * @param aDes Text had been select from candidate pane
+ * @return ETrue if keep state, otherwise need to change to pridictive or editor
+ */
+ TBool CommitInlineEEPL( const TDesC& aDes );
+
+ /**
+ * Update indicator
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return None.
+ */
+ void UpdateIndicator();
+
+ /**
+ * Do action afer commit, change state to predictive or not.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return None.
+ */
+ void DoActionAfterCommit();
+
+ /**
+ * Handling Command events.
+ * This Method is called by CAknFepUIManagerJapanese.
+ *
+ * @param aCommandId Command ID value
+ */
+ void HandleCommandL( TInt aCommandId );
+
+private:
+
+ /**
+ * The pinyin tone mark.
+ */
+ enum PinyinToneMark
+ {
+ EToneMark1 = 1,
+ EToneMark2 = 2,
+ EToneMark3 = 3,
+ EToneMark4 = 4,
+ EToneMark5 = 5,
+ EOthers = -1
+ };
+
+ /**
+ * Get the cursor's pos of show keystroke.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return cursor's pos of show keystroke.
+ */
+ TInt GetCursorPos();
+
+ /**
+ * Handle Enter key press.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return None
+ */
+ void HandlEnterKeyL();
+
+ /**
+ * Handle space key press.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return None
+ */
+ void HandlSpaceKeyL();
+
+ /**
+ * Handle key from candidate.
+ *
+ * @since S60 v3.2.3
+ * @param aKey System key
+ * @param aLength Key press length
+ * return None
+ */
+ void HandleKeyFromCandidateL(TInt aKey, TKeyPressLength aLength );
+
+ /**
+ * Handle tone mark key press.
+ *
+ * @since S60 v3.2.3
+ * @param None
+ * @return None
+ */
+ void HandlToneMarkL();
+
+ /**
+ * Check the delimiter that wether is manual delimiter.
+ *
+ * @since S60 v3.2.3
+ * @param aCount the count of keystroke except delimiter.
+ * @param aKeystroke that put to the Pti keystroke.
+ * @return ETrue if the deimiter is manual delimiter, EFalse others.
+ */
+ TBool CheckManualDelimiter( const TInt aCount,
+ const TDesC& aKeystroke );
+
+ /**
+ * Analyse Pinyin spelling.
+ *
+ * @since S60 v3.2.3
+ * @param aKeystroke that put to the Pti keystroke.
+ * @param aSpelling get the spelling from Pti.
+ * @param the show keystroke array.
+ * @return None.
+ */
+ void AnalyseSpellingL( const TDesC& aKeystroke,
+ const TDesC& aSpelling,
+ CDesCArrayFlat* aShowKeystroke );
+
+ /**
+ * Analyse spelling after user press tone mark.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void AnalyseSpellingAddToneMarkL(
+ TInt aI,
+ TInt aToneMarkCount,
+ CDesCArrayFlat* aKeystroke,
+ CDesCArrayFlat* showKeystroke );
+
+ /**
+ * Analyse spelling after user press key that is not tone mark.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void AnalyseSpellingAddKeyL(
+ TInt& aI,
+ TInt aDelimterPos,
+ CDesCArrayFlat* aKeystroke,
+ CDesCArrayFlat* aShowKeystroke );
+
+ /**
+ * Analyse spelling after user press key.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void AnalyseL();
+
+ /**
+ * Handle CBA1 or select event.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void HandleCommitL();
+
+ /**
+ * Handle KeyBackspace event.
+ *
+ * @since S60 v3.2.3
+ * @param aLength Key press length
+ * @return ETrue if handle, otherwise this class do not handle this key
+ */
+ void HandleKeyBackspaceL( TKeyPressLength aLength );
+
+ /**
+ * Handle default key press event.
+ *
+ * @since S60 v3.2.3
+ * @param aKey System key
+ * @param aLength Key press length
+ * @return ETrue if handle, otherwise this class do not handle this key
+ */
+ void HandleDefaultKeyL( TInt aKey );
+
+ /**
+ * Show the showinfo on the EEP ctrl.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return None.
+ */
+ void ShowInfoOnEEPPane();
+
+ /**
+ * Show the showinfo on the candidate ctrl.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return None.
+ */
+ void ShowInfoOnCandidatePane();
+
+ /**
+ * get the show keystroke.
+ *
+ * @since S60 v3.2.3.
+ * @param aKey, the input keystroke.
+ * @param aKeystroke the show keystroke.
+ * @return None.
+ */
+ void GetShowKeystroke( TInt aKey, TDes& aKeystroke );
+
+ /**
+ * Handle horizontal navigation.
+ *
+ * @since S60 v3.2.3.
+ * @param aKey the input keystroke.
+ * @return ETrue if high light can move, EFase others.
+ */
+ TBool HandleHorizontalNavigation( TInt aKey );
+
+ /**
+ * Add keystroke.
+ *
+ * @since S60 v3.2.3.
+ * @param aKey the input keystroke.
+ * @return ETrue if that the key can add to the current keystroke, EFase others.
+ */
+ TBool AddKeystrokeL( TInt aKey );
+
+ /**
+ * Add tone mark.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return ETrue if that the key can add to the current keystroke, EFase others.
+ */
+ TBool AddToneMarkL();
+
+ /**
+ * Get the candidate info.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return none.
+ */
+ void GetCandidateL();
+
+ /**
+ * Change CBA.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void ChangeCbaL();
+
+ /**
+ * Delete more keystroke than max leng.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return None.
+ */
+ void DeleteMoreKeystrokeL();
+
+ /**
+ * Delete current keystroke.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return ETrue if that can be deleted, EFase others.
+ */
+ TBool DeleteKeystrokeL();
+
+ /**
+ * Clear Keystroke of PtiEngine.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return None.
+ */
+ void ClearPtiEngineKeystroke();
+
+ /**
+ * get the key code.
+ *
+ * @since S60 v3.2.3
+ * @param aKey, the keycode.
+ * @param aKeystroke, the show keystroke.
+ * @return none.
+ */
+ void GetKeystrokeCode( TInt& aKey, const TDesC& aKeystroke );
+
+ /**
+ * Revert the phrase to keystroke.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return none.
+ */
+ void RevertPhraseToKeystrokeL();
+
+ /**
+ * set warning color.
+ *
+ * @since S60 v3.2.3.
+ * @param aCount, the count of key.
+ * @param aIndex, the index of key.
+ * @param aPhraseCount, the count of phrase.
+ * @param aToneMark, the tone mark.
+ * @param aValid, the key whether is valid.
+ * @param aShowKeystroke, the show key stroke array.
+ *
+ * @return none.
+ */
+ void SetWarningColor(
+ TInt aCount,
+ TInt aIndex,
+ TInt aI,
+ TInt aPhraseCount,
+ TInt aToneMark,
+ TBool aValid,
+ CDesCArrayFlat* aShowKeystroke );
+
+ /**
+ * set warning color.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return none.
+ */
+ void SetWarningColor();
+
+ /**
+ * Move the cursor to Left.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return none.
+ */
+ void MoveCursorLeft();
+
+ /**
+ * Move the cursor to Right.
+ *
+ * @since S60 v3.2.3.
+ * @param None.
+ * @return none.
+ */
+ void MoveCursorRight();
+
+ /**
+ * Check the special keystroke( i,u,v ).
+ *
+ * @since S60 v3.2.3.
+ * @param aKeystroke the key code.
+ * @return ETrue if the param is special key, EFalse others.
+ */
+ TBool CheckSpecialKey( const TInt aKeystroke );
+
+ /**
+ * Check the delimiter of spelling.
+ *
+ * @since S60 v3.2.3.
+ * @param aKeystroke the keystroke.
+ * @return ETrue if the param is delimiter, EFalse others.
+ */
+ TBool CheckSpellingDLT( const TDesC& aKeystroke );
+
+ /**
+ * Get pinyin tone mark.
+ *
+ * @since S60 v3.2.3.
+ * @param aKeystroke,The tone mark.
+ * @return pinyin tone mark.
+ */
+ TInt ToneMark( const TDesC& aKeystroke );
+
+ /**
+ * Check the spelling after add tone mark to the PTI.
+ *
+ * @since S60 v3.2.3.
+ * @param aToneMark,The tone mark.
+ * @return ETue,if the splling is not phrase spelling,EFalse others.
+ */
+ TBool CheckSpellingAddToneMarkToPTIL( const TInt aToneMark );
+
+ /**
+ * Check the spelling after add key to the PTI.
+ *
+ * @since S60 v3.2.3.
+ * @param aToneMark,The tone mark.
+ * @return o,if the splling is not phrase spelling,other the position of delimiter.
+ */
+ TInt CheckSpellingAddKeyToPTIL( const TDesC& aKeystroke );
+
+ /**
+ * check the all group stroke of keystroke.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return ETrue if the first group stroke is valid, others return EFalse.
+ */
+ TBool CheckAllGroupStroke();
+
+ /**
+ * Do action afer commit, change state to predictive or not.
+ *
+ * @since S60 v3.2.3
+ * @param None.
+ * @return None.
+ */
+ void DoActionAfterCommitL();
+
+ };
+
+#endif //T_AKNFEPUIINPUTMINIQWERTYPINYINPHRASEBASE_H
+
+// End of file