--- a/fep/aknfep/inc/AknFepManagerUIInterface.h Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,760 +0,0 @@
-/*
-* Copyright (c) 2002-2004 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 MAknFepManagerUIInterface definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_MANAGER_UI_INTERFACE_H__
-#define __AKN_FEP_MANAGER_UI_INTERFACE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include <avkon.hrh>
-#include <frmtlay.h> // TCursorSelection
-#include <aknextendedinputcapabilities.h>
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include <PtiDefs.h>
-#endif
-#include "AknFepGlobalEnums.h"
-#include "AknFepUiIndicEnums.h"
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include "AknFepFnKeyManager.h"
-#endif
-// CLASS DECLARATION
-class CPtiEngine;
-class CAknFepUIInterface;
-class CAknFepPluginManager;
-// the follow 2 class for phrase creation
-class MZhuyinKeyHandler;
-class CAknFepZhuyinAnalyser;
-
-/**
- * This interface describes the FEP Manager functionality that is required by western
- * Input States only. It could potentially be conditionally compiled out if western
- * predictive text is not required in a product
- */
-class MAknFepManagerUIInterfaceWestern
- {
-public:
- /*
- *flags, all held in the FEP Manager
- */
- virtual TBool IsFlagSet(TInt aFlag) const = 0;
- virtual void SetFlag(TInt aFlag) = 0;
- virtual void ClearFlag(TInt aFlag) = 0;
-
- virtual void SetCcpuFlag(TInt aFlag) = 0;
- virtual void ClearCcpuFlag(TInt aFlag) = 0;
-
- /*
- * Update the current inline edit
- * @param aUncommitedTextChange, the change to the length of the inline edit
- * i.e. 1 is a character added, 0 is no change, -1 is a character deleted
- */
- virtual void UpdateInlineEditL(const TDesC& aText, TInt aUncommitedTextChange) = 0;
-
- /*
- * Starts an inline edit
- */
- virtual void StartInlineEditL() = 0;
-
- /*
- * Starts an inline edit with a text string to uncommit
- */
- virtual void StartInlineEditL(const TDesC& aText) = 0;
-
- /*
- */
- virtual void StartInlineEditL(TCursorSelection aCursorSelection,
- const TDesC& aInitialInlineText,
- TInt aPositionOfInsertionPointInInlineText,
- TBool aCursorVisibility) = 0;
-
- /*
- * Closes the UI backspace event have completely deleted a word
- */
- virtual TBool CloseUiIfWordDeletedL() = 0;
-
- /*
- * gets the text to uncommit in the engine when moving onto a word
- *
- * @param aText the descriptor to fill with the text that should be uncommitted
- * @param aCode the keycode, must be backspace or left or right arrow
- * @param aComsumeKey ETrue if the key should be consumed
- * @return True if we have successfully found text which can be uncommited
- */
- virtual TBool TryGetTextToUncommitL(TDes& aText, TInt aCode, TBool& aComsumeKey) = 0;
-
- /*
- * Update the CBA with a new resource
- */
- virtual void UpdateCbaL(TInt aResourceId) = 0;
-
- /*
- * Remove the character that is used to show to the user that the
- * predictive text engine cannot match a word to the keys entered
- * @return ETrue if the No Matches Indicator has been removed, EFalse
- * if it was not there.
- */
- virtual TBool TryRemoveNoMatchesIndicatorL() = 0;
-
- /*
- * @return ETrue if the new word length is one character longer than
- * the current uncommited text
- */
- virtual TBool IsMoreGoodWordsComing(TInt aNewWordLength) const = 0;
-
- //the following 8 functions for creation
- /**
- * Set the state to Pinyin phrase creation
- */
- virtual void PinyinPhraseCreation(TBool aPinyinPhraseCreation) = 0;
-
- /**
- * Is the state is in pinyin phrase creation
- *
- * @return if not enabled, return EFalse
- */
- virtual TBool IsPinyinPhraseCreation() const = 0;
-
- /**
- * Set the state to phrase creation
- */
- virtual void PhraseCreation(TBool aPhraseCreation) = 0;
-
- /**
- * Is the state is in phrase creation
- *
- * @return if not enabled, return EFalse
- */
- virtual TBool IsPhraseCreation() const = 0;
-
- /**
- * Set the state to input phrase
- */
- virtual void EntryPhrase(TBool aEntryPhrase) = 0;
-
- /**
- * Is the state is in input phrase
- *
- * @return if not enabled, return EFalse
- */
- virtual TBool IsEntryPhrase() const = 0;
-
- /**
- * Set the state to enable star key
- */
- virtual void EnableKeyStar(TBool aEnable) = 0;
-
- /**
- * Is the state is enable star key
- *
- * @return if not enabled, return EFalse
- */
- virtual TBool IsEnableKeyStar() const = 0;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
- /*
- * @return ETrue if inputmode is word completion and new word length is not equal to
- * the current inputsequence length
- */
- virtual TBool IsMoreGoodAutoCompleteWordsComing(TInt aInputMode, TInt aPreviousWordLengh,
- TInt aNewWordLength) const =0;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-
- /*
- * When starting a new word, checks the adjacent editor positions for
- * valid inline editing characters. If these are present, we are starting a
- * compound word and the flag EFlagCompoundWord is set
- */
- virtual void TryStartCompoundWord() = 0;
-
- /*
- * Calculates the span of the compound word that is made up of the
- * current uncommitted text and the adjacent word.
- * Adds this word to the User Database
- */
- virtual void AddCompoundWordToUdbL() = 0;
-
- /**
- * Sets delayed commit on (predicitve word will be commited in
- * next call to TryCloseUiL. This is needed because of Japanese ReadingTextL).
- *
- * @since 3.1
- */
- virtual void SetDelayedCommit() = 0;
-
- /**
- * Returns a boolean value indicating whether the curesor is at the end of a word.
- */
- virtual TBool IsCursorAtEndOfWord() = 0;
- };
-
-class MAknFepManagerUIInterface : public MAknFepManagerUIInterfaceWestern
- {
-public:
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- virtual TBool KeyMapsDifferentCharacterWithFn( TPtiKey aKey ) const = 0;
-#endif
-#endif
- /**
- * Check western predictive mode.
- * @param aMode input mode.
- * @return ETrue if western predictive mode.
- */
- virtual TBool WesternPredictive(TInt aMode = 0) const=0;
- /**
- * Check Qwerty keypad
- *
- * @since 3.0
- * @return ETrue is Qwerty
- */
- virtual TBool IsQwerty() const=0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- /**
- * Launches the compact match candidate list which follows the inline editor.
- * @param aFocusedIndex The index of the word focused by default.
- * If KErrNotFound is given, the currently active
- * word will be focused.
- */
- virtual void LaunchCandidatePopupListL( TInt aFocusedIndex = KErrNotFound )=0;
- /**
- Returns the Fn key state
- */
- virtual CAknFepFnKeyManager::TFnKeyState FnKeyState() = 0;
- virtual void SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState) = 0;
- /**
- Returns the current keyboard layout in use.
- */
- virtual TPtiKeyboardType KeyboardLayout() const = 0;
-#ifdef __REVERSE_FN_KEY_SUPPORTED
- /**
- Returns if the input is in reverse Fn key input mode.
- */
- virtual TBool IsReverseFnkeyInput() = 0;
-
- /**
- * Returns true if the aChar is allowed in the numeric editor
- */
- virtual TBool IsValidCharInNumericEditorL( TChar aChar ) const = 0;
-
- /**
- * Filter the char for Fn reverse mode in case of
- * numeric editor. This function should call
- * in case of numeric editor reverse mapping.
- */
- virtual TBool IsValidCharForNumericInFnReverseL(TInt aKey, TPtiTextCase aCase)=0;
-
-#endif //__REVERSE_FN_KEY_SUPPORTED
- virtual void AddOneSpaceOrMoveCursorL() = 0;
-
-#endif
- virtual TBool IsHybridAplhaEditor() const = 0 ;
- virtual TBool IsHybridAlphaModeChangedtoAplhanumeric() const = 0;
- /**
- * Tells if the current editor is phone number editor
- * @return ETrue if the current editor is phone number editor
- */
- virtual TBool IsPhoneNumberEditor() const = 0;
-
- /**
- * A request to close the UI. If the UI was not active (initial state)
- * multitap characters are commited by calling ExpireMultitapTimer()
- * on the ptiengine.
- * @return ETrue if the UI was active, EFalse otherwise
- */
- virtual TBool TryCloseUiL() = 0;
-
- /**
- * A request to send a char to the editing window
- */
- virtual void NewCharacterL(const TDesC& aChar) = 0;
-
- /**
- * A request to send text to the editing window
- */
- virtual void NewTextL(const TDesC& aChar) = 0;
-
- /**
- * A request to commit the current char
- */
- virtual void CommitInlineEditL() = 0;
-
- /**
- * Commits given string in the editing window. This function checks that
- * the editor has enough space to insert given string. If it not,
- * given string is cut, then it is committed.
- */
- virtual void CommitInlineEditL(const TDesC& aText, TInt aUncommitedTextChange) = 0;
-
- /**
- * A request to cancel inline input to wditing window.
- */
- virtual void CancelInlineEdit() =0;
-
- /**
- * Called by Fep Manager when editing window draws inline input characters.
- */
- virtual void GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine,TInt& aHeight,
- TInt& aAscent,TInt aDocumentOffset) = 0;
-
- /**
- * Called by Fep Manager when Chinese UI ask cursor baseline position.
- */
- virtual void GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine,
- TInt& aHeight,TInt& aAscent) = 0;
-
- /**
- * A notification to the Fep Manager that the UI has been activated..
- * Should always be called by an Initial State Object when initiating
- * a change to an Entry State
- */
- virtual void SendUIActivatedNotification() = 0;
-
- /**
- * A notification to the Fep Manager that the UI has not been activated.
- */
- virtual void SendUIDeActivatedNotification() = 0;
-
- /**
- * calulates if an SCT can be launched in the current editor at the present
- * cursor position
- * @return ETrue if an SCT can be launched, EFalse if not
- */
- virtual TBool IsAbleToLaunchSCT() const = 0;
-
- /**
- * Launch the Special Character Table
- */
- virtual void LaunchSpecialCharacterTableL(TInt aResourceId=0,
- TBool aLaunchedByTouchWin=EFalse,
- TBool aSmileyFirst=EFalse) = 0;
-
- /**
- * Play sound
- */
- virtual void PlaySound(TAvkonSystemSID aSound) const = 0;
- /**
- * get uncommitted text
- */
- virtual TCursorSelection UncommittedText() const = 0;
-
- /**
- * Gets the previous character depnding on wheather language is
- * contxet sensitve or not
- * since 3.2: aContextSensitive not in use, since no real meaning found.
- */
- virtual TText PreviousChar( TBool aContextSensitive = EFalse ) = 0;
- /**
- * Returns the next character to the current cursor position
- */
- virtual TText NextChar() = 0;
- virtual TBool IsZWSCharacterPresent( TBool aLigaturePresent = EFalse ) = 0;
- /**
- * Removes previous character to the current cursor position
- */
- virtual void RemovePreviousCharacterL() = 0;
- /**
- * Removes Zero Width Space character from the inputted text.
- */
- virtual void RemoveZWSCharacterL(TBool aIsViramaInputted,
- TBool aIsInMultitappingHalant = EFalse,
- TBool aIsCharModifier = EFalse,
- TBool aIsLigaturePresent = EFalse) = 0;
- /**
- * Adds text to the editor and commits the text.
- */
- virtual void NewCharacterSequenceL(const TDesC& aText, TIndicInputResponse aResponse) = 0;
-
- virtual TDigitType LocalDigit() = 0;
- virtual TWidthChar CharacterWidth() const = 0;
- virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility) = 0;
- virtual CPtiEngine* PtiEngine() const = 0;
-
- /**
- * checks that the editor the editor has free space to add another character
- * An editor of unlimited length will return its maximum size as zero
- */
- virtual TBool EditorHasFreeSpace( TInt aNumberOfCharacter = 0 ) const = 0;
-
- virtual void RedecorateAfterDeletionL( const TDesC& aTextThatWasDeleted ) = 0;
-
- /**
- *
- *
- * @param aKeyCode the value of the key to simulate
- */
- virtual void SimulateKeyEventL(TUint aKeyCode, TBool aActiveObj=EFalse) = 0;
-
- /**
- * Queries supportting of ScrollLatinPredictive feature
- *
- * @since 2.6
- * @return ETrue if ScrollLatinPredictive was supported
- */
- virtual TBool IsAbleScrollLatinPredictive() const = 0;
-
- virtual TBool IsOnlyNumericPermitted() const = 0;
-
- virtual TInt EditorNumericKeymap() const = 0;
-
- /**
- * Queries supportting of SecretText
- *
- * @since 2.6
- * @return ETrue if SecretText was supported
- */
- virtual TBool IsSupportsSecretText() const = 0;
-
-
- /**
- * Returns current input mode.
- *
- * @since 3.0
- * @return Integer value indicating current editor input mode.
- */
- virtual TInt InputMode() const = 0;
-
- /**
- * Returns current CangJie input mode.
- *
- * @since 3.0
- * @return Integer value indicating current CangJie input mode.
- */
- virtual TInt CangJieMode() const = 0;
-
- /**
- * Returns boolean value indicating whether edit submenu functionality is in use.
- *
- * @since 3.1
- * @return ETrue if edit submenu functionality is in use.
- * EFalse otherwise.
- */
- virtual TBool EditSubmenuInUse() const = 0;
-
- /**
- * Launches the mode selection menu
- *
- * @since 3.1
- */
- virtual void LaunchSelectModeMenuL() = 0;
-
- /**
- * @since 3.2
- */
- virtual void SetCursorSelectionL(const TCursorSelection& aCurSel, TBool aSyncCursor) = 0;
-
- /**
- * Returns the status of arabic-indic digit mode setting.
- *
- * @since 3.0
- */
- virtual TBool ArabicIndicDigitsInUse() const = 0;
- virtual TBool EasternArabicIndicDigitsInUse() const = 0;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-
- /**
- * Returns the status of auto word completion in the editor.
- *
- * @since 5.0
- */
- virtual TBool IsAutoCompleteOn() const = 0;
-
- /**
- * Removes the suggested completion part
- *
- * @since 5.0
- */
- virtual void RemoveSuggestedCompletionL() = 0;
-#endif // RD_INTELLIGENT_TEXT_INPUT
- /**
- * Set current long clear key press
- *
- * @since 3.2
- */
- virtual void SetLongClearAfterCloseUI(TBool aLongClear) = 0;
-
- /**
- * Align the Logical and Visual cursor positions.
- *
- * @since 3.2
- * @param aType Cursor type.
- * @param aToLeft ETrue if the position to the left is to be found,
- * EFalse if the position to the right is to be found.
- * @return None
- */
- virtual void AlignLogicalAndVisualCursorL( TTmDocPosSpec::TType aType,
- TBool aToLeft ) = 0;
-
- /**
- * This method is called for removing the Repha character. The function
- * goes to the start of the consonant or ligature, checks if repha
- * character is present.
- *
- * @since 3.2
- * @param None.
- * @return None.
- */
- virtual void RemoveRephaCharacterL() = 0;
-
- /**
- * Checks if the Repha character has been attached to the consonant or
- * ligature.
- *
- * @since 3.2
- * @param None.
- * @return ETrue if present else EFalse.
- */
- virtual TBool IsRephaPresent() = 0;
-
- /**
- * Retrieve the Previous to previous character during multitapping.
- *
- * @since 3.2
- * @param aContextSensitive EFalse is the default parameter.
- * ETrue is used for requesting the function
- * to check for extraction of the character
- * two positions before the seleted text.
- *
- * @return The previous to previous character if any.
- */
- virtual TText PreviousToPreviousChar( TBool aContextSensitive = EFalse ) = 0;
-
- /**
- * This method is called for removing the Rakar character. The function
- * checks if Rakar (Virama+Ra) is present.
- *
- * @since 3.2
- * @param None.
- * @return None.
- */
- virtual void RemoveRakarCharacterL() = 0;
-
- /**
- * Returns the free space left in the Editor.
- *
- * @param aUnlimit. Set to EFalse in case of Editors with limited text
- * size
- * isToCountUncommittedTextLength. Pass ETrue if the lenght of
- * Uncommitted text is to be counted.
- *
- * @return TInt. Free space left in the Editor.
- */
- virtual TInt EditorFreeSpace(TBool& aUnlimit,
- TBool isToCountUncommittedTextLength = EFalse ) const = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- /**
- * Returns the free space left in the Editor. ITI specific implementation
- *
- * @param aUnlimit. Set to EFalse in case of Editors with limited text
- * size
- * isToCountUncommittedTextLength. Pass ETrue if the lenght of
- * Uncommitted text is to be counted.
- *
- * @return TInt. Free space left in the Editor.
- */
- virtual TInt EditorFreeSpaceForAutoWordCompletion(TBool& aUnlimit,
- TBool isToCountUncommittedTextLength = EFalse ) const = 0;
-#endif
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- /**
- * Gives the amount of characters in the document.
- * @return The number of characters in the active editor.
- */
- virtual TInt DocumentLength() const = 0;
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif //__ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
- /**
- * from MAknFepManagerUIInterface
- * query whether the special char is valid in the current editor
- *
- * @since 3.2
- * @param aChar Checking a chracter
- * @return TBool. IF ETrue, the character is valid.
- */
- virtual TBool CharIsValidInEditor(TChar aChar) = 0;
-
- /**
- * Returns the status of predictive input.
- *
- * @since 3.2
- * @return TBool. IF ETrue, it is possible to change prediction ON.
- */
- virtual TBool IsAbleToChangePrediction() const = 0;
-
- /**
- * This method is called for removing the N characters from the
- * specified position. If the text to be removed is not yet
- * committed, it is updated with NULL descriptor and committed.
- *
- * @since 5.0
- * @param TInt aPos position to start searching from. By default
- * Searching will start from the cursor position.
- * @param TInt aNumOfCharacters Number of characters to remove.
- * @param TBool Should cursor be positioned at the original location.
- * @return None.
- */
- virtual void RemoveTextFromEditorL( TInt aNumOfCharacters, TInt aPos = 0,
- TBool aIsToAlignCursor = ETrue ) = 0;
-
- /**
- * Align the Logical and Visual cursor positions.
- *
- * @since 5.0
- * @param None
- * @return None
- */
- virtual void AlignLogicalAndVisualCursorL() = 0;
-
-#ifdef RD_MARATHI
- /**
- * This function checks if the previous two characters are
- * the combination of Chandra-A
- *
- * @since 5.0
- * @param None
- * @return TBool.
- */
- virtual TBool IsChandraAPresentL() = 0;
-#endif // RD_MARATHI
-
- /**
- * Returns boolean value indicating whether hash key is in selection mode or
- * in traditional mode.
- *
- * @since 3.1
- * @return ETrue if hash key is in text selection mode.
- * EFalse otherwise.
- */
- virtual TBool HashKeySelectionInUse() const = 0;
-
- /**
- * Returns the UI interface implementation used in the current app.
- *
- * @since 3.2
- * @return The UI interface object used in the current app.
- */
- virtual CAknFepUIInterface* UiInterface() = 0;
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
- // Predictive QWERTY (XT9) changes ---->
- /**
- * Function to get the text direction for current language.
- * @return ETrue if language id RTL, EFalse if it is not
- */
- virtual TBool IsRightToLeftLanguage() = 0;
-
- /**
- * @return ETrue If the auto completion is On. EFalse otherwise.
- */
- virtual TBool IsAutoCompleteOn() const = 0;
-
- /**
- * @return TInt Typing correction level.
- */
- virtual TInt AdvancedPredictiveTypingCorrectionLevel() const = 0;
-
- /**
- * @return ETrue If the number candidate shown. EFalse otherwise.
- */
- virtual TBool IsAdvancedPredictiveNumberCandidateShown() const = 0;
-
- /**
- * Cuts off the automatically completed tail of the suggested word candidate.
- */
- virtual void RemoveSuggestedAdvanceCompletionL() = 0;
-
- /**
- * @return ETrue If the primary candidate is suggested. EFalse otherwise.
- */
- virtual TBool AdvancedPredictivePrimaryCandidate() const = 0;
-
- /**
- * @Set the chr composition flag.
- */
- virtual void SetComposChrFlag( TBool aFlag ) = 0;
-
- /**
- * @return ETrue If it is chr composition key
- */
- virtual TBool GetComposChrFlag() = 0;
-
- // Predictive QWERTY (XT9) changs <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
- /**
- * Returns plugin ui manager
- *
- * @since 3.2
- * @return The UI interface object used in the current app.
- */
- virtual CAknFepPluginManager* PluginUIManager() = 0;
-#ifdef RD_HINDI_PHONETIC_INPUT
- //hindi_phonetic_fixes
- /*
- * This functions toggles the case from upper to lower
- * @since 5.0
- * @param None
- * @return void
- */
- virtual void HandleIndicCaseL()=0;
-#endif
-
- // the follow 2 functions for phrase creation
- virtual MZhuyinKeyHandler* ZhuyinKeyHandler() = 0;
- virtual CAknFepZhuyinAnalyser* ZhuyinAnalyser() = 0;
-
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- /**
- * @return ETrue If the number entry with long key press is supported on QWERTY keyboard.
- */
- virtual TBool LongPressNumberEntryOnQwerty() const = 0;
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif //__ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- virtual void MultitapThroughSCTCharL(TCallBack aCallBack) = 0;
- virtual TBool IsLanguageSupportPrediction() = 0;
- virtual TInt GetNumericSCTResID() = 0;
- /**
- * Hides the exact word pop up window.
- */
- virtual void HideExactWordPopUp() = 0;
- /**
- * @return ETrue If the exact word pop up is shown.
- */
- virtual TBool IsExactWordPopUpShown() = 0;
-#endif //RD_INTELLIGENT_TEXT_INPUT
- virtual CAknExtendedInputCapabilities::TEditorType EditorType() const = 0;
- virtual TBool IsAllowedKeymappingForNumberMode(TChar aChar) const = 0;
- };
-#endif // __AKN_FEP_MANAGER_UI_INTERFACE_H__
-
-// End of file