201031
authorhgs
Fri, 06 Aug 2010 16:58:37 +0800
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
201031
fep/aknfep/CenRep/keys_aknfep.xls
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/data/AknFepUiAvkonPlugin.rss
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/group/AknFepUiAvkonPlugin.mmp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/group/bld.inf
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepAvkonCandidatePopup.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepIndicatorAvkon.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredOwnWordsModel.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingData.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingDialog.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingList.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepQuery.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidateSelected.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerChinese.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerJapanese.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSetting.hrh
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingData.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingDialog.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingList.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingModel.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlInputPane.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateCellListBoxData.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateHeadingPane.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateListbox.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateListboxView.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidatePane.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseKutenQueryDialog.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveCellListBoxData.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListbox.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListboxItemDrawer.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListboxView.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictivePane.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlPinyinPopup.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonCtrlExactWordPopupContent.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonImpl.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonMenus.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonStylusPopUpMenu.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiInterfacePanic.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUserDictionaryEditDialog.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepchineseuidataconv.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.inl
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrlpinyineep.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuilayoutdatamgr.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/insertionpoint.h
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepAvkonCandidatePopup.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepIndicatorAvkon.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredOwnWordsModel.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingData.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingList.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepQuery.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidatePane.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidateSelected.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlContainerChinese.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlContainerJapanese.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingData.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingDialog.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingList.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingModel.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlExactWordPopupContent.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlInputPane.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateCellListBoxData.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateHeadingPane.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateListbox.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateListboxView.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidatePane.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseKutenQueryDialog.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveCellListBoxData.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListBoxModel.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListbox.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListboxItemDrawer.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListboxView.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictivePane.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlPinyinPopup.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonImpl.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonMenus.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonPlugin.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonStylusPopUpMenu.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUserDictionaryEditDialog.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepchineseuidataconv.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuictrleepcontrol.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuictrlpinyineep.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuilayoutdatamgr.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/insertionpoint.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/bwins/aknfepuiinterfaceu.def
fep/aknfep/UiPlugins/AknFepUiInterface/eabi/aknfepuiinterfaceu.def
fep/aknfep/UiPlugins/AknFepUiInterface/group/AknFepUiInterface.mmp
fep/aknfep/UiPlugins/AknFepUiInterface/group/bld.inf
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopup.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopupCallback.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepIndicator.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePane.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePaneInterface.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidateSelected.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlContainerJapanese.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlInputPane.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlPinyinPopup.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiCtrlContainerChinese.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiInterfacePlugin.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiStylusPopupMenu.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiWordPopupContent.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/aknfepuictrleditentrypopup.h
fep/aknfep/UiPlugins/AknFepUiInterface/inc/aknfepuictrleditpane.h
fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepIndicator.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepUiInterface.cpp
fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepUiMenus.cpp
fep/aknfep/conf/aknfep.confml
fep/aknfep/conf/aknfep_101F876D.crml
fep/aknfep/conf/aknfep_japan.confml
fep/aknfep/conf/aknfep_thai.confml
fep/aknfep/group/AknFep.mmp
fep/aknfep/group/Iconlist.txt
fep/aknfep/group/aknfep_Data/ARM4_UDEB/TargetDataWindows.tdt
fep/aknfep/group/aknfep_Data/ARM4_UREL/TargetDataWindows.tdt
fep/aknfep/group/aknfep_icons.mk
fep/aknfep/group/aknfep_icons_dc.mk
fep/aknfep/group/bld.inf
fep/aknfep/group/fep.ini
fep/aknfep/group/fep_ecom.ini
fep/aknfep/inc/AknFep.hrh
fep/aknfep/inc/AknFepCaseManager.h
fep/aknfep/inc/AknFepFnKeyManager.h
fep/aknfep/inc/AknFepHashKeyManager.h
fep/aknfep/inc/AknFepInlineTextDecorator.h
fep/aknfep/inc/AknFepKeyCatcher.h
fep/aknfep/inc/AknFepLanguageManager.h
fep/aknfep/inc/AknFepManager.h
fep/aknfep/inc/AknFepManagerInterface.h
fep/aknfep/inc/AknFepManagerUIInterface.h
fep/aknfep/inc/AknFepPanic.h
fep/aknfep/inc/AknFepPlugin.h
fep/aknfep/inc/AknFepPluginManager.h
fep/aknfep/inc/AknFepPluginMenuManager.h
fep/aknfep/inc/AknFepSharedDataInterface.h
fep/aknfep/inc/AknFepThaiSCTSelector.h
fep/aknfep/inc/AknFepUIInputStateEntryMiniQwertyCangJie.h
fep/aknfep/inc/AknFepUIInputStateEntryMiniQwertyPinyinPhrase.h
fep/aknfep/inc/AknFepUIInputStateEntryThaiMultitap.h
fep/aknfep/inc/AknFepUIInputStateInitialIndicMultitap.h
fep/aknfep/inc/AknFepUIInputStateInitialThaiMultitap.h
fep/aknfep/inc/AknFepUIInputStateInitialVietnameseMultitap.h
fep/aknfep/inc/AknFepUIManagerJapanese.h
fep/aknfep/inc/AknFepUIManagerStateInterface.h
fep/aknfep/inc/AknFepUiIndicEnums.h
fep/aknfep/inc/AknFepUiIndicInputManager.h
fep/aknfep/inc/AknFepUiInputStateBase.h
fep/aknfep/inc/AknFepUiInputStateCandidate.h
fep/aknfep/inc/AknFepUiInputStateCandidateBase.h
fep/aknfep/inc/AknFepUiInputStateCandidateBaseChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateBasePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateChinese.h
fep/aknfep/inc/AknFepUiInputStateCandidateChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateHalfQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidatePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidatePinyinAndStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwerty.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBasePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChinese.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChineseBase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyPhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyZhuyin.h
fep/aknfep/inc/AknFepUiInputStateCandidateQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateCandidateRetroActive.h
fep/aknfep/inc/AknFepUiInputStateChineseBase.h
fep/aknfep/inc/AknFepUiInputStateChineseBaseQwerty.h
fep/aknfep/inc/AknFepUiInputStateChineseFindQwerty.h
fep/aknfep/inc/AknFepUiInputStateCompletionHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateCompletionJapaneseMultitap.h
fep/aknfep/inc/AknFepUiInputStateCompletionKatakana.h
fep/aknfep/inc/AknFepUiInputStateCompletionLatinJapanese.h
fep/aknfep/inc/AknFepUiInputStateCompletionPredictiveHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateConversionHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateEntryArabicHebrewPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryHalfQwertyWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateEntryIndicPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryJapaneseMultitap.h
fep/aknfep/inc/AknFepUiInputStateEntryKatakana.h
fep/aknfep/inc/AknFepUiInputStateEntryLatinJapanese.h
fep/aknfep/inc/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryPinyin.h
fep/aknfep/inc/AknFepUiInputStateEntryPinyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyBase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyBaseChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyBasePhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyCangJie.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyPinyin.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyPinyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyStroke.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyZhuyin.h
fep/aknfep/inc/AknFepUiInputStateEntryQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryStroke.h
fep/aknfep/inc/AknFepUiInputStateEntryStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryThaiPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryVietnamesePredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateEntryWesternPredictiveJp.h
fep/aknfep/inc/AknFepUiInputStateEntryZhuyin.h
fep/aknfep/inc/AknFepUiInputStateEntryZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateEntryZhuyinStrokeBase.h
fep/aknfep/inc/AknFepUiInputStateEntryZhuyinStrokeBasePhrase.h
fep/aknfep/inc/AknFepUiInputStateHalfQwerty.h
fep/aknfep/inc/AknFepUiInputStateInitialArabicHebrewMultitap.h
fep/aknfep/inc/AknFepUiInputStateInitialArabicHebrewPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialChineseGeneric.h
fep/aknfep/inc/AknFepUiInputStateInitialChineseGenericHalfQwerty.h
fep/aknfep/inc/AknFepUiInputStateInitialChineseGenericQwerty.h
fep/aknfep/inc/AknFepUiInputStateInitialChineseMultitapBase.h
fep/aknfep/inc/AknFepUiInputStateInitialFullNumber.h
fep/aknfep/inc/AknFepUiInputStateInitialHalfQwertyWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialHiragana.h
fep/aknfep/inc/AknFepUiInputStateInitialHiraganaKanji.h
fep/aknfep/inc/AknFepUiInputStateInitialIndicPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialJapaneseBase.h
fep/aknfep/inc/AknFepUiInputStateInitialKatakana.h
fep/aknfep/inc/AknFepUiInputStateInitialKoreanMultitap.h
fep/aknfep/inc/AknFepUiInputStateInitialLatinJapanese.h
fep/aknfep/inc/AknFepUiInputStateInitialLatinMultitap.h
fep/aknfep/inc/AknFepUiInputStateInitialMultitapBase.h
fep/aknfep/inc/AknFepUiInputStateInitialNumber.h
fep/aknfep/inc/AknFepUiInputStateInitialQwertyWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialStrokeFind.h
fep/aknfep/inc/AknFepUiInputStateInitialThaiPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialWesternPredictive.h
fep/aknfep/inc/AknFepUiInputStateInitialZhuyinFind.h
fep/aknfep/inc/AknFepUiInputStateJapaneseBase.h
fep/aknfep/inc/AknFepUiInputStateJapanesePredictiveBase.h
fep/aknfep/inc/AknFepUiInputStateNextWordJapanesePredictive.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidate.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePinyin.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePinyinPhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateQwertyZhuyin.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateStroke.h
fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInput.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputChinese.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputJapanese.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputMiniQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputPhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwerty.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPinyin.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyStroke.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyStrokePhrase.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyZhuyin.h
fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.h
fep/aknfep/inc/AknFepUiInputStateQwerty.h
fep/aknfep/inc/AknFepUiInputStateQwertyKorean.h
fep/aknfep/inc/AknFepUiInputStateZhuyinFindQwerty.h
fep/aknfep/inc/AknFepUiInputStatelStrokeFindQwerty.h
fep/aknfep/inc/AknFepUiManagerBase.h
fep/aknfep/inc/AknFepUiManagerChinese.h
fep/aknfep/inc/AknFepUiManagerKorean.h
fep/aknfep/inc/AknFepUiManagerWestern.h
fep/aknfep/inc/AknFepVietnameseInputTables.h
fep/aknfep/inc/AknFepVietnameseToneManager.h
fep/aknfep/inc/AknFepZhuyinAnalyser.h
fep/aknfep/inc/AknFepZhuyinAnalyserDb.h
fep/aknfep/inc/AknFepZhuyinAnalyserDb.inl
fep/aknfep/inc/aknfepinputstatecandidatepinyinphrasecreation.h
fep/aknfep/inc/aknfepinputstateminiqwertyzhuyinkeymap.h
fep/aknfep/inc/aknfepinputstatepinyinphrasecreationbase.h
fep/aknfep/inc/aknfepinputstatespellingpinyinphrasecreation.h
fep/aknfep/inc/aknfeppeninputimeplugin.h
fep/aknfep/inc/aknfepuifingeritutinputstategeneric.h
fep/aknfep/inc/aknfepuiinputminiqwertypinyinphrasebase.h
fep/aknfep/inc/aknfepuiinputminiqwertystrokephrasebase.h
fep/aknfep/inc/aknfepuiinputminiqwertyzhuyinphrasebase.h
fep/aknfep/inc/aknfepuiinputstateentryhalfqwertyphrase.h
fep/aknfep/inc/aknfepuiinputstateentrypinyinphrasecreation.h
fep/aknfep/inc/aknfepuiinputstateentryzhuyinphrasecreation.h
fep/aknfep/inc/aknfepuiinputstateindicphoneticqwerty.h
fep/aknfep/inc/aknfepuiinputstateinitialindicphoneticmultitap.h
fep/aknfep/inc/aknfepuiinputstateminiqwertystrokephrase.h
fep/aknfep/inc/aknfepuiinputstateminiqwertyzhuyinphrase.h
fep/aknfep/inc/aknfepuiinputstatestrokephrasebase.h
fep/aknfep/inc/aknfepuiinputstatezhuyinphrasecreationbase.h
fep/aknfep/inc/aknfepuimanagerfingeritutchinese.h
fep/aknfep/inc/aknfepuispellcontainer.h
fep/aknfep/inc/aknfepuispellinputpane.h
fep/aknfep/inc/aknfepuserdbdlg.h
fep/aknfep/inc/aknfepuserdbquerydlg.h
fep/aknfep/inc/aknfepzhuyinconvertion.h
fep/aknfep/inc/aknfepzhuyinkeyhandler.h
fep/aknfep/inc/aknfepzhuyinkeyhandlerinterface.h
fep/aknfep/inc/dbmanagement.h
fep/aknfep/peninputplugins/PeninputPluginKr/data/E95A395D.rss
fep/aknfep/peninputplugins/PeninputPluginKr/data/PeninputPluginKr.loc
fep/aknfep/peninputplugins/PeninputPluginKr/data/PeninputPluginKrRes.rss
fep/aknfep/peninputplugins/PeninputPluginKr/group/PeninputPluginKr.mmp
fep/aknfep/peninputplugins/PeninputPluginKr/group/bld.inf
fep/aknfep/peninputplugins/PeninputPluginKr/group/peninputpluginkrproxy.d
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputImePluginKr.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.hrh
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.pan
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKrDbg.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerBase.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerHwr.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerItut.h
fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerVkb.h
fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_EKA2.pkg
fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_stub.pkg
fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_stub.sis
fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKrDllMain.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKrProxy.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerBase.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerHwr.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerItut.cpp
fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerVkb.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/group/bld.inf
fep/aknfep/peninputplugins/peninputimeplugincn/group/peninputimeplugincn.mmp
fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincn.h
fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincn.inl
fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincndebug.h
fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagerbase.h
fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagerhwr.h
fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagervkb.h
fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincn.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincnmain.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincnproxy.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerhwr.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagervkb.cpp
fep/aknfep/peninputplugins/peninputimeplugincn/srcdata/10207361.rss
fep/aknfep/peninputplugins/peninputimeplugingeneric/group/bld.inf
fep/aknfep/peninputplugins/peninputimeplugingeneric/group/peninputimeplugingeneric.mmp
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.h
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.inl
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingenericdebug.h
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagerbase.h
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagerhwr.h
fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagervkb.h
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingenericmain.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingenericproxy.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerhwr.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagervkb.cpp
fep/aknfep/peninputplugins/peninputimeplugingeneric/srcdata/1028235F.rss
fep/aknfep/peninputplugins/peninputimepluginitut/group/bld.inf
fep/aknfep/peninputplugins/peninputimepluginitut/group/peninputimepluginitut.mmp
fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitut.h
fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitut.inl
fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitutdebug.h
fep/aknfep/peninputplugins/peninputimepluginitut/inc/pluginfepmanagerbase.h
fep/aknfep/peninputplugins/peninputimepluginitut/inc/pluginfepmanageritut.h
fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitut.cpp
fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitutmain.cpp
fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitutproxy.cpp
fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp
fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanageritut.cpp
fep/aknfep/peninputplugins/peninputimepluginitut/srcdata/2000B133.rss
fep/aknfep/peninputplugins/peninputimepluginjp/group/bld.inf
fep/aknfep/peninputplugins/peninputimepluginjp/group/peninputimepluginjp.mmp
fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.h
fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.inl
fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjpdebug.h
fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagerbase.h
fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagerhwr.h
fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagervkb.h
fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjp.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjpmain.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjpproxy.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagerbase.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagerhwr.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagervkb.cpp
fep/aknfep/peninputplugins/peninputimepluginjp/srcdata/10282419.rss
fep/aknfep/resource/100056de.rss
fep/aknfep/resource/AknFep.rss
fep/aknfep/rom/PeninputPluginKr.iby
fep/aknfep/rom/aknfepResources.iby
fep/aknfep/rom/aknfep_variant.iby
fep/aknfep/rom/aknfepuiinterface.iby
fep/aknfep/rom/peninputimeplugincn_Variant.iby
fep/aknfep/rom/peninputimeplugingeneric.iby
fep/aknfep/rom/peninputimepluginitut_Variant.iby
fep/aknfep/rom/peninputimepluginjp_Variant.iby
fep/aknfep/src/AknFepCaseManager.cpp
fep/aknfep/src/AknFepFnKeyManager.cpp
fep/aknfep/src/AknFepHashKeyManager.cpp
fep/aknfep/src/AknFepInlineTextDecorator.cpp
fep/aknfep/src/AknFepInputStateInitialChineseGenericHalfQwerty.cpp
fep/aknfep/src/AknFepKeyCatcher.cpp
fep/aknfep/src/AknFepLanguageManager.cpp
fep/aknfep/src/AknFepManager.cpp
fep/aknfep/src/AknFepPlugin.cpp
fep/aknfep/src/AknFepPluginManager.cpp
fep/aknfep/src/AknFepPluginMenuManager.cpp
fep/aknfep/src/AknFepSharedDataInterface.cpp
fep/aknfep/src/AknFepThaiSCTSelector.cpp
fep/aknfep/src/AknFepUIInputStateEntryMiniQwertyCangJie.cpp
fep/aknfep/src/AknFepUIInputStateEntryMiniQwertyPinyinPhrase.cpp
fep/aknfep/src/AknFepUIInputStatePredictiveInputMiniQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiIndicInputManager.cpp
fep/aknfep/src/AknFepUiInputSAknFepUiInputStateCandidateQwertyStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateBase.cpp
fep/aknfep/src/AknFepUiInputStateCandidate.cpp
fep/aknfep/src/AknFepUiInputStateCandidateBase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateBaseChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateBasePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateChinese.cpp
fep/aknfep/src/AknFepUiInputStateCandidateChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateHalfQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidatePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidatePinyinAndStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwerty.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyBase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyBaseChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyBasePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyChinese.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyChineseBase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyPhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyZhuyin.cpp
fep/aknfep/src/AknFepUiInputStateCandidateQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateCandidateRetroActive.cpp
fep/aknfep/src/AknFepUiInputStateChineseBase.cpp
fep/aknfep/src/AknFepUiInputStateChineseBaseQwerty.cpp
fep/aknfep/src/AknFepUiInputStateChineseFindQwerty.cpp
fep/aknfep/src/AknFepUiInputStateCompletionHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateCompletionJapaneseMultitap.cpp
fep/aknfep/src/AknFepUiInputStateCompletionKatakana.cpp
fep/aknfep/src/AknFepUiInputStateCompletionLatinJapanese.cpp
fep/aknfep/src/AknFepUiInputStateCompletionPredictiveHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateConversionHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateEntryArabicHebrewPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryHalfQwertyWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateEntryIndicPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryJapaneseMultitap.cpp
fep/aknfep/src/AknFepUiInputStateEntryKatakana.cpp
fep/aknfep/src/AknFepUiInputStateEntryLatinJapanese.cpp
fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryPinyin.cpp
fep/aknfep/src/AknFepUiInputStateEntryPinyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyBase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyBaseChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyBasePhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyCangJie.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyPinyin.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyPinyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyStroke.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyZhuyin.cpp
fep/aknfep/src/AknFepUiInputStateEntryQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryStroke.cpp
fep/aknfep/src/AknFepUiInputStateEntryStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryThaiPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryVietnamesePredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateEntryWesternPredictiveJp.cpp
fep/aknfep/src/AknFepUiInputStateEntryZhuyin.cpp
fep/aknfep/src/AknFepUiInputStateEntryZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateEntryZhuyinStrokeBase.cpp
fep/aknfep/src/AknFepUiInputStateEntryZhuyinStrokeBasePhrase.cpp
fep/aknfep/src/AknFepUiInputStateHalfQwerty.cpp
fep/aknfep/src/AknFepUiInputStateInitialArabicHebrewMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialArabicHebrewPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialChineseGeneric.cpp
fep/aknfep/src/AknFepUiInputStateInitialChineseGenericQwerty.cpp
fep/aknfep/src/AknFepUiInputStateInitialChineseMultitapBase.cpp
fep/aknfep/src/AknFepUiInputStateInitialFullNumber.cpp
fep/aknfep/src/AknFepUiInputStateInitialHalfQwertyWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialHiragana.cpp
fep/aknfep/src/AknFepUiInputStateInitialHiraganaKanji.cpp
fep/aknfep/src/AknFepUiInputStateInitialIndicMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialIndicPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialJapaneseBase.cpp
fep/aknfep/src/AknFepUiInputStateInitialKatakana.cpp
fep/aknfep/src/AknFepUiInputStateInitialKoreanMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialLatinJapanese.cpp
fep/aknfep/src/AknFepUiInputStateInitialLatinMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialMultitapBase.cpp
fep/aknfep/src/AknFepUiInputStateInitialNumber.cpp
fep/aknfep/src/AknFepUiInputStateInitialQwertyWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialThaiMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialThaiPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialVietnameseMultitap.cpp
fep/aknfep/src/AknFepUiInputStateInitialWesternPredictive.cpp
fep/aknfep/src/AknFepUiInputStateInitialZhuyinFind.cpp
fep/aknfep/src/AknFepUiInputStateJapaneseBase.cpp
fep/aknfep/src/AknFepUiInputStateJapanesePredictiveBase.cpp
fep/aknfep/src/AknFepUiInputStateNextWordJapanesePredictive.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidate.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePinyin.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePinyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateQwertyZhuyin.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateStroke.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveCandidateStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInput.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputChinese.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputJapanese.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputPhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwerty.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyChinesePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPinyin.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyStroke.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyStrokePhrase.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyZhuyin.cpp
fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.cpp
fep/aknfep/src/AknFepUiInputStateQwerty.cpp
fep/aknfep/src/AknFepUiInputStateStrokeFindQwerty.cpp
fep/aknfep/src/AknFepUiInputStateZhuyinFindQwerty.cpp
fep/aknfep/src/AknFepUiInputstateInitialStrokeFind.cpp
fep/aknfep/src/AknFepUiManagerBase.cpp
fep/aknfep/src/AknFepUiManagerChinese.cpp
fep/aknfep/src/AknFepUiManagerJapanese.cpp
fep/aknfep/src/AknFepUiManagerKorean.cpp
fep/aknfep/src/AknFepUiManagerWestern.cpp
fep/aknfep/src/AknFepVietnameseToneManager.cpp
fep/aknfep/src/AknFepZhuyinAnalyser.cpp
fep/aknfep/src/AknFepZhuyinAnalyserDb.cpp
fep/aknfep/src/aknfepinputstatecandidatepinyinphrasecreation.cpp
fep/aknfep/src/aknfepinputstateminiqwertyzhuyinkeymap.cpp
fep/aknfep/src/aknfepinputstatepinyinphrasecreationbase.cpp
fep/aknfep/src/aknfepinputstatespellingpinyinphrasecreation.cpp
fep/aknfep/src/aknfepuifingeritutinputstategeneric.cpp
fep/aknfep/src/aknfepuiinputminiqwertypinyinphrasebase.cpp
fep/aknfep/src/aknfepuiinputminiqwertystrokephrasebase.cpp
fep/aknfep/src/aknfepuiinputminiqwertyzhuyinphrasebase.cpp
fep/aknfep/src/aknfepuiinputstateentryhalfqwertyphrase.cpp
fep/aknfep/src/aknfepuiinputstateentrypinyinphrasecreation.cpp
fep/aknfep/src/aknfepuiinputstateentryzhuyinphrasecreation.cpp
fep/aknfep/src/aknfepuiinputstateindicphoneticqwerty.cpp
fep/aknfep/src/aknfepuiinputstateinitialindicphoneticmultitap.cpp
fep/aknfep/src/aknfepuiinputstateminiqwertystrokephrase.cpp
fep/aknfep/src/aknfepuiinputstateminiqwertyzhuyinphrase.cpp
fep/aknfep/src/aknfepuiinputstateqwertykorean.cpp
fep/aknfep/src/aknfepuiinputstatestrokephrasebase.cpp
fep/aknfep/src/aknfepuiinputstatezhuyinphrasecreationbase.cpp
fep/aknfep/src/aknfepuimanagerfingeritutchinese.cpp
fep/aknfep/src/aknfepuispellcontainer.cpp
fep/aknfep/src/aknfepuispellinputpane.cpp
fep/aknfep/src/aknfepuserdbdlg.cpp
fep/aknfep/src/aknfepuserdbquerydlg.cpp
fep/aknfep/src/aknfepzhuyinconvertion.cpp
fep/aknfep/src/aknfepzhuyinkeyhandler.cpp
fep/aknfep/src/dbmanagement.cpp
Binary file fep/aknfep/CenRep/keys_aknfep.xls has changed
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/data/AknFepUiAvkonPlugin.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include "registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x10285839;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented ime plugin interface
-			interface_uid = 0x10285779;
-			implementations = 
-				{
-				// Info for CImplementation1
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x10285839;
-					version_no = 1;
-					display_name = "";
-					default_data = "";
-					opaque_data= "";
-					}
-				};
-			}
-		};
-	}
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/group/AknFepUiAvkonPlugin.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* Copyright (c) 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:         
-*       MakMake Project file.  
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <data_caging_paths.hrh>
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET          aknfepuiavkonplugin.dll
-TARGETTYPE      plugin
-// ECom Dll recognition UID followed by the unique UID for this dll
-UID             0x10009D8D 0x10285839
-TARGETPATH      /system/libs
-
-CAPABILITY      CAP_ECOM_PLUGIN
-VENDORID        VID_DEFAULT
-
-MACRO    __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-USERINCLUDE     ../inc .
-USERINCLUDE     ../../../../inc
-
-// Added APP_LAYER_SYSTEMINCLUDE for header split and relocation activity
-APP_LAYER_SYSTEMINCLUDE
-
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   ../inc
-SYSTEMINCLUDE   ../../inc
-SYSTEMINCLUDE   ../../../../../../inc
-SYSTEMINCLUDE   /epoc32/include/ecom
-
-SOURCEPATH      ../src
-
-SOURCE          AknFepUiAvkonPlugin.cpp
-SOURCE          AknFepIndicatorAvkon.cpp
-SOURCE          AknFepUiAvkonImpl.cpp
-SOURCE          AknFepQuery.cpp
-SOURCE          AknFepUiAvkonMenus.cpp
-SOURCE          AknFepUiAvkonStylusPopUpMenu.cpp
-
-// Chinese UI Controls
-SOURCE          AknFepUiAvkonCtrlContainerChinese.cpp
-SOURCE          AknFepUiAvkonCtrlInputPane.cpp
-SOURCE          AknFepUiAvkonCtrlCandidatePane.cpp
-SOURCE          AknFepUiAvkonCtrlCandidateSelected.cpp
-SOURCE          AknFepUiAvkonCtrlPinyinPopup.cpp
-SOURCE          aknfepuilayoutdatamgr.cpp
-SOURCE          aknfepchineseuidataconv.cpp
-// for phrase creation
-SOURCE          aknfepuictrleepcontrol.cpp 
-SOURCE          aknfepuictrlpinyineep.cpp 
-SOURCE          insertionpoint.cpp 
-
-// Japanese UI Controls
-SOURCE          AknFepUiAvkonCtrlContainerJapanese.cpp
-SOURCE          AknFepUiAvkonCtrlJapaneseCandidateCellListBoxData.cpp
-SOURCE          AknFepUiAvkonCtrlJapaneseCandidateHeadingPane.cpp
-SOURCE          AknFepUiAvkonCtrlJapaneseCandidateListbox.cpp
-SOURCE          AknFepUiAvkonCtrlJapaneseCandidateListboxView.cpp
-SOURCE          AknFepUiAvkonCtrlJapaneseCandidatePane.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictiveCellListBoxData.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictiveListbox.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictiveListboxItemDrawer.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictiveListBoxModel.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictiveListboxView.cpp
-SOURCE          AknFepUiAvkonCtrlJapanesePredictivePane.cpp
-// for Japanese
-SOURCE          AknFepUiAvkonCtrlJapaneseKutenQueryDialog.cpp
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// for western predictive
-SOURCE 			AknFepAvkonCandidatePopup.cpp
-SOURCE			AknFepUiAvkonCtrlExactWordPopupContent.cpp
-SOURCE			AknFepPredictiveSettingDialog.cpp
-SOURCE			AknFepPredictiveSettingList.cpp 
-SOURCE 			AknFepPredictiveSettingData.cpp
-#ifdef __USER_DICTIONARY_EDITING__
-SOURCE 			AknFepPredOwnWordsModel.cpp 
-SOURCE			AknFepUserDictionaryEditDialog.cpp
-#endif
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-SOURCE 			AknFepUiAvkonCtrlDualLanguageSettingData.cpp 
-SOURCE 			AknFepUiAvkonCtrlDualLanguageSettingDialog.cpp 
-SOURCE 			AknFepUiAvkonCtrlDualLanguageSettingList.cpp 
-SOURCE 			AknFepUiAvkonCtrlDualLanguageSettingModel.cpp
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-SOURCEPATH      ../data
-START RESOURCE AknFepUiAvkonPlugin.rss
-TARGET aknfepuiavkonplugin.rsc
-END
-
-LIBRARY         euser.lib
-LIBRARY         ecom.lib
-LIBRARY         eikcore.lib
-LIBRARY         avkon.lib
-LIBRARY         eikdlg.lib
-LIBRARY         eikcoctl.lib
-LIBRARY         cone.lib
-LIBRARY         bafl.lib
-LIBRARY         featmgr.lib
-LIBRARY         fepbase.lib
-LIBRARY         ws32.lib
-LIBRARY         etext.lib
-LIBRARY         tagma.lib
-LIBRARY         gdi.lib
-LIBRARY         AknIcon.lib
-LIBRARY         AknFepUiInterface.lib
-
-LIBRARY         cdlengine.lib   // using Chinese
-LIBRARY         AknSkins.lib    // using Chinese
-LIBRARY         charconv.lib    // using Japanese only
-LIBRARY         efsrv.lib       // using Japanese only
-LIBRARY         AknLayout2Scalable.lib  // using Japanese only
-LIBRARY         FontUtils.lib   // using Japanese only
-LIBRARY         aknlayout2.lib   // using Chinese and Japanese
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-LIBRARY         aknlayout.lib 	 // using western predictive 
-LIBRARY         CentralRepository.lib
-LIBRARY         commonengine.lib
-LIBRARY         AknNotify.lib 
-LIBRARY		eikctl.lib
-LIBRARY         ptiengine.lib
-LIBRARY         hlplch.lib 
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__       
-LIBRARY         CenRepNotifHandler.lib
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-#endif //RD_INTELLIGENT_TEXT_INPUT
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 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:          
-*       Bldmake component description file.  
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-PRJ_PLATFORMS
-ARMV5 WINSCW
-
-
-PRJ_MMPFILES
-AknFepUiAvkonPlugin.mmp
-
-
-// End of File  
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepAvkonCandidatePopup.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,222 +0,0 @@
-/*
-* Copyright (c) 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:             Avkon implementation of non-focusing popup menu to show word candidates.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_AVKON_CANDIDATE_POPUP_H
-#define __AKN_FEP_AVKON_CANDIDATE_POPUP_H
-
-#include "AknFepCandidatePopup.h"
-#include "AknFepCandidatePopupCallback.h"
-#include <aknPopup.h>
-#include <PtiDefs.h>
-
-// FORWARD DECLARATIONS
-class TAknPopupLayouts;
-class TRect;
-
-
-// CLASS DECLARATION
-class CAknFepAvkonCandidatePopup : public CAknPopupList, public MAknFepCandidatePopup
-    {
-public: // construction and destruction
-
-    /**
-    * Two-phased constructor
-    * @param    aOwner  Reference to the owner of the popup which provides 
-    *                   the candidates to be shown
-    * @return   A new instance of the class.
-    */
-    static CAknFepAvkonCandidatePopup* NewL( MAknFepCandidatePopupCallback& aOwner );
-    
-    /**
-    * Destructor
-    */
-    ~CAknFepAvkonCandidatePopup();
-    
-public: // methods
-
-    /**
-    * Getter for the currently active word
-    * @return   The currently active word as pointer descriptor
-    */
-    TPtrC ActiveWord() const;
-    
-    /**
-    * Getter for the exact word (the word with ordinal 0)
-    * @return   The exact word as pointer descriptor.
-    */
-    TPtrC ExactWord() const;
-    
-    /**
-    * Makes the pop-up selection list visible and blocks until the dialog has been dismissed.
-    * @param    aInlineEditorRect    Tells the place of the inline editor. If possible, the popup is opened
-    *                                so that it does not hide the inline editor.
-    * @param    aSelectedIdx         Output argument for the selected index.
-    * @param    aLastKeyEvent        The last key event received by the popup. On return this is the event
-    *                                which closed the popup.
-    * @param    aRightToLeftLanguage Direction of the candidate language.ETrue is right to left. EFalse otherwise
-    * @param    aKeyboard            Type of keyboard in use.
-    * 
-    * @return   The command id used to close the window. EAknFepSoftkeySpell, EAknSoftkeyCancel, or EAknSoftkeySelect
-    */
-    TInt ExecutePopupL( const TRect& aInlineEditorRect, TInt& aSelectedIdx, TKeyEvent& aLastKeyEvent, TBool aRightToLeftLanguage, TInt aKeyboard );
-    
-    /**
-    * Function called when the dialog is dismissed. Among other things, this hides the dialog
-    * and deblocks the thread. Unlike in the base class, the instance is not destroyed here. 
-    * The same popup instance can be reused by calling ExecutePopupL() again. 
-    * @param    aAccept     EFalse  if the dialog was cancelled.
-    *                       ETrue   otherwise.
-    */
-    void AttemptExitL(TBool aAccept); 
-    /**
-    * Function called when there is a change of resource, typically when there is a layout switch.
-    * Overidden the base implementation for the same. This is because the position of the popup
-    * also chnages when there is a layout change.
-    * @param    aType : Specifies the type of layout switch.
-    */
-    void HandleResourceChange(TInt aType); 
-
-    /**
-    * Removes the focus from the candidate list and makes the editor to be in focus.
-    */
-    void UnFocus();
-    /**
-    * Changes the position where the candidate list is shown. The position of the candidate list is choosen by the
-    * candidate list itself but can be controlled by the inline text rectangle.
-    * @param    aRect  The inline text rect.
-    */
-    void ShowAtNewPosition(TRect aRect);
-    
-    /**
-     * Reduce the candidate pop up control priority and add it to stack.
-     * Basically, this function is called,if after void UnFocus();
-     * 
-     * Whenever layout Change is happen opencandidate list, then candidatelist priority
-     * should be reduce, otherwise updated inline rect 
-     */
-    void SetFocusAddStackReducePriorityL();
-   
-protected: // methods
-    
-    /**
-    * Handler for key evemts.
-    * @param    aKeyEvent   The key event to be handled.
-    * @param    aType       The type of the key event to be handled.
-    * @return   EKeyWasConsumed     If the offered key event is consumed.
-    *           EKeyWasNotConsumed  Otherwise.
-    */
-    virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-
-    /**
-    * Processing of the CBA commands
-    * @param  aCommandId  The command to be handled.
-    */
-    virtual void ProcessCommandL(TInt aCommandId);
-
-    /**
-    * Calculates the position for the popup window and places it there
-    * @param    aInlineEditorRect   The placement of the inline editor is used as reference.
-    *                               The inline editor is not hidden behind the popup if possible.
-    *                               The preferred location for the popup is under the inline editor.
-    *                               The next best place is on the right side of the inline editor,
-    *                               then on the top of the editor and last on the left side of the editor.
-    */
-    virtual void SetupWindowLocation( const TRect& aInlineEditorRect );
-    
-    /**
-    * Sets up the layout of the popup window.
-    * Modified from CAknPopupList::SetupWindowLayout()
-    */
-    virtual void SetupWindowLayout( AknPopupLayouts::TAknPopupLayouts aType );
-
-    /**
-    * Calculates the width of the popup window based on the candidates available on the list. 
-    * The with is always set to as small as possible without truncation. 
-    * The client application area is used as reference to ensure that the popup is never wider
-    * than the application area.
-    * @param    aClientRect The client application area.
-    * @return   The window widt in pixels.
-    */    
-    TInt CalculateWindowWidth( const TRect& aClientRect );
-    
-    /**
-    * Updates the popup window layout.
-    * Modified from AknPopupLayouts::HandleSizeChanged()
-    */
-    void HandleSizeChanged( TAknPopupWindowLayoutDef &aDef,
-                            AknPopupLayouts::TAknPopupLayouts aLayout_1,
-                            TAknPopupLayoutsNode *aNode );
-    
-    /**
-    * The C++ constructor
-    * @param    aOwner  Reference to the owner of the popup which provides 
-    *                   the candidates to be shown 
-    */
-    CAknFepAvkonCandidatePopup( MAknFepCandidatePopupCallback& aOwner );
-
-    /**
-    * Second phase constructor.
-    */
-    void ConstructL();
-    
-    
-    static TInt HandleChrKeyMonitorCallback(TAny* aParam);
-
-private: // data
-
-    //! Owner of this popup. Provides the candidates.
-    MAknFepCandidatePopupCallback& iOwner;
-
-    //! The listbox embedded into this popup
-    CEikFormattedCellListBox* iList;
-    
-    //! Array of candidates shown in the popup list
-    CDesCArray* iCandidates;
-    
-    //! Pointer to variable containing the index of currently selected word.
-    TInt* iSelectedIdx;         // not owned
-    
-    //! Pointer to variable containing the last received key event.
-    TKeyEvent* iLastKeyEvent;   // not owned
-    
-    //! Last received command. EAknSoftkeySelect, EAknSoftkeySpell, or EAknSoftkeyCancel.
-    TInt iLastCommandId;
-    
-    //! Candidate Language direction.
-    TBool iRightToLeftCandidate;
-    //! Keyboard type in use.
-    TPtiKeyboardType iKeyboard;
-    
-    CPeriodic*     iChrKeypressMonitor;
-    //The inline text rectangle that is used as a reference for showing the candidate list.
-    TRect iInlineTextRect;
-    };
-    
-
-#endif // __AKN_FEP_AVKON_CANDIDATE_POPUP_H   
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepIndicatorAvkon.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 2002 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 CAknFepIndicatorAvkon definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AknFepAvkonIND_H
-#define AknFepAvkonIND_H
-
-#include <AknFepIndicator.h>
-#include <aknEditStateIndicator.h>  //MAknEditingStateIndicator
-
-class CAknNavigationDecorator;
-class CAknNavigationControlContainer;
-class CEikonEnv;
-
-class CAknFepIndicatorAvkon : public CAknFepIndicator
-    {
-public:
-    static CAknFepIndicator* NewL();
-    ~CAknFepIndicatorAvkon();
-    virtual void SetState(TAknEditingState aState); 
-    virtual CAknIndicatorContainer* IndicatorContainer();
-
-public: // new functions    
-    /**
-     * Sets flag that copy mode is ON
-     */    
-    void SetCopyMode(TBool aCopyMode); 
-
-private:
-    CAknFepIndicatorAvkon();
-    void AddContainerL(CAknNavigationControlContainer* aNaviPane);
-    void RemoveContainer();
-    void SetIndicator(TInt aIndicator, TInt aMode, TBool aDrawNow = ETrue);
-    CAknNavigationControlContainer* NaviPaneL();
-    
-     /** Since 3.2
- 	  * 	 Returns True if Predictive Mode is On so that - the appropriate indicator is set
- 	  */
-    TBool QueryPredictiveState(TAknEditingState aState);
-    
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-     /** Since 5.0
- 	  * 	 Returns True if AutoCompletion Mode is On so that - the appropriate indicator is set
- 	  */
-    
-    TBool QueryPredictiveAutoCompleteState(TAknEditingState aState);
-    
-#endif     // RD_PRED_AW_COMPLETION
-     /** Since 3.2
-      * 	 Returns the indicator to be displayed based on the Editor state 
-      */
-    TInt EvaluateState(TAknEditingState aState);
-private:
-    CAknIndicatorContainer*     iIndicatorContainer;
-    CAknNavigationDecorator*    iNaviDecorator;
-    TAknEditingState            iPreviousState;
-    CEikonEnv& iEikEnv;
-    CAknNavigationControlContainer* iNaviPane;
-    TBool iNaviPaneChanged;
-    };
-
-#endif // AknFepIND_H
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredOwnWordsModel.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/*
-* Copyright (c) 2009 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 AKNFEPPREDOWNWORDSLISTBOX_H_
-#define AKNFEPPREDOWNWORDSLISTBOX_H_
-
-#include <e32base.h>
-#include <eikclb.h>
-
-//For accessing user dictionary through PtiEngine:
-#include <PtiDefs.h>
-#include <PtiEngine.h>
-#include <PtiUserDicEntry.h>
-
-
-class CAknFepPredOwnWordsModel : public CBase
-    {
-public:
-    /**
-    * Function:     NewL
-    *
-    * Discussion:   Factory function used to create a new instance of
-    *               CAknFepPredictiveSettingDialog
-    *
-    * Params :      aTextArray - pointer to array of UDB entries  
-    * Returns:      A newly created instance of CAknFepPredOwnWordsModel
-    */
-    static CAknFepPredOwnWordsModel* NewL( MDesCArray* aTextArray );
-
-    /**
-    * Function:     NewLC
-    *
-    * Discussion:   Factory function used to create a new instance of
-    *               CAknFepPredictiveSettingDialog and leave a pointer to it on the
-    *               cleanup stack.
-    *
-    * Params:       aTextArray - pointer to array of UDB entries
-    * Returns:      A newly created instance of CAknFepUserDictionaryEditDialog
-    */
-    static CAknFepPredOwnWordsModel* NewLC( MDesCArray* aTextArray );
-    
-    //Destructor
-    ~CAknFepPredOwnWordsModel();
-    
-    /**
-    * Function:     RemoveSelectedWordL
-    *
-    * Discussion:   Removes existing word from UDB
-    *
-    * Params:       aWordIndex - index to the word to be removed 
-    *                            in the list of UDB entries
-    * Returns:      If successful, it returns the index of the word
-    *               in the list of UDB entries which should be focussed. 
-    *               Else, returns one of the system wide error codes.  
-    */
-    TInt RemoveSelectedWordL( TInt aWordIndex );
-    
-    /**
-    * Function:     RemoveSelectedWordsL
-    *
-    * Discussion:   Removes existing word from UDB
-    *
-    * Params:       aSelectedItems - array of indices to the words to be 
-    *                                removed from the list of UDB entries
-    * Returns:      If successful, it returns KErrNone. 
-    *               Else, returns one of the system wide error codes.  
-    */
-    TInt RemoveSelectedWordsL( const CArrayFix<TInt>* aSelectedItems );
-    
-    /**
-    * Function:     AddNewWordL
-    *
-    * Discussion:   Adds the word to UDB
-    *
-    * Params:       aNewWord - new word to be added
-    * Returns:      If successful, it returns the index of the newly added word
-    *               in the list of UDB entries. 
-    *               Else, returns one of the system wide error codes  
-    */
-    TInt AddNewWordL( TDesC& aNewWord );    
-    
-private:
-    CAknFepPredOwnWordsModel();
-    void ConstructL( MDesCArray* aTextArray );
-    
-    //Helper methods:
-    /**
-    * Function:     UpdateItemsL
-    *
-    * Discussion:   Refreshes the word list with the current UDB entries
-    *
-    * Params:       aTextArray
-    * Returns:      no return value.  
-    */
-    void UpdateItemsL( MDesCArray* aTextArray );
-    
-    //to read user dictionary entries through PtiEngine
-    void ReadUDBEntriesL();
-    
-    //to format the words for list box
-    HBufC* FormListBoxEntryFromWordLC( const TDesC& aWord );
-    
-    //data:
-    CPtiEngine* iPtiEngine;
-    CDesCArrayFlat* iUDBWords;
-    
-    };
-#endif /*AKNFEPPREDOWNWORDSLISTBOX_H_*/
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingData.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingData from AknFepPredictiveSettingData.h
- * ============================================================================
- */
-
-#ifndef __AKN_FEP_PREDICTIVESETTING_DATA_H
-#define __AKN_FEP_PREDICTIVESETTING_DATA_H
-
-#include <e32base.h>
-
-/**
- * Class: 		CAknFepPredictiveSettingData
- *
- * Discussion:	An aggregate class containing data for all editing controls
- *				This class is used as a central respository for all data
- *				to be displayed and editted within this app.
- */
-class CAknFepPredictiveSettingData : public CBase
-{
-public:
-	/**
- 	* Function: 	NewL
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepPredictiveSettingData
-	*
- 	* Returns:		A newly created instance of CAknFepPredictiveSettingData with all data
- 	*				items valid
-	*/
-	static CAknFepPredictiveSettingData* NewL();
-
-	/**
- 	* Function: 	NewLC
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepPredictiveSettingData and leave a pointer to it on the cleanup
- 	*				stack
-	*
- 	* Returns:		A newly created instance of CAknFepPredictiveSettingData with all data
- 	*				items valid
-	*/
-	static CAknFepPredictiveSettingData* NewLC();
-
-	/**
-	* Function:		~CAknFepPredictiveSettingData
-	*
-	* Discussion: 	Virtual destructor for CAknFepPredictiveSettingData. Ensures that all
-	*				allocated memory is returned to the heap before deletion
-	* 				of object.
-	*
-	*/
-	virtual ~CAknFepPredictiveSettingData();
-
-    /**
-    * Function:    LoadL
-    * 
-    * Discussion:  Loads itself with parameters passed.
-    * 
-    */
-    void LoadL(TInt aAutoWordCompl,
-			   TInt aTypingCorrection,
-			   TInt aNumberCandidates,
-			   TInt aPrimaryCandidate,
-			   TInt aPhysicalKeyboards,
-			   TInt aAWCBitmask);
-    
-    /**
-    * Function:     SaveL
-    * 
-    * Discussion:   Saves itself.
-    * 
-    */
-	void SaveL() const;
-    
-	/**
- 	* Function: 	AutoWordCompl
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iAutoWordCompl member
-	*/
-	inline TInt& AutoWordCompl() {return iAutoWordCompl; }
-	
-	/**
- 	* Function: 	TypingCorrection
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iTypingCorrection member
-	*/
-	inline TInt& TypingCorrection() { return iTypingCorrection; }
-
-	
-	/**
- 	* Function: 	NumberCandidates
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iNumberCandidates member
-	*/
-	inline TInt& NumberCandidates() {return iNumberCandidates; }
-	
-	/**
- 	* Function: 	PrimaryCandidate
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iPrimaryCandidate member
-	*/
-	inline TInt& PrimaryCandidate() {return iPrimaryCandidate; }
-	
-	/**
-	* Function:     PhysicalKeyboards
-	*
-	* Discussion:   Trivial accessor function
-	*
-	* Returns:      Value of iPhysicalKeyboards member
-	*/
-	inline TInt PhysicalKeyboards() {return iPhysicalKeyboards; }
-
-    /**
-    * Function:     AWCBitmask
-    *
-    * Discussion:   Trivial accessor function
-    *
-    * Returns:      Value of iPhysicalKeyboards member
-    */
-    inline TInt& AWCBitmask() {return iAWCBitmask; }
-private:
-	/**
-	* Function:		CAknFepPredictiveSettingData
-	*
-	* Discussion: 	Hidden, first-stage non-leaving constructor.
-	*
-	*/
-	CAknFepPredictiveSettingData();
-
-	/**
-	* Function:		ConstructL
-	*
-	* Discussion: 	Hidden, second-stage possibly-leaving constructor.
-	*
-	*/
-	void ConstructL();
-
-
-public:
-	TInt iAutoWordCompl;					/* Data for AutoWordCompl field          */
-	TInt iTypingCorrection;					/* Data for TypingCorrection text field  */
-	TInt iNumberCandidates;					/* Data for NumberCandidates field       */
-	TInt iPrimaryCandidate;					/* Data for PrimaryCandidate field       */
-    TInt iPhysicalKeyboards;                /* Data for PhysicalKeyboards field      */
-    TInt iAWCBitmask;                       /* AWC data in bitmask form              */
-    
-};
-
-#endif // __AKN_FEP_PREDICTIVESETTING_DATA_H
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingDialog.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingList from AknFepPredictiveSettingList 
- * ============================================================================
- */
-
-#ifndef __AKN_FEP_PREDICTIVESETTING_DIALOG_H
-#define __AKN_FEP_PREDICTIVESETTING_DIALOG_H
-
-#include <AknDialog.h>
-#include "AknFepPredictiveSettingList.h"
-#include "AknFepPredictiveSettingData.h"
-
-class CRepository;
-class CAknTitlePane;
-class CAknNavigationControlContainer;
-class CAknNavigationDecorator;
-
-enum TInputSettings
-{
-	EAutoWordCompletion,
-	ETypingCorrectionLevel,
-	ENumberCandidate,
-	EPrimaryCandidate
-};
-
-class CAknFepPredictiveSettingDialog : public CAknDialog
-{
-	public:
-	/**
-	 	* Function: 	NewL
-		*
-	 	* Discussion:	Factory function used to create a new instance of
-	 	* 				CAknFepPredictiveSettingDialog
-		*
-		* Params:		aMenuResId - menu resource id.
-		* Params:		aConfirmationQueryResId - Confirmation Query resource id.
-		* Params:       aTitlePaneResId - Titlepane resource id.
-		* Returns:		A newly created instance of CAknFepPredictiveSettingDialog
-		*/
-		static CAknFepPredictiveSettingDialog* NewL(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId);
-
-		/**
-	 	* Function: 	NewLC
-		*
-	 	* Discussion:	Factory function used to create a new instance of
-	 	* 				CAknFepPredictiveSettingDialog and leave a pointer to it on the
-	 	*				cleanup	stack.
-		*
-		* Params:		aMenuResId - menu resource id.
-		* Params:		aConfirmationQueryResId - Confirmation Query resource id.
-		* Params:       aTitlePaneResId - Titlepane resource id.
-	 	* Returns:		A newly created instance of CAknFepPredictiveSettingDialog
-		*/
-		static CAknFepPredictiveSettingDialog* NewLC(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId);
-
-		/**
-		* Function:		~CAknFepPredictiveSettingDialog
-		*
-		* Discussion: 	Virtual destructor for CAknFepPredictiveSettingDialog. Ensures that all
-		*				allocated memory is returned to the heap before deletion
-		* 				of object.
-		*
-		*/
-		virtual ~CAknFepPredictiveSettingDialog();
-		
-		virtual SEikControlInfo CreateCustomControlL(TInt aControlType);
-		virtual CAknFepPredictiveSettingDialog::TFormControlTypes ConvertCustomControlTypeToBaseControlType(TInt aControlType) const;
-
-		virtual TBool OkToExitL(TInt aButtonId);
-		virtual void ProcessCommandL(TInt aCommandId);
-		virtual void HandleResourceChange(TInt aType);
-		
-		void EditItemL(TBool aCalledFromMenu);
-		
-		void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-		
-		// From MEikMenuObserver
-		virtual void DynInitMenuPaneL( TInt aResourceId, 
-		                               CEikMenuPane* aMenuPane );
-	    
-	private:
-		void ConstructL( TInt aMenuTitleResourceId );
-		CAknFepPredictiveSettingDialog(TInt aConfirmationQueryResId, TInt aTitlePaneResId);
-		void ReadSettingsDataL();
-	    void SaveSettingsDataL() const;
-	    void SaveCurrentSettingsDataL() const;
-	    void LaunchPredictiveSettingOffQueryIfNecessaryL(TInt prevSettings);
-	    TInt CurrentSettings();
-	    void PrepareStatusPaneL();
-	    void SetTitlePaneL();
-	    void RestoreStatusPaneL();
-	    TInt  iConfirmationQueryResId;
-	    TInt  iPredictiveTextFlag;
-	    TBool iPredictiveSettingOffQueryNotShown;
-	    
-	    CAknTitlePane* iTitlePane;
-	    CAknNavigationControlContainer* iNaviPane;
-	    CAknNavigationDecorator*        iNaviDecoratedTabGroup;
-	    HBufC* iLastTitle;
-	    HBufC* iStatusTitle;
-	    TInt iTitlePaneResId;
-	    
-		static TInt EventCheckCallback(TAny* aObj);
-		void AttemptToExitL();
-
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__		
-	    TInt 						iOriginalKeyboardLayout;
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-	    
-	    // iSettingItemInEditingState is introduced to avoid the crash when we are editing 
-	    // the settings item and the flip staus changes.
-	    TBool 						iSettingItemInEditingState; 
-	    CIdle* 						iItemCloseEventCheck;
-	
-	protected:
-	CAknFepPredictiveSettingList*	iSettingsList;
-	CAknFepPredictiveSettingData*	iSettingsData;
-	CRepository*					iAknFepRepository;
-};
-#endif //__AKN_FEP_PREDICTIVESETTING_DIALOG_H
\ No newline at end of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepPredictiveSettingList.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingList from SettingExampleSettingList.h
- * ============================================================================
- */
-
-#ifndef __AKN_FEP_PREDICTIVESETTING_LIST_H
-#define __AKN_FEP_PREDICTIVESETTING_LIST_H
-
-
-#include <coecntrl.h>
-#include <aknsettingitemlist.h> 
-#include <akncheckboxsettingpage.h>
-
-//class CAknFepPredictiveSettingData;
-#include "AknFepPredictiveSettingData.h"
-
-class CAknFepPredictiveSettingDialog;
-/**
- * Class: CAknFepMultiSelectionSettingItem
- *
- * Discussion:  An implementation of CAknBigSettingItemBase, providing a 
- *              big setting item that opens a multiselection (checkbox)
- *              setting page. Specialized implementation to show
- *              word autocompletion settings.
- * 
- */
-class CAknFepMultiSelectionSettingItem : public CAknBigSettingItemBase
-    {
-public:
-    CAknFepMultiSelectionSettingItem( TInt aResourceId, CAknFepPredictiveSettingData &aData,
-            CCoeEnv* aCoeEnv );
-    virtual ~CAknFepMultiSelectionSettingItem();
-    virtual void EditItemL( TBool aCalledFromMenu );
-    virtual void StoreL();
-    virtual void LoadL();
-
-private:
-    CSelectionItemList* CreateSelectionItemListL();
-    
-    CAknFepPredictiveSettingData &iData; // not owned
-    CSelectionItemList* iSelection;
-    CCoeEnv* iCoeEnv;
-    TInt iItutIndex;
-    TInt iHalfQwertyIndex;
-    TInt iQwertyIndex;
-    };
-
-/**
- * Class: CAknFepPredictiveSettingList
- *
- * Discussion: 	A specialised subclass of CAknSettingItemList. This class is
- *				the control used to both display the current values of the
- *				settings and to launch the relevant editor for those items.
- *
- */
-class CAknFepPredictiveSettingList : public CAknSettingItemList
-	{
-public:
-	/**
- 	* Function: 	NewL
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepPredictiveSettingList
-	*
-	* Params:		aData - reference to the data to be displayed and edited.
-	*
- 	* Returns:		A newly created instance of CAknFepPredictiveSettingList
-	*/
-	static CAknFepPredictiveSettingList* NewL(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog);
-
-	/**
- 	* Function: 	NewLC
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepPredictiveSettingList and leave a pointer to it on the
- 	*				cleanup	stack.
-	*
-	* Params:		aData - reference to the data to be displayed and edited.
-	*
- 	* Returns:		A newly created instance of CAknFepPredictiveSettingList
-	*/
-	static CAknFepPredictiveSettingList* NewLC(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog);
-
-	/**
-	* Function:		~CAknFepPredictiveSettingList
-	*
-	* Discussion: 	Virtual destructor for CAknFepPredictiveSettingList. Ensures that
-	*				all	allocated memory is returned to the heap before
-	*				deletion of object.
-	*
-	*/
-	virtual ~CAknFepPredictiveSettingList();
-
-
-	/**
-	* Function:		SizeChanged
-	*
-	* Discussion: 	Inherited from CCoeControl. Calculates size based on
-	*				contained control required sizes.
-	*
-	*/
-	void SizeChanged();
-
-	/**
-	 * Function:	EditCurrentItemL
-     * Params:		aCalledFromMenu - ETrue if called from menu, EFalse otherwise.
-	 *
- 	 *
-	 * Discussion:	Starts the setting page for the currently selected item 
-	 *				in the list.
-	 */
-	void EditCurrentItemL(TBool aCalledFromMenu);
-	
-    TBool DeviceHasMultipleKeyboards(); 
-	
-	
-private:
-	/**
-	* Function:		CAknFepPredictiveSettingList
-	*
-	* Discussion: 	Hidden, first-stage non-leaving constructor.
-	*
-	* Params:		aData - reference to the data to be displayed and edited.
-	*
-	*/
-	CAknFepPredictiveSettingList(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog);
-
-	/**
-	* Function:		CreateSettingItemL
-	*
-	* Discussion: 	Factory function for creating CAknSettingItem derived
-	*				SettingItem classes used t display current values
-	*
-	* Params:		aSettingId - the id of the control which should be created
-	*
-	*/
-	CAknSettingItem* CreateSettingItemL (TInt aSettingId);
-	
-	
-	void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
-
-	void HandleResourceChange(TInt aType);
-
-private:
-	CAknFepPredictiveSettingData &iSettingsData;		/* Reference to data owned by Dialog */
-	CAknFepPredictiveSettingDialog &iSettingsDialog;
-	};
-
-#endif // __AKN_FEP_PREDICTIVESETTING_LIST_H
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepQuery.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2002 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 __AKNFEPQUERY__
-#define __AKNFEPQUERY__
-
-#if !defined(__AKNQUERYDIALOG_H__)
-#include <AknQueryDialog.h>
-#endif
-
-class CAknEdwinState;
-
-class CAknFepTextQueryDialog : public CAknTextQueryDialog
-    {
-    public:
-        CAknFepTextQueryDialog(TDes& aDataText, CAknEdwinState& aEditorState, 
-            const TTone aTone = ENoTone, const TInt aEditorFlag = 0);
-        virtual ~CAknFepTextQueryDialog();
-    protected: //from CEikDialog
-        void PreLayoutDynInitL();
-    private:
-        CAknEdwinState& iUnderlyingEditorState; // not owned
-        TInt iEditorFlag;
-    };
-
-#endif
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,502 +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 CAknFepUICtrlCandidatePane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_AVKON_CANDIDATE_PANE_H__
-#define __AKN_FEP_AVKON_CANDIDATE_PANE_H__
-
-#include <e32std.h>
-#include <coecntrl.h>
-
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIAvkonCtrlContainerChinese.h"
-
-class CAknFepUICtrlCandidateSelected;
-
-/**
- * Pane which displays the Chinese Candidates.
- */
-NONSHARABLE_CLASS(CAknFepUICtrlCandidatePane) : public CCoeControl, public MAknFepUICtrlCandidatePane
-    {
-public:
-    /**
-     * first phase construction
-     */
-    static CAknFepUICtrlCandidatePane* NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr);
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlCandidatePane();
-public:
-    /**
-     * Get a buffer that can be filled with candidate characters, 
-     * which will subsequently be displayed.
-     *
-     * @output the text buffer of the Pane
-     */
-    const TDesC& TextBuffer() const;
-
-    /**
-     * Allows the client to set a descriptor pointer into an existing buffer of 
-     * data, avoiding unnecessary copying of data.
-     * <p> Note that if the buffer contains less characters than the current
-     * visible count, then the remaining characters will not be displayed. 
-     * <p> Note also that if the current selection falls outside the range
-     * of the size of the new buffer, it will be made not visible. 
-     * However, the current highlighted state remains, so if the selection 
-     * is set once more to a valid entry (or if the buffer is set to a length that 
-     * includes the currently selected position), and the highlight is still enabled,
-     * the highlight will reappear.
-     *
-     * @param aBufferPtr descriptor that contains the candidates for display,
-     *                              could be a pointer into a subset of a larger descriptor 
-     *                              that contains all the candidates. Note that only the 
-     *                              first EMaxCandidates of aBuffer will be used. 
-     *                              Length must be > 0.
-     */
-    void SetCandidateBuffer(const TDesC& aBuffer);
-
-    /**
-     * This function sets the highlighted status of the pane for rendering purposes. 
-     * If the Pane is highlighted it displays the current selected Candidate, 
-     * plus numbers with each of the other Candidates. 
-     * 
-     * @param aHighlighted ETrue if the highlight is to be set
-     *                                  EFalse if the highlight is to be removed
-     */
-    void SetHighlighted(TBool aHighlighted);
-
-    /**
-     * This function returns the highlighted status of the Pane.
-     *
-     * @return ETrue if highlight was set
-     *              EFalse if highlight was not set
-     *
-     */
-    TBool Highlighted() const;
-
-    /**
-     * Set the candidate mode for the specified candidate. This is used for 
-     * setting the colour of the font for components in stroke mode
-     *
-     * @param aMode the new mode
-     */
-    void SetCandidateMode(TInt aIndex, TCandidateMode aMode);
-
-    /**
-     * Get the candidate mode for the specified candidate.
-     *
-     * @return aMode the new mode
-     */
-    TCandidateMode CandidateMode(TInt aIndex);
-
-    /**
-     * are the Horizontal Scroll Arrows enabled?
-     *
-     * @return if arrows not enabled, returns EFalse
-     */
-    TBool IsShowHorizontalScrollArrows() const;
-
-    /**
-     * enable/disable the rendering of the Horizontal Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    void ShowHorizontalScrollArrows(TBool aValue);
-
-
-    /**
-     * enable/disable the rendering of the up Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    void ShowUpScrollArrows(TBool aValue);
-
-    /**
-     * enable/disable the rendering of the down Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    void ShowDownScrollArrows(TBool aValue);
-    
-     /**
-     * enable/disable the rendering of the left Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    void ShowLeftScrollArrows(TBool aValue);
-    
-        /**
-     * enable/disable the rendering of the right Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    void ShowRightScrollArrows(TBool aValue);
-
-    /**
-     * are the Vertical Scroll Arrows enabled?
-     *
-     * @return if arrows not enabled, returns EFalse
-     */
-    TBool IsShowVerticalScrollArrows() const;
-
-    /**
-     * enable/disable the rendering of the Vertical Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    void ShowVerticalScrollArrows(TBool aValue);
-
-    /**
-     * enable/disable the rendering of the candidate ordinal numbers
-     *
-     * @param aValue if ETrue, enable the ordinals
-     *                          if EFalse, disable the ordinals
-     *
-     */
-    void ShowCandidateOrdinals(TBool aValue);
-
-    /**
-     * enable/disable the rendering of the candidate ordinal numbers
-     *
-     * @return if not shown, return EFalse
-     */
-    TBool IsShowCandidateOrdinals() const;
-
-    /**
-     * This function returns the number of Candidates that are visible in the pane 
-     * in its current configuration.
-     *
-     * @return number of candidates that are currently visible
-     */
-    TInt VisibleCandidateCount() const;
-
-    /**
-     * This function sets the number of candidates that are visible. 
-     * This will affect the size of the control as determined by the layout. 
-     *
-     * @param aCount the new visible count, 
-     *              must be 1 <= aCount <= EMaxCandidates
-     */
-    void SetVisibleCandidateCount(TInt aCount);
-
-    /**
-     * Select the first visible item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    TBool SelectFirst();
-
-    /**
-     * Select the first visible phrase item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    TBool SelectFirstPhrase();
-    
-    /**
-     * Select the last visible item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    TBool SelectLast();
-
-    /**
-     * Select the last visible phrase item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    TBool SelectLastPhrase();
-
-    /**
-     * Select the next visible item
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if already on last visible item
-     */
-    TBool SelectNext();
-    /**
-     * Select the previous visible item
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if already on first visible item
-     */
-    TBool SelectPrev();
-
-    /**
-     * This function selects the given index. 
-     * <p> Note that if the new selected index is within the visible count, 
-     * but falls on a candidate that is not valid (i.e. if it falls outside the
-     * length of the candidate buffer) then nothing happens and EFalse is returned
-     *
-     * @param aIndex If aIndex falls outside length of candidate buffer, 
-     *                          then return EFalse to indicate failure. 
-     * @return ETrue if index was valid, EFalse if index not valid
-     */
-    TBool SelectIndex(TInt aIndex, TBool selected = ETrue);
-
-    /**
-     * This function returns the selected index of the Candidate Pane. 
-     * 
-     * @return the index of the selected item. If the Pane is not highlighted it returns 0.
-     *
-     */
-    TInt SelectedIndex() const;
-
-    /**
-     * This function returns the character at index of the current selection
-     *
-     * @return a descrptor containing the character that is currently selected.
-     *              If the currect selection falls outside the length of the current buffer,
-     *              then return a null descriptor
-     *
-     */
-    TPtrC CurrentCandidate() const;
-    /**
-     * This function returns the phrase at index of the current selection
-     *
-     * @return a descrptor containing the character that is currently selected.
-     *              If the currect selection falls outside the length of the current buffer,
-     *              then return a null descriptor
-     *
-     */
-    TPtrC CurrentPhraseCandidate() const;
-	/**
-	*	This  function calculate the input pane's size for phrase input layout
-	*   @return input pane's size
-	*   
-	*/
-	TInt LabelTextWidthInPixels(TInt aIndex);
-	/**
-	*	Set layout 
-	*   @param aPaneLayout the new panelayout
-	*   
-	*/
-	void SetPaneLayout(CAknFepUICtrlContainerChinese::TPaneLayout aPaneLayout);
-    /**
-	*	Split phrase candidates into pages 
-	*/
-    void SplitPhraseCandidatesIntoPages();
-  
-    /**
-	*	Navigate to next page 
-	*/
-    void NextCandidatePage(void);
-   
-    /**
-	*	Navigate to previous page 
-	*/
-    void PreviousCandidatePage(void);
-
-    /**
-	*	Return candidate array 
-	*/
-    CDesCArrayFlat* CandidateArray(void);
-
-    /**
-	*	Set phrase candidate buffer
-	*/
-    void SetCandidateBuffer(void);
-	
-	/**
-	*	Reset candidate pane state and variables
-	*/
-	void ResetCandidateState();
-	
-	/**
-	 *	To test whether current page is the first page
-	 */
-	TBool IsFirstPage();
-	
-	/**
-	 *	To test whether current page is the last page
-	 */
-	TBool IsLastPage();
-	
-	/**
-     *  To set all the cnadidate label invisible(phrase creation)
-     */
-    void SetInVisiable();
-	/**
-	 *	To test whether need to get new candidate page
-	 */
-	TBool NeedGetNewCandidatePage();
-	
-public: // from CCoeControl
-    /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     * 
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     *
-     */
-    virtual void Draw(const TRect& aRect) const;
-    
-    
-    //Bug Fixing for ESSG-7P5CSZ
-    void Enable(TBool aEnable);
-
-protected:
-    /**
-     * second phase construction
-     */
-    void ConstructL(RWindow& aParent);
-
-    /**
-     * Construct all the bitmap classes
-     */
-    void ConstructBitmapsL();
-
-    /**
-     * constructor
-     */
-    CAknFepUICtrlCandidatePane( CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * layout the rectangles
-     */
-    void LayoutRects();
-
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the labels for a single candidate
-     */
-    void LayoutLabel(TInt aIndex);
-
-    /**
-     * layout the labels for all the candidates (even those that are not currently visible)
-     */
-    void LayoutLabels();
-
-    /**
-     * layout selected candidate
-     * <p> Note that there is only one instance, as there can 
-     * only be one selected candidate at a time. Therefore, the control
-     * is placed in the position that is correct based on the current selection
-     *
-     * @param aIndex the index of the new position of the selected candidate
-     *
-     */
-    void LayoutCandidateSelected();
-
-    /**
-     * set label vilisibilty, according to the current pane layout
-     */
-    void UpdateLabelVisibility();
-
-    /**
-     * draw background color 
-     *
-     * @param aRect rect in which to draw
-     */
-    void DrawBackground(const TRect& aRect) const;
-
-    /**
-     * Internal candidate paging function,
-     * Only paging once per call.
-     * 
-     */
-    void InternalSpilitPhraseCandidate();
-
-private: // the following are owned
-    CAknFepUICtrlCandidateSelected* iCandidateSelected;
-    CFbsBitmap* iNaviArrowBitmapLeft;
-    CFbsBitmap* iNaviArrowBitmapLeftMask;
-    CFbsBitmap* iNaviArrowBitmapRight;
-    CFbsBitmap* iNaviArrowBitmapRightMask;
-    CFbsBitmap* iNaviArrowBitmapUp;
-    CFbsBitmap* iNaviArrowBitmapUpMask;
-    CFbsBitmap* iNaviArrowBitmapDown;
-    CFbsBitmap* iNaviArrowBitmapDownMask;
-private: // the following need resetting
-    RPointerArray<CEikLabel> iCandidateLabelArray;
-    RPointerArray<CEikLabel> iOrdinalLabelArray;
-    RArray<TCandidateMode> iCandidateModeArray;
-private: // the following are members
-    CAknFepUiLayoutDataMgr* iLafDataMgr;
-    TAknLayoutRect iIndiFepArrowLeft;
-    TAknLayoutRect iIndiFepArrowRight;
-    TAknLayoutRect iIndiFepArrowUp;
-    TAknLayoutRect iIndiFepArrowDown;
-    TBufC<EMaxCandidates> iBuffer;
-    CAknFepUICtrlContainerChinese::TPaneLayout iPaneLayout;
-    TInt iVisibleCount;
-    TInt iSelected;
-    TBool iHighlighted;
-    TBool iShowHorizontalScrollArrows;
-    TBool iShowVerticalScrollArrows;
-    TBool iShowUpScrollArrows;
-    TBool iShowDownScrollArrows;
-    TBool iShowLeftScrollArrows;
-    TBool iShowRightScrollArrows;
-    TBool iShowCandidateOrdinals;
-    RArray<TPage> iPages;
-    //next paging candidate index
-    TInt iUnpagedIndex;
-    TInt iCurDisplayPage;
-    CDesCArrayFlat* iCandidateArray;
-    TInt iOrdinalLableWidth;
-    };
-
-#endif //__AKN_FEP_AVKON_CANDIDATE_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidateSelected.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +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 CAknFepUICtrlCandidateSelected definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-#define __AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-
-#include <e32std.h>
-#include <coecntrl.h>
-
-#include "AknFepUICtrlCandidatePane.h"
-
-class CEikLabel;
-
-/**
- * Control representing the selected candidate. Is a window owning control,
- * that appears over the candidate pane such that it obscures the labels
- * beneath. Can be hidden, for example if there is no visible selection, 
- * or if highlighting is disabled.
- */
-NONSHARABLE_CLASS(CAknFepUICtrlCandidateSelected) : public CCoeControl
-    {
-public:
-    enum
-        {
-		EOneCandidate = 1,
-        EMaxSelectedCandidateLength = 10 // extend buffer for phrase input
-        };
-public:
-
-    /**
-     * first phase construction
-     */
-    static CAknFepUICtrlCandidateSelected* NewL(RWindowTreeNode& aParent);
-
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlCandidateSelected();
-
-    /**
-     * Set the text buffer of the Pane.
-     *
-     * @param aCharacter, the label will be filled with the characters from aCharacter
-     */
-    void SetText(TPtrC aCharacter);
-    
-    /**
-     * Set the ordinal of the Pane.
-     *
-     * @param aOrdinal
-     */
-    void SetOrdinal(TInt aOrdinal);
-
-    /**
-     * This function sets the candidate mode of the pane for rendering purposes.
-     *
-     * @param aMode the new mode
-     */
-    void SetCandidateMode(MAknFepUICtrlCandidatePane::TCandidateMode aMode);
-
-	/**
-	* Set layout
-	* @param aLayout the new layout
-	*/
-	void SetLayout(MAknFepUICtrlContainerChinese::TPaneLayout aLayout);
-	/**
-	* Set ordinal status
-	* @param aValue the new status
-	*/
-	void ShowOrdinal(TBool aValue);
-
-public: // from CCoeControl
-    /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     */
-    virtual void Draw(const TRect& aRect) const;
-
-protected:
-    /**
-     * second phase construction
-     */
-    void ConstructL(RWindowTreeNode& aParent);
-
-     /**
-      * constructor
-      */
-    CAknFepUICtrlCandidateSelected();
-
-    /**
-     * layout the rectangles
-     */
-    void LayoutRects();
-
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the background frames
-     *
-     * @param aOuterRect filled with outer rect coords
-     * @param aInnerRect filled with inner rect coords
-     *
-     */
-    void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
-
-    /**
-     * set label vilisibilty, according to the current pane layout
-     */
-    void UpdateLabelVisibility();
-
-private:
-    TAknLayoutRect iRectShadow;
-    TAknLayoutRect iRectHighlight;
-	TBufC<EMaxSelectedCandidateLength> iBuffer;
-    MAknFepUICtrlCandidatePane::TCandidateMode iCandidateMode;
-    TInt iIndex;
-    MAknFepUICtrlContainerChinese::TPaneLayout iPaneLayout;
-	TBool iShowOrdinal;
-private: // the following are owned
-    CEikLabel* iCandidateLabel;
-    CEikLabel* iOrdinalLabel;
-    };
-
-#endif //__AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +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 CAknFepUICtrlContainerChinese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
-#define __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
-
-#include <AknFepUiCtrlContainerChinese.h>
-#include <coecntrl.h>
-#include <AknUtils.h>
-
-class CAknsFrameBackgroundControlContext;
-class CAknFepUICtrlInputPane;
-class CAknFepUICtrlCandidatePane;
-class CAknFepUICtrlPinyinPopup;
-class CAknFepUICtrlPinyinEEP;
-class MAknFepManagerUIInterface;
-class CAknFepUiLayoutDataMgr;
-
-class MAknFepUICtrlPinyinPopupSizeChangedObserver
-    {
-public:
-    /// this is called when the selection popup changes size
-    virtual void SelectionPopupSizeChanged(TInt aNumLines) = 0;
-
-    /// this is called when the popup is enabled
-    virtual void SelectionPopupEnabled(TBool aEnabled) = 0;
-    };
-
-NONSHARABLE_CLASS(CAknFepUICtrlContainerChinese)
-    : 
-    public CCoeControl, 
-    public MAknFepUICtrlPinyinPopupSizeChangedObserver,
-    public MAknFepUICtrlContainerChinese
-{
-public:
-    /**
-     * first phase construction
-     */
-    static CAknFepUICtrlContainerChinese* NewL();
-
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlContainerChinese();
-
-    /**
-     * get the input pane
-     *
-     * @return pointer to the input pane, ownership is not passed
-     */
-    MAknFepUICtrlInputPane* InputPane() const;
-
-    /**
-     * get the candidate pane
-     *
-     * @return pointer to the candidate pane, ownership is not passed
-     */
-    MAknFepUICtrlCandidatePane* CandidatePane() const;
-
-    /**
-     * get the phrase pinyin popup window 
-     *
-     * @return pointer to the phrase popup window, ownership is not passed
-     */
-    MAknFepUICtrlPinyinPopup* PinyinPopupWindow() const;
-
-    /**
-     * 
-     * get the pinyin phrase creation popup window 
-     * 
-     * @return pointer to the pinyin phrase popup window, ownership is not passed
-    */
-    MAknFepUICtrlEditPane* EditPaneWindow() const;    
-    
-    /**
-     * Is the control displayed on the screen?
-     *
-     * @return if not enabled, returns EFalse
-     *
-     */
-    TBool IsEnabled() const;
-	 /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     *
-     */
-    void Enable(TBool aEnable);
-
-    /**
-     * Arrange the constituent panes into the correct proportions for 
-     * the required layout. 
-     *
-     * @param aPaneLayout the required layout
-     *
-     */
-    void SetLayout(TPaneLayout aPaneLayout);
- 
-
-    /**
-     * Set the Highlight to the desired control.
-     *
-     * @param aValue if aValue is ETrue set the focus to the Candidate Pane.
-     *                          if aValue is EFalse set focus to the Chinese Input Pane 
-     */
-    void FocusCandidatePane(TBool aValue);
-
-    /**
-     * enable/disable the rendering of the Horizontal Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    void ShowHorizontalScrollArrows(TBool aValue);
-    
-    /**
-     * enable/disable the rendering of the Vertical Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    void ShowVerticalScrollArrows(TBool aValue);
-
-    /**
-     * Call this method if the fep is being displayed for a control that is 
-     * contained in a popup window (i.e. a Query). It changes the layout 
-     * of the container.
-     *
-     * @param aValue if ETrue, use the layout for display with a query
-     *                          if EFalse, use the normal layout
-     */
-    void SetIsShownWithPopupWindows(TBool aValue);
-
-     /**
-     * This function sets cursor position.
-     *
-     * @param aCurPos containing the cursor position 
-     * @param aHeight containing font height
-     */
-    void SetContainerPosition(TPoint aCurPos,TInt aHeight);
-    
-    /**
-     * Set Candidate and pinyin popup invisible
-     *
-     */
-    void SetControlInVisible( TBool aVisible ); 
-    
-    /**
-     * Set the state to phrase creation
-     */
-    void PhraseCreation( TBool aPhraseCreation );
-    
-    /**
-     * Is the state is in phrase creation
-     *
-     * @return if not enabled, return EFalse
-     */
-    TInt& IsPhraseCreation();
-    
-    /**
-     * Set FepMan
-     *
-     * @return if not enabled, return EFalse
-     */
-    void SetFepMan( MAknFepManagerUIInterface* aFepMan );
-
-public: // from CCoeControl
-
-    /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     * 
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     *
-     */
-    virtual void Draw(const TRect& aRect) const;
-
-    virtual void HandleResourceChange(TInt aType); 
-	
-protected: // From CCoeControl
-    TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
-public: // from MAknFepUICtrlPinyinPopupSizeChangedObserver
-
-    /**
-     * called when the popup window changes size, so that it can be 
-     * laid out correctly
-     *
-     * @param aNumLines the number of visible lines
-     */
-    void SelectionPopupSizeChanged(TInt aNumLines);
-
-    /**
-     * the popup has been enabled or disabled, so change layout where necessary 
-     *
-     * @param aEnabled ETrue if popup has been enabled
-     *                              EFalse if popup has been disabled
-     */
-    void SelectionPopupEnabled(TBool aEnabled);
-protected:
-
-    /**
-     * second phase construction
-     */
-    void ConstructL();
-
-    /**
-     * constructor
-     */
-    CAknFepUICtrlContainerChinese();
-
-    /**
-     * layout this control relative to the control pane (aka the CBA).
-     */
-    void LayoutContainer();
-    /**
-     * layout the rectangles
-     */
-    void LayoutRects();
-	/**
-     * layout entry pane
-     */
-	void LayoutInputPane();
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the popup window
-     */
-    void LayoutPinyinPopupWindow();
-    
-    /**
-     * layout the EEP window
-     */
-    void LayoutPinyinEEPWindow();
-
-    /**
-     * set control vilisibilty, according to the current pane layout
-     */
-    void SetControlVisibility();
-
-    /**
-     * return the layout as an index that can be passed to the 
-     * layout dll 
-     *
-     * @return index into layout macro
-     */
-    TInt ConvertLayoutToIndex() const;
-
-    /**
-     * layout the background frames
-     */
-	void LayoutFrames();
-
-    /**
-     * layout the background frames
-	 *
-	 * @param aOuterRect filled with outer rect coords
-	 * @param aInnerRect filled with inner rect coords
-	 *
-     */
-	void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;    
-
-private:
-    CAknFepUiLayoutDataMgr* iLafDataMgr;
-    CAknFepUICtrlInputPane* iInputPane;
-    CAknFepUICtrlCandidatePane* iCandidatePane;
-	CAknFepUICtrlPinyinPopup* iPinyinPopupWindow;
-	CAknFepUICtrlPinyinEEP* iEditPane;
-	CAknsFrameBackgroundControlContext* iBgContext; 
-
-private:
-	TBool iEnabled;
-	TPaneLayout iPaneLayout;
-    TBool iIsShownWithPopupWindows;
-	// input pane
-	TAknLayoutRect iRectCoverMainPaneInput;
-    TAknLayoutRect iRectFirstShadowInput;
-    TAknLayoutRect iRectOutlineFrameInput;
-    TAknLayoutRect iRectInsideAreaInput;
-    TAknLayoutRect iHorizLine; //line between input pane and candidate pane
-    TAknLayoutRect iEEPFirstHorizLine; //line between input pane and EEP pane
-    TAknLayoutRect iEEPSecondHorizLine;////line between input pane and candidate pane when EEP exist
-    TPoint iContainerPosition;
-    TBool isPCLPosed;
-    TBool iPhraseCreationLaf;
-    
-    TInt iPhraseCreation;
-    MAknFepManagerUIInterface* iFepMan;
-};
-#endif  // __AKN_FEP_UI_AVKON_CONTAINER_CHINESE_H__
-
-// End of file
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlContainerJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-/*
-* Copyright (c) 2003 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 CAknFepUICtrlContainerJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_AVKON_CONTAINER_JAPANESE_H__
-#define __AKN_FEP_UI_AVKON_CONTAINER_JAPANESE_H__
-
-// INCLUDES
-#include <AknFepUICtrlContainerJapanese.h>
-#include <badesca.h>
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATION
-
-// CLASS DECLARATION
-class CAknFepUIManagerJapanese;
-
-/**
- * Container for the Japanese Candidate Pane and the Predictive Candidate Pane.
- *
- * @lib AknFep.lib
- * @since 2.6
- */
-NONSHARABLE_CLASS(CAknFepUICtrlContainerJapanese)
-    : 
-    public CBase,
-    public MAknFepUICtrlContainerJapanese
-    {
-public: // Constructer and Destructor
-    /**
-     * first phase construction
-     * @since 2.6
-     * @param aUiMng
-     * @return 
-     */
-    static CAknFepUICtrlContainerJapanese* NewL(CAknFepUIManagerJapanese* aUiMng);
-
-    /**
-     * Destructor.
-     */
-    ~CAknFepUICtrlContainerJapanese();
-
-public: // New faunctions
-    /**
-     * @since 2.6
-     * @param aId
-     * @return
-     */
-    MAknFepUICtrlCandidatePaneInterface* CandidatePane(TAknFepUICtrlCandidatePaneId aId);
-
-private:
-    /**
-     * private c++ constructor.
-     * @since 2.6
-     */
-    CAknFepUICtrlContainerJapanese();
-
-    /**
-     * Second phase construction
-     * @since 2.6
-     * @param aUiMng
-     */
-    void ConstructL(CAknFepUIManagerJapanese* aUiMng);
-
-private: // Data
-    CArrayPtrFlat<MAknFepUICtrlCandidatePaneInterface>*     iCandidatePaneArray;
-    };
-
-#endif // __AKN_FEP_UI_AVKON_CONTAINER_JAPANESE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSetting.hrh	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEPDUALLANGUAGESETTING_HRH_
-#define __AKNFEPDUALLANGUAGESETTING_HRH_
-
-
-enum TAknFepDualLanguageSettingDualInput
-    {
-    EAknFepDualLanguageSettingDualInputPrimary,
-    EAknFepDualLanguageSettingDualInputSecondary
-    };
-#endif
\ No newline at end of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingData.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEPDUALLANGUAGESETTINGDATA_H
-#define __AKNFEPDUALLANGUAGESETTINGDATA_H
-
-#include <e32base.h>
-#include <badesca.h>
-#include <aknsettingitemlist.h>
-
-/**
- * Class: 		CAknFepDualLanguageSettingData
- *
- * Discussion:	An aggregate class containing data for all editing controls
- *				This class is used as a central respository for all data
- *				to be displayed and editted within this app.
- */
-class CAknFepDualLanguageSettingData : public CBase
-{
-public:
-	/**
- 	* Function: 	NewL
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepDualLanguageSettingData
-	*
- 	* Returns:		A newly created instance of CAknFepDualLanguageSettingData with all data
- 	*				items valid
-	*/
-	static CAknFepDualLanguageSettingData* NewL();
-
-	/**
- 	* Function: 	NewLC
-	*
- 	* Discussion:	Factory function used to create a new instance of
- 	* 				CAknFepDualLanguageSettingData and leave a pointer to it on the cleanup
- 	*				stack
-	*
- 	* Returns:		A newly created instance of CAknFepDualLanguageSettingData with all data
- 	*				items valid
-	*/
-	static CAknFepDualLanguageSettingData* NewLC();
-
-	/**
-	* Function:		~CAknFepDualLanguageSettingData
-	*
-	* Discussion: 	Virtual destructor for CCAknFepDualLanguageSettingData. Ensures that all
-	*				allocated memory is returned to the heap before deletion
-	* 				of object.
-	*
-	*/
-	virtual ~CAknFepDualLanguageSettingData();
-
-    /**
-    * Function:    LoadL
-    * 
-    * Discussion:  Loads itself with parameters passed.
-    * 
-    */
-	void LoadL(CDesCArrayFlat* aItems,
-	           CDesCArrayFlat* aSecondaryItems,
-	           TInt aCurrentValue,
-	           TInt aCurrentSecondaryValue);
-
-    
-    /**
-    * Function:     SaveL
-    * 
-    * Discussion:   Saves itself.
-    * 
-    */
-	void SaveL() const;
-    
-	/**
- 	* Function: 	Items
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iItems member
-	*/
-	inline CDesCArrayFlat* Items() {return iItems; }
-	
-	/**
- 	* Function: 	SecondaryItems
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iSecondaryItems member
-	*/
-	inline CDesCArrayFlat* SecondaryItems() { return iSecondaryItems; }
-
-	/**
- 	* Function: 	CurrentValue
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iCurrentValue member
-	*/
-	inline TInt& CurrentValue() {return iCurrentValue; }
-
-	/**
- 	* Function: 	CurrentSecondaryValue
-	*
- 	* Discussion:	Trivial accessor function
-	*
- 	* Returns:		A reference to the iCurrentSecondaryValue member
-	*/
-	inline TInt& CurrentSecondaryValue() {return iCurrentSecondaryValue; }
-	
-private:
-	/**
-	* Function:		CAknFepDualLanguageSettingData
-	*
-	* Discussion: 	Hidden, first-stage non-leaving constructor.
-	*
-	*/
-    CAknFepDualLanguageSettingData();
-
-	/**
-	* Function:		ConstructL
-	*
-	* Discussion: 	Hidden, second-stage possibly-leaving constructor.
-	*
-	*/
-	void ConstructL();
-
-
-public:
-    CDesCArrayFlat* iItems;
-    CDesCArrayFlat* iSecondaryItems;
-    TInt iCurrentValue;
-    TInt iCurrentSecondaryValue;    
-};
-
-#endif // __AKNFEPDUALLANGUAGESETTINGDATA_H
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingDialog.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEPDUALLANGUAGESETTINGDIALOG_H
-#define __AKNFEPDUALLANGUAGESETTINGDIALOG_H
-
-#include <AknDialog.h>
-#include "AknFepUIAvkonCtrlDualLanguageSettingList.h"
-#include "AknFepUIAvkonCtrlDualLanguageSettingData.h"
-
-class CAknFepDualLanguageSettingModel;
-
-class CAknFepDualLanguageSettingDialog : public CAknDialog
-{
-    public:
-        static CAknFepDualLanguageSettingDialog* NewL(TInt aMenuResId);
-        static CAknFepDualLanguageSettingDialog* NewLC(TInt aMenuResId);
-        virtual ~CAknFepDualLanguageSettingDialog();
-        
-        virtual SEikControlInfo CreateCustomControlL(TInt aControlType);
-        virtual CAknFepDualLanguageSettingDialog::TFormControlTypes ConvertCustomControlTypeToBaseControlType(TInt aControlType) const;
-
-        virtual TBool OkToExitL(TInt aButtonId);
-        virtual void ProcessCommandL(TInt aCommandId);
-        void EditItemL(TBool aCalledFromMenu);
-        
-    private:
-        CAknFepDualLanguageSettingDialog();
-        void ReadSettingsDataL();
-        void SaveSettingsDataL() const;
-        
-        TInt  iPredictiveTextFlag;
-        
-    protected:
-    CAknFepDualLanguageSettingList*   iSettingsList;
-    CAknFepDualLanguageSettingData*   iLangData;
-    CAknFepDualLanguageSettingModel*          iModel;
-    CArrayFixFlat<TInt>*   iLanguages;
-    CArrayFixFlat<TInt>*   iSecondaryLanguages;
-};
-#endif //__AKNFEPDUALLANGUAGESETTINGDIALOG_H
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingList.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEPDUALLANGUAGESETTINGLIST_H
-#define __AKNFEPDUALLANGUAGESETTINGLIST_H
-
-
-#include <coecntrl.h>
-#include <aknsettingitemlist.h> 
-#include <akncheckboxsettingpage.h>
-#include "AknFepUIAvkonCtrlDualLanguageSettingModel.h"
-#include "AknFepUIAvkonCtrlDualLanguageSettingData.h"
-
-class CAknFepDualLanguageSettingDialog;
-
-class CAknFepDualLanguageSettingItem : public CAknEnumeratedTextPopupSettingItem
-    {
-public:
-    CAknFepDualLanguageSettingItem( TInt aResourceId, TBool aPrimary, CAknFepDualLanguageSettingData* aData );
-    virtual ~CAknFepDualLanguageSettingItem();
-protected:
-    virtual void CompleteConstructionL();
-private:
-    CAknFepDualLanguageSettingData* iData;
-    TBool iPrimary;
-    };
-
-/**
- * Class: CAknFepDualLanguageSettingList
- *
- * Discussion:  A specialised subclass of CAknSettingItemList. This class is
- *              the control used to both display the current values of the
- *              settings and to launch the relevant editor for those items.
- *
- */
-class CAknFepDualLanguageSettingList : public CAknSettingItemList
-    {
-public:
-    /**
-    * Function:     NewL
-    *
-    * Discussion:   Factory function used to create a new instance of
-    *               CAknFepDualLanguageSettingList
-    *
-    * Params:       aData - reference to the data to be displayed and edited.
-    *
-    * Returns:      A newly created instance of CAknFepDualLanguageSettingList
-    */
-    static CAknFepDualLanguageSettingList* NewL(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog);
-
-    /**
-    * Function:     NewLC
-    *
-    * Discussion:   Factory function used to create a new instance of
-    *               CAknFepDualLanguageSettingList and leave a pointer to it on the
-    *               cleanup stack.
-    *
-    * Params:       aData - reference to the data to be displayed and edited.
-    *
-    * Returns:      A newly created instance of CAknFepDualLanguageSettingList
-    */
-    static CAknFepDualLanguageSettingList* NewLC(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog);
-
-    /**
-    * Function:     ~CAknFepDualLanguageSettingList
-    *
-    * Discussion:   Virtual destructor for CAknFepDualLanguageSettingList. Ensures that
-    *               all allocated memory is returned to the heap before
-    *               deletion of object.
-    *
-    */
-    virtual ~CAknFepDualLanguageSettingList();
-
-
-    /**
-    * Function:     SizeChanged
-    *
-    * Discussion:   Inherited from CCoeControl. Calculates size based on
-    *               contained control required sizes.
-    *
-    */
-    void SizeChanged();
-
-    /**
-     * Function:    EditCurrentItemL
-     * Params:      aCalledFromMenu - ETrue if called from menu, EFalse otherwise.
-     *
-     *
-     * Discussion:  Starts the setting page for the currently selected item 
-     *              in the list.
-     */
-    void EditCurrentItemL(TBool aCalledFromMenu);
-    
-    // Toggle whether secondary input item is visible
-    void HideSecondaryInputL(TBool aHidden);
-    
-private:
-    /**
-    * Function:     CAknFepDualLanguageSettingList
-    *
-    * Discussion:   Hidden, first-stage non-leaving constructor.
-    *
-    * Params:       aData - reference to the data to be displayed and edited.
-    *
-    */
-    CAknFepDualLanguageSettingList(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog);
-
-    /**
-    * Function:     CreateSettingItemL
-    *
-    * Discussion:   Factory function for creating CAknSettingItem derived
-    *               SettingItem classes used t display current values
-    *
-    * Params:       aSettingId - the id of the control which should be created
-    *
-    */
-    CAknSettingItem* CreateSettingItemL (TInt aSettingId);
-    
-    void HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType);
-
-private:
-    CAknFepDualLanguageSettingData* iData;
-	CAknFepDualLanguageSettingDialog* iDialog;
-    TInt iPrimaryValue;
-    TInt iSecondaryValue;
-    };
-
-#endif // __AKNFEPDUALLANGUAGESETTINGLIST_H
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlDualLanguageSettingModel.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEPDUALLANGUAGESETTINGMODEL_H_
-#define __AKNFEPDUALLANGUAGESETTINGMODEL_H_
-
-#include    <e32base.h>
-#include <BADESCA.H> //CDesCArray
-#include <coemain.h> //For CCoeEnv
-#include <centralrepository.h>
-
-class CAknFepDualLanguageSettingModel : public CBase
-    {
-public:
-    static CAknFepDualLanguageSettingModel* NewL();
-    enum TLanguageType
-                {                
-                // Writing language
-                EAknFepDualLanguageSettingInputLanguage,
-                // Secondary writing language
-                EAknFepDualLanguageSettingInputLanguageSecondary
-                };
-    void GetSecondaryInputLanguagesL(
-                  CArrayFix<TInt>* aSeedLanguages,
-                  CDesCArray* aLanguageNames,
-                  CCoeEnv* aCoeEnv);
-    void ShowDualInputLanguageSettingListL(CCoeEnv* aCoeEnv);
-    
-    void GetLanguagesFromPtiL(
-        CArrayFix<TInt>* aInstalledLangCodes,
-        CArrayFix<TInt>* aSeedLanguages,
-        CDesCArray* aLanguageNames );
-    TInt LanguageL( TLanguageType aType );
-    TBool SetLanguageL( TLanguageType aType, TInt aLanguage );
-    
-    /*
-    * Returns Bool value according to predictive dictionary availability.
-    * PTI Engine used for lang avaibility retrieving
-    * @return ETrue: no errors
-    *         EFalse: an error has occurred
-    * @since 2.6
-    */
-    TBool CheckDictionaryFromPtiL(TInt aLangCode );
-    ~CAknFepDualLanguageSettingModel();
-private:
-    CAknFepDualLanguageSettingModel(){};
-    void ConstructL();
-private:
-    CRepository* iAknFepRepository;
-    };
-#endif //__AKNFEPDUALLANGUAGESETTINGMODEL_H_
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlInputPane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,283 +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 CAknFepUICtrlInputPane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_AVKON_INPUT_PANE_H__
-#define __AKN_FEP_AVKON_INPUT_PANE_H__
-
-#include <AknFepUICtrlInputPane.h>
-#include <coecntrl.h>
-#include <AknUtils.h>
-
-#include "AknFepUIAvkonCtrlContainerChinese.h"
-class CEikLabel;
-class CAknsFrameBackgroundControlContext;
-
-
-/**
- * pane in which the user's input is shown
- */
-NONSHARABLE_CLASS(CAknFepUICtrlInputPane) : public CCoeControl, public MAknFepUICtrlInputPane
-    {
-public:
-    /**
-     * first phase construction
-     *
-     * @param aParent parent window
-     * @param aPaneLayout the required layout
-     *
-     */
-    static CAknFepUICtrlInputPane* NewL(RWindow& aParent, 
-                                        TInputPaneLayout aPaneLayout,
-                                        CAknFepUiLayoutDataMgr* aLafDataMgr);
-
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlInputPane();
-	
-	 /**
-     * set the observer
-     * <p> Note that only one observer is supported!
-     *
-     * @param aObserver pointer to the observer
-     */
-
-    void SetSizeChangedObserver(MAknFepUICtrlPinyinPopupSizeChangedObserver* aObserver);
-
-    /**
-     * Set the text buffer of the pane.
-     *
-     * @param aDes, the label will be filled with the first N characters from aDes,
-     *                              where N=EMaxInputCharsNotIncludingToneMark
-     *
-     */
-    void SetText(const TDesC& aDes);
-
-    /**
-     * Get the text buffer of the pane
-     *
-     * @output aText the buffer is filled with the contents of the candidate
-     *              of the pane, up to the size of the buffer
-     */
-    void GetText(TDes& aText) const;
-
-    /**
-     * This function sets the highlighted status of the pane for rendering purposes.
-     *
-     * @param aHighlighted whether or not the input pane has the highlight
-     */
-    void SetHighlighted(TBool aHighlighted);
-
-    /**
-     * This function returns the highlighted status of the Pane.
-     *
-     * @return whether the pane is highlighted
-     */
-    TBool Highlighted() const;
-
-    /**
-     * This function sets the Tone Mark for the Pane.
-     *
-     * @param aToneMark descriptor containing the tone mark character
-     */
-    void SetToneMark(const TDesC& aToneMark);
-
-    /**
-     * This function gets the Tone Mark for the Pane.
-     *
-     * @output aToneMark descriptor containing the tone mark character
-     */
-    void GetToneMark(TDes& aToneMark) const;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     */
-    void SetToneMarkValidity(TBool aValid);
-
-    /**
-     * sets the layout index to use when accessing the 
-     * layout dll
-     */
-    void SetLayoutIndex(TInt aIndex);
-
-    /**
-     * sets the font to be used, which will override the font from LAF
-     *
-     * @param aFontId the new font id, pass in 0 to use the one from LAF
-     *
-     */
-    void SetOverrideFontId(TInt aFontId);
-
-    /**
-     * This function determines whether the current text is shown or not
-     *
-     * @param aValid if ETrue, text will be displayed
-     *                          if EFalse, text will be displayed
-     */
-    void MakeTextVisible(TBool aVisible);
-	/**
-	*	This  function calculate the input pane's size for phrase input layout
-	*   @return input pane's size
-	*   
-	*/
-	TInt LabelTextWidthInPixels() const;
-
-    /**
-    * Set,clear and check phonetic change status (for phrase input)
-    */
-    inline void SetFlag(TInt aFlag);
-    inline void ClearFlag(TInt aFlag);
-    inline TBool IsFlagSet(TInt aFlag) const;
-    
-    void SetLayout( TInputPaneLayout aPaneLayout );
-    
-
-public: // from CCoeControl
-    /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     * 
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     *
-     */
-    virtual void Draw(const TRect& aRect) const;
-
-protected:
-
-    /**
-     * second phase construction
-     *
-     * @param aParent parent window
-     */
-    void ConstructL(RWindow& aParent);
-
-     /**
-      * constructor
-      *
-      * @param aPaneLayout the required layout
-      */
-    CAknFepUICtrlInputPane(TInputPaneLayout aPaneLayout, CAknFepUiLayoutDataMgr* aLafDataMgr);
-
-    /**
-     * Update the contents of the label, by combining
-     * the buffer with the tone mark
-     */
-    void UpdateLabelContents();
-
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the background frames
-     *
-     * @param aOuterRect filled with outer rect coords
-     * @param aInnerRect filled with inner rect coords
-     *
-     */
-    void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
-	
-private:
-
-    /**
-     * Get dispalying input text
-     *
-     * @param aDes Input text
-     */
-    TInt CalculateMaxTextLength(const TDesC& aDes) const;
-    
-    /**
-     * layout input text
-     *
-     * @param aDes Input text
-     */
-    TInt CalculateTextLength(const TDesC& aDes) const;
-	
-private:
-    TBool iHighlighted;
-    TInputPaneLayout iLayout;
-    TInt iLayoutIndex;
-    TInt iMaxInputChars;
-    TAknLayoutRect iUnselectedStringHighlight;
-    TBufC<EMaxToneMarkLength> iToneMarkBuffer;
-    TBool iToneMarkValidity;
-    TInt iFontId;
-    TInt iFlags;
-private: // the following are owned
-    HBufC* iBuffer;
-    CEikLabel* iLabel;
-    CEikLabel* iLabelToneMark;
-
-private: // the following are not owned
-    CAknFepUiLayoutDataMgr* iLafDataMgr;
-    MAknFepUICtrlPinyinPopupSizeChangedObserver* iSizeChangedObserver;
-    };
-
-inline void CAknFepUICtrlInputPane::SetFlag(TInt aFlag)
-    {
-    iFlags |= aFlag;
-    }
-
-inline void CAknFepUICtrlInputPane::ClearFlag(TInt aFlag)
-    {
-    iFlags &= ~aFlag;
-    }
-
-inline TBool CAknFepUICtrlInputPane::IsFlagSet(TInt aFlag) const
-    {
-    return iFlags & aFlag;
-    }
-
-#endif //__AKN_FEP_AVKON_INPUT_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateCellListBoxData.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESECANDIDATECELLLISTBOXDATA_H
-#define CAKNFEPUICTRLJAPANESECANDIDATECELLLISTBOXDATA_H
-
-// INCLUDES
-#include <eikfrlbd.h>   // CFormattedCellListBoxData
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapaneseCandidateHeadingPane class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseCandidateCellListBoxData)
-        : public CFormattedCellListBoxData
-    {
-    public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CAknFepUICtrlJapaneseCandidateCellListBoxData* NewL();
-
-    public: // Functions from CFormattedCellListBoxData
-        /**
-        * From CFormattedCellListBoxData Draw() is the most important method
-        * in CAknFepUICtrlJapaneseCandidateCellListBoxData.
-        * This is the only method that needs to be implemented in this class
-        * and it draws the whole list item.
-        * @since 2.6
-        * @param aProperties Properties attached to the list item
-        * @param aGc Graphics context used for drawing the list item
-        * @param aText a text string describing the list item cells
-        * @param aRect the area of the screen for the whole list item
-        * @param aHighlight whether the list item is selected
-        * @param aColors the colours used for drawing the item
-        */
-        virtual void Draw(TListItemProperties aProperties,
-                          CWindowGc& aGc,
-                          const TDesC* aText,
-                          const TRect& aRect,
-                          TBool aHighlight, 
-                          const TColors& aColors) const;
-
-        /**
-        * From CFormattedCellListBoxData DrawDefaultHighlight() is ...
-        * @since 2.6
-        * @param aGc 
-        * @param aItemRect
-        * @param aHighlight
-        */
-        void DrawDefaultHighlight(CWindowGc& aGc,
-                                  const TRect& aItemRect,
-                                  TBool aHighlight) const;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESECANDIDATECELLLISTBOXDATA_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateHeadingPane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESECANDIDATEHEADINGPANE_H
-#define CAKNFEPUICTRLJAPANESECANDIDATEHEADINGPANE_H
-
-// INCLUDES
-#include <aknPopupHeadingPane.h>    // CAknPopupHeadingPane
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapaneseCandidateHeadingPane class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseCandidateHeadingPane) : public CAknPopupHeadingPane
-    {
-    public:     // New functions
-        /**
-        * Set the parent window rect of heading pane
-        * @since 2.6
-        * @param aParentRect    parent window rect
-        */
-        void SetParentRect(const TRect& aParentRect);
-
-    public:     // Functions from CAknPopupHeadingPane
-        virtual void SizeChanged();
-
-    public:     // Functions from CCoeControl
-        virtual void ActivateL();
-
-    private:    // Functions from CCoeControl
-        TInt CountComponentControls() const;
-        CCoeControl* ComponentControl(TInt aIndex) const;
-
-    private:    // Functions from CAknPopupHeadingPane
-        void LayoutListHeadingPane();
-
-    private:    // Data
-        TRect iParentRect;
-
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESECANDIDATEHEADINGPANE_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateListbox.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESECANDIDATELISTBOX_H
-#define CAKNFEPUICTRLJAPANESECANDIDATELISTBOX_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapaneseCandidateListbox class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseCandidateListbox)
-        : public CAknSinglePopupMenuStyleListBox
-    {
-    public: // New functions
-        /**
-        * Set max digit number for listbox
-        * @since 2.6
-        * @param aMaximumColumns    max digit number
-        */
-        void SetMaximumColumns(const TInt aMaximumColumns);
-
-        /**
-        * Set max visible rows for listbox
-        * @since 3.0
-        * @param aMaximumRows    max visible rows
-        */
-        void SetMaximumRows(const TInt aMaximumRows);
-
-        /**
-        * Return max visible rows for listbox
-        * @since 3.0
-        */
-        inline TInt MaximumRows();
-
-        /**
-         * Handling of pointer event within the @c CEikListBox.
-         * Used for e.g. selecting an item from the list box.
-         *
-         * @since 3.2
-         * @param aPointerEvent Details of the pointer event that is being handled.
-         */
-        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-
-    public: // Functions from CAknSinglePopupMenuStyleListBox
-        virtual void SizeChanged();
-
-    public: // Functions from CEikFormattedCellListBox
-        virtual CListBoxView* MakeViewClassInstanceL();
-
-    protected:  // Functions from CAknSinglePopupMenuStyleListBox
-        virtual void CreateItemDrawerL();
-
-    protected: // Functions from CEikListBox
-        /**
-         * from CEikListBox
-         * Used for scrolling through the items in the list box.
-         *
-         * @param aScrollBar Scroll bar for the list box.
-         * @param aEventType Type of the event that occured.
-         */
-        virtual void HandleScrollEventL(CEikScrollBar* aScrollBar,
-                                                 TEikScrollEvent aEventType);
-
-    private:    // Data
-        TInt iMaximumColumns;
-        TInt iMaximumRows;
-    };
-
-TInt CAknFepUICtrlJapaneseCandidateListbox::MaximumRows()
-    {
-    return iMaximumRows;
-    }
-
-#endif  // CAKNFEPUICTRLJAPANESECANDIDATELISTBOX_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidateListboxView.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESECANDIDATELISTBOXVIEW_H
-#define CAKNFEPUICTRLJAPANESECANDIDATELISTBOXVIEW_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapaneseCandidateListboxView draws all the list items and 
-*  manages the area of the screen allocated for list itself. In particular,
-*  this class does not handle margins of the whole list.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseCandidateListboxView) : public CListBoxView
-    {
-    public: // Functions from CListBoxView
-        virtual void Draw(const TRect* aClipRect = NULL) const;
-        virtual void DrawItem(TInt aItemIndex) const;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESECANDIDATELISTBOXVIEW_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseCandidatePane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESECANDIDATEPANE_H
-#define CAKNFEPUICTRLJAPANESECANDIDATEPANE_H
-
-// INCLUDES
-#include <aknPopup.h>   // CAknPopupList
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                        // MAknFepUICtrlCandidatePaneInterface
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-// CLASS DECLARATION
-class CAknFepUIManagerJapanese;
-
-/**
-*  CAknFepUICtrlJapaneseCandidatePane class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseCandidatePane) :
-    public CAknPopupList,
-    public MAknFepUICtrlCandidatePaneInterface
-    {
-    public: // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CAknFepUICtrlJapaneseCandidatePane* NewL(CAknFepUIManagerJapanese* aUiMng);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CAknFepUICtrlJapaneseCandidatePane();
-
-    public: // New functions
-        /**
-        * Show Pop-up list
-        * @since 2.6
-        */
-        void ShowWindow();
-
-        /**
-        * Close Pop-up list
-        * @since 2.6
-        */
-        void CloseCandidateList();
-
-        /**
-        * Specify the cursor position of a pop-up list
-        * @since 2.6
-        * @param aItemIndex  The index of the cursor position
-        * @param aDraw  ETrue is redraw.
-        */
-        void SetCurrentItemIndexL(TInt aItemIndex, TBool aDraw);
-
-        /**
-        * Specify the display position of a pop-up list
-        * @since 2.6
-        * @param aOffset     Offset of a window display position
-        */
-        void SetOffsetPosition(TPoint aOffset);
-
-    public: // Functions from MAknFepUICtrlCandidatePaneInterface
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Set position to display candidate list
-        * @since 2.6
-        * @param aLeftSideOfBaseLine    left side of font
-        * @param aHeight                font hight
-        * @param aAscent                Ascent position
-        */
-        void SetWindowPosition(const TPoint& aLeftSideOfBaseLine,
-                              TInt aHeight,
-                              TInt aAscent);
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Show candidate list popup window
-        * @since 2.6
-        * @param aItems     array of candidate list
-        * @param aIndex     selecting number when displaying
-        *
-        */
-        void ShowCandidateListL(CDesCArrayFlat* aItems, TInt aIndex, TInt aResourceID=0);
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Hide candidate popup window
-        * @since 2.6
-        */
-        void HideWindow();
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Return a selected candidate item number currently
-        * @since 2.6
-        */
-        TInt CurrentItemIndexOfCandidate();
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Move a current item in an appointed direction
-        * @since 2.6
-        * @param aDirection     direction
-        */
-        TInt MoveItem(TAknFepUICtrlScroll aDirection);
-
-    protected: // Functions from CAknPopupList
-        /**
-        * From CAknPopupList Set up a window layout type
-        * @since 2.6
-        * @param aType       Layout type
-        */
-        virtual void SetupWindowLayout(AknPopupLayouts::TAknPopupLayouts aType);
-
-        /**
-        * From CAknPopupList Set the title for the selection list
-        * @since 2.6
-        * @param aAccept
-        */
-        virtual void AttemptExitL(TBool aAccept);
-
-        TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
-        /**
-        * from CAknPopupList of MEikCommandObserver
-        * @since 3.2
-        * @param aCommandId aCommandId  Event Id from the soft-key
-        */
-        void ProcessCommandL(TInt aCommandId);
-
-    protected: // from MEikListBoxObserver
-        /**
-         * Handle pointer up event
-         *
-         * @since S60 V3.2
-         * @param aListBox ListBox control
-         * @param aEventType
-         * @return None
-         */
-        virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
-
-    private:
-        /**
-        * constructor.
-        */
-        CAknFepUICtrlJapaneseCandidatePane(CAknFepUIManagerJapanese* aUiMng);
-
-        /**
-        * Symbian 2nd phase constructor can leave.
-        */
-        void ConstructL();
-
-        /**
-        * Set the title for the selection list
-        * @since 2.6
-        * @param aTitle      The character string of a title
-        */
-        void SetTitleL(const TDesC& aTitle);
-
-        /**
-        * The handler function for size change
-        * @since 2.6
-        * @param aDef                    layout information of popup-window
-        * @param aHeading                heading Pane object
-        * @param aListBox                listbox object
-        * @param aWindowOwningControl    owner control
-        */
-        void HandleSizeChanged(TAknPopupWindowLayoutDef& aDef,
-                               CAknPopupHeadingPane* aHeading,
-                               CEikListBox* aListBox,
-                               CCoeControl* aWindowOwningControl
-                               );
-
-        /**
-        * The handler function for Draw
-        * @since 2.6
-        * @param aEikEnv         EikEnv
-        * @param aGc             Gc
-        * @param aDef            layout information of popup-window
-        * @param aListBox        listbox object
-        * @param aHeadingOrNull  heading Pane object
-        */
-        static void HandleDraw(CEikonEnv* aEikEnv,
-                   CWindowGc& aGc,
-                   const TAknPopupWindowLayoutDef& aDef,
-                   CEikListBox* aListBox,
-                   CAknPopupHeadingPane* aHeadingOrNull);
-
-        /**
-        * Set up the information on a pop-up window
-        * @since 2.6
-        * @param aDef        layout information of popup-window
-        * @param aRect       rect
-        * @param num         total cantidate number
-        */
-        void CalcPopupMenuWindow(TAknPopupWindowLayoutDef& aDef,
-                                 const TRect& aRect,
-                                 TInt num);
-
-        /**
-        * Set up the information on a pop-up window
-        * @since 2.6
-        * @param aDef        layout information of popup-window
-        * @param num         total cantidate number
-        * @param heading     ETrue:with heading pane/ EFalse:without heading pane
-        */
-        void SetupMenuPopupWindow(TAknPopupWindowLayoutDef& aDef,
-                                  TInt num,
-                                  TBool heading);
-
-        /**
-        * The handler function for size and a location
-        * @since 2.6
-        * @param aDef                layout information of popup-window
-        * @param aContentInsidePopup
-        * @param aHeadingOrNull      heading pane object
-        */
-        static void HandleSizeAndPositionOfComponents(
-                                const TAknPopupWindowLayoutDef& aDef,
-                                CCoeControl* aContentInsidePopup,
-                                CAknPopupHeadingPane* aHeadingOrNull);
-
-        /**
-        * Draws a window shadow
-        * @since 2.6
-        * @param aCoverRect the area covered by the shadow
-        * @param aSecondShadowRect the area used for second shadow
-        * @param aFirstShadowRect  the area of first shadow
-        * @param aOutliineFrameRect the area of black outline frame
-        * @param aInsideAreaRect   the area of content inside the window
-        */
-        static void DrawWindowShadow(
-                                CWindowGc& aGc,
-                                const TAknLayoutRect& aCoverRect,
-                                const TAknLayoutRect& aSecondShadowRect,
-                                const TAknLayoutRect& aFirstShadowRect,
-                                const TAknLayoutRect& aOutlineFrameRect,
-                                const TAknLayoutRect& aInsideAreaRect);
-
-        /**
-        * This function returns maximum columns to be able to display in listbox, this function
-        * find longest candidate string in candidate list. Return 11 columns in case more than 11 columns, and minimum is 3 columns.
-        * @since 2.6
-        * @param aModel listbox model object
-        * @return maximum columns
-        */
-        TInt MaximumColumns(CTextListBoxModel* aModel);
-
-        /**
-        * This function returns maximum rows to be able to display in listbox.
-        * Maximum is 7 rows and  minimum is 3 columns.
-        * @since 2.6
-        * @param aModel listbox model object
-        * @return maximum line
-        */
-        TInt MaximumRows(CTextListBoxModel* aModel);
-
-        /**
-        * Called by the framework to draw the control
-        * @param aRect  Rectangle in which the Cone framework believes drawing
-        *               is needed
-        */
-        virtual void Draw(const TRect& aRect) const;
-
-        /**
-        * Handle key events. When a key event occurs,
-        * CONE calls this function for each control on the control stack,
-        * until one of them returns EKeyWasConsumed to indicate that
-        * it processed the key event.
-        *
-        * @param aKeyEvent  The key event.
-        * @param aType      The type of the event:
-        *                           EEventKey, EEventKeyUp or EEventKeyDown.
-        * @return           Indicates whether or not the key event was used
-        *                   by this control.
-        */
-        virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
-                                    TEventCode aType);
-
-        /**
-        * show cba
-        * @since 2.6
-        */
-        void ShowWindowCbaL();
-
-        /**
-        * Changing the cba
-        * @since 3.2
-        * @param aResourceID
-        */
-        void UpdateCbaL(TInt aResourceID);
-
-    private:    // Data
-        TRect  iMainPaneRect;
-        TPoint iOffsetPosition;
-        TInt   iSrcTextHeight;
-
-        TInt iMaximumColumns;
-        TInt iMaximumRows;
-        CAknFepUIManagerJapanese* iUiMng;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESECANDIDATEPANE_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapaneseKutenQueryDialog.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +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:            Kuten code query dialog
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUICTRLJAPANESEKUTENQUERYDIALOG_H
-#define AKNFEPUICTRLJAPANESEKUTENQUERYDIALOG_H
-
-// INCLUDES
-#include <AknQueryDialog.h> // CAknTextQueryDialog
-
-// FORWARD DECLARATIONS
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapaneseKutenQueryDialog class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapaneseKutenQueryDialog) : public CAknTextQueryDialog
-    {
-    public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CAknFepUICtrlJapaneseKutenQueryDialog* NewL(
-                        TInt& aCharCode, const TTone& aTone = ENoTone);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CAknFepUICtrlJapaneseKutenQueryDialog();
-        TInt ExecuteLD(TInt aResourceId);
-
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
-    protected:  // Functions from CEikDialog
-        /**
-        * From CEikdialog   This function is called by the EIKON framework
-        *                   if the user activates a button in the button panel.
-        *                   It is not called if the Cancel button is activated,
-        *                   unless the EEikDialogFlagNotifyEsc flag is set.
-        * @since 2.6
-        * @param aButtonId  The ID of the button that was activated
-        * @return           Should return ETrue if the dialog should exit,
-        *                   and EFalse if it should not.
-        */
-        virtual TBool OkToExitL(TInt aButtonId);
-
-    protected:  // Functions from CAknQueryDialog
-        /**
-        * If the query text is ok (retrieved form query control) then display the
-        * left soft key, otherwise hide it.
-        * @since 2.6
-        */
-        virtual void  UpdateLeftSoftKeyL();
-
-    private:
-        /**
-        * constructor.
-        */
-        CAknFepUICtrlJapaneseKutenQueryDialog(
-                        TInt& aCharCode, const TTone& aTone = ENoTone);
-
-        /**
-        * Set visibility of the left softkey.
-        * Softkey is hidden when data in the query is not acceptable.
-        * @since 2.6
-        */
-        void MakeLeftSoftkeyVisibleL();
-
-        enum TJisElementsCharMap
-            {
-            EJisFirstMin = 0x21,
-            EJisFirstMax = 0x74,
-            EJisSecondMin = 0x21,
-            EJisSecondMax = 0x7E,
-            EJisLastSecondMax = 0x2F
-            };
-
-        enum TSjisElements
-            {
-            ESjisFirstMin1   = 0x81,
-            ESjisFirstMax1   = 0x9F,
-            ESjisFirstMin2   = 0xE0,
-            ESjisFirstMax2   = 0xEA,
-//          ESjisFirstMax2   = 0xEE,                // NEC extended kanji code
-//          ESjisFirstMax2   = 0xFC,                // IBM extended kanji code
-            ESjisFirstCount  = (ESjisFirstMax2 - ESjisFirstMin2 + 1
-                                + ESjisFirstMax1 - ESjisFirstMin1 + 1),
-            ESjisSecondMin1  = 0x40,
-            ESjisSecondMax1  = 0x7E,
-            ESjisSecondMin2  = 0x80,
-            ESjisSecondMax2  = 0xFC,
-            ESjisSecondCount = (ESjisSecondMax2 - ESjisSecondMin2 + 1
-                                + ESjisSecondMax1 - ESjisSecondMin1 + 1)
-            };
-
-        /**
-        * Convert from Kuten code to unicode, Kuten code is 4 characters which inputted in query dialog.
-        * @since 2.6
-        * @return unicode, it is one character.
-        */
-        TText   ConvertKutenCode2Unicode();
-
-        /**
-        * Convert to valid jis code. If inputting invalid code, this function converts nearly valid code.
-        * @since 2.6
-        */
-        void    AdjustJisCode(TText& aJisCode);
-
-        /**
-        * Convert to valid s-jis code. If inputting invalid code, this function converts nearly valid code.
-        * @since 2.6
-        * @return ETrue: s-jis code EFalse: none s-jis code
-        */
-        TBool   AdjustSjisCode(TText& aSjisCode);
-
-        /**
-        * Convert from JIS to S-JIS
-        * @since 2.6
-        * @return s-jis code as inputting jis code
-        */
-        TText   JisToSjis(TText aJisCode);
-
-        /**
-        * Check a s-jis code inputted in dialog
-        * @since 2.6
-        * @return ETrue: s-jis code EFalse: none s-jis code
-        */
-        TBool   CheckSjisCode(TText aSjisCode);
-
-        /**
-        * Convert from s-jis to unicode
-        * @since 2.6
-        * @return unicode code as inputting s-jis code
-        */
-        TText   ConvSjisToUnicode(TText aSjisCode);
-
-    private:
-        TInt&       iCharCode;
-        TBuf<5>     iBuffer;
-        TUint       iCbaResId;
-    };
-
-#endif  // AKNFEPUICTRLJAPANESEKUTENQUERYDIALOG_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveCellListBoxData.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVECELLLISTBOXDATA_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVECELLLISTBOXDATA_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictiveCellListBoxData class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictiveCellListBoxData)
-        : public CFormattedCellListBoxData
-    {
-    public:  // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CAknFepUICtrlJapanesePredictiveCellListBoxData* NewL();
-
-    public: // New functions
-        /**
-        * Set a starting x-point and ending to highlight
-        * @since 2.6
-        * @param aHighlightStartXPos    a starting x-point
-        * @param aHighlightEndXPos      a ending x-point
-        */
-        void SetHighlightArea(TInt aHighlightStartXPos,
-                              TInt aHighlightEndXPos);
-
-    public: // Functions from CFormattedCellListBoxData
-
-        /**
-        * From CFormattedCellListBoxData Draw() is the most important method in
-        * CAknFepUICtrlJapanesePredictiveCellListBoxData.
-        * This is the only method that needs to be implemented in this class and
-        * it draws the whole listi tem.
-        * @since 0.0
-        * @param aProperties Properties attached to the list item
-        * @param aGc Graphics context used for drawing the list item
-        * @param aText a text string describing the list item cells
-        * @param aRect the area of the screen for the whole list item
-        * @param aHighlight whether the list item is selected
-        * @param aColors the colours used for drawing the item
-        * @return None.
-        */
-        virtual void Draw(TListItemProperties aProperties,
-                          CWindowGc& aGc,
-                          const TDesC* aText,
-                          const TRect& aRect,
-                          TBool aHighlight,
-                          const TColors& aColors) const;
-
-        /**
-        * From CFormattedCellListBoxData
-        * Show hightlight area in listbox
-        * @since 2.6
-        * @param aGc        Gc
-        * @param aItemRect  rect to highlight
-        * @param aHighlight ETrue is highlight. EFalse is non-highlight.
-        */
-        void DrawDefaultHighlight(CWindowGc &aGc,
-                                  const TRect &aItemRect,
-                                  TBool aHighlight) const;
-
-    private:    // Data
-        TInt iHighlightStartXPos;
-        TInt iHighlightEndXPos;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVECELLLISTBOXDATA_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXMODEL_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXMODEL_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  TPredictivePopupElement class.
-*  This structure stores the information to display a candidate.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-struct TPredictivePopupElement
-    {
-    TInt iStartXPos;
-    TInt iEndXPos;
-    TInt iCandidateNo;
-    };
-
-typedef CArrayFixFlat<TPredictivePopupElement> CPredictivePopupElementArray;
-
-// CLASS DECLARATION
-
-/**
-*  CPredictivePopupLineInfo class.
-*  This class stores a line information on predictive candidate list.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CPredictivePopupLineInfo) : public CBase
-    {
-public:
-    inline CPredictivePopupLineInfo() {};
-    virtual ~CPredictivePopupLineInfo();
-
-    HBufC* iLineText;
-    CPredictivePopupElementArray* iElementsOnLine;
-    };
-
-typedef CArrayPtrFlat<CPredictivePopupLineInfo> CPredictivePopupLineInfoArray;
-
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictiveListBoxModel class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictiveListBoxModel)
-        : public CAknFilteredTextListBoxModel
-    {
-    public: // New functions
-        /**
-        * This function registeres the array of line information of candidate list.
-        * @since 2,6
-        * @param aLineInfoArray
-        */
-        void SetLineInfoArray(CPredictivePopupLineInfoArray* aLineInfoArray);
-
-        /**
-        * This function returns a arrary object that the information is included each line.
-        * @since 2.6
-        * @return array object
-        */
-        CPredictivePopupLineInfoArray* LineInfoArray() const;
-
-        /**
-        * This function searches a item index as key in a candidate number
-        * 
-        * @since 2.6
-        * @param aCandidateNo   candidate number
-        * @return item index
-        */
-        TInt SearchItemIndexFromCandidateNo(TInt aCandidateNo) const;
-
-        /**
-        * This function is that it checks whether the candidate is included in the line.
-        * If including it, The displaying information is returned.
-        * @since 2.6
-        * @param aLineNo        line number
-        * @param aCandidateNo   candidate number
-        * @param aElement       display mode
-        * @return ETrue if including candidate
-        */
-        TBool SearchElement(TInt aLineNo,
-                            TInt aCandidateNo,
-                            TPredictivePopupElement& aElement);
-
-        /**
-        * Set total item numbers in listbox
-        * @since 2.6
-        * @param aMaximumItems  total item numbers
-        */
-        void SetMaximumItems(TInt aMaximumItems);
-
-        /**
-        * Return total item numbers
-        * @since 2.6
-        * @return total item numbers
-        */
-        TInt MaximumItems();
-
-        /**
-        * This function searches a CandidateNo from linenumber and Position
-        * @since 3.2
-        * @param aLineNo        line number
-        * @param aPoint         position
-        * @eturn candidate number
-        */
-        TInt SearchCandidateNoFromPosition(
-                TInt aLineNo, const TPoint& aPoint) const;
-
-    private:    // Data
-        CPredictivePopupLineInfoArray* iLineInfoArray;
-        TInt iMaximumItems;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXMODEL_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListbox.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOX_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOX_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictiveListbox class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictiveListbox)
-        : public CAknSinglePopupMenuStyleListBox
-    {
-    public:  // Constructors and destructor
-        void ConstructL(const CCoeControl* aParent, TInt aFlags);
-
-    public: // New functions
-        /**
-        * Selecting the index as argument
-        * @since 2.6
-        * @param aCandidateNo  The index of the cursor position
-        * @param aDraw  ETrue is redraw.
-        */
-        void SetCurrentCandidateNo(TInt aCandidateNo, TBool aDraw);
-
-        /**
-        * Return the candidate number selected currently
-        * @since 2.6
-        * @return the candidate number selected currently
-        */
-        TInt CurrentCandidateNo();
-
-        /**
-        * selecting a previous candidate
-        * @since 2.6
-        * @return the candidate number selected currently
-        */
-        TInt MovePreviousItem();
-
-        /**
-        * selecting a next candidate
-        * @since 2.6
-        * @return the candidate number selected currently
-        */
-        TInt MoveNextItem();
-
-        /**
-        * selecting a previous line candidate
-        * @since 2.6
-        * @return the candidate number selected currently
-        */
-        TInt MovePreviousLineItem();
-
-        /**
-        * selecting a next line candidate
-        * @since 2.6
-        * @return the candidate number selected currently
-        */
-        TInt MoveNextLineItem();
-
-        /**
-         * Handling of pointer event within the @c CEikListBox.
-         * Used for e.g. selecting an item from the list box.
-         *
-         * @since 3.2
-         * @param aPointerEvent Details of the pointer event that is being handled.
-         */
-        void HandlePointerEventL(const TPointerEvent& aPointerEvent);
-
-    public: // Functions from CAknSinglePopupMenuStyleListBox
-        virtual void SizeChanged();
-
-    public: // Functions from CEikFormattedCellListBox
-        virtual CListBoxView* MakeViewClassInstanceL();
-
-    protected: // Functions from CAknSinglePopupMenuStyleListBox
-        virtual void CreateItemDrawerL();
-
-    protected: // Functions from CEikListBox
-        /**
-         * Sets an item as the current item, even if it is not currently
-         * visible. Redraws the list box to reflect the change. This
-         * should not be called from within another Draw function.
-         *
-         * @param aItemIndex The index of the list box item to update.
-         */
-        virtual void UpdateCurrentItem(TInt aItemIndex) const;
-
-        /**
-         * from CEikListBox
-         * Used for scrolling through the items in the list box.
-         *
-         * @param aScrollBar Scroll bar for the list box.
-         * @param aEventType Type of the event that occured.
-         */
-        virtual void HandleScrollEventL(CEikScrollBar* aScrollBar,
-                                                 TEikScrollEvent aEventType);
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOX_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListboxItemDrawer.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXITEMDRAWER_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXITEMDRAWER_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictiveListboxItemDrawer draws a single list item
-*  and manages list item properties.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictiveListboxItemDrawer)
-        : public CFormattedCellListBoxItemDrawer
-    {
-    public:  // Constructors and destructor
-        /**
-        * Constructors
-        * @since 2.6
-        * @param aTextListBoxModel
-        * @param aFont
-        * @param aFormattedCellData
-        */
-        CAknFepUICtrlJapanesePredictiveListboxItemDrawer(
-                                    MTextListBoxModel* aTextListBoxModel,
-                                    const CFont* aFont,
-                                    CFormattedCellListBoxData* aFormattedCellData);
-
-    public: // New functions
-        /**
-        * Drawing listbox items
-        * @since 2.6
-        * @param aItemIndex         a item index to draw
-        * @param aItemRectPos       a rect to draw
-        * @param aItemIsSelected    a flag to select
-        * @param aItemIsCurrent     a flag to current
-        * @param aViewIsEmphasized  
-        * @param aViewIsDimmed      
-        * @param aHighlightStartXPos    a starting x-position to hightlight
-        * @param aHighlightEndXPos      a ending x-position to hightlight
-        */
-        void DrawItem(TInt aItemIndex,
-                      TPoint aItemRectPos,
-                      TBool aItemIsSelected,
-                      TBool aItemIsCurrent,
-                      TBool aViewIsEmphasized,
-                      TBool aViewIsDimmed,
-                      TInt aHighlightStartXPos,
-                      TInt aHighlightEndXPos) const;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXITEMDRAWER_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictiveListboxView.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXVIEW_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXVIEW_H
-
-// INCLUDES
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictiveListboxView draws all the list items and manages
-*  the area of the screen allocated for list itself. In particular,
-*  this class does not handle margins of the whole list.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictiveListboxView) : public CListBoxView
-    {
-    public: // New functions
-        /**
-        * Return the selected candidate number currently
-        * @since 2.6
-        * @return candidate number
-        */
-        TInt CurrentCandidateNo() const;    
-
-        /**
-        * Set current candidate number
-        * @since 2.6
-        * @param    aCandidateNo    candidate number
-        * @return   item index including candidate number
-        */
-        TInt SetCurrentCandidateNo(TInt aCandidateNo); 
-
-        /**
-        * Return previous candidate number
-        * @since 2.6
-        * @return candidate number
-        */
-        TInt PreviousItem();
-
-        /**
-        * Return next candidate number
-        * @since 2.6
-        * @return candidate number
-        */
-        TInt NextItem();
-
-        /**
-        * Return candidate number of previous line
-        * @since 2.6
-        * @return candidate number
-        */
-        TInt PreviousLineItem();
-
-        /**
-        * Return candidate number of next line
-        * @since 2.6
-        * @return candidate number
-        */
-        TInt NextLineItem();
-
-        /**
-        * Return the selected candidate number currently
-        * @since 3.2
-        * @return candidate number
-        */
-        TInt OldCandidateNo() const;
-
-        /**
-        * Set current candidate number from point
-        * @since 3.2
-        * @param aLineNo        line number
-        * @param aPoint         position
-        * @return candidate number
-        */
-        TInt SetCurrentCandidateNo(TInt aLineNo, const TPoint& aPoint);
-
-    public: // from CListBoxView
-        virtual void DrawItem(TInt aItemIndex) const;
-
-    private:    // Data
-        TInt iCurrentCandidateNo;
-        TInt iOldCandidateNo;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVELISTBOXVIEW_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlJapanesePredictivePane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,385 +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:            Predictive Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef CAKNFEPUICTRLJAPANESEPREDICTIVEPANE_H
-#define CAKNFEPUICTRLJAPANESEPREDICTIVEPANE_H
-
-// INCLUDES
-#include <aknPopup.h>
-#include "AknFepUICtrlCandidatePaneInterface.h" // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h"
-
-// CONSTANTS
-const TInt KJapPredictiveVisibleListRowsMax = 3;
-const TInt KJapPredictiveVisibleListRowsMin = 1;
-
-// FORWARD DECLARATIONS
-class CAknFepUIManagerJapanese;
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUICtrlJapanesePredictivePane class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-NONSHARABLE_CLASS(CAknFepUICtrlJapanesePredictivePane) :
-    public CAknPopupList,
-    public MAknFepUICtrlCandidatePaneInterface
-    {
-    public: // Constructors and destructor
-        /**
-        * Two-phased constructor.
-        */
-        static CAknFepUICtrlJapanesePredictivePane* NewL(CAknFepUIManagerJapanese* aUiMng);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CAknFepUICtrlJapanesePredictivePane();
-
-    public: // New functions
-        /**
-        * Show Pop-up list
-        * @since 2.6
-        */
-        void ShowWindow();
-
-        /**
-        * Close Pop-up list
-        * @since 2.6
-        */
-        void ClosePredictiveList();
-
-        /**
-        * Specify the cursor position of a pop-up list
-        * @since 2.6
-        * @param aItemIndex  The index of the cursor position
-        */
-        void SetCurrentItemIndex(TInt aItemIndex);
-
-        /**
-        * Specify the display position of a pop-up list
-        *
-        * @since 2.6
-        * @param aOffset     Offset of a window display position
-        */
-        void SetOffsetPosition(TPoint aOffset);
-
-public: // Functions from MAknFepUICtrlCandidatePaneInterface
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Set position to show candidate list
-        * @since 2.6
-        * @param aLeftSideOfBaseLine    left side of font
-        * @param aHeight                font height
-        * @param aAscent                ascent position
-        */
-        void SetWindowPosition(const TPoint& aLeftSideOfBaseLine,
-                               TInt aHeight,
-                               TInt aAscent);
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Show candidate list popup window
-        * @since 2.6
-        * @param aItems     array including each candidate string
-        * @param aIndex     selecting candidate number to display first time
-        *
-        */
-        void ShowCandidateListL(CDesCArrayFlat* aItems, TInt aIndex, TInt aResourceID);
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Hide candidate list popup window
-        * @since 2.6
-        */
-        void HideWindow();
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Return a selected candidate item number currently
-        * @since 2.6
-        */
-        TInt CurrentItemIndexOfCandidate();
-
-        /**
-        * From MAknFepUICtrlCandidatePaneInterface
-        * Move a current item in an appointed direction
-        * @since 2.6
-        * @param aDirection     direction
-        */
-        TInt MoveItem(TAknFepUICtrlScroll aDirection);
-
-    protected: // Functions from CAknPopupList
-        /**
-        * From CAknPopupList Set up a window layout type
-        * @since 2.6
-        * @param aType       Layout type
-        */
-        virtual void SetupWindowLayout(AknPopupLayouts::TAknPopupLayouts aType);
-
-        /**
-        * From CAknPopupList Set the title for the selection list
-        * @since 2.6
-        * @param aAccept
-        */
-        virtual void AttemptExitL(TBool aAccept);
-
-        TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
-    protected: // from MEikListBoxObserver
-        /**
-         * Handle pointer up event
-         *
-         * @since S60 V3.2
-         * @param aListBox ListBox control
-         * @param aEventType
-         * @return None
-         */
-        virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
-
-    private:
-        /**
-        * constructor.
-        */
-        CAknFepUICtrlJapanesePredictivePane(CAknFepUIManagerJapanese* aUiMng);
-
-        /**
-        * Symbian 2nd phase constructor can leave.
-        */
-        void ConstructL();
-
-        /**
-        * Create array with line information in candidate list
-        * @since 2.6
-        * @param aItems                     array with candidate string
-        * @param aMaxDisplayWidthInPixel    maximum width in pixel
-        * @param aFontId                    font id
-        * @return array with line information
-        */
-        CPredictivePopupLineInfoArray*
-        CreatePredictivePopupLineInfoArrayL(CDesCArrayFlat* aItems,
-                                            const TInt aMaxDisplayWidthInPixel,
-                                            const TInt aFontId);
-
-        /**
-        * Append to array with line information
-        * @since 2.6
-        * @param aLineArray     array with line information
-        * @param aLineText      string to show in a line
-        * @param aElementArray  array with element information
-        */
-        void PredictivePopupAppendLineL(CPredictivePopupLineInfoArray* aLineArray,
-                                   const TDesC& aLineText,
-                                   CPredictivePopupElementArray* aElementArray);
-
-        /**
-        * Create arrary with string to show in a line
-        * @since 2.6
-        * @param aLineArray     arrary with line information
-        * @return   string array
-        */
-        CDesCArrayFlat* CreateListTextArrayL(
-                                      CPredictivePopupLineInfoArray* aLineArray);
-
-        /**
-        * The handler function for size change
-        * @since 2.6
-        * @param aDef                    layout information of popup-window
-        * @param aHeading                heading pane object
-        * @param aListBox                listbox object
-        * @param aWindowOwningControl    Owner control
-        */
-        void HandleSizeChanged(TAknPopupWindowLayoutDef& aDef,
-                               CAknPopupHeadingPane* aHeading,
-                               CEikListBox* aListBox,
-                               CCoeControl* aWindowOwningControl
-                               );
-
-        /**
-        * The handler function for Draw
-        * @since 2.6
-        * @param aEikEnv         EikEnv
-        * @param aGc             Gc
-        * @param aDef            layout information of popup-window
-        * @param aListBox        Listbox object
-        * @param aHeadingOrNull  Heading Pane object
-        */
-        static void HandleDraw(CEikonEnv* aEikEnv,
-                   CWindowGc& aGc,
-                   const TAknPopupWindowLayoutDef& aDef,
-                   CEikListBox* aListBox,
-                   CAknPopupHeadingPane* aHeadingOrNull);
-
-        /**
-        * Set up the information on a pop-up window
-        * @since 2.6
-        * @param aDef        layout information of popup-window
-        * @param aRect       rect
-        * @param num         total cantidate number
-        */
-        void CalcPopupMenuWindow(TAknPopupWindowLayoutDef& aDef,
-                                 const TRect& aRect,
-                                 TInt num);
-
-        /**
-        * Set up the information on a pop-up window
-        * @since 2.6
-        * @param aDef        layout information of popup-window
-        * @param num         total cantidate number
-        * @param heading     ETrue id with heading area, EFalse is without one.
-        */
-        void SetupMenuPopupWindow(TAknPopupWindowLayoutDef& aDef,
-                                  TInt num,
-                                  TBool heading);
-
-        /**
-        * The handler function for size and a location
-        * @since 2.6
-        * @param aDef                layout information of popup-window
-        * @param aContentInsidePopup
-        * @param aHeadingOrNull      Heading Pane object
-        */
-        static void HandleSizeAndPositionOfComponents(
-                            const TAknPopupWindowLayoutDef& aDef,
-                            CCoeControl* aContentInsidePopup,
-                            CAknPopupHeadingPane* aHeadingOrNull);
-
-        /**
-        * Draws a window shadow
-        * @since 2.6
-        * @param aCoverRect         the area covered by the shadow
-        * @param aSecondShadowRect  the area used for second shadow
-        * @param aFirstShadowRect   the area of first shadow
-        * @param aOutliineFrameRect the area of black outline frame
-        * @param aInsideAreaRect    the area of content inside the window
-        */
-        static void DrawWindowShadow(CWindowGc& aGc,
-                                     const TAknLayoutRect& aCoverRect,
-                                     const TAknLayoutRect& aSecondShadowRect,
-                                     const TAknLayoutRect& aFirstShadowRect,
-                                     const TAknLayoutRect& aOutlineFrameRect,
-                                     const TAknLayoutRect& aInsideAreaRect);
-
-        /**
-        * This function returns maximum rows to be able to display in listbox.
-        * Maximum is 7 rows and  minimum is 3 columns.
-        * @since 2.6
-        * @param aModel listbox model object
-        * @return maximum line
-        */
-        TInt MaximumRows(CTextListBoxModel* aModel);
-
-        /**
-        * Called by the framework to draw the control
-        * @since 2.6
-        * @param aRect  Rectangle in which the Cone framework believes drawing
-        *               is needed
-        */
-        void Draw(const TRect& aRect) const;
-
-        /**
-        * Handle key events. When a key event occurs,
-        * CONE calls this function for each control on the control stack,
-        * until one of them returns EKeyWasConsumed to indicate that
-        * it processed the key event.
-        *
-        * @since 2.6
-        * @param aKeyEvent  The key event.
-        * @param aType      The type of the event:
-        *                           EEventKey, EEventKeyUp or EEventKeyDown.
-        * @return           Indicates whether or not the key event was used
-        *                   by this control.
-        */
-        TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,
-                                    TEventCode aType);
-
-        /**
-        * selecting a previous candidate
-        * @since 2.6
-        * @return selected candidate number
-        */
-        TInt MovePreviousItem();
-
-        /**
-        * selecting a next candidate
-        * @since 2.6
-        * @return selected candidate number
-        */
-        TInt MoveNextItem();
-
-        /**
-        * selecting a previous line candidate
-        * @since 2.6
-        * @return selected candidate number
-        */
-        TInt MovePreviousLineItem();
-
-        /**
-        * selecting a next line candidate
-        * @since 2.6
-        * @return selected candidate number
-        */
-        TInt MoveNextLineItem();
-
-        /**
-        * Changing the cba
-        * @since 2.6
-        * @param aResourceID
-        */
-        void UpdateCbaL(TInt aResourceID);
-
-        /**
-        * from CAknPopupList of MEikCommandObserver
-        * @since 2.6
-        * @param aCommandId aCommandId  Event Id from the soft-key
-        */
-        void ProcessCommandL(TInt aCommandId);
-
-        /**
-        * show cba
-        * @since 2.6
-        */
-        void ShowWindowCbaL();
-
-    private:    // Data
-        TRect   iMainPaneRect;
-        TPoint  iOffsetPosition;
-        TInt    iSrcTextHeight;
-
-        TInt    iMaximumRows;
-        CPredictivePopupLineInfoArray* iLineInfoArray;
-        CDesCArrayFlat* iListTextArray;
-        CAknFepUIManagerJapanese* iUiMng;
-    };
-
-#endif  // CAKNFEPUICTRLJAPANESEPREDICTIVEPANE_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlPinyinPopup.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,698 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUICtrlPinyinPopup class definitions.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
-#define __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
-
-#include <AknFepUICtrlPinyinPopup.h>
-#include <badesca.h>
-#include <coecntrl.h>
-#include <AknUtils.h>
-#include "AknFepUIAvkonCtrlInputPane.h"
-#include "AknFepUIAvkonCtrlCandidatePane.h"
-
-class MAknFepUICtrlPinyinPopupSizeChangedObserver;
-
-NONSHARABLE_CLASS(CAknFepUICtrlPinyinPopup):public CCoeControl, public MAknFepUICtrlPinyinPopup
-{
-public:
-    /**
-     * First phase construction
-     */
-    static CAknFepUICtrlPinyinPopup* NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr);
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlPinyinPopup();
-    /**
-     * This function returns the index of the selected phrase item .
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    TInt CurrentSelection() const;
-    /**
-     * This function returns the visible index of the selected item.
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    TInt CurrentVisibleSelection() const;
-	 /**
-     * set the observer
-     * <p> Note that only one observer is supported!
-     *
-     * @param aObserver pointer to the observer
-     */
-    void SetSizeChangedObserver(MAknFepUICtrlPinyinPopupSizeChangedObserver* aObserver);
-
-    /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     *
-     */
-    void Enable(TBool aEnable);
-	/**
-     * set the number of selections that are visible
-     *
-     * @param aCount the number of visible selections, must be 
-     *                          0 < aCount <= KMaxNumberOfSelections 
-     */
-    void SetVisibleSelectionCount(TInt aCount);
-	/**
-     * set the number of selections that are visible
-     *
-     * @param aCount the number of visible selections, must be 
-     *                          0 < aCount <= KMaxNumberOfSelections 
-     */
-    void SetVisibleCount(TInt aCount);
-
-    /**
-     * get the current visible selection count
-     *
-     * @return visible selection count
-     */
-    TInt VisibleSelectionCount() const;
-
-
-    /**
-     * This sets the string of the internal buffer for the item index aIndex to aText,
-     * even if the index falls outside the current visible candidates.
-     *
-     * @param aText new contents of text item
-     * @return ETrue if successful
-     *              EFalse if index outside visible candidates (but value is still set)
-     *
-     */
-    TBool SetItemText(TInt aIndex, const TDesC& aText);
-
-    /**
-    *   Sets the string of the internal buffer for visible item 
-    */
-    TBool SetPhraseItemTexts();
-    
-    /**
-     * This function gets the text at the index aIndex. 
-     *
-     * @param aIndex index of entry in window, zero based
-     * @output aText contains contents of text item
-     * @return ETrue always
-     *
-     */
-    TBool GetItemText(TInt aIndex, TDes& aText) const;
-
-    /**
-     * This function sets the Tone Mark for all entries
-     * 
-     * @param aToneMark the tone mark
-     *
-     */
-    void SetToneMark(const TDesC& aToneMark);
-
-    /**
-     * This function sets the Tone Mark for a specific entry
-     * 
-     * @param aIndex index of entry
-     * @param aToneMark the tone mark
-     *
-     */
-    void SetToneMark(TInt aIndex, const TDesC& aToneMark);
-
-    /**
-     * This function gets the Tone Mark for a specific entry
-     * 
-     * @param aIndex index of entry
-     * @output aToneMark the tone mark
-     *
-     */
-    void GetToneMark(TInt aIndex, TDes& aToneMark) const;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @param aIndex index of the entry to be affected
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     */
-    void SetItemToneMarkValidity(TInt aIndex, TBool aValid);
-    /**
-     * Is the control enabled for display?
-     *
-     * @return if not enabled, return EFalse
-     */
-    TBool IsEnabled() const;
-
-    /**
-     * Select the next visible item. If already on the last one, loop to the 
-     * first one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    TBool SelectNextPhrase();
-
-    /**
-     * Select the previous visible item. If already on the first one, loop to the 
-     * last one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    TBool SelectPrevPhrase();
-
-    /**
-     * This function selects the item at index aIndex. 
-     *
-     * @param aIndex index of entry in window, zero based
-     * @return ETrue if success, EFalse if failure.
-     */
-    TBool SelectIndex(TInt aIndex);
-
-    /**
-	*	Return Pinyin spelling candidate array 
-	*/
-    CDesCArrayFlat* PhoneticSpellingArray(void);
-
-    /**
-	*	Return Pinyin spelling candidate array 
-	*/
-    CDesCArrayFlat* PhoneticSpellingIndexArray();    
-    /**
-	*	Split phrase pinyin spelling candidates into pages 
-	*/
-    void SplitPhraseSpellingIntoPages(void);
-
-    /**
-	*	Split pinyin spelling candidates into pages 
-	*/
-    void SplitSpellingIntoPages(TInt aCount);
-    
-    /**
-	*	Set display page for deliberate selection 
-	*/
-    void SetDisplayPage(TInt aSelection);
-    /**
-	*	Return current page start spelling index 
-	*/
-    TInt CurrentPageStartIndex(void);
-
-    /**
-	*	Return kestroke array 
-	*/
-    CDesCArrayFlat* KeystrokeArray(void);
-    
-    /**
-	*	Return in effect kestroke array 
-	*/    
-    CDesCArrayFlat* InEffectKeystrokeArray();
-    
-    /**
-	*	Return  show kestroke array 
-	*/    
-    CDesCArrayFlat* ShowKeystrokeArray();
-
-    /**
-	 *	Return Optimize Spelling array 
-	 */    
-    CDesCArrayFlat* OptimizeSpelling();
-    
-    /**
-     *  Return temp Spelling array 
-     */    
-    CDesCArrayFlat* TempSpelling();
-    
-    /**
-     *	Return choose chinese charater array 
-     */
-    CDesCArrayFlat* ChooseChineseCharacterArray();    
-
-    /**
-     *	Return choose chiese charater keystroke array 
-     */
-    CDesCArrayFlat* ChooseChineseCharacterArrayKeystroke();    
-    
-    /**
-     *	Return the tone mark state 
-     */
-    TBool GetTonemarkState();   
-    
-    /**
-     *	set the tone mark state 
-     */
-     void SetTonemarkState( TBool aState );    
-     
-    /**
-    *   Set, clear and check flags status
-    */
-    inline void SetFlag(TInt aFlag);
-    inline void ClearFlag(TInt aFlag);
-    inline TBool IsFlagSet(TInt aFlag) const;
-	void PopupSizeChanged();
-	
-    /**
-     *  Set all the input pane not highlight
-     */
-	void SetNoneHighlighted();
-	
-    /**
-    *   Return kestroke array 
-    */
-	CDesCArrayFlat* KeystrokeArrayForStroke();
-
-    /**
-    *   Return in effect kestroke array 
-    */  
-	CDesCArrayFlat* InEffectKeystrokeArrayForStroke();
-
-    /**
-    *   Return  show kestroke array 
-    */ 
-	CDesCArrayFlat* ShowKeystrokeArrayForStroke();
-
-    /**
-     *  Return choose chinese charater array 
-     */
-	CDesCArrayFlat* ChooseChineseCharacterArrayForStroke();
-
-    /**
-     *  Return choose chiese charater keystroke array 
-     */
-	CDesCArrayFlat* ChooseChineseCharacterArrayKeystrokeForStroke();
-	
-    CDesCArrayFlat* ZhuyinSymbols();
-    
-    CDesCArrayFlat* ZhuyinShowSymbols();
-    
-    CDesCArrayFlat* FirstValidZhuyinGrp() ;
-    
-    CDesCArrayFlat* ChineseCharsDisped() ;
-    
-    CDesCArrayFlat* ZhuyinSymbolsForChineseCharsDisped() ;
-    
-    void SetEEPContent ( const TDes& aDes );
-    TDes& GetEEPContent ( );
-    
-    void SetEEPContentValid ( TBool aValid );
-    TBool GetEEPContentValid ( );
-    
-    /**
-     *  Reset all array 
-     */
-	void ResetStrokeArray();
-	
-    /**
-     *  Set the state is changed 
-     */
-    void SetChangeState( TBool aChangeState );
-    
-    /**
-     *  Return if has changed state or not 
-     */
-    TBool IsChangeStatet() const;
-    
-    /**
-     * Set whether state change from entry to spelling editing is automatical.
-     * 
-     * @param aState.1 for automatical, 0 for manual.
-     * @return None.
-     */
-    void SetState( TInt aState );
-    
-    /**
-     * Get state change status.
-     */
-    TInt GetState();
-    
-    /**
-     * Set whether state change from pinyin input state to pinyin phrase creation.
-     * 
-     * @param aState. ETrue for state change from pinyin input to phrase creation,
-     *  EFalse is not.
-     * @return None.
-     */
-    void SetPhraseCreationState( TBool aState );
-    
-    /**
-     * Set whether state change from pinyin input state to pinyin phrase creation.
-     * 
-     * @return ETrue for state change from pinyin input to phrase creation,
-     *  EFalse is not.
-     */
-    TBool GetPhraseCreationState();
-    
-    /**
-     * Set whether at the editing state happen editing for pinyin phrase creation.
-     * 
-     * @param aState. ETrue happen editing,EFalse others.
-     * @return None.
-     */
-    void SetPhraseCreationEditingState( TBool aState );
-    
-    /**
-     * Get whether at the editing state happen editing for pinyin phrase creation.
-     * 
-     * @param aState. ETrue happen editing,EFalse others.
-     * @return None.
-     */
-    TBool GetPhraseCreationEditingState();
-    
-    /**
-     * Set flag whether from candidate state change state.
-     * 
-     * @param aFlag  ETrue from the candidate state change state, other EFalse.
-     * @since S60 V5.0
-     * @return none.
-     */
-    void SetFromCandidateChangeStateFlag( TBool aFlag );
-    
-    /**
-     * Get flag whether from candidate state change state.
-     * 
-     * @since S60 V5.0
-     * @return ETrue from the candidate state change state, other EFalse.
-     */
-    TBool GetFromCandidateChangeStateFlag();
-
-    /**
-     * Set count of valid keystroke.
-     * 
-     * @since S60 V5.0
-     * @return none
-     */
-    void SetValidKeystrokeCount( TInt aCount );
-    
-    /**
-     * get count of valid keystroke.
-     * 
-     * @since S60 V5.0
-     * @return count of valid keystroke.
-     */
-    TInt GetValidKeystrokeCount();
-    
-    /**
-     * Set last cba resouce id.
-     * 
-     * @since S60 V5.0
-     * @return None
-     */
-    void SetLastResouce( TInt aResouceId );
-    
-    /**
-     * Get last cba resouce id.
-     * 
-     * @since S60 V5.0
-     * @return last resouce id
-     */
-    TInt GetLastResouce();
-    
-    
-    /**
-     * Set change state from Edit to Spelling flag.
-     * 
-     * @param aFlag,If ETrue Change from Edit state to spelling state,EFalse others. 
-     * @since S60 V5.0
-     * @return none.
-     */
-    void SetFromEditToSpellingFlag( TBool aFlag = EFalse );
-
-    /**
-     * Get change state from Edit to Spelling flag.
-     * 
-     * @param none. 
-     * @since S60 V5.0
-     * @return ETrue Change from Edit state to spelling state,EFalse others..
-     */
-    TInt GetFromEditToSpellingFlag();
-    
-    
-    /**
-     * Set valid keystroke change flag.
-     * 
-     * @param aFlag, ETrue valid keystroke changed,EFalse others.
-     * @since S60 V5.0
-     * @return none
-     */
-    void SetValidKeystrokeChange( TBool aFlag );
-    
-    /**
-     * Get valid keystroke change flag.
-     * 
-     * @since S60 V5.0
-     * @return ETrue,if vallid keystroke changed, others EFalse.
-     */
-    TBool GetValidKeystrokeChange();
-    
-    /**
-     * Set PreStateIsPredict flag.
-     * 
-     * @param aFlag, ETrue PreStateIsPredict,EFalse others.
-     * @since S60 V5.0
-     * @return none
-     */
-    void SetPreStateIsPredictive( TBool aFlag );
-    
-    /**
-     * Get PreStateIsPredict flag.
-     * 
-     * @since S60 V5.0
-     * @return ETrue,if PreStateIsPredict, others EFalse.
-     */
-    TBool GetPreStateIsPredictive();
-
-    void SetInputLayoutMiniQwertyZhuyin();
-    
-    void ResetInputLayoutMiniQwertyZhuyin();
-
-protected: // From CCoeControl
-	TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
-
-protected:
-    /**
-     * constructor
-     */
-	CAknFepUICtrlPinyinPopup(CAknFepUiLayoutDataMgr* aLafDataMgr);
-    /**
-     * second phase construction
-     */
-    void ConstructL(RWindow& aParent);
-	/**
-     * Construct arrow bitmap class
-     */
-	void ConstructBitmapsL();
-    /**
-     * layout the rectangles
-     */
-    void LayoutRects();
-
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * Layout the input panes
-     */
-    void LayoutInputPanes();
- 
-	/**
-     * set the visibility of the input panes, according to the current layout
-     */
-    void SetInputPaneVisibility();
-
-    /**
-     * layout the background frames
-     */
-    void LayoutFrames();
-
-    /**
-     * just layout one of the input panes
-     *
-     * @param aIndex index of input pane to lay out
-     *
-     */
-    void LayoutInputPane(TInt aIndex);
-
-    /**
-     * update input panes' visibility
-     */
-    void UpdateInputPaneVisibility(void);
-
-	
-public: //from CcoeControl
-     /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     * 
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     *
-     */
-    virtual void Draw(const TRect& aRect) const;
-    /**
-     * layout the background frames
-     *
-     * @param aOuterRect filled with outer rect coords
-     * @param aInnerRect filled with inner rect coords
-     *
-     */
-    void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
- 
-private: // the following need resetting
-    RPointerArray<CAknFepUICtrlInputPane> iInputPaneArray;
-private: // the following are not owned
-    CAknFepUiLayoutDataMgr* iLafDataMgr;
-    MAknFepUICtrlPinyinPopupSizeChangedObserver* iSizeChangedObserver;
-private: // the following are owned
-    CAknsFrameBackgroundControlContext* iBgContext; 
-    CFbsBitmap* iNaviArrowBitmapLeft;
-    CFbsBitmap* iNaviArrowBitmapLeftMask;
-    CFbsBitmap* iNaviArrowBitmapRight;
-    CFbsBitmap* iNaviArrowBitmapRightMask;
-
-private:
-	TAknLayoutRect iIndiFepArrowLeft;
-    TAknLayoutRect iIndiFepArrowRight;
-    TInt iSelected;
-    TInt iEnabled;
-    TToneMark iToneMark;
-   	TAknLayoutRect iRectCoverMainPaneInput;
-    TAknLayoutRect iRectFirstShadowInput;
-    TAknLayoutRect iRectOutlineFrameInput;
-    TAknLayoutRect iRectInsideAreaInput;
-	TInt iVisibleCount;
-    RArray<TPage> iPages;
-    TInt iCurDisplayPage;
-    CDesCArrayFlat* iSpellingArray;
-    //Spelling index array
-    CDesCArrayFlat* iSpellingIndexArray;
-    //keystroke arrray
-    CDesCArrayFlat* iKeystrokeArray;
-    //in effect keystroke array
-    CDesCArrayFlat* iInEffectKeystrokeArray;
-    //show Keystroke array
-    CDesCArrayFlat* iShowKeystrokeArray;
-    //Optimize Keystroke array
-    CDesCArrayFlat* iOptimizeSpelling;
-    //temp Keystroke array
-    CDesCArrayFlat* iTempSpelling;
-    //Chinese array
-    CDesCArrayFlat* iChooseChineseCharacterArray;
-    //Chinese Keystroke array
-    CDesCArrayFlat* iChooseChineseCharacterArrayKeystroke;
-    
-    CDesCArrayFlat* iKeystrokeArrayForStroke;
-    CDesCArrayFlat* iInEffectKeystrokeArrayForStroke;
-    CDesCArrayFlat* iShowKeystrokeArrayForStroke;
-    CDesCArrayFlat* iChooseChineseCharacterArrayForStroke;
-    CDesCArrayFlat* iChooseChineseCharacterArrayKeystrokeForStroke;
-
-    CDesCArrayFlat* iZhuyinSymbols;
-    CDesCArrayFlat* iZhuyinShowSymbols;
-    CDesCArrayFlat* iFirstValidZhuyinGrp;
-    CDesCArrayFlat* iChineseCharsDisped;
-    CDesCArrayFlat* iZhuyinSymbolsForChineseCharsDisped;
-    TBuf<100> iEEPContent;
-    TBool iEEPContentValid;
-    
-    //the tone mark state
-    TInt iTonemarkState;
-    
-    //the stroke state
-    TInt iStrokeState;
-    
-    // The highlight goes back to wrong position when transfer from pinyin 
-    // spelling pane to pinyin candidate pane more than one time.
-    TInt iHighLightFlag;
-    
-    TInt iFlags;
-    
-    TInt iValidKeystrokeCount;
-    TInt iPhraseCreation;
-    TInt iPhraseCreationEditingState;
-    TInt iChangeState;
-    /**
-     * whether the state change from entry to spelling editing is automatical.
-     */
-    TInt iState;
-    
-    TInt iLastResouce;
-    
-    /**
-     * whether the state change from Edit to spelling.
-     */
-    TInt iChangeStateFromEditToSpelling;
-    
-    /**
-     * whether the valid keystroke changed.
-     */
-    TInt iValidKeystrokeChanged;
-    
-    /**
-     * whether the previous state is predictive display.
-     */
-    TBool iPreStateIsPredictive;
-};
-
-inline void CAknFepUICtrlPinyinPopup::SetFlag(TInt aFlag)
-    {
-    iFlags |= aFlag;
-    }
-
-inline void CAknFepUICtrlPinyinPopup::ClearFlag(TInt aFlag)
-    {
-    iFlags &= ~aFlag;
-    }
-
-inline TBool CAknFepUICtrlPinyinPopup::IsFlagSet(TInt aFlag) const
-    {
-    return iFlags & aFlag;
-    }
-
-#endif // __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonCtrlExactWordPopupContent.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/*
-* Copyright (c) 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:             Contents of the exact word tooltip shown above inline editor
-*                when the exact word differs from the inline word in Western
-*                QWERTY predictive mode.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_EXACT_WORD_POPUP_CONTENT_H 
-#define __AKN_FEP_EXACT_WORD_POPUP_CONTENT_H
-#include <coecntrl.h>
-#include "AknFepUiWordPopupContent.h"
-
-// FORWARD DECLARATIONS
-class CAknPreviewPopUpController;
-
-
-// CLASS DECLARATION
-class CAknFepExactWordPopupContent : public CCoeControl, public MAknFepUiWordPopupContent
-    {
-    public: // construction and destruction
-    
-        /**
-        * Two phased constructor
-        */
-        static CAknFepExactWordPopupContent* NewL();
-        
-        /**
-        * Destructor
-        */
-        ~CAknFepExactWordPopupContent();
-        
-    private: // construction
-        
-        /**
-        * C++ constructor
-        */
-        CAknFepExactWordPopupContent();
-        
-        /**
-        * Second phase constructor
-        */
-        void ConstructL();
-        
-    public: // new interface functions
-    
-        /**
-        * Sets the text to be shown in the popup
-        */
-        void SetTextL( const TDesC& aText );
-        
-        /**
-        * Sets the popup controller pointer. This must be called before drawing the popup contents.
-        * @param    aController Pointer to the popup for which this object provides the content.
-        
-        void SetPopupController( CAknPreviewPopUpController* aController );
-		*/
-		
-        /**
-        * Sets the direction of the arrow included in the popup. This should be used as a hint
-        * about the direction to tap to select the word shown in the popup.
-        */
-        void SetArrowDirection( TArrowDirection aDirection );
-
-    public: // functions from base classes
-    	/**
-     	* Returns the minimuz size of this preview popup content.
-     	*/    
-        TSize MinimumSize();        
-    
-    public: //new interface functions
-    	/**
-        * Sets the delay used before showing the preview popup. The default 
-        * delay is one second.
-        * @param aDelay Delay in microseconds.
-        */
-    	void SetPopUpShowDelay( const TTimeIntervalMicroSeconds32& aDelay );
-    	/**
-        * Sets the preview popup visible after specified delay. If the popup
-        * is already visible it is hidden immediately and shown again after the
-        * showing delay. Popup is automatically hidden after its hiding delay
-        * unless the delay is zero in which case the popup is shown infinitely.
-        */
-        virtual void ShowPopUp();
-        
-        /**
-        * Hides the popup immediately.
-        */
-        virtual void HidePopUp();
-        /**
-        * Sets the position of preview popup. Popup's size is determined by the
-        * size of its content. The popup is placed left and down from the given 
-        * point. If fixed mode is used then this function has no effect.
-        * @param aPoint Popup's position.
-        */
-        virtual void SetPosition( const TPoint& aPoint );
-
-        /**
-        * Updates popup's size to reflect a change in content's size.
-        * Should be called if the size of the content is changed dynamically.
-        */
-        virtual void UpdateContentSize();
-        
-        /**
-        * Returns the popup's size.
-        */
-        virtual TSize Size() const; 
-		
-		/**
-        * Returns true if the popup is visible.
-        */
-        virtual TBool IsPopUpVisible();
-        virtual void HandlePointerEventL( const TPointerEvent& aPointerEvent )	;        
-     
-    private: // functions from base classes
-    
-        /**
-        * Draws the contents of the popup
-        * @aRect    The area which should be redrawn.
-        */
-        void Draw( const TRect& aRect ) const;
-        
-        /**
-        * Draws the upwards or downwards pointing arrow, depending on the value
-        * set by SetArrowDirection(). The upward arrow is placed in the bottom of the popup
-        * while the downward arrow is drawn on the top part of the popup.
-        * @aTextRect    The area of the poup which is reserved for the text.
-        */ 
-        void DrawArrowL( const TRect& aTextRect ) const;
-        
-    private: // data
-    	TBool iIsPopUpVisible;
-        //! The text label to be shown in the popup
-        CEikLabel* iLabel;
-        
-        //! The popup where this object provides the content.
-        CAknPreviewPopUpController* iPopupController; // not owned
-        
-        //! Tells the direction of the arrow included in the popup
-        MAknFepUiWordPopupContent::TArrowDirection iArrowDirection;
-    };
-
-#endif // AKN_FEP_EXACT_WORD_POPUP_CONTENT_H
\ No newline at end of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonImpl.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Avkon implementation of the FEP's UI component access
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIAVKONIMPL_H
-#define AKNFEPUIAVKONIMPL_H
-
-#include "aknfepuiinterface.h"
-#include "AknFepUiAvkonMenus.h"
-#include <eikmobs.h>
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-#include <e32property.h>
-#endif
-
-class CEikButtonGroupContainer;
-class CAknCharMapDialog;
-class CEikDialog;
-class CAknFepPredictiveSettingDialog;
-class CAknListQueryDialog;
-class CAknFepTextQueryDialog;
-
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-class CRepository;
-#endif
-
-class CAknFepUIAvkonImpl : public CAknFepUIInterface, public MEikMenuObserver
-	{
-private:
-    void ConstructL();
-public:
-	static CAknFepUIAvkonImpl* NewL();
-	~CAknFepUIAvkonImpl();
-	CAknFepUIAvkonImpl();
-public:	// menu abstraction
-	void SetFepMenuObserver(MAknFepUiInterfaceMenuObserver* aObserver);
-	CAknFepUiInterfaceMenuBar* EditorStateMenuBar(CAknEdwinState* aEditorState);
-	CAknFepUiInterfaceMenuBar* NewMenuBarL(MAknFepUiInterfaceMenuObserver* aObserver, TInt aHotKeyResourceId, TInt aMenuTitleResourceId);
-	CAknFepUiInterfaceMenuBar* ObjectProviderMenuBar(MObjectProvider* aObjectProvider);
-
-public:	// stylus pop-up menu abstraction
-    CAknFepUiInterfaceStylusPopUpMenu* NewStylusPopUpMenuL(MAknFepUiInterfaceMenuObserver* aObserver, const TPoint& aPoint);
-	
-public: // indicator abstraction
-	virtual CAknFepIndicator* NewIndicatorL();
-	
-public:	// use case abstraction
-	void LaunchConfirmationNoteL(TInt aResourceId);
-	void LaunchHelpTextQueryL(TInt aResourceId);
-	TInt LaunchCangJieOptionDlgL(TInt aResourceId, TInt& aLevel, MDesC16Array* aItems);
-	TInt LaunchListPopupL(TInt aResourceId, TInt& aIndex, TInt aInitialIndex, MDesC16Array* aItems, CArrayPtr<CGulIcon>* aIcons);
-	void UpdateSoftkeysL(TInt aResourceId, CAknEdwinState* aEditorState, MEikCommandObserver* aObserver, TInt aInputMode);
-	TBool SoftkeysExist();
-	TInt SoftkeyCommandId(TInt aPosition);
-	void DeleteSoftkeys();
-	void DrawSoftkeysNow();
-	void CreateSoftkeys(TInt aResourceId, MEikCommandObserver* aObserver);
-	TBool UpdateSoftkeyLabelL(TInt aPosition, TInt aCommandId, TInt aTextResId);
-	TInt CharMapDialogL(TInt aCharCase, TDes& aSpecialChars, TInt aCharSetResourceId, TBool aLockNumericKeys, TBool aShowPictographsFirst, TBool aShowNoPictographs, TBool aShowAnotherTable, TInt aAfterSctChars, TInt aResId, TBool aDisableRecentItemRow );
-	TInt TextQueryDialogL(TDes& aDataText, CAknEdwinState& aEditorState, TInt aEditorFlag, TInt aResId);
-	CPlainText* PlainText(CAknEdwinState* aEditorState);
-	void UpdateEditorContext(MAknEditingStateIndicator& aIndicator, MAknFepManagerInterface& aManager);
-
-    void TouchPaneSetFepPenSupportInterface(MAknFepPenSupportInterface* aFepPenSupportInterface);
-    void TouchPaneAllowInputMethodActivation(TBool aValue);
-    void TouchPaneRefreshL();
-    void TouchPaneSetInputMethodIconActivated(TBool aActivated);
-
-	TBool IsDisplayDataQuery(TBool aIsFepAwareTextEditor);
-
-public:	// APAC abstraction
-	MAknFepUICtrlContainerChinese* NewAknFepUICtrlContainerChineseL();
-	MAknFepUICtrlContainerJapanese* NewAknFepUICtrlContainerJapaneseL(CAknFepUIManagerJapanese* aUiMng);
-	void JapaneseKutenQueryDialogL(TInt aResId, TInt& aCharCode, TInt aTone);
-	
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-public:	// candidate words pop-up abstraction
-	MAknFepCandidatePopup* NewCandidatePopupL(MAknFepCandidatePopupCallback& aOwner);
-
-public:	//bubble implmentation
-	MAknFepUiWordPopupContent* CreateWordPopupContentL();
-	
-public: // for predictive setting dialog
-	void LaunchPredictiveSettingDialogL(TInt aDialogResId, 
-										TInt aMenuResId, 
-										TInt aConfirmationQueryResId,
-										TInt aTitlePaneResId );
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-	void LaunchWritingLanguageSettingDialogL(TInt aDialogResId, TInt aMenuResId, TInt aTitlePaneResId);
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-
-#ifdef __USER_DICTIONARY_EDITING__
-	//for editing user dictionary
-	void LaunchUserDictEditDialogL();
-#endif //__USER_DICTIONARY_EDITING__
-
-// Predictive QWERTY (XT9) changes <----	
-#endif //RD_INTELLIGENT_TEXT_INPUT
-	void DeleteDialogs();
-	
-private:	// from MEikMenuObserver
-	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
-	void DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar);
-	void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
-
-private:	// from MEikCommandObserver
-	void ProcessCommandL(TInt aCommandId);
-
-private:
-    /**
-     *  Show cba of aResourceId using owns cba object(iCba)
-     *
-     *  @since 3.2
-     *  @param aResourceId softkeys resource id.
-     *  @return None
-     */
-    void ShowOwnsSoftkeysL(const TInt aResourceId, MEikCommandObserver* aObserver);
-
-    /**
-    * This method is that empty softkeys is shown in case aShown is ETrue.
-    * If aShown is EFalse, empty softkeys is erased.
-    * @param aShown    If ETrue, empty softkeys is shown.
-    */
-	void ShowEmptySoftkeysL(TBool aShown, MEikCommandObserver* aObserver, TInt aInputMode);
-	
-#ifdef RD_INTELLIGENT_TEXT_INPUT	
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-        class CSubscriber : public CActive
-            {
-        public:
-            CSubscriber(TCallBack aCallBack, RProperty& aProperty);
-            ~CSubscriber();
-
-        public: // New functions
-            void SubscribeL();
-            void StopSubscribe();
-
-        private: // from CActive
-            void RunL();
-            void DoCancel();
-
-        private:
-            TCallBack   iCallBack;
-            RProperty&  iProperty;
-            };
-        /**
-         * Call back function to handle a change in keyboard layout.
-         */ 
-        static TInt HandleKeyboardLayoutChangeNotification(TAny* aObj);
-        
-        void HandleKeyboardLayoutChange();
-        
-        CSubscriber*    iKeyboardLayoutStatusSubscriber;
-        RProperty       iKeyboardLayoutStatusProperty;    
-        
-        friend class CSubscriber;
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__        
-#endif
-        
-private:
-    CEikButtonGroupContainer* iCba;         // own
-    CAknFepUIAvkonMenuPaneImpl iTempMenuPane;
-    CAknFepUIAvkonMenuBarImpl iTempMenuBar;
-    CAknFepUIAvkonMenuBarImpl iEditorMenuBar;
-    CAknFepUIAvkonMenuBarImpl iObjectProviderMenuBar;
-    MAknFepUiInterfaceMenuObserver* iFepMenuObserver;
-    CAknCharMapDialog* iCharMapDialog;
-    CEikDialog* iDialog;
-    CAknFepPredictiveSettingDialog* iPredictiveSettingDialog;
-    CAknListQueryDialog* iListQueryDialog;
-    CAknFepTextQueryDialog* iTextQueryDialog;
-	};
-
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonMenus.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Avkon implementation of the FEP's Menu component
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIAVKONMENUS_H
-#define AKNFEPUIAVKONMENUS_H
-
-#include "aknfepuimenus.h"
-#include <eikmobs.h>
-
-class CEikMenuPane;
-class CEikMenuBar;
- 
-
-class CAknFepUIAvkonMenuPaneImpl : public CAknFepUiInterfaceMenuPane
-	{
-public:
-	CAknFepUIAvkonMenuPaneImpl();
-    void ConstructMenuSctRowFromDialogL( TInt aCharCase, TDes& aSpecialChars, TInt aResourceId );
-    void ConstructMenuSctRowL( TDes& aSpecialChars, TInt aResourceId );
-    void DeleteMenuItem(TInt aCommandId);	
-    void InsertMenuItemL(const SItemData& aMenuItem, TInt aPosition);
-    TBool MenuItemExists(TInt aCommandId, TInt& aPosition);
-    TInt NumberOfItemsInPane() const;
-    void SetItemDimmed(TInt aCommandId, TBool aDimmed);
-    void SetMenuPane(CEikMenuPane* aMenuPane);
-    CEikMenuPane* GetMenuPane();
-public:
-	CEikMenuPane* iMenuPane;	// not owned
-	};
-
-
-class CAknFepUIAvkonMenuBarImpl : public CAknFepUiInterfaceMenuBar
-	{
-private:
-	NONSHARABLE_CLASS(TEditMenuObserver) : public MEikMenuObserver
-		{
-	public: // from MEikMenuObserver
-		void ProcessCommandL(TInt aCommandId);
-		void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
-		void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
-	public:
-		MAknFepUiInterfaceMenuObserver* iObserver;
-		CAknFepUIAvkonMenuPaneImpl iTempPane;
-		};
-public:
-	CAknFepUIAvkonMenuBarImpl();
-	CAknFepUiInterfaceMenuPane* MenuPane();
-	void SetMenuType(TMenuType aMenuType);
-	void StopDisplayingMenuBar();
-	void ReplaceAllMenuPanes(TInt aResourceId);
-	void TryDisplayMenuBarL();
-	void SetFocus(TBool aFocus);
-	void RemoveFromStack();
-	TInt FirstMenuPaneResourceId();
-	TBool IsDisplayed();
-	void AddToStackL(TInt aPriority,TInt aStackingFlags);
-    void TryDisplayMenuBarWithoutFepMenusL();
-    void SetMenuTitleResourceId(TInt aResourceId);
-    void SetEditMenuObserver(MAknFepUiInterfaceMenuObserver* aEditMenuObserver);
-    void RemoveEditMenuObserver(MAknFepUiInterfaceMenuObserver* aEditMenuObserver);
-
-public:
-	CEikMenuBar* iMenuBar;	// not owned
-	CAknFepUIAvkonMenuPaneImpl iTempMenuPane;
-	TEditMenuObserver iEditMenuObserver;
-	};
-
-
-class CAknFepUIAvkonMenuBarOwningImpl : public CAknFepUIAvkonMenuBarImpl, public MEikMenuObserver
-	{
-public:
-	~CAknFepUIAvkonMenuBarOwningImpl();
-	void ConstructL(MAknFepUiInterfaceMenuObserver* aObserver, TInt aHotKeyResourceId, TInt aMenuTitleResourceId);
-
-private:	// from MEikMenuObserver
-	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
-	void DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar);
-	void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
-
-private:	// from MEikCommandObserver
-	void ProcessCommandL(TInt aCommandId);
-
-private:
-	// owns CAknFepUIAvkonMenuBarImpl::iMenuBar
-	MAknFepUiInterfaceMenuObserver* iObserver;
-	};
-
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonStylusPopUpMenu.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Avkon implementation of the FEP's UI component access
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIAVKONSTYLUSPOPUPMENU_H
-#define AKNFEPUIAVKONSTYLUSPOPUPMENU_H
-
-#include "AknFepUiStylusPopupMenu.h"
-#include <eikmobs.h>
-
-class CAknStylusPopUpMenu;
-class MAknFepUiInterfaceMenuObserver;
-
-
-class CAknFepUIAvkonStylusPopUpMenu : public CAknFepUiInterfaceStylusPopUpMenu, public MEikMenuObserver
-	{
-public:
-	~CAknFepUIAvkonStylusPopUpMenu();
-	void ConstructL(MAknFepUiInterfaceMenuObserver* aObserver, const TPoint& aPoint);
-
-public:
-    void AddMenuItemL(const TDesC& aItem, const TInt aCommandId);
-    void SetPosition(const TPoint& aPoint);    
-    void ShowMenu();
-
-private:	// from MEikMenuObserver
-	void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane);
-	void DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar);
-	void SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis);
-
-private:	// from MEikCommandObserver
-	void ProcessCommandL(TInt aCommandId);
-
-private:
-	MAknFepUiInterfaceMenuObserver* iObserver;
-	CAknStylusPopUpMenu* iPopupMenu;
-	};
-
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiInterfacePanic.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*       Panic definitions.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#if !defined(__AknFepUiInterfacePanic_h__)
-#define __AknFepUiInterfacePanic_h__
-
-#include <e32std.h>
-
-enum TAknFepUiInterfacePanic
-    {
-    EAknFepUiInterfacePanicCurrentSelectionOutsideVisibleCandidates,
-    EAknFepUiInterfacePanicAttemptedSelectionOutsideVisibleCandidates,
-    EAknFepUiInterfacePanicAttemptedSetItemTextOutsideMaxCandidates,
-    EAknFepUiInterfacePanicAttemptedSetModeOutsideMaxCandidates,
-    EAknFepUiInterfacePanicAttemptedLayoutOutsideVisibleCount,
-    EAknFepUiInterfacePanicNewVisibleCountExceedsRange,
-    EAknFepUiInterfacePanicCandidatesEmpty,
-    EAknFepUiInterfacePanicNoCandidatePane,
-    EAknFepUiInterfacePanicCandidatePaneNotSupportScrollDirection,
-    EAvkonImplNotSupported
-    };
-
-GLREF_C void AknFepUiInterfacePanic(TAknFepUiInterfacePanic aPanic);
-
-#endif
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUserDictionaryEditDialog.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepUserDictionaryEditDialog 
- * ============================================================================
- */
-
-#ifndef AKNFEPUSERDICTIONARYEDITDIALOG_H_
-#define AKNFEPUSERDICTIONARYEDITDIALOG_H_
-
-#include <aknselectionlist.h>
-#include <aknfep.rsg>
-#include <aknsfld.h>
-#include <AknQueryDialog.h>
-#include <avkon.hrh>
-#include <AknsUtils.h>
-#include <AknsConstants.h>
-#include <aknconsts.h>
-#include <aknlists.h>
-#include <avkon.mbg>
-
-#include <StringLoader.h>
-#include <fbs.h>
-
-#include "AknFepPredOwnWordsModel.h"
-
-const TInt KMaxUDBLength = 64;
-
-class CAknFepUserDictionaryEditDialog : public CAknMarkableListDialog
-{
-
-    public:
-        /**
-        * Function:     NewL
-        *
-        * Discussion:   Factory function used to create a new instance of
-        *               CAknFepPredictiveSettingDialog
-        *
-        * Returns:      A newly created instance of CAknFepUserDictionaryEditDialog
-        */
-        static CAknFepUserDictionaryEditDialog* NewL(
-                TInt aOpenedItem,
-                CArrayFixFlat<TInt> *aSelectedItems,
-                MDesCArray *aArray);
-
-        /**
-        * Function:     NewLC
-        *
-        * Discussion:   Factory function used to create a new instance of
-        *               CAknFepPredictiveSettingDialog and leave a pointer to it on the
-        *               cleanup stack.
-        *
-        * Params:       aMenuResId - menu resource id.
-        * Params:       aConfirmationQueryResId - Confirmation Query resource id.
-        * Returns:      A newly created instance of CAknFepUserDictionaryEditDialog
-        */
-        static CAknFepUserDictionaryEditDialog* NewLC(
-                TInt aOpenedItem,
-                CArrayFixFlat<TInt> *aSelectedItems,
-                MDesCArray *aArray);
-        
-        // the static RunDlgLD launch function
-        static void RunDlgLD();
-        
-        /**
-        * Function:     ~CAknFepPredictiveSettingDialog
-        *
-        * Discussion:   Virtual destructor for CAknFepUserDictionaryEditDialog. Ensures that all
-        *               allocated memory is returned to the heap before deletion
-        *               of object.
-        */
-        virtual ~CAknFepUserDictionaryEditDialog();
-        
-    private:
-        //virtual methods from CAknMarkableListDialog:
-        void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane);
-        TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-        TBool OkToExitL(TInt aButtonId);
-        // the control initializer function
-        void PreLayoutDynInitL();
-                
-        void ProcessCommandL( TInt aCommandId );
-        
-        //Constructor
-        CAknFepUserDictionaryEditDialog(
-                TInt aOpenedItem,
-                CArrayFixFlat<TInt> *aSelectedItems,
-                MDesCArray *aArray );
-                
-                
-        
-        //Own methods - 
-        void UpdateMSKLabelL();
-        
-        //Query for new word from user. Also used to edit existing word
-        TBool QueryWordL( const TDesC& aTitle, TDes& aNewWord );
-        
-        //Confirmation query for deletion
-        TBool ConfirmDeleteL( const TDesC& aPrompt );
-        
-        //To handle different commands from the options menu or soft keys:
-        void HandleEditCommandL();
-        void HandleAddNewCommandL();
-        void HandleDeleteCommandL();      
-        
-        //To get the correct index if a filtered list is being shown
-        TInt CurrentItemIndex();
-        const CArrayFix<TInt>* SelectedItemsL();     
-        void HandleAddNewIntoFilteredListL( TInt &aOriginalItemIndex );
-        
-    private: //data
-         
-        CEikColumnListBox*  iOwnWordsListBox;
-        TInt iOpenedItem;
-        CArrayFixFlat<TInt>* iSelectedItems;
-        CAknFepPredOwnWordsModel* iOwnWordsModel;
-        TInt iMSKPosition;
-                
-};
-
-#endif /*AKNFEPUSERDICTIONARYEDITDIALOG_H_*/
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepchineseuidataconv.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* Copyright (c) 2009 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 AKNFEPCHINESEUIDATACONV_H_
-#define AKNFEPCHINESEUIDATACONV_H_
-
-// System includes
-#include <e32cmn.h>
-#include <e32des16.h>
-#include <e32def.h>
-#include <gdi.h>
-#include <AknLayout2Def.h>
-#include <AknUtils.h>
-
-class CAknFepChineseUIDataConv : public CBase
-    {
-public:
-    static TInt AnyToInt(TAny* aOriginal);
-
-    static TRect AnyToRect(TAny* aOriginal);
-
-    static TPoint AnyToPoint(TAny* aOriginal);
-
-    static TRgb AnyToRgb(TAny* aOriginal);
-
-    static CFont* AnyToFont(TAny* aOriginal);
-    
-    static TSize AnyToSize(TAny* aOriginal);
-    
-    static TAknTextLineLayout AnyToTextLine(TAny* aOriginal);
-    
-    static TAknLayoutText AnyToLayoutText(TAny* aOriginal);
-    
-    static TAknWindowLineLayout AnyToWindowLine(TAny* aOriginal);
-    
-    static TAknLayoutRect AnyToLayoutRect(TAny* aOriginal);
-    
-    };
-
-#endif /*AKNFEPCHINESEUIDATACONV_H_*/
-
-//End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,360 +0,0 @@
-/*
-* 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 CAknFepUICtrlEEPControl definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPUICTRLEEPCONTROL_H
-#define C_AKNFEPUICTRLEEPCONTROL_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <coecntrl.h>
-
-#include "insertionpoint.h"
-
-class CAknFepUiLayoutDataMgr;
-/**
- * The editable entry pane control class.
- * 
- * @lib aknfepuiavkonplugin.dll
- * @since S60 v5.0
- */
-const TInt KLROffset = 5;
-const TInt KCursorResetOffset = 20;
-const TInt KCursorResetStartOffset = 85;
-const TInt KDenominator = 100;
-
-class CAknFepUICtrlEEPControl : public CCoeControl, public MRefreshObserver
-    {
-public:
-    /**
-     * The display style for the text.
-     */
-    enum TDspStyle
-        {
-        ENomal,
-        EUnderline,
-        EHighlight,
-        EUnderlineHighlight
-        };
-    
-    class TSegment
-        {
-    public:
-        /**
-         * C++ constructor.
-         * 
-         * @since S60 v5.0
-         * @param None.
-         * @return self object.
-         */
-        TSegment( TInt aBeg, TInt aEnd, TDspStyle aStyle );
-        
-        /**
-         * Compare the Index
-         * 
-         * @since S60 v5.0
-         * 
-         * @param s1 the TSegment object.
-         * @param s2 the TSegment object.
-         * @return index 
-         */
-        static TInt
-            CompareByBegIndex( const TSegment& s1, const TSegment& s2 );
-        TInt iBegin;
-        TInt iEnd;
-        TDspStyle iStyle;
-        };
-    
-    /**
-     * NewL function.
-     * 
-     * @since S60 v5.0
-     * @param aParent. the RWindow object.
-     * @return self object.
-     */
-    static CAknFepUICtrlEEPControl* NewL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * NewLC function.
-     * 
-     * @since S60 v5.0
-     * @param aParent. the RWindow object.
-     * @return self object.
-     */
-    static CAknFepUICtrlEEPControl* NewLC( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-
-    /**
-     * Cancel and destroy.
-     * 
-     * @since S60 v5.0
-     * 
-     * @return none.
-     */
-    virtual ~CAknFepUICtrlEEPControl( );
-
-    /**
-     * From CCoeControl
-     * Draw the control.
-     * 
-     * @since S60 v5.0
-     * @param aRect need to draw rect.
-     * @return None.
-     */
-    virtual void Draw( const TRect& aRect ) const;
-
-    /**
-     * From CCoeControl
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    virtual void SizeChanged( );
-
-    /**
-     * From MRefreshObserver
-     * Called by the cursor object.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void Refresh();
-
-    /**
-     * Set the visual text and store it into member data buffer.
-     * 
-     * @since S60 v5.0
-     * @param aDes. The buffer you want to display.
-     * @return None.
-     */
-    void SetText( const TDesC& aDes );
-
-    /**
-     * Set the cursor position in the visual text rect.
-     * 
-     * @since S60 v5.0
-     * @param aIndex. it represent the cursor should appear in front of aIndex character.
-     * @return. error code. 0 for success.
-     */
-    TInt SetCursorPosition( TInt aIndex );
-
-    /**
-     * Get the cursor position in visual text.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return. The cursor position.
-     */
-    TInt GetCursorPosition( );
-
-    /**
-     * Set the underlined text beginning index and ending index.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for underlined text.
-     * @param aEnd. the ending index for underlined text.
-     * @return. error code, 0 for success.
-     */
-    TInt SetUnderline( TInt aBeg, TInt aEnd );
-
-    /**
-     * Set the highlighted text beginning index and ending index.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for highlighted text.
-     * @param aEnd. the ending index for highlighted text.
-     * @param aColor. the color of highlighted text, KRgbRed by default.
-     * @return. error code, 0 for success.
-     */
-    TInt SetHighlight( TInt aBeg, TInt aEnd );
-    
-    /**
-     * Add a TSegment into iArray to identify the segment with a specified style.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index.
-     * @param aEnd. the ending index.
-     * @param aType. the specified style.
-     */
-    void SetSegmentL ( TInt aBeg, TInt aEnd, TDspStyle aStyle );
-    
-    /**
-     * Add a TSegment into iArray to identify the segment with a specified style.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index.
-     * @param aEnd. the ending index.
-     * @param aType. the specified style.
-     */
-    void SetSegment ( TInt aBeg, TInt aEnd, TDspStyle aStyle );
-
-    /**
-     * Active the cursor,the cursor will be appeared with a glint.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void ActiveCursor( );
-
-    /**
-     * Deactive the cursor, the cursor will be gray and with no glint.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void DeactiveCursor( );
-    
-    /**
-     * Enable the cursor.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void EnableCursor( );
-
-    /**
-     * Disable the cursor.
-     *  
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void DisableCursor( );
-
-    /**
-     * Move cursor to the left by a specified stride.
-     * 
-     * @since S60 v5.0
-     * @param aStride. specify the stride.
-     * @return. error code, 0 for success.
-     */
-    TInt MoveCursorLeft( TInt aStride );
-
-    /**
-     * Move cursor to the right by a specified stride.
-     * 
-     * @since S60 v5.0
-     * @param aStride. specify the stride.
-     * @return. error code, 0 for success.
-     */
-    TInt MoveCursorRight( TInt aStride );
-
-    /**
-     * Reset all its member data to initialized state.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void ResetAll( );
-
-private:
-
-    /**
-     * C++ constructor.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     */
-    CAknFepUICtrlEEPControl(CAknFepUiLayoutDataMgr* aLafDataMgr);
-
-    /**
-     * Two-phrase constructor.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void ConstructL( RWindow& aParent );
-
-    /**
-     * Calculate the frame rect.
-     * 
-     * @since S60 v5.0
-     * @param aOuterRect. a output param for storing the outer rect.
-     * @param aInnerRect. a output param for storing the inner rect.
-     * @return None.
-     */
-    void CalculateFrameRects( TRect& aOuterRect, TRect& aInnerRect ) const;
-
-private:
-    //Data.
-
-    /**
-     * Laf data manager.
-     */
-	CAknFepUiLayoutDataMgr* iLafDataMgr;
-	
-    /**
-     * Store visual text.
-     * Own
-     */
-    HBufC* iBuffer;
-    
-    /**
-     * Whether cursor should be drawn on the screen.
-     */
-    TBool isCursorDraw;
-    
-    /**
-     * The cursor pointer.
-     * Own
-     */
-    CInsertionPoint* iInsertionPoint;
-    
-    /**
-     * The cursor position in visual text.
-     */
-    TInt iCursorPosition;
-    
-    /**
-     * the color for highlighted text.
-     */
-    TRgb iHighlightColor;
-    
-    /**
-     * The color for non-highlighted text.
-     */
-    TRgb iDefaultTextColor;
-    
-    /**
-     * Distinguish different segment with a different format to its context.
-     */
-    RPointerArray<TSegment> iArray;
-    };
-
-#include "aknfepuictrleepcontrol.inl"
-
-#endif /* C_AKNFEPUICTRLEEPCONTROL_H */
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrleepcontrol.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* 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 CAknFepUICtrlPinyinEEP definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// ---------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------
-//
-inline CAknFepUICtrlEEPControl::TSegment::TSegment( TInt aBeg, TInt aEnd,
-    TDspStyle aStyle )
-    {
-    iBegin = aBeg;
-    iEnd = aEnd;
-    iStyle = aStyle;
-    }
-
-// ---------------------------------------------------------
-// Compare the Index.
-// ---------------------------------------------------------
-//
-inline TInt CAknFepUICtrlEEPControl::TSegment::CompareByBegIndex(
-    const TSegment& s1, const TSegment& s2 )
-    {
-    if ( s1.iBegin == s2.iBegin )
-        return 0;
-    else
-        return s1.iBegin > s2.iBegin ? 1 : -1;
-    }
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuictrlpinyineep.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,960 +0,0 @@
-/*
-* 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 CAknFepUICtrlPinyinEEP definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPUICTRLPINYINEEP_H
-#define C_AKNFEPUICTRLPINYINEEP_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <coecntrl.h>
-#include <AknUtils.h>
-#include <AknsFrameBackgroundControlContext.h> 
-
-#include "aknfepuictrleditpane.h"
-#include "aknfepuictrleepcontrol.h"
-
-/**
- * The parent control of CAknFepUICtrlEEPControl.
- * 
- * @lib aknfepuiavkonplugin.dll
- * @since S60 v5.0
- */
-const TInt KMaxBufLen = 100;
-class CAknFepUICtrlPinyinEEP : public CCoeControl, public MAknFepUICtrlEditPane
-    {
-public:
-    enum
-        {
-        EEditableEntryPane
-        };
-    enum
-        {
-        EZhuyinNULL,
-        EZhuyinInsert,
-        EZhuyinDelete,
-        EZhuyinReplace,
-        EZhuyinMoveCursor
-        };
-    /**
-     * NewL function.
-     * 
-     * @since S60 v5.0
-     * @param aParent. the RWindow object.
-     * @return self object.
-     */
-    static CAknFepUICtrlPinyinEEP* NewL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * NewLC function.
-     * 
-     * @since S60 v5.0
-     * @param aParent. the RWindow object.
-     * @return self object.
-     */
-    static CAknFepUICtrlPinyinEEP* NewLC( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * Destructor.
-     * 
-     * @return none.
-     */
-    virtual ~CAknFepUICtrlPinyinEEP();
-
-    /**
-     * From CCoeControl.
-     * 
-     * @return. count of controls.
-     */
-    virtual TInt CountComponentControls() const;
-
-    /**
-     * From CCoeControl.
-     * 
-     * @param aIndex.
-     * @return. the pointer of sub-control
-     */
-    virtual CCoeControl* ComponentControl( TInt aIndex ) const;
-
-    /**
-     * From CCoeControl.
-     * 
-     * @param aRect.
-     * @return None.
-     */
-    virtual void Draw( const TRect& aRect ) const;
-
-    /**
-     * From CCoeControl.
-     * 
-     * @param None.
-     * @return None.
-     */
-    virtual void SizeChanged();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Set the text buffer and maintain the current cursor position.
-     * 
-     * @since S60 v5.0
-     * @param aDes. the content you set.
-     * @return None.
-     */
-    void SetText( const TDesC& aDes );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Set the text buffer and posit the cursor index.
-     * 
-     * @since S60 v5.0
-     * @param aDes. the content you set.
-     * @param aCursorPos. the position of cursor.
-     * @param aMiniQwertyZhuyin 
-     * @return None.
-     */
-    void SetText( const TDesC& aDes, TInt aCursorIndex, TBool aMiniQwertyZhuyin = EFalse );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Set the text buffer and posit the cursor index for zhuyin.
-     * 
-     * @since S60 v5.0
-     * @param aDes. the content you set.
-     * @param aCursorPos. the position for cursor.
-     * @param aChineseCount. the count for chinese characters.
-     * @param aJudgeSeed. current zhuyin symbols' descriptor.
-     * @param aKeystroke. current key stroke position.
-     * @param aInvalid. whether aDes is invalid. ETrue for invalid, EFalse for valid.
-     * @return None.
-     */
-    void SetTextForZhuyin( const TDesC& aDes, TInt aCursorIndex, TInt aChineseCount,
-        const TDesC& aJudgeSeed, TInt aKeystroke, TBool aInvalid = EFalse, TBool aMiniQwertyZhuyin = EFalse );
-
-    /**
-     * From MAknFepUICtrlEditPane
-     * Set the cursor position.
-     * 
-     * @since S60 v5.0
-     * @param aIndex. the cursor position you set.
-     * @return None.
-     */
-    void SetCursor( const TInt aIndex );
-
-    /**
-     * From MAknFepUICtrlEditPane
-     * get the position index of cursor.The max cursor index must be larger
-     * than the length of text buffer by 1.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return. the position index.
-     */
-    TInt GetCursor();
-
-    /**
-     * From MAknFepUICtrlEditPane
-     * move cursor to the left by a 1 stride.
-     * 
-     * @since S60 v5.0
-     * @param aStride. the stride for motion
-     * @return. succeed or not.
-     */
-    TBool MoveCursorLeft( TInt aStride = 1 );
-
-    /**
-     * From MAknFepUICtrlEditPane
-     * move cursor to the right by a 1 stride.
-     * 
-     * @since S60 v5.0
-     * @param aStride. the stride for motion
-     * @return. succeed or not.
-     */
-    TBool MoveCursorRight( TInt aStride = 1);
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * active the cursor,the cursor will be black and with a wink.this cursor
-     * state represent this control is focused.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void ActiveCursor();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * deactive the cursor, the cursor will be gray and no wink this cursor
-     * state represent this control with no focus.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void DeactiveCursor();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * enable the cursor,the cursor will be drawn.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void EnableCursor();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * deactive the cursor, the cursor will not be drawn.
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void DisableCursor();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * set the beginning and ending index for the underline text.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for underlined text.
-     * @param aEnd. the ending index for underlined text.
-     * @return None.
-     */
-    void SetUnderline( TInt aBeg, TInt aEnd );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * get the indexes for text with underline.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. a output param for receiving beginning index for underlined text.
-     * @param aEnd. a output param for receiving ending index for underlined text.
-     * @return None.
-     */
-    void GetUnderlineIndex( TInt& aBeg, TInt& aEnd );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * set the indexes for the text with highlight
-     * 
-     * @since S60 v5.0
-     * @Param aBeg. the beginning index for highlighted text.
-     * @param aEnd. the ending index for highlighted text.
-     * @return None.
-     */
-    void SetHighlight( TInt aBeg, TInt aEnd );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * get the indexes for the text with highlight
-     * 
-     * @since S60 v5.0
-     * @param aBeg. a output parameter which will receive the beginning index.
-     * @param aEnd. a output parameter which will receive the ending index.
-     * @return None.
-     */
-    void GetHighlightIndex( TInt& aBeg, TInt& aEnd );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * set keystroke index. 
-     * 
-     * @since S60 v5.0
-     * @param aStartIndex. the keystroke index.
-     * @return None.
-     */
-    void SetCursorIndexOfKeystroke( const TInt aStartIndex );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * get the keystroke index
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return. the keystroke index.
-     */
-    TInt GetCursorIndexOfKeystroke();
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * whether this control will be actived.ETrue represent enable otherwise
-     * disable.
-     * 
-     * @since S60 v5.0
-     * @param aEnable.ETrue represent enable this control,otherwise disable.
-     * @return None.
-     */
-    void Enable( TBool aEnable );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * return whether this control is enabled.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return.ETrue represent this control is enabled, otherwise disabled.
-     */
-    TBool IsEnabled() const;
-
-    /**
-     * Get the info before cursor.
-     * 
-     * @since S60 v5.0
-     * @param aText the show info.
-     * @return none.
-     */
-    void GetText( TDes& aText );
-
-    /**
-     * Get the info before cursor.
-     * 
-     * @since S60 v5.0
-     * @param aOut the info before cursor.
-     * @return ETrue if can get the info.
-     */
-    TBool GetDesBeforeCursor( TDes& aOut );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    void SetToneMark( const TDesC& aToneMark );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    void SetToneMarkValidity( TBool aValid );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    void SetOverrideFontId( TInt aFontId );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    void SetFlag( TInt aFlag );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    void ClearFlag( TInt aFlag );
-
-    /**
-     * From MAknFepUICtrlEditPane.
-     * Not used.
-     */
-    TBool IsFlagSet( TInt aFlag ) const;
-
-    /**
-     * Set the cursor index for moving to the left.
-     * 
-     * @since S60 v5.0
-     * @param aIndex. the cursor index for moving left.
-     * @return None.
-     */
-    void SetCursorForMoveLeft( const TInt aIndex );
-
-    /**
-     * Set the cursor index for moving to the right.
-     * 
-     * @since S60 v5.0
-     * @param aIndex. the cursor index for moving right.
-     * @return None.
-     */
-    void SetCursorForMoveRight( const TInt aIndex );
-    /**
-     * Add some text at the end of buffer.
-     * 
-     * @since S60 v5.0
-     * @param aDes. the content you want to append.
-     * @return. ETrue represent success, otherwise failure.
-     */
-    TBool Append( const TDesC& aDes );
-
-    /**
-     * delete the content begin with aBeg index, and with an aLen length.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for delete.
-     * @param aLen. the length you delete.
-     * @return ETrue for success, and EFalse for failure.
-     */
-    TBool Delete( TInt aBeg, TInt aLen = 1 );
-
-    /**
-     * Insert some text after aIndex character.
-     * 
-     * @since S60 v5.0
-     * @param aIndex. the index for insert.
-     * @param aDes. the content you insert.
-     * @return ETrue for success, and EFalse for failure.
-     */
-    TBool Insert( TInt aIndex, const TDesC& aDes );
-
-    /**
-     * Replace text from aBeg index to aBeg + aLen with aDes.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for replace.
-     * @param aLen. the length for replace.
-     * @param aDes. the new content after replacing.
-     * @return ETrue for success, and EFalse for failure.
-     */
-    TBool Replace( TInt aBeg, TInt aLen, const TDesC& aDes );
-
-    /**
-     * Reset private member viariable.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-	void Reset();
-
-	/**
-     * Return kestroke array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    CDesCArrayFlat* KeystrokeArray();
-    
-	/**
-     * Return keycode array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    RArray<TInt>* KeycodeArray();
-
-    /**
-     * Return show kestroke array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    CDesCArrayFlat* ShowKeystrokeArray();
-
-    /**
-     * Return choose chinese charater array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    CDesCArrayFlat* PhraseArray();
-
-    /**
-     * Return choose chinese charater show keystroke array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    CDesCArrayFlat* PhraseShowKeyStrokeArray();
-    
-	/**
-     * Return phrase keycode array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    RArray<TInt>* PhraseKeycodeArray();
-    
-    /**
-     * Return temp array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    CDesCArrayFlat* TempArray();    
-    
-    /**
-     * Reset private member viariable array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return None.
-     */
-    void ResetAllArray();
-    
-    /**
-     * change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue change state.
-     * @return None.
-     */
-    void SetChangeState( TBool aState = ETrue );
-    
-    /**
-     * check change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue if change state, EFalse others.
-     */
-    TBool IsChangeState();
-
-    /**
-     * Set auto change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue auto change state, EFalse manual change state.
-     * @return None.
-     */
-    void SetAutoChangeStateFlag( TBool aState = ETrue );
-    
-    /**
-     * Get the auto change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue atuo change state, EFalse others.
-     */
-    TBool GetAutoChangeStateFlag();
-    
-    /**
-     * Set all the keystroke valid flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue all the keystroke is valid, EFalse others.
-     * @return None.
-     */
-    void SetAllValidFlag( TBool aState = ETrue );
-    
-    /**
-     * Get all the keystroke valid flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue all the keystroke is valid, EFalse others.
-     */
-    TBool GetAllValidFlag();
-    
-    /**
-     * Set Phrase Creation flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue is phrase creation, EFalse others.
-     * @return None.
-     */
-    void SetPhraseCreationFlag( TBool aState );
-    
-    /**
-     * Get Phrase Creation flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue is phrase creation, EFalse others.
-     */
-    TBool GetPhraseCreationFlag();
-    
-    /**
-     * Set the keystroke invalid index.
-     * 
-     * @since S60 v3.2.3
-     * @param aIndex, the keystroke invalid index.
-     * @return None.
-     */
-    void SetInvalidIndex( TInt aIndex = 0 );
-    
-    /**
-     * Get all the invalid keystroke index.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return invalid keystroke index.
-     */
-    TInt GetInvalidIndex();
-    
-    /**
-     * Set Phrase Candidate state need refresh UI flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue is that Candidate state need refresh UI,other don't need.
-     * @return None.
-     */
-    void SetCandidateRefreshFlag( TBool aState );
-    
-    /**
-     * Get Phrase Candidate state need refresh UI flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue is that Candidate state need refresh UI,EFalse don't need.
-     */
-    TBool GetCandidateRefreshFlag();
-    
-    /**
-     * Set the delimiter count of keystroke.
-     * 
-     * @since S60 v3.2.3
-     * @param aCount, the delimiter count of keystroke.
-     * @return None.
-     */
-    void SetDelimiterCount( TInt aCount );
-    
-    /**
-     * Get the delimiter count of keystroke. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return aCount, the delimiter count of keystroke.
-     */
-    TInt GetDelimiterCount();
-    
-    /**
-     * Get current cba resource id. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return current cba resource id.
-     */
-    TInt GetCurrentCBAResID();
-    
-    /**
-     * Set current cba resource id. 
-     * 
-     * @since S60 v3.2.3
-     * @param aResourceId, current cba resource id.
-     * @return None.
-     */
-    void SetCurrentCBAResID( TInt aResourceId );
-    
-    void SetEffictiveLength( TInt aLength );
-    
-    TInt GetEffictiveLength();
-    
-    void DecEffictiveLength();
-    
-    void AddEffictiveLength();
-    
-    void SetNeedClearDeliberateSelection( TBool aNeedClearDeliberateSelection );
-    
-    TBool NeedClearDeliberateSelection();
-    
-protected:
-
-    /**
-     * Layout contained controls.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the background frames.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void LayoutFrames();
-
-    /**
-     * layout its rectangles
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void LayoutRects();
-
-private:
-    /**
-     * C++ constructor.
-     */
-    CAknFepUICtrlPinyinEEP( CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * Two-phrase constructor.
-     */
-    void ConstructL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * Calculate visual text for appending.
-     * 
-     * @since S60 v5.0
-     * @param aDes.the content you want to append.
-     * @return None.
-     */
-    void CalculateVisualTextForAppend( const TDesC& aDes );
-
-    /**
-     * Calculate visual text for deleting.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index you want to delete.
-     * @param aLen. the length you want to delete, 1 by default.
-     * @return None.
-     */
-    void CalculateVisualTextForDelete( TInt aBeg, TInt aLen = 1 );
-
-    /**
-     * Calculate visual text for inserting.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for your insert.
-     * @param aDes. the content you want to insert.
-     * @return None.
-     */
-    void CalculateVisualTextForInsert( TInt aBeg, const TDesC& aDes );
-
-    /**
-     * Calculate visual text for replacing.
-     * 
-     * @since S60 v5.0
-     * @param aBeg. the beginning index for you replace.
-     * @param aLen. the length for your replace.
-     * @param aDes. the new content after your replace.
-     * @return None.
-     */
-    void CalculateVisualTextForReplace( TInt aBeg, TInt aLen,
-        const TDesC& aDes );
-
-    /**
-     * Calculate visual text for moving to left.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void CalculateVisualTextForMoveLeft();
-
-    /**
-     * Calculate visual text for moving to the right.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void CalculateVisualTextForMoveRight();
-
-    /**
-     * Calculate the underline indexes and highlight indexes according to the
-     * absolute value.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void CalculateVisualIndex();
-
-    /**
-     * layout the background frames.
-     *
-     * @since S60 v5.0
-     * @param aOuterRect filled with outer rect coords
-     * @param aInnerRect filled with inner rect coords
-     * @return None.
-     */
-    void CalculateFrameRects( TRect& aOuterRect, TRect& aInnerRect ) const;
-
-private:
-    // Data.
-	CAknFepUiLayoutDataMgr* iLafDataMgr;
-    /**
-     * the position of keystroke.
-     */
-    TInt iIndex;
-    /**
-     * Whether EEP control is enabled ( visible ) .
-     */
-    TBool iEnabled;
-    /**
-     * The background context for this control.
-     */
-    CAknsFrameBackgroundControlContext* iBgContext;
-
-    TAknLayoutRect iRectCoverMainPaneInput;
-    TAknLayoutRect iRectFirstShadowInput;
-    TAknLayoutRect iRectOutlineFrameInput;
-    TAknLayoutRect iRectInsideAreaInput;
-    /**
-     * Its contained control only for display.
-     * own
-     */
-    CAknFepUICtrlEEPControl* iEditableEntryPane;
-    /**
-     * All the text its caller set.
-     * own
-     */
-    HBufC* iAbsoluteBuffer;
-    /**
-     * The text displayed on the contained control.
-     * own
-     */
-    HBufC* iVisualBuffer;
-    /**
-     * The cursor position relative to iAbsoluteBuffer which is set by its
-     * caller.
-     */
-    TInt iAbsoluteCursorPos;
-    /**
-     * The offset between the beginning position of iVisualBuffer and
-     * iAbsoluteBuffer.
-     */
-    TInt iOffset;
-    /**
-     * The beginning position of underlined text.
-     */
-    TInt iAbsoluteUnderlineBeg;
-    /**
-     * The end position of underlined text.
-     */
-    TInt iAbsoluteUnderlineEnd;
-    /**
-     * The beginning position of highlighted text.
-     */
-    TInt iAbsoluteHighlightBeg;
-    /**
-     * The end position of highlighted text.
-     */
-    TInt iAbsoluteHighlightEnd;
-    /**
-     * Store the highlight-setting&underline-setting sequence
-     */
-    RPointerArray<CAknFepUICtrlEEPControl::TSegment> iArray;
-
-    /**
-     * Only for zhuyin use
-     * the seed descriptor used in zhuyin input method. 
-     * used to store zhuyin symbols every time.
-     */
-    TBuf<KMaxBufLen> iJudgeSeed;
-    /**
-     * used to store count for chinese character.
-     */
-    TInt iChineseCount;
-    
-    /**
-     * whether the last displayed text is valid.
-     */
-    TBool iLastValid;
-    
-    /**
-     * keystroke arrray.
-     */
-    CDesCArrayFlat* iKeystrokeArray;
-    
-    /**
-     * Keycode arrray.
-     */
-    RArray<TInt> iKeycodeArray;
-
-    /**
-     * show Keystroke array.
-     */
-    CDesCArrayFlat* iShowKeystrokeArray;
-    
-    /**
-     * Chinese array.
-     */
-    CDesCArrayFlat* iPhraseArray;
-    
-    /**
-     * phrase Keycode arrray.
-     */
-    RArray<TInt> iPhraseKeycodeArray;
-    
-    /**
-     * KeyStroke array for the Chinese which have been selected.
-     */
-    CDesCArrayFlat* iPhraseShowKeyStrokeArray;
-    
-    /**
-     * The temp array.
-     */
-    CDesCArrayFlat* iTempArray;
-    
-    /**
-     * the change state flag.
-     */
-    TInt iChangeFlag;
-    
-    /**
-     * the auto change state flag.
-     */
-    TInt iAutoChangeFlag;
-    
-    /**
-     * The all kyestroke is valid.
-     */
-    TInt iAllValidFlag;
-    
-    /**
-     * The invalid keystroke index.
-     */
-    TInt iInvalidKeystrokeIndex;
-    
-    /**
-     * Is phrase creation.
-     */
-    TInt iPhraseCreation;
-    
-    /**
-     * The candidate refresh flag.
-     */
-    TInt iCandidateRefreshFlag;
-    
-    /**
-     * The delimiter count of keystroke.
-     */
-    TInt iDelimiterCount;
-    
-    /**
-     * Current CBA resource id.
-     */
-    TInt iCurrentCBAResId;
-    
-    TInt iEffictiveLength;
-    
-    TBool iMiniQwertyZhuyin;
-    
-    TBool iNeedClearDeliberateSelection;
-    
-    };
-
-#endif /* C_AKNFEPUICTRLPINYINEEP_H */
-
-// End of File
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/aknfepuilayoutdatamgr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* 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:  This file contains classes of phrase creation layout data management
-*
-*/
-
-
-#ifndef C_PHRASECREATIONLAYOUTDATAMGR_H
-#define C_PHRASECREATIONLAYOUTDATAMGR_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <badesca.h>
-#include <coecntrl.h>
-#include <AknUtils.h>
-#include <AknLayout2ScalableDef.h>
-
-enum TAknFepChineseUiLafDataType
-    {
-    EPopupRectEntry,
-    EPopupRectCandatate,
-    EPopupRectEEP,
-    EPopupHeightEntry,
-    EPopupHeightEEP,
-    EEntryPaneWindowLine,
-    ECandidatePaneWindowLine,
-    EEEPWindowLayout,
-    EEEPWindowRect,
-    ECandidatePaneTextLine,
-    EOrdinalCandidateTextLayout,
-    ECandidateWindowLine1,
-    ECandidateWindowLine2,
-    ECandidateWindowLine3,
-    ECandidateWindowLine4,
-    ELayoutCandidateItem,
-    ELayoutEntryItem,
-    ERectCoverMainPaneInputEntry,
-    ERectFirstShadowInputEntry,
-    ERectOutlineFrameInputEntry,
-    ERectInsideAreaInputEntry, 
-    ERectCoverMainPaneInputCandidate,
-    ERectFirstShadowInputCandidate,
-    ERectOutlineFrameInputCandidate,
-    ERectInsideAreaInputCandidate, 
-    ERectCoverMainPaneInputEEP,
-    ERectFirstShadowInputEEP,
-    ERectOutlineFrameInputEEP,
-    ERectInsideAreaInputEEP,
-    ELayoutInputPaneText,
-    ELayoutLineRectEntryPane,
-    EEntryTextLayout,
-    EEntryPaneRect,
-    EIndiFepArrowLeft,
-    EIndiFepArrowRight,   	
-    ERectCoverMainPaneInput,
-    ERectFirstShadowInput,
-    ERectOutlineFrameInput,
-    ERectInsideAreaInput,
-    EEEPTextLine,
-    EEEPCursorHeight,
-    EEEPTextColor,
-    EHorizLine,
-    EEEPFirstHorizLine,
-    EEEPSecondHorizLine,
-    EEntryHorizLineWindow,
-    EEEPSecondHorizLineWindow,
-    EEEPFirstHorizLineWindow
-    
-    };
-//class CAknFepUiLayoutDataMgr;
-/**
- *  CAknFepUiLayoutDataMgr
- *  This class provides the phrase creation layout 
- *  data interface management
- *  to the program other component
- */
-/**
-* CAknFepUiLayoutDataMgr is a static fascade interface to the singleton layout data mgr object.
-* There is at most one CAknFepUiLayoutDataMgr per thread. This static interface ensures that this
-* fact can not be changed.
-*/
-class CAknFepUiLayoutDataMgr  : public CBase
-    {
-public:
-    // General public API
-
-    /**
-     * First phase construction
-     */
-    static CAknFepUiLayoutDataMgr* NewL();
-    
-    /**
-     * Read LAF info 
-     * @return None.
-     */
-    void ReadLafInfo();
-    
-    /**
-     * Get LAF info 
-     */
-    TAny* RequestData(TInt aDataType);
-    
-private:
-    
-    /**
-     * Constructor
-     */
-    CAknFepUiLayoutDataMgr();
-    
-    /**
-     * Second phase construction
-     */
-    void ConstructL();
-    
-private:
-    TSize iScreenSize;
-    TBool iLandScape;
-    
-    TRect iPopupRectEntry;
-    TRect iPopupRectCandidate;
-    TRect iPopupRectEEP;
-    TInt iPopupHeightEntry;
-    TInt iPopupHeightEEP;
-    TInt16 iEEPHeight;
-    
-    TAknWindowLineLayout iEntryPaneWindowLine;
-    TAknWindowLineLayout iCandidatePaneWindowLine;
-    
-    TAknWindowLineLayout iEEPWindowLayout;
-    TRect iEEPWindowRect;
-    TRect iEntryPaneRect;
-    
-    TAknTextLineLayout iCandidatePaneTextLine;
-    TAknWindowLineLayout iCandidateWindowLine1;
-    TAknWindowLineLayout iCandidateWindowLine2;
-    TAknWindowLineLayout iCandidateWindowLine3;
-    TAknWindowLineLayout iCandidateWindowLine4;
-    TAknWindowLineLayout iLayoutCandidateItem;
-    TAknWindowLineLayout iLayoutEntryItem;
-    
-    TAknTextLineLayout iOrdinalCandidateTextLayout;
-    TAknTextLineLayout iEntryTextLayout;
-    
-    //
-    TAknLayoutRect iRectCoverMainPaneInputEntry;
-    TAknLayoutRect iRectFirstShadowInputEntry;
-    TAknLayoutRect iRectOutlineFrameInputEntry;
-    TAknLayoutRect iRectInsideAreaInputEntry;
-    
-    TAknLayoutRect iRectCoverMainPaneInputCandidate;
-    TAknLayoutRect iRectFirstShadowInputCandidate;
-    TAknLayoutRect iRectOutlineFrameInputCandidate;
-    TAknLayoutRect iRectInsideAreaInputCandidate;
-    
-    TAknLayoutRect iRectCoverMainPaneInputEEP;
-    TAknLayoutRect iRectFirstShadowInputEEP;
-    TAknLayoutRect iRectOutlineFrameInputEEP;
-    TAknLayoutRect iRectInsideAreaInputEEP;
-    
-    TAknWindowLineLayout iEntryHorizLineWindow;
-    TAknWindowLineLayout iEEPSecondHorizLineWindow;
-    TAknWindowLineLayout iEEPFirstHorizLineWindow;
-    TAknLayoutRect iHorizLine;
-    TAknLayoutRect iEEPFirstHorizLine;
-    TAknLayoutRect iEEPSecondHorizLine;
-    
-    TAknLayoutText iLayoutInputPaneText;
-    TAknLayoutRect iLayoutLineRectEntryPane;
-    
-	TAknLayoutRect iIndiFepArrowLeft;
-    TAknLayoutRect iIndiFepArrowRight;
-    
-   	TAknLayoutRect iRectCoverMainPaneInput;
-    TAknLayoutRect iRectFirstShadowInput;
-    TAknLayoutRect iRectOutlineFrameInput;
-    TAknLayoutRect iRectInsideAreaInput;
-    
-    TAknTextLineLayout iEEPTextLine;
-    TInt iEEPCursorHeight;
-    TRgb iEEPTextColor;
-    };
-
-#endif // C_PHRASECREATIONLAYOUTDATAMGR_H
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/insertionpoint.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
-* Copyright (c) 2008-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 CInsertionPoint definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef INSERTIONPOINT_H
-#define INSERTIONPOINT_H
-
-#include <e32base.h>	// For CActive, link against: euser.lib
-#include <e32std.h>		// For RTimer, link against: euser.lib
-#include <w32std.h>
-#include "aknfepuilayoutdatamgr.h"
-
-/**
- * The cursor observer interface.
- * 
- * @lib aknfepuiavkonplugin.dll
- * @since S60 v5.0
- */
-class MRefreshObserver
-    {
-public:
-    /**
-     * When the cursor state is changed,it will notify its observer through this function.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    virtual void Refresh( ) = 0;
-    };
-
-/**
- * The cursor class.
- * 
- * @lib aknfepuiavkonplugin.dll
- * @since S60 v5.0
- */
-
-class CInsertionPoint : public CActive
-    {
-public:
-    enum TInsertionPointState
-        {
-        EUninitialized,
-        EInitialized,
-        EError
-        };
-
-    /**
-     * Cancel and destroy.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */
-    virtual ~CInsertionPoint( );
-
-    /**
-     * NewL function.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */
-     static CInsertionPoint* NewL( CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * NewLC funciton. 
-     * 
-     * @since S60 v5.0.
-     * @return none. 
-     */
-     static CInsertionPoint* NewLC( CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * Set iRefreshObserver member.
-     * 
-     * @since S60 v5.0
-     * @param aObserver. The observer you want to set.
-     * @return none.
-     */
-     void SetRefreshObserver( MRefreshObserver* aObserver );
-
-    /**
-     * Set the position of cursor.
-     * The max position of cursor is larger than length of visual text 
-     * by 1 stride.
-     * 
-     * @since S60 5.0
-     * @param aOffset. The cursor position which based on 0 index.
-     * @return None.
-     */
-     void SetPosition( TInt aOffSet );
-
-    /**
-     * Set the rect where visual text will be displayed.
-     * 
-     * @since S60 v5.0
-     * @param aRect. The rect you want to display the visual text in.
-     * @return None.
-     */
-     void SetTextRect( TRect aRect );
-
-    /**
-     * Set the height of cursor.
-     * 
-     * @since S60 v5.0
-     * @param aHeight. The cursor height you want to set.
-     * @return.
-     */
-     void SetHeight();
-
-    /**
-     * Draw the cursor on the screen.
-     * 
-     * @since S60 v5.0
-     * @param aGc. the gc you used to draw the cursor.
-     * @return.
-     */
-     void Draw( CWindowGc& aGc );
-
-    /**
-     * Active the cursor into active state.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-     void Active();
-
-    /**
-     * Deactive the cursor into deactive state.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * return None.
-     */
-     void Deactive();
-
-private:
-
-    /**
-     * Insertion Point.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     */
-    CInsertionPoint( CAknFepUiLayoutDataMgr* aLafDataMgr );
-
-    /**
-     * Two-phrase constructor.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void ConstructL();
-
-    /**
-     * From CActive.
-     * The callback function used by CActiveScheduler.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void RunL();
-
-    /**
-     * From CActive.
-     * How to cancel me.
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    void DoCancel();
-
-    /**
-     * From CActive.
-     * Handle leaves from RunL().
-     * 
-     * @since S60 v5.0
-     * @param None.
-     * @return None.
-     */
-    TInt RunError( TInt aError );
-
-    /**
-     * Start the cursor with glint if actived or with gray color if deactived.
-     * 
-     * @since S60 v5.0
-     * @param aDelay. After this time, the RunL should be called.
-     * @return None.
-     */
-    void StartL( TTimeIntervalMicroSeconds32 aDelay );
-
-private:
-    // Data.
-    /**
-     * The state of CInsertionPoint object.
-     */
-    TInt iState;
-    /**
-     * The timer for changing the visibility of this cursor.
-     */
-    RTimer iTimer;
-    /**
-     * The rect that visual text must be displayed on.
-     */
-    TRect iTextRect;
-    /**
-     * the cursor rect which will be drawn onto the screen.
-     */
-    TRect iCursorRect;
-    /**
-     * Whether this cursor should be displayed.
-     */
-    TBool isVisible;
-    /**
-     * the length from the beginning of visual text to the cursor position.
-     */
-    TInt iOffSet;
-    /**
-     * the height of cursor.
-     */
-    TInt iHeight;
-    /**
-     * the BrushColor of active cursor.
-     */
-    TRgb iActiveBrushColor;
-    /**
-     * the PenColor of active cursor.
-     */
-    TRgb iActivePenColor;
-    /**
-     * the BrushColor of active cursor.
-     */
-    TRgb iInactiveBrushColor;
-    /**
-     * the PenColor of active cursor.
-     */
-    TRgb iInactivePenColor;
-    /**
-     * the width of cursor.
-     */
-    TInt iWidth;
-    /**
-     * Whether this cursor is actived.
-     */
-    TBool isActive;
-    /**
-     * The observer for caring of the cursor's change.
-     * Not own.
-     */
-    MRefreshObserver* iRefreshObserver;
-	CAknFepUiLayoutDataMgr* iLafDataMgr;
-    };
-
-#endif /* INSERTIONPOINT_H */
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepAvkonCandidatePopup.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,950 +0,0 @@
-/*
-* Copyright (c) 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:             Avkon implementation of non-focusing popup menu to show word candidates.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikenv.h>
-#include <eikappui.h>
-#include <badesca.h>
-#include <coemain.h>
-#include <aknPopupHeadingPane.h>
-#include <aknsfld.h>
-#include <AknsFrameBackgroundControlContext.h>
-#include <aknlists.h>
-#include <aknmessagequerycontrol.h> 
-#include <skinlayout.cdl.h>
-#include <AknLayout2ScalableDef.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <AknFepInternalCRKeys.h>
-#include <AvkonInternalCRKeys.h>
-
-#include <aknfep.rsg>
-#include <AknFepGlobalEnums.h>
-#include <avkon.hrh>
-#include "AknFepAvkonCandidatePopup.h"
-#include "AknPriv.hrh"
-const TInt KChrKeyTimeout = 250000;
-const TInt KChrKeyRepeatDelay = 1000000;
-
-const TInt KScreenWidthQHDLandscape = 640;
-const TInt KScreenHeightQHDLandscape = 360;
-const TInt KOffsetWidthForCandidatePopup = 32;
-
-/**
-* Creates the pop-up list
-*
-*/
-CAknFepAvkonCandidatePopup* CAknFepAvkonCandidatePopup::NewL( MAknFepCandidatePopupCallback& aOwner )
-    {
-    CAknFepAvkonCandidatePopup* self = new(ELeave)CAknFepAvkonCandidatePopup( aOwner );        
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-
-/**
-* C++ constructor
-*
-* @param    aOwner  The owner of the popup list. Provides the candidates and receives notification
-*                   when candidate selected.
-*
-*/
-CAknFepAvkonCandidatePopup::CAknFepAvkonCandidatePopup( MAknFepCandidatePopupCallback& aOwner )
-    : CAknPopupList()
-    , iOwner(aOwner)
-    , iKeyboard(EPtiKeyboardNone)
-    {
-        
-    }
-    
-    
-/**
-* 2nd phase construction
-*
-*/
-void CAknFepAvkonCandidatePopup::ConstructL()
-    {
-    // Construct the inner listbox and the base class
-   	iList = new( ELeave ) CAknSinglePopupMenuStyleListBox;
-   	TInt primaryCandidate = 0;
-    
-    CRepository* aknFepRepository = NULL;
-    aknFepRepository = CRepository::NewL(KCRUidAknFep);
-    if(aknFepRepository)
-    	{
-       	aknFepRepository->Get(KAknFepPrimaryCandidateFlag, primaryCandidate);
-        delete aknFepRepository;
-        }
-    
-    TInt keyboardLayout = 0;
-    RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-    TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-    
-	// Not use embedded CBA, so new the CBA seperately
-    TInt cbaResource = 0;
-    if(primaryCandidate && layout != EPtiKeyboard12Key  )
-    	{
-    	CAknPopupList::ConstructL( iList,R_AKNFEP_SOFTKEYS_OK_CANCEL_SELECT,
-    						   AknPopupLayouts::EMenuWindow );
-		cbaResource = R_AKNFEP_SOFTKEYS_OK_CANCEL_SELECT;
-    	}
-    else
-    	{
-    	CAknPopupList::ConstructL( iList, R_AKNFEP_SOFTKEYS_SPELL_CANCEL_SELECT,
-    						   AknPopupLayouts::EMenuWindow );  
-	    cbaResource = R_AKNFEP_SOFTKEYS_SPELL_CANCEL_SELECT;
-    	}
-	// To add new CBA, here set its flag as the base class, 
-	// but just not set Embedded flag.
-	TUint flags = CEikButtonGroupContainer::EAddToStack;
-    if ( AknLayoutUtils::PenEnabled() )
-        {
-        flags |= CEikButtonGroupContainer::EDelayActivation;
-        }
-	// Destroy the CBA constructed in base class, and new its own CBA
-    delete iPopoutCba;
-    iPopoutCba =  CEikButtonGroupContainer::NewL(
-            CEikButtonGroupContainer::ECba,
-            CEikButtonGroupContainer::EHorizontal,
-            this, cbaResource, *this, flags );	
-
-	iList->ConstructL( this, CEikListBox::ELeftDownInViewRect );
-    iList->CreateScrollBarFrameL( ETrue );
-    iList->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,      //< horizontal
-                                                      CEikScrollBarFrame::EAuto );   //< vertical
-    iList->SetNonFocusing();
-
-
-    // Construct the item array
-    iCandidates = new (ELeave) CDesCArrayFlat( KPredictiveListCandidateMax ); 
-    CTextListBoxModel* model = iList->Model();
-    model->SetItemTextArray( iCandidates );
-    model->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    iChrKeypressMonitor = CPeriodic::NewL(CActive::EPriorityStandard);
-    SetNonFocusing();
-    MakeVisible(EFalse); 
-    }
-    
-
-MAknFepCandidatePopup::~MAknFepCandidatePopup()
-{
-	
-}
-
-/**
-* Destructor
-*
-*/
-CAknFepAvkonCandidatePopup::~CAknFepAvkonCandidatePopup()
-    {
-    delete iList;
-    delete iCandidates;
-    if( iChrKeypressMonitor )
-        {
-        iChrKeypressMonitor->Cancel();
-        delete iChrKeypressMonitor;
-        iChrKeypressMonitor = NULL;
-        }
-    }
- 
-
-TPtrC CAknFepAvkonCandidatePopup::ActiveWord() const
-    {
-    if ( iCandidates->Count()>*iSelectedIdx && *iSelectedIdx>0 )
-        {
-        return (*iCandidates)[*iSelectedIdx];    
-        }
-    else
-        {
-        return TPtrC( KNullDesC );
-        }
-    }
-    
-    
-TPtrC CAknFepAvkonCandidatePopup::ExactWord() const
-    {
-    if ( iCandidates->Count() > 0 )
-        {
-        return (*iCandidates)[0];        
-        }
-    else
-        {
-        return TPtrC( KNullDesC );
-        }
-    }
- 
- 
-/**
-* Makes the pop-up selection list visible.
-*
-* @param        aInlineEditorRect   Tells the place of the inline editor. If possible, the popup is opened
-*                                   so that it does not hide the inline editor.
-*
-* @param        aSelectedIdx        Input/output argument for the selected index. If legal index is given in,
-*                                   it will be used as default selection. Otherwise the default selection will
-*                                   be the currently active word. On succesful exit this variable contains
-*                                   the index selected by the user.
-*
-* @param        aLastKeyEvent       The last key event received by the popup. On return this is the event
-*                                   which closed the popup.
-*               
-* @return       The command id used to close the window. EAknFepSoftkeySpell, EAknSoftkeyCancel, or EAknSoftkeySelect
-*/
-TInt CAknFepAvkonCandidatePopup::ExecutePopupL( const TRect& aInlineEditorRect, TInt& aSelectedIdx,
-												TKeyEvent& aLastKeyEvent, TBool aRightToLeftLanguage,
-												TInt aKeyboard )
-    {
-    iSelectedIdx = &aSelectedIdx;
-    iLastKeyEvent = &aLastKeyEvent;
-    iKeyboard = (TPtiKeyboardType)aKeyboard;
-    //This is the inline text rectangle, this is needed in the event of a layout change
-    iInlineTextRect = aInlineEditorRect;
-    
-    TInt requestedSelection = *iSelectedIdx;
-    iOwner.GetCandidatesL( *iCandidates, *iSelectedIdx );
-    if ( requestedSelection >= 0 && requestedSelection < iCandidates->Count() )
-        {
-        *iSelectedIdx = requestedSelection;
-        }
-    
-    iListBox->SetCurrentItemIndex( *iSelectedIdx );
-    
-    iRightToLeftCandidate = aRightToLeftLanguage;
-    
-    const TSize screenSize = iAvkonAppUi->ApplicationRect().Size(); //TSize(AKN_LAYOUT_WINDOW_screen.iW,AKN_LAYOUT_WINDOW_screen.iH);
-    iPopoutCba->SetBoundingRect(TRect(screenSize));
-
-    SetupWindowLayout(iWindowType);
-    SetupWindowLocation( aInlineEditorRect );
-
-    iListBox->SetListBoxObserver(this);        
-
-    iEikonEnv->RemoveFromStack(this);
-    iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog/*ECoeStackPriorityFep*/);
-
-
-    ActivateL();
-    // this is required here to make code like
-    // iList->SetCurrentItemIndex( last item of the list );
-    // iPopupList->ExecuteLD();
-    // to work as it used to. Without this current item of the
-    // list would be topmost item, and there would be unused empty
-    // space below that.
-    iListBox->UpdateScrollBarsL();
-
-    // The main rule is to make the first index (the exact match) visible. However, the active index should never
-    // be hidden.
-    iListBox->ScrollToMakeItemVisible( 0 );
-    if ( iListBox->BottomItemIndex() < *iSelectedIdx )
-        {
-        iListBox->ScrollToMakeItemVisible( *iSelectedIdx );
-        }
-        
-    // Ensure that the popup is on top. Without this the popup window is left in the background at least
-    // in the dialogs of the Phonebook application.
-    //Window().SetOrdinalPosition(0);
-    //iPopoutCba->SetContainerWindowL( Window() ); this didn't help
-        
-    // Make the popup visible
-    iPopoutCba->MakeVisible(ETrue);
-    iListBox->MakeVisible(ETrue);    
-    MakeVisible(ETrue);
-    SetFocus(ETrue);
-    FadeBehindPopup(EFalse);
-    TInt returnValue;
-    iReturn = &returnValue;
-    iLastCommandId = EAknSoftkeySelect;
-    iWait.Start();
-    return returnValue;
-    }
-
-
-/**
-* Called when the popup is closed. Unlike the base class, this class does not commit suicide on this situation.
-*
-* @return        ETrue if the popup was accepted. EFalse if the popup was cancelled
-*/
-void CAknFepAvkonCandidatePopup::AttemptExitL(TBool aAccept)
-    {
-    *iSelectedIdx = iList->CurrentItemIndex();
-
-    if (iCoeEnv && iEikonEnv)
-        {
-        iEikonEnv->RemoveFromStack(this);
-        }
-      
-    SetFocus(EFalse);
-    MakeVisible(EFalse);
-    ListBox()->MakeVisible(EFalse);    
-    iPopoutCba->MakeVisible(EFalse);
-
-    if (iReturn) //Always not null unless ExecutePopupL leaves
-        {
-        if (!aAccept)
-            {
-            *iReturn = EAknSoftkeyCancel;
-            }
-        else
-            {
-            *iReturn = iLastCommandId;                        
-            }
-        }
-	if(iWait.IsStarted())
-    iWait.AsyncStop();
-    }
-
-
-void CAknFepAvkonCandidatePopup::HandleResourceChange(TInt aType)
-    {
-    CAknPopupList::HandleResourceChange(aType);
-    //When there is a dynamic layout change, the candidate list position needs to be aligned with
-    //the new position of the inline text.
-    if(aType == KEikDynamicLayoutVariantSwitch)
-        {
-        // Move back candidate popup control priority.
-        iEikonEnv->RemoveFromStack(this);        
-        TRAP_IGNORE( iEikonEnv->EikAppUi()->AddToStackL(this, ECoeStackPriorityDialog )) ;       
-        // Get candidate update position based on layout.
-        TRAP_IGNORE(iOwner.GetUpdateCandidatePositionL(iInlineTextRect));
-
-	// Ensure that the popup is on top.
-	Window().SetOrdinalPosition(0); 
- 
-        SetupWindowLocation( iInlineTextRect);
-        DrawNow();
-        }
-    else if(aType == KAknMessageFocusLost)
-    	FadeBehindPopup(ETrue);
- 
-    }
-
-
-void CAknFepAvkonCandidatePopup::UnFocus()
-    {
-    //Remove the candidate list from the control stack so that it does not receive any key event.
-    if (iCoeEnv && iEikonEnv)
-        {
-        iEikonEnv->RemoveFromStack(this);
-        }
-    //Un-Focus the candidate list
-    SetFocus(EFalse);
-    }
-void CAknFepAvkonCandidatePopup::ShowAtNewPosition(TRect aRect)
-    {
-    if (iCoeEnv && iEikonEnv)
-        {
-        TRAP_IGNORE( iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog/*ECoeStackPriorityFep*/ ));
-        }
-    SetFocus(ETrue);
-    iInlineTextRect = aRect;
-    SetupWindowLocation( iInlineTextRect);
-    DrawNow();
-    }
-
-void CAknFepAvkonCandidatePopup::SetFocusAddStackReducePriorityL()
-    {
-    if (iCoeEnv && iEikonEnv)
-        {
-        iEikonEnv->EikAppUi()->AddToStackL(this, ECoeStackPriorityDefault-1/*ECoeStackPriorityDialog-1*/ );
-        }
-    SetFocus(ETrue);
-    }
-
-TInt CAknFepAvkonCandidatePopup::HandleChrKeyMonitorCallback(TAny* aParam)
-    {
-    // the timer will be cancelled only when the key up event is received
-    // the down arrow key event is simulated now
-    TKeyEvent keyEvent;
-    keyEvent.iCode = EKeyDownArrow;	
-//    TEventCode type = EEventKey;
-    TRAP_IGNORE( ((CAknFepAvkonCandidatePopup*)aParam)->ListBox()->OfferKeyEventL(keyEvent, EEventKey) );
-    // Prevent the screen saver
-    User::ResetInactivityTime();
-    return 1;
-    }
-
-/**
-* Modified from CAknPopupList::OfferKeyEventL().
-*/
-TKeyResponse CAknFepAvkonCandidatePopup::OfferKeyEventL(const TKeyEvent& aKeyEvent, 
-														TEventCode aType)
-    {
-    *iLastKeyEvent = aKeyEvent;
-    
-    // Selection key is substituted with the space key. Thus, selecting a candidate with the selection
-    // key auto-appends space character.
-    if ( aKeyEvent.iScanCode == EStdKeyDevice3 )
-        {
-        //iLastKeyEvent->iScanCode = EStdKeySpace;
-        iLastKeyEvent->iCode = EKeyOK;
-        }
-    // Asterisk is substituted with arrow down key to get same functionality in ITU-T keypads
-    // Emulator sends key event with scancode EStdKeyNkpAsterisk and hardware an event
-    // with code '*' so we check for both
-    else if ( ( (aKeyEvent.iScanCode == EStdKeyNkpAsterisk || aKeyEvent.iCode == '*' ) 
-            && iKeyboard == EPtiKeyboard12Key ) )
-        {
-        iLastKeyEvent->iCode = EKeyDownArrow;
-        }
-    else if( aKeyEvent.iScanCode == EStdKeyLeftFunc
-            && iKeyboard == EPtiKeyboardHalfQwerty  ) 
-    	{
-    	if( aType == EEventKeyDown)
-    		{
-    		iLastKeyEvent->iCode = EKeyDownArrow;	
-    		// start the timer
-    		if(iChrKeypressMonitor->IsActive())
-    		    {
-    		    iChrKeypressMonitor->Cancel();
-    		    }
-            iChrKeypressMonitor->Start( KChrKeyRepeatDelay, KChrKeyTimeout, 
-                TCallBack(HandleChrKeyMonitorCallback, this));
-
-    		aType = EEventKey;
-    		}    	
-    	else
-    		{
-    		iChrKeypressMonitor->Cancel();
-    		return EKeyWasNotConsumed;
-    		}
-    	}
-    // this must be first check, since window will be faded when fast
-    // swap window is visible
-    if (aType==EEventKey && aKeyEvent.iCode == EKeyEscape)
-        {
-        AttemptExitL(EFalse);
-        return EKeyWasConsumed;
-        }
-
-    if ( Window().IsFaded() )
-        {
-        // this happens, when popuplist has a findbox, and user
-        // presses shift to launch fep menu. Fep menu has priority menu
-        // in control stack, but we have dialog priority. As result,
-        // keyevents will get here first. If we return
-        // EKeyWasNotConsumed, fep menu will catch those events
-        // next.
-        return EKeyWasNotConsumed;
-        }
-
-    TBool needRefresh = EFalse;
-    TKeyResponse res = AknFind::HandleFindOfferKeyEventL(aKeyEvent, aType, this,
-    													 ListBox(), FindBox(), EFalse, needRefresh);
-
-    if (needRefresh && FindBox())
-        {
-        DrawNow();
-        }
-
-    if ( res == EKeyWasConsumed )
-        {
-        return res;
-        }
- 
-    if (aType==EEventKey)
-        {
-        // Handle arrow keys based on iScancode
-        TBool keyEventHandled = EFalse;
-        switch (iLastKeyEvent->iScanCode)
-            {
-            case EStdKeyUpArrow: //fall through
-            case EStdKeyDownArrow:
-            			keyEventHandled = ETrue;
-                 return iListBox->OfferKeyEventL(*iLastKeyEvent, aType);
-                 
-            case EStdKeyLeftArrow:
-                    if(iRightToLeftCandidate)
-                        // These keys confirm the selection and are then handled by AknFepManager
-                        AttemptExitL(ETrue);
-                    else
-                        // These keys cancel the selection and are then handled by AknFepManager
-                        AttemptExitL(EFalse);
-                    keyEventHandled = ETrue;
-                    return EKeyWasConsumed;
-                
-            case EStdKeyRightArrow:  
-                    if(iRightToLeftCandidate)
-                            // These keys cancel the selection and are then handled by AknFepManager
-                            AttemptExitL(EFalse);
-                        else
-                            // These keys confirm the selection and are then handled by AknFepManager
-                            AttemptExitL(ETrue);
-               			keyEventHandled = ETrue;
-                    return EKeyWasConsumed;
-
-            }
-        if (!keyEventHandled)
-        	{
-        // Handle through iCode
-	        switch (iLastKeyEvent->iCode)
-	            {
-	
-	            case EKeyUpArrow: //fall through
-	            case EKeyDownArrow:
-	                 return iListBox->OfferKeyEventL(*iLastKeyEvent, aType);
-	                 
-	            case EKeyLeftArrow:
-	                    if(iRightToLeftCandidate)
-	                        // These keys confirm the selection and are then handled by AknFepManager
-	                        AttemptExitL(ETrue);
-	                    else
-	                        // These keys cancel the selection and are then handled by AknFepManager
-	                        AttemptExitL(EFalse);
-	                    return EKeyWasConsumed;
-	                
-	            case EKeyRightArrow:  
-	                    if(iRightToLeftCandidate)
-	                            // These keys cancel the selection and are then handled by AknFepManager
-	                            AttemptExitL(EFalse);
-	                        else
-	                            // These keys confirm the selection and are then handled by AknFepManager
-	                            AttemptExitL(ETrue);
-	                    
-	                        return EKeyWasConsumed;
-	
-	            
-	            case EKeyEnter:
-	            case EKeyOK:
-	            case EKeySpace:
-	            case EKeyTab:
-	            default:
-	                // These keys confirm the selection and are then handled by AknFepManager
-	                AttemptExitL(ETrue);
-	                return EKeyWasConsumed;                
-							case	EKeyApplication:
-							case	EKeyPhoneEnd:
-							// Flip open close event.
-				      case EKeyFlipOpen:
-				      case EKeyFlipClose:            
-									AttemptExitL(EFalse);
-				            		return EKeyWasNotConsumed;
-	   
-	            }
-          }              
-        }
-        
-     // For Layout switching
-     // If user switch the layout, means QWERTY to ITU-T and vice versa
-     // Keyboard layout going to cahnge, So, not need to open the candidate
-     // list as it is, becz its may predict differnt list of word.
-        if (aKeyEvent.iScanCode == EStdKeyApplicationE ||
-            aKeyEvent.iScanCode ==  EStdKeyApplication10 ||
-        	aKeyEvent.iScanCode ==   EStdKeyDeviceF ||
-    		aKeyEvent.iScanCode ==   EStdKeyDeviceA ||
-        	aKeyEvent.iScanCode ==   EStdKeyApplication12 ||
-        	aKeyEvent.iScanCode ==   EStdKeyApplication15 ||
-        	aKeyEvent.iScanCode ==   EStdKeyApplication16 ||
-        	aKeyEvent.iScanCode ==   EStdKeyDeviceB)
-	        {
-	        AttemptExitL(EFalse);
-	        return EKeyWasConsumed;
-	        }
- 
-    return EKeyWasNotConsumed;
-    }
-
-
-/**
-* Process commands from CBA buttons.
-* @param  aCommandId  The command to handle.
-*/
-void CAknFepAvkonCandidatePopup::ProcessCommandL(TInt aCommandId)
-    {
-    iLastCommandId = aCommandId;
-    if (aCommandId==EAknFepSoftkeySpell 
-    || aCommandId == EAknSoftkeyOk)
-       {
-        AttemptExitL(ETrue);
-        }
-    else
-        {
-        CAknPopupList::ProcessCommandL(aCommandId);
-        }
-    }
-
-
-/**
-* Calculates the position for the popup window and places it there
-* @param    aInlineEditorRect   The placement of the inline editor is used as reference.
-*                               The inline editor is not hidden if possible.
-*/
-void CAknFepAvkonCandidatePopup::SetupWindowLocation( const TRect& aInlineEditorRect )
-    {
-    TRect clientRect;
-    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, clientRect);
-    
-    TRect popupRect = Rect();
-    
-    // 1. Is it possible to place the popup under the inline editor
-    if ( aInlineEditorRect.iBr.iY + popupRect.Height() < clientRect.iBr.iY )
-        {
-        SetPosition( TPoint(aInlineEditorRect.iTl.iX, aInlineEditorRect.iBr.iY) );        
-        }
-        
-    // 2. Is it possible to place the popup on the right side of the inline editor
-    else if ( aInlineEditorRect.iBr.iX + popupRect.Width() < clientRect.iBr.iX )
-        {
-        SetPosition( TPoint(aInlineEditorRect.iBr.iX, aInlineEditorRect.iTl.iY) );
-        }
-        
-    // 3. Is it possible to place the popup above the inline editor
-    else if ( aInlineEditorRect.iTl.iY > popupRect.Height() )
-        {
-        SetPosition( aInlineEditorRect.iTl - TPoint(0, popupRect.Height()) );
-        }
-        
-    // 4. Is it possible to place the popup on the left side of the inline editor
-    else if ( aInlineEditorRect.iTl.iX > popupRect.Width() )
-        {
-        SetPosition( aInlineEditorRect.iTl - TPoint(popupRect.Width(), 0) );
-        }
-
-    // 5. If everything else fails, place the popup in the center of the screen
-    else
-        {
-        TInt xMargins = clientRect.Width() - popupRect.Width();
-        TInt yMargins = clientRect.Height() - popupRect.Height();
-        SetPosition( TPoint(xMargins/2, yMargins/2) );
-        }
-        
-        
-        
-    // Shift popup to left if necessary
-    if ( Position().iX + popupRect.Width() > clientRect.iBr.iX )
-        {
-        SetPosition( TPoint(clientRect.iBr.iX-popupRect.Width(), Position().iY) );
-        }
-
-    // Shift popup upwards if necessary
-    if ( Position().iY + popupRect.Height() > clientRect.iBr.iY )
-        {
-        SetPosition( TPoint(Position().iX, clientRect.iBr.iY-popupRect.Height()) );
-        }
-    }
-
-
-/**
-* Sets up the layout of the popup window.
-* Modified from CAknPopupList::SetupWindowLayout()
-*/
-void CAknFepAvkonCandidatePopup::SetupWindowLayout(AknPopupLayouts::TAknPopupLayouts aType)
-    {
-    // A linked list for HandleSizeChanged().
-    TAknPopupLayoutsNode list = { 0, EListNode, ListBox() };
-    TAknPopupLayoutsNode heading = { &list, EHeadingNode, Heading() };
-    TAknPopupLayoutsNode windowOwning = { &heading, EWindowOwningNode, this };
-    TAknPopupLayoutsNode findPane = { &windowOwning, EFindBoxNode, FindBox() };
-    TAknPopupLayoutsNode *listBegin = &findPane;
-    
-    HandleSizeChanged( Layout(), aType, listBegin );
-
-    // create skin context for popuplist (list itemdrawer uses normal list skinning)
-    TRect windowRect = Rect();
-
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect, 
-    				   SkinLayout::Popup_windows_skin_placing__frame_general__Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect,
-    					   SkinLayout::Popup_windows_skin_placing__frame_general__Line_5());
-
-    TRect outerRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    TRect innerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    
-    // we can safely use FormattedCellData only if normal popup layouts are in use
-    switch(iWindowType)
-        {
-        case AknPopupLayouts::EMenuUnknownColumnWindow:
-        case AknPopupLayouts::EMenuUnknownFormattedCellWindow:
-            break;
-        default:  
-            {
-            CFormattedCellListBoxData *boxData =
-            	((CEikFormattedCellListBox*)ListBox())->ItemDrawer()->FormattedCellData();
-
-            boxData->SetSkinPopupFrame(&KAknsIIDQsnFrPopup,&KAknsIIDQsnFrPopupCenter);
-            boxData->SetSkinPopupFramePosition(outerRect,innerRect);
-            }
-            break;
-        }
-
-    //CListItemDrawer::SetItemCellSize needs to be called to set the selection bar width
-    TSize cellSize = iList->ItemDrawer()->ItemCellSize();
-    cellSize.iWidth = iLayout.iListRect.Rect().Width();
-    iList->ItemDrawer()->SetItemCellSize( cellSize );
-    }
-    
-
-/**
-* Calculates the width of the popup window based on the candidates available on the list. 
-* The with is always set to as small as possible without truncation. 
-* The client application area is used as reference to ensure that the popup is never wider
-* than the application area.
-*/
-TInt CAknFepAvkonCandidatePopup::CalculateWindowWidth( const TRect& aClientRect )
-    {
-    // Fetch the font
-    const CFont* font = AknLayoutUtils::FontFromId(AKN_LAYOUT_TEXT_List_pane_texts__menu_single__Line_1(0).FontId());
-	
-	TInt maxTextWidth = 0;
-	
-	for (TInt i=0 ; i<iCandidates->Count() ; ++i)
-	    {
-	    TInt curTextWidth = font->TextWidthInPixels( (*iCandidates)[i] );
-        if ( curTextWidth > maxTextWidth )
-            {
-            maxTextWidth = curTextWidth;
-            }
-   	    }
-   	
-   	TInt popupWidth = maxTextWidth + ( 2 * font->MaxCharWidthInPixels() ); 
-   	
-   	// Modified as per Avkon team's suggestions
-   	// From Avkon:-
-    // Layout data of listscroll_menu_pane are changed for CR 417-35260.
-    // The change is just for QHD landscape model.
-    // The CR makes listscroll_menu_pane's ir or il bigger than normal,
-    // so that width of list item is smaller than needs. Then, first cell 
-    // of list item can not be drawn on proper position.
-    // Adjustment of layout is a solution for this problem. This is not a perfect idea, but
-    // creating a new layout for popuplist is too complex to do that. Adjustment is a must.
-
-   	if ( Layout_Meta_Data::IsLandscapeOrientation() )
-        {
-         const TSize screenSize = iAvkonAppUi->ApplicationRect().Size();
-         
-         if( KScreenWidthQHDLandscape == screenSize.iWidth && 
-             KScreenHeightQHDLandscape == screenSize.iHeight )
-             {
-             popupWidth += KOffsetWidthForCandidatePopup;
-             }
-        }
-
-   	if ( popupWidth > aClientRect.Width() )
-   	    {
-   	    popupWidth = aClientRect.Width();
-   	    }
-   	    
-   	return popupWidth;
-    }
-
-    
-/**
-* Utility function copied from aknpopuplayout.cpp
-*/
-static CCoeControl *FindControl(TAknPopupLayoutsNode *aNode, TInt aId)
-    {
-    while(aNode)
-        {
-        if (aId == aNode->iId)
-            {
-            return aNode->iControl;
-            }
-        aNode = aNode -> iNext;
-        }
-    return NULL;
-    }
-
-/**
-* Utility function copied from aknpopuplayout.cpp
-*/
-static TInt GetMaxListHeight()
-    {
-    TAknLayoutRect temp, layout;
-
-    TRect mainPane;
-    TRect statusPane;
-    TRect controlPane;
-    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
-    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, statusPane );
-    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EControlPane, controlPane );
-    
-    // in landscape orientation popuplist can't go on top of statuspane
-    if ( !Layout_Meta_Data::IsLandscapeOrientation() )
-        {
-        mainPane.iTl.iY -= statusPane.Height();
-        }
-    
-    
-    // treat mainpane+statuspane area as popup window
-    // too bad we can't use this, because e.g. QVGA landscape has border-size 7
-    // in avkon layout and border-size 9 in skin drawing...
-	/*temp.LayoutRect( mainPane, AknLayoutScalable_Avkon::listscroll_menu_pane(0));
-	layout.LayoutRect( temp.Rect(), AknLayoutScalable_Avkon::list_menu_pane(0));
-    return layout.Rect().Height();*/
-    	
-    // shadow
-    TInt varietyIndex = Layout_Meta_Data::IsLandscapeOrientation();
-    
-    TAknLayoutRect insideArea;
-    insideArea.LayoutRect(
-        mainPane,
-        AknLayoutScalable_Avkon::bg_popup_window_pane_g1(varietyIndex) );
-    
-    return insideArea.Rect().Height();
-    }
-    
-/**
-* Modified from AknPopupLayouts::HandleSizeChanged()
-*/
-void CAknFepAvkonCandidatePopup::HandleSizeChanged( TAknPopupWindowLayoutDef &aDef,
-                                                AknPopupLayouts::TAknPopupLayouts /*aLayout_1*/,
-                                                TAknPopupLayoutsNode *aNode)
-    {
-    CAknPopupHeadingPane *heading = (CAknPopupHeadingPane*)FindControl(aNode, EHeadingNode);
-    CEikListBox *listBox = (CEikListBox*)FindControl(aNode, EListNode);
-    CCoeControl *windowOwningControl = FindControl(aNode, EWindowOwningNode);
-    //CAknMessageQueryControl *msgQueryCtrl = (CAknMessageQueryControl*)FindControl(aNode, EMessageBoxNode);
-    
-    //TInt layout = aLayout_1;
-    TInt numofitems = listBox->Model()->NumberOfItems();
-
-    TRAP_IGNORE( listBox->View()->ItemDrawer()->SetSkinEnabledL(ETrue) );
-    
-    TInt maxListHeight = GetMaxListHeight();
-
-    // position popup window's bottom correctly
-    TRect clientRect;
-    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, clientRect);
-    // set windowrect to minimum size - this will be adjusted later    
-    TAknLayoutRect windowRect;
-    windowRect.LayoutRect( clientRect, AknLayoutScalable_Avkon::popup_menu_window(8));
-   
-    aDef.iWindowRect = windowRect.Rect();
-    aDef.iWindowRect.SetWidth( CalculateWindowWidth(clientRect) );
-    TRAP_IGNORE( listBox->View()->ItemDrawer()->SetSkinEnabledL(ETrue) );
-    
-    TInt minItems = 1;
-    
-    TAknWindowLineLayout listLayout;
-    TAknLayoutScalableParameterLimits listLimits;
-    
-    listLayout = AknLayoutScalable_Avkon::list_single_pane_cp2(0);
-    listLimits = AknLayoutScalable_Avkon::list_single_pane_cp2_ParamLimits();
-
-	TInt maxLayoutItems = listLimits.LastRow() + 1; // last row is a zero based index, we need num items which is 1 based
-        
-    TAknLayoutRect listItemRect;
-	listItemRect.LayoutRect( aDef.iWindowRect, listLayout);
-    TInt listItemHeight = listItemRect.Rect().Height();
-    TInt maxItems = maxListHeight / listItemHeight;
-    // minItems == 1 only if the popuplist is dynamically changeable
-    if ( (numofitems > 1) && (minItems == 1) )
-        {
-        minItems = numofitems;
-        }
-    if (minItems > maxItems)
-        {
-        minItems = maxItems;
-        }
-    // maxItems might be greater than max items from layout -> use layout's maximum
-    if (minItems > maxLayoutItems)
-        {
-        minItems = maxLayoutItems;
-        }
-
-    TRect window_rect = AknPopupLayouts::MenuRect(aDef);
-
-    TAknLayoutRect temp, layout;
-    temp.LayoutRect( window_rect, AknLayoutScalable_Avkon::listscroll_menu_pane(0));
-	layout.LayoutRect( temp.Rect(), AknLayoutScalable_Avkon::list_menu_pane(0));
-	
-	
-    TRect tempListRect = layout.Rect(); // this is list's rect for the whole window
-
-    // We really don't want parent relative list layout here because findbox will be overwritten.
-    // Just calculate list height and use that.
-    TRect nullRect(0,0,0,0);
-    listLayout.iH = (TInt16)(minItems * listItemHeight);
-    listLayout.ib = ELayoutEmpty;
-
-    aDef.iListRect.LayoutRect(tempListRect,
-        listLayout);
-
-    // we have to scale iWindowRect to list rect - layout is not (yet) correct
-    TInt usedHeight = aDef.iListRect.Rect().Height();
-
-    // popupwindow's inside area
-    TInt varietyIndex = Layout_Meta_Data::IsLandscapeOrientation();
-    
-    TAknLayoutRect insideArea;
-    insideArea.LayoutRect(
-        window_rect,
-        AknLayoutScalable_Avkon::bg_popup_window_pane_g1(varietyIndex) );
-
-    if (layout.Rect().Height() < usedHeight)
-        {
-        aDef.iWindowRect.iTl.iY -= (usedHeight - layout.Rect().Height());
-        }
-    
-
-    // now we finally know the window rect
-    AknPopupLayouts::MenuPopupWindowGraphics(aDef);
-    
-    TAknWindowLineLayout line = AknLayoutScalable_Avkon::listscroll_menu_pane(0).LayoutLine();
-        
-    layout.LayoutRect(AknPopupLayouts::MenuRect(aDef), line);
-    TRect scrollBarClientRect(layout.Rect());
-
-    varietyIndex = 0;
-    AknLayoutUtils::LayoutVerticalScrollBar(
-        listBox->ScrollBarFrame(),
-        scrollBarClientRect, 
-        AknLayoutScalable_Avkon::scroll_pane_cp25(varietyIndex).LayoutLine() ) ;
-
-    windowOwningControl->SetRect(AknPopupLayouts::WindowRect(aDef));
-    AknPopupLayouts::HandleSizeAndPositionOfComponents(aDef, listBox, heading);
-
-    window_rect = AknPopupLayouts::WindowRect(aDef);
-    MAknsControlContext *cc = AknsDrawUtils::ControlContext( listBox );
-    TBool defaultContext = EFalse;
-    if (!cc)
-        {
-        cc = listBox->View()->ItemDrawer()->SkinBackgroundControlContext();
-        defaultContext = ETrue;
-        }
-    if (cc)
-        {
-        CAknsBasicBackgroundControlContext *bcc = (CAknsBasicBackgroundControlContext*)cc;
-        TAknLayoutRect popupBgRect;
-         popupBgRect.LayoutRect(window_rect,
-                               SkinLayout::Popup_windows_skin_placing__background_slice__Line_1(window_rect));
-    
-         bcc->SetBitmap(KAknsIIDQsnFrPopupCenter);
-        if (defaultContext) bcc->SetRect(popupBgRect.Rect());
-        bcc->SetParentPos(windowOwningControl->PositionRelativeToScreen());
-        if (defaultContext)
-            bcc->SetParentPos(TPoint(0,0));
-        }        
-    }
-
-// end of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepIndicatorAvkon.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,584 +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 CAknFepIndicator methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikenv.h>         //CEikEnv
-#include <eikspane.h>       //CEikStatusPane
-#include <avkon.hrh>
-#include <aknnavi.h>        //CAknNavigationControlContainer
-#include <aknnavide.h>      //CAknNavigationDecorator
-#include <AknIndicatorContainer.h>  //CAknIndicatorContainer
-#include <aknEditStateIndicator.h>
-#include <AknUtils.h>
-#include "AknFepIndicatorAvkon.h"
-
-#include "AknFepGlobalEnums.h"
-
-/**
- *
- */ 
-CAknFepIndicator* CAknFepIndicatorAvkon::NewL()
-    {
-    CAknFepIndicatorAvkon* self = new(ELeave)CAknFepIndicatorAvkon();
-    return self;
-    }
-
-/**
- *
- */
-CAknFepIndicatorAvkon::~CAknFepIndicatorAvkon()
-    {
-    RemoveContainer();
-    }
-
- TBool CAknFepIndicatorAvkon::QueryPredictiveState(TAknEditingState aState)
- {
-    return  (( aState == EIndicatorStatePinyin) ||
-             ( aState == EIndicatorStatePinyinPhrase) ||
-             ( aState == EIndicatorStateZhuyin) ||
-             ( aState == EIndicatorStateZhuyinPhrase) ||
-             ( aState == EIndicatorStateZhuyinFind) ||
-             ( aState == EIndicatorStateStrokeFind) ||
-             ( aState == EIndicatorStateStroke) || 
-             ( aState == EIndicatorStateStrokePhrase) ||
-			 ( aState == EIndicatorStateCangJie) ||
-             ( aState == EIndicatorStateStrokeTrad) || 
-             ( aState == EIndicatorStateStrokeTradPhrase) ||
-             ( aState == ET9Upper) ||
-             ( aState == ET9Shifted) ||
-             ( aState == ET9Lower) ||
-             ( aState == ET9Arabic) ||
-             ( aState == ET9Hebrew) ||
-             ( aState == ET9FarsiAndUrdu) ||
-             ( aState == ET9Thai) ||
-             ( aState == EIndicatorStatePredictiveHindi) ||
-#ifdef RD_MARATHI
-             ( aState == EIndicatorStatePredictiveMarathi) ||
-#endif // RD_MARATHI
-             ( aState == EIndicatorStateJapanesePredictive) ||
-             ( aState == ET9UpperVietnamese) ||
-             ( aState == ET9LowerVietnamese) ||
-             ( aState == ET9ShiftedVietnamese) ||
-             ( aState == ET9UpperGreek) ||
-             ( aState == ET9LowerGreek) ||
-             ( aState == ET9ShiftedGreek) ||
-             ( aState == ET9UpperCyrillic) ||
-             ( aState == ET9LowerCyrillic) ||
-             ( aState == ET9ShiftedCyrillic) ); 
- }
- 
-  
-#ifndef RD_INTELLIGENT_TEXT_INPUT
- TBool CAknFepIndicatorAvkon::QueryPredictiveAutoCompleteState(TAknEditingState aState)
- {
- 	 	        
-    return (( aState == EAutoCompleteUpper ) ||  
-     		( aState == EAutoCompleteShifted )  ||
-     		( aState == EAutoCompleteLower ) || 
-     		( aState == EAutoCompleteHindi ) ||
-     		( aState == EAutoCompleteArabic ) ||
-     		( aState == EAutoCompleteHebrew ) ||
-     		( aState == EAutoCompleteFarsiAndUrdu ) ||
-     		( aState == EAutoCompleteThai ) ||
-     		( aState == EAutoCompleteUpperVietnamese ) ||
-     		( aState == EAutoCompleteLowerVietnamese ) ||
-     		( aState == EAutoCompleteShiftedVietnamese ));
- }
-
-#endif
-TInt CAknFepIndicatorAvkon::EvaluateState(TAknEditingState aState)
-{
-	TInt result = 0;
-	switch(aState)
-	{
-		case EArabicIndicNumeric:
-  			 result = EAknNaviPaneEditorIndicatorArabicIndicNumberCase;
-  			 break;
-  			 
-		case ET9Thai:
-		case EMultitapThai:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteThai:
-#endif
-			result = EAknNaviPaneEditorIndicatorThai;
-			break;				
-			
-		case EIndicatorStatePredictiveHindi:
-		case EIndicatorStateMultitapHindi:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteHindi:
-#endif
-#ifdef RD_MARATHI
-		case EIndicatorStateMultitapMarathi:
-		case EIndicatorStatePredictiveMarathi:
-#endif // RD_MARATHI
-			result = EAknNaviPaneEditorIndicatorDevanagariCase;
-			break;	
-			
-		case ET9Arabic:
-		case EMultitapArabic:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteArabic:
-#endif
-			result = EAknNaviPaneEditorIndicatorArabicCase;
-			break;	
-
-		case ET9Hebrew:
-		case EMultitapHebrew:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteHebrew:
-#endif
-			result = EAknNaviPaneEditorIndicatorHebrewCase;
-			break;	
-			
-		case ET9FarsiAndUrdu:
-		case EMultitapFarsiAndUrdu:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteFarsiAndUrdu:
-#endif
-			result = EAknNaviPaneEditorIndicatorFarsiAndUrduCase;
-			break;					
-
-
-		case ET9Upper:
-		case EMultitapUpper:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteUpper:
-#endif
-				if(iCopyMode)
-					{
-					result = EAknNaviPaneEditorIndicatorUpperCaseSelect;		
-					}
-				else
-					{
-					result = EAknNaviPaneEditorIndicatorUpperCase;	
-					}
-			
-			break;
-
-		case ET9Lower:
-		case EMultitapLower:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteLower:
-#endif
-				if(iCopyMode)
-					{
-					result = EAknNaviPaneEditorIndicatorLowerCaseSelect;		
-					}
-				else
-					{
-					result = EAknNaviPaneEditorIndicatorLowerCase;	
-					}		
-			break;
-
-		case ET9Shifted:
-		case EMultitapShifted:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteShifted:
-#endif
-				if(iCopyMode)
-					{
-					result = EAknNaviPaneEditorIndicatorTextCaseSelect;		
-					}
-				else
-					{
-					result = EAknNaviPaneEditorIndicatorTextCase;	
-					}		
-			break;
-			
-		case ENumeric:
-				if(iCopyMode)
-					{
-					result = EAknNaviPaneEditorIndicatorNumberCaseSelect;		
-					}
-				else
-					{
-					result = EAknNaviPaneEditorIndicatorNumberCase;	
-					}		
-			break;		
-  			 
-  			 	
-		case EIndicatorStatePinyin:
-			result = EAknNaviPaneEditorIndicatorPinyin;
-			break;
-		case EIndicatorStatePinyinPhrase:
-			result = EAknNaviPaneEditorIndicatorPinyinPhrase;
-			break;
-			
-		case EIndicatorStateZhuyin:
-			 result = EAknNaviPaneEditorIndicatorZhuyin;
-			break;
-		case EIndicatorStateZhuyinPhrase:
-			 result = EAknNaviPaneEditorIndicatorZhuyinPhrase;
-			break;
-
-		case EIndicatorStateZhuyinFind:
-			result = EAknNaviPaneEditorIndicatorZhuyinFind;
-			break;
-
-		case EDevanagariIndicNumeric :
-			result = EAknNaviPaneEditorIndicatorDevanagariIndicNumberCase;
-			break;
-		
-		case EIndicatorStateHiraganaKanji:
-		case EIndicatorStateJapanesePredictive:
-			result = EAknNaviPaneEditorIndicatorJapaneseHiraganaKanji;
-			break;
-
-		case EIndicatorStateFullKatakana:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullKatakana;
-			break;
-
-		case EIndicatorStateHalfKatakana:
-			result = EAknNaviPaneEditorIndicatorJapaneseHalfKatakana;
-			break;
-
-		case EIndicatorStateFullLatinText:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullTextAlphabet;
-			break;
-
-		case EIndicatorStateFullLatinUpper:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullUpperAlphabet;
-			break; 
-
-		case EIndicatorStateFullLatinLower:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullLowerAlphabet;
-			break;
-
-		case EIndicatorStateFullNumeric:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullNumeric;
-			break;
-
-		case EIndicatorStateHiragana:
-			result = EAknNaviPaneEditorIndicatorJapaneseHiragana;
-			break;
-
-		case EIndicatorStateStroke:
-			result = EAknNaviPaneEditorIndicatorStroke;
-			break;
-		case EIndicatorStateStrokePhrase:
-			result = EAknNaviPaneEditorIndicatorStrokePhrase;
-			break;
-
-		case EIndicatorStateStrokeTrad:
-			result = EAknNaviPaneEditorIndicatorStrokeTrad;
-			break;
-		case EIndicatorStateStrokeTradPhrase:
-			result = EAknNaviPaneEditorIndicatorStrokeTradPhrase;
-			break;
-
-		case EQwertyShift:
-			result = EAknNaviPaneEditorIndicatorQwertyShift;
-			break;
-
-		case EIndicatorStateStrokeFind:
-			result = EAknNaviPaneEditorIndicatorStrokeFind;
-			break;
-
-		case EIndicatorStateCangJie:
-			result = EAknNaviPaneEditorIndicatorCangJie;
-			break;
-			
-		case EIndicatorStateHangul:
-			if(iCopyMode)
-					{
-					result = EAknNaviPaneEditorIndicatorKoreanHangulSelect;		
-					}
-				else
-					{
-					result = EAknNaviPaneEditorIndicatorKoreanHangul;	
-					}
-			break;
-		
-		case ET9UpperVietnamese:
-		case EMultitapUpperVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteUpperVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseUpperCase;
-			break;			
-			
-		case ET9LowerVietnamese:
-		case EMultitapLowerVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteLowerVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseLowerCase;
-			break;	
-			
-		case ET9ShiftedVietnamese:
-		case EMultitapShiftedVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteShiftedVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseTextCase;
-			break;
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case EIndicatorStateHindiPhoneticUpper:
-			result = EAknNaviPaneEditorIndicatorDevanagariPhoneticUpperCase;
-			break;
-		case EIndicatorStateHindiPhoneticLower:
-			result = EAknNaviPaneEditorIndicatorDevanagariPhoneticLowerCase;
-			break;
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-              case EFnKeyPressed:
-			result = EAknNaviPaneEditorIndicatorFnKeyPressed;
-			break;
-              case EFnKeyLocked:
-			result = EAknNaviPaneEditorIndicatorFnKeyLocked;
-			break;
-#endif
-        case ET9UpperGreek:
-        case EMultitapUpperGreek:
-            result = EAknNaviPaneEditorIndicatorGreekUpperCase;
-            break;
-            
-        case ET9LowerGreek:
-        case EMultitapLowerGreek:
-            result = EAknNaviPaneEditorIndicatorGreekLowerCase;
-            break;
-        
-        case ET9ShiftedGreek:
-        case EMultitapShiftedGreek:
-            result = EAknNaviPaneEditorIndicatorGreekTextCase;
-            break;
-            
-        case ET9UpperCyrillic:
-        case EMultitapUpperCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicUpperCase;
-            break;
-            
-        case ET9LowerCyrillic:
-        case EMultitapLowerCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicLowerCase;
-            break;
-        
-        case ET9ShiftedCyrillic:
-        case EMultitapShiftedCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicTextCase;
-            break;
-	}
-	return result;
-}
-/**
- *
- */
-void CAknFepIndicatorAvkon::SetState(TAknEditingState aState)
-    {
-    CAknNavigationControlContainer* naviPane = 0;
-    TRAPD(err, naviPane = NaviPaneL());
-
-    // If the navi pane has been changed, clean up and start again.
-    if (iNaviPane != naviPane)
-        {
-        RemoveContainer();
-        iNaviPane = naviPane;
-        iNaviPaneChanged = ETrue;
-        }
-    
-    if ( (iPreviousState == aState) && !iNaviPaneChanged  && !iCopyModeChanged)
-        {
-        // The required state already exists and navi pane has not been changed 
-        // by launching embedded application. Leave the contents alone.
-        return;
-        }
-    iCopyModeChanged = EFalse;    
-        
-    if (aState == EStateNone) 
-        {
-        if ( iNaviDecorator && naviPane )
-            {
-            CCoeControl* decoratedControl = iNaviDecorator->DecoratedControl();
-            if ( decoratedControl )
-                {
-                decoratedControl->MakeVisible(EFalse);
-                }
-            naviPane->Pop(iNaviDecorator);
-            }
-        if(iPreviousState && (iPreviousState != EStateNone))
-    	    {
-	   		SetIndicator(EvaluateState(iPreviousState), EAknIndicatorStateOff, EFalse); 	   	
-	   		// Also set off predictive / query (pen) indicator.
-	   		SetIndicator(EAknNaviPaneEditorIndicatorQuery, EAknIndicatorStateOff, EFalse); 	   			   		
-	   		SetIndicator(EAknNaviPaneEditorIndicatorT9, EAknIndicatorStateOff, EFalse); 	   			   		
-        	}
-        iPreviousState = aState;
-        iNaviPaneChanged = EFalse;
-        return;
-        }
-    
-    if ( err == KErrNone )
-        {
-        iNaviPaneChanged = EFalse;
-        TRAP(err,AddContainerL(naviPane));
-        
-
-        // selection indicator
-        
-        SetIndicator(EvaluateState(iPreviousState), EAknIndicatorStateOff, EFalse); 
-        
-        // selection indicator
-        if (iCopyMode)
-            {
-            // clear normal indicators first
-            SetIndicator(EAknNaviPaneEditorIndicatorTextCase, EAknIndicatorStateOff,  ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorLowerCase, EAknIndicatorStateOff, ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorUpperCase, EAknIndicatorStateOff, ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorNumberCase,EAknIndicatorStateOff, ETrue);       
-            SetIndicator(EAknNaviPaneEditorIndicatorKoreanHangul,EAknIndicatorStateOff, ETrue); 
-            }
-	    else
-            {
-            // clear selection indicators first
-            SetIndicator(EAknNaviPaneEditorIndicatorTextCaseSelect, EAknIndicatorStateOff,  ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorLowerCaseSelect, EAknIndicatorStateOff, ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorUpperCaseSelect, EAknIndicatorStateOff, ETrue);
-            SetIndicator(EAknNaviPaneEditorIndicatorNumberCaseSelect,EAknIndicatorStateOff, ETrue);       
-            SetIndicator(EAknNaviPaneEditorIndicatorKoreanHangulSelect,EAknIndicatorStateOff, ETrue);  
-            }
-             
-  		TBool predictiveMode = QueryPredictiveState(aState);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-  		TBool predictiveAutoCompleteMode = EFalse;
-  		if(!predictiveMode)
-  			{
-  			predictiveAutoCompleteMode = QueryPredictiveAutoCompleteState(aState);		
-  			}
-#endif
-        
-        SetIndicator(EAknNaviPaneEditorIndicatorQuery, 
-            ( predictiveMode || aState == EStateNone  
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-			|| predictiveAutoCompleteMode
-#endif
-            )? EAknIndicatorStateOff : EAknIndicatorStateOn, EFalse);
-        SetIndicator(EAknNaviPaneEditorIndicatorT9, predictiveMode 
-            ? EAknIndicatorStateOn : EAknIndicatorStateOff, EFalse);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        // Indicator for Auto Word Completion Mode
-     	SetIndicator(EAknNaviPaneEditorIndicatorAutoComplete, predictiveAutoCompleteMode 
-            ? EAknIndicatorStateOn : EAknIndicatorStateOff, EFalse);
-#endif
-       
-      SetIndicator(EvaluateState(aState), EAknIndicatorStateOn, EFalse);
-
-        // Push the state to the navi-pane
-        if (naviPane && iNaviDecorator)
-            {
-            CCoeControl* decoratedControl = iNaviDecorator->DecoratedControl();
-            if ( decoratedControl )
-                {
-                decoratedControl->MakeVisible(ETrue);
-                }
-            TRAP_IGNORE(naviPane->PushL(*iNaviDecorator));
-            }        
-        }
-    iPreviousState = aState;    
-    }
-
-/**
- *
- */
-CAknIndicatorContainer* CAknFepIndicatorAvkon::IndicatorContainer()
-    {
-    CAknNavigationControlContainer* naviPane = 0;
-    TRAPD(err, naviPane = NaviPaneL());
-
-    // If the navi pane have changed, clean up and start again
-    if ( naviPane != iNaviPane )
-        {
-        RemoveContainer();
-        iNaviPane = naviPane;
-        iNaviPaneChanged = ETrue;
-        }
-    if ( !iIndicatorContainer )
-        {
-        TRAP(err, AddContainerL(naviPane));        
-        }
-    return iIndicatorContainer;
-    }
-
-/**
- *
- */
-CAknFepIndicatorAvkon::CAknFepIndicatorAvkon()
-    :iPreviousState(EStateNone), iEikEnv(*CEikonEnv::Static())
-    {
-    }
-
-/**
- *  Create a new indicator container and push it to the navi-pane
- */
-void CAknFepIndicatorAvkon::AddContainerL(CAknNavigationControlContainer* aNaviPane)
-    {
-    // Create a new indicator container and push it to the navi-pane
-    if (!iIndicatorContainer && aNaviPane)
-        {
-        iNaviDecorator = aNaviPane->CreateEditorIndicatorContainerL();
-        iIndicatorContainer = STATIC_CAST(CAknIndicatorContainer*, iNaviDecorator->DecoratedControl());
-        }
-    }
-
-/**
- * Pop the indicator container from the navi-pane
- */
-void CAknFepIndicatorAvkon::RemoveContainer()
-    {
-    // Pop the indicator container from the navi-pane
-    if (iIndicatorContainer)
-        {
-        delete iNaviDecorator;
-        iNaviDecorator = NULL;
-        iIndicatorContainer = NULL;
-        }
-    }
-
-/**
- *
- */
-void CAknFepIndicatorAvkon::SetIndicator(TInt aIndicator, TInt aMode, TBool aDrawNow)
-    {
-    if ( iIndicatorContainer )
-        {
-        iIndicatorContainer->SetIndicatorState(TUid::Uid(aIndicator), aMode, aDrawNow);
-        }
-    }
-
-/**
- *  get a handle to the Navi Pane
- */
-CAknNavigationControlContainer* CAknFepIndicatorAvkon::NaviPaneL()
-    {
-    CEikStatusPane *sp = iEikEnv.AppUiFactory()->StatusPane();
-    User::LeaveIfNull(sp);
-    // Fetch pointer to the default navi pane control
-    return (CAknNavigationControlContainer *)sp->ControlL(TUid::Uid(EEikStatusPaneUidNavi));
-    }
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredOwnWordsModel.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-#include "AknFepPredOwnWordsModel.h"
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepPredOwnWordsModel* CAknFepPredOwnWordsModel::NewL( MDesCArray* aTextArray )
-    {
-    CAknFepPredOwnWordsModel* self = CAknFepPredOwnWordsModel::NewLC( aTextArray );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::NewLC()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepPredOwnWordsModel* CAknFepPredOwnWordsModel::NewLC( MDesCArray* aTextArray )
-    {
-    CAknFepPredOwnWordsModel* self = new ( ELeave ) CAknFepPredOwnWordsModel();
-    CleanupStack::PushL(self);
-    self->ConstructL( aTextArray );
-    return self;
-    }
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPredOwnWordsModel::ConstructL( MDesCArray* aTextArray )
-    {
-    iPtiEngine = CPtiEngine::NewL(ETrue); 
-    //for our purposes(adding/removing UDB entries), 
-    //we are not dependent on language. Hence using English here
-    //as it should be available on all variants/devices.
-    iPtiEngine->ActivateLanguageL( ELangEnglish, EPtiEnginePredictive );
-    
-    //Now read the UDB entires into the text array
-    UpdateItemsL( aTextArray );
-    }
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::~CAknFepPredOwnWordsModel()
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CAknFepPredOwnWordsModel::CAknFepPredOwnWordsModel()
-    {
-    // No implementation required
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::~CAknFepPredOwnWordsModel()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepPredOwnWordsModel::~CAknFepPredOwnWordsModel()
-    {
-    delete iPtiEngine;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPredOwnWordsModel::UpdateItemsL()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPredOwnWordsModel::UpdateItemsL( MDesCArray* aTextArray )
-    {
-    iUDBWords = (CDesCArrayFlat*)aTextArray;
-    ReadUDBEntriesL();
-    }
-
-// -----------------------------------------------------------------------------
-//  Read all the user dictionary words through PtiEngine
-// -----------------------------------------------------------------------------
-//
-void CAknFepPredOwnWordsModel::ReadUDBEntriesL()
-    {
-    if (NULL == iUDBWords)
-        {
-        //iUDBWords is not created here. We take referrence of item array
-        //from listbox parameter passed to the MAknFepPredUserDictEditingModel
-        //methods. So this is an error condition - list box is not 
-        //completely/properly initialized
-        User::Leave(KErrCorrupt);
-        }
-    
-    TInt numOfUDBEntries = iPtiEngine->NumberOfEntriesInUserDictionary();
-    for (TInt i(0) ; i < numOfUDBEntries ; ++i)
-        {
-        TPtiUserDictionaryEntry udbEntry;
-        TInt getEntryResult = iPtiEngine->GetUserDictionaryEntry( i, udbEntry);
-        if ( KErrNone == getEntryResult )
-            {
-            HBufC *listEntry = FormListBoxEntryFromWordLC( udbEntry.Word() ); 
-            iUDBWords->AppendL( *listEntry );
-            CleanupStack::PopAndDestroy( listEntry );
-            }
-        else if ( KErrNotFound != getEntryResult )
-            {
-            //As this is not an empty slot, this could be an error condition
-            User::Leave(KErrCorrupt);
-            }   
-        }
-    iUDBWords->Sort();
-    }
-
-// -----------------------------------------------------------------------------
-//  Helper method for listbox string formatting
-// -----------------------------------------------------------------------------
-//
-HBufC* CAknFepPredOwnWordsModel::FormListBoxEntryFromWordLC( const TDesC& aWord )
-    {
-    _LIT( KListItemPrefix, "\t" );
-    TInt length = aWord.Length();
-    //add 2 to length of word to store the tab seperator
-    HBufC* listItem = HBufC::NewLC( length + 2 );
-    listItem->Des().Copy( KListItemPrefix() ); 
-    listItem->Des().Append( aWord );
-    return ( listItem );
-    }
-
-
-//Adding new word
-TInt CAknFepPredOwnWordsModel::AddNewWordL( TDesC& aNewWord )
-    {
-    TPtiUserDictionaryEntry udbEntry;
-    udbEntry.SetWord( aNewWord );
-    TInt status = iPtiEngine->AddUserDictionaryEntry( udbEntry );
-    if (KErrNone == status || KErrAlreadyExists == status)
-        {
-        HBufC *listEntry = FormListBoxEntryFromWordLC( aNewWord ); 
-        //If the word already exists, just move focus to it.
-        //If it is a new word, add it to the list box items too.
-        if ( KErrNone == status )
-            {
-            iUDBWords->AppendL( *listEntry );
-            iUDBWords->Sort();
-            }
-        TInt selectedWordIndex(-1);
-        iUDBWords->Find( *listEntry, selectedWordIndex, ECmpNormal );
-        CleanupStack::PopAndDestroy( listEntry );
-        return selectedWordIndex;
-        }
-    else
-        {
-        return KErrGeneral;
-        }
-    }
-
-//Removing existing word
-TInt CAknFepPredOwnWordsModel::RemoveSelectedWordL( TInt aWordIndex )
-    {
-    TPtiUserDictionaryEntry udbEntry;
-    TPtrC word = ( (*iUDBWords)[aWordIndex] ).Mid(1);
-    udbEntry.SetWord( word );
-    if ( KErrNone == iPtiEngine->RemoveEntryFromUserDictionary( udbEntry ) )
-        {
-        iUDBWords->Delete( aWordIndex );
-        return KErrNone;
-        }
-    else
-        {
-        return KErrGeneral;
-        }
-    }
-
-//Only to be called if it is known for sure that at least one item is marked/selected
-TInt CAknFepPredOwnWordsModel::RemoveSelectedWordsL( const CArrayFix<TInt>* aSelectedItems )
-    {
-    TPtiUserDictionaryEntry udbEntry;
-    TInt numOfSelections = aSelectedItems->Count();
-    /*TKeyArrayFix actNumKey(0,ECmpTInt);
-    aSelectedItems->Sort( actNumKey );
-    */
-    //loop backwards so we don't disturb the indices after deletion
-    for (TInt i(numOfSelections-1); i >= 0 ; --i )
-        {
-        TInt selectedItem = aSelectedItems->At(i);
-        TPtrC word = ( (*iUDBWords)[selectedItem] ).Mid(1);
-        udbEntry.SetWord( word );
-        if ( KErrNone == iPtiEngine->RemoveEntryFromUserDictionary( udbEntry ) )
-            {
-            iUDBWords->Delete( selectedItem );
-            }
-        else
-            {
-            return KErrGeneral;
-            }
-        }
-    
-    return KErrNone;
-    }
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingData.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingData from AknFepPredictiveSettingData 
- * ============================================================================
- */
-
-#include "AknFepPredictiveSettingData.h"
-
-CAknFepPredictiveSettingData *CAknFepPredictiveSettingData::NewL()
-	{
-	CAknFepPredictiveSettingData *self = CAknFepPredictiveSettingData::NewLC();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingData *CAknFepPredictiveSettingData::NewLC()
-	{
-	CAknFepPredictiveSettingData *self = new (ELeave) CAknFepPredictiveSettingData();
-	CleanupStack::PushL(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingData::~CAknFepPredictiveSettingData()
-	{
-	}
-
-CAknFepPredictiveSettingData::CAknFepPredictiveSettingData()
-	{
-	}
-
-
-
-void CAknFepPredictiveSettingData::LoadL(TInt aAutoWordCompl,
-										 TInt aTypingCorrection,
-										 TInt aNumberCandidates,
-										 TInt aPrimaryCandidate,
-										 TInt aPhysicalKeyboards,
-										 TInt aAWCBitmask)
-    {
-    iAutoWordCompl = aAutoWordCompl;
-    iTypingCorrection = aTypingCorrection;
-    iNumberCandidates = aNumberCandidates;
-    iPrimaryCandidate = aPrimaryCandidate;
-    iPhysicalKeyboards = aPhysicalKeyboards;
-    iAWCBitmask = aAWCBitmask;
-    }
-    
-void CAknFepPredictiveSettingData::SaveL() const
-    {
-    }
-//EOF
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingDialog.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,798 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingList from AknFepPredictiveSettingList 
- * ============================================================================
- */
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikctrlstatus.h>
-#endif
-#include <centralrepository.h>
-#include <AknQueryDialog.h>
-#include <AknFepInternalCRKeys.h>
-#include <PtiDefs.h>
-#include <e32property.h>
-#include <AvkonInternalCRKeys.h>
-#include <AknFepGlobalEnums.h>
-#include "AknFepPredictiveSettingDialog.h"
-#include <aknnotewrappers.h>
-#include <aknfep.rsg>
-#include <hlplch.h>
-//#include <csxhelp/cp.hlp.hrh> 
-#include <akntitle.h> //CAknTitlePane
-#include <StringLoader.h>
-#include <aknnavide.h>
-
-_LIT(KFEPIMPLPREDINPUT_HLP_INPUT, "PREDINPUT_HLP_INPUT"); // 
-
-CAknFepPredictiveSettingDialog *CAknFepPredictiveSettingDialog::NewL(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId)
-	{
-	CAknFepPredictiveSettingDialog* self = CAknFepPredictiveSettingDialog::NewLC(aMenuResId, aConfirmationQueryResId, aTitlePaneResId);		
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingDialog *CAknFepPredictiveSettingDialog::NewLC(TInt aMenuResId, TInt aConfirmationQueryResId, TInt aTitlePaneResId)
-	{
-	CAknFepPredictiveSettingDialog* self = new (ELeave) CAknFepPredictiveSettingDialog(aConfirmationQueryResId, aTitlePaneResId);
-	CleanupStack::PushL(self);
-	self->ConstructL(aMenuResId);
-    return self;
-	}
-
-void CAknFepPredictiveSettingDialog::ConstructL( TInt aMenuTitleResourceId )
-	{
-	CAknDialog::ConstructL(aMenuTitleResourceId);
-	PrepareStatusPaneL();
-	iItemCloseEventCheck = CIdle::NewL(CActive::EPriorityStandard);
-	}
-
-CAknFepPredictiveSettingDialog ::CAknFepPredictiveSettingDialog(TInt aConfirmationQueryResId, TInt aTitlePaneResId):
-	iConfirmationQueryResId(aConfirmationQueryResId),
-	iPredictiveSettingOffQueryNotShown(ETrue),
-	iTitlePane(NULL),
-	iNaviPane(NULL),
-	iNaviDecoratedTabGroup(NULL),
-	iLastTitle(NULL),
-	iStatusTitle(NULL),
-	iTitlePaneResId(aTitlePaneResId),
-	iSettingItemInEditingState(EFalse)
-	{
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, iOriginalKeyboardLayout);
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-	}
-	
-CAknFepPredictiveSettingDialog::~CAknFepPredictiveSettingDialog()
-	{
-	TRAP_IGNORE(RestoreStatusPaneL());
-	delete iSettingsData;
-
-	delete iItemCloseEventCheck;
-	iItemCloseEventCheck = NULL;
-	if (iAknFepRepository)
-		delete iAknFepRepository;
-	
-	delete iLastTitle;
-	delete iStatusTitle;
-	}
-
-
-SEikControlInfo CAknFepPredictiveSettingDialog::CreateCustomControlL(TInt /*aControlType*/)
-{
-	
-	// construct the data object the settings list will use
-	iSettingsData = CAknFepPredictiveSettingData::NewL();
-	iAknFepRepository = CRepository::NewL(KCRUidAknFep);	
-	ReadSettingsDataL();
-		
-	iSettingsList = CAknFepPredictiveSettingList::NewL(*iSettingsData, *this);
-	
-	SEikControlInfo controlInfo;
-	controlInfo.iFlags = EEikControlHasEars;
-	controlInfo.iTrailerTextId = 0;
-	controlInfo.iControl = iSettingsList;
-	STATIC_CAST(CAknFepPredictiveSettingList*, controlInfo.iControl)->SetContainerWindowL(*this);
-	
-	return controlInfo;
-}
-
-
-CAknFepPredictiveSettingDialog::TFormControlTypes CAknFepPredictiveSettingDialog::ConvertCustomControlTypeToBaseControlType(TInt /*aControlType*/) const
-{
-	return EPopfieldDerived;
-}
-
-
-TBool CAknFepPredictiveSettingDialog::OkToExitL(TInt aButtonId)
-{
-	TBool retValue = EFalse;
-	switch(aButtonId)
-	{
-	case EAknSoftkeyBack:
-		iSettingsList->StoreSettingsL();
-		SaveSettingsDataL();
-		retValue = ETrue;
-		break;
-	
-	case EAknSoftkeyOptions:
-		DisplayMenuL();
-		break;
-	
-	case EAknSoftkeyChange:
-        EditItemL(EFalse);
-		break;
-	}
-	return retValue;
-}
-
-void CAknFepPredictiveSettingDialog::ProcessCommandL(TInt aCommandId)
-	{
-    if(iSettingItemInEditingState && aCommandId == EAknCmdExit)
-        {
-        // If we are currently editing the settings item then generate a cancel event
-        RWsSession& wsSession = CEikonEnv::Static()->WsSession();
-        TKeyEvent escapeEvent = {EKeyEscape, EStdKeyEscape, 0, 0};
-        TRAP_IGNORE(CEikonEnv::Static()->SimulateKeyEventL(escapeEvent, EEventKey));
-        wsSession.Flush();
-		// After generating cancel event, start the callback function so the settings
-		// page is dismissed.
-        iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );
-        return;
-        }   	
-	
-	// This is TSW eror fixing.
-	// This function is called by dialog framework, whenever menu item is 
-	// selected. we should have to hide existing display menu first to maitain the
-	// control stack .
-	// If user try to stop displaying menu after creating any control
-	// In that situation whenever application goes to background framework remove the
-	// control from the stack when try to remove the menubar from control stack.
-	CAknDialog::ProcessCommandL(aCommandId);
-	
-	switch(aCommandId)
-		{
-		case EAknFepCmdPredSettingChange:
-			EditItemL(ETrue);
-			break;
-		case EAknCmdHelp:
-			{
-				
-            const TInt KArrayGranularity = 3;
-            CArrayFix<TCoeHelpContext>* contexts =
-                    new (ELeave) CArrayFixFlat<TCoeHelpContext>( KArrayGranularity );
-	    	CleanupStack::PushL ( contexts );
-	    	TUid appuid = { 0x100058EC };
-	    	contexts->AppendL( TCoeHelpContext( appuid, KFEPIMPLPREDINPUT_HLP_INPUT ) );
-	    	CleanupStack::Pop( contexts );
-	    	HlpLauncher::LaunchHelpApplicationL( CEikonEnv::Static()->WsSession(), contexts );		
-			}
-			break;
-		case EAknCmdExit:
-			// Save the setting and exit application.
-			iSettingsList->StoreSettingsL();
-			SaveSettingsDataL();
-			// Pass the EAknCmdExit command to Avkon 
-			// Framework 
-			iAvkonAppUi->ProcessCommandL(aCommandId);
-			break;
-		}
-	}
-
-void CAknFepPredictiveSettingDialog::ReadSettingsDataL()
-    {
-    TInt autoWordCompl = 0;
-	TInt typingCorrection = 0;
-	TInt numberCandidates = 0;
-	TInt primaryCandidate = 0;
-	TInt physicalKeyboards = 0;
-    // Read CenRep 
-	if( iAknFepRepository )
-		{
-		iAknFepRepository->Get(KAknFepPredTxtFlagExtension, iPredictiveTextFlag);
-		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoWordCompl);
-		iAknFepRepository->Get(KAknFepTypingCorrectionLevel, typingCorrection);
-		iAknFepRepository->Get(KAknFepNumberCandidateFlag, numberCandidates);
-		iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, primaryCandidate);
-		iAknFepRepository->Get(KAknFepPhysicalKeyboards, physicalKeyboards);
-		}
-
-    // Parse keyboard dependent settings for current keyboard from bitmask
-	TInt keyboardLayout = 0;
-	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	TInt autoTmp = autoWordCompl;
-	
-	// This part of code for error fixing:	    
-	// IF ITI is off for QWERTY/ITU-T iPredictiveTextFlag = 0
-	// IF ITI is on for ITU-T 		  iPredictiveTextFlag = 1
-	// IF ITI is on for QWERTY 	  	  iPredictiveTextFlag = 2
-	
-	switch(layout)
-	    {
-	    case EPtiKeyboardNone:
-	        break;
-	  	case EPtiKeyboard12Key:
-	        autoTmp &= EKeyboardStyle12Key;
-	        iPredictiveTextFlag &= EKeyboardStyle12Key;
-	        break;
-	    case EPtiKeyboardHalfQwerty:
-	        autoTmp &= EKeyboardStyleHalfQwerty;
-	        iPredictiveTextFlag &= EKeyboardStyleHalfQwerty;
-	        break;
-	  	case EPtiKeyboardQwerty4x12:
-	  	case EPtiKeyboardQwerty4x10:
-	  	case EPtiKeyboardQwerty3x11:	  	
-	  	case EPtiKeyboardCustomQwerty:
-	        autoTmp &= EKeyboardStyleQwerty;
-	        iPredictiveTextFlag &= EKeyboardStyleQwerty;
-	        break;
-	  	default:
-	  	    break;
-	    }
-	
-	//load setting data
-	iSettingsData->LoadL(( autoTmp ? 1 : 0), typingCorrection, numberCandidates,
-	           primaryCandidate, physicalKeyboards, autoWordCompl);
-   
-    }
-    
-
-void CAknFepPredictiveSettingDialog::SaveSettingsDataL() const
-    {
-    // Read setting data and fill CenRep.
-	if( iAknFepRepository )
-	  	{
-	   	TInt autoFlag = 0;
-	   	iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-	   	TInt predFlag = 0;
-	   	iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-
-	   	// Parse keyboard dependent settings for current keyboard from bitmask
-	   	TInt keyboardLayout = 0;
-	   	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	   	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	   	switch(layout)
-	   	    {
-	   	    case EPtiKeyboardNone:
-	   	        break;
-	   	    case EPtiKeyboard12Key:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyle12Key;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyle12Key;
-	   	            }
-	   	        break;
-	   	    case EPtiKeyboardHalfQwerty:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyleHalfQwerty;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyleHalfQwerty;
-	   	            }
-	   	    case EPtiKeyboardQwerty4x12:
-	   	    case EPtiKeyboardQwerty4x10:
-	   	    case EPtiKeyboardQwerty3x11:
-	   	    
-	   	    case EPtiKeyboardCustomQwerty:
-	   	        if (iSettingsData->AutoWordCompl())
-	   	            {
-	   	            autoFlag |= EKeyboardStyleQwerty;
-	   	            }
-	   	        else
-	   	            {
-	   	            autoFlag &= ~EKeyboardStyleQwerty;
-	   	            }
-	   	        break;
-	   	    default:
-	   	        break;
-	   	    }
-
-	    if(iSettingsList->DeviceHasMultipleKeyboards())
-	        {
-	        iAknFepRepository->Set(KAknFepAutoCompleteFlag, iSettingsData->AWCBitmask());
-	        }
-	    else
-	        {
-	        iAknFepRepository->Set(KAknFepAutoCompleteFlag, autoFlag);            
-	        }
-	    iAknFepRepository->Set(KAknFepTypingCorrectionLevel, iSettingsData->TypingCorrection());
-	    iAknFepRepository->Set(KAknFepNumberCandidateFlag, iSettingsData->NumberCandidates());
-	    iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, iSettingsData->PrimaryCandidate());
-	    }
-    }
-
-void CAknFepPredictiveSettingDialog::SaveCurrentSettingsDataL() const
-    {
-    // Read setting data and fill CenRep.
-   	if(iAknFepRepository)
-      	{
-      	if(EAutoWordCompletion == iSettingsList->ListBox()->CurrentItemIndex())
-      		{
-	   		TInt autoFlag = 0;
-	   		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-	   		TInt predFlag = 0;
-	   		iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-
-	   		// Parse keyboard dependent settings for current keyboard from bitmask
-	   		TInt keyboardLayout = 0;
-		   	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-		   	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-	   		switch(layout)
-	   	    	{
-		   	    case EPtiKeyboardNone:
-		   	        break;
-	   		    case EPtiKeyboard12Key:
-	   	    	    if (iSettingsData->AutoWordCompl())
-	   	        	    {
-	   	            	autoFlag |= EKeyboardStyle12Key;
-		   	            }
-		   	        else
-	   		            {
-	   	    	        autoFlag &= ~EKeyboardStyle12Key;
-	   	        	    }
-		   	        break;
-		   	    case EPtiKeyboardHalfQwerty:
-	   		        if (iSettingsData->AutoWordCompl())
-	   	    	        {
-	   	        	    autoFlag |= EKeyboardStyleHalfQwerty;
-	   	            	}
-		   	        else
-		   	            {
-	   		            autoFlag &= ~EKeyboardStyleHalfQwerty;
-	   	    	        }
-		   	        break;
-		   	    case EPtiKeyboardQwerty4x12:
-	   		    case EPtiKeyboardQwerty4x10:
-	   	    	case EPtiKeyboardQwerty3x11:
-		   	    case EPtiKeyboardCustomQwerty:
-	   		        if (iSettingsData->AutoWordCompl())
-	   	    	        {
-	   	        	    autoFlag |= EKeyboardStyleQwerty;
-	   	            	}
-		   	        else
-		   	            {
-	   		            autoFlag &= ~EKeyboardStyleQwerty;
-	   	    	        }
-		   	        break;
-		   	    default:
-	   		        break;
-	   	    	}
-
-		    if(iSettingsList->DeviceHasMultipleKeyboards())
-	    	    {
-	        	iAknFepRepository->Set(KAknFepAutoCompleteFlag, iSettingsData->AWCBitmask());
-		        }
-		    else
-	    	    {
-	        	iAknFepRepository->Set(KAknFepAutoCompleteFlag, autoFlag);            
-		        }
-      		}
-        else if(ETypingCorrectionLevel == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepTypingCorrectionLevel, iSettingsData->TypingCorrection());
-        	}
-        else if(ENumberCandidate  == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepNumberCandidateFlag, iSettingsData->NumberCandidates());	
-        	}
-        else if(EPrimaryCandidate == iSettingsList->ListBox()->CurrentItemIndex())
-        	{
-        	iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, iSettingsData->PrimaryCandidate());	
-        	}
-        }
-    }
-
-
-void CAknFepPredictiveSettingDialog::EditItemL(TBool aCalledFromMenu)
-	{
-	TInt prevSettings = CurrentSettings();
-	
-	// Set the flag as we are currently editing the settings item
-	iSettingItemInEditingState = ETrue;
-
-	iSettingsList->EditCurrentItemL(aCalledFromMenu);
-	if(iSettingItemInEditingState == EFalse)
-	    {
-	    User::Leave(KErrNone);
-	    }
-	LaunchPredictiveSettingOffQueryIfNecessaryL(prevSettings);
-	SaveCurrentSettingsDataL();
-
-	//Reset the flag as the current item edit is over
-	iSettingItemInEditingState = EFalse;	
-	}
-
-void CAknFepPredictiveSettingDialog::LaunchPredictiveSettingOffQueryIfNecessaryL(TInt prevSettings)
-	{
-	if(iPredictiveSettingOffQueryNotShown)
-		{
-   		if(iAknFepRepository)
-   			{
-   			iAknFepRepository->Get(KAknFepPredTxtFlagExtension,iPredictiveTextFlag);
-   			}
-   		TInt keyboardLayout = 0;
-       	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-       	TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;   		
-       	TBool QueryNeeded = EFalse;
-		if(iSettingsList->DeviceHasMultipleKeyboards())
-			{
-			TInt activateITIForKbd = 0;
-       		if(EAutoWordCompletion == iSettingsList->ListBox()->CurrentItemIndex() && 
-       			iSettingsData->AWCBitmask() != prevSettings & 0xF)
-       			{
-       			// if AWC is ON and Prev.Settings of AWC is not ON and ITI is OFF
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyle12Key) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyle12Key)!=1 &&
-       			   (iPredictiveTextFlag & EKeyboardStyle12Key) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyle12Key ;
-       				if(layout == EPtiKeyboard12Key)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			// if AWC is ON and Prev.Settings of AWC is not ON and ITI is OFF		
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyleQwerty) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyleQwerty)!=2 &&
-       			   (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyleQwerty ;
-       				if(layout == EKeyboardStyleQwerty)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			if((iSettingsData->AWCBitmask() & EKeyboardStyleHalfQwerty) && 
-       			   ((prevSettings & 0xF) & EKeyboardStyleHalfQwerty)!=4 &&
-       			   (iPredictiveTextFlag & EKeyboardStyleHalfQwerty) == 0)
-       				{
-       				QueryNeeded = ETrue;
-       				activateITIForKbd |= EKeyboardStyleHalfQwerty ;
-       				if(layout == EKeyboardStyleHalfQwerty)
-       					iPredictiveSettingOffQueryNotShown = EFalse;
-       				}
-       			}
-       		// if Prev.Setting of TypingCorrection != Curr.Settng of TypingCorrection and
-       		// Current TypingCorrection != OFF and ITI is OFF	
-       		else if(iSettingsData->iTypingCorrection != ((prevSettings >> 4)&0xF) &&
-					ETypingCorrectionLevel == iSettingsList->ListBox()->CurrentItemIndex() && 
-			        0 != iSettingsData->TypingCorrection() &&
-			        (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-				{
-				QueryNeeded = ETrue;
-				iPredictiveSettingOffQueryNotShown = EFalse;
-				activateITIForKbd |= EKeyboardStyleQwerty ;
-				}
-			// if Prev.Setting of NumberCandidate != Curr.Settng of NumberCandidate and
-       		// Current NumberCandidate is ON and ITI is OFF		
-       		else if(iSettingsData->iNumberCandidates != ((prevSettings >> 8)&0xF) &&
-       				ENumberCandidate == iSettingsList->ListBox()->CurrentItemIndex() && 
-			        1 == iSettingsData->NumberCandidates() &&
-			        (iPredictiveTextFlag & EKeyboardStyleQwerty) == 0)
-       			{
-       			QueryNeeded = ETrue;
-       			iPredictiveSettingOffQueryNotShown = EFalse;
-       			activateITIForKbd |= EKeyboardStyleQwerty ;
-       			}
-			
-			if(QueryNeeded)
-				{
-				CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-				if(dlg->ExecuteLD(iConfirmationQueryResId))
-					{
-				    if(activateITIForKbd & EKeyboardStyle12Key)
-				    	{
-				    	iPredictiveTextFlag |= EKeyboardStyle12Key;
-				    	}
-		       	    	
-		       	    if(activateITIForKbd & EKeyboardStyleQwerty)
-		       	    	{
-		       	    	iPredictiveTextFlag |= EKeyboardStyleQwerty;
-		       	    	}
-						if(activateITIForKbd & EKeyboardStyleHalfQwerty)
-		       	    	{
-		       	    	iPredictiveTextFlag |= EKeyboardStyleHalfQwerty;
-		       	    	} 	
-		       	    }
-				}
-			}
-		else
-			{
-			TInt predFlag = 0;
-			iAknFepRepository->Get(KAknFepPredTxtFlagExtension, predFlag);
-			TInt autoFlag = 0;
-       		iAknFepRepository->Get(KAknFepAutoCompleteFlag, autoFlag);
-
-	       	switch(layout)
-    	   	    {
-       		    case EPtiKeyboardNone:
-       	    	    break;
-       	    	case EPtiKeyboard12Key:
-       	    		autoFlag = ((autoFlag & EPtiKeyboard12Key)!=0);
-	       	    	// if ITI is ON for QWERTY then iPredictiveTextFlag = 2; In that case we have to find out the ITI state for ITU-T
-    	   	        if (!( iPredictiveTextFlag & EKeyboardStyle12Key ))
-       		            {
-       	    	        predFlag |= EKeyboardStyle12Key;
-       	        	    }
-       	    		
-       	    		break;
-       	    	case EPtiKeyboardHalfQwerty:
-       	    		autoFlag = ((autoFlag & EKeyboardStyleHalfQwerty)!=0);
-    	   	        if (!(iPredictiveTextFlag & EKeyboardStyleHalfQwerty ))
-       		            {
-       	    	        predFlag |= EKeyboardStyleHalfQwerty;
-       	            	}
-       	    		break;
-				case EPtiKeyboardQwerty4x12:
-       	    	case EPtiKeyboardQwerty4x10:
-       	    	case EPtiKeyboardQwerty3x11:
-       	    	case EPtiKeyboardCustomQwerty:
-       	    		autoFlag = ((autoFlag & EKeyboardStyleQwerty)!=0);
-	       	    	// if ITI is ON for ITU-T then iPredictiveTextFlag = 1; In that case we have to find out the ITI state for QWERTY
-    	   	        if (!(iPredictiveTextFlag & EKeyboardStyleQwerty ))
-       		            {
-       	    	        predFlag |= EKeyboardStyleQwerty;
-       	            	}
-       	    		break;
-       	    	default:
-       	    		break;
-    	   	    }
-
-			
-			if (predFlag != iPredictiveTextFlag)
-			    {
-			    switch(iSettingsList->ListBox()->CurrentItemIndex())
-			    	{
-			    	case EAutoWordCompletion:
-			    		if(iSettingsData->iAutoWordCompl != autoFlag &&
-			    			1 == iSettingsData->AutoWordCompl())
-			    			{
-			    			QueryNeeded = ETrue;	
-			    			}
-			    		break;
-			    	case ETypingCorrectionLevel:
-			    		if(iSettingsData->iTypingCorrection != ((prevSettings >> 4)&0xF) && 
-			    			0 != iSettingsData->TypingCorrection())
-			    			{
-			    			QueryNeeded = ETrue;
-			    			}
-			    		break;
-			    	case ENumberCandidate:
-			    		if(iSettingsData->iNumberCandidates != ((prevSettings >> 8)&0xF) && 
-			    			0 != iSettingsData->NumberCandidates())
-			    			{
-			    			QueryNeeded = ETrue;
-			    			}
-			    		break;
-			    	}
-				
-				if(QueryNeeded)
-					{
-					CAknQueryDialog* dlg = CAknQueryDialog::NewL();
-					if(dlg->ExecuteLD(iConfirmationQueryResId))
-						iPredictiveTextFlag = predFlag;
-
-					iPredictiveSettingOffQueryNotShown = EFalse;	
-					}
-				}
-			}
-		if(iAknFepRepository && QueryNeeded)
-			{
-			iAknFepRepository->Set(KAknFepPredTxtFlagExtension,iPredictiveTextFlag);
-       		iAknFepRepository->Set(KAknFepPredTxtFlag, iPredictiveTextFlag != 0); // For backwards compatibility							
-			}						
-		}
-	}
-TInt CAknFepPredictiveSettingDialog::CurrentSettings()
-	{
-	TInt settings = 0;
-	//settings are the values of first 16 bits
-	//	settings & 0xF = iAWCBitmask
-	//	(settings >> 4) & 0xF = iNumberCandidates
-	//	(settings >> 8) & 0xF = iTypingCorrection
-	//	(settings >> 12) & 0xF = iPrimaryCandidate
-	settings = (iSettingsData->iPrimaryCandidate << 12) |
-				(iSettingsData->iNumberCandidates << 8) |
-				(iSettingsData->iTypingCorrection << 4) |
-				(iSettingsData->AWCBitmask());
-	return settings;				
-	}
-
-// This part of code for error fixing multiple layout.
-void CAknFepPredictiveSettingDialog::HandleResourceChange(TInt aType)
-	{
-	
-    CAknDialog::HandleResourceChange(aType);
- 
-    // Check for keyboard layout change
-    // If layout is changed, load the setting information based on 
-    // Layout.
-    if(aType==KEikDynamicLayoutVariantSwitch)
-        {
-    
-    	// Read the Predictive setting
-         if(iAknFepRepository)
-        	{
-        	iAknFepRepository->Get(KAknFepPredTxtFlagExtension, iPredictiveTextFlag);
-        	}
-   
-   		// Adjust predictive flag after layout switch
-        TInt keyboardLayout = EPtiKeyboardNone;
-        RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-	//settings page not to be retained on change of keyboard layout for Touch Input.
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-        if (iOriginalKeyboardLayout != keyboardLayout)
-            {
-            if(iSettingItemInEditingState)
-            	{
-            	// If we are currently editing the settings item then generate a cancel event
-            	// and start the scheduler so as to close the settings page 
-            	// when the blocking call completes. 
-            	RWsSession& wsSession = CEikonEnv::Static()->WsSession();
-            	TKeyEvent escapeEvent = {EKeyEscape, EStdKeyEscape, 0, 0};
-            	TRAP_IGNORE(CEikonEnv::Static()->SimulateKeyEventL(escapeEvent, EEventKey));
-            	wsSession.Flush();
-            	iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );
-            	}
-            else
-	            {
-    	        // In case the current settings item is not in editing state then directly 
-    	        // close the settings page.
-            	TRAP_IGNORE(TryExitL(EAknSoftkeyBack));	
-    	        }
-            return;
-            }
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-     	switch(keyboardLayout)
-   	    	{
-	   	    case EPtiKeyboard12Key:
-	   	    	// Dictionary is ON for ITU-T
-	   	    	iPredictiveTextFlag	&= EKeyboardStyle12Key;
-	   	    	break;
-	   	    case EPtiKeyboardQwerty4x12:
-	   	    case EPtiKeyboardQwerty4x10:
-	   	    case EPtiKeyboardQwerty3x11:
-	   	    case EPtiKeyboardHalfQwerty:
-	   	    case EPtiKeyboardCustomQwerty:
-	   	    	// 	// Dictionary is ON for QWERTY
-	   	    	iPredictiveTextFlag &= EKeyboardStyleQwerty;
-	   	    case EPtiKeyboardNone:
-	   	    default:
-	   	        break;
-   	        }
-        TRAP_IGNORE(SetTitlePaneL());
-        }    
-	}
-
-TInt CAknFepPredictiveSettingDialog::EventCheckCallback(TAny* aObj)
-	{
-    TRAP_IGNORE(static_cast<CAknFepPredictiveSettingDialog*>(aObj)->AttemptToExitL());
-    return KErrNone;	
-	}
-	
-void CAknFepPredictiveSettingDialog::AttemptToExitL()
-	{
-	if(iItemCloseEventCheck->IsActive())
-		{
-		iItemCloseEventCheck->Cancel();	
-		}
-	// iSettingItemInEditingState sets before the blocking call of editing item state and 
-	// gets reset after the blocking call.
-    if (!iSettingItemInEditingState)
-    	{
-    	// In case we are here, then we need to close the settings item because of layout change
-    	TRAP_IGNORE(TryExitL(EAknSoftkeyBack));	
-    	}
-    else
-    	{
-    	// Because of priority we hit the scheduler first and then the blocking call gets
-    	// executed. To handle such a scenario, restart the scheduler.
-    	iItemCloseEventCheck->Start( TCallBack(EventCheckCallback, this) );	
-    	}
-	}
-	
-void CAknFepPredictiveSettingDialog::PrepareStatusPaneL()
-    {
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    CAknAppUi* appUi = static_cast<CAknAppUi*>(coeEnv->AppUi());
-    CEikStatusPane* statusPane = appUi->StatusPane();
-    
-    iTitlePane = static_cast<CAknTitlePane*>( statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-    
-    const TDesC* appTitle = iTitlePane->Text();
-    iLastTitle = appTitle->AllocL();
-    CleanupStack::PushL(iLastTitle);
-    
-    iStatusTitle = StringLoader::LoadLC( iTitlePaneResId,coeEnv);
-    SetTitlePaneL();
-    CleanupStack::Pop(iStatusTitle);
-    CleanupStack::Pop(iLastTitle);
-    
-    iNaviPane = static_cast<CAknNavigationControlContainer*>(statusPane->ControlL( TUid::Uid( EEikStatusPaneUidNavi ) ) );
-    
-    if(iNaviPane)
-        {
-        // Create a new tab Groub for Settings Page and push it on the Navigation Pane
-        // This is done so as to avoid previous page Tab Group to be used
-        iNaviDecoratedTabGroup = iNaviPane->CreateTabGroupL();
-        if(iNaviDecoratedTabGroup)
-            {
-            // Tab Group visibility is set to false
-            iNaviDecoratedTabGroup->MakeVisible(EFalse);
-            iNaviPane->PushL(*iNaviDecoratedTabGroup);
-            }
-        } 
-    }
-
-void CAknFepPredictiveSettingDialog::SetTitlePaneL()
-    {
-    iTitlePane->SetTextL( *iStatusTitle );
-    }
-
-void CAknFepPredictiveSettingDialog::RestoreStatusPaneL()
-    {
-    iTitlePane->SetTextL( *iLastTitle );
-    
-    if(iNaviPane && iNaviDecoratedTabGroup)
-        {
-        // Pop the Tab Group created for the Settings page
-        iNaviPane->Pop();
-        delete iNaviDecoratedTabGroup;
-        iNaviDecoratedTabGroup = NULL;
-        }    
-    }
-
-void CAknFepPredictiveSettingDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    if ( aPointerEvent.iType == TPointerEvent::EDrag )
-        {
-        iSettingsList->HandlePointerEventL(aPointerEvent);
-        }
-    else
-        {
-        CAknDialog::HandlePointerEventL(aPointerEvent);
-        }
-    }
-
-/**
- *From MEikCommandObserver
- */
-void CAknFepPredictiveSettingDialog::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) 
-    {
-    if ( iAvkonAppUi->IsSingleClickCompatible() )
-        {
-        if ( R_PREDICTIVESETTINGDIALOG_MENU == aResourceId )
-            {
-            aMenuPane->SetItemDimmed(EAknFepCmdPredSettingChange, ETrue);
-            }
-        } 
-    }
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepPredictiveSettingList.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,407 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepPredictiveSettingList from AknFepPredictiveSettingList 
- * ============================================================================
- */
-
-#include <barsread.h>
-#include <AvkonInternalCRKeys.h>
-#include <e32property.h>
-#include <PtiDefs.h>
-#include <aknfep.rsg>
-#include <AknFepGlobalEnums.h>
-#include <featmgr.h> 
-
-#include "AknFepPredictiveSettingList.h"
-#include "AknFepPredictiveSettingData.h"
-#include "AknFepPredictiveSettingDialog.h"
-
-CAknFepMultiSelectionSettingItem::CAknFepMultiSelectionSettingItem ( 
-        TInt aResourceId, CAknFepPredictiveSettingData &aData, CCoeEnv* aCoeEnv )
-    : CAknBigSettingItemBase(aResourceId), iData(aData), iCoeEnv(aCoeEnv)
-    {
-    iItutIndex = -1;
-    iQwertyIndex = -1;
-    iHalfQwertyIndex = -1;    
-    }
-
-CAknFepMultiSelectionSettingItem::~CAknFepMultiSelectionSettingItem()
-    {
-    if (iSelection)
-        {
-        iSelection->ResetAndDestroy();
-        }
-    delete iSelection;
-    }
-        
-void CAknFepMultiSelectionSettingItem::EditItemL( TBool /*aCalledFromMenu*/ )
-    {
-    if(!iSelection)
-        {
-        iSelection = CreateSelectionItemListL();
-        }
-    CAknCheckBoxSettingPage* settingPage = 
-        new( ELeave) CAknCheckBoxSettingPage( R_AUTOWORDCOMPLMULTI_PAGE, iSelection);
-
-    SetSettingPage(settingPage);
-    
-    if( settingPage->ExecuteLD(CAknSettingPage::EUpdateWhenAccepted))
-        {
-        StoreL();
-        }
-    else
-        {
-        TInt physicalKeyboards = iData.PhysicalKeyboards();
-        
-        if( iItutIndex > -1 )
-            {
-            TBool selected = iData.AWCBitmask() & EKeyboardStyle12Key ? ETrue : EFalse;
-            iSelection->At(iItutIndex)->SetSelectionStatus( selected );
-            }
-        
-        if( iQwertyIndex > -1  )
-            {
-            TBool selected = iData.AWCBitmask() & EKeyboardStyleQwerty ? ETrue : EFalse;
-            iSelection->At(iQwertyIndex)->SetSelectionStatus( selected );
-            }
-        
-        if( iHalfQwertyIndex > -1 )
-            {
-            TBool selected = iData.AWCBitmask() & EKeyboardStyleHalfQwerty ? ETrue : EFalse;
-            iSelection->At(iHalfQwertyIndex)->SetSelectionStatus( selected );
-            }
-        }
-    SetSettingPage(0);
-    }
-
-void CAknFepMultiSelectionSettingItem::StoreL()
-    {
-    if(iSelection)
-        {
-        if ( iItutIndex > -1 )
-            {
-            if(iSelection->At(iItutIndex)->SelectionStatus())
-                {
-                iData.AWCBitmask() |= EKeyboardStyle12Key;
-                }
-            else
-                {
-                iData.AWCBitmask() &= ~EKeyboardStyle12Key;
-                }
-            }
-        
-        if( iHalfQwertyIndex > -1 )
-            {                   
-            if(iSelection->At(iHalfQwertyIndex)->SelectionStatus())
-                {
-                iData.AWCBitmask() |= EKeyboardStyleHalfQwerty;
-                }
-            else
-                {
-                iData.AWCBitmask() &= ~EKeyboardStyleHalfQwerty;
-                }
-            }
-        if ( iQwertyIndex > -1 )
-            {
-            if(iSelection->At(iQwertyIndex)->SelectionStatus())
-                {
-                iData.AWCBitmask() |= EKeyboardStyleQwerty;
-                }
-            else
-                {
-                iData.AWCBitmask() &= ~EKeyboardStyleQwerty;
-                }
-            }
-        }
-    }
-
-void CAknFepMultiSelectionSettingItem::LoadL()
-    {
-    if(iSelection)
-        {
-        iSelection->ResetAndDestroy();
-        delete iSelection;   
-        iSelection = NULL;
-        }
-    iSelection = CreateSelectionItemListL();
-    }
-
-CSelectionItemList* CAknFepMultiSelectionSettingItem::CreateSelectionItemListL()
-    {
-    iItutIndex = -1;
-    iQwertyIndex = -1;
-    iHalfQwertyIndex = -1;
-    
-    CSelectionItemList* selection = new (ELeave) CSelectionItemList(2);
-    CleanupStack::PushL( selection );
-    
-    TInt physicalKeyboards = iData.PhysicalKeyboards();
-    TInt count = 0;
-    
-    TInt qwertyMask = EPhysicalKeyboardQwerty4x12 | EPhysicalKeyboardQwerty4x10 | 
-                      EPhysicalKeyboardQwerty3x11 | EPhysicalKeyboardCustomQwerty;
-    
-    TBool supportVFSQ = FeatureManager::FeatureSupported( KFeatureIdVirtualFullscrQwertyInput );
-    
-    if ( physicalKeyboards & EPhysicalKeyboard12key ) //itut
-        {
-        TBool active = iData.AWCBitmask() & EKeyboardStyle12Key ? ETrue : EFalse; 
-        HBufC* text = iCoeEnv->AllocReadResourceLC( R_AKNFEP_PRED_SETTING_ITUT );
-        iItutIndex = count++;
-        
-        CSelectableItem* item = new (ELeave) CSelectableItem( *text, active );
-        CleanupStack::PushL( item );
-        item->ConstructL();
-        selection->AppendL( item );
-        CleanupStack::Pop( item );
-        CleanupStack::PopAndDestroy( text );        
-        }
-    
-    if ( ( physicalKeyboards & qwertyMask ) || supportVFSQ ) //4x12,4x10,3x11,custom, FSQ
-        {
-        TBool active = iData.AWCBitmask() & EKeyboardStyleQwerty ? ETrue : EFalse;
-        HBufC* text = iCoeEnv->AllocReadResourceLC( R_AKNFEP_PRED_SETTING_QWERTY );
-        iQwertyIndex = count++;
-
-        CSelectableItem* item = new (ELeave) CSelectableItem( *text, active );
-        CleanupStack::PushL( item );
-        item->ConstructL();
-        selection->AppendL( item );
-        CleanupStack::Pop( item );
-        CleanupStack::PopAndDestroy( text );          
-        }
-  
-    if ( physicalKeyboards & EPhysicalKeyboardHalfQwerty ) //half qwerty
-        {
-        TBool active = iData.AWCBitmask() & EKeyboardStyleHalfQwerty ? ETrue : EFalse; 
-        HBufC* text = iCoeEnv->AllocReadResourceLC( R_AKNFEP_PRED_SETTING_HALF_QWERTY );
-        iHalfQwertyIndex = count++;
-        
-        CSelectableItem* item = new (ELeave) CSelectableItem( *text, active );
-        CleanupStack::PushL( item );
-        item->ConstructL();
-        selection->AppendL( item );
-        CleanupStack::Pop( item );
-        CleanupStack::PopAndDestroy( text );        
-        }
-    
-    CleanupStack::Pop( selection );
-    
-    return selection;
-    }
-
-CAknFepPredictiveSettingList *CAknFepPredictiveSettingList::NewL(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog)
-	{
-	CAknFepPredictiveSettingList* self = CAknFepPredictiveSettingList::NewLC(aData, aDialog);		
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingList *CAknFepPredictiveSettingList::NewLC(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog)
-	{
-	CAknFepPredictiveSettingList* self = new (ELeave) CAknFepPredictiveSettingList(aData, aDialog);
-	CleanupStack::PushL(self);
-	return self;
-	}
-
-CAknFepPredictiveSettingList::CAknFepPredictiveSettingList(CAknFepPredictiveSettingData &aData, CAknFepPredictiveSettingDialog &aDialog) : 
-	CAknSettingItemList(),
-	iSettingsData(aData),
-	iSettingsDialog(aDialog)	
-	{
-	}
-
-CAknFepPredictiveSettingList::~CAknFepPredictiveSettingList()
-	{
-	// no specific destruction code required - no owned data
-	}
-
-
-void CAknFepPredictiveSettingList::SizeChanged()
-    {
-	// if size changes, make sure component takes whole available space
-	CEikFormattedCellListBox *listbox = ListBox();
-
-    if (listbox) 
-        {
-        listbox->SetRect(Rect());
-        }
-    }
-
-void CAknFepPredictiveSettingList::HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType)
-	{
-	TBool isSingleClick = iAvkonAppUi->IsSingleClickCompatible();
-	if( aEventType == EEventEnterKeyPressed || aEventType == EEventItemDoubleClicked 
-	      || ( isSingleClick && ( aEventType == EEventItemSingleClicked )))
-		{
-		iSettingsDialog.EditItemL(EFalse);//EditCurrentItemL(EFalse);
-		}
-	else
-	    {
-	    CAknSettingItemList::HandleListBoxEventL( aListBox,aEventType );
-	    }
-	}
-
-void CAknFepPredictiveSettingList::EditCurrentItemL(TBool aCalledFromMenu)
-	{
-	// invoke EditItemL on the current item
-	TInt index = SettingItemArray()->ItemIndexFromVisibleIndex(ListBox()->CurrentItemIndex());
-	
-	EditItemL(index, aCalledFromMenu);	// invoked from menu,or not
-			  
-	StoreSettingsL();
-	}
-
-CAknSettingItem * CAknFepPredictiveSettingList::CreateSettingItemL (TInt aIdentifier) 
-	{
-	// method is used to create specific setting item as required at run-time.
-	// aIdentifier is used to determine what kind of setting item should be 
-	// created
-	CAknSettingItem* settingItem = NULL;
-	TInt keyboardLayout = 0;
-	RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-    switch (aIdentifier)
-        {
-        case EAknFepCmdPredAutoComplSetting:
-            settingItem = new (ELeave) CAknBinaryPopupSettingItem (
-                        aIdentifier, iSettingsData.AutoWordCompl());
-            if(DeviceHasMultipleKeyboards())
-                {
-                settingItem->SetHidden(ETrue);
-                }
-            break;
-        case EAknFepCmdPredAutoComplMultiSetting:
-            settingItem = new (ELeave) CAknFepMultiSelectionSettingItem (
-                    aIdentifier, iSettingsData, iCoeEnv ); 
-            if(!DeviceHasMultipleKeyboards())
-                {
-                settingItem->SetHidden(ETrue);
-                }
-            break;
-        case EAknFepCmdPredNumberCandidateSetting:
-            settingItem = new (ELeave) CAknBinaryPopupSettingItem (
-                                            aIdentifier, 
-                                            iSettingsData.NumberCandidates());
-            if(keyboardLayout == EPtiKeyboard12Key || keyboardLayout == EPtiKeyboardHalfQwerty)
-                settingItem->SetHidden(ETrue);
-            break;
-        case EAknFepCmdPredTypingCorrectionSetting:
-            settingItem = new (ELeave) CAknEnumeratedTextPopupSettingItem (
-                                            aIdentifier, 
-                                            iSettingsData.TypingCorrection());
-            // Disabled for ITU-T
-            if(keyboardLayout == EPtiKeyboard12Key || keyboardLayout == EPtiKeyboardHalfQwerty)
-                settingItem->SetHidden(ETrue);
-            break;
-        case EAknFepCmdPredPrimaryCandidateSetting:
-            settingItem = new (ELeave) CAknBinaryPopupSettingItem (
-                                            aIdentifier, 
-                                            iSettingsData.PrimaryCandidate());
-            // Disabled for Half Qwerty and ITU-T
-            if(keyboardLayout == EPtiKeyboardHalfQwerty ||
-                    keyboardLayout == EPtiKeyboard12Key)
-                settingItem->SetHidden(ETrue);
-            break;
-        default:
-            break;
-        }
-
-    return settingItem;
-	}
-
-TBool CAknFepPredictiveSettingList::DeviceHasMultipleKeyboards() 
-    {
-    TInt physicalKeyboards = iSettingsData.PhysicalKeyboards();
-    TBool firstFound = EFalse;
-    for(TUint i = 0x01; i <= 0xF0; i = i << 1)
-        {
-        if(physicalKeyboards & i)
-            {
-            if (firstFound)
-                {
-                return ETrue;
-                }
-            else
-                {
-                firstFound = ETrue;
-                }
-            }
-        }
-    return EFalse;
-    }
-
-void CAknFepPredictiveSettingList::HandleResourceChange(TInt aType)
-    {
-    CAknSettingItemList::HandleResourceChange(aType);
-    // Check for keyboard layout change
-    // If layout is changed, close settings with information note
-    if(aType==KEikDynamicLayoutVariantSwitch)
-        {
-        TInt keyboardLayout = 0;
-        RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-        if(keyboardLayout == EPtiKeyboard12Key)
-            {
-#ifndef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-			// Adding this under the flag would avoid flickering as settings page will be
-			// dismissed if __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ is defined
-            // Number candidate
-            SettingItemArray()->At(2)->SetHidden(ETrue);
-            // Typing correction
-            SettingItemArray()->At(3)->SetHidden(ETrue);
-            // Primary Candidate
-            SettingItemArray()->At(4)->SetHidden(ETrue);
-#endif            
-            }
-        else if (keyboardLayout == EPtiKeyboardHalfQwerty)
-            {
-            // Number candidate
-            SettingItemArray()->At(2)->SetHidden(ETrue);
-            // Typing correction
-            SettingItemArray()->At(3)->SetHidden(ETrue);
-            // Primary Candidate
-            SettingItemArray()->At(4)->SetHidden(ETrue);
-            }
-        else
-            {
-            // Number candidate
-            SettingItemArray()->At(2)->SetHidden(EFalse);
-            // Typing correction
-            SettingItemArray()->At(3)->SetHidden(EFalse);
-            // Primary Candidate
-            SettingItemArray()->At(4)->SetHidden(EFalse);            
-            }
-            
-        TRAP_IGNORE(
-        { 								 
-        HandleChangeInItemArrayOrVisibilityL();	
-        });
-        
-        }
-    }
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepQuery.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <aknedsts.h>
-#include "AknFepQuery.h"
-#include <featmgr.h>                //FeatureManager
-
-CAknFepTextQueryDialog::CAknFepTextQueryDialog(TDes& aDataText, CAknEdwinState& aEditorState, 
-    const TTone aTone, const TInt aEditorFlag) :
-    CAknTextQueryDialog(aDataText, aTone),
-    iUnderlyingEditorState(aEditorState),
-    iEditorFlag(aEditorFlag)
-    {
-    }
-
-CAknFepTextQueryDialog::~CAknFepTextQueryDialog()
-    {
-    }
-
-void CAknFepTextQueryDialog::PreLayoutDynInitL()
-    {
-    CAknTextQueryDialog::PreLayoutDynInitL();
-
-    // need to set query editor's case and sct resource based on editor present when this is launched
-    CAknQueryControl* ctrl=STATIC_CAST(CAknQueryControl*, ControlOrNull(EGeneralQuery));
-    CEikEdwin* editor=STATIC_CAST(CEikEdwin*, ctrl->ControlByLayoutOrNull(EDataLayout));
-    if (editor)
-        {
-        if (iEditorFlag)
-	       { 
-	       editor->SetAknEditorFlags(editor->AknEdwinFlags() | iEditorFlag );	     
-	       }
-        TInt currentCase = iUnderlyingEditorState.CurrentCase();
-        if (currentCase != 0)
-            {
-            editor->SetAknEditorCase(iUnderlyingEditorState.CurrentCase());
-            }
-        else
-            {
-            editor->SetAknEditorCase(EAknEditorUpperCase);
-            }
-        if( iUnderlyingEditorState.Flags() & EAknEditorFlagLatinInputModesOnly )
-            {
-            editor->SetAknEditorFlags(editor->AknEdwinFlags() | EAknEditorFlagLatinInputModesOnly);
-            }
-        if (FeatureManager::FeatureSupported(KFeatureIdJapanese))
-            {
-            editor->SetAknEditorFlags(editor->AknEdwinFlags() | EAknEditorFlagLatinInputModesOnly);
-            }
-        TInt underlyingEditorSCTResId=iUnderlyingEditorState.SpecialCharacterTableResourceId();
-        if (FeatureManager::FeatureSupported(KFeatureIdChinese))
-            {
-            if (!underlyingEditorSCTResId || underlyingEditorSCTResId == R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG)
-                {
-                underlyingEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_CHINESE;
-                }
-            }
-        else if (!underlyingEditorSCTResId)
-            {
-            underlyingEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG;
-            }
-        editor->SetAknEditorSpecialCharacterTable(underlyingEditorSCTResId);
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidatePane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1172 +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 CAknFepUICtrlCandidatePane methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-#include <eiklabel.h>
-#include <AknsDrawUtils.h>
-#include <AknBidiTextUtils.h> 
-#include <AknsUtils.h>
-#include <AknIconUtils.h>
-
-#include <aknfepuictrls.mbg>
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlCandidatePane.h"
-#include "AknFepUIAvkonCtrlCandidateSelected.h"
-#include "aknfepchineseuidataconv.h"
-#include "aknfepuilayoutdatamgr.h"
-
-
-#include "data_caging_path_literals.hrh"
-
-const TInt CandidateCountLeft = 10;
-
-_LIT(KFepUiControlsBitmapFile, "aknfepuictrls.mbm");
-
-CAknFepUICtrlCandidatePane* CAknFepUICtrlCandidatePane::NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr)
-    {
-    CAknFepUICtrlCandidatePane* self = new(ELeave) CAknFepUICtrlCandidatePane( aLafDataMgr );
-    CleanupStack::PushL(self);
-    self->ConstructL(aParent);
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepUICtrlCandidatePane::~CAknFepUICtrlCandidatePane()
-    {
-    delete iCandidateSelected;
-    delete iNaviArrowBitmapLeft;
-    delete iNaviArrowBitmapLeftMask;
-    delete iNaviArrowBitmapRight;
-    delete iNaviArrowBitmapRightMask;
-    delete iNaviArrowBitmapUp;
-    delete iNaviArrowBitmapUpMask;
-    delete iNaviArrowBitmapDown;
-    delete iNaviArrowBitmapDownMask;
-    if(iCandidateArray)
-    	{
-    	iCandidateArray->Reset();
-		delete iCandidateArray;
-    	}
-    iCandidateLabelArray.ResetAndDestroy();
-    iOrdinalLabelArray.ResetAndDestroy();
-    iCandidateModeArray.Reset();
-    iPages.Reset();
-    }
-
-const TDesC& CAknFepUICtrlCandidatePane::TextBuffer() const
-    {
-    return iBuffer;
-    }
-
-void CAknFepUICtrlCandidatePane::SetCandidateBuffer(const TDesC& aBuffer)
-    {
-    TInt newLength = aBuffer.Length();
-    TInt oldLength = iBuffer.Length();
-    if(newLength > EMaxCandidates)
-        {
-        newLength = EMaxCandidates;
-        }
-    if(newLength - 1 < iSelected)
-        {
-        // as far as the client is concerned, they have removed the character that was selected
-        // therefore we must now hide the selected candidate, although the highlighting
-        // state remains unchanged
-        iCandidateSelected->MakeVisible(EFalse);
-        }
-    else
-        {
-        if(iHighlighted)
-            {
-            // make sure that the candidate is visible, as the selection is now
-            // within a visible range (it might have been hidden last time
-            // the buffer was set)
-            iCandidateSelected->MakeVisible(ETrue);
-            }
-        }
-
-    TPtrC newText = aBuffer.Left(newLength);
-    TPtr ptr = iBuffer.Des();
-    if(ptr != newText)
-        {
-        for(TInt i = 0; i < newLength; i++)
-            {
-            TBool valueChanged = ETrue;
-            TPtrC newChar = aBuffer.Mid(i, EOneCandidate);
-            if(i < oldLength)
-                {
-                TPtrC oldChar = iBuffer.Mid(i, EOneCandidate);
-                if(newChar == oldChar)
-                    {
-                    valueChanged = EFalse;
-                    }
-                }
-            // only update and redraw label background if the value has changed
-            if(valueChanged)
-                {
-                // we have already allocated enough memory for this
-                CEikLabel* candidateLabel = iCandidateLabelArray[i];
-                TRAP_IGNORE(candidateLabel->SetTextL(newChar));
-
-                // need to update the character if it is in the current selected candidate
-                if(i == iSelected)
-                    {
-                    iCandidateSelected->SetText(newChar);
-                    iCandidateSelected->SetOrdinal(i + 1);
-                    DrawDeferred();
-                    }
-                if(i < iVisibleCount)
-                    {
-                    // only redraw characters that are visible
-                    TRect rect = candidateLabel->Rect();
-                    Window().Invalidate(rect);
-                    }
-                }
-            }
-        ptr.Copy(newText);
-        LayoutLabels();
-        LayoutCandidateSelected();
-        iVisibleCount = newLength;
-        UpdateLabelVisibility();
-        }
-    }
-
-CDesCArrayFlat* CAknFepUICtrlCandidatePane::CandidateArray(void)
-    {
-    return iCandidateArray;
-    }
-
-void CAknFepUICtrlCandidatePane::SetCandidateBuffer(void)
-    {
-    if(iPages.Count() == 0)
-        {
-        return;
-        }
-    TPage curPage = iPages[iCurDisplayPage];
-    iVisibleCount = curPage.iEndIndex - curPage.iStartIndex + 1;
-
-    if(iVisibleCount - 1 < iSelected)
-        {
-        iCandidateSelected->MakeVisible(EFalse);
-        }
-    else
-        {
-        if(iHighlighted)
-            {
-            iCandidateSelected->MakeVisible(ETrue);
-            }
-        }
-
-    TBufC<EPhraseLength> buf;
-    TPtr newText = buf.Des();
-
-    for(TInt i = 0; i < iVisibleCount; i ++)
-        {
-        CEikLabel* candidateLabel = iCandidateLabelArray[i];
-        const TDesC* txtLabel = candidateLabel->Text();
-        newText = (*iCandidateArray)[curPage.iStartIndex + i];
-
-        if((txtLabel->Compare(newText) != 0) )
-            {
-            // we have already allocated enough memory for this
-            TRAP_IGNORE( candidateLabel->SetTextL(newText));
-            }
-            
-            // need to update the character if it is in the current selected candidate
-            if(i == iSelected)
-                {
-                iCandidateSelected->SetText(newText);
-                iCandidateSelected->SetOrdinal(i + 1);
-                DrawDeferred();
-                }
-            if(i < iVisibleCount)
-                {
-                // only redraw labels that are visible
-                TRect rect = candidateLabel->Rect();
-                Window().Invalidate(rect);
-            }
-        }
-    LayoutLabels();
-    LayoutCandidateSelected();
-    DrawDeferred();
-    UpdateLabelVisibility();
-    }
-
-void CAknFepUICtrlCandidatePane::SetHighlighted(TBool aHighlighted)
-    {
-    if(!COMPARE_BOOLS(iHighlighted, aHighlighted))
-        {
-        iHighlighted = aHighlighted;
-        iCandidateSelected->MakeVisible(aHighlighted);
-
-        iCandidateSelected->DrawDeferred();
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::Highlighted() const
-    {
-    return iHighlighted;
-    }
-
-void CAknFepUICtrlCandidatePane::SetCandidateMode(TInt aIndex, TCandidateMode aMode)
-    {
-    __ASSERT_DEBUG(aIndex < EMaxCandidates, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetModeOutsideMaxCandidates));
-    __ASSERT_DEBUG(aIndex >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetModeOutsideMaxCandidates));
-
-    TCandidateMode oldMode = iCandidateModeArray[aIndex];
-    if(oldMode != aMode)
-        {
-        iCandidateModeArray[aIndex] = aMode;
-        if(iSelected == aIndex)
-            {
-            LayoutCandidateSelected();
-            }
-        // only do drawing if visible
-        if(aIndex < iVisibleCount)
-            {
-            LayoutLabel(aIndex);
-            if(iSelected == aIndex && iHighlighted)
-                {
-                iCandidateSelected->DrawDeferred();
-                }
-            else
-                {
-                CEikLabel* candidateLabel = iCandidateLabelArray[aIndex];
-                TRect rect = candidateLabel->Rect();
-                Window().Invalidate(rect);
-                }
-            }
-        }
-    }
-
-CAknFepUICtrlCandidatePane::TCandidateMode CAknFepUICtrlCandidatePane::CandidateMode(TInt aIndex)
-    {
-    return iCandidateModeArray[aIndex];
-    }
-
-TBool CAknFepUICtrlCandidatePane::IsShowHorizontalScrollArrows() const
-    {
-    return EFalse;
-    }
-
-void CAknFepUICtrlCandidatePane::ShowHorizontalScrollArrows(TBool /*aValue*/)
-    {
-    // If the state is changed, the arrows will be redrawn in the new state.
-    //    if(!COMPARE_BOOLS(iShowHorizontalScrollArrows, aValue))
-    //        {
-    //        iShowHorizontalScrollArrows = aValue;
-    //        TRect rect = iIndiFepArrowLeft.Rect();
-    //        Window().Invalidate(rect);
-    //        rect = iIndiFepArrowRight.Rect();
-    //        Window().Invalidate(rect);
-    //        }
-    }
-
-void CAknFepUICtrlCandidatePane::ShowUpScrollArrows(TBool aValue)
-    {
-    if (iShowUpScrollArrows != aValue)
-        {
-        iShowUpScrollArrows = aValue;
-        TRect rect = iIndiFepArrowUp.Rect();
-        Window().Invalidate(rect);
-        }
-    }
-    
-void CAknFepUICtrlCandidatePane::ShowDownScrollArrows(TBool aValue)
-    {
-    if (iShowDownScrollArrows != aValue)
-        {
-        iShowDownScrollArrows = aValue;
-        TRect rect = iIndiFepArrowDown.Rect();
-        Window().Invalidate(rect);
-        }
-        
-    }
-    
-void CAknFepUICtrlCandidatePane::ShowLeftScrollArrows(TBool /*aValue*/)
-    {
-    //    if (iShowLeftScrollArrows != aValue)
-    //        {
-    //        iShowLeftScrollArrows = aValue;
-    //        TRect rect = iIndiFepArrowLeft.Rect();
-    //        Window().Invalidate(rect);
-    //        }
-    }
-        
-void CAknFepUICtrlCandidatePane::ShowRightScrollArrows(TBool /*aValue*/)
-    {
-    //    if (iShowRightScrollArrows != aValue)
-    //        {
-    //        iShowRightScrollArrows = aValue;
-    //        TRect rect = iIndiFepArrowRight.Rect();
-    //        Window().Invalidate(rect);
-    //        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::IsShowVerticalScrollArrows() const
-    {
-    return iShowVerticalScrollArrows;
-    }
-
-void CAknFepUICtrlCandidatePane::ShowVerticalScrollArrows(TBool aValue)
-    {
-    // If the state is changed, the arrows will be redrawn in the new state.
-    if(!COMPARE_BOOLS(iShowVerticalScrollArrows, aValue))
-        {
-        iShowVerticalScrollArrows = aValue;
-        TRect rect = iIndiFepArrowUp.Rect();
-        Window().Invalidate(rect);
-        rect = iIndiFepArrowDown.Rect();
-        Window().Invalidate(rect);
-        }
-    }
-
-void CAknFepUICtrlCandidatePane::ShowCandidateOrdinals(TBool aValue)
-    {
-    if(!COMPARE_BOOLS(iShowCandidateOrdinals, aValue))
-        {
-        iShowCandidateOrdinals = aValue;
-        iCandidateSelected->ShowOrdinal(aValue);
-        UpdateLabelVisibility();
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::IsShowCandidateOrdinals() const
-    {
-    return iShowCandidateOrdinals;
-    }
-
-TInt CAknFepUICtrlCandidatePane::VisibleCandidateCount() const
-    {
-    return iVisibleCount;
-    }
-
-void CAknFepUICtrlCandidatePane::SetVisibleCandidateCount(TInt aCount)
-    {
-    __ASSERT_DEBUG(aCount > 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-    __ASSERT_DEBUG(aCount <= EMaxCandidates, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-    if(iVisibleCount != aCount)
-        {
-        if(aCount - 1 < iSelected)
-            {
-            // automatically move the selection to be at the end of the new
-            // candidate buffer
-            SelectIndex(aCount - 1); // ignore return code
-            }
-        iVisibleCount = aCount;
-        UpdateLabelVisibility();
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectFirstPhrase()
-    {
-    if(iVisibleCount >= 1)
-        {
-        return SelectIndex(0,EFalse);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectFirst()
-    {
-    if(iBuffer.Length())
-        {
-        return SelectIndex(0);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectLastPhrase()
-    {
-    if(iVisibleCount > 1)
-        {
-        return SelectIndex(iVisibleCount - 1);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectLast()
-    {
-    TInt length = iBuffer.Length();
-    if(length)
-        {
-        TInt index = length < iVisibleCount ? length : iVisibleCount;
-        return SelectIndex(index - 1);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectNext()
-    {
-    if(iSelected < iVisibleCount - 1)
-        {
-        return SelectIndex(iSelected + 1);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectPrev()
-    {
-    if(iSelected > 0)
-        {
-        return SelectIndex(iSelected - 1);
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUICtrlCandidatePane::SelectIndex(TInt aIndex, TBool selected)
-    {
-    if(aIndex + 1 > iVisibleCount || aIndex < 0)
-        {
-        return EFalse;
-        }
-    if(iSelected != aIndex)
-        {
-        if(iSelected + 1 > iVisibleCount && iHighlighted)
-            {
-            // candidate selection is currently hidden, as the current 
-            // selection is outside the range of valid candidates, therefore 
-            // show it again
-            iCandidateSelected->MakeVisible(ETrue);
-            }
-        iSelected = aIndex;
-        // move and repopulate the selected candidate control
-        const TDesC* txtLabel = iCandidateLabelArray[aIndex]->Text();
-        iCandidateSelected->SetText(*txtLabel);
-        iCandidateSelected->SetOrdinal(iSelected + 1);
-        
-        LayoutCandidateSelected();
-        if( selected )
-           {
-
-           DrawDeferred();
-           }
-        
-		}
-    return ETrue;
-    }
-
-TInt CAknFepUICtrlCandidatePane::SelectedIndex() const
-    {
-    return iSelected;
-    }
-
-TPtrC CAknFepUICtrlCandidatePane::CurrentPhraseCandidate() const
-    {
-    __ASSERT_DEBUG(iSelected >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicCurrentSelectionOutsideVisibleCandidates));
-    if(iVisibleCount > iSelected)
-        {
-        return *(iCandidateLabelArray[iSelected]->Text());
-        }
-    else
-        {
-        return TPtrC();
-        }
-    }
-
-TPtrC CAknFepUICtrlCandidatePane::CurrentCandidate() const
-    {
-    __ASSERT_DEBUG(iSelected >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicCurrentSelectionOutsideVisibleCandidates));
-    if(iBuffer.Length() > iSelected)
-        {
-        return iBuffer.Mid(iSelected, EOneCandidate);
-        }
-    else
-        {
-        return TPtrC();
-        }
-    }
-
-TInt CAknFepUICtrlCandidatePane::LabelTextWidthInPixels( TInt aIndex)
-    {
-    TAknLayoutText layoutText;
-    TAknTextLineLayout candidatePaneLayoutText = 
-        CAknFepChineseUIDataConv::AnyToTextLine(iLafDataMgr->RequestData( ECandidatePaneTextLine ));
-       
-    layoutText.LayoutText(Rect(), candidatePaneLayoutText);
-
-    const CFont* font = layoutText.Font();
-
-    TInt labelWidthInPixels = 0;
-    if(font)
-        {
-        const TDesC* txtLabel = iCandidateLabelArray[aIndex]->Text();
-        if(txtLabel->Length() != 0)
-            {
-            labelWidthInPixels = font->TextWidthInPixels(*txtLabel);
-            }
-        }
-    return labelWidthInPixels;
-    }
-void CAknFepUICtrlCandidatePane::SetPaneLayout(CAknFepUICtrlContainerChinese::TPaneLayout aPaneLayout)
-    {
-    iPaneLayout = aPaneLayout;
-    }
-    
-void CAknFepUICtrlCandidatePane::SplitPhraseCandidatesIntoPages()
-    {
-    iPages.Reset();
-    iUnpagedIndex = 0;
-    
-    InternalSpilitPhraseCandidate();
-    
-    if( iPages.Count() == 0 )
-        {
-        iVisibleCount = 0;
-        }
-    else
-        {
-        iCurDisplayPage = 0;
-        SetVisibleCandidateCount(iPages[0].iEndIndex - iPages[0].iStartIndex + 1);
-        }
-    }
-    
-void CAknFepUICtrlCandidatePane::NextCandidatePage(void)
-    {
-    if(iCurDisplayPage == (iPages.Count() - 1))
-        {
-        if( iUnpagedIndex < iCandidateArray->Count() )
-            {
-            //continue page
-            InternalSpilitPhraseCandidate();
-            iCurDisplayPage++;
-            }
-        else
-            {
-            iCurDisplayPage = 0;
-            }
-        }
-    else
-        {
-        iCurDisplayPage ++;
-        }
-    // For fix bug of when the count of character in the last page is less than
-    // the previous page of the last page. And then select the last character of 
-    // the previous page of the last page, and select next page. First of the last 
-    // page is not refreshed.
-    iSelected = 0;
-    }
-
-void CAknFepUICtrlCandidatePane::PreviousCandidatePage(void)
-    {
-    if(iCurDisplayPage == 0)
-        {
-        iCurDisplayPage = iPages.Count() - 1;
-        }
-    else
-        {
-        iCurDisplayPage --;
-        }
-    }
-
-void CAknFepUICtrlCandidatePane::SizeChanged()
-    {
-    LayoutRects();
-    LayoutContainedControls();
-    }
-
-TInt CAknFepUICtrlCandidatePane::CountComponentControls() const
-    {
-    TInt count = 0;
-    count += iCandidateLabelArray.Count();
-    count += iOrdinalLabelArray.Count();
-
-    CCoeControl* controls[] =
-        {
-        iCandidateSelected
-        } ;
-
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if(controls[ii])
-            {
-            count++ ;
-            }   
-        }
-    return count ;
-    }
-
-CCoeControl* CAknFepUICtrlCandidatePane::ComponentControl(TInt aIndex) const
-    {
-    TInt candidateCount = iCandidateLabelArray.Count();
-    TInt ordinalCount = iOrdinalLabelArray.Count();
-
-    if(aIndex < candidateCount)
-        {
-        // because this method is const, the const [] operator is selected
-        // which means that the pointer is const, so have to cast away constness
-        // - a possible alternative is to make the array mutable?
-        return CONST_CAST(CEikLabel*, iCandidateLabelArray[aIndex]);
-        }
-    aIndex -= candidateCount;
-
-    if(aIndex < ordinalCount)
-        {
-        // because this method is const, the const [] operator is selected
-        // which means that the pointer is const, so have to cast away constness
-        // - a possible alternative is to make the array mutable?
-        return CONST_CAST(CEikLabel*, iOrdinalLabelArray[aIndex]);
-        }
-    aIndex -= ordinalCount;
-
-    CCoeControl* controls[] =
-        {
-        iCandidateSelected
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if (controls[ii] && aIndex-- == 0)
-            {
-            return controls[ii] ;
-            }
-        }
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-void CAknFepUICtrlCandidatePane::Draw(const TRect& /* aRect */) const
-    {
-    CWindowGc& gc = SystemGc();
-
-    if(iShowHorizontalScrollArrows)
-        {
-        if (iShowLeftScrollArrows)
-            {
-            iIndiFepArrowLeft.DrawImage(gc, 
-                                        iNaviArrowBitmapLeft, 
-                                        iNaviArrowBitmapLeftMask);     
-            }
-        
-        if (iShowRightScrollArrows)
-            {
-            iIndiFepArrowRight.DrawImage(gc, 
-                                         iNaviArrowBitmapRight, 
-                                         iNaviArrowBitmapRightMask);
-            }
-        }
-    if(iShowVerticalScrollArrows)
-        {
-        if (iShowUpScrollArrows)
-            {
-            iIndiFepArrowUp.DrawImage(gc,
-                                      iNaviArrowBitmapUp, 
-                                      iNaviArrowBitmapUpMask);
-            }
-            
-        if (iShowDownScrollArrows)
-            {
-            iIndiFepArrowDown.DrawImage(gc, 
-                                        iNaviArrowBitmapDown, 
-                                        iNaviArrowBitmapDownMask);
-            }
-        }
-    }
-
-void CAknFepUICtrlCandidatePane::ConstructL(RWindow& aParent)
-    {
-    SetContainerWindowL(aParent);
-    ConstructBitmapsL();
-
-    TBuf<EOneCandidate> ordinal;
-    for(TInt i = 0; i < EMaxCandidates; i++)
-        {
-        CEikLabel* candidateLabel = new(ELeave) CEikLabel;
-        CleanupStack::PushL(candidateLabel);
-        candidateLabel->SetContainerWindowL(aParent);
-        candidateLabel->SetBufferReserveLengthL(EPhraseLength);
-        // ownership is passed, unless allocation is unsuccessful, in which case we still have it on the stack
-        User::LeaveIfError(iCandidateLabelArray.Append(candidateLabel));
-        CleanupStack::Pop(); // candidateLabel
-
-        CEikLabel* ordinalLabel = new(ELeave) CEikLabel;
-        CleanupStack::PushL(ordinalLabel);
-        ordinalLabel->SetContainerWindowL(aParent);
-        ordinalLabel->SetBufferReserveLengthL(EOneCandidate);
-        ordinal.Num((i+1)%10); // digits are [1, 2,,, 9, 0] - only want the last digit in the case of 10!
-        ordinalLabel->SetTextL(ordinal);
-        // ownership is passed, unless allocation is unsuccessful, in which case we still have it on the stack
-        User::LeaveIfError(iOrdinalLabelArray.Append(ordinalLabel));
-        CleanupStack::Pop(); // ordinalLabel
-
-        User::LeaveIfError(iCandidateModeArray.Append(ECandidateModeNormal));
-        }
-
-    iCandidateSelected = CAknFepUICtrlCandidateSelected::NewL(aParent);
-    iCandidateSelected->MakeVisible(iHighlighted);
-    iCandidateSelected->SetMopParent(this);
-    iCandidateArray = new(ELeave) CDesCArrayFlat(1);
-    }
-
-void CAknFepUICtrlCandidatePane::ConstructBitmapsL()
-    {    
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();  
-    
-    TFileName bmpFile;
-    bmpFile.Copy(_L("z:"));
-    bmpFile.Append(KDC_BITMAP_DIR);
-    bmpFile.Append(KFepUiControlsBitmapFile);  
-
-    AknsUtils::CreateColorIconL( skin,
-                                 KAknsIIDQgnIndiFepArrowLeft,
-                                 KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG20,
-                                 iNaviArrowBitmapLeft,
-                                 iNaviArrowBitmapLeftMask,
-                                 bmpFile,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_left,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_left_mask,
-                                 AKN_LAF_COLOR( 0 )
-                             );    
-    AknsUtils::CreateColorIconL( skin,
-                                 KAknsIIDQgnIndiFepArrowRight,
-                                 KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG20,
-                                 iNaviArrowBitmapRight,
-                                 iNaviArrowBitmapRightMask,
-                                 bmpFile,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_right,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_right_mask,
-                                 AKN_LAF_COLOR( 0 )
-                             );    
-
-    AknsUtils::CreateColorIconL( skin,
-                                 KAknsIIDQgnIndiFepArrowUp,
-                                 KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG20,
-                                 iNaviArrowBitmapUp,
-                                 iNaviArrowBitmapUpMask,
-                                 bmpFile,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_up,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_up_mask,
-                                 AKN_LAF_COLOR( 0 )
-                             );    
-    AknsUtils::CreateColorIconL( skin,
-                                 KAknsIIDQgnIndiFepArrowDown,
-                                 KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG20,
-                                 iNaviArrowBitmapDown,
-                                 iNaviArrowBitmapDownMask,
-                                 bmpFile,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_down,
-                                 EMbmAknfepuictrlsQgn_indi_fep_arrow_down_mask,
-                                 AKN_LAF_COLOR( 0 )
-                             );    
-    }
-
-CAknFepUICtrlCandidatePane::CAknFepUICtrlCandidatePane(CAknFepUiLayoutDataMgr* aLafDataMgr)
-    :
-    iPaneLayout(CAknFepUICtrlContainerChinese::ELayoutCandidate),
-    iHighlighted(EFalse),
-    iShowHorizontalScrollArrows(EFalse),
-    iShowVerticalScrollArrows(EFalse),
-    iShowUpScrollArrows(ETrue),
-    iShowDownScrollArrows(ETrue),
-    iShowLeftScrollArrows(ETrue),
-    iShowRightScrollArrows(ETrue),
-    iShowCandidateOrdinals(ETrue),
-    iCurDisplayPage(0),
-    iOrdinalLableWidth(0)
-    {
-    iLafDataMgr = aLafDataMgr;
-    }
-
-void CAknFepUICtrlCandidatePane::LayoutRects()
-    {
-    TRect rect = Rect();
-    
-    TAknWindowLineLayout candidateWindowLine1 = 
-      CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ECandidateWindowLine1));
-    TAknWindowLineLayout candidateWindowLine2 = 
-      CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ECandidateWindowLine2));
-    TAknWindowLineLayout candidateWindowLine3 = 
-      CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ECandidateWindowLine3));
-    TAknWindowLineLayout candidateWindowLine4 = 
-      CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ECandidateWindowLine4));
-
-    iIndiFepArrowLeft.LayoutRect(rect, candidateWindowLine1); 
-    AknIconUtils::SetSize(iNaviArrowBitmapLeft, iIndiFepArrowLeft.Rect().Size());
-
-    iIndiFepArrowRight.LayoutRect(rect, candidateWindowLine2); 
-    AknIconUtils::SetSize(iNaviArrowBitmapRight, iIndiFepArrowRight.Rect().Size());
-
-    iIndiFepArrowUp.LayoutRect(rect, candidateWindowLine3);
-    AknIconUtils::SetSize(iNaviArrowBitmapUp, iIndiFepArrowUp.Rect().Size());
-
-    iIndiFepArrowDown.LayoutRect(rect, candidateWindowLine4);
-    AknIconUtils::SetSize( iNaviArrowBitmapDown, iIndiFepArrowDown.Rect().Size() );
-    }
-
-void CAknFepUICtrlCandidatePane::LayoutContainedControls()
-    {
-    LayoutLabels();
-    LayoutCandidateSelected();
-    }
-
-void CAknFepUICtrlCandidatePane::LayoutLabel(TInt aIndex)
-    {
-    __ASSERT_DEBUG(aIndex >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedLayoutOutsideVisibleCount));
-    __ASSERT_DEBUG(aIndex < iVisibleCount, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedLayoutOutsideVisibleCount));
-    TRect rect = Rect();
-    CEikLabel* candidateLabel = iCandidateLabelArray[aIndex];
-    CEikLabel* ordinalLabel = iOrdinalLabelArray[aIndex];
-    TAknWindowLineLayout layoutCandidateItem = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutCandidateItem));
-    TAknTextLineLayout candidateLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(ECandidatePaneTextLine));
-    
-    // layout candidate label
-    TAknLayoutRect layoutRectCandidateItem;
-    layoutRectCandidateItem.LayoutRect(rect,layoutCandidateItem);
-    TRect rectCandidateItem = layoutRectCandidateItem.Rect();
-    
-    if(aIndex > 0)
-	    {
-	    rectCandidateItem.iTl.iX = iCandidateLabelArray[aIndex - 1]->Rect().iBr.iX;
-        }
-    TAknLayoutText layoutText;
-    layoutText.LayoutText(rectCandidateItem,candidateLayout);
-    TRect rectText = layoutText.TextRect();
-    rectText.SetWidth(LabelTextWidthInPixels(aIndex));
-
-    candidateLabel->SetRect(rectText);
-    candidateLabel->SetFont(layoutText.Font());
-
-    // layout ordinal label
-    TAknTextLineLayout ordinalLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EOrdinalCandidateTextLayout));
-    TBufC16<1> buf;
-    TAknLayoutText layoutOrdinal;
-    TPtr16 ptr = buf.Des();
-    ptr = (*(ordinalLabel->Text())).Left(EOneCandidate);
-    
-    layoutOrdinal.LayoutText(rectCandidateItem,ordinalLayout);
-    
-    const CFont* font = layoutOrdinal.Font();
-    
-    TRect rectOrdinal = layoutOrdinal.TextRect();
-    // align ordinal label and candidate label 
-    
-    /* removed in 2006.03.29
-    rectOrdinal.iTl.iY = rectText.iTl.iY;
-    rectOrdinal.SetWidth(font->TextWidthInPixels(ptr));
-    rectOrdinal.SetHeight(font->HeightInPixels());
-    */
-    
-    // inserted in 2006.03.29
-    TPoint ordinalPosition;
-    TInt ordinalWidth = font->TextWidthInPixels(ptr);
-    ordinalPosition.iX = rectText.iTl.iX - ordinalWidth;
-    ordinalPosition.iY = rectText.iTl.iY;
-    
-    rectOrdinal = TRect(ordinalPosition,
-                        TPoint(ordinalPosition.iX + rectOrdinal.Width(),
-                               ordinalPosition.iY + rectOrdinal.Height()));
-    // end inserting                               
-
-    ordinalLabel->SetRect(rectOrdinal);
-    ordinalLabel->SetFont(font);
-    iOrdinalLableWidth = rectOrdinal.Width();
-
-    // override colours if skin data present
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRgb candidateLabelTextColor = layoutText.Color();
-    TRgb ordinalLabelTextColor = layoutOrdinal.Color();
-
-    AknsUtils::GetCachedColor(skin, candidateLabelTextColor, 
-                              KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG19);
-
-    AknsUtils::GetCachedColor(skin, ordinalLabelTextColor,
-        KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG19);
-
-    TRAP_IGNORE(
-        candidateLabel->OverrideColorL(EColorLabelText, candidateLabelTextColor);
-        ordinalLabel->OverrideColorL(EColorLabelText, ordinalLabelTextColor);
-        );
-    }
-
-void CAknFepUICtrlCandidatePane::LayoutLabels()
-    {
-    for(TInt i = 0; i < iVisibleCount; i++)
-        {
-        LayoutLabel(i);
-        }
-    }
-
-void CAknFepUICtrlCandidatePane::LayoutCandidateSelected()
-    {
-    TCandidateMode candidateMode = iCandidateModeArray[iSelected];
-    iCandidateSelected->SetCandidateMode(candidateMode);
-    iCandidateSelected->SetLayout(iPaneLayout);
-
-    TRect ordinalRect = iOrdinalLabelArray[iSelected]->Rect();
-
-    TAknLayoutRect layoutRect;
-    TAknWindowLineLayout layoutCandidateItem = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutCandidateItem));
-    layoutRect.LayoutRect(Rect(),layoutCandidateItem);
-    
-    TRect rectLayoutCandidateItem = layoutRect.Rect();
-    rectLayoutCandidateItem.iTl.iX = ordinalRect.iTl.iX;
-
-    TAknTextLineLayout candidateLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(ECandidatePaneTextLine));
-    TAknTextLineLayout ordinalLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EOrdinalCandidateTextLayout));
-    rectLayoutCandidateItem.SetWidth(iCandidateLabelArray[iSelected]->Rect().Width() + candidateLayout.il - ordinalLayout.il);
-
-    rectLayoutCandidateItem.SetHeight(rectLayoutCandidateItem.Height() - 1);
-    
-    iCandidateSelected->SetRect(rectLayoutCandidateItem);
-    }
-
-void CAknFepUICtrlCandidatePane::UpdateLabelVisibility()
-    {
-    TInt number = 0;
-    // only show the labels corresponding to candidates that have been set
-    if(iPages.Count() != 0)
-        {
-        number = iPages[iCurDisplayPage].iEndIndex - iPages[iCurDisplayPage].iStartIndex + 1;
-        }
-    else
-        {
-        number = iBuffer.Length();
-        }
-
-    if(number > iVisibleCount)
-        {
-        number =  iVisibleCount;
-        }
-    for(TInt i = 0; i < EMaxCandidates; i++)
-        {
-        CEikLabel* candidateLabel = iCandidateLabelArray[i];
-        CEikLabel* ordinalLabel = iOrdinalLabelArray[i];
-        if(i < number)
-            {
-            candidateLabel->MakeVisible(ETrue);
-            ordinalLabel->MakeVisible(iShowCandidateOrdinals); // only show if needed
-            }
-        else
-            {
-            candidateLabel->MakeVisible(EFalse);
-            ordinalLabel->MakeVisible(EFalse); // don't show it as there is no character to go with it
-            }
-        }
-    }
-
-void CAknFepUICtrlCandidatePane::ResetCandidateState()
-    {
-    iPages.Reset();
-    }
-
-void CAknFepUICtrlCandidatePane::DrawBackground(const TRect& aRect) const
-    {
-    // instead of drawing one blank rectangle over each of the 20 labels,
-    // just draw one big rectangle covering the entire pane
-    CWindowGc& gc = SystemGc();
-    TRgb background = AKN_LAF_COLOR(0);
-    gc.SetBrushColor(background);
-    gc.Clear(aRect);
-    }
-
-void CAknFepUICtrlCandidatePane::InternalSpilitPhraseCandidate()
-    {
-    //__ASSERT_DEBUG(aStartIndex + aCount <= iCandidateArray->Count());
-    
-    TInt phraseCandidateNum = iCandidateArray->Count();
-    if( phraseCandidateNum == iUnpagedIndex )
-        {
-        //nothing need to be paged
-        return;
-        }
-        
-    TPage curPage;
-    TInt index = iUnpagedIndex;
-    CEikLabel* candidateLabel;
-    
-    curPage.iStartIndex = index;
-    curPage.iEndIndex = index;
-    TInt candidateLeftNum = phraseCandidateNum - index > EMaxCandidates? 
-                            EMaxCandidates : phraseCandidateNum - index;
-
-    TAknWindowLineLayout layoutCandidateItem = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutCandidateItem));
-    TAknTextLineLayout candidateLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(ECandidatePaneTextLine));
-    
-    // avoid accessing layout data member
-    TAknLayoutRect layoutRect;
-    layoutRect.LayoutRect(Rect(),layoutCandidateItem);
-    TRect rectLayoutCandidateItem = layoutRect.Rect();
-
-    TAknLayoutText layoutText;
-    layoutText.LayoutText(rectLayoutCandidateItem,candidateLayout);
-    TRect rectText = layoutText.TextRect();
-            
-    TInt distance = rectText.iTl.iX - rectLayoutCandidateItem.iTl.iX + rectLayoutCandidateItem.iBr.iX - rectText.iBr.iX;
-    rectLayoutCandidateItem.iTl.iX += distance;
-
-    TInt width = 0;
-    TInt i = 0;     
-
-    const TInt candidateWidth = rectLayoutCandidateItem.Width();
-    for ( i = 0; i < candidateLeftNum; i ++ )
-        {
-        // Initialization
-        candidateLabel = iCandidateLabelArray[i];
-        // labelWidth in the font
-        const CFont* font = layoutText.Font();
-        TPtrC newText = (*iCandidateArray)[iUnpagedIndex + i];
-        TInt labelWidth = font->TextWidthInPixels( newText );
-        if ( labelWidth > candidateWidth )
-            {
-            TBufC<EPhraseLength+10> buf1;
-            TPtr text( buf1.Des() );
-            
-            AknBidiTextUtils::ConvertToVisualAndClip(newText, text, *font, 
-                candidateWidth, candidateWidth,
-                AknBidiTextUtils::EImplicit,0xFFFF);
-            
-            iCandidateArray->Delete( iUnpagedIndex + i );
-            TRAP_IGNORE(
-            {
-            iCandidateArray->InsertL( iUnpagedIndex + i, text );
-            candidateLabel->SetTextL(text);
-            });
-            	
-            }
-        else
-            {
-            TRAP_IGNORE( candidateLabel->SetTextL(newText));
-            width = LabelTextWidthInPixels(i)+ iOrdinalLableWidth; 
-            rectLayoutCandidateItem.iTl.iX += width;
-            }
-        if (rectLayoutCandidateItem.iTl.iX >= rectLayoutCandidateItem.iBr.iX)
-            {
-            if (index>0)
-                {
-                curPage.iEndIndex = index - 1;
-                }
-            else
-                {
-                curPage.iEndIndex = index;
-                }
-
-            iPages.Append(curPage);
-            break;
-            }
-        else
-            {
-            index ++;
-            }
-        
-        if( i == EMaxCandidates -1 )
-        	{
-            curPage.iEndIndex = index - 1;
-            iPages.Append(curPage);
-            break;
-        	}
-        
-        }
-        
-    if( i >= candidateLeftNum )
-        {
-        curPage.iEndIndex = index - 1;
-        iPages.Append(curPage);
-        }
-        
-    iUnpagedIndex = index;      
-    }
-
-TBool CAknFepUICtrlCandidatePane::IsFirstPage()
-    {
-    return iCurDisplayPage == 0;
-    }
-
-TBool CAknFepUICtrlCandidatePane::IsLastPage()
-    {
-    if( iCandidateArray->Count() == iUnpagedIndex )
-        {
-        return iCurDisplayPage == iPages.Count() - 1;
-        }
-    return EFalse;
-    }
-
-void CAknFepUICtrlCandidatePane::SetInVisiable()
-    {
-    for (TInt i = 0; i < EMaxCandidates; i ++)
-        {
-        CEikLabel* candidateLabel = iCandidateLabelArray[i];
-        CEikLabel* ordinalLabel = iOrdinalLabelArray[i];
-        candidateLabel->MakeVisible(EFalse);
-        ordinalLabel->MakeVisible(EFalse);
-        }
-    iCandidateSelected->MakeVisible(EFalse);
-    }
-
-TBool CAknFepUICtrlCandidatePane::NeedGetNewCandidatePage()
-    {
-    return (iCandidateArray->Count() - iUnpagedIndex < CandidateCountLeft);
-
-    }
-
-//Bug Fixing for ESSG-7P5CSZ
-void CAknFepUICtrlCandidatePane::Enable(TBool aEnable)
-	{
-	if (!aEnable)
-		{
-		for (TInt i=0; i<iVisibleCount; i++)
-			{
-			TRAP_IGNORE(iCandidateLabelArray[i]->SetTextL(KNullDesC));
-			}
-		iCandidateArray->Reset();
-		iVisibleCount = 0;
-		DrawNow();
-		}
-	}
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlCandidateSelected.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +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 CAknFepUICtrlCandidateSelected methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-#include <eiklabel.h>
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include "AknFepUIAvkonCtrlCandidateSelected.h"
-#include "AknFepUIAvkonCtrlPinyinPopup.h"
-#include "AknFepUiInterfacePanic.h"
-#include <skinlayout.cdl.h>
-
-class CEikLabel;
-
-CAknFepUICtrlCandidateSelected* CAknFepUICtrlCandidateSelected::NewL(RWindowTreeNode& aParent)
-    {
-    CAknFepUICtrlCandidateSelected* self = new(ELeave) CAknFepUICtrlCandidateSelected;
-    CleanupStack::PushL(self);
-    self->ConstructL(aParent);
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepUICtrlCandidateSelected::~CAknFepUICtrlCandidateSelected()
-    {
-    delete iOrdinalLabel;
-    delete iCandidateLabel;
-    }
-
-void CAknFepUICtrlCandidateSelected::SetText(TPtrC aCharacter)
-    {
-    // make sure that we only copy as many characters as we can show
-    TInt textLen = aCharacter.Length();
-    TInt textLength = textLen > EMaxSelectedCandidateLength? EMaxSelectedCandidateLength:textLen;
-    TPtrC newText = aCharacter.Left(textLength);
-    TPtr ptr = iBuffer.Des();
-    if(ptr != newText)
-        {
-        ptr.Copy(newText);
-        // ignore any errors... we have guaranteed that the descriptor already has sufficient characters to avoid a realloc
-        TRAP_IGNORE( iCandidateLabel->SetTextL(iBuffer)); 
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::SetOrdinal(TInt aOrdinal)
-    {
-    __ASSERT_DEBUG(aOrdinal < CAknFepUICtrlPinyinPopup::EMaxPhraseCandidate, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-    __ASSERT_DEBUG(aOrdinal >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-
-    TBuf<2> buf;
-    buf.Format(_L("%d"), aOrdinal);
-    TRAP_IGNORE(iOrdinalLabel->SetTextL(buf));
-    }
-
-void CAknFepUICtrlCandidateSelected::SetCandidateMode(CAknFepUICtrlCandidatePane::TCandidateMode aMode)
-    {
-    if(iCandidateMode != aMode)
-        {
-        iCandidateMode = aMode;
-        
-        LayoutRects();
-        LayoutContainedControls();
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::SetLayout(CAknFepUICtrlContainerChinese::TPaneLayout aLayout)
-    {
-    iPaneLayout = aLayout;
-    }
-
-void CAknFepUICtrlCandidateSelected::ShowOrdinal(TBool aValue)
-	{
-	if(!COMPARE_BOOLS(iShowOrdinal,aValue))
-		{
-		iShowOrdinal = aValue;
-		UpdateLabelVisibility();
-		}
-	}
-
-void CAknFepUICtrlCandidateSelected::SizeChanged()
-    {
-    LayoutRects();
-    LayoutContainedControls();
-    }
-
-TInt CAknFepUICtrlCandidateSelected::CountComponentControls() const
-    {
-    CCoeControl* controls[] = 
-        {
-        iOrdinalLabel,
-        iCandidateLabel
-        } ;
-
-    TInt count = 0 ;
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        if(controls[ii])
-            count++ ;
-    return count ;
-    }
-
-CCoeControl* CAknFepUICtrlCandidateSelected::ComponentControl(TInt aIndex) const 
-    {
-    CCoeControl* controls[] = 
-        {
-        iOrdinalLabel,
-        iCandidateLabel
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        if (controls[ii] && aIndex-- == 0)
-            return controls[ii] ;
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-void CAknFepUICtrlCandidateSelected::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-
-    TBool skinnedDraw = EFalse;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-
-    // draw the whole frame background according to the containing context, which in this case
-    // is the candidate pane, to avoid corner drawing mess and to cope with masked grid frame centre
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
-    AknsDrawUtils::DrawBackground(skin, cc, this, gc, 
-        outerRect.iTl, outerRect, KAknsDrawParamDefault);
-
-    skinnedDraw = AknsDrawUtils::DrawFrame(skin, gc, outerRect, innerRect,
-        KAknsIIDQsnFrGrid, KAknsIIDQsnFrGridCenter); 
-
-    if(!skinnedDraw)
-        {
-        iRectShadow.DrawRect(gc);
-        iRectHighlight.DrawRect(gc);
-        }
-    }
-
-void CAknFepUICtrlCandidateSelected::ConstructL(RWindowTreeNode& aParent)
-    {
-    CreateWindowL(aParent);
-
-    iOrdinalLabel = new(ELeave) CEikLabel;
-    iOrdinalLabel->SetBufferReserveLengthL(EOneCandidate);
-    iOrdinalLabel->SetContainerWindowL(*this);
-
-    // force label to contain required number of characters from the outset
-    iCandidateLabel = new(ELeave) CEikLabel;
-    iCandidateLabel->SetBufferReserveLengthL(EMaxSelectedCandidateLength); // this will do a realloc now, so no need to later
-    iCandidateLabel->SetContainerWindowL(*this);
-    }
-
-CAknFepUICtrlCandidateSelected::CAknFepUICtrlCandidateSelected()
-    : 
-    iCandidateMode(CAknFepUICtrlCandidatePane::ECandidateModeNormal),
-    iPaneLayout(CAknFepUICtrlContainerChinese::ELayoutCandidate),
-    iShowOrdinal(ETrue)
-    {
-    }
-
-void CAknFepUICtrlCandidateSelected::LayoutRects()
-    {
-    TRect rect = Rect();
-    iRectShadow.LayoutRect(rect, AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_1(rect));
-    iRectHighlight.LayoutRect(rect, AKN_LAYOUT_WINDOW_Candidate_selection_highlight_Line_2(rect));
-    }
-
-void CAknFepUICtrlCandidateSelected::LayoutContainedControls()
-    {
-    TRect rect = Rect();
-
-    // layout candidate label
-    TAknTextLineLayout candidateLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_1;
-    TAknTextLineLayout ordinalLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_3; 
-    candidateLayout.il = candidateLayout.il - ordinalLayout.il;
-
-    TAknLayoutText layoutCandidate;
-    layoutCandidate.LayoutText(rect,candidateLayout);
-    
-    const CFont* font = layoutCandidate.Font();
-    TInt labelWidthInPixels = 0;
-    if(font)
-	    {
-	    TInt bufLength = iBuffer.Length();
-	    if(bufLength != 0)
-		    {
-		    TPtrC newChars = iBuffer.Left(bufLength);
-		    labelWidthInPixels = font->TextWidthInPixels(newChars);
-		    }
-	    }
-    TRect rectCandidate = layoutCandidate.TextRect();
-    if(labelWidthInPixels == 0)
-	    {
-	    rectCandidate.iTl.iX = 0;
-	    }
-    rectCandidate.SetWidth(labelWidthInPixels);
-    iCandidateLabel->SetRect(rectCandidate);
-    iCandidateLabel->SetFont(font);
-    
-    // layout ordinal label
-    TBufC16<1> buf;
-    TPtr16 ptr = buf.Des();
-    ptr = (*(iOrdinalLabel->Text())).Left(EOneCandidate);
-
-    TAknLayoutText layoutOrdinal;
-    ordinalLayout.il = 0;
-	
-    layoutOrdinal.LayoutText(rect,ordinalLayout);
-    
-    const CFont* fontOrdinal = layoutOrdinal.Font();
-    
-    TRect ordinalRect = layoutOrdinal.TextRect();
-
-    // inserted in 2006.03.29
-    TPoint ordinalPosition;
-    // end inserting
-    TInt ordinalWidth = fontOrdinal->TextWidthInPixels(ptr);
-    
-    /* removing in 2006.03.29
-    ordinalRect.iTl.iX = rectCandidate.iTl.iX - ordinalWidth;
-    ordinalRect.iTl.iY = rectCandidate.iTl.iY;
-
-    ordinalRect.SetWidth(ordinalWidth);
-    ordinalRect.SetHeight(fontOrdinal->HeightInPixels());
-    */ // end removing
-
-    // inserted in 2006.03.29
-    ordinalPosition.iX = rectCandidate.iTl.iX - ordinalWidth;
-    ordinalPosition.iY = rectCandidate.iTl.iY;
-
-    ordinalRect = TRect(ordinalPosition,
-                        TPoint(ordinalPosition.iX + ordinalRect.Width(),
-                               ordinalPosition.iY + ordinalRect.Height()));
-    // end inserting
-
-    iOrdinalLabel->SetRect(ordinalRect);
-    iOrdinalLabel->SetFont(fontOrdinal);
-
-    // override with skin text color
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRgb labelTextColor;
-
-    AknsUtils::GetCachedColor(skin, labelTextColor, 
-                              KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG11);
-
-    TRAP_IGNORE( 
-	    iCandidateLabel->OverrideColorL(EColorLabelText, labelTextColor);
-	    iOrdinalLabel->OverrideColorL(EColorLabelText, labelTextColor);
-	    );
-    }
-
-void CAknFepUICtrlCandidateSelected::CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const
-    {
-    TRect windowRect = Rect();
-
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect, SkinLayout::Highlight_skin_placing__grid__Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect, SkinLayout::Highlight_skin_placing__grid__Line_5());
-
-    aOuterRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    aInnerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    }
-
-void CAknFepUICtrlCandidateSelected::UpdateLabelVisibility()
-	{
-	if(iShowOrdinal)
-		{
-		iOrdinalLabel->MakeVisible(ETrue);
-		}
-	else
-		{
-		iOrdinalLabel->MakeVisible(EFalse);
-		}
-	}
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlContainerChinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,692 +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 CAknFepUICtrlContainerChinese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <coemain.h>
-#include <eikenv.h>
-#include <eikappui.h>
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-
-
-#include <AknLayoutDef.h>
-#include <AknLayout.lag>
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include <AknsFrameBackgroundControlContext.h>
-#include <skinlayout.cdl.h>
-#include <AknDef.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlContainerChinese.h"
-#include "AknFepUIAvkonCtrlCandidatePane.h"
-#include "AknFepUIAvkonCtrlInputPane.h"
-#include "AknFepUIAvkonCtrlPinyinPopup.h"
-#include "aknfepuictrlpinyineep.h"
-#include "AknFepManager.h"
-#include "aknfepchineseuidataconv.h"
-#include "aknfepuilayoutdatamgr.h"
-
-MAknFepUICtrlContainerChinese::~MAknFepUICtrlContainerChinese()
-	{
-	}
-	
-CAknFepUICtrlContainerChinese::CAknFepUICtrlContainerChinese()
-    :
-    iPaneLayout(ELayoutInput),
-    iContainerPosition(TPoint(0,0)),
-    isPCLPosed(EFalse)
-    {
-
-    }
-
-CAknFepUICtrlContainerChinese* CAknFepUICtrlContainerChinese::NewL()
-    {
-    CAknFepUICtrlContainerChinese* self = new(ELeave) CAknFepUICtrlContainerChinese;
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-MAknFepUICtrlInputPane* CAknFepUICtrlContainerChinese::InputPane() const
-    {
-    return iInputPane;
-    }
-
-MAknFepUICtrlCandidatePane* CAknFepUICtrlContainerChinese::CandidatePane() const
-    {
-    return iCandidatePane;
-    }
-
-MAknFepUICtrlPinyinPopup* CAknFepUICtrlContainerChinese::PinyinPopupWindow() const
-    {
-    return iPinyinPopupWindow;
-    }
-
-MAknFepUICtrlEditPane* CAknFepUICtrlContainerChinese::EditPaneWindow() const
-    {
-    return iEditPane;
-    }
-
-TBool CAknFepUICtrlContainerChinese::IsEnabled() const
-    {
-    return iEnabled;
-    }
-
-void CAknFepUICtrlContainerChinese::Enable(TBool aEnable)
-    {
-	if(!COMPARE_BOOLS(iEnabled, aEnable))
-        {
-        iEnabled = aEnable;
-        if(aEnable)
-            {
-            Window().SetOrdinalPosition(0, ECoeWinPriorityFep); // right at the front
-            // make sure we are not faded even if a query has appeared
-            Window().SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren); 
-            }
-        else
-            {
-            // make sure that the popup window is disabled as well
-            iInputPane->MakeVisible(aEnable); 
-            iPinyinPopupWindow->Enable(aEnable);
-            iEditPane->Enable(aEnable);
-            iCandidatePane->Enable(aEnable);
-            }
-        MakeVisible(aEnable);
-        }
-    if ( aEnable == EFalse )
-        {
-        if ( iFepMan )
-            {
-            iFepMan->PinyinPhraseCreation( EFalse );
-            iFepMan->EntryPhrase( EFalse );
-            iFepMan->EnableKeyStar( ETrue );
-            iFepMan->PhraseCreation( EFalse );
-            }
-        PinyinPopupWindow()->ResetStrokeArray();
-        PinyinPopupWindow()->SetLastResouce( 0 );
-	    iPinyinPopupWindow->ResetInputLayoutMiniQwertyZhuyin();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	    iEditPane->ResetAllArray();
-	    iEditPane->SetEffictiveLength( 0 );
-	    iEditPane->SetChangeState( EFalse );
-#endif
-        }
-    }  
-  
-void CAknFepUICtrlContainerChinese::ConstructL()
-    {
-    CreateWindowL();
-    SetNonFocusing();
-    RWindow& window=Window();
-    window.SetOrdinalPosition(0, ECoeWinPriorityFep); // right at the front
-    MakeVisible(EFalse);
-
-    iEikonEnv->EikAppUi()->AddToStackL(this, ECoeStackPriorityDefault, ECoeStackFlagRefusesFocus);
-
-    iLafDataMgr = CAknFepUiLayoutDataMgr::NewL();
-    iInputPane = CAknFepUICtrlInputPane::NewL(window, CAknFepUICtrlInputPane::ELayoutPhraseInputPane, iLafDataMgr);
-    iCandidatePane = CAknFepUICtrlCandidatePane::NewL(window, iLafDataMgr);
-    iPinyinPopupWindow = CAknFepUICtrlPinyinPopup::NewL(window , iLafDataMgr);
-    iEditPane = CAknFepUICtrlPinyinEEP::NewL( window, iLafDataMgr );
-    iInputPane->SetMopParent(this);
-    iCandidatePane->SetMopParent(this);
-    iEditPane->SetMopParent(this);
-
-    iInputPane->SetSizeChangedObserver(this);
-    iPinyinPopupWindow->SetSizeChangedObserver(this);
-    iPinyinPopupWindow->MakeVisible(EFalse);
-    iEditPane->Enable(EFalse);
-
-    iCandidatePane->SetPaneLayout(iPaneLayout); // set pane layout
-    iCandidatePane->SetVisibleCandidateCount(iPaneLayout);
- 	iHorizLine = 
- 	    CAknFepChineseUIDataConv::AnyToLayoutRect(iLafDataMgr->RequestData(EHorizLine));	    
- 	iEEPFirstHorizLine = 
- 	    CAknFepChineseUIDataConv::AnyToLayoutRect(iLafDataMgr->RequestData(EEEPFirstHorizLine));
- 	iEEPSecondHorizLine = 
- 	    CAknFepChineseUIDataConv::AnyToLayoutRect(iLafDataMgr->RequestData(EEEPSecondHorizLine));
- 	TInt index = ConvertLayoutToIndex();
-    if ( index == 2 || index == 3 )
-        {
-        index = 0;
-        }
-    iInputPane->SetLayoutIndex(index);
-    TRect outerRect = TRect();
-    TRect innerRect = TRect();
-    CalculateFrameRects(outerRect, innerRect);
-
-    iBgContext = CAknsFrameBackgroundControlContext::NewL(KAknsIIDQsnFrPopup, outerRect, innerRect, ETrue);
-    LayoutContainer();
-    ActivateL();
-    }
-
-CAknFepUICtrlContainerChinese::~CAknFepUICtrlContainerChinese()
-    {
-    iEikonEnv->EikAppUi()->RemoveFromStack(this);
-    delete iLafDataMgr;
-    delete iInputPane;
-    delete iCandidatePane;
-    delete iPinyinPopupWindow;
-    delete iEditPane;
-    delete iBgContext;
-    }
-
-CCoeControl* CAknFepUICtrlContainerChinese::ComponentControl(TInt aIndex) const 
-    {
-    CCoeControl* controls[] = 
-        {
-        iInputPane,
-        iCandidatePane,
-        iEditPane,
-        iPinyinPopupWindow
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if (controls[ii] && aIndex-- == 0)
-            {
-            return controls[ii] ;
-            }
-        }
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-TInt CAknFepUICtrlContainerChinese::CountComponentControls() const
-    {
-    CCoeControl* controls[] = 
-        {
-        iInputPane,
-        iCandidatePane,
-        iEditPane,
-        iPinyinPopupWindow
-        } ;
-
-    TInt count = 0 ;
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if(controls[ii])
-            {
-            count++ ;
-            }
-        }
-    return count ;
-    }
-
-TInt CAknFepUICtrlContainerChinese::ConvertLayoutToIndex() const
-    {
-    TInt layout = -1;
-    // switch on the cases in reverse order, and count our way through
-    // the possible layouts to determine the index into the layout
-    // this means that it is easier to add another layout in between
-    switch(iPaneLayout)
-        {
-        case ELayoutKeystroke: //index 3
-            layout++;
-        case ELayoutPhraseCreation: //index 2
-            layout++;
-	    case ELayoutCandidate: //index 1
-		    layout++;
-	    case ELayoutInput: //index 0
-		    layout++;
-        default:
-            break;
-        }
-    return layout;
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutFrames()
-    {
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-    iBgContext->SetFrameRects(outerRect, innerRect);
-    iBgContext->SetParentPos(PositionRelativeToScreen());
-    }
-
-void CAknFepUICtrlContainerChinese::CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const
-    {
-    TRect windowRect = Rect();
-    TPoint lPoint(0,0);
-    TPoint rPoint(0,0);
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect, SkinLayout::Submenu_skin_placing_Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect, SkinLayout::Submenu_skin_placing_Line_5());
-    lPoint.iX = bottomRight.Rect().iTl.iX;
-    lPoint.iY = bottomRight.Rect().iTl.iY;
-    rPoint.iX = bottomRight.Rect().iBr.iX;
-    rPoint.iY = bottomRight.Rect().iBr.iY;
-
-    aOuterRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    aInnerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    }
-
-void CAknFepUICtrlContainerChinese::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-    TBool skinnedDraw = EFalse;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-    gc.Clear(Rect());
-
-    skinnedDraw = AknsDrawUtils::DrawFrame(
-	    skin, gc, 
-	    outerRect, innerRect, 
-	    KAknsIIDQsnFrPopupSub, KAknsIIDQsnFrPopupCenterSubmenu); 
-
-    TRgb separatorColor = iHorizLine.Color();
-    AknsUtils::GetCachedColor( skin, separatorColor,
-          KAknsIIDQsnLineColors, EAknsCIQsnLineColorsCG8 );
-    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-    gc.SetBrushColor( separatorColor );
-
-    if(!skinnedDraw)
-	    {
-	    iRectCoverMainPaneInput.DrawRect(gc);
-	    iRectFirstShadowInput.DrawRect(gc);
-	    iRectOutlineFrameInput.DrawRect(gc);
-	    iRectInsideAreaInput.DrawRect(gc);
-	    }
-	    
-    TInt index = ConvertLayoutToIndex();
-    if ( iInputPane->IsVisible( ) || iPinyinPopupWindow->IsVisible() || 
-            iPhraseCreationLaf)
-        {
-        if ( index == 0 || index == 1 )
-            {
-            iHorizLine.DrawRect(gc);
-            }
-        }
-    if ( index == 2 )
-        {
-        iEEPFirstHorizLine.DrawRect(gc);
-        iEEPSecondHorizLine.DrawRect(gc);
-        }
-    else if ( index == 3 )
-        {
-        iEEPFirstHorizLine.DrawRect(gc);
-        }
-
-    } 
-
-void CAknFepUICtrlContainerChinese::SizeChanged()
-    {
-    iLafDataMgr->ReadLafInfo();
-    LayoutRects();
-    LayoutContainedControls();
-    LayoutFrames();
-    }
-
-void CAknFepUICtrlContainerChinese::SetLayout(TPaneLayout aPaneLayout)
-    {
-    if(iPaneLayout != aPaneLayout)
-        {
-        iPaneLayout = aPaneLayout;
-        SetControlVisibility();
-        // set visible candidate length 
-        iCandidatePane->SetPaneLayout(aPaneLayout);
-        TInt index = ConvertLayoutToIndex();
-        if ( index == 2 || index == 3)
-            {
-            index = 0;
-            }
-        iCandidatePane->SetVisibleCandidateCount(aPaneLayout - index);
-        iInputPane->SetLayoutIndex( index );
-        LayoutContainer();
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlContainerChinese::FocusCandidatePane(TBool aValue)
-    {
-    iInputPane->SetHighlighted(!aValue);
-    iCandidatePane->SetHighlighted(aValue);
-    }
-
-void CAknFepUICtrlContainerChinese::SelectionPopupEnabled(TBool /*aEnabled*/)
-    {
-    // ensure that the input pane is only visible if the popup is not enabled
-    SetControlVisibility();
-    }
-
-TTypeUid::Ptr CAknFepUICtrlContainerChinese::MopSupplyObject(TTypeUid aId)
-    {
-    if (aId.iUid == MAknsControlContext::ETypeId)
-        return ( MAknsControlContext::SupplyMopObject(aId, iBgContext));
-    return CCoeControl::MopSupplyObject(aId);
-    }
-
-void CAknFepUICtrlContainerChinese::SelectionPopupSizeChanged(TInt /*aNumLines*/)
-    {
-    LayoutContainer();
-    DrawDeferred();
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutPinyinPopupWindow()
-    {
-    TRect popupRect(Position(), Size()); 
-    TRect pinyinRect = popupRect;
-    TAknWindowLineLayout entryHorizLine = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( EEntryHorizLineWindow ));
-    TAknWindowLineLayout entryPaneLine = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( EEntryPaneWindowLine ));
-    TAknWindowLineLayout eepFirstHorizLine = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( EEEPFirstHorizLineWindow ));
-    TAknWindowLineLayout eepSecondHorizLine = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( EEEPSecondHorizLineWindow ));
-    TAknLayoutRect layoutLineEntry, layoutLineEntryPane, layoutLineFirstHorizEEP, layoutLineSecondHorizEEP;
-    TRect layoutLineRectEntry, layoutLineRectEntryPane, layoutLineRectFirstHorizEEP, layoutLineRectSecondHorizEEP;
-    TInt index = ConvertLayoutToIndex();
-    if ( 2 == index )
-        {
-        layoutLineFirstHorizEEP.LayoutRect( popupRect, eepFirstHorizLine );
-        layoutLineRectFirstHorizEEP = layoutLineFirstHorizEEP.Rect();
-        layoutLineSecondHorizEEP.LayoutRect( popupRect, eepSecondHorizLine );
-        layoutLineRectSecondHorizEEP = layoutLineSecondHorizEEP.Rect();
-        
-        pinyinRect.iTl.iY = layoutLineRectFirstHorizEEP.iBr.iY;
-        pinyinRect.iBr.iY = layoutLineRectSecondHorizEEP.iTl.iY;
-        }
-    else
-        {
-        layoutLineEntry.LayoutRect( popupRect, entryHorizLine );
-        layoutLineRectEntry = layoutLineEntry.Rect();
-        layoutLineEntryPane.LayoutRect( popupRect, entryPaneLine );
-        layoutLineRectEntryPane = layoutLineEntryPane.Rect();
-        pinyinRect.iTl.iY = layoutLineRectEntryPane.iTl.iY;
-        pinyinRect.SetHeight(layoutLineRectEntry.iTl.iY - pinyinRect.iTl.iY);
-        }
-    iPinyinPopupWindow->SetRect(pinyinRect);
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutPinyinEEPWindow()
-    {
-    TRect rect = Rect();  
-    TAknWindowLineLayout EEPWindowLayout;
-    if ( iPaneLayout == ELayoutPhraseCreation )
-    	{
-    	EEPWindowLayout =
-    	    CAknFepChineseUIDataConv::AnyToWindowLine(iLafDataMgr->RequestData(EEEPWindowLayout));
-    	}
-    else
-    	{
-    	EEPWindowLayout =
-    	    	    CAknFepChineseUIDataConv::AnyToWindowLine(iLafDataMgr->RequestData(EEntryPaneWindowLine));
-    	}       
-    AknLayoutUtils::LayoutControl(iEditPane, rect, EEPWindowLayout);
-    }
-
-void CAknFepUICtrlContainerChinese::SetControlVisibility()
-    {
-    TBool popupEnabled = iPinyinPopupWindow->IsEnabled();
-
-    switch(iPaneLayout)
-	    {
-    case ELayoutCandidate:
-        // predicative candidate state
-        iInputPane->MakeVisible(EFalse);
-        iPhraseCreationLaf = EFalse;
-        break;
-    case ELayoutInput:
-        // input state
-        iInputPane->MakeVisible(!popupEnabled);
-        iPhraseCreationLaf = EFalse;
-        break;
-    case ELayoutPhraseCreation:
-        if ( !iPhraseCreationLaf )
-            {
-            // input state
-            iInputPane->MakeVisible( !popupEnabled );
-            }
-        else
-            {
-            iPhraseCreationLaf= EFalse;
-            }
-    default:
-	    break;
-	    }
-    }
-
-void CAknFepUICtrlContainerChinese::SetIsShownWithPopupWindows(TBool aValue)
-    {
-    if(!COMPARE_BOOLS(iIsShownWithPopupWindows,aValue))	
-        { 
-        iIsShownWithPopupWindows = aValue;
-        // need to layout container first, so that the parent rect is the right size...
-        LayoutContainer();
-        // ... now we can layout the rects relative to the resized parent
-        LayoutRects();
-        // don't need to layout controls, only the rects are affected
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlContainerChinese::SetContainerPosition(TPoint aCurPos, TInt aHeight)
-    {
-    TRect parentRect;
-    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, parentRect);
-    TInt windowHeight = 0;
-    TInt index = ConvertLayoutToIndex();
-    
-    if ( index != 2 )
-        {
-        windowHeight = 
-            CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData( EPopupHeightEntry ));
-        isPCLPosed = EFalse;
-        }
-    else
-        {
-        windowHeight = CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData( EPopupHeightEEP ));
-        isPCLPosed = ETrue;
-        }
-    // Laf comments: In case there is enough space on the main pane to show the window under the entry,
-    // the window is placed 3 pixels below the text baseline of the entry. In case there is no space on 
-    // the main pane to show the window fully under the entry, the window is placed 17(16 pixel font) or
-    // 13(12 pixel font) pixels above the baseline of the entry.
-    if(aCurPos.iY + 3 + windowHeight < parentRect.iBr.iY) 
-        {
-        iContainerPosition.iY = aCurPos.iY + 3; 
-        }
-    else
-        {
-        iContainerPosition.iY = aCurPos.iY - windowHeight - (aHeight + 1); 
-        }
-    if ((( iContainerPosition.iY + windowHeight ) > parentRect.iBr.iY ) ||
-        ( iContainerPosition.iY < parentRect.iTl.iY ))
-    {
-    iContainerPosition.iY = parentRect.iBr.iY - ( parentRect.iBr.iY - 
-                            parentRect.iTl.iY ) / 2 - windowHeight / 2;
-    }
-    LayoutContainer();
-    }
-
-void CAknFepUICtrlContainerChinese::ShowHorizontalScrollArrows(TBool aValue)
-    {
-    iCandidatePane->ShowHorizontalScrollArrows(aValue);
-    }    
-   
-void CAknFepUICtrlContainerChinese::ShowVerticalScrollArrows(TBool aValue)
-    {
-    iCandidatePane->ShowVerticalScrollArrows(aValue);
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutInputPane()
-    {
-    TRect rect = Rect();
-    TAknWindowLineLayout entryPaneWindowLine = 
-        CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( EEntryPaneWindowLine ));
-    TInt index = ConvertLayoutToIndex();
-    if ( index == 2)
-        {
-        TInt eepPopupHeight = CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData( EPopupHeightEEP ));
-        TInt entryPopupHeight = CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData( EPopupHeightEntry ));
-        rect.iTl.iY = rect.iTl.iY + eepPopupHeight - entryPopupHeight;
-        }
-    AknLayoutUtils::LayoutControl(iInputPane, rect, entryPaneWindowLine);
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutContainedControls()
-    {
-    LayoutInputPane();
-    // layout candidate pane
-    TAknWindowLineLayout candidatePaneWindowLine = 
-                CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData( ECandidatePaneWindowLine ));
-    TInt index = ConvertLayoutToIndex();
-    if (index == 2)
-        {
-        if ( isPCLPosed )
-            {
-            iEditPane->Enable( ETrue );      
-            AknLayoutUtils::LayoutControl( iCandidatePane, Rect(), candidatePaneWindowLine );
-            LayoutPinyinPopupWindow();
-            LayoutPinyinEEPWindow();
-            }
-        }
-    else if ( index == 0 || index == 1 ) 
-        {
-        TRect rect = Rect();
-        iEditPane->Enable(EFalse);
-        AknLayoutUtils::LayoutControl(iCandidatePane, rect, candidatePaneWindowLine);
-        LayoutPinyinPopupWindow();
-        }
-    else
-        {
-        iEditPane->Enable(ETrue);
-        iPinyinPopupWindow->Enable(EFalse);
-        AknLayoutUtils::LayoutControl(iCandidatePane, Rect(), candidatePaneWindowLine);
-        LayoutPinyinEEPWindow();
-        }
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutContainer()
-    {
-    TInt layoutIndex = ConvertLayoutToIndex(); // 0 : input state layout, 1 : candidate state layout
-    TRect rect;
-    switch ( layoutIndex )
-        {
-        case 2:
-            rect = CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectEEP ));
-            break;
-        case 1:
-            rect = CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectCandatate ));
-            break;
-        default:
-            rect = CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectEntry ));
-            break;
-        }
-    TInt rectHeight = rect.iBr.iY - rect.iTl.iY;
-    rect.iTl.iY = iContainerPosition.iY;
-    rect.iBr.iY = iContainerPosition.iY + rectHeight;
-    SetRect(rect); 
-    }
-
-void CAknFepUICtrlContainerChinese::LayoutRects()
-    {
-    TInt index = ConvertLayoutToIndex();
-    TRect rect = Rect();
-
-    if ( index == 3 )
-        {
-        index = 0;
-        }
-    
-    switch (index) // 0 : input state, 1: predicative candidate state
-	    {
-	    case 0:
-		    iRectCoverMainPaneInput = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectCoverMainPaneInputEntry ));
-		    iRectFirstShadowInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectFirstShadowInputEntry ));
-		    iRectOutlineFrameInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectOutlineFrameInputEntry ));
-		    iRectInsideAreaInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectInsideAreaInputEntry ));
-		    break;
-        case 1:
-		    iRectCoverMainPaneInput = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectCoverMainPaneInputCandidate ));
-		    iRectFirstShadowInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectFirstShadowInputCandidate ));
-		    iRectOutlineFrameInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectOutlineFrameInputCandidate ));
-		    iRectInsideAreaInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectInsideAreaInputCandidate ));
-		    break;
-        case 2:
-		    iRectCoverMainPaneInput = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectCoverMainPaneInputEEP));
-		    iRectFirstShadowInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectFirstShadowInputEEP ));
-		    iRectOutlineFrameInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectOutlineFrameInputEEP ));
-		    iRectInsideAreaInput= CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectInsideAreaInputEEP ));
-            break;
-        default: 
-            break;
-	    }
-    }
-
-void CAknFepUICtrlContainerChinese::HandleResourceChange(TInt aType)
-    {
-    // maybe should be KEikDynamicLayoutVariantSwitch_APAC, need to have a try after it's ready.
-    if(aType == KEikDynamicLayoutVariantSwitch)
-        {
-        LayoutContainer();
-        }
-    else
-        {
-        CCoeControl::HandleResourceChange(aType);
-        }
-    }
-void CAknFepUICtrlContainerChinese::SetControlInVisible( TBool aVisible )
-    {
-    ShowVerticalScrollArrows( EFalse );
-    if ( aVisible == EFalse )
-        {
-        iCandidatePane->SetInVisiable();
-        }
-    iPinyinPopupWindow->MakeVisible( EFalse );
-    iInputPane->MakeVisible( EFalse );
-    iPhraseCreationLaf= ETrue;
-    }
-
-
-TInt& CAknFepUICtrlContainerChinese::IsPhraseCreation()
-    {
-    return iPhraseCreation;
-    }
-
-void CAknFepUICtrlContainerChinese::PhraseCreation(  TBool aPhraseCreation )
-    {
-    if ( iPhraseCreation != aPhraseCreation )
-        {
-        iPhraseCreation = aPhraseCreation;
-        }
-    }
-
-void CAknFepUICtrlContainerChinese::SetFepMan( MAknFepManagerUIInterface* aFepMan )
-    {
-    iFepMan = aFepMan;
-    }
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlContainerJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,169 +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 CAknFepUICtrlContainerJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUIAvkonCtrlContainerJapanese.h"
-#include "AknFepUIManagerJapanese.h"
-#include "AknFepUICtrlCandidatePaneInterface.h" // MAknFepUiCtrlCandidatePaneInterface
-#include "AknFepUIAvkonCtrlJapaneseCandidatePane.h"  // CAknFepUICtrlJapaneseCandidatePane
-#include "AknFepUIAvkonCtrlJapanesePredictivePane.h" // CAknFepUICtrlJapanesePredictivePane
-#include "AknFepUiInterfacePanic.h"
-
-// CONSTANTS
-
-/**
-*  CAknFepUICtrlContainerJapanese class.
-*
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-MAknFepUICtrlContainerJapanese::~MAknFepUICtrlContainerJapanese()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlContainerJapanese::NewL
-//
-// First phase construction
-// ---------------------------------------------------------------------------
-//
-CAknFepUICtrlContainerJapanese* CAknFepUICtrlContainerJapanese::NewL(CAknFepUIManagerJapanese* aUiMng)
-    {
-    CAknFepUICtrlContainerJapanese* self = new(ELeave) CAknFepUICtrlContainerJapanese();
-    CleanupStack::PushL(self);
-    self->ConstructL(aUiMng);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlContainerJapanese::~CAknFepUICtrlContainerJapanese
-//
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CAknFepUICtrlContainerJapanese::~CAknFepUICtrlContainerJapanese()
-    {
-    if (iCandidatePaneArray)
-        {
-        iCandidatePaneArray->ResetAndDestroy();
-        }
-    delete iCandidatePaneArray;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlContainerJapanese::CandidatePane
-//
-//
-// ---------------------------------------------------------------------------
-//
-MAknFepUICtrlCandidatePaneInterface*
-    CAknFepUICtrlContainerJapanese::CandidatePane(TAknFepUICtrlCandidatePaneId aId)
-    {
-    MAknFepUICtrlCandidatePaneInterface* candidatePane = NULL;
-
-    switch(aId)
-        {
-        case EJapaneseCandidatePane:
-            {
-            candidatePane = iCandidatePaneArray->At(EJapaneseCandidatePane);
-            }
-        break;
-
-        case EJapanesePredictiveCandidatePane:
-            {
-            candidatePane = iCandidatePaneArray->At(EJapanesePredictiveCandidatePane);
-            }
-        break;
-
-        default:
-            {
-            AknFepUiInterfacePanic(EAknFepUiInterfacePanicNoCandidatePane);
-            }
-        }
-    return candidatePane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlContainerJapanese::CAknFepUICtrlContainerJapanese
-//
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-CAknFepUICtrlContainerJapanese::CAknFepUICtrlContainerJapanese()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlContainerJapanese::ConstructL
-//
-// Second phase construction
-// ---------------------------------------------------------------------------
-//
-void CAknFepUICtrlContainerJapanese::ConstructL(CAknFepUIManagerJapanese* aUiMng)
-    {
-    MAknFepUICtrlCandidatePaneInterface* candidatePane;
-
-    iCandidatePaneArray = new(ELeave) CArrayPtrFlat<MAknFepUICtrlCandidatePaneInterface>(EJapaneseCandidatePaneMax);
-
-    for(TInt i = 0; i < EJapaneseCandidatePaneMax; i++)
-        {
-        candidatePane = NULL;
-        switch(i)
-            {
-            case EJapaneseCandidatePane:
-                {
-                candidatePane = CAknFepUICtrlJapaneseCandidatePane::NewL(aUiMng);
-                }
-                break;
-            case EJapanesePredictiveCandidatePane:
-                {
-                candidatePane = CAknFepUICtrlJapanesePredictivePane::NewL(aUiMng);
-                }
-                break;
-            default:
-                {
-                AknFepUiInterfacePanic(EAknFepUiInterfacePanicNoCandidatePane);
-                }
-                break;
-            }
-
-        if (candidatePane)
-            {
-            CleanupStack::PushL(candidatePane);
-            iCandidatePaneArray->AppendL(candidatePane);
-            CleanupStack::Pop(candidatePane); // candidatePane
-            }
-        else
-            {
-            iCandidatePaneArray->AppendL(candidatePane);
-            }
-        }
-    }
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingData.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIAvkonCtrlDualLanguageSettingData.h"
-
-CAknFepDualLanguageSettingData *CAknFepDualLanguageSettingData::NewL()
-	{
-	CAknFepDualLanguageSettingData *self = CAknFepDualLanguageSettingData::NewLC();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-CAknFepDualLanguageSettingData *CAknFepDualLanguageSettingData::NewLC()
-	{
-	CAknFepDualLanguageSettingData *self = new (ELeave) CAknFepDualLanguageSettingData();
-	CleanupStack::PushL(self);
-	return self;
-	}
-
-CAknFepDualLanguageSettingData::~CAknFepDualLanguageSettingData()
-	{
-	if(iItems != NULL)
-	    {
-	    delete iItems;
-	    }
-	if(iSecondaryItems != NULL)
-	    {
-	    delete iSecondaryItems;
-	    }
-	}
-
-CAknFepDualLanguageSettingData::CAknFepDualLanguageSettingData()
-	{
-	}
-
-void CAknFepDualLanguageSettingData::LoadL(CDesCArrayFlat* aItems,
-                                CDesCArrayFlat* aSecondaryItems,
-                                TInt aCurrentValue,
-                                TInt aCurrentSecondaryValue)
-    {
-    iItems = aItems;
-    iSecondaryItems = aSecondaryItems;
-    iCurrentValue = aCurrentValue;
-    iCurrentSecondaryValue = aCurrentSecondaryValue;
-    }
-    
-void CAknFepDualLanguageSettingData::SaveL() const
-    {
-    }
-//EOF
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingDialog.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-#include <CentralRepository.h>
-#include <AknQueryDialog.h>
-#include <AknFepInternalCRKeys.h>
-#include <PtiDefs.h>
-#include <e32property.h>
-#include <AvkonInternalCRKeys.h>
-#include <AknFepGlobalEnums.h>
-#include <aknnotewrappers.h>
-#include <aknfep.rsg>
-#include "AknFepUIAvkonCtrlDualLanguageSettingDialog.h"
-#include "AknFepUIAvkonCtrlDualLanguageSettingModel.h"
-#include "AknFepUIAvkonCtrlDualLanguageSettingData.h"
-
-CAknFepDualLanguageSettingDialog *CAknFepDualLanguageSettingDialog::NewL(TInt aMenuResId)
-    {
-    CAknFepDualLanguageSettingDialog* self = CAknFepDualLanguageSettingDialog::NewLC(aMenuResId);      
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CAknFepDualLanguageSettingDialog *CAknFepDualLanguageSettingDialog::NewLC(TInt aMenuResId)
-    {
-    CAknFepDualLanguageSettingDialog* self = new (ELeave) CAknFepDualLanguageSettingDialog();
-    CleanupStack::PushL(self);
-    self->ConstructL(aMenuResId);
-    return self;
-    }
-
-CAknFepDualLanguageSettingDialog::CAknFepDualLanguageSettingDialog()    
-    {
-    }
-    
-CAknFepDualLanguageSettingDialog::~CAknFepDualLanguageSettingDialog()
-    {
-    delete iLangData;
-    delete iLanguages;
-    delete iSecondaryLanguages;
-    delete iModel;
-    }
-
-SEikControlInfo CAknFepDualLanguageSettingDialog::CreateCustomControlL(TInt /*aControlType*/)
-{
-    iModel = CAknFepDualLanguageSettingModel::NewL();
-    // construct the data object the settings list will use
-    ReadSettingsDataL();
-        
-    iSettingsList = CAknFepDualLanguageSettingList::NewL(iLangData, this);
-    
-    SEikControlInfo controlInfo;
-    controlInfo.iFlags = EEikControlHasEars;
-    controlInfo.iTrailerTextId = 0;
-    controlInfo.iControl = iSettingsList;
-    STATIC_CAST(CAknFepDualLanguageSettingList*, controlInfo.iControl)->SetContainerWindowL(*this);
-    
-    return controlInfo;
-}
-
-CAknFepDualLanguageSettingDialog::TFormControlTypes CAknFepDualLanguageSettingDialog::ConvertCustomControlTypeToBaseControlType(TInt /*aControlType*/) const
-{
-    return EPopfieldDerived;
-}
-
-TBool CAknFepDualLanguageSettingDialog::OkToExitL(TInt aButtonId)
-{
-    TBool retValue = EFalse;
-    switch(aButtonId)
-    {
-    case EAknSoftkeyBack:        
-        retValue = ETrue;
-        break;
-    
-    case EAknSoftkeyOptions:
-        DisplayMenuL();
-        break;
-    
-    case EAknSoftkeyChange:
-        EditItemL(EFalse);
-        break;
-    }
-    return retValue;
-}
-
-
-void CAknFepDualLanguageSettingDialog::ProcessCommandL(TInt aCommandId)
-    {
-    if(MenuShowing())
-        HideMenu();   
-    
-    switch(aCommandId) 
-        {
-        case EAknFepCmdPredSettingChange:
-            EditItemL(ETrue);
-            break;
-        case EAknCmdHelp:
-            break;
-        case EAknCmdExit:
-			// Pass the EAknCmdExit command to Avkon 
-			// Framework 
-			iAvkonAppUi->ProcessCommandL(aCommandId);
-            break;
-        }
-    }
-
-void CAknFepDualLanguageSettingDialog::ReadSettingsDataL()
-    {
-    if(iLangData == NULL)
-        {
-        iLangData = CAknFepDualLanguageSettingData::NewL();
-        }
-    
-    // If the setting page has a list create array which contains all
-    // the items of the list in the setting page:
-
-    //some dummy size of 10
-    iLanguages = new( ELeave )CArrayFixFlat<TInt>(10);
-
-    iSecondaryLanguages = new( ELeave )CArrayFixFlat<TInt>(10);
-
-    //some dummy size of 10
-    CDesCArrayFlat* items = new( ELeave )CDesCArrayFlat(10);
-    CleanupStack::PushL( items );
-
-    CDesCArrayFlat* secondaryItems = new( ELeave )CDesCArrayFlat(10);
-    CleanupStack::PushL( secondaryItems );
-    
-    //TODO: Adding the GetLanguage and GetSecondaryLanguage APIs
-    iModel->GetLanguagesFromPtiL( NULL, iLanguages, items );
-    iModel->GetSecondaryInputLanguagesL(iSecondaryLanguages, secondaryItems,
-            iCoeEnv);
-    
-    TInt i;
-    TInt currentItem = 0;
-    TInt currentItemSecondary = 0;
-
-    //fetch the current value from model:
-    // current item is the decimal value of T9 language code from shared data
-    TInt currentInputLanguage =
-    iModel->LanguageL( CAknFepDualLanguageSettingModel::EAknFepDualLanguageSettingInputLanguage );
-
-    TInt currentInputLanguageSecondary =
-    iModel->LanguageL( CAknFepDualLanguageSettingModel::EAknFepDualLanguageSettingInputLanguageSecondary );
-    
-    // total sum of available T9 dictionaries
-    TInt count = iLanguages->Count();
-
-    // compare sharedata languageCode with PtiLanguageCode array
-    // Ptilanguage <-> listindex converter
-
-    for ( i=0;i<count;i++ )
-        {
-        if ((*iLanguages)[i] == currentInputLanguage)
-            {
-            currentItem = i;
-            break;
-            }
-        }
-    
-    count = iSecondaryLanguages->Count();
-
-    // compare sharedata languageCode with PtiLanguageCode array
-    // Ptilanguage <-> listindex converter
-
-    for ( i=0;i<count;i++ )
-        {
-        if ((*iSecondaryLanguages)[i] == currentInputLanguageSecondary)
-            {
-            currentItemSecondary = i;
-            break;
-            }
-        }
-
-    iLangData->LoadL(items, secondaryItems, currentItem, currentItemSecondary);
-    
-    CleanupStack::Pop(secondaryItems);
-    CleanupStack::Pop(items);
-    }
-
-void CAknFepDualLanguageSettingDialog::SaveSettingsDataL() const
-    {    
-    TInt index = iSettingsList->SettingItemArray()->ItemIndexFromVisibleIndex(iSettingsList->ListBox()->CurrentItemIndex());
-    TInt curLang = (*iLanguages)[iLangData->CurrentValue()]; 
-       
-    if(0 == index)
-        iModel->SetLanguageL( CAknFepDualLanguageSettingModel::EAknFepDualLanguageSettingInputLanguage, curLang );
-    else
-        {        
-         if(curLang == ELangTaiwanChinese ||
-         curLang == ELangHongKongChinese ||
-         curLang == ELangPrcChinese ||
-         curLang == ELangJapanese ||
-         curLang == ELangKorean )
-             {
-             iModel->SetLanguageL( CAknFepDualLanguageSettingModel::EAknFepDualLanguageSettingInputLanguageSecondary, 0);
-             }
-         else
-             {
-             iModel->SetLanguageL( CAknFepDualLanguageSettingModel::EAknFepDualLanguageSettingInputLanguageSecondary,
-                               (*iSecondaryLanguages)[iLangData->CurrentSecondaryValue()]);
-             }
-         }
-    }
-    
-void CAknFepDualLanguageSettingDialog::EditItemL(TBool aCalledFromMenu)
-    {
-    iSettingsList->EditCurrentItemL(aCalledFromMenu);
-    TInt curLang = (*iLanguages)[iLangData->CurrentValue()]; 
-    if(curLang == ELangTaiwanChinese ||
-       curLang == ELangHongKongChinese ||
-       curLang == ELangPrcChinese ||
-       curLang == ELangJapanese ||
-       curLang == ELangKorean )
-        {
-        iSettingsList->HideSecondaryInputL(ETrue);
-        }
-    else
-        {
-        iSettingsList->HideSecondaryInputL(EFalse);
-        }
-    
-    iSettingsList->StoreSettingsL();
-    SaveSettingsDataL();
-    }
\ No newline at end of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingList.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-#include <barsread.h>
-#include <AvkonInternalCRKeys.h>
-#include <AknFepInternalCRKeys.h>
-#include <e32property.h>
-#include <PtiDefs.h>
-#include <AknFepGlobalEnums.h>
-#include <avkon.hrh>
-#include <aknsettingitemlist.h> 
-#include <aknfep.rsg>
-#include "AknFepUIAvkonCtrlDualLanguageSettingList.h"
-
-
-CAknFepDualLanguageSettingItem::CAknFepDualLanguageSettingItem( TInt aResourceId, TBool aPrimary, CAknFepDualLanguageSettingData* aData)
-    : CAknEnumeratedTextPopupSettingItem(aResourceId, (aPrimary?aData->iCurrentValue:aData->iCurrentSecondaryValue))
-      , iData(aData), iPrimary(aPrimary)
-    {
-    }
-
-CAknFepDualLanguageSettingItem::~CAknFepDualLanguageSettingItem()
-    {
-    }
-
-void CAknFepDualLanguageSettingItem::CompleteConstructionL()
-    {
-    CAknEnumeratedTextPopupSettingItem::CompleteConstructionL();
-    CArrayPtrFlat<HBufC>* dummyPtr = new (ELeave) CArrayPtrFlat<HBufC>(1);
-    CleanupStack::PushL(dummyPtr);
-    CArrayPtrFlat<CAknEnumeratedText>* items = new (ELeave) CArrayPtrFlat<CAknEnumeratedText>(10);
-    CleanupStack::PushL(items);
-    if(iPrimary)
-        {
-        for(TInt i = 0; i < iData->Items()->Count(); i++)
-            {
-            HBufC* buffer = HBufC::NewLC( 128 );
-            (*buffer) = (*iData->Items())[i];
-            CAknEnumeratedText* newItem = new (ELeave) CAknEnumeratedText(i, buffer);
-            CleanupStack::PushL(newItem);
-            items->AppendL(newItem);
-            CleanupStack::Pop(newItem);
-            CleanupStack::Pop(buffer);
-            }
-        SetEnumeratedTextArrays(items, dummyPtr);
-        SetInternalValue(iData->iCurrentValue);
-        SetExternalValue(iData->iCurrentValue);
-        }
-    else
-        {
-        for(TInt i = 0; i < iData->SecondaryItems()->Count(); i++)
-            {
-            HBufC* buffer = HBufC::NewLC( 128 );
-            (*buffer) = (*iData->SecondaryItems())[i];
-            CAknEnumeratedText* newItem = new (ELeave) CAknEnumeratedText(i, buffer);
-            CleanupStack::PushL(newItem);
-            items->AppendL(newItem);
-            CleanupStack::Pop(newItem);
-            CleanupStack::Pop(buffer);
-            }
-        SetEnumeratedTextArrays(items, dummyPtr);
-        SetInternalValue(iData->iCurrentSecondaryValue);
-        SetExternalValue(iData->iCurrentSecondaryValue);
-        }
-    CleanupStack::Pop(items);
-    CleanupStack::Pop(dummyPtr);
-    }
-
-CAknFepDualLanguageSettingList *CAknFepDualLanguageSettingList::NewL(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog)
-    {
-    CAknFepDualLanguageSettingList* self = CAknFepDualLanguageSettingList::NewLC(aData, aDialog);        
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CAknFepDualLanguageSettingList *CAknFepDualLanguageSettingList::NewLC(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog)
-    {
-    CAknFepDualLanguageSettingList* self = new (ELeave) CAknFepDualLanguageSettingList(aData, aDialog);
-    CleanupStack::PushL(self);
-    return self;
-    }
-
-CAknFepDualLanguageSettingList::CAknFepDualLanguageSettingList(CAknFepDualLanguageSettingData* aData, CAknFepDualLanguageSettingDialog* aDialog) : 
-    CAknSettingItemList(), iData(aData), iDialog(aDialog)
-    {
-    }
-
-CAknFepDualLanguageSettingList::~CAknFepDualLanguageSettingList()
-    {
-    // no specific destruction code required - no owned data
-    }
-
-
-void CAknFepDualLanguageSettingList::SizeChanged()
-    {
-    // if size changes, make sure component takes whole available space
-    CEikFormattedCellListBox *listbox = ListBox();
-
-    if (listbox) 
-        {
-        listbox->SetRect(Rect());
-        }
-    }
-
-void CAknFepDualLanguageSettingList::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-    if(aEventType == EEventEnterKeyPressed)
-        {
-        EditCurrentItemL(EFalse);
-        }
-    }
-
-void CAknFepDualLanguageSettingList::EditCurrentItemL(TBool aCalledFromMenu)
-    {
-    // invoke EditItemL on the current item
-    TInt index = SettingItemArray()->ItemIndexFromVisibleIndex(ListBox()->CurrentItemIndex());
-    
-    EditItemL(index, aCalledFromMenu);  // invoked from menu,or not
-              
-    StoreSettingsL();
-    }
-
-CAknSettingItem * CAknFepDualLanguageSettingList::CreateSettingItemL (TInt aIdentifier) 
-    {
-    // method is used to create specific setting item as required at run-time.
-    // aIdentifier is used to determine what kind of setting item should be 
-    // created
-
-    CAknFepDualLanguageSettingItem* settingItem = NULL;
-    
-    TInt language = 0;
-    CRepository* aknFepRepository = CRepository::NewLC(KCRUidAknFep);
-    aknFepRepository->Get( KAknFepInputTxtLang, language );
-    
-    switch (aIdentifier)
-        {
-        case EAknFepDualLanguageSettingDualInputPrimary:
-            settingItem = new (ELeave) CAknFepDualLanguageSettingItem(
-                    R_PRIMARY_INPUT_LANGUAGE_SETTING_PAGE, ETrue, iData);
-            break;
-        case EAknFepDualLanguageSettingDualInputSecondary:
-            settingItem = new (ELeave) CAknFepDualLanguageSettingItem(
-                    R_SECONDARY_INPUT_LANGUAGE_SETTING_PAGE, EFalse, iData);
-            if(language == ELangTaiwanChinese ||
-               language == ELangHongKongChinese ||
-               language == ELangPrcChinese ||
-               language == ELangJapanese ||
-               language == ELangKorean )
-                {
-                settingItem->SetHidden(ETrue);
-                }
-            break;
-        default:
-            break;
-        }
-    CleanupStack::PopAndDestroy( aknFepRepository );
-    
-    return (CAknSettingItem*)settingItem;
-    }
-
-void CAknFepDualLanguageSettingList::HideSecondaryInputL(TBool aHidden)
-    {
-    SettingItemArray()->At(1)->SetHidden(aHidden);
-    HandleChangeInItemArrayOrVisibilityL();
-    }
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlDualLanguageSettingModel.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include    <PtiEngine.h>
-#include <AknAppUi.h> //For CAknAppUi
-#include <akntitle.h> //CAknTitlePane
-#include    <aknfep.rsg>  //For R_SECONDARY_WRITING_LANG_NONE
-#include <StringLoader.h>
-#include <AknFepInternalCRKeys.h>
-#include    <aknnotedialog.h>
-#include    <avkon.rsg>
-#include    <featmgr.h>
-#include <e32property.h>
-#include    <AvkonInternalCRKeys.h>
-#include <aknenv.h>  
-#include <AknSettingCache.h>
-#include "AknFepUIAvkonCtrlDualLanguageSettingModel.h"
-
-const TInt KAkFepDualLanguageMask = 0x03FF;
-const TInt KAkFepDualLanguageBufSize128 = 128;
-
-CAknFepDualLanguageSettingModel* CAknFepDualLanguageSettingModel::NewL()
-    {
-    CAknFepDualLanguageSettingModel* self = new( ELeave ) CAknFepDualLanguageSettingModel();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-void CAknFepDualLanguageSettingModel::ConstructL()
-    {
-    iAknFepRepository = CRepository::NewL( KCRUidAknFep );
-    }
-
-CAknFepDualLanguageSettingModel::~CAknFepDualLanguageSettingModel()
-    {
-    if(iAknFepRepository)
-        delete iAknFepRepository;
-    }
-void CAknFepDualLanguageSettingModel::GetSecondaryInputLanguagesL(
-              CArrayFix<TInt>* aSeedLanguages,
-              CDesCArray* aLanguageNames,
-              CCoeEnv* aCoeEnv)
-    {
-    CPtiEngine* ptiEngine = CPtiEngine::NewL();
-    CleanupStack::PushL( ptiEngine );
-
-    CArrayFix<TInt>* languageCodeArray = aSeedLanguages;
-    ptiEngine->GetAvailableLanguagesL( languageCodeArray );
-    languageCodeArray->InsertL(0,0); // No secondary input language as the first item
-    
-    TInt count = languageCodeArray->Count();
-    for ( TInt index = 0; index < count; ++index )
-        {
-        const TInt langCode = languageCodeArray->At(index);
-        if(langCode == ELangTaiwanChinese ||
-           langCode == ELangHongKongChinese ||
-           langCode == ELangPrcChinese ||
-           langCode == ELangJapanese ||
-           langCode == ELangKorean )
-            {
-            languageCodeArray->Delete(index);
-            count--;
-            index--;
-            }
-        }
-
-    HBufC* noneString = StringLoader::LoadLC( R_SECONDARY_WRITING_LANG_NONE, aCoeEnv);
-    TPtr nonePtr( noneString->Des() );
-    aLanguageNames->AppendL(nonePtr);
-    CleanupStack::PopAndDestroy( noneString );
-    
-    HBufC* buffer = HBufC::NewLC( KAkFepDualLanguageBufSize128 );
-    for ( TInt index = 1; index < count; ++index )
-        {
-        const TInt langId = languageCodeArray->At( index );
-
-        TPtr ptrToBuffer( buffer->Des() );
-        ptiEngine->GetLocalizedLanguageName( langId & KAkFepDualLanguageMask,
-                                             ptrToBuffer );
-
-        aLanguageNames->AppendL( ptrToBuffer );
-
-        ptrToBuffer.Zero();
-        }
-
-    CleanupStack::PopAndDestroy( buffer );
-    CleanupStack::PopAndDestroy( ptiEngine );
-    }
-void CAknFepDualLanguageSettingModel::ShowDualInputLanguageSettingListL(CCoeEnv* aCoeEnv)
-    {
-    CAknAppUi* appUi = static_cast<CAknAppUi*>(aCoeEnv->AppUi());
-
-    CAknTitlePane* titlePane = static_cast<CAknTitlePane*>( appUi->StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
-    const TDesC* appTitle = titlePane->Text();
-    HBufC* oldTitle = appTitle->AllocL();
-    CleanupStack::PushL(oldTitle);
-    HBufC* title = StringLoader::LoadLC( R_INPUT_LANGUAGE_SETTINGS_TITLE, aCoeEnv);
-    titlePane->SetTextL( *title );
-    CleanupStack::PopAndDestroy(title);
-    
-    //Launch dialog
-
-    titlePane->SetTextL( *oldTitle );
-    CleanupStack::PopAndDestroy(oldTitle);
-    }
-
-
-// ================= DATA ACCESS FUNCTIONS ==================
-
-// ----------------------------------------------------------------------------
-// CAknFepDualLanguageSettingModel::GetLanguagesFromPtiL
-//
-// Utility routine to get available languages with Symbian OS codes
-// ----------------------------------------------------------------------------
-//
-void CAknFepDualLanguageSettingModel::GetLanguagesFromPtiL(
-    CArrayFix<TInt>* aInstalledLangCodes,
-    CArrayFix<TInt>* aSeedLanguages,
-    CDesCArray* aLanguageNames )
-    {
-    CPtiEngine* ptiEngine = CPtiEngine::NewL();
-    CleanupStack::PushL( ptiEngine );
-
-    CArrayFix<TInt>* languageCodeArray = aSeedLanguages;
-    if ( aInstalledLangCodes )
-        {
-        languageCodeArray = aInstalledLangCodes;
-        }
-    else
-        {
-        ptiEngine->GetAvailableLanguagesL( languageCodeArray );
-        }
-
-    HBufC* buffer = HBufC::NewLC( KAkFepDualLanguageBufSize128 );
-    const TInt count = languageCodeArray->Count();
-    for ( TInt index = 0; index < count; ++index )
-        {
-        const TInt langId = languageCodeArray->At( index );
-
-        TPtr ptrToBuffer( buffer->Des() );
-        ptiEngine->GetLocalizedLanguageName( langId & KAkFepDualLanguageMask,
-                                             ptrToBuffer );
-
-        if ( aInstalledLangCodes )
-            {
-            aSeedLanguages->AppendL( langId );
-            }
-        aLanguageNames->AppendL( ptrToBuffer );
-
-        ptrToBuffer.Zero();
-        }
-
-    CleanupStack::PopAndDestroy( buffer );
-    CleanupStack::PopAndDestroy( ptiEngine );
-    }
-
-TInt CAknFepDualLanguageSettingModel::LanguageL( TLanguageType aType )
-    {
-    TInt Language = KErrNone;
-    switch ( aType )
-        {
-        case EAknFepDualLanguageSettingInputLanguage:
-            {
-            User::LeaveIfError(
-                iAknFepRepository->Get( KAknFepInputTxtLang, Language ) );
-            }
-            break;
-        case EAknFepDualLanguageSettingInputLanguageSecondary:
-            {
-            User::LeaveIfError(
-                iAknFepRepository->Get( KAknFepInputTxtLangSecondary, Language ) );
-            }
-            break;
-        default:
-            break;
-        }
-    return Language;
-
-    }
-
-
-TBool CAknFepDualLanguageSettingModel::SetLanguageL( TLanguageType aType, TInt aLanguage )
-    {
-    TBool ret = ETrue;
-
-    switch( aType )
-        {
-        case EAknFepDualLanguageSettingInputLanguage:
-            {
-            if( iAknFepRepository->Set( KAknFepInputTxtLang,
-                                        aLanguage ) != KErrNone )
-                {
-                ret = EFalse;
-                }
-            
-            if(ret)
-                {
-                // now inform all open apps of the switch
-                TWsEvent event;
-                event.SetType(KEikInputLanguageChange);
-                CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
-                CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange);
-                }
-            
-            // See if it cannot do predictive text entry
-            if( !CheckDictionaryFromPtiL( aLanguage ) )
-                {
-                CAknNoteDialog* dlg = new (ELeave) CAknNoteDialog( );
-                dlg->ExecuteDlgLD(
-                    CAknNoteDialog::EShortTimeout,
-                    CAknNoteDialog::ENoTone,
-                    R_AVKON_T9_NOTE_NO_AVAILABLE );                                   
-              
-                }
-            }
-            break;
-        case EAknFepDualLanguageSettingInputLanguageSecondary:
-            {
-            if( iAknFepRepository->Set( KAknFepInputTxtLangSecondary,
-                                        aLanguage ) != KErrNone )
-                {
-                ret = EFalse;
-                }
-            if(ret)
-                {
-                // now inform all open apps of the switch
-                // same event as primary input language change
-                TWsEvent event;
-                event.SetType(KEikInputLanguageChange);
-                CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
-				CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange);
-                }
-            // Secondary input language does not need prediction
-            // so we don't check for it
-            }
-            break;
-        default:
-            break;
-
-        }
-    return ret;
-    }
-
-// ----------------------------------------------------------------------------
-// CGSLangModel::CheckDictionaryFromPtiL
-//
-// Checks if the selected language supports predictive text input.
-// In case this returns EFalse, the UI display's "Not available"
-// for Predictive text input.
-// ----------------------------------------------------------------------------
-//
-TBool CAknFepDualLanguageSettingModel::CheckDictionaryFromPtiL( TInt aLangCode )
-    {
-    TBool langSupport = EFalse;
-
-    if ( FeatureManager::FeatureSupported( KFeatureIdChinese ) ||
-        FeatureManager::FeatureSupported( KFeatureIdJapanese ) )
-        {
-        langSupport = ETrue;
-        }
-    else
-        {
-        CPtiEngine* ptiEngine = CPtiEngine::NewL();
-        CleanupStack::PushL( ptiEngine );
-
-        MPtiLanguage* ptiLang = ptiEngine->GetLanguage( aLangCode );
-        if ( ptiLang )
-            {
-            // the check here should be based on the keyboard      
-            TInt keyboardLayout = 0;
-            RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout);
-            TPtiKeyboardType layout = (TPtiKeyboardType)keyboardLayout;
-            switch(layout)
-                {
-                case EPtiKeyboardHalfQwerty:
-                    langSupport = ptiLang->HasInputMode( (TPtiEngineInputMode)EPtiEngineHalfQwertyPredictive);
-                    break;
-                case EPtiKeyboardQwerty4x12:
-                case EPtiKeyboardQwerty4x10:  
-                case EPtiKeyboardQwerty3x11:
-                case EPtiKeyboardCustomQwerty:
-                    langSupport = ptiLang->HasInputMode( (TPtiEngineInputMode)EPtiEngineQwertyPredictive);
-                    break;
-                case EPtiKeyboardNone:
-                case EPtiKeyboard12Key:
-                    langSupport = ptiLang->HasInputMode( (TPtiEngineInputMode)EPtiEnginePredictive);
-                    break;
-                default:
-                    langSupport = ptiLang->HasInputMode( (TPtiEngineInputMode)EPtiEnginePredictive);
-                    break;    
-                }
-
-            }
-        CleanupStack::PopAndDestroy( ptiEngine );
-        ptiLang = NULL;
-        }
-
-    return langSupport;
-    }
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlExactWordPopupContent.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-/*
-* Copyright (c) 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:             Contents of the exact word tooltip shown above inline editor
-*                when the exact word differs from the inline word in Western
-*                QWERTY predictive mode.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eiklabel.h>
-#include <AknUtils.h>
-#include <AknsUtils.h>
-#include <AknPreviewPopUpController.h>
-#include "AknFepUiAvkonCtrlExactWordPopupContent.h"
-
-
-const TInt KArrowWidth = 10;
-const TInt KArrowHeight = 5;
-
-CAknFepExactWordPopupContent* CAknFepExactWordPopupContent::NewL()
-    {
-    CAknFepExactWordPopupContent* self = new (ELeave) CAknFepExactWordPopupContent;
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-    
-    
-CAknFepExactWordPopupContent::CAknFepExactWordPopupContent()
-    : iIsPopUpVisible(EFalse)
-    , iLabel( NULL )
-    , iPopupController( NULL )
-    , iArrowDirection( EUpwards )
-    {
-    }
-
-
-void CAknFepExactWordPopupContent::ConstructL()
-    {
-    iLabel = new (ELeave) CEikLabel;
-    iLabel->SetTextL(KNullDesC);
-
-  	const CFont* font = AknLayoutUtils::FontFromId( AknLayout::Link_shortcut_title_texts_Line_1().FontId() );
-    iLabel->SetFont(font);
-
-    TRgb textColor(KRgbBlack);
-    iLabel->GetColor(EColorLabelText, textColor);
-    AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), textColor, 
-                              KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG20);
-    TRAP_IGNORE( AknLayoutUtils::OverrideControlColorL(*iLabel, EColorLabelText, textColor) );
-    
-    TRect screenRect;
- 	AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, screenRect );
-    iLabel->SetRect( screenRect );
-    SetRect( screenRect ); 
-     
-    iPopupController = CAknPreviewPopUpController::NewL( *this, 
-                                                        CAknPreviewPopUpController::EPermanentMode );
-    iPopupController->SetPopUpShowDelay(0);   
-    }
-
-MAknFepUiWordPopupContent::~MAknFepUiWordPopupContent()
-	{
-		
-	}
-    
-CAknFepExactWordPopupContent::~CAknFepExactWordPopupContent()
-    {
-    delete iLabel;
-    delete iPopupController;
-    }
-    
-        
-void CAknFepExactWordPopupContent::SetTextL( const TDesC& aText )
-    {
-    iLabel->SetTextL(aText);
-    }
-
-
-void CAknFepExactWordPopupContent::SetArrowDirection( MAknFepUiWordPopupContent::TArrowDirection aDirection )
-    {
-    iArrowDirection = aDirection;
-    }
-
-
-TSize CAknFepExactWordPopupContent::MinimumSize()
-    {
-    // Ensure we are on top. Otherwise the popup would be left on background in many applications
-    // (e.g. Notes, ActiveNotes, Messaging, Contacts).
-    Window().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
-
-    TSize minSize = iLabel->MinimumSize();
-    //minSize.iHeight *= 2;
-    return minSize;
-    }
-    
-        
-void CAknFepExactWordPopupContent::Draw( const TRect& aRect ) const
-    {
-    TRect labelRect(aRect);
-
-    if ( iPopupController )
-        {
-        labelRect.SetSize( iPopupController->Size() );
-        }
-    
-    // Reserve some space for the arrow, if it is going to be shown below the text
-    if ( iArrowDirection == EUpwards )
-        {
-        labelRect.iTl.iY -= KArrowHeight;
-        }
-        
-    iLabel->SetRect( labelRect );
-    iLabel->Draw( labelRect );
-
-    TRAP_IGNORE( DrawArrowL( aRect ) );
-    }
-        
-
-void CAknFepExactWordPopupContent::DrawArrowL( const TRect& aTextRect ) const
-    {
-    CWindowGc& gc = SystemGc();
-    gc.SetPenColor( iEikonEnv->ControlColor(EColorLabelText,*this) );
-    gc.SetBrushColor( iEikonEnv->ControlColor(EColorControlBackground,*this) );
-    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
-            
-    CArrayFix<TPoint>* arrow = new (ELeave) CArrayFixFlat<TPoint>(3);
-    CleanupStack::PushL(arrow);
-
-    TPoint offset( aTextRect.iTl.iX + aTextRect.Width()/2 - KArrowWidth/2, 0 );
-
-    TPoint angle1;
-    TPoint angle2;
-    TPoint angle3;
-
-
-    if ( iArrowDirection == EDownwards )
-        {
-        offset.iY = aTextRect.iTl.iY - KArrowHeight;
-        angle1.SetXY( 0, 0 );
-        angle2.SetXY( KArrowWidth, 0 );
-        angle3.SetXY( KArrowWidth/2, KArrowHeight );
-        }
-    else // EUpwards
-        {
-        offset.iY = aTextRect.iBr.iY;
-        angle1.SetXY( 0, KArrowHeight );
-        angle2.SetXY( KArrowWidth, KArrowHeight );
-        angle3.SetXY( KArrowWidth/2, 0 );
-        }
-
-    arrow->AppendL( angle1 + offset );
-    arrow->AppendL( angle2 + offset );
-    arrow->AppendL( angle3 + offset );
-
-    gc.DrawPolygon(arrow);
-    CleanupStack::PopAndDestroy(arrow);
-    }
-
-void CAknFepExactWordPopupContent::SetPopUpShowDelay( const TTimeIntervalMicroSeconds32& aDelay )
-	{
-	iPopupController->SetPopUpShowDelay( aDelay );
-	}
-void CAknFepExactWordPopupContent::ShowPopUp()
-	{
-	iIsPopUpVisible = ETrue;
-	iPopupController->ShowPopUp();
-	}
-void CAknFepExactWordPopupContent::HidePopUp()
-	{
-	iIsPopUpVisible = EFalse;
-	iPopupController->HidePopUp();	
-	}
-void CAknFepExactWordPopupContent::SetPosition( const TPoint& aPoint )
-	{
-	iPopupController->SetPosition( aPoint );
-	}
-void CAknFepExactWordPopupContent::UpdateContentSize()
-	{
-	iPopupController->UpdateContentSize();	
-	}
-TSize CAknFepExactWordPopupContent::Size() const 
-	{
-	return iPopupController->Size();
-	}
-TBool CAknFepExactWordPopupContent::IsPopUpVisible()
-	{
-	return iIsPopUpVisible;	
-	}
-	
-void CAknFepExactWordPopupContent::HandlePointerEventL( const TPointerEvent& aPointerEvent )	
-	{
-	if( !AknLayoutUtils::PenEnabled() )
-		{
-		return;
-		}
-
-	if (TPointerEvent::EButton1Down == aPointerEvent.iType)
-		{
-       	TKeyEvent keyUp = {EKeyUpArrow, EStdKeyUpArrow, 0, 0};
-    	CCoeEnv::Static()->WsSession().SimulateKeyEvent(keyUp);
-		}
-	}
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlInputPane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,559 +0,0 @@
-/*
-* Copyright (c) 2002 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 CAknFepUICtrlInputPane methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-#include <gulfont.h> 
-#include <eiklabel.h>
-#include <AknUtils.h>
-#include <AknsDrawUtils.h>
-#include <skinlayout.cdl.h>
-
-#include "AknFepUIAvkonCtrlInputPane.h"
-#include "AknFepUIAvkonCtrlPinyinPopup.h"
-#include "aknfepchineseuidataconv.h"
-#include "aknfepuilayoutdatamgr.h"
-
-CAknFepUICtrlInputPane* CAknFepUICtrlInputPane::NewL(RWindow& aParent, 
-                                                     TInputPaneLayout aPaneLayout,
-                                                     CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlInputPane* self = new(ELeave) CAknFepUICtrlInputPane(aPaneLayout,aLafDataMgr);
-    CleanupStack::PushL(self);
-    self->ConstructL(aParent);
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepUICtrlInputPane::~CAknFepUICtrlInputPane()
-    {
-    delete iBuffer;
-    delete iLabel;
-    delete iLabelToneMark;
-    }
-
-void CAknFepUICtrlInputPane::SetSizeChangedObserver(
-    MAknFepUICtrlPinyinPopupSizeChangedObserver* aObserver)
-    {
-    iSizeChangedObserver = aObserver;
-    }
-
-void CAknFepUICtrlInputPane::SetText(const TDesC& aDes)
-    {
-    // make sure that we only copy as many characters as we can show
-    if(iLayout == ELayoutPhraseInputPane)
-        {
-        TPtrC newText = aDes.Right(CalculateMaxTextLength(aDes));        
-        TPtr ptr = iBuffer->Des();
-
-        if(ptr != newText)
-            {
-            ptr.Copy(newText);
-            UpdateLabelContents();
-
-            if(iLayout == ELayoutPhraseInputPane) 
-                {
-                iSizeChangedObserver->SelectionPopupSizeChanged(CAknFepUICtrlPinyinPopup::EMaxCandidates + 1); // indicate input pane layout
-                }
-            DrawNow();
-            }
-        }
-    else
-        {
-        TPtrC newText= aDes.Right(iMaxInputChars - EMaxToneMarkLength);
-        TPtr ptr = iBuffer->Des();
-
-        if(ptr != newText)
-            {
-            ptr.Copy(newText);
-            UpdateLabelContents();
-
-            if(iLayout == ELayoutPhraseInputPane) 
-                {
-                iSizeChangedObserver->SelectionPopupSizeChanged(CAknFepUICtrlPinyinPopup::EMaxCandidates + 1); // indicate input pane layout
-                }
-            DrawNow();
-            }
-        }
-    }
-
-void CAknFepUICtrlInputPane::GetText(TDes& aText) const
-    {
-    aText.Copy(*iBuffer);
-    }
-
-void CAknFepUICtrlInputPane::SetHighlighted(TBool aHighlighted)
-    {
-    if(!COMPARE_BOOLS(iHighlighted, aHighlighted))
-        {
-        iHighlighted = aHighlighted;
-        // need to change highlight colors
-        LayoutContainedControls();
-        DrawDeferred();
-        }
-    }
-
-TBool CAknFepUICtrlInputPane::Highlighted() const
-    {
-    return iHighlighted;
-    }
-
-void CAknFepUICtrlInputPane::SetToneMark(const TDesC& aToneMark)
-    {
-    TPtrC newText = aToneMark.Left(EMaxToneMarkLength);
-    TPtr tonePtr = iToneMarkBuffer.Des();
-
-    if(tonePtr != newText)
-        {
-        tonePtr.Copy(newText);
-        UpdateLabelContents();
-        if(iLayout == ELayoutPhraseInputPane)
-            {
-            iSizeChangedObserver->SelectionPopupSizeChanged(CAknFepUICtrlPinyinPopup::EMaxCandidates + 1);
-            }
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlInputPane::GetToneMark(TDes& aToneMark) const
-    {
-    TInt length = aToneMark.MaxLength();
-    TPtrC toneMark = iToneMarkBuffer.Left(length);
-    aToneMark.Copy(toneMark);
-    }
-
-void CAknFepUICtrlInputPane::SetToneMarkValidity(TBool aValid)
-    {
-    if(!COMPARE_BOOLS(iToneMarkValidity, aValid))
-        {
-        iToneMarkValidity = aValid;
-        LayoutContainedControls();
-        UpdateLabelContents();
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlInputPane::SetLayoutIndex(TInt aIndex)
-    {
-    if(iLayoutIndex != aIndex)
-        {
-        iLayoutIndex = aIndex;
-        LayoutContainedControls();
-        }
-    }
-
-void CAknFepUICtrlInputPane::SetOverrideFontId(TInt aFontId)
-    {
-    if(iFontId != aFontId)
-        {
-        iFontId = aFontId;
-        // need to update the layout, and then force the text to be formatted
-        LayoutContainedControls();
-        UpdateLabelContents();
-        DrawDeferred();
-        }
-    }
-
-void CAknFepUICtrlInputPane::MakeTextVisible(TBool aVisible)
-    {
-    if(aVisible)
-        {
-        UpdateLabelContents();
-        }
-    else
-        {
-        TRAP_IGNORE( 
-            iLabel->SetTextL(KNullDesC);
-            iLabelToneMark->SetTextL(KNullDesC);
-            );
-        }
-    }
-
-TInt CAknFepUICtrlInputPane::LabelTextWidthInPixels() const
-    {
-    TAknLayoutText layoutText = 
-            CAknFepChineseUIDataConv::AnyToLayoutText( iLafDataMgr->RequestData( ELayoutInputPaneText ));
-    const CFont* font = layoutText.Font();
-
-    TInt labelWidthInPixels = 0;
-    if(font)
-        {
-        TBufC<EMaxInputCharsInputPane> buf1;
-        TPtr ptr1 = buf1.Des();
-        GetText(ptr1);
-        TBufC<EMaxToneMarkLength> buf2;
-        TPtr ptr2 = buf2.Des();
-        GetToneMark(ptr2);
-        labelWidthInPixels = font->TextWidthInPixels(ptr1); 
-        labelWidthInPixels += font->TextWidthInPixels(ptr2);
-        }
-    TInt maxWidth = layoutText.TextRect().Width(); 
-    labelWidthInPixels = labelWidthInPixels > maxWidth? maxWidth:labelWidthInPixels;
-    return labelWidthInPixels;
-    }
-
-void CAknFepUICtrlInputPane::SizeChanged()
-    {
-    LayoutContainedControls();
-    }
-
-TInt CAknFepUICtrlInputPane::CountComponentControls() const
-    {
-    CCoeControl* controls[] = 
-        {
-        iLabel,
-        iLabelToneMark
-        } ;
-
-    TInt count = 0 ;
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if(controls[ii])
-            {
-            count++ ;
-            }
-        }
-    return count ;
-    }
-
-CCoeControl* CAknFepUICtrlInputPane::ComponentControl(TInt aIndex) const 
-    {
-    CCoeControl* controls[] = 
-        {
-        iLabel,
-        iLabelToneMark
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if (controls[ii] && aIndex-- == 0)
-            {
-            return controls[ii] ;
-            }
-        }
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-void CAknFepUICtrlInputPane::Draw(const TRect& /*aRect*/) const
-    {
-    TBool skinnedDraw = EFalse;
-    CWindowGc& gc = SystemGc();
-
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    if(iHighlighted)
-        {
-        TRect outerRect;
-        TRect innerRect;
-        CalculateFrameRects(outerRect, innerRect);
-        skinnedDraw = AknsDrawUtils::DrawFrame(
-            skin, gc, outerRect, innerRect, KAknsIIDQsnFrList, KAknsIIDQsnFrListCenter); // or KAknsIIDDefault?
-        }
-    else
-        {
-        MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
-        skinnedDraw = AknsDrawUtils::Background(skin, cc, this, gc, Rect());
-        }
-
-    if(!skinnedDraw)
-        {
-        if(iHighlighted)
-            {
-            iUnselectedStringHighlight.DrawRect(gc);
-            }
-        else
-            {
-            gc.SetBrushColor(AKN_LAF_COLOR_STATIC(0)); 
-            gc.Clear(iUnselectedStringHighlight.Rect());
-            }
-        }
-    }
-
-void CAknFepUICtrlInputPane::ConstructL(RWindow& aParent)
-    {
-    SetContainerWindowL(aParent);
-    iBuffer = HBufC::NewL(iMaxInputChars);
-
-    // force label to contain required number of characters from the outset
-    iLabel = new(ELeave) CEikLabel;
-    iLabel->SetBufferReserveLengthL(iMaxInputChars); // this will do a realloc now, so no need to later
-    iLabel->SetContainerWindowL(aParent);
-    iLabel->SetMopParent(this);
-
-    iLabelToneMark = new(ELeave) CEikLabel;
-    iLabelToneMark->SetBufferReserveLengthL(EMaxToneMarkLength); // this will do a realloc now, so no need to later
-    iLabelToneMark->SetContainerWindowL(aParent);
-    iLabelToneMark->SetMopParent(this);
-
-    }
-
-CAknFepUICtrlInputPane::CAknFepUICtrlInputPane(TInputPaneLayout aPaneLayout, CAknFepUiLayoutDataMgr* aLafDataMgr)
-    : 
-    iHighlighted(EFalse),
-    iLayout(aPaneLayout),
-    iToneMarkValidity(ETrue),
-    iFlags(0),
-    iLafDataMgr(aLafDataMgr)
-    {
-    switch(iLayout)
-        {
-        case ELayoutPhraseInputPane:
-            iMaxInputChars = EMaxInputCharsInputPane;
-            break;
-        case ELayoutPhrasePinyinPopupPane:
-            iMaxInputChars = EMaxInputCharsPinyinPopup;
-            break;
-        default:
-            iMaxInputChars = EMaxInputCharsInputPane;
-            break;
-        };
-    }
-
-void CAknFepUICtrlInputPane::UpdateLabelContents()
-    {
-    // add on the tone mark for the purposes of clipping
-    TBufC<EMaxInputChars> combinedBuffer;
-    TPtr combinedPtr = combinedBuffer.Des();
-    combinedPtr.Copy(*iBuffer);
-    combinedPtr.Append(iToneMarkBuffer);
-
-    TRect rect = Rect();
-    if(iLayout == ELayoutPhrasePinyinPopupPane)
-        {
-        TAknLayoutRect layoutLineRectEntryPane = 
-                CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ELayoutLineRectEntryPane ));
-        rect = layoutLineRectEntryPane.Rect();
-        }
-    // avoid accessing text layout member data
-    TAknLayoutRect labelRect;
-    
-    TAknWindowLineLayout layoutEntryItem = 
-            CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutEntryItem));
-    labelRect.LayoutRect(rect, layoutEntryItem);
-    TAknLayoutText layoutText;
-    TAknTextLineLayout entryTextLine = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EEntryTextLayout));
-    layoutText.LayoutText(labelRect.Rect(),entryTextLine);
-    TInt maxWidth = layoutText.TextRect().Width(); 
-    
-    TAknLayoutText layoutText1 = 
-            CAknFepChineseUIDataConv::AnyToLayoutText( iLafDataMgr->RequestData( ELayoutInputPaneText ));
-    const CFont* font = layoutText1.Font();
-
-    TInt labelWidthInPixels = 0;
-    if(font)
-        {
-        TBufC<EMaxInputCharsInputPane> buf1;
-        TPtr ptr1 = buf1.Des();
-        GetText(ptr1);
-        TBufC<EMaxToneMarkLength> buf2;
-        TPtr ptr2 = buf2.Des();
-        GetToneMark(ptr2);
-        labelWidthInPixels = font->TextWidthInPixels(ptr1); 
-        labelWidthInPixels += font->TextWidthInPixels(ptr2);
-        }
-    
-    if(labelWidthInPixels > maxWidth)
-		{
-		AknTextUtils::ClipToFit(
-		combinedPtr,
-		*(iLabel->Font()),
-		maxWidth,
-		AknTextUtils::EClipFromBeginning, 
-		KDefaultClipWidth, 
-		KNullDesC); 
-		}
-
-    // now remove the tone mark again, as it has a separate label
-    TInt uncombinedLength = combinedPtr.Length() - iToneMarkBuffer.Length();
-    if(uncombinedLength < 0)
-        uncombinedLength = 0;
-    combinedPtr.SetLength(uncombinedLength); // always shorter, so won't be bigger than max
-
-    // ignore any errors... we have guaranteed that the descriptor already has sufficient characters to avoid a realloc
-    TRAP_IGNORE( 
-        iLabel->SetTextL(combinedPtr);
-        iLabelToneMark->SetTextL(iToneMarkBuffer);
-        );
-    }
-
-void CAknFepUICtrlInputPane::LayoutContainedControls()
-    {
-    TRect rect = Rect();
-    if(iLayout == ELayoutPhraseInputPane)
-		{
-	    TAknWindowLineLayout layoutEntryItem = 
-	            CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutEntryItem));
-        iUnselectedStringHighlight.LayoutRect(rect, layoutEntryItem);
-        }
-    else if(iLayout == ELayoutPhrasePinyinPopupPane) 
-		{
-        iUnselectedStringHighlight.LayoutRect(rect, AKN_LAYOUT_WINDOW_Input_highlight_Line_1(rect));
-        }
-
-    // layout spelling label    
-    TAknTextLineLayout textLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EEntryTextLayout));
-    TAknLayoutText layoutText;
-    TRect rectHighlight = iUnselectedStringHighlight.Rect();
-    TRect textRect;
-    
-    layoutText.LayoutText(rectHighlight,textLayout);
-    textRect = layoutText.TextRect();
-    TRgb labelTextColor = layoutText.Color();
-
-    TInt labelWidth = LabelTextWidthInPixels();
-    if(textRect.Width() > labelWidth)
-        {
-        textRect.SetWidth(labelWidth);
-        }
-    iLabel->SetRect(textRect);
-    const CFont* font = layoutText.Font();
-    iLabel->SetFont(font);
-    
-    // layout tone mark label
-    TRgb labelToneMarkTextColor = labelTextColor;
-    TRect toneMarkRect;
-    TPtrC ptr = *iBuffer;
-    TInt toneMarkOffset = 0;
-
-    toneMarkOffset = iLabel->CalcMinimumSize(ptr).iWidth;
-    toneMarkRect.iTl.iX = textRect.iTl.iX + toneMarkOffset;
-    toneMarkRect.iTl.iY = textRect.iTl.iY;
-    toneMarkRect.iBr.iY = textRect.iBr.iY;
-    toneMarkRect.SetWidth(labelWidth - toneMarkOffset);
-    iLabelToneMark->SetRect(toneMarkRect);
-    iLabelToneMark->SetFont(font);
-    
-    // once we have layed out the labels from LAF, override the colours from the skin if necessary
-    // as the skin utils will only return RGB values, not colour ids.
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TInt colorIndex = EAknsCIQsnTextColorsCG19;
-    if (iHighlighted)
-        {
-        colorIndex = EAknsCIQsnTextColorsCG11;
-        }
-            
-    AknsUtils::GetCachedColor(skin, labelTextColor, KAknsIIDQsnTextColors, colorIndex);
-
-    colorIndex = iToneMarkValidity ? EAknsCIQsnTextColorsCG10: EAknsCIQsnTextColorsCG11; 
-    AknsUtils::GetCachedColor(skin, labelToneMarkTextColor, KAknsIIDQsnTextColors, colorIndex);
-
-    TRgb tonemarkColor;
-    
-    if (iToneMarkValidity)
-    	{
-    	tonemarkColor = labelToneMarkTextColor;
-    	}
-    else
-    	{
-    	tonemarkColor = KRgbGray;	
-    	}	
-
-    TRAP_IGNORE( 
-        iLabel->OverrideColorL(EColorLabelText, labelTextColor);
-        iLabelToneMark->OverrideColorL(EColorLabelText, tonemarkColor);
-        );    
-    }
-
-void CAknFepUICtrlInputPane::CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const
-    {
-    TRect windowRect = Rect();
-    TRect entryRect = 
-        CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData(EEntryPaneRect));
-    
-    windowRect.SetHeight(entryRect.iBr.iY - entryRect.iTl.iY);
-    
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect,SkinLayout::Submenu_skin_placing_Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect, SkinLayout::Submenu_skin_placing_Line_5());
-
-    aOuterRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    aInnerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    if (aInnerRect.Width() <= 4)
-        {
-        aInnerRect.SetWidth(5);
-        }
-    }
-
-TInt CAknFepUICtrlInputPane::CalculateMaxTextLength(const TDesC& aDes) const
-    {
-    TAknLayoutText layoutText = 
-            CAknFepChineseUIDataConv::AnyToLayoutText( iLafDataMgr->RequestData( ELayoutInputPaneText ));
-    TInt maxWidth = layoutText.TextRect().Width();
-    TInt textWidth = 0;
-    
-    textWidth = aDes.Length();
-    
-    while (maxWidth < CalculateTextLength(aDes.Right(textWidth)))
-        {
-        textWidth--;
-        }
-    
-    return textWidth;
-    }
-
-TInt CAknFepUICtrlInputPane::CalculateTextLength(const TDesC& aDes) const
-    {
-    TAknLayoutText layoutText = 
-            CAknFepChineseUIDataConv::AnyToLayoutText( iLafDataMgr->RequestData( ELayoutInputPaneText ));
-    const CFont* font = layoutText.Font();
-
-    TInt labelWidthInPixels = 0;
-    if(font)
-        {
-        labelWidthInPixels = font->TextWidthInPixels(aDes); 
-        }
-        
-    return labelWidthInPixels;
-    }
-
-void CAknFepUICtrlInputPane::SetLayout( TInputPaneLayout aPaneLayout )
-    {
-    switch(aPaneLayout)
-        {
-        case ELayoutPhraseInputPane:
-            iMaxInputChars = EMaxInputCharsInputPane;
-            break;
-        case ELayoutPhrasePinyinPopupPane:
-            iMaxInputChars = EMaxInputCharsPinyinPopup;
-            break;
-        case ELayoutPhraseMiniQwertyZhuyin:
-            iMaxInputChars = EMaxInputCharsZhuyinPopup;
-            break;
-        default:
-            iMaxInputChars = EMaxInputCharsInputPane;
-            break;
-        };
-    }
-    
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateCellListBoxData.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-
-#include <aknPopup.h>
-#include <AknsDrawUtils.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateCellListBoxData.h" 
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateCellListBoxData::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseCandidateCellListBoxData*
-    CAknFepUICtrlJapaneseCandidateCellListBoxData::NewL()
-    {
-    CAknFepUICtrlJapaneseCandidateCellListBoxData* self =
-            new(ELeave) CAknFepUICtrlJapaneseCandidateCellListBoxData;
-    self->ConstructLD();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateCellListBoxData::Draw
-// Draw items
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateCellListBoxData::Draw(
-        TListItemProperties aProperties,
-        CWindowGc& aGc,
-        const TDesC* aText,
-        const TRect& aRect,
-        TBool aHighlight, 
-        const TColors& aColors) const
-    {
-    const TRect &aItemRect = aRect;
-
-    DrawDefaultHighlight(aGc, aItemRect, aHighlight);
-
-    // Draw the actual items.
-    DrawFormatted(aProperties, aGc, aText, aItemRect, aHighlight, aColors);
-
-    aGc.Reset();
-
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateCellListBoxData::DrawDefaultHighlight
-// Draw highlight item
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateCellListBoxData::DrawDefaultHighlight(
-        CWindowGc& aGc,
-        const TRect& aItemRect,
-        TBool aHighlight) const
-    {
-    if (aHighlight)
-        {
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        TBool highlightDrawn = EFalse;
-        MAknsControlContext* cc = AknsDrawUtils::ControlContext(Control());
-        if (!cc)
-            {
-            cc = SkinBackgroundContext();
-            }
-        if (cc)
-            {
-            TAknLayoutRect topLeft;
-            topLeft.LayoutRect(aItemRect,
-                               ELayoutEmpty,
-                               1, 1, ELayoutEmpty, ELayoutEmpty, 5, 5);
-
-            TAknLayoutRect bottomRight;
-            bottomRight.LayoutRect(aItemRect,
-                                   ELayoutEmpty,
-                                   ELayoutEmpty, ELayoutEmpty, 1, 0, 5,5);
-
-            TRect outerRect =
-                        TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-            TRect innerRect =
-                        TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-            aGc.SetPenStyle(CGraphicsContext::ENullPen);
-
-            const TAknsItemID* skinHighlightFrameId =
-                                                &KAknsIIDQsnFrList;
-            const TAknsItemID* skinHighlightFrameCenterId =
-                                                &KAknsIIDQsnFrListCenter;
-            highlightDrawn = AknsDrawUtils::DrawFrame(
-                                                skin,
-                                                aGc,
-                                                outerRect, innerRect,
-                                                *skinHighlightFrameId,
-                                                *skinHighlightFrameCenterId);
-            }
-        
-        if (!highlightDrawn)
-            {
-            TAknLayoutRect highlightshadow;
-            TAknLayoutRect highlight;
-            highlightshadow.LayoutRect(
-                    aItemRect,
-                    AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__various__Line_1(aItemRect));
-            highlight.LayoutRect(
-                    aItemRect,
-                    AKN_LAYOUT_WINDOW_List_pane_highlight_graphics__various__Line_2(aItemRect));
-
-            highlightshadow.DrawRect(aGc);
-            highlight.DrawRect(aGc);
-            }
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateHeadingPane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <AknsDrawUtils.h>
-#include <AknLayout.lag>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateHeadingPane.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::SetParentRect
-// Set rect of parent window
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateHeadingPane::SetParentRect(
-        const TRect& aParentRect)
-    {
-    iParentRect = aParentRect;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::SizeChanged
-// This function is called when changing window size.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateHeadingPane::SizeChanged()
-    {
-    LayoutListHeadingPane();
-    AknsUtils::RegisterControlPosition(this);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::ActivateL
-// This function is called when doing active
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateHeadingPane::ActivateL()
-    {
-    CCoeControl::ActivateL();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::CountComponentControls
-// Return a number of control in Heading Pane
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapaneseCandidateHeadingPane::CountComponentControls() const
-    {
-    return 1;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::ComponentControl
-// Return a control object
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CAknFepUICtrlJapaneseCandidateHeadingPane::ComponentControl(
-        TInt /*aIndex*/) const
-    {
-    return Prompt();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateHeadingPane::LayoutListHeadingPane
-// calculate layout from LAF information
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateHeadingPane::LayoutListHeadingPane()
-    {
-    TAknTextLineLayout textLayout =
-            AKN_LAYOUT_TEXT_Candidate_selection_list_texts_Line_1;
-    textLayout.il = 0;
-
-    TRect parentRect(0, 0, iParentRect.Width(), iParentRect.Height());
-    AknLayoutUtils::LayoutLabel(Prompt(), parentRect, textLayout);
-
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    TRgb color;
-    TInt error = AknsUtils::GetCachedColor( skin,
-                                            color,
-                                            KAknsIIDQsnTextColors,
-                                            EAknsCIQsnTextColorsCG7 );
-    if (!error)
-        {
-        // Ignore error
-        TRAP_IGNORE( AknLayoutUtils::OverrideControlColorL(
-                            *Prompt(),
-                            EColorLabelText, color ) );
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateListbox.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <AknsDrawUtils.h>
-#include <AknLayout.lag>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknLayout2ScalableDef.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateListbox.h" 
-#include "AknFepUIAvkonCtrlJapaneseCandidateListboxView.h" 
-#include "AknFepUIAvkonCtrlJapaneseCandidateCellListBoxData.h" 
-
-// CONSTANTS
-const TInt KLAFBaseListColumns = 3;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::SetMaximumColumns
-// Set maximum columns in listbox
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListbox::SetMaximumColumns(
-        const TInt aMaximumColumns)
-    {
-    iMaximumColumns = aMaximumColumns;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::SizeChanged
-// This function is called when changing window size.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListbox::SizeChanged() 
-    {
-    CEikFormattedCellListBox& listBox = *this;
-    CFormattedCellListBoxItemDrawer* itemDrawer = listBox.ItemDrawer();
-
-    TAknWindowLineLayout textWindowLayout = 
-        AKN_LAYOUT_WINDOW_list_single_popup_jap_candidate_pane(
-            0, iMaximumColumns - KLAFBaseListColumns);
-    AknListBoxLayouts::SetupStandardListBox(listBox);
-    AknListBoxLayouts::SetupStandardFormListbox(itemDrawer);
-    AknListBoxLayouts::SetupListboxPos(listBox, textWindowLayout);
-
-    {
-    TRgb color( KRgbBlack );
-    // this does not modify color unless it gets a correct one
-    // no real need to check errors
-    AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
-                              color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 );
-    itemDrawer->SetHighlightedTextColor( color );
-    AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
-                               color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG7 );
-    iItemDrawer->SetTextColor( color );
-    }
-
-    // setting text box size in listbox
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_List_pane_text__single_japan_fep__Line_1(
-            iMaximumColumns - KLAFBaseListColumns);
-    TSize itemSize = View()->ItemSize();
-
-    AknListBoxLayouts::SetupFormAntiFlickerTextCell(
-            listBox, itemDrawer, 0, textLineLayout,
-            TPoint(0, 0),
-            TPoint(itemSize.iWidth, itemSize.iHeight)); // CheckColor.
-
-    CEikFormattedCellListBox::SizeChanged();
-
-    // Scroll bar
-    TAknWindowLineLayout scrollLineLayout = AknLayoutScalable_Avkon::scroll_pane_cp30().LayoutLine();
-    scrollLineLayout.il = ELayoutEmpty;
-    if (Model()->NumberOfItems() <= iMaximumRows)
-        {
-        scrollLineLayout.iW = 0;
-        }
-    TRect scrollBarParent = TRect(TPoint(listBox.Rect().iTl), 
-                                  TSize(listBox.Rect().Width() + scrollLineLayout.iW + scrollLineLayout.ir,
-                                        listBox.Rect().Height()));
-    AknLayoutUtils::LayoutVerticalScrollBar(iSBFrame, scrollBarParent, scrollLineLayout);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::MakeViewClassInstanceL
-// Create view class
-// -----------------------------------------------------------------------------
-//
-CListBoxView* CAknFepUICtrlJapaneseCandidateListbox::MakeViewClassInstanceL()
-    {
-    return new(ELeave) CAknFepUICtrlJapaneseCandidateListboxView;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::CreateItemDrawerL
-// Create ItemDrawer
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListbox::CreateItemDrawerL()
-    {
-    CAknFepUICtrlJapaneseCandidateCellListBoxData* cellData =
-        CAknFepUICtrlJapaneseCandidateCellListBoxData::NewL();
-    CleanupStack::PushL( cellData );
-
-    // getting font object
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_List_pane_text__single_japan_fep__Line_1(0);
-    const CFont* font = AknLayoutUtils::FontFromId(textLineLayout.iFont);
-
-    iItemDrawer =
-        new(ELeave) CFormattedCellListBoxItemDrawer(Model(), font, cellData);
-    CleanupStack::Pop(cellData);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::SetMaximumRows
-// Set maximum visible rows in listbox
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListbox::SetMaximumRows(
-        const TInt aMaximumRows)
-    {
-    iMaximumRows = aMaximumRows;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::HandlePointerEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListbox::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    const TInt old = CurrentItemIndex();
-    CAknSinglePopupMenuStyleListBox::HandlePointerEventL(aPointerEvent);
-    switch (aPointerEvent.iType)
-        {
-        case TPointerEvent::EButton1Up:
-            break;
-        case TPointerEvent::EButton1Down:
-            {
-            if (CurrentItemIndex() != old)
-                {
-                ReportListBoxEventL(MEikListBoxObserver::EEventItemDraggingActioned);// need draw.
-                }
-            }
-            break;
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListbox::HandleScrollEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-void CAknFepUICtrlJapaneseCandidateListbox::HandleScrollEventL(
-                                                    CEikScrollBar* aScrollBar,
-                                                    TEikScrollEvent aEventType)
-    {
-    TInt oldThumbPos = (aEventType & KEikScrollEventBarMask) ?
-                                iView->HScrollOffset() : iView->TopItemIndex();
-    TInt newThumbPos = aScrollBar->ThumbPosition();
-    TInt maxThumbPos = static_cast<CTextListBoxModel*>(Model())->NumberOfItems()
-                                - MaximumRows();
-    TBool update = ETrue;
-    TInt newThumbPosBeforeCorrecting = newThumbPos;
-
-    if ((aEventType & KEikScrollEventBarMask) == KEikScrollEventFromVBar)
-        {
-        switch (aEventType)
-            {
-            case EEikScrollUp:
-                if ( oldThumbPos == 0  && (iListBoxFlags & ELoopScrolling))
-                    {
-                    newThumbPos = maxThumbPos;
-                    }
-                break;
-            case EEikScrollDown:
-                if ( oldThumbPos == maxThumbPos && (iListBoxFlags & ELoopScrolling) )
-                    {
-                    newThumbPos = 0;
-                    }
-                break;
-            case EEikScrollPageUp:
-            case EEikScrollPageDown:
-            case EEikScrollThumbDragVert:
-                break;
-            case EEikScrollThumbReleaseVert:
-                // in the case of drag events, the scrollbar automatically updates its thumb pos...
-                if(AknLayoutUtils::PenEnabled())
-                    {
-                    update = EFalse;
-                    }
-                break;
-
-            default:
-                break;
-            }
-        if ( (!AknLayoutUtils::PenEnabled()) || update )
-            {
-            iView->VScrollTo(newThumbPos);
-            if (aEventType != EEikScrollThumbDragVert)
-                {
-                aScrollBar->SetModelThumbPosition(iView->TopItemIndex());
-                }
-            }
-
-        // if event has changed thumb position, then update scroll bar
-        if ( AknLayoutUtils::PenEnabled() && newThumbPos != newThumbPosBeforeCorrecting )
-            {
-            UpdateScrollBarThumbs();
-            }
-        }
-    }
-
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidateListboxView.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateListboxView.h" 
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-#define ITEM_EXISTS_BEGIN TInt no_of_items__ = iModel->NumberOfItems()
-#define ITEM_EXISTS(x) (((x) > -1) && ((x) < no_of_items__))
-
-#define ITEM_EXISTS_ONCE(x) (((x) > -1) && ((x) < iModel->NumberOfItems()))
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListboxView::Draw
-// Drawing listbox
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListboxView::Draw(
-        const TRect* /*aClipRect*/) const
-    {
-    if (RedrawDisabled() || !IsVisible())
-        return;
-
-    if (iModel->NumberOfItems() > 0)
-        {
-        TInt firstPotentialItemIndex = iTopItemIndex;
-        TInt lastPotentialItemIndex =
-            iTopItemIndex + NumberOfItemsThatFitInRect(iViewRect) - 1;
-        TInt i;
-        ITEM_EXISTS_BEGIN;
-        for (i = firstPotentialItemIndex; i <= lastPotentialItemIndex; i++)
-            {
-            if (ITEM_EXISTS(i))
-                {
-                DrawItem(i);
-                }
-            else
-                {
-                break;
-                }
-            }
-        }
-    } 
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidateListboxView::DrawItem
-// Drawing item of index appointed with an argument
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidateListboxView::DrawItem(
-        TInt aItemIndex) const
-    {
-    if (RedrawDisabled() || !IsVisible())
-        {
-        return;
-        }
-
-    if (((aItemIndex > -1) && (aItemIndex < iModel->NumberOfItems()))
-        && ItemIsVisible(aItemIndex))
-        {
-        iItemDrawer->DrawItem(
-            aItemIndex,
-            ItemPos(aItemIndex),
-            ItemIsSelected(aItemIndex),
-            (aItemIndex == iCurrentItemIndex),
-            (iFlags & EEmphasized) > 0,
-            (iFlags & EDimmed) > 0);
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseCandidatePane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,973 +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:            Candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <aknPopupHeadingPane.h>
-#include <AknsDrawUtils.h>
-#include <AknsBasicBackgroundControlContext.h>
-#include <AknLayout.lag>
-#include <aknfep.rsg>
-
-#include <skinlayout.cdl.h>
-#include <AknLayout2ScalableDef.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <layoutmetadata.cdl.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateListbox.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidateHeadingPane.h"
-#include "AknFepUIAvkonCtrlJapaneseCandidatePane.h"
-#include "AknFepUIManagerJapanese.h"
-
-// CONSTANTS
-const TInt KMaxTitleLength = 32;
-
-const TInt KMaxListRows = 7;
-const TInt KMinListRows = 5;
-const TInt KMaxListColumns = 9;
-const TInt KMinListColumns = 3;
-const TInt KLAFBaseListColumns = 3;
-const TInt KLAFBaseListRows = 1;
-
-const TInt KLAFBelowTextBaseline = 2;
-const TInt KLAFAboveTextBaseline = 1;
-const TInt KListboxMarge = 4;
-
-/**
-*  CAknFepUICtrlJapaneseCandidatePane class.
-*
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseCandidatePane* CAknFepUICtrlJapaneseCandidatePane::NewL(CAknFepUIManagerJapanese* aUiMng)
-    {
-    CAknFepUICtrlJapaneseCandidatePane* self =
-        new(ELeave) CAknFepUICtrlJapaneseCandidatePane(aUiMng);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);    // self
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::~CAknFepUICtrlJapaneseCandidatePane
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseCandidatePane::~CAknFepUICtrlJapaneseCandidatePane()
-    {
-    if (IsVisible())
-        {
-        HideWindow();
-        }
-    if (iListBox)
-        {
-        delete iListBox;
-        iListBox = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::ShowWindow
-// Show Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::ShowWindow()
-    {
-    RWindow& window=Window();
-    //Set ordinal position to top
-    window.SetOrdinalPosition(0,ECoeWinPriorityFep);
-    window.SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
-    window.SetPointerCapture(ETrue);
-    TRAP_IGNORE( ActivateL());
-    MakeVisible(ETrue);
-    DrawNow();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::CloseCandidateList
-// Close Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::CloseCandidateList()
-    {
-    CancelPopup();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetCurrentItemIndex
-// Specify the cursor position of a pop-up list.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetCurrentItemIndexL(
-        TInt aItemIndex,
-        TBool aDraw)
-    {
-    CTextListBoxModel* model =
-        static_cast<CTextListBoxModel*>(ListBox()->Model());
-    TInt numOfItem = model->NumberOfItems();
-    TBuf<KMaxTitleLength> title;
-    title.Format(_L("%d / %d"), aItemIndex + 1, numOfItem);
-    SetTitleL(title);
-
-    if (aDraw)
-        {
-        iListBox->SetCurrentItemIndexAndDraw(aItemIndex);
-        iTitle->DrawNow();
-        }
-    else
-        {
-        iListBox->SetCurrentItemIndex(aItemIndex);
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetOffsetPosition
-// Specify the display position of a pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetOffsetPosition(TPoint aOffset)
-    {
-    iOffsetPosition = aOffset;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetWindowPosition
-// Set the drawing position for candidate list popup window
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetWindowPosition(
-        const TPoint& aLeftSideOfBaseLine, TInt aHeight, TInt aAscent)
-    {
-    // getting rectangle for main pane
-    TRect screen =
-        TRect(0, 0,
-              AKN_LAYOUT_WINDOW_screen.iW, AKN_LAYOUT_WINDOW_screen.iH);
-    TAknLayoutRect main_pane;
-    main_pane.LayoutRect(screen, AKN_LAYOUT_WINDOW_main_pane(screen, 0, 1, 1));
-    iMainPaneRect = main_pane.Rect();
-
-    TInt leftPos = aLeftSideOfBaseLine.iX;
-    if (leftPos < 0)
-        {
-        leftPos = iOffsetPosition.iX;
-        }
-
-    TPoint windowOffset(
-        leftPos,
-        aLeftSideOfBaseLine.iY + aHeight - aAscent - iMainPaneRect.iTl.iY);
-    SetOffsetPosition(windowOffset);
-
-    iSrcTextHeight = aHeight;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::ShowCandidateListL
-// Show Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::ShowCandidateListL(
-        CDesCArrayFlat* aItems, TInt aIndex, TInt aResourceID)
-    {
-    __ASSERT_DEBUG(aItems->Count() > 0,
-                   AknFepUiInterfacePanic(EAknFepUiInterfacePanicCandidatesEmpty));
-
-    // Set listitems.
-    CTextListBoxModel* model =
-        static_cast<CTextListBoxModel*>(ListBox()->Model());
-    model->SetItemTextArray(aItems);
-    model->SetOwnershipType(ELbmDoesNotOwnItemArray);
-
-    iMaximumColumns = MaximumColumns(model);
-    iMaximumRows    = MaximumRows(model);
-
-    SetCurrentItemIndexL(aIndex, EFalse);
-    SetMaximumHeight(iMaximumRows);
-
-    CAknFepUICtrlJapaneseCandidateListbox* listBox =
-        static_cast<CAknFepUICtrlJapaneseCandidateListbox*>(ListBox());
-
-    listBox->SetMaximumColumns(iMaximumColumns);
-
-    // Show popup list
-    TBool notShowingPopup = model->NumberOfItems() == 0 && iWindowType < 0x80;
-    if (!notShowingPopup)
-        {
-        const TSize screenSize=iCoeEnv->ScreenDevice()->SizeInPixels();
-        iPopoutCba->SetBoundingRect(TRect(screenSize));
-        }
-
-    // Create a CBA for use with the popup
-    if (aResourceID)
-        {
-        UpdateCbaL(aResourceID);
-        }
-
-    SetupWindowLayout(iWindowType);
-
-    iListBox->SetListBoxObserver(this);
-    iPopoutCba->MakeVisible(ETrue);
-
-    if (iMarkable)
-        {
-        // If markable, set the popup to observe event change events.
-        // Call HandleControlEvent to set the CBA appropriate to the 1st item
-        iListBox->SetObserver(this);
-        HandleControlEventL(iListBox, EEventStateChanged);
-        }
-
-    if (IsVisible())
-        {
-        DrawDeferred();
-        }
-    else
-        {
-        ShowWindow();
-        ActivateL();
-        ShowWindowCbaL();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::HideWindow
-// Hide Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::HideWindow()
-    {
-    MakeVisible(EFalse);
-    Window().SetPointerCapture(EFalse);
-
-    iEikonEnv->RemoveFromStack(iPopoutCba);
-
-    iPopoutCba->MakeVisible(EFalse);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::CurrentItemIndexOfCandidate
-// Return a selected candidate item number currently
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapaneseCandidatePane::CurrentItemIndexOfCandidate()
-    {
-    return iListBox->CurrentItemIndex();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::MoveItem
-// Move a current item in an appointed direction
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapaneseCandidatePane::MoveItem(
-        TAknFepUICtrlScroll aDirection)
-    {
-    __ASSERT_DEBUG(iListBox->IsVisible(),
-                   AknFepUiInterfacePanic(EAknFepUiInterfacePanicNoCandidatePane));
-
-    TInt index = iListBox->CurrentItemIndex();
-
-    CTextListBoxModel* model =
-        static_cast<CTextListBoxModel*>(ListBox()->Model());
-    const TInt numberOfItems = model->NumberOfItems();
-
-    switch(aDirection)
-        {
-        case EScrollUp:
-            {
-            --index;
-            if (index < 0)
-                index = numberOfItems - 1;
-            }
-        break;
-
-        case EScrollDown:
-            {
-            ++index;
-            if (index >= numberOfItems)
-                index = 0;
-            }
-        break;
-
-        default:
-            {
-            //Panic
-            AknFepUiInterfacePanic(EAknFepUiInterfacePanicCandidatePaneNotSupportScrollDirection);
-            }
-        break;
-        }
-    TRAPD(err, SetCurrentItemIndexL(index, ETrue));
-    if (err != KErrNone)
-        {
-        HideWindow();
-        index = 0;
-        }
-    return index;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetupWindowLayout
-// Set up a window layout type
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetupWindowLayout(
-        AknPopupLayouts::TAknPopupLayouts /*aType*/)
-    {
-    HandleSizeChanged(Layout(), Heading(), ListBox(), this);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::AttemptExitL
-// Set the title for the selection list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::AttemptExitL(TBool aAccept)
-    {
-    if (iReturn) //Always not null unless ExecuteLD leaves
-        *iReturn = aAccept;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::MopSupplyObject
-// -----------------------------------------------------------------------------
-//
-TTypeUid::Ptr CAknFepUICtrlJapaneseCandidatePane::MopSupplyObject(TTypeUid aId)
-    {
-    SetMopParent( iEikonEnv->EikAppUi() );
-    return CAknPopupList::MopSupplyObject(aId);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CAknFepUICtrlJapanesePredictivePane
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseCandidatePane::CAknFepUICtrlJapaneseCandidatePane(CAknFepUIManagerJapanese* aUiMng)
-    : iUiMng(aUiMng)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::ConstructL()
-    {
-    // Create listbox.
-    CAknFepUICtrlJapaneseCandidateListbox* list =
-                new(ELeave) CAknFepUICtrlJapaneseCandidateListbox;
-    // "iListBox" member variable is defined in CAknPopupList class.
-    iListBox = list;
-    CAknPopupList::ConstructL(
-        iListBox, R_AKNFEP_SOFTKEYS_EMPTY_EMPTY_COMMIT, AknPopupLayouts::EMenuWindow);
-
-    list->ConstructL(this, CEikListBox::ELeftDownInViewRect);
-    list->CreateScrollBarFrameL(ETrue);
-    list->ScrollBarFrame()->SetScrollBarVisibilityL(
-                                CEikScrollBarFrame::EOff,
-                                CEikScrollBarFrame::EAuto);
-    iEikonEnv->RemoveFromStack(this);
-    SetNonFocusing();
-    MakeVisible(EFalse);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetTitleL
-// Set the title for the selection list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetTitleL(const TDesC& aTitle)
-    {
-    if (!iTitle)
-        {
-        iTitle = new(ELeave) CAknFepUICtrlJapaneseCandidateHeadingPane;
-        iTitle->SetContainerWindowL(*this);
-        iTitle->ConstructL(aTitle);
-        iTitle->SetMopParent(iListBox);
-        }
-    else
-        {
-        iTitle->SetTextL(aTitle);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::HandleSizeChanged
-// The handler function for size change
-// Original function is AknPopupLayouts::HandleSizeChanged()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::HandleSizeChanged(
-        TAknPopupWindowLayoutDef &aDef,
-        CAknPopupHeadingPane *aHeading,
-        CEikListBox *aListBox,
-        CCoeControl *aWindowOwningControl)
-    {
-    if ( aHeading )
-        {
-        aHeading->SetLayout( CAknPopupHeadingPane::EListHeadingPane );
-        aHeading->SetSkinFrameId(TAknsItemID());
-        aHeading->SetSkinFrameCenterId(TAknsItemID());
-        }
-
-    TInt numofitems = aListBox->Model()->NumberOfItems();
-
-    TInt minItems = iMaximumRows;
-    TInt maxItems = KMaxListRows;
-
-    if (aDef.iMaximumHeight)
-        {
-        maxItems = aDef.iMaximumHeight;
-        }
-    AknPopupLayouts::CheckRange(numofitems, minItems, maxItems);
-    CalcPopupMenuWindow(aDef, iMainPaneRect, numofitems);
-    SetupMenuPopupWindow(aDef, numofitems, aHeading != 0);
-
-    CAknFepUICtrlJapaneseCandidateListbox* listbox =
-        static_cast<CAknFepUICtrlJapaneseCandidateListbox*>(aListBox);
-    listbox->SetMaximumColumns(iMaximumColumns);
-    listbox->SetMaximumRows(iMaximumRows);
-    SetMaximumHeight(iMaximumRows);
-
-    aWindowOwningControl->SetRect(AknPopupLayouts::WindowRect(aDef));
-    HandleSizeAndPositionOfComponents(aDef, aListBox, aHeading);
-
-    TRect windowRect = AknPopupLayouts::WindowRect(aDef);
-    MAknsControlContext *cc = AknsDrawUtils::ControlContext( aListBox );
-    TBool defaultContext = EFalse;
-    if (!cc)
-        {
-        cc = aListBox->View()->ItemDrawer()->SkinBackgroundControlContext();
-        defaultContext = ETrue;
-        }
-
-    if (cc)
-        {
-        CAknsBasicBackgroundControlContext *bcc =
-            (CAknsBasicBackgroundControlContext*)cc;
-        TAknLayoutRect popupBgRect;
-        popupBgRect.LayoutRect(
-            windowRect,
-            ELayoutEmpty,
-            0, 0, ELayoutEmpty, ELayoutEmpty,
-            windowRect.Size().iWidth, windowRect.Size().iHeight);
-        bcc->SetBitmap(KAknsIIDQsnFrPopupCenter);
-        if (defaultContext)
-            {
-            bcc->SetRect(popupBgRect.Rect());
-            }
-        bcc->SetParentPos(aWindowOwningControl->PositionRelativeToScreen());
-        if (defaultContext)
-            {
-            bcc->SetParentPos(TPoint(0,0));
-            }
-        }
-     }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::HandleDraw
-// The handler function for Draw
-// Original function is AknPopupLayouts::HandleDraw()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::HandleDraw(CEikonEnv* /*aEikEnv*/,
-                  CWindowGc& aGc,
-                  const TAknPopupWindowLayoutDef& aDef,
-                  CEikListBox* aListBox,
-                  CAknPopupHeadingPane* aHeading)
-    {
-    TRect windowRect =
-        AknPopupLayouts::MenuRect(const_cast<TAknPopupWindowLayoutDef&>(aDef));
-    MAknsSkinInstance *skin = AknsUtils::SkinInstance();
-    MAknsControlContext *cc = AknsDrawUtils::ControlContext( aListBox );
-    TBool windowFrameDrawn = EFalse;
-    if (!cc)
-        {
-        cc = aListBox->View()->ItemDrawer()->SkinBackgroundControlContext();
-        }
-
-    if (cc)
-        {
-		TRegionFix<2> dontDrawRegion;
-		TRegionFix<8> drawRegion;
-		if ( aListBox )
-		    {
-	    	dontDrawRegion.AddRect( aListBox->Rect() );
-		    }
-		if ( aHeading )
-		    {
-	    	dontDrawRegion.AddRect( aHeading->Rect() );
-		    }
-		drawRegion.AddRect( windowRect );
-		drawRegion.SubRegion( dontDrawRegion );
-
-		const TAknsItemID *popupBgId = &KAknsIIDQsnBgPopupBackground;
-		TAknLayoutRect popupBgRect;
-        popupBgRect.LayoutRect(windowRect, SkinLayout::Popup_windows_skin_placing__background_slice__Line_1(windowRect));
-		AknsDrawUtils::DrawCachedImage(skin, aGc, popupBgRect.Rect(), *popupBgId);
-
-		const TAknsItemID *sliceId = &KAknsIIDQsnBgSlicePopup;
-		TAknLayoutRect sliceRect;
-        sliceRect.LayoutRect(windowRect, SkinLayout::Popup_windows_skin_placing__background_slice__Line_2());
-		AknsDrawUtils::DrawCachedImage(skin, aGc, sliceRect.Rect(), *sliceId);
-
-        // drawing frame
-        TAknLayoutRect topLeft;
-        topLeft.LayoutRect(
-            windowRect,
-            ELayoutEmpty, 0,0, ELayoutEmpty, ELayoutEmpty, KListboxMarge, KListboxMarge);
-
-        TAknLayoutRect bottomRight;
-        bottomRight.LayoutRect(
-            windowRect,
-            ELayoutEmpty,
-            ELayoutEmpty, ELayoutEmpty, 0, 0, KListboxMarge, KListboxMarge);
-
-        TRect outerRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-        TRect innerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-        aGc.SetPenStyle(CGraphicsContext::ENullPen);
-        const TAknsItemID *frameId = &KAknsIIDQsnFrPopup;
-        const TAknsItemID *frameCenterId = &KAknsIIDQsnFrPopupCenter;
-		aGc.SetClippingRegion( drawRegion );
-        windowFrameDrawn =
-            AknsDrawUtils::DrawFrame(
-                skin, aGc,
-                outerRect, innerRect, *frameId, *frameCenterId);
-		aGc.CancelClippingRegion();
-        }
-
-    if (!windowFrameDrawn)
-        {
-        DrawWindowShadow(
-            aGc, aDef.iCover,
-            aDef.iSecond, aDef.iFirst, aDef.iOutline, aDef.iInside);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::CalcPopupMenuWindow
-// Set up the information on a pop-up window
-// Original function is AknPopupLayouts::CalcPopupMenuWindow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::CalcPopupMenuWindow(
-        TAknPopupWindowLayoutDef &aDef,const TRect& aRect, TInt /*num*/)
-    {
-    TAknLayoutRect popup_menu_window;
-
-    TBool sizeDesideFlag = EFalse;
-    TInt adjustOffsetX = 0;
-    TInt adjustOffsetY = 0;
-    TInt i;
-    TAknWindowLineLayout lafwidth =
-        AknLayoutScalable_Avkon::popup_fep_japan_candidate_window(iMaximumColumns - KLAFBaseListColumns).LayoutLine();
-
-    // calculating the number of indication line again in order to be able to arrange under a plan position
-    for (i = iMaximumRows; i >= KLAFBaseListRows && !sizeDesideFlag; i--)
-        {
-        TAknWindowLineLayout laf =
-            AknLayoutScalable_Avkon::popup_fep_japan_candidate_window(i).LayoutLine();
-        laf.il = 0;
-        laf.it = 0;
-        laf.iW = lafwidth.iW;
-        popup_menu_window.LayoutRect(aRect, laf);
-        // calculate a drawing position Y
-        TInt drawY = iMainPaneRect.iTl.iY + iOffsetPosition.iY
-                         + KLAFBelowTextBaseline + popup_menu_window.Rect().Height();
-        if (drawY < iMainPaneRect.iBr.iY)
-            {
-            adjustOffsetY = (-1) * KLAFBelowTextBaseline;
-            iMaximumRows = i;
-            sizeDesideFlag = ETrue;
-            }
-        if (iMaximumRows >= KMinListRows && i == KMinListRows)
-            {
-            break;
-            }
-        }
-
-    // if popup window cannot be arranged under a plan positon, it try whether popup is arranged top or not.
-    //
-    for (i = iMaximumRows; i >= KLAFBaseListRows && !sizeDesideFlag; i--)
-        {
-        TAknWindowLineLayout laf =
-            AknLayoutScalable_Avkon::popup_fep_japan_candidate_window(i).LayoutLine();
-        laf.il = 0;
-        laf.it = 0;
-        laf.iW = lafwidth.iW;
-        popup_menu_window.LayoutRect(aRect, laf);
-        // calculate a drawing position Y
-        TInt drawY = iMainPaneRect.iTl.iY + iOffsetPosition.iY - KLAFAboveTextBaseline
-                    - iSrcTextHeight - popup_menu_window.Rect().Height();
-        if (drawY > iMainPaneRect.iTl.iY)
-            {
-            adjustOffsetY = iSrcTextHeight + KLAFAboveTextBaseline + popup_menu_window.Rect().Height();
-            iMaximumRows = i;
-            sizeDesideFlag = ETrue;
-            }
-        if (iMaximumRows >= KMinListRows && i == KMinListRows)
-            {
-            break;
-            }
-        }
-
-    // In case popup window cannot be arrange both under and top,
-    // popup is shown on the bottom on screen.
-    if (!sizeDesideFlag)
-        {
-        TAknWindowLineLayout laf =
-            AknLayoutScalable_Avkon::popup_fep_japan_candidate_window(KMinListRows).LayoutLine();
-        laf.il = 0;
-        laf.it = 0;
-        laf.iW = lafwidth.iW;
-        popup_menu_window.LayoutRect(aRect, laf);
-        adjustOffsetY = iMainPaneRect.iTl.iY + iOffsetPosition.iY + KLAFBelowTextBaseline
-                      + popup_menu_window.Rect().Height()
-                      - iMainPaneRect.iBr.iY;
-        iMaximumRows = KMinListRows;
-        sizeDesideFlag = ETrue;
-        }
-
-    adjustOffsetX =
-        iMainPaneRect.iTl.iX
-        + iOffsetPosition.iX
-        + popup_menu_window.Rect().Width() - iMainPaneRect.iBr.iX;
-    adjustOffsetX = (adjustOffsetX > 0) ? adjustOffsetX : 0;
-    TPoint adjustOffset(-adjustOffsetX, -adjustOffsetY);
-
-    aDef.iWindowRect = popup_menu_window.Rect();
-    aDef.iWindowRect.Move(iOffsetPosition);
-    aDef.iWindowRect.Move(adjustOffset);
-
-    // getting a information of shadow in candidate list
-    TRect window_rect = AknPopupLayouts::MenuRect(aDef);
-
-    TAknWindowLineLayout laf1 =
-        AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_1(
-            aDef.iWindowRect);
-    laf1.iW = TInt16(aDef.iWindowRect.Width());
-    TAknWindowLineLayout laf2 =
-        AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_2(
-            aDef.iWindowRect);
-    laf2.iW = TInt16(aDef.iWindowRect.Width() - 4);
-    TAknWindowLineLayout laf3 =
-        AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_3(
-            aDef.iWindowRect);
-    laf3.iW = TInt16(aDef.iWindowRect.Width() - 3);
-    TAknWindowLineLayout laf4 =
-        AKN_LAYOUT_WINDOW_Candidate_selection_pop_up_window_graphics_Line_4(
-            aDef.iWindowRect);
-    laf4.iW = TInt16(aDef.iWindowRect.Width() - 5);
-
-    aDef.iCover.LayoutRect(window_rect, laf1);
-    aDef.iSecond.LayoutRect(window_rect, laf2);
-    aDef.iFirst.LayoutRect(window_rect, laf2);
-    aDef.iOutline.LayoutRect(window_rect, laf3);
-    aDef.iInside.LayoutRect(window_rect, laf4);
-    aDef.iPopupMenuWindowOffset = TPoint(0, 0);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::SetupMenuPopupWindow
-// Set up the information on a pop-up window
-// Original function is AknPopupLayouts::SetupMenuPopupWindow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::SetupMenuPopupWindow(
-        TAknPopupWindowLayoutDef &aDef, TInt /*num*/, TBool /*heading*/)
-    {
-    AknPopupLayouts::SetupDefaults(aDef);
-    TRect window_rect = AknPopupLayouts::MenuRect(aDef);
-
-    // setting window size of listbox pane
-    // Those arguments aren't used in it.
-    TAknWindowLineLayout laf = AKN_LAYOUT_WINDOW_candidate_pane(0,0);
-    TAknWindowLineLayout textWindowLayout =
-        AKN_LAYOUT_WINDOW_list_single_popup_jap_candidate_pane(0,0);
-    laf.ib = ELayoutEmpty;
-    laf.iH = iMaximumRows * textWindowLayout.iH;
-    aDef.iListRect.LayoutRect(window_rect, laf);
-
-    // setting window size of heading pane
-    //   calculating window size of heading pane based on a shadow of popup window
-    //
-    TAknTextLineLayout lafHead =
-        AknLayoutScalable_Avkon::popup_fep_japan_candidate_window_t1().LayoutLine();
-
-    TRect rectFirstShadow = aDef.iFirst.Rect();
-    TRect rectListBox     = aDef.iListRect.Rect();
-    laf.it = (TInt16)(rectFirstShadow.iTl.iY - window_rect.iTl.iY);
-    laf.ib = ELayoutEmpty;
-    laf.iH = (TInt16)(rectListBox.iTl.iY - rectFirstShadow.iTl.iY);
-    aDef.iHeadingRect.LayoutRect(window_rect, laf);
-
-    CAknFepUICtrlJapaneseCandidateHeadingPane* headingPane =
-        static_cast<CAknFepUICtrlJapaneseCandidateHeadingPane*>(Heading());
-    headingPane->SetParentRect(aDef.iWindowRect);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::HandleSizeAndPositionOfComponents
-// The handler function for size and a location
-// Original function is AknPopupLayouts::HandleSizeAndPositionOfComponents()
-//
-//
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::HandleSizeAndPositionOfComponents(
-        const TAknPopupWindowLayoutDef &aDef,
-        CCoeControl *aContent,
-        CAknPopupHeadingPane *aHeading)
-    {
-    TRect lbrect = aDef.iListRect.Rect();
-    TRect headrect;
-
-   if (AknLayoutUtils::ScalableLayoutInterfaceAvailable())
-        {
-        // set scroll size
-        CAknFepUICtrlJapaneseCandidateListbox* listBox =
-            static_cast<CAknFepUICtrlJapaneseCandidateListbox*>(aContent);
-        CTextListBoxModel* model = static_cast<CTextListBoxModel*>(listBox->Model());
-        const TInt items = model->NumberOfItems();
-        if (items > listBox->MaximumRows())
-            {
-            TAknWindowLineLayout scrollllinelayout = AknLayoutScalable_Avkon::scroll_pane_cp30().LayoutLine();
-            lbrect.iBr.iX -= scrollllinelayout.iW;
-            }
-        }
-
-    // set listbox view rectangle
-    aContent->SetRect(lbrect);
-    if (aHeading)
-        {
-        headrect = aDef.iHeadingRect.Rect();
-        aHeading->SetRect(headrect);
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::DrawWindowShadow
-// Draw window shadow
-//
-// Original function is AknDrawWithSkins::DrawWindowShadow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::DrawWindowShadow(
-        CWindowGc &aGc,
-        const TAknLayoutRect &aCoverRect,
-        const TAknLayoutRect &aSecondShadowRect,
-        const TAknLayoutRect &aFirstShadowRect,
-        const TAknLayoutRect &aOutlineFrameRect,
-        const TAknLayoutRect &aInsideAreaRect)
-    {
-    MAknsSkinInstance *skin = AknsUtils::SkinInstance();
-
-    TInt x2 = aFirstShadowRect.Rect().iTl.iX;
-    TInt x3 = aSecondShadowRect.Rect().iTl.iX;
-
-    TInt y2 = aFirstShadowRect.Rect().iTl.iY;
-    TInt y3 = aSecondShadowRect.Rect().iTl.iY;
-
-    TInt x4 = aOutlineFrameRect.Rect().iBr.iX;
-    TInt x5 = aFirstShadowRect.Rect().iBr.iX;
-    TInt x6 = aSecondShadowRect.Rect().iBr.iX;
-
-    TInt y4 = aOutlineFrameRect.Rect().iBr.iY;
-    TInt y5 = aFirstShadowRect.Rect().iBr.iY;
-    TInt y6 = aSecondShadowRect.Rect().iBr.iY;
-
-    aGc.SetBrushColor(aCoverRect.Color());
-    AknsDrawUtils::Background(skin, NULL, NULL, aGc, aCoverRect.Rect());
-    AknsDrawUtils::BackgroundBetweenRects(
-        skin, NULL, NULL, aGc,
-        TRect(x2,y2,x4-1,y4-1), aInsideAreaRect.Rect());
-
-    aOutlineFrameRect.DrawOutLineRect(aGc);
-    aGc.SetBrushColor(aFirstShadowRect.Color());
-    aGc.Clear(TRect(x2,y4,x5,y5));
-    aGc.Clear(TRect(x4,y2,x5,y4));
-    aGc.SetBrushColor(aSecondShadowRect.Color());
-    aGc.Clear(TRect(x3,y5,x6,y6));
-    aGc.Clear(TRect(x5,y3,x6,y5));
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::MaximumColumns
-// This function returns maximum columns to be able to display in listbox.
-// -----------------------------------------------------------------------------
-TInt CAknFepUICtrlJapaneseCandidatePane::MaximumColumns(
-        CTextListBoxModel* aModel)
-    {
-    TInt maximumCharacters = 0;
-    TInt numberOfItems = aModel->NumberOfItems();
-    TInt i;
-    for (i = 0; i < numberOfItems; i++)
-        {
-        TPtrC text = aModel->ItemText(i);
-        TInt textLength = text.Length();
-        if (maximumCharacters < textLength)
-            {
-            maximumCharacters = textLength;
-            }
-        }
-
-    TInt maximumColumns = Min(KMaxListColumns, maximumCharacters);
-    maximumColumns = Max(KMinListColumns, maximumColumns);
-
-    return maximumColumns;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::MaximumRows
-// This function returns maximum rows to be able to display in listbox.
-// -----------------------------------------------------------------------------
-TInt CAknFepUICtrlJapaneseCandidatePane::MaximumRows(
-        CTextListBoxModel* aModel)
-    {
-    TInt numberOfItems = aModel->NumberOfItems();
-    TInt maximumRows = Min(KMaxListRows, numberOfItems);
-
-    return maximumRows;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::Draw
-// Called by the framework to draw the control
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-    gc.Clear();
-    HandleDraw(iEikonEnv, gc, Layout(), iListBox, Heading());
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::OfferKeyEventL
-// Handle key events. When a key event occurs
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CAknFepUICtrlJapaneseCandidatePane::OfferKeyEventL(
-        const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
-    {
-    return EKeyWasNotConsumed;
-    }
-
-void CAknFepUICtrlJapaneseCandidatePane::ShowWindowCbaL()
-    {
-    RDrawableWindow* cbaWindow = iPopoutCba->ButtonGroup()->AsControl()->DrawableWindow();
-    cbaWindow->SetOrdinalPosition(0,ECoeWinPriorityFep);
-    cbaWindow->SetFaded(EFalse, RWindowTreeNode::EFadeWindowOnly);
-    cbaWindow->SetNonFading(ETrue);
-    iEikonEnv->EikAppUi()->AddToStackL(iPopoutCba,
-                                       ECoeStackPriorityFep,
-                                       ECoeStackFlagRefusesFocus);
-    iPopoutCba->ActivateL();
-    iPopoutCba->MakeVisible(ETrue);
-    iPopoutCba->DrawDeferred(); // to update the cba
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::ProcessCommandL
-// Processes events from the softkeys. Responds to EAknSoftkeyOk and EAknSoftkeyBack
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::ProcessCommandL(TInt aCommandId)
-    {
-    // Respond to softkey events
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeyCommit:
-            iUiMng->HandleCommandL(aCommandId);
-            break;
-        case EAknFepSoftkeyRetroActiveHalf:
-        case EAknFepSoftkeyRetroActiveFull:
-            iUiMng->HandleCommandL(aCommandId);
-            break;
-        default:
-            CAknPopupList::ProcessCommandL(aCommandId);
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::UpdateCbaL
-// Changing the cba
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::UpdateCbaL(TInt aResourceID)
-    {
-    if (iCurrentResource == aResourceID)
-        {
-        return;
-        }
-
-    // store resource id
-    iPopoutCba->SetCommandSetL( aResourceID );
-    iCurrentResource = aResourceID;
-    iPopoutCba->DrawDeferred();
-    }
-
-// CallBack from ListBox
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseCandidatePane::HandleListBoxEventL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseCandidatePane::HandleListBoxEventL(
-    CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-    switch (aEventType)
-        {
-        case EEventItemDraggingActioned: // Item Moved
-            DrawNow();
-            break;
-        case EEventItemClicked:
-            {
-            TKeyEvent ccpuStart = {EKeyOK, EStdKeyDevice3, 0, 0};
-            iEikonEnv->SimulateKeyEventL(ccpuStart, EEventKey);
-            }
-            break;
-        default:
-           break;
-        }
-    }
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapaneseKutenQueryDialog.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,454 +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:            Kuten code query dialog
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <barsread.h>
-
-#include <numberconversion.h>
-#include <AknQueryDialog.h>
-#include <aknQueryControl.h>
-#include <aknnotewrappers.h>                        // CAknInformationNote
-#include <aknsoundsystem.h>
-#include <charconv.h>
-#include <PtiDefs.h>                //keys
-#include <aknfep.rsg>
-#include <avkon.hrh>
-
-#include "AknFepUIAvkonCtrlJapaneseKutenQueryDialog.h"
-
-// MACROS
-
-// CONSTANTS
-const TInt KKutenCodeLength = 4;
-const TInt KDummyUnicode = 0xfffd;
-const TInt KTextKutenCodeErrorMaxSize = 32;
-const TText KHalfWidthNotSign = 0x00AC;
-const TText KFullWidthNotSign = 0xFFE2;
-
-// ================= MEMBER FUNCTIONS =========================================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseKutenQueryDialog*
-CAknFepUICtrlJapaneseKutenQueryDialog::NewL(TInt& aCharCode, const TTone& aTone)
-    {
-    CAknFepUICtrlJapaneseKutenQueryDialog* self =
-        new (ELeave) CAknFepUICtrlJapaneseKutenQueryDialog(aCharCode, aTone);
-
-    return self;
-    }
-
-// ----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::~CAknFepUICtrlJapaneseKutenQueryDialog()
-// Destructor.
-// ----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseKutenQueryDialog::~CAknFepUICtrlJapaneseKutenQueryDialog()
-    {
-    }
-
-// ----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::OfferKeyEventL
-//
-// ----------------------------------------------------------------------------
-//
-TKeyResponse CAknFepUICtrlJapaneseKutenQueryDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,
-                                                                   TEventCode aType)
-{
-    if (aType == EEventKey)
-    {
-        TInt keyCode = aKeyEvent.iCode;
-        switch(keyCode)
-        {
-            case EPtiKey0:
-            case EPtiKey1:
-            case EPtiKey2:
-            case EPtiKey3:
-            case EPtiKey4:
-            case EPtiKey5:
-            case EPtiKey6:
-            case EPtiKey7:
-            case EPtiKey8:
-            case EPtiKey9:
-                {
-                    if (iDataText.Length() == KKutenCodeLength)
-                    {
-                        if (SoundSystem())
-                        {
-                        SoundSystem()->PlaySound(EErrorTone);
-                        }
-                    }
-                }
-                break;
-            default:
-                break;
-        }
-    }
-    return CAknTextQueryDialog::OfferKeyEventL(aKeyEvent, aType);
-}
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::OkToExitL
-// This function is called in case pressing OK or Cancel
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepUICtrlJapaneseKutenQueryDialog::OkToExitL(TInt aButtonId)
-    {
-    TBool checkResult = EFalse;
-    iCharCode = ConvertKutenCode2Unicode();
-    if (iCharCode > 0)
-        {
-        checkResult = CAknTextQueryDialog::OkToExitL(aButtonId);
-        }
-    else
-        {
-        TResourceReader reader;
-        TBufC<KTextKutenCodeErrorMaxSize> string;
-        CCoeEnv::Static()->CreateResourceReaderLC(reader, R_AKNFEP_TEXT_KUTEN_INVALID_ERROR);
-        string = reader.ReadTPtrC();
-        CleanupStack::PopAndDestroy();      // reader
-
-        CAknInformationNote* dialog = new(ELeave) CAknInformationNote();
-        dialog->ExecuteLD(string);
-
-        CAknQueryControl* control = QueryControl();
-        if (control)
-            {
-            control->SetTextL(KNullDesC);
-            control->DrawNow();
-            }
-
-        UpdateLeftSoftKeyL();
-        }
-
-    return checkResult;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::UpdateLeftSoftKeyL
-// Updating left softkey
-//
-// If control text is ok then display left soft key
-// otherwise don't
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseKutenQueryDialog::UpdateLeftSoftKeyL()
-    {
-    CAknQueryControl* control = QueryControl();
-    if ( control )
-        {
-        MakeLeftSoftkeyVisibleL();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::CAknFepUICtrlJapaneseKutenQueryDialog()
-// Overload constructor.
-//-----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapaneseKutenQueryDialog::CAknFepUICtrlJapaneseKutenQueryDialog(
-        TInt& aCharCode, const TTone& aTone)
-        : CAknTextQueryDialog(iBuffer, aTone),
-          iCharCode(aCharCode),
-          iCbaResId(R_AVKON_SOFTKEYS_CANCEL)
-    {
-    iCharCode = 0;
-    }
-
-TInt CAknFepUICtrlJapaneseKutenQueryDialog::ExecuteLD(TInt aResourceId)
-    {
-    PrepareLC(aResourceId);
-    CEikEdwin* edwin = STATIC_CAST(CEikEdwin*, (QueryControl()->ControlByLayoutOrNull(EDataLayout)));
-    edwin->SetAknEditorAllowedInputModes(EAknEditorNumericInputMode);
-    edwin->SetAknEditorNumericKeymap(EAknEditorPlainNumberModeKeymap);
-    return(RunLD());
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::MakeLeftSoftkeyVisibleL
-// Set visibility of the left softkey.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapaneseKutenQueryDialog::MakeLeftSoftkeyVisibleL()
-    {
-    TBool visible = EFalse;
-    CAknQueryControl* control = QueryControl();
-    if (control)
-        {
-        control->GetText(iDataText);
-        if (iDataText.Length() == KKutenCodeLength)
-            {
-            visible = ETrue;
-            }
-        }
-    else
-        {
-        visible = EFalse;
-        }
-
-    TUint resid = R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY;
-    if (visible)
-        {
-        resid = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
-        }
-    if (iCbaResId != resid)
-        {
-        ButtonGroupContainer().SetCommandSetL(resid);
-        ButtonGroupContainer().DrawDeferred();
-        iCbaResId = resid;
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapaneseKutenQueryDialog::ConvertKutenCode2Unicode
-// Convert from Kuten code to unicode, Kuten code is 4 characters which inputted in query dialog.
-// -----------------------------------------------------------------------------
-TText CAknFepUICtrlJapaneseKutenQueryDialog::ConvertKutenCode2Unicode()
-    {
-    TText code = 0;
-    if (iBuffer.Length() == KKutenCodeLength)
-        {
-        TBuf<4 + 1> buf;
-        TBool valid = ETrue;
-        buf.FillZ(4 + 1);
-
-        for (TInt i = 0; i < KKutenCodeLength; ++i)
-            {
-            if ((iBuffer[i] >= '0') && (iBuffer[i] <= '9'))
-                {
-                buf[i] = (TText)(iBuffer[i] - '0');
-                }
-            else
-                {
-                valid = EFalse;
-                break;
-                }
-            }
-        if (valid)
-            {
-            TInt hi_code = buf[0] * 10 + buf[1] + 0x20;
-            TInt low_code = buf[2] * 10 + buf[3] + 0x20;
-            code = (TText)((hi_code << 8) + low_code);
-            AdjustJisCode(code);
-            code = JisToSjis((TText)code);
-            if (AdjustSjisCode(code))
-                {
-                code = ConvSjisToUnicode(code);
-                }
-            else
-                {
-                code = 0;
-                }
-            }
-        }
-
-    // '0244" Kuten codes is converted to '0x00AC' unicode of half-width
-    // character. In Japanese variant, Kuten code input must be always
-    // Full-width character, so it converts from '0x00AC' to '0xFFE2'
-    if (code == KHalfWidthNotSign)
-        {
-        code = KFullWidthNotSign;
-        }
-
-    return code;
-    }
-
-void CAknFepUICtrlJapaneseKutenQueryDialog::AdjustJisCode(TText& aJisCode)
-    {
-    TUint JisHi = (aJisCode >> 8) & 0x000000ff;
-    TUint JisLow = aJisCode & 0x000000ff;
-
-    if ((JisHi < EJisFirstMin) || (JisHi > EJisFirstMax))
-        {
-        JisHi = 0;
-        JisLow = 0;
-        }
-    else
-        {
-        if ((JisLow < EJisSecondMin) || (JisLow > EJisSecondMax))
-            {
-            JisHi = 0;
-            JisLow = 0;
-            }
-        else
-            {
-            if (JisHi == EJisFirstMax)
-                {
-                if (JisLow > EJisLastSecondMax)
-                    {
-                    JisHi = 0;
-                    JisLow = 0;
-                    }
-                }
-            }
-        }
-
-    aJisCode = (TText)((JisHi << 8) + JisLow);
-    return;
-    }
-
-TBool CAknFepUICtrlJapaneseKutenQueryDialog::AdjustSjisCode(TText& aSjisCode)
-{
-    TUint SjisHi = (aSjisCode >> 8) & 0x000000ff;
-    TUint SjisLow = aSjisCode & 0x000000ff;
-
-    if ((SjisHi < ESjisFirstMin1) || (SjisHi > ESjisFirstMax2)
-        || ((SjisHi > ESjisFirstMax1) && (SjisHi < ESjisFirstMin2)))
-        {
-        SjisHi = 0;
-        SjisLow = 0;
-        }
-    else
-        {
-        if ((SjisLow < ESjisSecondMin1) || (SjisLow > ESjisSecondMax2)
-            || ((SjisLow > ESjisSecondMax1) && (SjisLow < ESjisSecondMin2)))
-            {
-            SjisHi = 0;
-            SjisLow = 0;
-            }
-        
-        /*
-        else
-            {
-            if (SjisHi == ESjisFirstMax2)
-                {
-                if (SjisLow > ESjisSecondMax2)
-                    {
-                    SjisHi = 0;
-                    SjisLow = 0;
-                    }
-                }
-            }
-        */
-        }
-
-    if (CheckSjisCode((TText)((SjisHi << 8) + SjisLow)))
-        {
-        aSjisCode = (TText)((SjisHi << 8) + SjisLow);
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TText CAknFepUICtrlJapaneseKutenQueryDialog::JisToSjis(TText aJisCode)
-    {
-    if (aJisCode == 0)
-        {
-        return 0;
-        }
-
-    TUint jis_hi = (aJisCode >> 8) & 0x000000ff;    /* hi byte */
-    TUint jis_lo = aJisCode & 0x000000ff;           /* low byte */
-
-    jis_lo += 0x1F;
-    if  ((jis_hi & 1) == 0)
-        {
-        jis_hi >>= 1;
-        jis_hi--;
-        jis_lo += 0x5E;
-        }
-    else
-        {
-        jis_hi >>= 1;
-        }
-    if  (jis_lo >= 0x7F)
-        {
-        jis_lo++;
-        }
-    jis_hi += (jis_hi > 0x2E) ? 0xB1 : 0x71;
-
-    return (TText)((jis_hi << 8) + jis_lo);
-    }
-
-TBool CAknFepUICtrlJapaneseKutenQueryDialog::CheckSjisCode(TText aSjisCode)
-    {
-    const TText8 first = (TText8)((aSjisCode >> 8) & 0x000000ff);
-    const TText8 second = (TText8)(aSjisCode & 0x000000ff);
-    if ((((first >= ESjisFirstMin1) && (first <= ESjisFirstMax1))
-         || ((first >= ESjisFirstMin2) && (first <= ESjisFirstMax2)))
-        && (((second >= ESjisSecondMin1) && (second <= ESjisSecondMax1))
-            || ((second >= ESjisSecondMin2) && (second <= ESjisSecondMax2))))
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TText CAknFepUICtrlJapaneseKutenQueryDialog::ConvSjisToUnicode(TText aSjisCode)
-    {
-    TText8  sjis[2];
-    TText   unicode = 0;
-    if (aSjisCode & 0xff00)
-        {
-        sjis[0] = (TText8)((aSjisCode & 0xff00) >> 8);
-        sjis[1] = (TText8)(aSjisCode & 0x00ff);
-        }
-    else
-        {
-        sjis[0] = (TText8)aSjisCode;
-        sjis[1] = '\0';
-        }
-
-    TPtrC8 foreign((TUint8*)&sjis[0], sizeof sjis);
-    TPtr16 unicode_des((TUint16*)&unicode, 1);
-    RFs fileServerSession;
-
-    if (fileServerSession.Connect() == 0)
-        {
-        CCnvCharacterSetConverter*  charconv = NULL;
-        TRAPD(error, charconv = CCnvCharacterSetConverter::NewL());
-        if (error == KErrNone)
-            {
-            TRAP(error, charconv->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, fileServerSession));
-            if (error == KErrNone)
-                {
-                TInt state = CCnvCharacterSetConverter::KStateDefault;
-                charconv->ConvertToUnicode(unicode_des, foreign, state);
-                }
-            delete charconv;
-            }
-        fileServerSession.Close();
-        }
-    if (unicode == (TText)KDummyUnicode)
-        {
-        unicode = 0;
-        }
-    return unicode;
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveCellListBoxData.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <AknsDrawUtils.h>
-#include <AknLayout.lag>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveCellListBoxData.h"
-
-#include <skinlayout.cdl.h>
-using namespace SkinLayout;
-
-// CONSTANTS
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveCellListBoxData::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapanesePredictiveCellListBoxData*
-    CAknFepUICtrlJapanesePredictiveCellListBoxData::NewL()
-    {
-    CAknFepUICtrlJapanesePredictiveCellListBoxData* self =
-        new(ELeave) CAknFepUICtrlJapanesePredictiveCellListBoxData;
-    self->ConstructLD();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveCellListBoxData::SetHighlightArea
-// Setting rang of x-point to highlight
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveCellListBoxData::SetHighlightArea(
-        TInt aHighlightStartXPos, TInt aHighlightEndXPos)
-    {
-    iHighlightStartXPos = aHighlightStartXPos;
-    iHighlightEndXPos   = aHighlightEndXPos;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveCellListBoxData::Draw
-// Drawing a item in listbox
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveCellListBoxData::Draw(
-        TListItemProperties aProperties,
-        CWindowGc& aGc,
-        const TDesC* aText,
-        const TRect& aRect,
-        TBool aHighlight,
-        const TColors& aColors) const
-    {
-    const TRect& aItemRect = aRect;
-
-    aHighlight = (iHighlightStartXPos != 0 || iHighlightEndXPos != 0);
-    TRect highlightItemRect = aRect;
-
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1(0,0);
-    TAknTextLineLayout highlighttextLineLayout =
-        AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1(1,0);
-    TAknWindowLineLayout laf =
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_4(aItemRect);
-    TAknLayoutText textlay;
-    textlay.LayoutText(aItemRect, textLineLayout);
-    TAknTextComponentLayout scal = AknLayoutScalable_Avkon::popup_fep_japan_predictive_window_t1(0);
-
-    highlightItemRect.iBr.iX = highlightItemRect.iTl.iX + iHighlightEndXPos;
-    highlightItemRect.iTl.iX = highlightItemRect.iTl.iX + iHighlightStartXPos;
-    DrawDefaultHighlight(aGc, highlightItemRect, aHighlight);
-
-    // Draw the actual items.
-    DrawFormatted(aProperties, aGc, aText, aItemRect, EFalse, aColors);
-
-    aGc.Reset();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveCellListBoxData::DrawDefaultHighlight
-// Highlighting a item
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveCellListBoxData::DrawDefaultHighlight(
-        CWindowGc& aGc,
-        const TRect& aItemRect,
-        TBool aHighlight) const
-    {
-    if (aHighlight)
-        {
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        TBool highlightDrawn = EFalse;
-        MAknsControlContext* cc = AknsDrawUtils::ControlContext(Control());
-        if (!cc)
-            {
-            cc = SkinBackgroundContext();
-            }
-
-        if (cc)
-            {
-            TAknWindowLineLayout layCorner = List_highlight_skin_placing__general__Line_2();
-            TAknLayoutRect topLeft;
-            topLeft.LayoutRect(
-                aItemRect,
-                ELayoutEmpty,
-                0, 0, ELayoutEmpty, ELayoutEmpty, layCorner.iW, layCorner.iH);
-
-            TAknLayoutRect bottomRight;
-            bottomRight.LayoutRect(
-                aItemRect,
-                ELayoutEmpty,
-                ELayoutEmpty, ELayoutEmpty, -layCorner.iW, 0, layCorner.iW, layCorner.iH);
-
-            TRect outerRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-            TRect innerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-            aGc.SetPenStyle(CGraphicsContext::ENullPen);
-
-            const TAknsItemID* skinHighlightFrameId = &KAknsIIDQsnFrList;
-            const TAknsItemID* skinHighlightFrameCenterId = &KAknsIIDQsnFrListCenter;
-            highlightDrawn =
-                AknsDrawUtils::DrawFrame(
-                    skin, aGc, outerRect, innerRect,
-                    *skinHighlightFrameId, *skinHighlightFrameCenterId);
-            }
-
-        if (!highlightDrawn)
-            {
-            TAknWindowLineLayout hl = AKN_LAYOUT_WINDOW_Predictive_candidate_selection_highlight_Line_1;
-            hl.iW = ELayoutEmpty;
-            hl.il += 1;
-            hl.it += 1;
-            hl.ir = -1;
-            TAknLayoutRect highlight;
-            highlight.LayoutRect(aItemRect, hl);
-            highlight.DrawRect(aGc);
-            }
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListBoxModel.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h"
-#include "AknFepUIAvkonCtrlJapanesePredictivePane.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-// -----------------------------------------------------------------------------
-// CPredictivePopupLineInfo::~CPredictivePopupLineInfo
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CPredictivePopupLineInfo::~CPredictivePopupLineInfo()
-    {
-    delete iLineText;
-    delete iElementsOnLine;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::SetLineInfoArray
-// Registering a array with candidate line information
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListBoxModel::SetLineInfoArray(
-        CPredictivePopupLineInfoArray* aLineInfoArray)
-    {
-    iLineInfoArray = aLineInfoArray;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::LineInfoArray
-// Returning a arrary with candidate line information
-// -----------------------------------------------------------------------------
-//
-CPredictivePopupLineInfoArray*
-    CAknFepUICtrlJapanesePredictiveListBoxModel::LineInfoArray() const
-    {
-    return iLineInfoArray;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::SearchItemIndexFromCandidateNo
-// This function searches a item index as key in a candidate number
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListBoxModel::SearchItemIndexFromCandidateNo(
-        TInt aCandidateNo) const
-    {
-    TInt lineNo = -1;
-    const TInt numberOfLine = iLineInfoArray->Count();
-    TInt i;
-    for (i = 0; i < numberOfLine && lineNo == -1; i++)
-        {
-        CPredictivePopupLineInfo* lineInfo = iLineInfoArray->At(i);
-        CPredictivePopupElementArray* elementArray =lineInfo->iElementsOnLine;
-
-        const TInt numberOfElement = elementArray->Count();
-        TInt j;
-        for (j = 0; j < numberOfElement; j++)
-            {
-            TPredictivePopupElement element = elementArray->At(j);
-            if (aCandidateNo == element.iCandidateNo)
-                {
-                lineNo = i;
-                break;
-                }
-            }
-        }
-    return lineNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::SearchElement
-// This function is that it checks whether the candidate is included in the line.
-// If including it, The displaying information is returned.
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepUICtrlJapanesePredictiveListBoxModel::SearchElement(
-        TInt aLineNo, TInt aCandidateNo, TPredictivePopupElement& aElement)
-    {
-    TBool foundFlag = EFalse;
-
-    CPredictivePopupLineInfo* lineInfo = iLineInfoArray->At(aLineNo);
-    CPredictivePopupElementArray* elementArray = lineInfo->iElementsOnLine;
-
-    const TInt numberOfElement = elementArray->Count();
-    TInt i;
-    for (i = 0; i < numberOfElement; i++)
-        {
-        TPredictivePopupElement element = elementArray->At(i);
-        if (aCandidateNo < element.iCandidateNo)
-            {
-            break;
-            }
-        else if (aCandidateNo == element.iCandidateNo)
-            {
-            aElement.iStartXPos   = element.iStartXPos;
-            aElement.iEndXPos     = element.iEndXPos;
-            aElement.iCandidateNo = element.iCandidateNo;
-            foundFlag = ETrue;
-            break;
-            }
-        }
-    return foundFlag;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::SetMaximumItems
-// Set total item numbers in listbox
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListBoxModel::SetMaximumItems(
-        TInt aMaximumItems)
-    {
-    iMaximumItems = aMaximumItems;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::MaximumItems
-// Return total item numbers
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListBoxModel::MaximumItems()
-    {
-    return iMaximumItems;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListBoxModel::SearchCandidateNoFromPosition
-// This function searches a CandidateNo from linenumber and Position
-// -----------------------------------------------------------------------------
-TInt CAknFepUICtrlJapanesePredictiveListBoxModel::SearchCandidateNoFromPosition(
-        TInt aLineNo, const TPoint& aPoint) const
-    {
-    TInt candidateNo = -1;
-    if ( 0 <= aLineNo && iLineInfoArray->Count() > aLineNo )
-        {
-        CPredictivePopupLineInfo* lineInfo = iLineInfoArray->At(aLineNo);
-        CPredictivePopupElementArray* elementArray = lineInfo->iElementsOnLine;
-        const TInt numberOfElement = elementArray->Count();
-        candidateNo = elementArray->At(numberOfElement - 1).iCandidateNo;
-        for (TInt ii = 0; ii < numberOfElement; ii++)
-            {
-            TPredictivePopupElement element = elementArray->At(ii);
-            //if (aPoint.iX /*- margin*/ <= element.iEndXPos)
-            if (aPoint.iX <= element.iEndXPos)
-                {
-                candidateNo = element.iCandidateNo;
-                break;
-                }
-            }
-        }
-    return candidateNo;
-    }
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListbox.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,448 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <AknLayout.lag>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <AknFontId.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListboxView.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListboxItemDrawer.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveCellListBoxData.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListbox.h"
-#include "AknFepUIAvkonCtrlJapanesePredictivePane.h"
-
-// CONSTANTS
-const TInt KListboxMarge = 4;
-const TInt KScrollRightMarge = 5;
-const TInt KListBoxVisibleRow = 3;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListbox::ConstructL(
-        const CCoeControl* aParent,
-        TInt aFlags)
-    {
-    CAknFilteredTextListBoxModel* model =
-            new(ELeave) CAknFepUICtrlJapanesePredictiveListBoxModel;
-    iModel=model;
-    model->ConstructL();
-    CreateItemDrawerL();
-
-    EnableExtendedDrawingL();
-
-    iItemDrawer->SetDrawMark(EFalse);
-    CEikListBox::ConstructL(aParent,aFlags);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::SetCurrentCandidateNo
-// Selecting a candidate number appointed with an argument
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListbox::SetCurrentCandidateNo(
-        TInt aCandidateNo, TBool aDraw)
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-    TInt itemIndex = view->SetCurrentCandidateNo(aCandidateNo);
-
-    if (aDraw)
-        {
-        SetCurrentItemIndexAndDraw(itemIndex);
-        }
-    else
-        {
-        SetCurrentItemIndex(itemIndex);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::CurrentCandidateNo
-// Returning a selected number
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListbox::CurrentCandidateNo()
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-    return view->CurrentCandidateNo();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::MovePreviousItem
-// selecting a previous candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListbox::MovePreviousItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-
-    TInt candidateNo = view->PreviousItem();
-    SetCurrentCandidateNo(candidateNo, ETrue);
-
-    return candidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::MoveNextItem
-// selecting a next candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListbox::MoveNextItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-
-    TInt candidateNo = view->NextItem();
-    SetCurrentCandidateNo(candidateNo, ETrue);
-
-    return candidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::MovePreviousLineItem
-// selecting a previous line candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListbox::MovePreviousLineItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-    TInt candidateNo = view->PreviousLineItem();
-    SetCurrentCandidateNo(candidateNo, ETrue);
-
-    return candidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::MoveNextLineItem
-// selecting a next line candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListbox::MoveNextLineItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-    TInt candidateNo = view->NextLineItem();
-    SetCurrentCandidateNo(candidateNo, ETrue);
-
-    return candidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::SizeChanged
-// This function is called in case changing size
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListbox::SizeChanged()
-    {
-    CEikFormattedCellListBox& listBox = *this;
-    CFormattedCellListBoxItemDrawer* itemDrawer = listBox.ItemDrawer();
-
-    TAknWindowLineLayout textWindowLayout =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(0,0);
-    // setting textbox size in listbox
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1(0,0);
-
-    TAknTextComponentLayout scal = AknLayoutScalable_Avkon::popup_fep_japan_predictive_window_t1(0);
-    TAknWindowLineLayout scrollLineLayout = AknLayoutScalable_Avkon::scroll_pane_cp29().LayoutLine();
-
-    TAknLayoutText text;
-    text.LayoutText(textWindowLayout.Rect(), textLineLayout);
-    textWindowLayout.iW = text.TextRect().Width();
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(Model());
-    TInt maxRows = model->LineInfoArray()->Count();
-    TInt maxVisibleRows = Min(KJapPredictiveVisibleListRowsMax, maxRows);
-    maxVisibleRows = Max(KJapPredictiveVisibleListRowsMin, maxVisibleRows);
-    textWindowLayout.iH = listBox.Size().iHeight / maxVisibleRows;
-
-    AknListBoxLayouts::SetupStandardListBox(listBox);
-    AknListBoxLayouts::SetupStandardFormListbox(itemDrawer);
-    AknListBoxLayouts::SetupListboxPos(listBox, textWindowLayout);
-    {
-    TRgb color( KRgbBlack );
-    // this does not modify color unless it gets a correct one
-    // no real need to check errors
-    AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
-                              color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 );
-    itemDrawer->SetHighlightedTextColor( color );
-    AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
-                               color, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG7 );
-    iItemDrawer->SetTextColor( color );
-    }
-
-    textLineLayout.il -= KListboxMarge;
-    textLineLayout.ir = 0;
-    // Baseline must be set to textLineLayout.iB.
-    const CFont* font = AknLayoutUtils::FontFromId(textLineLayout.iFont);
-    TInt baseLineOffset = (textWindowLayout.iH - font->HeightInPixels())/2 + font->AscentInPixels();
-
-    if( TAknFontId::IsEncodedFont(textLineLayout.FontId()) )
-        {
-        textLineLayout.iB = textWindowLayout.iH - font->DescentInPixels() -1 - baseLineOffset;
-        }
-    else
-        {
-        textLineLayout.iB = baseLineOffset;
-        }
-    TSize itemSize = View()->ItemSize();
-
-    AknListBoxLayouts::SetupFormAntiFlickerTextCell(listBox, itemDrawer, 0,
-                            textLineLayout,
-                            TPoint(0, 0),
-                            TPoint(itemSize.iWidth, itemSize.iHeight));
-
-    CEikFormattedCellListBox::SizeChanged();
-
-    // Scroll bar
-    scrollLineLayout.il = ELayoutEmpty;
-    scrollLineLayout.ir = KScrollRightMarge;
-    scrollLineLayout.it = 0;
-    scrollLineLayout.ib = 0;
-    if (maxRows <= KJapPredictiveVisibleListRowsMax)
-        {
-        scrollLineLayout.iW = 0;
-        }
-    TAknWindowLineLayout laf =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(0,0);
-    TRect scrollBarParent = TRect(TPoint(0, listBox.Rect().iTl.iY),
-                                  TPoint(laf.iW, listBox.Rect().iBr.iY));
-    AknLayoutUtils::LayoutVerticalScrollBar(iSBFrame, scrollBarParent, scrollLineLayout);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::MakeViewClassInstanceL
-// Creating a view
-// -----------------------------------------------------------------------------
-//
-CListBoxView* CAknFepUICtrlJapanesePredictiveListbox::MakeViewClassInstanceL()
-    {
-    return new(ELeave) CAknFepUICtrlJapanesePredictiveListboxView;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::CreateItemDrawerL
-// Creating a ItemDrawer
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListbox::CreateItemDrawerL()
-    {
-    CAknFepUICtrlJapanesePredictiveCellListBoxData*
-        cellData = CAknFepUICtrlJapanesePredictiveCellListBoxData::NewL();
-    CleanupStack::PushL(cellData);
-
-    // getting font object
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1(
-            0, 0);
-    const CFont* font = AknLayoutUtils::FontFromId(textLineLayout.iFont);
-
-    iItemDrawer =
-        new(ELeave) CAknFepUICtrlJapanesePredictiveListboxItemDrawer(
-                        Model(), font, cellData);
-
-    CleanupStack::Pop(cellData);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::UpdateCurrentItem
-// Update the current index
-// Notes: The argument of aItemIndex means the current line. (not current candidate index)
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListbox::UpdateCurrentItem(TInt aItemIndex) const
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(Model());
-    CAknFepUICtrlJapanesePredictiveListboxView* view =
-        static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-
-    TPredictivePopupElement element;
-    TInt curCandi = view->CurrentCandidateNo();
-    TInt oldCandi = view->OldCandidateNo();
-    TInt maxLine = model->LineInfoArray()->Count();
-
-    TInt oldCurrentItemIndex = view->CurrentItemIndex();
-    if (oldCurrentItemIndex != aItemIndex)
-        {
-        // Set the current line
-        view->SetCurrentItemIndex(aItemIndex);
-
-        if ( IsReadyToDraw() )
-            {
-            // Draw the old line
-            view->DrawItem(oldCurrentItemIndex);
-            }
-
-        if (oldCurrentItemIndex+1 < maxLine
-         && oldCurrentItemIndex+1 != aItemIndex)
-            {
-            if (model->SearchElement(oldCurrentItemIndex+1,
-                                     oldCandi, element))
-                {
-                view->DrawItem(oldCurrentItemIndex+1);
-                }
-            }
-        // Set the top position
-        if (!(view->ItemIsVisible(aItemIndex)))
-            {
-            SetTopItemIndex(view->CalcNewTopItemIndexSoItemIsVisible(aItemIndex));
-            DrawNow();
-            }
-        }
-    // Draw the current line
-    DrawItem(aItemIndex);
-    // Check next line including the same candidate
-    TInt nextLine = aItemIndex+1;
-    if (nextLine < maxLine
-     && model->SearchElement(nextLine, curCandi, element))
-        {
-        if (!(view->ItemIsVisible(nextLine)))
-            {
-            SetTopItemIndex(view->CalcNewTopItemIndexSoItemIsVisible(nextLine));
-            DrawNow();
-            }
-        DrawItem(nextLine);
-        }
-    UpdateScrollBarThumbs();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::HandlePointerEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-void CAknFepUICtrlJapanesePredictiveListbox::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    const TInt old = CurrentItemIndex();
-    CAknSinglePopupMenuStyleListBox::HandlePointerEventL(aPointerEvent);
-    switch (aPointerEvent.iType)
-        {
-        case TPointerEvent::EButton1Up:
-            break;
-        case TPointerEvent::EButton1Down:
-            {
-            CAknFepUICtrlJapanesePredictiveListboxView* view =
-                static_cast<CAknFepUICtrlJapanesePredictiveListboxView*>(View());
-            TInt oldCandidateNo = view->CurrentCandidateNo();
-            TPoint pos = aPointerEvent.iPosition - Rect().iTl;
-            TInt itemIndex = view->SetCurrentCandidateNo(CurrentItemIndex(), pos);
-            SetCurrentItemIndex(itemIndex);
-            TInt newCandidateNo = view->CurrentCandidateNo();
-
-            if (oldCandidateNo != newCandidateNo)
-                {
-                ReportListBoxEventL(MEikListBoxObserver::EEventItemDraggingActioned);// need draw.
-                }
-            }
-            break;
-        default:
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListbox::HandleScrollEventL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-void CAknFepUICtrlJapanesePredictiveListbox::HandleScrollEventL(
-                                                    CEikScrollBar* aScrollBar,
-                                                    TEikScrollEvent aEventType)
-    {
-    TInt oldThumbPos = (aEventType & KEikScrollEventBarMask) ?
-                                iView->HScrollOffset() : iView->TopItemIndex();
-    TInt newThumbPos = aScrollBar->ThumbPosition();
-    TInt maxThumbPos = static_cast<CTextListBoxModel*>(Model())->NumberOfItems()
-                                - KListBoxVisibleRow;
-    TBool update = ETrue;
-    TInt newThumbPosBeforeCorrecting = newThumbPos;
-
-    if ((aEventType & KEikScrollEventBarMask) == KEikScrollEventFromVBar)
-        {
-        switch (aEventType)
-            {
-            case EEikScrollUp:
-                if ( oldThumbPos == 0  && (iListBoxFlags & ELoopScrolling))
-                    {
-                    newThumbPos = maxThumbPos;
-                    }
-                break;
-            case EEikScrollDown:
-                if ( oldThumbPos == maxThumbPos && (iListBoxFlags & ELoopScrolling) )
-                    {
-                    newThumbPos = 0;
-                    }
-                break;
-            case EEikScrollPageUp:
-            case EEikScrollPageDown:
-            case EEikScrollThumbDragVert:
-                break;
-            case EEikScrollThumbReleaseVert:
-                // in the case of drag events, the scrollbar automatically updates its thumb pos...
-                if(AknLayoutUtils::PenEnabled())
-                    {
-                    update = EFalse;
-                    }
-                break;
-
-            default:
-                break;
-            }
-        if ( (!AknLayoutUtils::PenEnabled()) || update )
-            {
-            iView->VScrollTo(newThumbPos);
-            if (aEventType != EEikScrollThumbDragVert)
-                {
-                aScrollBar->SetModelThumbPosition(iView->TopItemIndex());
-                }
-            }
-
-        // if event has changed thumb position, then update scroll bar
-        if ( AknLayoutUtils::PenEnabled() && newThumbPos != newThumbPosBeforeCorrecting )
-            {
-            UpdateScrollBarThumbs();
-            }
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListboxItemDrawer.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveCellListBoxData.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListboxItemDrawer.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxItemDrawer::
-//                              CAknFepUICtrlJapanesePredictiveListboxItemDrawer
-// Constractor
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapanesePredictiveListboxItemDrawer::CAknFepUICtrlJapanesePredictiveListboxItemDrawer(
-        MTextListBoxModel* aTextListBoxModel,
-        const CFont* aFont,
-        CFormattedCellListBoxData* aFormattedCellData)
-            : CFormattedCellListBoxItemDrawer(aTextListBoxModel,
-                                              aFont,
-                                              aFormattedCellData)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxItemDrawer::DrawItem
-// Drawing a item
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListboxItemDrawer::DrawItem(
-        TInt aItemIndex,
-        TPoint aItemRectPos,
-        TBool aItemIsSelected,
-        TBool aItemIsCurrent,
-        TBool aViewIsEmphasized,
-        TBool aViewIsDimmed,
-        TInt aHighlightStartXPos,
-        TInt aHighlightEndXPos) const
-    {
-    TRect actualItemRect(aItemRectPos, iItemCellSize);
-
-    CAknFepUICtrlJapanesePredictiveCellListBoxData* data =
-        static_cast<CAknFepUICtrlJapanesePredictiveCellListBoxData*>(iData);
-    data->SetHighlightArea(aHighlightStartXPos, aHighlightEndXPos);
-
-    DrawActualItem(
-        aItemIndex,
-        actualItemRect, 
-        aItemIsCurrent, aViewIsEmphasized, aViewIsDimmed, aItemIsSelected);
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictiveListboxView.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListBoxModel.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListboxItemDrawer.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListboxView.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::CurrentCandidateNo
-// Return the selected candidate number currently
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::CurrentCandidateNo() const
-    {
-    return iCurrentCandidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::SetCurrentCandidateNo
-// Set current candidate number
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::SetCurrentCandidateNo(
-        TInt aCandidateNo)
-    {
-    iOldCandidateNo = iCurrentCandidateNo;
-    iCurrentCandidateNo = aCandidateNo;
-
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-
-    const TInt itemIndex = model->SearchItemIndexFromCandidateNo(aCandidateNo);
-
-    return itemIndex;
-    }
-
-// -----------------------------------------------------------------------------
-// CPeninputJapanesePredictiveListBoxView::SetCurrentCandidateNo
-// Set current candidate number
-// -----------------------------------------------------------------------------
-TInt CAknFepUICtrlJapanesePredictiveListboxView::SetCurrentCandidateNo(
-        TInt aLineNo, const TPoint& aPoint)
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-
-    iCurrentCandidateNo = model->SearchCandidateNoFromPosition(aLineNo, aPoint);
-
-    return aLineNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::PreviousItem
-// Return previous candidate number
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::PreviousItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-    const TInt maximumItems = model->MaximumItems();
-
-    TInt itemindex = iCurrentCandidateNo - 1;
-    if (itemindex < 0)
-        {
-        itemindex = maximumItems - 1;
-        }
-
-    return itemindex;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::NextItem
-// Return next candidate number
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::NextItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-    const TInt maximumItems = model->MaximumItems();
-
-    TInt itemindex = iCurrentCandidateNo +1;
-    if (itemindex >= maximumItems)
-        {
-        itemindex = 0;
-        }
-
-    return itemindex;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::PreviousLineItem
-// Return candidate number of previous line
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::PreviousLineItem()
-    {
-    TInt currentItemIndex = CurrentItemIndex();
-    TPredictivePopupElement currentElement;
-
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-    CPredictivePopupLineInfoArray* lineInfoArray = model->LineInfoArray();
-    const TInt lineInfoArrayCount = lineInfoArray->Count();
-
-    TInt previousItemIndex = currentItemIndex;
-    TInt previousCandidateNo = -1;
-
-    if (model->SearchElement(
-            currentItemIndex, iCurrentCandidateNo, currentElement))
-        {
-        do
-            {
-            previousItemIndex--;
-            if (previousItemIndex < 0)
-                {
-                previousItemIndex = lineInfoArrayCount - 1;
-                }
-
-            if (previousItemIndex == currentItemIndex)
-                {
-                break;      // in case one loop
-                }
-
-            CPredictivePopupLineInfo* lineInfo =
-                lineInfoArray->At(previousItemIndex);
-
-            CPredictivePopupElementArray* elementArray =
-                lineInfo->iElementsOnLine;
-
-            const TInt numberOfElement = elementArray->Count();
-            TInt lastCandidateNo = -1;
-            TInt i;
-            for (i = 0; i < numberOfElement; i++)
-                {
-                TPredictivePopupElement element = elementArray->At(i);
-                if (currentElement.iStartXPos >= element.iStartXPos
-                 && currentElement.iStartXPos < element.iEndXPos)
-                    {
-                    previousCandidateNo = element.iCandidateNo;
-                    break;
-                    }
-                else if (currentElement.iStartXPos < element.iStartXPos)
-                    {
-                    previousCandidateNo = element.iCandidateNo;
-                    break;
-                    }
-
-                lastCandidateNo = element.iCandidateNo;
-                }
-
-            if (previousCandidateNo == -1)
-                {
-                previousCandidateNo = lastCandidateNo;
-                }
-            }
-        while (previousCandidateNo == iCurrentCandidateNo);
-        }
-
-    if (previousCandidateNo == -1)
-        {
-        previousCandidateNo = iCurrentCandidateNo;
-        }
-
-    return previousCandidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::NextLineItem
-// Return candidate number of next line
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::NextLineItem()
-    {
-    TInt currentItemIndex = CurrentItemIndex();
-    TPredictivePopupElement currentElement;
-
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-
-    CPredictivePopupLineInfoArray* lineInfoArray = model->LineInfoArray();
-    TInt nextCandidateNo = -1;
-
-    if (lineInfoArray)
-        {
-        const TInt lineInfoArrayCount = lineInfoArray->Count();
-
-        TInt nextItemIndex = currentItemIndex;
-
-        if (model->SearchElement(
-                    currentItemIndex, iCurrentCandidateNo, currentElement))
-            {
-            do
-                {
-                nextItemIndex++;
-                if (nextItemIndex >= lineInfoArrayCount)
-                    {
-                    nextItemIndex = 0;
-                    }
-
-                if (nextItemIndex == currentItemIndex)
-                    {
-                    break;      // in case one loop
-                    }
-
-                CPredictivePopupLineInfo* lineInfo =
-                    lineInfoArray->At(nextItemIndex);
-
-                CPredictivePopupElementArray* elementArray =
-                    lineInfo->iElementsOnLine;
-
-                const TInt numberOfElement = elementArray->Count();
-                TInt lastCandidateNo = -1;
-                TInt i;
-                for (i = 0; i < numberOfElement; i++)
-                    {
-                    TPredictivePopupElement element = elementArray->At(i);
-                    if (currentElement.iStartXPos >= element.iStartXPos
-                     && currentElement.iStartXPos < element.iEndXPos)
-                        {
-                        nextCandidateNo = element.iCandidateNo;
-                        break;
-                        }
-                    else if (currentElement.iStartXPos < element.iStartXPos)
-                        {
-                        nextCandidateNo = element.iCandidateNo;
-                        break;
-                        }
-
-                    lastCandidateNo = element.iCandidateNo;
-                    }
-
-                if (nextCandidateNo == -1)
-                    {
-                    nextCandidateNo = lastCandidateNo;
-                    }
-                }
-            while (nextCandidateNo == iCurrentCandidateNo);
-            }
-        }
-    if (nextCandidateNo == -1)
-        {
-        nextCandidateNo = iCurrentCandidateNo;
-        }
-    return nextCandidateNo;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::DrawItem
-// Drawing item
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictiveListboxView::DrawItem(TInt aItemIndex) const
-    {
-    if (RedrawDisabled() || !IsVisible())
-        return;
-
-    if (((aItemIndex > -1) && (aItemIndex < iModel->NumberOfItems()))
-        && ItemIsVisible(aItemIndex))
-        {
-        TInt highlightStartXPos = 0;
-        TInt highlightEndXPos = 0;
-
-        TPredictivePopupElement currentElement;
-        CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-            static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(iModel);
-
-        if (model->SearchElement(aItemIndex,
-                                 iCurrentCandidateNo, currentElement))
-            {
-            highlightStartXPos = currentElement.iStartXPos;
-            highlightEndXPos   = currentElement.iEndXPos;
-            }
-
-        CAknFepUICtrlJapanesePredictiveListboxItemDrawer* itemDrawer =
-            static_cast<CAknFepUICtrlJapanesePredictiveListboxItemDrawer*>(iItemDrawer);
-
-        itemDrawer->DrawItem(
-            aItemIndex,
-            ItemPos(aItemIndex),
-            ItemIsSelected(aItemIndex),
-            (aItemIndex == iCurrentItemIndex),
-            (iFlags & EEmphasized) > 0, (iFlags & EDimmed) > 0,
-            highlightStartXPos, highlightEndXPos);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictiveListboxView::OldCandidateNo
-// Return the selected candidate number previously
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictiveListboxView::OldCandidateNo() const
-    {
-    return iOldCandidateNo;
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlJapanesePredictivePane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1089 +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:            Predictive candidate list
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikdef.h>
-#include <aknViewAppUi.h>
-#include <avkon.hrh>
-#include <aknPopup.h>
-#include <aknlists.h>
-#include <aknPopupHeadingPane.h>
-#include <AknsDrawUtils.h>
-#include <AknsBasicBackgroundControlContext.h>
-#include <aknfep.rsg>
-#include <barsread.h>
-#include <eikmop.h>
-#include <AknLayout.lag>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepUIAvkonCtrlJapanesePredictiveListbox.h"
-#include "AknFepUIAvkonCtrlJapanesePredictivePane.h"
-#include "AknFepUIManagerJapanese.h"
-
-// CONSTANTS
-const TInt KMaxListColumns = 30;
-const TInt KLAFBaseListRows = 1;
-const TInt KLAFBelowTextBaseline = 2;
-const TInt KLAFAboveTextBaseline = 1;
-const TInt KSpaceCharCode = ' ';
-const TInt KListboxFlameMarge = 4;
-const TInt KScrollRightMarge = 5;
-const TInt KListboxMarge = 3;
-
-/**
-*  CAknFepUICtrlJapanesePredictivePane class.
-*
-*/
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapanesePredictivePane* CAknFepUICtrlJapanesePredictivePane::NewL(CAknFepUIManagerJapanese* aUiMng)
-    {
-    CAknFepUICtrlJapanesePredictivePane* self =
-        new(ELeave)CAknFepUICtrlJapanesePredictivePane(aUiMng);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);    // self
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::~CAknFepUICtrlJapanesePredictivePane
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapanesePredictivePane::~CAknFepUICtrlJapanesePredictivePane()
-    {
-    if (IsVisible())
-        {
-        HideWindow();
-        }
-
-    if (iListBox)
-        {
-        delete iListBox;
-        iListBox = NULL;
-        }
-
-    if (iLineInfoArray)
-        {
-        iLineInfoArray->ResetAndDestroy();
-        delete iLineInfoArray;
-        iLineInfoArray = NULL;
-        }
-
-    if (iListTextArray)
-        {
-        delete iListTextArray;
-        iListTextArray = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::ShowWindow
-// Show Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::ShowWindow()
-    {
-    RWindow& window=Window();
-    //Set ordinal position to top
-    window.SetOrdinalPosition(0,ECoeWinPriorityFep);
-    window.SetFaded(EFalse, RWindowTreeNode::EFadeIncludeChildren);
-    window.SetPointerCapture(ETrue);
-    TRAP_IGNORE( ActivateL());
-    MakeVisible(ETrue);
-    DrawNow();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::ClosePredictiveList
-// Close Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::ClosePredictiveList()
-    {
-    CancelPopup();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::SetCurrentItemIndex
-// Specify the cursor position of a pop-up list.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::SetCurrentItemIndex(TInt aItemIndex)
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(ListBox()->Model());
-    const TInt maximumItems = model->MaximumItems();
-
-    if (aItemIndex > maximumItems)
-        {
-        aItemIndex = maximumItems;
-        }
-
-    CAknFepUICtrlJapanesePredictiveListbox* listBox =
-        static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-
-    listBox->SetCurrentCandidateNo(aItemIndex, EFalse);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::SetOffsetPosition
-// Specify the display position of a pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::SetOffsetPosition(TPoint aOffset)
-    {
-    iOffsetPosition = aOffset;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::SetWindowPosition
-// Set position to show candidate list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::SetWindowPosition(
-                                                const TPoint& aLeftSideOfBaseLine,
-                                                TInt aHeight,
-                                                TInt aAscent)
-    {
-    // getting rectangle of main pane
-    TRect screen =
-        TRect(0, 0, AKN_LAYOUT_WINDOW_screen.iW, AKN_LAYOUT_WINDOW_screen.iH);
-    TAknLayoutRect main_pane;
-    main_pane.LayoutRect(screen, AKN_LAYOUT_WINDOW_main_pane(screen, 0, 1, 1));
-    iMainPaneRect = main_pane.Rect();
-
-    TInt leftPos = aLeftSideOfBaseLine.iX;
-    if (leftPos < 0)
-        {
-        leftPos = iOffsetPosition.iX;
-        }
-
-    TPoint windowOffset(
-        leftPos,
-        aLeftSideOfBaseLine.iY + aHeight - aAscent - iMainPaneRect.iTl.iY);
-    SetOffsetPosition(windowOffset);
-
-    iSrcTextHeight = aHeight;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::ShowCandidateListL
-// Show Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::ShowCandidateListL(
-        CDesCArrayFlat* aItems, TInt aIndex, TInt aResourceID)
-    {
-    __ASSERT_DEBUG(aItems->Count() > 0,
-                   AknFepUiInterfacePanic(EAknFepUiInterfacePanicCandidatesEmpty));
-
-    if (iLineInfoArray)
-        {
-        iLineInfoArray->ResetAndDestroy();
-        }
-    delete iLineInfoArray;
-    delete iListTextArray;
-    iLineInfoArray = NULL;
-    iListTextArray = NULL;
-    // getting listbox width by a pixel unit
-    TAknWindowLineLayout laf =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(0, 0);
-    TAknTextLineLayout textLineLayout =
-        AKN_LAYOUT_TEXT_Predictive_candidate_selection_list_texts_Line_1(0,0);
-    TAknWindowLineLayout scrollLineLayout = AknLayoutScalable_Avkon::scroll_pane_cp29().LayoutLine();
-    TAknLayoutText text;
-    text.LayoutText(laf.Rect(), textLineLayout);
-    TInt allowDrawWidth = text.TextRect().Width() - scrollLineLayout.iW;
-
-    iLineInfoArray = CreatePredictivePopupLineInfoArrayL(
-        aItems, allowDrawWidth, textLineLayout.iFont);
-    iListTextArray = CreateListTextArrayL(iLineInfoArray);
-
-    // Set listitems.
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(ListBox()->Model());
-    model->SetMaximumItems(aItems->Count());
-    model->SetLineInfoArray(iLineInfoArray);
-    model->SetItemTextArray(iListTextArray);
-    model->SetOwnershipType(ELbmDoesNotOwnItemArray);
-
-    iMaximumRows = MaximumRows(model);
-
-    SetCurrentItemIndex(aIndex);
-    SetMaximumHeight(iMaximumRows);
-
-    // Show popup list
-    TBool notShowingPopup =
-        model->NumberOfItems() == 0 && iWindowType < 0x80;
-    if (notShowingPopup)
-        {
-        const TSize screenSize=iCoeEnv->ScreenDevice()->SizeInPixels();
-        iPopoutCba->SetBoundingRect(TRect(screenSize));
-        }
-
-    // Create a CBA for use with the popup
-    if (aResourceID)
-        {
-        UpdateCbaL(aResourceID);
-        }
-
-    SetupWindowLayout(iWindowType);
-
-    iListBox->SetListBoxObserver(this);
-
-    if (iMarkable)
-        {
-        // If markable, set the popup to observe event change events.
-        // Call HandleControlEvent to set the CBA appropriate to the 1st item
-        iListBox->SetObserver(this);
-        HandleControlEventL(iListBox, EEventStateChanged);
-        }
-
-    if (IsVisible())
-        {
-        DrawDeferred();
-        }
-    else
-        {
-        ShowWindow();
-        ActivateL();
-        ShowWindowCbaL();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::HideWindow
-// Hide Pop-up list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::HideWindow()
-    {
-    MakeVisible(EFalse);
-    Window().SetPointerCapture(EFalse);
-
-    iEikonEnv->RemoveFromStack(iPopoutCba);
-
-    iPopoutCba->MakeVisible(EFalse);
-
-    iCurrentResource = 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CurrentItemIndexOfCandidate
-// Return a selected candidate item number currently
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::CurrentItemIndexOfCandidate()
-    {
-    if (IsVisible())
-        {
-        CAknFepUICtrlJapanesePredictiveListbox* listBox =
-            static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-        return listBox->CurrentCandidateNo();
-        }
-    return -1;      // Disable window
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MoveItem
-// Move a current item in an appointed direction
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MoveItem(
-        TAknFepUICtrlScroll aDirection)
-    {
-    __ASSERT_DEBUG(iListBox->IsVisible(),
-                   AknFepUiInterfacePanic(EAknFepUiInterfacePanicNoCandidatePane));
-
-    TInt ret = 0;
-
-    switch(aDirection)
-        {
-        case EScrollLeft:
-            ret = MovePreviousItem();
-            break;
-
-        case EScrollRight:
-            ret = MoveNextItem();
-            break;
-
-        case EScrollUp:
-            ret = MovePreviousLineItem();
-            break;
-
-        case EScrollDown:
-            ret = MoveNextLineItem();
-            break;
-
-        default:
-        //Panic
-            AknFepUiInterfacePanic(EAknFepUiInterfacePanicCandidatePaneNotSupportScrollDirection);
-            break;
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::SetupWindowLayout
-// Set up a window layout type
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::SetupWindowLayout(
-        AknPopupLayouts::TAknPopupLayouts /*aType*/)
-    {
-    HandleSizeChanged(Layout(), NULL, ListBox(), this);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::AttemptExitL
-// Set the title for the selection list
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::AttemptExitL(TBool aAccept)
-    {
-    if (iReturn) //Always not null unless ExecuteLD leaves
-        *iReturn = aAccept;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MopSupplyObject
-// -----------------------------------------------------------------------------
-//
-TTypeUid::Ptr CAknFepUICtrlJapanesePredictivePane::MopSupplyObject(TTypeUid aId)
-    {
-    SetMopParent( iEikonEnv->EikAppUi() );
-    return CAknPopupList::MopSupplyObject(aId);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CAknFepUICtrlJapanesePredictivePane
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CAknFepUICtrlJapanesePredictivePane::CAknFepUICtrlJapanesePredictivePane(CAknFepUIManagerJapanese* aUiMng)
-    : iUiMng(aUiMng)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::ConstructL()
-    {
-    // Create listbox
-    CAknFepUICtrlJapanesePredictiveListbox* list =
-                new(ELeave) CAknFepUICtrlJapanesePredictiveListbox;
-    // "iListBox" member variable is defined in CAknPopupList class.
-    iListBox = list;
-    CAknPopupList::ConstructL(
-        list, R_AKNFEP_SOFTKEYS_CONVERT_OTHER_SELECT, AknPopupLayouts::EMenuWindow);
-
-    list->ConstructL(this, CEikListBox::ELeftDownInViewRect);
-    list->CreateScrollBarFrameL(ETrue);
-    list->ScrollBarFrame()->SetScrollBarVisibilityL(
-                                CEikScrollBarFrame::EOff,
-                                CEikScrollBarFrame::EAuto);
-
-    SetNonFocusing();
-    MakeVisible(EFalse);
-    iLineInfoArray = NULL;
-    iListTextArray = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CreatePredictivePopupLineInfoArrayL
-// Create a array with line information in candidate list
-// -----------------------------------------------------------------------------
-CPredictivePopupLineInfoArray*
-CAknFepUICtrlJapanesePredictivePane::CreatePredictivePopupLineInfoArrayL(
-        CDesCArrayFlat* aItems,
-        const TInt aMaxDisplayWidthInPixel,
-        const TInt aFontId)
-    {
-    CPredictivePopupLineInfoArray* lineArray =
-        new(ELeave) CPredictivePopupLineInfoArray(1);
-    CleanupStack::PushL(lineArray);
-
-    // getting font object from font id
-    const CFont* font = AknLayoutUtils::FontFromId(aFontId);
-
-    TInt displayWidthInPixel = aMaxDisplayWidthInPixel;
-    TInt elementStartXPos = 0;
-
-    TBuf<KMaxListColumns*2> bufferOfLine;
-    CPredictivePopupElementArray* elementArray = NULL;
-
-    const TInt widthOfSpaceInPixel = font->CharWidthInPixels(KSpaceCharCode);
-    const TInt numberOfItem = aItems->Count();
-    TInt i;
-    for (i = 0; i < numberOfItem; i++)
-        {
-        TPtrC itemText = aItems->MdcaPoint(i);
-        TInt itemTextLength = itemText.Length();
-
-        // getting a number of characters within width
-        TInt count = font->TextCount(itemText, displayWidthInPixel);
-
-        // If a candidate cannot occupy a line, it is
-        // continued in next line
-        if (count < itemTextLength && elementArray)
-            {
-            PredictivePopupAppendLineL(lineArray, bufferOfLine, elementArray);
-            CleanupStack::Pop(elementArray);    // elementArray
-            elementArray = NULL;
-            bufferOfLine.SetLength(0);
-
-            displayWidthInPixel = aMaxDisplayWidthInPixel;
-            elementStartXPos = 0;
-            count = font->TextCount(itemText, displayWidthInPixel);
-            }
-
-        FOREVER
-            {
-            if (!elementArray)
-                {
-                elementArray = new(ELeave) CPredictivePopupElementArray(1);
-                CleanupStack::PushL(elementArray);
-                }
-
-            TPtrC elementText = itemText.Left(count);
-            TInt  elementWidthInPixels = font->TextWidthInPixels(elementText);
-
-            // setting a item string to line string
-            bufferOfLine.Append(elementText);
-            displayWidthInPixel -= elementWidthInPixels;
-
-            TPredictivePopupElement& element = elementArray->ExtendL();
-            element.iStartXPos = elementStartXPos;
-            elementStartXPos += elementWidthInPixels;
-            element.iEndXPos   = elementStartXPos;
-            element.iCandidateNo = i;
-
-            // creating a string which removes a item string
-            itemTextLength -= count;
-            if (itemTextLength > 0)
-                {
-                // If this line is full, add this line and create a new line.
-                PredictivePopupAppendLineL(lineArray, bufferOfLine, elementArray);
-                CleanupStack::Pop(elementArray);    // elementArray
-                elementArray = NULL;
-                bufferOfLine.SetLength(0);
-
-                itemText.Set(itemText.Right(itemTextLength));
-                displayWidthInPixel = aMaxDisplayWidthInPixel;
-                elementStartXPos = 0;
-
-                // Calculating a number of characters which be able to shown in the width and
-                // cutting the string
-                count = font->TextCount(itemText, displayWidthInPixel);
-                }
-            else
-                {
-                break;
-                }
-            }
-
-        if (displayWidthInPixel > widthOfSpaceInPixel)
-            {
-            // adding space if it is possible to add space
-            bufferOfLine.Append(KSpaceCharCode);
-            displayWidthInPixel -= widthOfSpaceInPixel;
-            elementStartXPos    += widthOfSpaceInPixel;
-            }
-        else
-            {
-            // adding a line information if it isn't possible to add space
-            PredictivePopupAppendLineL(lineArray, bufferOfLine, elementArray);
-            CleanupStack::Pop(elementArray);    // elementArray
-            elementArray = NULL;
-            bufferOfLine.SetLength(0);
-
-            displayWidthInPixel = aMaxDisplayWidthInPixel - 1;
-            elementStartXPos = 0;
-            }
-        }
-
-    if (bufferOfLine.Length() > 0 && elementArray)
-        {
-        PredictivePopupAppendLineL(lineArray, bufferOfLine, elementArray);
-        CleanupStack::Pop(elementArray);    // elementArray
-        }
-
-    CleanupStack::Pop(lineArray);    // lineArray
-
-    return lineArray;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::PredictivePopupAppendLineL
-// Append to array with line information
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::PredictivePopupAppendLineL(
-        CPredictivePopupLineInfoArray* aLineArray,
-        const TDesC& aLineText,
-        CPredictivePopupElementArray* aElementArray)
-    {
-    HBufC* lineTextBuf = HBufC::NewL(aLineText.Length());
-    CleanupStack::PushL(lineTextBuf);
-    TPtr lineTextBufPtr = lineTextBuf->Des();
-    lineTextBufPtr.Copy(aLineText);
-
-    CPredictivePopupLineInfo* lineInfo = new(ELeave) CPredictivePopupLineInfo;
-    CleanupStack::PushL(lineInfo);
-
-    aLineArray->AppendL(lineInfo);
-    CleanupStack::Pop(2, lineTextBuf); // lineTextBuf, lineInfo
-
-    // After that set to line information items,
-    // becasue the following member variables are deleted
-    // in the destractor of CPredictivePopupLineInfo if leave occurs.
-    lineInfo->iLineText = lineTextBuf;
-    lineInfo->iElementsOnLine = aElementArray;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CreateListTextArrayL
-// Create arrary with string to show in a line
-// -----------------------------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlJapanesePredictivePane::CreateListTextArrayL(
-        CPredictivePopupLineInfoArray* aLineArray)
-    {
-    CDesCArrayFlat* textArray = new(ELeave) CDesCArrayFlat(1);
-    CleanupStack::PushL(textArray);
-
-    const TInt numberOfItem = aLineArray->Count();
-    TInt i;
-    for (i = 0; i < numberOfItem; i++)
-        {
-        CPredictivePopupLineInfo* lineInfo = aLineArray->At(i);
-        textArray->AppendL(*lineInfo->iLineText);
-        }
-
-    CleanupStack::Pop(textArray);    // textArray
-
-    return textArray;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::HandleSizeChanged
-// The handler function for size change
-//
-// Original function is AknPopupLayouts::HandleSizeChanged()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::HandleSizeChanged(
-        TAknPopupWindowLayoutDef& aDef,
-        CAknPopupHeadingPane* aHeading,
-        CEikListBox* aListBox,
-        CCoeControl* aWindowOwningControl)
-    {
-    TInt numofitems = aListBox->Model()->NumberOfItems();
-
-    TInt minItems = KJapPredictiveVisibleListRowsMin;
-    TInt maxItems = KJapPredictiveVisibleListRowsMax;
-
-    if (aDef.iMaximumHeight)
-        {
-        maxItems = aDef.iMaximumHeight;
-        }
-    AknPopupLayouts::CheckRange(numofitems, minItems, maxItems);
-    CalcPopupMenuWindow(aDef, iMainPaneRect, numofitems);
-    SetupMenuPopupWindow(aDef, numofitems, aHeading != 0);
-
-    aWindowOwningControl->SetRect(AknPopupLayouts::WindowRect(aDef));
-    HandleSizeAndPositionOfComponents(aDef, aListBox, aHeading);
-
-    TRect windowRect = AknPopupLayouts::WindowRect(aDef);
-    MAknsControlContext *cc = AknsDrawUtils::ControlContext( aListBox );
-    TBool defaultContext = EFalse;
-    if (!cc)
-        {
-        cc = aListBox->View()->ItemDrawer()->SkinBackgroundControlContext();
-        defaultContext = ETrue;
-        }
-
-    if (cc)
-        {
-        CAknsBasicBackgroundControlContext *bcc =
-            (CAknsBasicBackgroundControlContext*)cc;
-        TAknLayoutRect popupBgRect;
-
-        popupBgRect.LayoutRect(
-            windowRect,
-            ELayoutEmpty,
-            0, 0, ELayoutEmpty, ELayoutEmpty,
-            windowRect.Size().iWidth, windowRect.Size().iHeight);
-
-        bcc->SetBitmap(KAknsIIDQsnFrPopupCenter);
-
-        if (defaultContext)
-            {
-            bcc->SetRect(popupBgRect.Rect());
-            }
-
-        bcc->SetParentPos(aWindowOwningControl->PositionRelativeToScreen());
-
-        if (defaultContext)
-            {
-            bcc->SetParentPos(TPoint(0, 0));
-            }
-        }
-     }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::HandleDraw
-// The handler function for Draw
-//
-// Original function is AknPopupLayouts::HandleDraw()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::HandleDraw(CEikonEnv* /*aEikEnv*/,
-                  CWindowGc& aGc,
-                  const TAknPopupWindowLayoutDef& aDef,
-                  CEikListBox* aListBox,
-                  CAknPopupHeadingPane* /*aHeading*/)
-    {
-    aGc.Clear();
-
-    TRect windowRect =
-        AknPopupLayouts::MenuRect(const_cast<TAknPopupWindowLayoutDef&>(aDef));
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext(aListBox);
-    TBool windowFrameDrawn = EFalse;
-    if (!cc)
-        {
-        cc = aListBox->View()->ItemDrawer()->SkinBackgroundControlContext();
-        }
-
-    if (cc)
-        {
-        // drawing frame
-        TAknLayoutRect topLeft;
-        topLeft.LayoutRect(
-            windowRect,
-            ELayoutEmpty,
-            0, 0, ELayoutEmpty, ELayoutEmpty, KListboxFlameMarge, KListboxFlameMarge);
-
-        TAknLayoutRect bottomRight;
-        bottomRight.LayoutRect(
-            windowRect,
-            ELayoutEmpty,
-            ELayoutEmpty, ELayoutEmpty, 0, 0, KListboxFlameMarge, KListboxFlameMarge);
-
-        TRect outerRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-        TRect innerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-        aGc.SetPenStyle(CGraphicsContext::ENullPen);
-        const TAknsItemID *frameId = &KAknsIIDQsnFrPopupSub;
-        const TAknsItemID *frameCenterId = &KAknsIIDQsnFrPopupCenter;
-        windowFrameDrawn = AknsDrawUtils::DrawFrame(
-                skin, aGc, outerRect, innerRect, *frameId, *frameCenterId);
-        }
-
-    if (!windowFrameDrawn)
-        {
-        DrawWindowShadow(
-            aGc,
-            aDef.iCover, aDef.iSecond, aDef.iFirst, aDef.iOutline, aDef.iInside);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::CalcPopupMenuWindow
-// Set up the information on a pop-up window
-//
-// Original function is AknPopupLayouts::CalcPopupMenuWindow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::CalcPopupMenuWindow(
-        TAknPopupWindowLayoutDef &aDef,const TRect& aRect, TInt /*aNum*/)
-    {
-    TAknLayoutRect popup_menu_window;
-
-    TBool sizeDesideFlag = EFalse;
-    TInt adjustOffsetX = 0;
-    TInt adjustOffsetY = 0;
-
-    TAknWindowLineLayout laf =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(
-            0, iMaximumRows - KJapPredictiveVisibleListRowsMin);
-    laf.il = 0;
-    laf.it = 0;
-    TAknWindowLineLayout maxlaf =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(
-            0, KJapPredictiveVisibleListRowsMax - KJapPredictiveVisibleListRowsMin);
-    laf.il = 0;
-    maxlaf.it = 0;
-
-    popup_menu_window.LayoutRect(aRect, laf);
-
-    // checking whether list can be drawn under the position which popup window is dispalyed
-    if (iMainPaneRect.iTl.iY
-        + iOffsetPosition.iY + KLAFBelowTextBaseline
-        + maxlaf.iH < iMainPaneRect.iBr.iY)
-        {
-        // deciding the position which popup window is dispalyed
-        adjustOffsetY = (-1) * KLAFBelowTextBaseline;
-        sizeDesideFlag = ETrue;
-        }
-
-        // checking whether list can be drawn top the position which popup window is dispalyed
-    else if (iMainPaneRect.iTl.iY
-            + iOffsetPosition.iY - KLAFAboveTextBaseline
-            - iSrcTextHeight
-            - popup_menu_window.Rect().Height() > iMainPaneRect.iTl.iY)
-        {
-        // deciding the position which popup window is dispalyed
-        adjustOffsetY = iSrcTextHeight + KLAFAboveTextBaseline + popup_menu_window.Rect().Height();
-        sizeDesideFlag = ETrue;
-        }
-
-    // display the bottom of window in case the displaying position isn't decided
-    //
-    if (!sizeDesideFlag)
-        {
-        TAknWindowLineLayout laf =
-            AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(
-                0, KJapPredictiveVisibleListRowsMax - KLAFBaseListRows);
-        laf.il = 0;
-        laf.it = 0;
-        popup_menu_window.LayoutRect(aRect, laf);
-        adjustOffsetY =
-            iMainPaneRect.iTl.iY
-            + iOffsetPosition.iY + KLAFBelowTextBaseline
-            + popup_menu_window.Rect().Height() - iMainPaneRect.iBr.iY;
-
-        iMaximumRows = KJapPredictiveVisibleListRowsMin;
-        sizeDesideFlag = ETrue;
-        }
-
-    adjustOffsetX =
-        iMainPaneRect.iTl.iX
-        + iOffsetPosition.iX
-        + popup_menu_window.Rect().Width() - iMainPaneRect.iBr.iX;
-    adjustOffsetX = (adjustOffsetX > 0) ? adjustOffsetX : 0;
-
-    TPoint adjustOffset(-adjustOffsetX, -adjustOffsetY);
-
-    aDef.iWindowRect = popup_menu_window.Rect();
-    aDef.iWindowRect.Move(iOffsetPosition);
-    aDef.iWindowRect.Move(adjustOffset);
-
-    TRect window_rect = AknPopupLayouts::MenuRect(aDef);
-    aDef.iCover.LayoutRect(
-        window_rect,
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_1(aDef.iWindowRect));
-    aDef.iSecond.LayoutRect(
-        window_rect,
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_2(aDef.iWindowRect));
-    aDef.iFirst.LayoutRect(
-        window_rect,
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_2(aDef.iWindowRect));
-    aDef.iOutline.LayoutRect(
-        window_rect,
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_3(aDef.iWindowRect));
-    aDef.iInside.LayoutRect(
-        window_rect,
-        AKN_LAYOUT_WINDOW_Predictive_candidate_selection_popup_window_graphics_Line_4(aDef.iWindowRect));
-    aDef.iPopupMenuWindowOffset = TPoint(0, 0);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::SetupMenuPopupWindow
-// Set up the information on a pop-up window
-//
-// Original function is AknPopupLayouts::SetupMenuPopupWindow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::SetupMenuPopupWindow(TAknPopupWindowLayoutDef &aDef, TInt /*num*/, TBool /*heading*/)
-    {
-    AknPopupLayouts::SetupDefaults(aDef);
-    TRect window_rect = AknPopupLayouts::MenuRect(aDef);
-
-    // setting size of listbox pane
-    TAknWindowLineLayout laf =
-        AKN_LAYOUT_WINDOW_popup_fep_japan_predictive_window(0, iMaximumRows - KLAFBaseListRows);
-
-    laf.il = KListboxMarge;
-    laf.it = KListboxMarge;
-    laf.iW -= KListboxMarge*2;
-    laf.iH = laf.iH - KListboxMarge*2 - (laf.iH-KListboxMarge*2)%iMaximumRows;
-    aDef.iListRect.LayoutRect(window_rect, laf);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::HandleSizeAndPositionOfComponents
-// The handler function for size and a location
-//
-// Original function is AknPopupLayouts::HandleSizeAndPositionOfComponents()
-//
-//
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::HandleSizeAndPositionOfComponents(
-        const TAknPopupWindowLayoutDef &aDef,
-        CCoeControl *aContent,
-        CAknPopupHeadingPane* /*aHeading*/)
-    {
-    TRect lbrect = aDef.iListRect.Rect();
-
-   if (AknLayoutUtils::ScalableLayoutInterfaceAvailable())
-        {
-        // set scroll size
-        CAknFepUICtrlJapanesePredictiveListbox* listBox =
-            static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(aContent);
-        CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-            static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(listBox->Model());
-        TInt maxRows = model->LineInfoArray()->Count();
-        if (maxRows > KJapPredictiveVisibleListRowsMax)
-            {
-            TAknWindowLineLayout scrollLineLayout = AknLayoutScalable_Avkon::scroll_pane_cp29().LayoutLine();
-            lbrect.iBr.iX -= (scrollLineLayout.iW + KScrollRightMarge - KListboxMarge);
-            }
-        }
-
-    aContent->SetRect(lbrect);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::DrawWindowShadow
-// Draw window shadow
-//
-// Original function is AknDrawWithSkins::DrawWindowShadow()
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::DrawWindowShadow(
-        CWindowGc& aGc,
-        const TAknLayoutRect& aCoverRect,
-        const TAknLayoutRect& /*aSecondShadowRect*/,
-        const TAknLayoutRect& aFirstShadowRect,
-        const TAknLayoutRect& aOutlineFrameRect,
-        const TAknLayoutRect& aInsideAreaRect)
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    // draw rectangle
-    aGc.SetBrushColor(aCoverRect.Color());
-    AknsDrawUtils::Background(skin, NULL, NULL, aGc, aCoverRect.Rect());
-
-    aFirstShadowRect.DrawOutLineRect(aGc);
-
-    aOutlineFrameRect.DrawOutLineRect(aGc);
-
-    aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
-    aGc.SetBrushColor(aInsideAreaRect.Color());
-    AknsDrawUtils::Background(skin, NULL, NULL, aGc, aInsideAreaRect.Rect());
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MaximumRows
-// calculate maximum columns from items of listbox
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MaximumRows(
-        CTextListBoxModel* aModel)
-    {
-    CAknFepUICtrlJapanesePredictiveListBoxModel* model =
-        static_cast<CAknFepUICtrlJapanesePredictiveListBoxModel*>(aModel);
-    TInt maxRows = model->LineInfoArray()->Count();
-    TInt maxVisibleRows = Min(KJapPredictiveVisibleListRowsMax, maxRows);
-    maxVisibleRows = Max(KJapPredictiveVisibleListRowsMin, maxVisibleRows);
-    return maxVisibleRows;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::Draw
-// Called by the framework to draw the control
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-    gc.Clear();
-    HandleDraw(iEikonEnv, gc, Layout(), iListBox, Heading());
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::OfferKeyEventL
-// Handle key events. When a key event occurs
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CAknFepUICtrlJapanesePredictivePane::OfferKeyEventL(
-        const TKeyEvent& /*aKeyEvent*/,TEventCode /*aType*/)
-    {
-    return EKeyWasNotConsumed;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MovePreviousItem
-// selecting a next candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MovePreviousItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListbox* listBox =
-        static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-
-    return listBox->MovePreviousItem();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MoveNextItem
-// selecting a next candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MoveNextItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListbox* listBox =
-        static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-
-    return listBox->MoveNextItem();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MovePreviousLineItem
-// selecting a previous line candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MovePreviousLineItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListbox* listBox =
-        static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-
-    return listBox->MovePreviousLineItem();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::MoveNextLineItem
-// selecting a next line candidate
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepUICtrlJapanesePredictivePane::MoveNextLineItem()
-    {
-    CAknFepUICtrlJapanesePredictiveListbox* listBox =
-        static_cast<CAknFepUICtrlJapanesePredictiveListbox*>(ListBox());
-
-    return listBox->MoveNextLineItem();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::UpdateCbaL
-// Changing the cba
-// -----------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::UpdateCbaL(TInt aResourceID)
-    {
-    if (iCurrentResource == aResourceID)
-        {
-        return;
-        }
-
-    // store resource id
-    iPopoutCba->SetCommandSetL( aResourceID );
-    iCurrentResource = aResourceID;
-    iPopoutCba->DrawDeferred();
-    }
-
-/**
- * Processes events from the softkeys. Responds to EAknSoftkeyOk and EAknSoftkeyBack
- * to accept or cancel the pop-up.
- *
- * @param   aCommandId  Event Id from the soft-key
- */
-void CAknFepUICtrlJapanesePredictivePane::ProcessCommandL(TInt aCommandId)
-    {
-    // Respond to softkey events
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeyConvert:
-        case EAknFepSoftkeyCloseWindow:
-        case EAknFepSoftkeyCommit:
-        case EAknFepSoftkeySelectCandidate:
-        case EAknFepSoftkeyOtherModes:
-            iUiMng->HandleCommandL(aCommandId);
-            break;
-        default:
-            CAknPopupList::ProcessCommandL(aCommandId);
-            break;
-        }
-    }
-
-void CAknFepUICtrlJapanesePredictivePane::ShowWindowCbaL()
-    {
-    RDrawableWindow* cbaWindow = iPopoutCba->ButtonGroup()->AsControl()->DrawableWindow();
-    cbaWindow->SetOrdinalPosition(0,ECoeWinPriorityFep);
-    cbaWindow->SetFaded(EFalse, RWindowTreeNode::EFadeWindowOnly);
-    cbaWindow->SetNonFading(ETrue);
-    iEikonEnv->EikAppUi()->AddToStackL(iPopoutCba,
-                                                 ECoeStackPriorityFep,
-                                                 ECoeStackFlagRefusesFocus);
-
-    iPopoutCba->ActivateL();
-    iPopoutCba->MakeVisible(ETrue);
-    iPopoutCba->DrawDeferred(); // to update the cba
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUICtrlJapanesePredictivePane::HandleListBoxEventL
-// CallBack from ListBox
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void CAknFepUICtrlJapanesePredictivePane::HandleListBoxEventL(
-    CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-    switch (aEventType)
-        {
-        case EEventItemDraggingActioned: // Item Moved
-            DrawNow();
-            break;
-        case EEventItemClicked:
-            {
-            TKeyEvent ccpuStart = {EKeyOK, EStdKeyDevice3, 0, 0};
-            iEikonEnv->SimulateKeyEventL(ccpuStart, EEventKey);
-            }
-            break;
-        default:
-           break;
-        }
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonCtrlPinyinPopup.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1271 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUICtrlPinyinPopup methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <gdi.h>
-#include <eiklabel.h>
-#include <AknsDrawUtils.h>
-#include <AknsUtils.h>
-#include <AknIconUtils.h>
-
-#include <AknsFrameBackgroundControlContext.h>
-#include <aknfepuictrls.mbg>
-
-#include "AknFepUiInterfacePanic.h"
-#include "AknFepUIAvkonCtrlPinyinPopup.h"
-#include "AknFepUIAvkonCtrlInputPane.h"
-#include "aknfepchineseuidataconv.h"
-#include "aknfepuilayoutdatamgr.h"
-#include <skinlayout.cdl.h>
-
-#include "data_caging_path_literals.hrh"
-
-_LIT(KFepUiControlsBitmapFile, "aknfepuictrls.mbm");
-
-CAknFepUICtrlPinyinPopup* CAknFepUICtrlPinyinPopup::NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlPinyinPopup* self = new(ELeave) CAknFepUICtrlPinyinPopup( aLafDataMgr );
-    CleanupStack::PushL(self);
-    self->ConstructL(aParent);
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepUICtrlPinyinPopup::~CAknFepUICtrlPinyinPopup()
-    {
-    iInputPaneArray.ResetAndDestroy();
-    iPages.Reset();
-    delete iSpellingArray;
-    delete iSpellingIndexArray;
-    delete iNaviArrowBitmapLeft;
-    delete iNaviArrowBitmapLeftMask;
-    delete iNaviArrowBitmapRight;
-    delete iNaviArrowBitmapRightMask;
-    delete iBgContext;
-    delete iKeystrokeArray;
-    delete iInEffectKeystrokeArray;
-    delete iShowKeystrokeArray;
-    delete iOptimizeSpelling;
-    delete iTempSpelling;
-    delete iChooseChineseCharacterArray;
-    delete iChooseChineseCharacterArrayKeystroke;
-    
-    delete iKeystrokeArrayForStroke;
-    delete iInEffectKeystrokeArrayForStroke;
-    delete iShowKeystrokeArrayForStroke;
-    delete iChooseChineseCharacterArrayForStroke;
-    delete iChooseChineseCharacterArrayKeystrokeForStroke;
-    
-    delete iZhuyinSymbols;
-    delete iZhuyinShowSymbols;
-    delete iFirstValidZhuyinGrp;
-    delete iChineseCharsDisped;
-    delete iZhuyinSymbolsForChineseCharsDisped;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetSizeChangedObserver(
-    MAknFepUICtrlPinyinPopupSizeChangedObserver* aObserver)
-    {
-    iSizeChangedObserver = aObserver;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::IsEnabled() const
-    {
-    return iEnabled;
-    }
-
-void CAknFepUICtrlPinyinPopup::Enable(TBool aEnable)
-    {
-    // fix the refresh bug.
-    TBool redraw = ( aEnable || iEnabled != aEnable );
-    
-    iEnabled = aEnable;
-    if(aEnable)
-        {
-        Window().SetOrdinalPosition(0, ECoeWinPriorityFep); // right at the front
-        }
-    
-    iSizeChangedObserver->SelectionPopupEnabled(aEnable);
-    if (!aEnable)
-    	{
-        for(TInt i = 0; i < iVisibleCount; i++)
-            {
-            CAknFepUICtrlInputPane* inputPane = iInputPaneArray[i];
-            inputPane->SetText(KNullDesC);
-            }   
-        iVisibleCount = 0;
-    	}
-    MakeVisible(aEnable);
-    
-    // fix the refresh bug.
-    if( redraw ) 
-        { 
-        DrawDeferred(); 
-        } 
-    }
-
-void CAknFepUICtrlPinyinPopup::SetVisibleSelectionCount(TInt aCount)
-    {
-    __ASSERT_DEBUG(aCount <= EMaxPhraseCandidate, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-    __ASSERT_DEBUG(aCount >= 1, AknFepUiInterfacePanic(EAknFepUiInterfacePanicNewVisibleCountExceedsRange));
-
-    if(iVisibleCount != aCount)
-        {
-        iVisibleCount = aCount;
-        TInt oldSelected = iSelected;
-
-        if (iVisibleCount > 1) //the layout does not support a visible count of 1
-            {
-            if(aCount - 1 < oldSelected)
-                {
-                // automatically move the selection to be at the end of the new
-                // candidate buffer, by forcing the one that will become the new 
-                // highlighted one to be layout out highlighted before we are resized 
-                // (note that briefly, there will be two items highlighted, but at least
-                // there will be no flicker)
-                iSelected = aCount - 1;
-                LayoutInputPane(aCount - 1);        
-                }
-
-            // note that the old highlighted one isn't shown any more, so we don't need to lay it out again to hide its highlight
-            SetInputPaneVisibility();
-            iSizeChangedObserver->SelectionPopupSizeChanged(iVisibleCount); 
-            DrawDeferred();
-            }
-        }
-    }
-
-void CAknFepUICtrlPinyinPopup::SetVisibleCount(TInt aCount)
-    {
-    if(iVisibleCount != aCount)
-        {
-        iVisibleCount = aCount;
-        }
-    }
-
-TInt CAknFepUICtrlPinyinPopup::VisibleSelectionCount() const
-    {
-    return iVisibleCount;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::PhoneticSpellingArray(void)
-    {
-    return iSpellingArray;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::PhoneticSpellingIndexArray(void)
-    {
-    return iSpellingIndexArray;
-    }
-
-void CAknFepUICtrlPinyinPopup::SplitPhraseSpellingIntoPages(void)
-    {
-    iPages.Reset(); 
-    TPage curPage;
-    TInt spellingNum = iSpellingArray->Count();
-    if(spellingNum == 0)
-        {
-        iVisibleCount = 0;
-        return;
-        }
-
-    TInt index = 0;
-    TBool beAppend = EFalse;
-    
-    while(index < spellingNum)
-        {
-        beAppend = EFalse;
-        curPage.iStartIndex = index;
-        curPage.iEndIndex = index;
-    
-        TInt spellingLeftNum = spellingNum - index > EMaxPhraseCandidate? EMaxPhraseCandidate:spellingNum - index;
-        for(TInt j = 0; j < spellingLeftNum; j ++)  
-            {
-            iInputPaneArray[j]->SetText((*iSpellingArray)[index + j]);
-            } 
-        
-        TAknWindowLineLayout layoutEntryItem = 
-                CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutEntryItem));
-        TAknTextLineLayout entryTextLine = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EEntryTextLayout));
-        TInt layoutLinePrevLeft = 0;
-        TInt layoutLinePrevWidth = 0;
-
-        TAknLayoutRect layoutRectEntryItem;
-        layoutRectEntryItem.LayoutRect(Rect(),layoutEntryItem);
-        TRect rectEntryItem = layoutRectEntryItem.Rect();
-    
-        TAknLayoutText layoutText;
-        layoutText.LayoutText(rectEntryItem,entryTextLine);
-        TRect rectText = layoutText.TextRect();
-        
-        TInt rightLimit = iIndiFepArrowRight.Rect().iTl.iX;
-        // value is 3 for 176*208 resolution
-        TInt distance = rectText.iTl.iX - rectEntryItem.iTl.iX + rectEntryItem.iBr.iX - rectText.iBr.iX;
-        
-        for(TInt i = 0;i < spellingLeftNum;i ++)
-            {
-            if(i > 0)
-                {
-                rectText.iTl.iX = TInt16(layoutLinePrevLeft + layoutLinePrevWidth);
-                }
-            rectText.SetWidth(iInputPaneArray[i]->LabelTextWidthInPixels() + distance);
-
-            // if label's layout out of screen, forms another display page
-            // > change >= change for phrase creation.
-            if((rectText.iTl.iX >= rightLimit) || ((rectText.iTl.iX + rectText.Width()) >= rightLimit))
-                {
-                curPage.iEndIndex = index - 1;
-                iPages.Append(curPage);
-                beAppend = ETrue;
-                break;
-                }
-            
-            layoutLinePrevLeft = rectText.iTl.iX;
-            layoutLinePrevWidth = rectText.Width();
-
-            index ++;
-            
-            if( i == EMaxPhraseCandidate -1 )
-            	{
-                curPage.iEndIndex = index - 1;
-                iPages.Append(curPage);
-                beAppend = ETrue;
-                break;
-            	}
-            
-            }    
-        }
-    
-    if( beAppend == EFalse)
-    	{
-    	curPage.iEndIndex = index - 1;
-    	iPages.Append(curPage);
-    	}
-    iCurDisplayPage = 0;
-    SetVisibleSelectionCount(iPages[0].iEndIndex - iPages[0].iStartIndex + 1);
-    }
-
-void CAknFepUICtrlPinyinPopup::SplitSpellingIntoPages(TInt aCount)
-    {
-    iPages.Reset(); 
-    TPage curPage;
-    if(aCount == 0)
-        {
-        return;
-        }
-    TInt index = 0;
-    TBool beAppend = EFalse;
-    
-    while(index < aCount)
-        {
-        beAppend = EFalse;
-        curPage.iStartIndex = index;
-        curPage.iEndIndex = index;
-        TInt spellingLeftNum = aCount - index > EMaxCandidates? EMaxCandidates:aCount - index;
- 
-        TAknWindowLineLayout layoutEntryItem = 
-                CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutEntryItem));
-        TAknTextLineLayout entryTextLine = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EEntryTextLayout));
-        TInt layoutLinePrevLeft = 0;
-        TInt layoutLinePrevWidth = 0;
-
-        TAknLayoutRect layoutRectEntryItem;
-        layoutRectEntryItem.LayoutRect(Rect(),layoutEntryItem);
-        TRect rectEntryItem = layoutRectEntryItem.Rect();
-    
-        TAknLayoutText layoutText;
-        layoutText.LayoutText(rectEntryItem,entryTextLine);
-        TRect rectText = layoutText.TextRect();
-        
-        TInt rightLimit = rectEntryItem.iTl.iX + rectEntryItem.Width();
-        // value is 3 for 176*208 resolution
-        TInt distance = rectText.iTl.iX - rectEntryItem.iTl.iX + rectEntryItem.iBr.iX - rectText.iBr.iX;
-        for(TInt i = 0;i < spellingLeftNum;i ++)
-            {
-            if(i > 0)
-                {
-                rectText.iTl.iX = TInt16(layoutLinePrevLeft + layoutLinePrevWidth);
-                }
-            rectText.SetWidth(iInputPaneArray[i]->LabelTextWidthInPixels() + distance);
-
-            // if label's layout out of screen, forms another display page
-            if((rectText.iTl.iX >= rightLimit) || ((rectText.iTl.iX + rectText.Width()) >= rightLimit))
-                {
-                curPage.iEndIndex = index - 1;
-                iPages.Append(curPage);
-                beAppend = ETrue;
-                break;
-                }
-            layoutLinePrevLeft = rectText.iTl.iX;
-            layoutLinePrevWidth = rectText.Width();
-            index ++;
-            
-            if( i == EMaxPhraseCandidate -1 )
-            	{
-            	curPage.iEndIndex = index - 1;
-                iPages.Append(curPage);
-                beAppend = ETrue;
-                break;
-            	}
-            
-            }
-        }
-    
-    if(beAppend == EFalse)
-    	{
-        curPage.iEndIndex = index - 1;
-        iPages.Append(curPage);
-    	}
-    
-    iCurDisplayPage = 0;
-    SetVisibleSelectionCount(iPages[0].iEndIndex - iPages[0].iStartIndex + 1);
-    SelectIndex(0);
-    }
-
-void CAknFepUICtrlPinyinPopup::SetDisplayPage(TInt aSelection)
-    {
-    if(aSelection >= iVisibleCount)
-        {
-        for(TInt i = 0 ; i < iPages.Count(); i ++)
-            {
-            if((aSelection >= iPages[i].iStartIndex) && (aSelection <= iPages[i].iEndIndex))
-                {
-                iCurDisplayPage = i;
-                SetVisibleSelectionCount(iPages[i].iEndIndex - iPages[i].iStartIndex + 1);
-                SelectIndex(aSelection - iPages[i].iStartIndex);
-                break;
-                }
-            }
-        }
-    else
-        {
-        SelectIndex(aSelection);
-        }
-    UpdateInputPaneVisibility();
-    }
-
-TInt CAknFepUICtrlPinyinPopup::CurrentPageStartIndex(void)
-    {
-    return iPages[iCurDisplayPage].iStartIndex;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::KeystrokeArray()
-	{
-	return iKeystrokeArray;
-	}
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::InEffectKeystrokeArray()
-	{
-	return iInEffectKeystrokeArray;
-	}
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ShowKeystrokeArray()
-	{
-	return iShowKeystrokeArray;
-	}
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::OptimizeSpelling()
-	{
-	return iOptimizeSpelling;
-	}
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::TempSpelling()
-    {
-    return iTempSpelling;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ChooseChineseCharacterArray()
-	{
-	return iChooseChineseCharacterArray;
-	}
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ChooseChineseCharacterArrayKeystroke()
-	{
-	return iChooseChineseCharacterArrayKeystroke;
-	}
-
-TBool CAknFepUICtrlPinyinPopup::GetTonemarkState()
-	{
-	return iTonemarkState;
-	}
-
-void CAknFepUICtrlPinyinPopup::SetTonemarkState( TBool aState )
-	{
-	iTonemarkState = aState;
-	}
-
-void CAknFepUICtrlPinyinPopup::UpdateInputPaneVisibility()
-    {
-    TInt number = 0;
-    if(iPages.Count() != 0)
-        {
-        number = iPages[iCurDisplayPage].iEndIndex - iPages[iCurDisplayPage].iStartIndex + 1;
-        }
-    if(number > iVisibleCount)
-        {
-        number =  iVisibleCount;
-        }
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        CAknFepUICtrlInputPane* inputPane = iInputPaneArray[i];
-    
-        if(i < number)
-            {
-            inputPane->MakeVisible(ETrue);
-            }
-        else
-            {
-            inputPane->MakeVisible(EFalse);
-            }
-        }
-    }
-
-TBool CAknFepUICtrlPinyinPopup::SetItemText(TInt aIndex, const TDesC& aText)
-    {
-    __ASSERT_DEBUG(aIndex < EMaxPhraseCandidate, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetItemTextOutsideMaxCandidates));
-    __ASSERT_DEBUG(aIndex >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetItemTextOutsideMaxCandidates));
-
-    if(aIndex > iVisibleCount)
-        {
-        return EFalse;
-        }
-
-    CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    inputPane->SetText(aText);
-    return ETrue;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::SetPhraseItemTexts()
-    {
-    for(TInt i = 0; i < iVisibleCount; i ++)
-        {
-        TPtrC spelling = (*iSpellingArray)[i + iPages[iCurDisplayPage].iStartIndex];  // our index is zero based, engine index is one based
-        SetItemText(i, spelling);
-        }
-    return ETrue;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::GetItemText(TInt aIndex, TDes& aText) const
-    {
-    __ASSERT_DEBUG(aIndex < EMaxCandidates, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetItemTextOutsideMaxCandidates));
-    __ASSERT_DEBUG(aIndex >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSetItemTextOutsideMaxCandidates));
-
-    const CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    inputPane->GetText(aText);
-
-    return ETrue;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetToneMark(const TDesC& aToneMark)
-    {
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        CAknFepUICtrlInputPane* inputPane = iInputPaneArray[i];
-        inputPane->SetToneMark(aToneMark);
-        }
-    }
-
-void CAknFepUICtrlPinyinPopup::SetToneMark(TInt aIndex, const TDesC& aToneMark)
-    {
-    CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    inputPane->SetToneMark(aToneMark);
-
-    LayoutInputPane(aIndex);
-    }
-
-void CAknFepUICtrlPinyinPopup::GetToneMark(TInt aIndex, TDes& aToneMark) const
-    {
-    const CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    inputPane->GetToneMark(aToneMark);
-    }
-
-void CAknFepUICtrlPinyinPopup::SetItemToneMarkValidity(TInt aIndex, TBool aValid)
-    {
-    CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    inputPane->SetToneMarkValidity(aValid);
-    }
-
-
-
-TBool CAknFepUICtrlPinyinPopup::SelectNextPhrase()
-    {
-    TInt maxIndex = iVisibleCount  - 1;
-    TInt newIndex = iSelected;
-    
-    if((iSelected == maxIndex) )
-        {
-        // is last page 
-        if(iCurDisplayPage == (iPages.Count() - 1))
-            {
-            iCurDisplayPage = 0;
-            }
-        else
-            {
-            iCurDisplayPage ++;
-            }
-        SetVisibleSelectionCount(iPages[iCurDisplayPage].iEndIndex - iPages[iCurDisplayPage].iStartIndex + 1);
-        SetFlag(EDispPageChanged);
-        newIndex = 0;
-        }
-    else if(iSelected < maxIndex)
-        {
-        newIndex ++;
-        }
-    else if(iSelected > maxIndex)
-        {
-        return EFalse;
-        }
-    return SelectIndex(newIndex);
-    }
-
-
-TBool CAknFepUICtrlPinyinPopup::SelectPrevPhrase()
-    {
-    TInt maxIndex = iVisibleCount - 1;
-    TInt newIndex = iSelected;
-    if(iSelected == 0)
-        {
-        // first page
-        if(iCurDisplayPage == 0)
-            {
-            iCurDisplayPage = iPages.Count() - 1;
-            }
-        else
-            {
-            iCurDisplayPage --;
-            }
-        // loop to the end
-        SetVisibleSelectionCount(iPages[iCurDisplayPage].iEndIndex - iPages[iCurDisplayPage].iStartIndex + 1);
-        SetFlag(EDispPageChanged);
-        newIndex = iVisibleCount - 1 ;
-        }
-    else if(iSelected >  0)
-        {
-        newIndex--;
-        }
-    else if(iSelected > maxIndex)
-        {
-        return EFalse;
-        }
-    return SelectIndex(newIndex);
-    }
-
-TBool CAknFepUICtrlPinyinPopup::SelectIndex(TInt aIndex)
-    {
-    __ASSERT_DEBUG(aIndex < iVisibleCount, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSelectionOutsideVisibleCandidates));
-    __ASSERT_DEBUG(aIndex >= 0, AknFepUiInterfacePanic(EAknFepUiInterfacePanicAttemptedSelectionOutsideVisibleCandidates));
-    // If the value of the index changes, the control is redrawn to show the new position.
-    if(iSelected != aIndex)
-        {
-        // only want to layout the two controls between which the selection is moving
-        TInt oldSelected = iSelected;
-        iSelected = aIndex;
-
-        LayoutInputPane(oldSelected);
-        LayoutInputPane(iSelected);
-        }
-    return ETrue;
-    }
-
-TInt CAknFepUICtrlPinyinPopup::CurrentSelection() const
-    {
-    if(iPages.Count() != 0)
-        {
-        return iPages[iCurDisplayPage].iStartIndex + iSelected;
-        }
-    else
-        {
-        return 0;
-        }
-    }
-
-TInt CAknFepUICtrlPinyinPopup::CurrentVisibleSelection() const
-    {
-    return iSelected;
-    }
-
-void CAknFepUICtrlPinyinPopup::PopupSizeChanged()
-	{
-	SizeChanged();
-	}
-	
-void CAknFepUICtrlPinyinPopup::SizeChanged()
-    {
-    LayoutRects();
-    LayoutContainedControls();
-    LayoutFrames();
-    }
-
-TInt CAknFepUICtrlPinyinPopup::CountComponentControls() const
-    {
-    TInt count = 0;
-    count += iInputPaneArray.Count();
-    
-    CCoeControl* controls[] = 
-        {
-        0
-        } ;
-
-    for (TUint ii = 0 ; ii < (sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if(controls[ii])
-            {
-            count++ ;
-            }
-        }
-    return count ;
-    }
-
-CCoeControl* CAknFepUICtrlPinyinPopup::ComponentControl(TInt aIndex) const 
-    {
-    TInt candidateCount = iInputPaneArray.Count();
-
-    if(aIndex < candidateCount)
-        {
-        // because this method is const, the const [] operator is selected
-        // which means that the pointer is const, so have to cast away constness 
-        // - a possible alternative is to make the array mutable
-        return CONST_CAST(CAknFepUICtrlInputPane*, iInputPaneArray[aIndex]);
-        }
-    aIndex -= candidateCount;
-
-    CCoeControl* controls[] = 
-        {
-        0
-        } ;
-
-    for (TUint ii = 0; (ii < sizeof(controls) / sizeof(CCoeControl*)) ; ii++)
-        {
-        if (controls[ii] && aIndex-- == 0)
-            {
-            return controls[ii] ;
-            }
-        }
-    // shouldn't be called while no components.
-    return NULL ;
-    }
-
-void CAknFepUICtrlPinyinPopup::Draw(const TRect& /*aRect*/) const
-    {
-    CWindowGc& gc = SystemGc();
-    TBool skinnedDraw = EFalse;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-    
-    gc.Clear(outerRect);
-    TRect tmpRect;
-    tmpRect.iTl.iX = innerRect.iTl.iX;
-    tmpRect.iTl.iY = outerRect.iTl.iY;
-    tmpRect.SetWidth(innerRect.Width());
-    tmpRect.SetHeight(outerRect.Height());
-    skinnedDraw = AknsDrawUtils::DrawFrame(skin, gc, outerRect, tmpRect,
-        KAknsIIDQsnFrPopupSub, KAknsIIDQsnFrPopupCenterSubmenu);
-	    
-    // draw the rectangles
-    if(!skinnedDraw)
-        {
-        iRectCoverMainPaneInput.DrawRect(gc);
-        iRectFirstShadowInput.DrawRect(gc);
-        iRectOutlineFrameInput.DrawRect(gc);
-        iRectInsideAreaInput.DrawRect(gc);
-        }
-
-    if((iVisibleCount >= 1) && (iPages.Count() > 1))
-        {
-        if(iCurDisplayPage != 0)
-            {
-            iIndiFepArrowLeft.DrawImage(gc, iNaviArrowBitmapLeft, iNaviArrowBitmapLeftMask);
-            }
-
-        if (iPages.Count() > iCurDisplayPage + 1)
-            {
-            iIndiFepArrowRight.DrawImage(gc, iNaviArrowBitmapRight, iNaviArrowBitmapRightMask);
-            }
-	    }
-    }
-
-TTypeUid::Ptr CAknFepUICtrlPinyinPopup::MopSupplyObject(TTypeUid aId)
-    {
-    if (aId.iUid == MAknsControlContext::ETypeId)
-        return ( MAknsControlContext::SupplyMopObject(aId, iBgContext));
-    return CCoeControl::MopSupplyObject(aId);
-    }
-
-void CAknFepUICtrlPinyinPopup::ConstructL(RWindow& /*aParent*/)
-    {
-    CreateWindowL();
-    ConstructBitmapsL();
-    RWindow& window = Window();
-
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        CAknFepUICtrlInputPane* inputPane = 
-            CAknFepUICtrlInputPane::NewL(window, CAknFepUICtrlInputPane::ELayoutPhrasePinyinPopupPane, iLafDataMgr);
-        inputPane->SetMopParent(this);
-        CleanupStack::PushL(inputPane);
-        // ownership is passed, unless allocation is unsuccessful, in which case we still have it on the stack
-        User::LeaveIfError(iInputPaneArray.Append(inputPane));
-        CleanupStack::Pop(); // inputPane
-        }
-
-    iSpellingArray = new(ELeave)CDesCArrayFlat(1);
-    iSpellingIndexArray = new(ELeave)CDesCArrayFlat(1);
-    iKeystrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iShowKeystrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iOptimizeSpelling = new(ELeave)CDesCArrayFlat(1);
-    iTempSpelling = new(ELeave)CDesCArrayFlat(1);
-    iInEffectKeystrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iChooseChineseCharacterArray = new(ELeave)CDesCArrayFlat(1);
-    iChooseChineseCharacterArrayKeystroke = new(ELeave)CDesCArrayFlat(1);
-    //For stroke
-    iKeystrokeArrayForStroke = new(ELeave)CDesCArrayFlat(1);
-    iInEffectKeystrokeArrayForStroke = new(ELeave)CDesCArrayFlat(1);
-    iShowKeystrokeArrayForStroke = new(ELeave)CDesCArrayFlat(1);
-    iChooseChineseCharacterArrayForStroke = new(ELeave)CDesCArrayFlat(1);
-    iChooseChineseCharacterArrayKeystrokeForStroke = new(ELeave)CDesCArrayFlat(1);
-    
-    iZhuyinSymbols = new(ELeave)CDesCArrayFlat(1);
-    iZhuyinShowSymbols = new(ELeave)CDesCArrayFlat(1);
-    iFirstValidZhuyinGrp = new(ELeave)CDesCArrayFlat(1);
-    iChineseCharsDisped = new(ELeave)CDesCArrayFlat(1);
-    iZhuyinSymbolsForChineseCharsDisped = new(ELeave)CDesCArrayFlat(1);
-    
-    SetNonFocusing();
-    window.SetOrdinalPosition(0, ECoeWinPriorityFep); // right at the front
-    window.SetNonFading(ETrue);
-
-    TRect outerRect = TRect();
-    TRect innerRect = TRect();
-    CalculateFrameRects(outerRect, innerRect);
-
-    iBgContext = CAknsFrameBackgroundControlContext::NewL(KAknsIIDQsnFrPopupSub, outerRect, innerRect, ETrue);
-    iLastResouce = 0;
-    MakeVisible(EFalse);
-    }
-
-void CAknFepUICtrlPinyinPopup::ConstructBitmapsL()
-    {
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();    
-    
-    TFileName bmpFile;
-    bmpFile.Copy(_L("z:"));
-    bmpFile.Append(KDC_BITMAP_DIR);
-    bmpFile.Append(KFepUiControlsBitmapFile);      
-    
-    AknsUtils::CreateColorIconL( skin,
-                                     KAknsIIDQgnIndiFepArrowLeft,
-                                     KAknsIIDQsnIconColors,
-                                     EAknsCIQsnIconColorsCG20,
-                                     iNaviArrowBitmapLeft,
-                                     iNaviArrowBitmapLeftMask,
-                                     bmpFile,
-                                     EMbmAknfepuictrlsQgn_indi_fep_arrow_left,
-                                     EMbmAknfepuictrlsQgn_indi_fep_arrow_left_mask,
-                                     AKN_LAF_COLOR( 0 )
-                                 );  
-
-    AknsUtils::CreateColorIconL( skin,
-                                     KAknsIIDQgnIndiFepArrowRight,
-                                     KAknsIIDQsnIconColors,
-                                     EAknsCIQsnIconColorsCG20,
-                                     iNaviArrowBitmapRight,
-                                     iNaviArrowBitmapRightMask,
-                                     bmpFile,
-                                     EMbmAknfepuictrlsQgn_indi_fep_arrow_right,
-                                     EMbmAknfepuictrlsQgn_indi_fep_arrow_right_mask,
-                                     AKN_LAF_COLOR( 0 )
-                                 );    
-    }
-
-CAknFepUICtrlPinyinPopup::CAknFepUICtrlPinyinPopup( CAknFepUiLayoutDataMgr* aLafDataMgr )
-    : 
-    iSelected(0),
-    iEnabled(EFalse),
-    iVisibleCount(CAknFepUICtrlPinyinPopup::EMaxPhraseCandidate),
-    iCurDisplayPage(0),
-    iTonemarkState(1),
-    iStrokeState(0),
-    iHighLightFlag( 0 ),
-    iFlags(0),    
-    iValidKeystrokeCount( 0 ),
-    iPhraseCreation(0),
-    iPhraseCreationEditingState( 0 ),
-    iState(1),    
-    iChangeStateFromEditToSpelling( 0 ),
-    iValidKeystrokeChanged( 0 )
-    {
-    iLafDataMgr = aLafDataMgr;
-    iEEPContent.Zero();
-    }
-
-void CAknFepUICtrlPinyinPopup::LayoutRects()
-    {
-    // left arrow
-    iIndiFepArrowLeft = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( EIndiFepArrowLeft ));
-    AknIconUtils::SetSize( iNaviArrowBitmapLeft, iIndiFepArrowLeft.Rect().Size());
-
-    // right arrow
-    iIndiFepArrowRight = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( EIndiFepArrowRight ));
-    AknIconUtils::SetSize( iNaviArrowBitmapRight, iIndiFepArrowRight.Rect().Size());
-
-    // cover main pane
-    iRectCoverMainPaneInput = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectCoverMainPaneInput ));
-    // first shadow
-    iRectFirstShadowInput = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectFirstShadowInput ));
-    // outline frame
-    iRectOutlineFrameInput = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectOutlineFrameInput ));
-    // inside area
-    iRectInsideAreaInput = 
-        CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( ERectInsideAreaInput ));
-    }
-
-void CAknFepUICtrlPinyinPopup::LayoutContainedControls()
-    {
-    LayoutInputPanes();
-    }
-
-void CAknFepUICtrlPinyinPopup::LayoutInputPanes()
-    {
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        LayoutInputPane(i);
-        }
-    }
-
-void CAknFepUICtrlPinyinPopup::LayoutInputPane(TInt aIndex)
-    {
-    TRect rect = Rect();
-
-    CAknFepUICtrlInputPane* inputPane = iInputPaneArray[aIndex];
-    TAknWindowLineLayout layoutEntryItem = 
-            CAknFepChineseUIDataConv::AnyToWindowLine( iLafDataMgr->RequestData(ELayoutEntryItem));
-    TAknTextLineLayout layoutLineText = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData(EEntryTextLayout));
-    TAknLayoutRect layoutRectEntryItem;
-    layoutRectEntryItem.LayoutRect(rect,layoutEntryItem);
-    TRect rectEntryItem = layoutRectEntryItem.Rect();
-    
-    TAknLayoutText layoutText;
-    layoutText.LayoutText(rectEntryItem,layoutLineText);
-    TRect rectText = layoutText.TextRect();
-    
-    // value is 3 for 176*208 resolution
-    TInt distance = rectText.iTl.iX - rectEntryItem.iTl.iX + rectEntryItem.iBr.iX - rectText.iBr.iX;
-    
-    if( aIndex > 0)
-        {
-        CAknFepUICtrlInputPane* inputPanePrev = iInputPaneArray[aIndex - 1];
-        rectText.iTl.iX = inputPanePrev->Rect().iBr.iX;
-        }
-    rectText.SetWidth(inputPane->LabelTextWidthInPixels() + distance);
-    rectText.SetHeight(rect.Height());
-
-    inputPane->SetRect(rectText);
-    inputPane->SetHighlighted(aIndex == iSelected);
-    }
-
-void CAknFepUICtrlPinyinPopup::SetInputPaneVisibility()
-    {
-    TInt number = iVisibleCount;
-    CWindowGc& gc = SystemGc();
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
-    TBool skinnedDraw = AknsDrawUtils::Background(skin, cc, this, gc, Rect(),KAknsDrawParamPrepareOnly);
- 
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        CAknFepUICtrlInputPane* inputPane = iInputPaneArray[i];
- 
-        //TBool skinnedDraw = AknsDrawUtils::HasBitmapBackground(skin, cc);
-        if(skinnedDraw)
-            {
-            // show input panes, when skinned, as they must draw background context
-            // to avoid (the one that is almost off-screen) flickering behind
-            // however, need to hide the text so that is doesn't show
-            inputPane->MakeTextVisible(i < number);
-            }
-        else
-            {
-            // if not skinned, must hide the offscreen input panes otherwise they 
-            // will draw over the border rectangle
-            inputPane->MakeVisible(i < number);
-            }
-        }
-    }
-
-void CAknFepUICtrlPinyinPopup::LayoutFrames()
-    {
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects(outerRect, innerRect);
-    iBgContext->SetFrameRects(outerRect, innerRect);
-    iBgContext->SetParentPos(PositionRelativeToScreen());
-    }
-
-void CAknFepUICtrlPinyinPopup::CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const
-    {
-    TRect windowRect = 
-        CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectEntry ));
-    TInt rectHeight = windowRect.iBr.iY - windowRect.iTl.iY;
-    TInt rectWidth = windowRect.Width();
-    windowRect.iTl.iX = 0;
-    windowRect.iTl.iY = 0;
-    windowRect.SetHeight(rectHeight);
-    windowRect.SetWidth(rectWidth);
-
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect(windowRect, SkinLayout::Submenu_skin_placing_Line_2());
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect(windowRect, SkinLayout::Submenu_skin_placing_Line_5());
-    
-    aOuterRect = TRect(topLeft.Rect().iTl, bottomRight.Rect().iBr);
-    aInnerRect = TRect(topLeft.Rect().iBr, bottomRight.Rect().iTl);
-    }
-
-void CAknFepUICtrlPinyinPopup::SetNoneHighlighted()
-    {
-    TInt number = iVisibleCount;
-    CWindowGc& gc = SystemGc();
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    MAknsControlContext* cc = AknsDrawUtils::ControlContext(this);
-    TBool skinnedDraw = AknsDrawUtils::Background(skin, cc, this, gc, Rect(),KAknsDrawParamPrepareOnly);
- 
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        CAknFepUICtrlInputPane* inputPane = iInputPaneArray[i];
- 
-        //TBool skinnedDraw = AknsDrawUtils::HasBitmapBackground(skin, cc);
-        if(skinnedDraw)
-            {
-            // show input panes, when skinned, as they must draw background context
-            // to avoid (the one that is almost off-screen) flickering behind
-            // however, need to hide the text so that is doesn't show
-            inputPane->SetHighlighted( !(i < number) );
-            }
-        }
-    }
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::KeystrokeArrayForStroke()
-    {
-    return iKeystrokeArrayForStroke;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::InEffectKeystrokeArrayForStroke()
-    {
-    return iInEffectKeystrokeArrayForStroke;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ShowKeystrokeArrayForStroke()
-    {
-    return iShowKeystrokeArrayForStroke;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ChooseChineseCharacterArrayForStroke()
-    {
-    return iChooseChineseCharacterArrayForStroke;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ChooseChineseCharacterArrayKeystrokeForStroke()
-    {
-    return iChooseChineseCharacterArrayKeystrokeForStroke;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ZhuyinSymbols()
-    {
-    return this->iZhuyinSymbols;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ZhuyinShowSymbols()
-    {
-    return this->iZhuyinShowSymbols;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::FirstValidZhuyinGrp()
-    {
-    return this->iFirstValidZhuyinGrp;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetEEPContent ( const TDes& aDes )
-    {
-    iEEPContent = aDes;
-    }
-
-TDes& CAknFepUICtrlPinyinPopup::GetEEPContent ( )
-    {
-    return iEEPContent;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetEEPContentValid ( TBool aValid )
-    {
-    iEEPContentValid = aValid;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::GetEEPContentValid ( )
-    {
-    return iEEPContentValid;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ChineseCharsDisped()
-    {
-    return this->iChineseCharsDisped;
-    }
-
-CDesCArrayFlat* CAknFepUICtrlPinyinPopup::ZhuyinSymbolsForChineseCharsDisped()
-    {
-    return this->iZhuyinSymbolsForChineseCharsDisped;
-    }
-
-void CAknFepUICtrlPinyinPopup::ResetStrokeArray()
-    {
-    //reset pinyin array
-    iSpellingArray->Reset();
-    iSpellingArray->Compress();
-    iSpellingIndexArray->Reset();
-    iSpellingIndexArray->Compress();
-    iKeystrokeArray->Reset();
-    iKeystrokeArray->Compress();
-    iInEffectKeystrokeArray->Reset();
-    iInEffectKeystrokeArray->Compress();
-    iShowKeystrokeArray->Reset();
-    iShowKeystrokeArray->Compress();
-    iChooseChineseCharacterArray->Reset();
-    iChooseChineseCharacterArray->Compress();
-    iChooseChineseCharacterArrayKeystroke->Reset();
-    iChooseChineseCharacterArrayKeystroke->Compress();
-    iOptimizeSpelling->Reset();
-    iOptimizeSpelling->Compress();
-    iTempSpelling->Reset();
-    iTempSpelling->Compress();
-
-    //reset stroke array
-    iKeystrokeArrayForStroke->Reset();
-    iKeystrokeArrayForStroke->Compress();
-    iInEffectKeystrokeArrayForStroke->Reset();
-    iInEffectKeystrokeArrayForStroke->Compress();
-    iShowKeystrokeArrayForStroke->Reset();
-    iShowKeystrokeArrayForStroke->Compress();
-    iChooseChineseCharacterArrayForStroke->Reset();
-    iChooseChineseCharacterArrayForStroke->Compress();
-    iChooseChineseCharacterArrayKeystrokeForStroke->Reset();
-    iChooseChineseCharacterArrayKeystrokeForStroke->Compress();
-    
-    //reset zhuyin array
-    iZhuyinSymbols->Reset();
-    iFirstValidZhuyinGrp->Reset();
-    iChineseCharsDisped->Reset();
-    iZhuyinSymbolsForChineseCharsDisped->Reset();
-    
-    iZhuyinSymbols->Compress();
-    iFirstValidZhuyinGrp->Compress();
-    iChineseCharsDisped->Compress();
-    iZhuyinSymbolsForChineseCharsDisped->Compress();
-    
-    iLastResouce = 0;
-    iValidKeystrokeCount = 0;
-    iPhraseCreation = 0;
-    iPhraseCreationEditingState = 0;
-    iHighLightFlag = 0;
-    iChangeStateFromEditToSpelling = 0;
-    iValidKeystrokeChanged = 0;
-    
-    }
-
-void CAknFepUICtrlPinyinPopup::SetChangeState( TBool aChangeState )
-    {
-    iChangeState =  aChangeState ;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::IsChangeStatet() const
-    {
-    return iChangeState;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetState( TInt aState )
-    {
-    iState = aState;
-    }
-
-TInt CAknFepUICtrlPinyinPopup::GetState()
-    {
-    return iState;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetPhraseCreationState( TBool aState )
-    {
-    iPhraseCreation = aState;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::GetPhraseCreationState()
-    {
-    return iPhraseCreation;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetPhraseCreationEditingState( TBool aState )
-    {
-    iPhraseCreationEditingState = aState;
-    }
-
-TBool CAknFepUICtrlPinyinPopup::GetPhraseCreationEditingState()
-    {
-    return iPhraseCreationEditingState;
-    }
-
-// ---------------------------------------------------------
-// Set flag whether from candidate state change state.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetFromCandidateChangeStateFlag( TBool aFlag )
-    {
-    iHighLightFlag = aFlag;
-    }
-
-// ---------------------------------------------------------
-// Get flag whether from candidate state change state.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinPopup::GetFromCandidateChangeStateFlag()
-    {
-    return iHighLightFlag;
-    }
-
-// ---------------------------------------------------------
-// Set count of valid keystroke.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetValidKeystrokeCount( TInt aCount )
-	{
-	iValidKeystrokeCount = aCount;
-	}
-
-// ---------------------------------------------------------
-// Set count of valid keystroke.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinPopup::GetValidKeystrokeCount()
-	{
-	return iValidKeystrokeCount;
-	}
-
-// ---------------------------------------------------------
-// Set last cba resouce id.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetLastResouce( TInt aResouceId )
-    {
-    iLastResouce = aResouceId;
-    }
-
-// ---------------------------------------------------------
-// Get last cba resouce id.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinPopup::GetLastResouce()
-    {
-    return iLastResouce;
-    }
-
-// ---------------------------------------------------------
-// Set change state from Edit to Spelling flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetFromEditToSpellingFlag( TBool aFlag )
-    {
-    iChangeStateFromEditToSpelling = aFlag;
-    }
-
-// ---------------------------------------------------------
-// Get change state from Edit to Spelling flag.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinPopup::GetFromEditToSpellingFlag()
-    {
-    return iChangeStateFromEditToSpelling;
-    }
-
-// ---------------------------------------------------------
-// Set valid keystroke change flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetValidKeystrokeChange( TBool aFlag )
-    {
-    iValidKeystrokeChanged = aFlag;
-    }
-
-// ---------------------------------------------------------
-// Get valid keystroke change flag.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinPopup::GetValidKeystrokeChange()
-    {
-    return iValidKeystrokeChanged;
-    }
-
-// ---------------------------------------------------------
-// Set PreStateIsPredict flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinPopup::SetPreStateIsPredictive( TBool aFlag )
-    {
-    iPreStateIsPredictive = aFlag;
-    }
-
-// ---------------------------------------------------------
-// Set PreStateIsPredict flag.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinPopup::GetPreStateIsPredictive()
-    {
-    return iPreStateIsPredictive;
-    }
-
-void CAknFepUICtrlPinyinPopup::SetInputLayoutMiniQwertyZhuyin()
-    {
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        iInputPaneArray[i]->SetLayout( CAknFepUICtrlInputPane::ELayoutPhraseMiniQwertyZhuyin );
-        }
-    }
-
-void CAknFepUICtrlPinyinPopup::ResetInputLayoutMiniQwertyZhuyin()
-    {
-    for(TInt i = 0; i < EMaxPhraseCandidate; i++)
-        {
-        iInputPaneArray[i]->SetLayout( CAknFepUICtrlInputPane::ELayoutPhrasePinyinPopupPane );
-        }
-    }
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonImpl.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,896 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the FEP's Avkon UI access methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiAvkonImpl.h"
-#include "AknFepUiAvkonStylusPopUpMenu.h"
-#include <aknnotedialog.h>          //CAknNoteDialog
-#include <aknmessagequerydialog.h>  //CAknMessageQueryDialog
-#include <aknradiobuttonsettingpage.h>
-#include <aknsettingpage.h>
-#include <aknlistquerydialog.h>
-#include <aknedsts.h>               //CAknEdwinState
-#include <barsread.h>
-#include <aknfep.rsg>
-#include "AknFepGlobalEnums.h"
-#include <aknstyluspopupmenu.h>
-#include <aknSctDialog.h>           //CAknCharMapDialog
-#include <akntouchpane.h>
-#include "AknFepQuery.h"
-#include <aknedformaccessor.h>
-#include "AknFepIndicatorAvkon.h"
-#include <AknFepManagerInterface.h> // MAknFepManagerInterface
-#include <AknIndicatorContainer.h>  //CAknIndicatorContainer
-#include "AknFepUIAvkonCtrlContainerChinese.h"
-#include "AknFepUIAvkonCtrlContainerJapanese.h"
-#include <AknFepUiInterfacePanic.h>
-#include "AknFepUIAvkonCtrlJapaneseKutenQueryDialog.h"
-#include <featmgr.h>
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-#include <aknappui.h>
-#include <akntitle.h> //CAknTitlePane
-#include <StringLoader.h>
-#include "AknFepAvkonCandidatePopup.h"
-#include "AknFepUiAvkonCtrlExactWordPopupContent.h"
-#include "AknFepPredictiveSettingDialog.h"
-#include "AknFepUserDictionaryEditDialog.h"
-
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-#include "AknFepUIAvkonCtrlDualLanguageSettingDialog.h"
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-// Predictive QWERTY (XT9) changes <----
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__    
-#include <AvkonInternalCRKeys.h> 
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-GLDEF_C void AknFepUiInterfacePanic(TAknFepUiInterfacePanic aPanic)
-    {
-    User::Panic(_L("AKNFEPUI"),aPanic);
-    }
-
-
-// This command is is used for setting empty CBA.
-const TInt ENullCommandId = 0;
-
-
-CAknFepUIAvkonImpl* CAknFepUIAvkonImpl::NewL()
-	{
-	CAknFepUIAvkonImpl* self = new(ELeave) CAknFepUIAvkonImpl();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;	
-	}
-
-void CAknFepUIAvkonImpl::ConstructL()
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__   
-    //Attach the P&S property to the keyboardlayout and subscribe to the P&S framework
-    // for any keyboard layout change.
-    User::LeaveIfError(iKeyboardLayoutStatusProperty.Attach(KCRUidAvkon, KAknKeyBoardLayout));    
-    iKeyboardLayoutStatusSubscriber = new (ELeave) CSubscriber(
-                                         TCallBack(HandleKeyboardLayoutChangeNotification, this), 
-                                         iKeyboardLayoutStatusProperty);    
-    iKeyboardLayoutStatusSubscriber->SubscribeL();
-#endif
-#endif     
-    }
-
-CAknFepUIAvkonImpl::CAknFepUIAvkonImpl()
-	{
-    iDialog = NULL;
-    iPredictiveSettingDialog = NULL;
-    iListQueryDialog = NULL;
-    iTextQueryDialog = NULL;
-	}
-CAknFepUIAvkonImpl::~CAknFepUIAvkonImpl()
-	{
-    delete iCba;
-    iCba = NULL;
-    DeleteDialogs();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__       
-    if (iKeyboardLayoutStatusSubscriber)
-        {
-        iKeyboardLayoutStatusSubscriber->StopSubscribe();
-        }
-    iKeyboardLayoutStatusProperty.Close();
-    delete iKeyboardLayoutStatusSubscriber;     
-#endif    
-#endif   
-	}
-
-void CAknFepUIAvkonImpl::DeleteDialogs()
-    {
-    if(iDialog)
-        {
-        delete iDialog;
-        iDialog = NULL;
-        }
-    if(iCharMapDialog)
-        {
-        delete iCharMapDialog;
-        iCharMapDialog = NULL;
-        }
-    if(iListQueryDialog)
-        {
-        delete iListQueryDialog;
-        iListQueryDialog = NULL;
-        }
-    if(iTextQueryDialog)
-        {
-        delete iTextQueryDialog;
-        iTextQueryDialog = NULL;
-        }
-    if(iPredictiveSettingDialog)
-        {
-        TRAP_IGNORE( iPredictiveSettingDialog->ProcessCommandL(EAknCmdExit));
-        }
-    }
-
-void CAknFepUIAvkonImpl::LaunchConfirmationNoteL(TInt aResourceId)
-	{
-    CAknNoteDialog* dlg = new (ELeave) CAknNoteDialog();
-    dlg->SetTimeout(CAknNoteDialog::EShortTimeout);
-    dlg->SetTone(CAknNoteDialog::ENoTone);
-    dlg->ExecuteLD(aResourceId);
-	}
-
-void CAknFepUIAvkonImpl::LaunchHelpTextQueryL(TInt aResourceId)
-	{
-    CAknMessageQueryDialog* dlg = new (ELeave) CAknMessageQueryDialog();
-    iDialog = dlg;
-    dlg->ExecuteLD(aResourceId);
-    iDialog = NULL;
-	}
-
-TInt CAknFepUIAvkonImpl::LaunchCangJieOptionDlgL(TInt aResourceId, TInt& aLevel, MDesC16Array* aItems)
-	{
-    CAknRadioButtonSettingPage* dlg = new (ELeave) CAknRadioButtonSettingPage (
-        aResourceId,
-        aLevel,
-        aItems
-        );
-    TBool ret = dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged);
-	return ret;
-	}
-
-/* TCleanupSlotBase can be placed on the cleanup stack to cleanup
- * a CBase derived object, but with the benefit that the CBase
- * object can be reassigned.
- * Essesntially it is a reusable cleanup stack slot.
- * This is useful for situations where you would like to be able
- * to remove or change an item on the cleanup stack, but do not
- * know enough about the contents of the cleanup stack above it
- * to unstack then restack the items that should remain.
- */
-class TCleanupSlotCBase
-	{
-public:
-	TCleanupSlotCBase() 
-		: iObj(NULL) 
-		{}
-	TCleanupSlotCBase(CBase* aObj) 
-		: iObj(aObj) 
-		{}
-	void PushL()
-		{ CleanupStack::PushL(TCleanupItem(Cleanup, this)); }
-	void Pop()
-		{ CleanupStack::Pop(); }
-	void PopAndDestroy()
-		{ CleanupStack::PopAndDestroy(); }
-	void SetObj(CBase* aObj)
-		{ iObj = aObj; }
-private:
-	static void Cleanup(TAny* aThis)
-		{ delete static_cast<CBase*>(static_cast<TCleanupSlotCBase*>(aThis)->iObj); }
-private:
-	CBase* iObj;
-	};
-	
-TInt CAknFepUIAvkonImpl::LaunchListPopupL(TInt aResourceId, TInt& aIndex, TInt aInitialIndex, MDesC16Array* aItems, CArrayPtr<CGulIcon>* aIcons)
-	{
-	TCleanupSlotCBase iconsCleanup(aIcons);
-	iconsCleanup.PushL();
-	
-    iListQueryDialog = new (ELeave) CAknListQueryDialog(&aIndex);
-    iListQueryDialog->PrepareLC( aResourceId );
-    
-    CAknListQueryControl* listQueryControl = 
-        STATIC_CAST( CAknListQueryControl*, iListQueryDialog->Control(EListQueryControl));
-    if (aIcons)
-    	{
-	    listQueryControl->Listbox()->ItemDrawer()->FormattedCellData()
-	        ->SetIconArrayL( aIcons );
-	   	iconsCleanup.SetObj(NULL);	// ownership transferred to dialog
-	    listQueryControl->Listbox()->ItemDrawer()->FormattedCellData()
-	        ->SetNotAlwaysDrawnSubCellL( 0, ETrue );// Needed because not using icon in cell.
-    	}
-
-    // Activate selected language:
-    CTextListBoxModel* model = listQueryControl->Listbox()->Model();
-    model->SetItemTextArray( aItems );
-    model->SetOwnershipType( ELbmDoesNotOwnItemArray );
-    iListQueryDialog->ListBox()->SetCurrentItemIndex( aInitialIndex );
-
-    // Fire up the dialog
-    TInt ret = iListQueryDialog->RunLD();
-    iconsCleanup.Pop();
-    iListQueryDialog = NULL;
-    return ret;
-	}
-
-void CAknFepUIAvkonImpl::UpdateSoftkeysL(TInt aResourceId, CAknEdwinState* aEditorState, MEikCommandObserver* aObserver, TInt aInputMode)
-	{
-    CEikButtonGroupContainer* currentEditorCba=aEditorState->CbaState().iCurrentCba;
-    if (currentEditorCba /*&& currentEditorCba->IsVisible()*/)
-        {
-//        currentEditorCba->MakeVisible(ETrue);
-        TBool cbaModified = EFalse;
-
-        // remove the old command button(s)
-        if (aEditorState->CbaState().iLeftSoftkeyCommandId)
-            {
-            currentEditorCba->RemoveCommandFromStack(ELeftSoftkeyIndex, currentEditorCba->ButtonGroup()->CommandId(ELeftSoftkeyIndex));
-            currentEditorCba->RemoveCommandObserver(ELeftSoftkeyIndex);
-            aEditorState->CbaState().iLeftSoftkeyCommandId=0;
-            cbaModified = ETrue;
-            }
-        if (aEditorState->CbaState().iRightSoftkeyCommandId)
-            {
-            currentEditorCba->RemoveCommandFromStack(ERightSoftkeyIndex, currentEditorCba->ButtonGroup()->CommandId(ERightSoftkeyIndex));
-            currentEditorCba->RemoveCommandObserver(ERightSoftkeyIndex);
-            aEditorState->CbaState().iRightSoftkeyCommandId=0;
-            cbaModified = ETrue;
-            }
-        if (aEditorState->MiddleSoftkeyCommandId())
-            {
-            currentEditorCba->RemoveCommandFromStack(EMiddleSoftkeyIndex, currentEditorCba->ButtonGroup()->CommandId(EMiddleSoftkeyIndex));
-            currentEditorCba->RemoveCommandObserver(EMiddleSoftkeyIndex);
-            aEditorState->SetMiddleSoftkeyCommandId(0);
-            cbaModified = ETrue;
-            }
-
-        if( aResourceId  == R_AKNFEP_SOFTKEYS_FINGER ||
-            aResourceId  == R_AKNFEP_SOFTKEYS_FINGER_OPTION_PREVIOUS  ||
-            aResourceId  == R_AKNFEP_SOFTKEYS_FINGER_SPELL_PREVIOUS )
-            {
-            ShowOwnsSoftkeysL(aResourceId, aObserver);
-            return;     // return this function
-            }
-        // for Japanese
-        switch (aResourceId)
-            {
-            case R_AKNFEP_SOFTKEYS_PREDICT_OTHER_COMMIT:
-            case R_AKNFEP_SOFTKEYS_EMPTY_EMPTY_COMMIT:
-            case R_AKNFEP_SOFTKEYS_EMPTY_OTHER_COMMIT:
-            case R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT:
-            case R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE:
-                ShowOwnsSoftkeysL(aResourceId, aObserver);
-                return;     // return this function
-            case R_AKNFEP_SOFTKEYS_CONVERT_OTHER_SELECT:
-            case R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_SELECT:
-            case R_AVKON_SOFTKEYS_EMPTY:
-                ShowEmptySoftkeysL(ETrue, aObserver, aInputMode);
-                return;     // return this function
-            default:
-                // delete iCba object in this function
-                ShowEmptySoftkeysL(EFalse, aObserver, aInputMode);
-                break;
-            }
-
-        // add the new button/command ids
-        if (aResourceId)
-            {
-            TResourceReader reader;
-            CCoeEnv::Static()->CreateResourceReaderLC(reader, aResourceId);
-            reader.ReadInt32();     // flags
-            reader.ReadInt16();     // width
-            reader.ReadInt32();     // related buttons
-            reader.ReadInt16();     // size of buttons array
-
-            TInt leftSoftkeyShortCommandId=(currentEditorCba->ButtonGroup()->CommandId(ELeftSoftkeyIndex)) & 0x0000ffff;
-
-            for (TInt index=0; index < currentEditorCba->ButtonCount(); index++)
-                {
-                TInt cbaIndex = index;
-                if ( index >=1 )
-                    {
-                    cbaIndex++;    // skip the scrollbar
-                    }
-
-                TUint8 version = (TUint8)reader.ReadUint8();
-                TInt commandId;
-                if (version == KAknCbaVersion)
-                    {
-                    TUint32 shortCommandId = reader.ReadUint16();
-                    TUint32 longCommandId = reader.ReadUint16();
-                    commandId = (longCommandId << 16) | shortCommandId;
-                    }
-                else
-                    {
-                    commandId = TInt(TUint(reader.ReadUint16()));
-                    }
-                TPtrC text=reader.ReadTPtrC();
-                reader.ReadTPtrC(); // bmp filename
-                reader.ReadInt16(); // bmp id
-                reader.ReadInt16(); // bmp mask id
-
-                // check we have a command and also check that if we're changing the
-                // left softkey that it is 'Options'
-                if ( commandId )
-                    {
-                    if(!currentEditorCba->UpdatedCommandObserverExists(CEikButtonGroupContainer::TCommandPosition(cbaIndex)))
-                        {
-                        currentEditorCba->UpdateCommandObserverL(cbaIndex, *aObserver);
-                        currentEditorCba->AddCommandToStackL(cbaIndex, commandId, text);
-                        
-                    if (cbaIndex==ELeftSoftkeyIndex)
-                        {
-                        aEditorState->CbaState().iLeftSoftkeyCommandId=commandId;
-                        }
-                    else if (cbaIndex==ERightSoftkeyIndex)
-                        {
-                        aEditorState->CbaState().iRightSoftkeyCommandId=commandId;
-                        }
-                    else if (cbaIndex==EMiddleSoftkeyIndex)
-                        {
-                        aEditorState->SetMiddleSoftkeyCommandId(commandId);
-                        }
-                        }
-
-                    cbaModified = ETrue;
-                    }
-                }
-            CleanupStack::PopAndDestroy(); // reader
-            }
-
-        if (cbaModified)
-            {
-            currentEditorCba->DrawNow(); // to update the cba
-            }
-        }
-	}
-
-/**
- *  Show cba of aResourceId using owns cba object(iCba)
- *
- *  @since 3.2
- *  @param aResourceId Cba resource id.
- *  @return None
- */
-void CAknFepUIAvkonImpl::ShowOwnsSoftkeysL(const TInt aResourceId, MEikCommandObserver* aObserver)
-    {
-    if (iCba)
-        {
-        delete iCba;
-        iCba = NULL;
-        }
-    iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba,
-                                          CEikButtonGroupContainer::EHorizontal,
-                                          aObserver,
-                                          aResourceId);
-    iCba->SetBoundingRect(CEikonEnv::Static()->EikAppUi()->ApplicationRect());
-    iCba->DrawNow();
-    }
-
-/**
- * This method is that empty CBA is shown in case aShown is ETrue.
- * If aShown is EFalse, empty CBA is erased.
- */
-void CAknFepUIAvkonImpl::ShowEmptySoftkeysL(TBool aShown, MEikCommandObserver* aObserver, TInt aInputMode)
-    {
-    if (aShown)
-        {
-        if (!iCba)
-            {
-            iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, aObserver, R_AVKON_SOFTKEYS_EMPTY);
-            iCba->SetBoundingRect(CEikonEnv::Static()->EikAppUi()->ApplicationRect());
-            }
-        // set each CBA
-        TBool update = UpdateSoftkeyLabelL(ELeftSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY);
-        if (aInputMode == EPinyin || aInputMode == EZhuyin ||
-            aInputMode == EStroke || aInputMode == ECangJie)
-            {
-            update |= UpdateSoftkeyLabelL(ERightSoftkeyIndex, EAknFepSoftkeyCloseWindow, R_AKNFEP_SOFTKEY_CCPU_CANCEL);
-            update |= UpdateSoftkeyLabelL( EMiddleSoftkeyIndex, ENullCommandId, R_AVKON_SOFTKEY_SELECT_TEXT ); 
-            }
-        else
-            {
-            update |= UpdateSoftkeyLabelL(ERightSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY);
-            update |= UpdateSoftkeyLabelL(EMiddleSoftkeyIndex, ENullCommandId, R_TEXT_SOFTKEY_EMPTY);
-            }
-
-        if (update)
-            {
-            iCba->DrawNow();
-            }
-        }
-    else
-        {
-        delete iCba;
-        iCba = NULL;
-        }
-    }
-
-TBool CAknFepUIAvkonImpl::SoftkeysExist()
-	{
-	return iCba != NULL;
-	}
-
-TInt CAknFepUIAvkonImpl::SoftkeyCommandId(TInt aPosition)
-	{
-	return iCba->ButtonGroup()->CommandId(aPosition);
-	}
-
-void CAknFepUIAvkonImpl::DeleteSoftkeys()
-	{
-	delete iCba;
-	iCba = NULL;
-	}
-
-void CAknFepUIAvkonImpl::DrawSoftkeysNow()
-	{
-	iCba->DrawNow();
-	}
-
-void CAknFepUIAvkonImpl::CreateSoftkeys(TInt aResourceId, MEikCommandObserver* aObserver)
-	{
-	DeleteSoftkeys();
-    TRAP_IGNORE(iCba = CEikButtonGroupContainer::NewL(CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, aObserver, aResourceId));
-    iCba->SetBoundingRect(CEikonEnv::Static()->EikAppUi()->ApplicationRect());
-    iCba->MakeVisible(ETrue);
-    iCba->ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront + 10);
-	}
-
-TBool CAknFepUIAvkonImpl::UpdateSoftkeyLabelL(TInt aPosition, TInt aCommandId, TInt aTextResId)
-	{
-    if (iCba->ButtonGroup()->CommandId(aPosition) != aCommandId)
-        {
-        HBufC* buf = CEikonEnv::Static()->AllocReadResourceLC(aTextResId);
-        if( buf->Des().Length() > 1 && EMiddleSoftkeyIndex != aPosition )
-            {
-            iCba->SetCommandL(aPosition, aCommandId, buf->Des().Mid(1));                    
-            }
-        else
-            {           
-            iCba->SetCommandL(aPosition, aCommandId, *buf);
-            }
-        CleanupStack::PopAndDestroy(buf);
-        return ETrue;
-        }
-    return EFalse;
-	}
-
-void CAknFepUIAvkonImpl::SetFepMenuObserver(MAknFepUiInterfaceMenuObserver* aObserver)
-	{
-	iFepMenuObserver = aObserver;
-	if (aObserver)
-		{	
-		CAknEnv::Static()->SetFepMenuObserver(this);
-		}
-	else
-		{	
-		CAknEnv::Static()->SetFepMenuObserver(NULL);
-		}
-	}
-
-CAknFepUiInterfaceMenuBar* CAknFepUIAvkonImpl::EditorStateMenuBar(CAknEdwinState* aEditorState)
-	{
-	iEditorMenuBar.iMenuBar = aEditorState->MenuBar();
-	return &iEditorMenuBar;
-	}
-
-void CAknFepUIAvkonImpl::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
-	{
-	iTempMenuPane.iMenuPane = aMenuPane;
-	if (iFepMenuObserver)
-		iFepMenuObserver->DynInitMenuPaneL(aResourceId, &iTempMenuPane);
-	}
-
-void CAknFepUIAvkonImpl::DynInitMenuBarL(TInt aResourceId,CEikMenuBar* aMenuBar)
-	{
-	CAknFepUIAvkonMenuBarImpl* impl = &iTempMenuBar;
-	if (iEditorMenuBar.iMenuBar == aMenuBar)
-		impl = &iEditorMenuBar;
-	impl->iMenuBar = aMenuBar;
-	if (iFepMenuObserver)
-		iFepMenuObserver->DynInitMenuBarL(aResourceId, impl);
-	}
-
-void CAknFepUIAvkonImpl::SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis)
-	{
-	CBase* impl = NULL;
-	if (aMenuControl == iEditorMenuBar.iMenuBar)
-		impl = &iEditorMenuBar;
-	else if (aMenuControl == iTempMenuBar.iMenuBar)
-		impl = &iTempMenuBar;
-	else if (aMenuControl == iTempMenuPane.iMenuPane)
-		impl = &iTempMenuPane;
-	if (iFepMenuObserver)
-		iFepMenuObserver->SetEmphasis(impl, aEmphasis);
-	}
-
-void CAknFepUIAvkonImpl::ProcessCommandL(TInt aCommandId)
-	{
-	if (iFepMenuObserver)
-		iFepMenuObserver->ProcessCommandL(aCommandId);
-	}
-
-CAknFepUiInterfaceMenuBar* CAknFepUIAvkonImpl::NewMenuBarL(MAknFepUiInterfaceMenuObserver* aObserver, TInt aHotKeyResourceId, TInt aMenuTitleResourceId)
-	{
-	CAknFepUIAvkonMenuBarOwningImpl* menuBar = new(ELeave) CAknFepUIAvkonMenuBarOwningImpl;
-	CleanupStack::PushL(menuBar);
-	menuBar->ConstructL(aObserver, aHotKeyResourceId, aMenuTitleResourceId);
-	CleanupStack::Pop(menuBar);
-	return menuBar;
-	}
-
-CAknFepUiInterfaceStylusPopUpMenu* CAknFepUIAvkonImpl::NewStylusPopUpMenuL(MAknFepUiInterfaceMenuObserver* aObserver, const TPoint& aPoint)
-	{
-	CAknFepUIAvkonStylusPopUpMenu* popupMenu = new(ELeave) CAknFepUIAvkonStylusPopUpMenu;
-	CleanupStack::PushL(popupMenu);
-	popupMenu->ConstructL(aObserver, aPoint);
-	CleanupStack::Pop(popupMenu);
-	return popupMenu;
-	}
-
-TInt CAknFepUIAvkonImpl::CharMapDialogL(TInt aCharCase, TDes& aSpecialChars, TInt aCharSetResourceId, TBool aLockNumericKeys, TBool aShowPictographsFirst, TBool aShowNoPictographs, TBool aShowAnotherTable, TInt aAfterSctChars, TInt aResId, TBool aDisableRecentItemRow )
-	{
-	TInt result;
-	
-	iCharMapDialog = new(ELeave) CAknCharMapDialog(aCharCase, aSpecialChars, aCharSetResourceId);
-
-    if (aLockNumericKeys)
-        {
-        iCharMapDialog->LockNumericKeys(ETrue);
-        }
-
-    if ( aShowPictographsFirst )
-        {
-        // It is supposed that the pictograph table launch is allowed in this case.
-        iCharMapDialog->ShowPictographsFirst();
-        }
-    else if (aShowNoPictographs)
-        {
-        // Pictograph table is not shown.
-        iCharMapDialog->ShowNoPictographs();
-        }
-
-    if (aShowAnotherTable)
-        {
-        iCharMapDialog->ShowAnotherTable(aAfterSctChars);
-        }
-    if(aDisableRecentItemRow)
-        {
-        iCharMapDialog->DisableRecentCharsRow();
-        }
-    
-
-    result = iCharMapDialog->ExecuteLD(aResId);
-    iCharMapDialog = NULL;
-    return result;
-	}
-
-void CAknFepUIAvkonImpl::TouchPaneSetFepPenSupportInterface(MAknFepPenSupportInterface* aFepPenSupportInterface)
-	{
-	if(iAvkonAppUi->TouchPane())
-		iAvkonAppUi->TouchPane()->SetFepPenSupportInterface(aFepPenSupportInterface);
-	}
-
-void CAknFepUIAvkonImpl::TouchPaneAllowInputMethodActivation(TBool aValue)
-	{
-	if(iAvkonAppUi->TouchPane())
-		iAvkonAppUi->TouchPane()->AllowInputMethodActivation(aValue);
-	}
-
-void CAknFepUIAvkonImpl::TouchPaneRefreshL()
-	{
-	if(iAvkonAppUi->TouchPane())
-		iAvkonAppUi->TouchPane()->RefreshL();
-	}
-
-void CAknFepUIAvkonImpl::TouchPaneSetInputMethodIconActivated(TBool aActivated)
-	{
-	if(iAvkonAppUi->TouchPane())
-		iAvkonAppUi->TouchPane()->SetInputMethodIconActivated(aActivated);
-	}
-
-TInt CAknFepUIAvkonImpl::TextQueryDialogL(TDes& aDataText, CAknEdwinState& aEditorState, TInt aEditorFlag, TInt aResId)
-	{
-	TInt result;
-    iTextQueryDialog = new (ELeave) CAknFepTextQueryDialog(aDataText, aEditorState, CAknFepTextQueryDialog::ENoTone, aEditorFlag);
-    iTextQueryDialog->PrepareLC(aResId);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    //last char space has to be reserved for null terminator
-    iTextQueryDialog->SetMaxLength( KMaxUDBLength - 1 );
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    result = iTextQueryDialog->RunLD();
-    iTextQueryDialog = NULL;
-    return result;
-	}
-
-CPlainText* CAknFepUIAvkonImpl::PlainText(CAknEdwinState* aEditorState)
-	{
-    CEikEdwin* editor = NULL;
-    if (aEditorState)
-        {
-        CAknEdwinFormAccessor* formAccessor = aEditorState->FormAccessor();
-        if (formAccessor)
-            {
-            editor = (CEikEdwin*)formAccessor->FormClientControl();
-            if (editor)
-                {
-                return editor->Text();                
-                }
-            }
-        }
-    return NULL;
-	}
-
-void CAknFepUIAvkonImpl::UpdateEditorContext(MAknEditingStateIndicator& aIndicator, MAknFepManagerInterface& aManager)
-	{
-    CAknIndicatorContainer* indicatorContainer = aIndicator.IndicatorContainer();
-
-    if(indicatorContainer)
-        {
-        TInt indicatorContext = indicatorContainer->IndicatorContext();
-        aManager.SetEditorContext(indicatorContext);
-        }
-	}
-
-CAknFepIndicator* CAknFepUIAvkonImpl::NewIndicatorL()
-	{
-    return CAknFepIndicatorAvkon::NewL();
-	}
-
-TBool CAknFepUIAvkonImpl::IsDisplayDataQuery(TBool aIsFepAwareTextEditor)
-	{
-    CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
-    
-    if( eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl() )
-        {
-        CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg );
-        
-        if ( dlg )
-            {
-            TInt flag = dlg->DialogFlags();
-
-            if(!(flag & EEikDialogFlagFillScreen) &&
-               !(flag & EEikDialogFlagFillAppClientRect) )
-                {
-                MObjectProvider* objectProvider = NULL;
-				MCoeFepAwareTextEditor* editor;
-			    MCoeFepAwareTextEditor_Extension1* ext1;
-    			CAknEdwinState* state;
-                CCoeEnv* coeEnv = CCoeEnv::Static();
-                TCoeInputCapabilities inputCapabilities = 
-                    static_cast<const CCoeAppUi*>(coeEnv->AppUi())->InputCapabilities();
-
-    			if ( aIsFepAwareTextEditor &&
-         			( editor = inputCapabilities.FepAwareTextEditor() ) != NULL &&       
-         		    ( ext1 = editor->Extension1() ) != NULL &&
-				    ( state = (CAknEdwinState*)ext1->State( KNullUid ) ) != NULL )
-        			{
-        			objectProvider = state->ObjectProvider();
-        			}
-
-    			// If not found, try to get object provider from input capabilities.
-    			// It is set there with CEikMfne-derived editors.
-
-    			if ( !objectProvider )
-        			{
-        			objectProvider = inputCapabilities.ObjectProvider();
-        			}
-
-			    if ( objectProvider )
-        			{
-        			CAknQueryControl* ctrl = objectProvider->MopGetObject( ctrl );
-        		
-        			if ( ctrl )
-        				{
-        				return ETrue;
-        				}
-        			}
-        		}
-            }
-        }
-         
-    return EFalse;
-	}
-
-CAknFepUiInterfaceMenuBar* CAknFepUIAvkonImpl::ObjectProviderMenuBar(MObjectProvider* aObjectProvider)
-	{
-	if (!aObjectProvider)
-		return NULL;
-	CEikMenuBar* menu;
-	aObjectProvider->MopGetObject(menu);
-	if (menu)
-		{
-		iObjectProviderMenuBar.iMenuBar = menu;
-		return &iObjectProviderMenuBar;
-		}
-	else
-		return NULL;
-	}
-
-MAknFepUICtrlContainerChinese* CAknFepUIAvkonImpl::NewAknFepUICtrlContainerChineseL()
-	{
-    if (FeatureManager::FeatureSupported(KFeatureIdChinese))
-        {
-        return CAknFepUICtrlContainerChinese::NewL();
-        }
-
-    User::Leave(KErrNotSupported);
-	return NULL;
-	}
-
-MAknFepUICtrlContainerJapanese* CAknFepUIAvkonImpl::NewAknFepUICtrlContainerJapaneseL(CAknFepUIManagerJapanese* aUiMng)
-	{
-    if (FeatureManager::FeatureSupported(KFeatureIdJapanese))
-        {
-        return CAknFepUICtrlContainerJapanese::NewL(aUiMng);
-        }
-    return NULL;
-	}
-
-void CAknFepUIAvkonImpl::JapaneseKutenQueryDialogL(TInt aResId, TInt& aCharCode, TInt aTone)
-	{
-    if (FeatureManager::FeatureSupported(KFeatureIdJapanese))
-        {
-        CAknFepUICtrlJapaneseKutenQueryDialog* query = CAknFepUICtrlJapaneseKutenQueryDialog::NewL(aCharCode, (CAknQueryDialog::TTone)aTone);
-        iDialog = query;
-        query->ExecuteLD(aResId);
-        iDialog = NULL;
-        }
-	}
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-MAknFepCandidatePopup* CAknFepUIAvkonImpl::NewCandidatePopupL(MAknFepCandidatePopupCallback& aOwner)
-	{
-	MAknFepCandidatePopup* candidatePopup = CAknFepAvkonCandidatePopup::NewL(aOwner);
-	return candidatePopup;
-	}
-
-MAknFepUiWordPopupContent* CAknFepUIAvkonImpl::CreateWordPopupContentL()
-	{
-	return CAknFepExactWordPopupContent::NewL();	
-	}
-	
-void CAknFepUIAvkonImpl::LaunchPredictiveSettingDialogL(TInt aDialogResId, 
-														TInt aMenuResId, 
-														TInt aConfirmationQueryResId,
-														TInt aTitlePaneResId)
-	{
-	iPredictiveSettingDialog = CAknFepPredictiveSettingDialog::NewL(aMenuResId, aConfirmationQueryResId, aTitlePaneResId);
-	iPredictiveSettingDialog->ExecuteLD(aDialogResId);
-	iPredictiveSettingDialog = NULL;
-	}
-
-#ifdef __USER_DICTIONARY_EDITING__
-void CAknFepUIAvkonImpl::LaunchUserDictEditDialogL()
-    {
-    CAknFepUserDictionaryEditDialog::RunDlgLD();
-    }
-#endif //__USER_DICTIONARY_EDITING__
-
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-void CAknFepUIAvkonImpl::LaunchWritingLanguageSettingDialogL(TInt aDialogResId, TInt aMenuResId, TInt aTitlePaneResId)
-    {    
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-	CAknAppUi* appUi = static_cast<CAknAppUi*>(coeEnv->AppUi());
-    CAknTitlePane* titlePane = static_cast<CAknTitlePane*>( appUi->StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-    
-    const TDesC* appTitle = titlePane->Text();
-	HBufC* oldTitle = appTitle->AllocL();
-	CleanupStack::PushL(oldTitle);
-	HBufC* title = StringLoader::LoadLC( aTitlePaneResId,coeEnv);
-    titlePane->SetTextL( *title );
-    CleanupStack::PopAndDestroy(title);
-    
-    CAknFepDualLanguageSettingDialog* dlg = CAknFepDualLanguageSettingDialog::NewL(aMenuResId);            
-    iDialog = dlg;
-    dlg->ExecuteLD(aDialogResId);
-    iDialog = NULL;
-    
-    titlePane->SetTextL( *oldTitle );
-    CleanupStack::PopAndDestroy(oldTitle);
-    }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-// Predictive QWERTY (XT9) changes <----	
-
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-TInt CAknFepUIAvkonImpl::HandleKeyboardLayoutChangeNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepUIAvkonImpl*>(aObj)->HandleKeyboardLayoutChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-void CAknFepUIAvkonImpl::HandleKeyboardLayoutChange()
-    {
-    if(iPredictiveSettingDialog)
-        {
-        iPredictiveSettingDialog->HandleResourceChange(KEikDynamicLayoutVariantSwitch);
-        }
-    }
-
-CAknFepUIAvkonImpl::CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty)
-    :
-    CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CAknFepUIAvkonImpl::CSubscriber::~CSubscriber()
-    {
-    Cancel();
-    }
-
-void CAknFepUIAvkonImpl::CSubscriber::SubscribeL()
-    {
-    if (!IsActive())
-        {
-        iProperty.Subscribe(iStatus);
-        SetActive();
-        }
-    }
-
-void CAknFepUIAvkonImpl::CSubscriber::StopSubscribe()
-    {
-    Cancel();
-    }
-
-void CAknFepUIAvkonImpl::CSubscriber::RunL()
-    {
-    if (iStatus.Int() == KErrNone)
-        {
-        iCallBack.CallBack();
-        SubscribeL();
-        }
-    }
-
-void CAknFepUIAvkonImpl::CSubscriber::DoCancel()
-    {
-    iProperty.Cancel();
-    }
-    
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonMenus.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,267 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the FEP's Avkon UI access methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiAvkonMenus.h"
-#include <eikmenub.h>
-#include <eikmenup.h>
-#include <eikappui.h>
-
-CAknFepUIAvkonMenuPaneImpl::CAknFepUIAvkonMenuPaneImpl()
-	{
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::ConstructMenuSctRowFromDialogL( TInt aCharCase, TDes& aSpecialChars, TInt aResourceId )
-	{
-	if (iMenuPane)
-		iMenuPane->ConstructMenuSctRowFromDialogL(aCharCase, aSpecialChars, aResourceId);
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::ConstructMenuSctRowL( TDes& aSpecialChars, TInt aResourceId )
-	{
-	if (iMenuPane)
-		iMenuPane->ConstructMenuSctRowL(aSpecialChars, aResourceId);
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::DeleteMenuItem(TInt aCommandId)
-	{
-	if (iMenuPane)
-		iMenuPane->DeleteMenuItem(aCommandId);
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::InsertMenuItemL(const SItemData& aMenuItem, TInt aPosition)
-	{
-	if (iMenuPane)
-		iMenuPane->InsertMenuItemL(*reinterpret_cast<const CEikMenuPaneItem::SData*>(&aMenuItem), aPosition);
-	}
-
-TBool CAknFepUIAvkonMenuPaneImpl::MenuItemExists(TInt aCommandId, TInt& aPosition)
-	{
-	if (iMenuPane)
-		return iMenuPane->MenuItemExists(aCommandId, aPosition);
-	return EFalse;
-	}
-
-TInt CAknFepUIAvkonMenuPaneImpl::NumberOfItemsInPane() const
-	{
-	if (iMenuPane)
-		return iMenuPane->NumberOfItemsInPane();
-	return 0;
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::SetItemDimmed(TInt aCommandId, TBool aDimmed)
-	{
-	TInt index(0);
-    if (iMenuPane && MenuItemExists( aCommandId, index ) )
-		iMenuPane->SetItemDimmed(aCommandId, aDimmed);
-	}
-
-void CAknFepUIAvkonMenuPaneImpl::SetMenuPane(CEikMenuPane* aMenuPane)
-	{
-	iMenuPane = aMenuPane;
-	}
-	
-CEikMenuPane* CAknFepUIAvkonMenuPaneImpl::GetMenuPane()
-  {
-  return iMenuPane;
-  }
-    
-CAknFepUIAvkonMenuBarImpl::CAknFepUIAvkonMenuBarImpl()
-	{
-	}
-
-CAknFepUiInterfaceMenuPane* CAknFepUIAvkonMenuBarImpl::MenuPane()
-	{
-	if (iMenuBar)
-	    {
-    	iTempMenuPane.iMenuPane = iMenuBar->MenuPane();
-	    }
-	return &iTempMenuPane;
-	}
-
-void CAknFepUIAvkonMenuBarImpl::SetMenuType(TMenuType aMenuType)
-	{
-	if (iMenuBar)
-		iMenuBar->SetMenuType(static_cast<CEikMenuBar::TMenuType>(aMenuType));
-	}
-
-void CAknFepUIAvkonMenuBarImpl::StopDisplayingMenuBar()
-	{
-	if (iMenuBar)
-		iMenuBar->StopDisplayingMenuBar();
-	}
-
-void CAknFepUIAvkonMenuBarImpl::ReplaceAllMenuPanes(TInt aResourceId)
-	{
-    // remove app menu panes
-    TInt count = iMenuBar->TitleArray()->Count() -  1;
-    for (TInt ii = 0; ii<count; ii++)
-        {
-        delete iMenuBar->TitleArray()->At(0);
-        iMenuBar->TitleArray()->Delete(0);
-        }
-    // add the mode menu
-    iMenuBar->TitleArray()->At(0)->iData.iMenuPaneResourceId = aResourceId;
-	}
-
-void CAknFepUIAvkonMenuBarImpl::TryDisplayMenuBarL()
-	{
-	if (iMenuBar)
-		iMenuBar->TryDisplayMenuBarL();
-	}
-
-void CAknFepUIAvkonMenuBarImpl::SetFocus(TBool aFocus)
-	{
-	if (iMenuBar)
-		iMenuBar->SetFocus(aFocus);
-	}
-
-void CAknFepUIAvkonMenuBarImpl::RemoveFromStack()
-	{
-	if (iMenuBar)
-		CCoeEnv::Static()->AppUi()->RemoveFromStack(iMenuBar);
-	}
-
-TInt CAknFepUIAvkonMenuBarImpl::FirstMenuPaneResourceId()
-	{
-	if (iMenuBar)
-		{
-        CEikMenuBar::CTitleArray* titles = iMenuBar->TitleArray();
-        if( titles->Count()	> 0 )
-            {
-            return (*titles)[0]->iData.iMenuPaneResourceId;
-            }
-		}
-	return 0;
-	}
-
-TBool CAknFepUIAvkonMenuBarImpl::IsDisplayed()
-	{
-	if (iMenuBar)
-		return iMenuBar->IsDisplayed();
-	return EFalse;
-	}
-
-void CAknFepUIAvkonMenuBarImpl::AddToStackL(TInt aPriority, TInt aStackingFlags)
-	{
-	if (iMenuBar)
-		CCoeEnv::Static()->AppUi()->AddToStackL(iMenuBar, aPriority, aStackingFlags);
-	}
-
-void CAknFepUIAvkonMenuBarImpl::TryDisplayMenuBarWithoutFepMenusL()
-	{
-	if (iMenuBar)
-		iMenuBar->TryDisplayMenuBarWithoutFepMenusL();
-	}
-
-void CAknFepUIAvkonMenuBarImpl::SetMenuTitleResourceId(TInt aResourceId)
-	{
-	if (iMenuBar)
-		iMenuBar->SetMenuTitleResourceId(aResourceId);
-	}
-	
-void CAknFepUIAvkonMenuBarImpl::SetEditMenuObserver(MAknFepUiInterfaceMenuObserver* aEditMenuObserver)
-	{
-	iEditMenuObserver.iObserver = aEditMenuObserver;
-	iMenuBar->SetEditMenuObserver(&iEditMenuObserver);
-	}
-	
-void CAknFepUIAvkonMenuBarImpl::RemoveEditMenuObserver(MAknFepUiInterfaceMenuObserver* aEditMenuObserver)
-	{
-	if (iEditMenuObserver.iObserver == aEditMenuObserver)
-		{
-		iMenuBar->RemoveEditMenuObserver(&iEditMenuObserver);
-		}
-	}
-
-void CAknFepUIAvkonMenuBarImpl::TEditMenuObserver::ProcessCommandL(TInt aCommandId)
-	{
-	if (iObserver)
-		iObserver->ProcessCommandL(aCommandId);
-	}
-
-void CAknFepUIAvkonMenuBarImpl::TEditMenuObserver::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane)
-	{
-	if (iObserver)
-		{
-		iTempPane.iMenuPane = aMenuPane;
-		iObserver->DynInitMenuPaneL(aResourceId, &iTempPane);
-		}
-	}
-
-void CAknFepUIAvkonMenuBarImpl::TEditMenuObserver::SetEmphasis(CCoeControl* /*aMenuControl*/,TBool aEmphasis)
-	{
-	// client code is not currently using aMenuControl
-	if (iObserver)
-		iObserver->SetEmphasis(NULL, aEmphasis);
-	}
-
-
-CAknFepUIAvkonMenuBarOwningImpl::~CAknFepUIAvkonMenuBarOwningImpl()
-	{
-	delete iMenuBar;
-	}
-
-void CAknFepUIAvkonMenuBarOwningImpl::ConstructL(MAknFepUiInterfaceMenuObserver* aObserver, TInt aHotKeyResourceId, TInt aMenuTitleResourceId)
-	{
-	iObserver = aObserver;
-    iMenuBar = new (ELeave) CEikMenuBar() ;
-    iMenuBar->ConstructL(this, aHotKeyResourceId, aMenuTitleResourceId) ;
-	}
-
-void CAknFepUIAvkonMenuBarOwningImpl::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
-	{
-	iTempMenuPane.iMenuPane = aMenuPane;
-	if (iObserver)
-		iObserver->DynInitMenuPaneL(aResourceId, &iTempMenuPane);
-	}
-
-void CAknFepUIAvkonMenuBarOwningImpl::DynInitMenuBarL(TInt aResourceId,CEikMenuBar* /*aMenuBar*/)
-	{
-	if (iObserver)
-		iObserver->DynInitMenuBarL(aResourceId, this);
-	}
-
-void CAknFepUIAvkonMenuBarOwningImpl::SetEmphasis(CCoeControl* aMenuControl,TBool aEmphasis)
-	{
-	CBase* obj = this;
-	if (aMenuControl != iMenuBar)
-		{
-		iTempMenuPane.iMenuPane = static_cast<CEikMenuPane*>(aMenuControl);
-		obj = &iTempMenuPane;
-		}
-	if (iObserver)
-		iObserver->SetEmphasis(obj, aEmphasis);
-	}
-
-void CAknFepUIAvkonMenuBarOwningImpl::ProcessCommandL(TInt aCommandId)
-	{
-	if (iObserver)
-		iObserver->ProcessCommandL(aCommandId);
-	}
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonPlugin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Boilerplate for FEP's Avkon UI plugin.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "AknFepUiAvkonImpl.h"
-#include <AknFepUiInterfacePlugin.h>
-
-class CFepUiAvkonImplPlugin : public CFepUiInterfacePlugin
-	{
-public:
-	static CFepUiAvkonImplPlugin* NewL();
-	TBool UseThisPlugin() const;
-	CAknFepUIInterface* NewImplL();
-	};
-
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(0x10285839, CFepUiAvkonImplPlugin::NewL)    
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-    return ImplementationTable;
-    }
-
-
-CFepUiAvkonImplPlugin* CFepUiAvkonImplPlugin::NewL()
-	{
-	return new(ELeave) CFepUiAvkonImplPlugin;
-	}
-
-TBool CFepUiAvkonImplPlugin::UseThisPlugin() const
-	{
-	// AknFepUiInterface will try to load this plugin last, so it should
-	// always be used if asked.
-	return ETrue;
-	}
-
-CAknFepUIInterface* CFepUiAvkonImplPlugin::NewImplL()
-	{
-	return CAknFepUIAvkonImpl::NewL();
-	}
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonStylusPopUpMenu.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the FEP's Avkon UI access methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiAvkonStylusPopUpMenu.h"
-#include "AknFepUiInterfacePanic.h"
-#include "aknfepuimenus.h"
-#include <aknstyluspopupmenu.h>
-
-
-CAknFepUIAvkonStylusPopUpMenu::~CAknFepUIAvkonStylusPopUpMenu()
-	{
-	delete iPopupMenu;
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::ConstructL(MAknFepUiInterfaceMenuObserver* aObserver, const TPoint& aPoint)
-	{
-	iObserver = aObserver;
-	iPopupMenu = CAknStylusPopUpMenu::NewL(this, aPoint);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::AddMenuItemL(const TDesC& aItem, const TInt aCommandId)
-	{
-	iPopupMenu->AddMenuItemL(aItem, aCommandId);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::SetPosition(const TPoint& aPoint)
-	{
-	iPopupMenu->SetPosition(aPoint);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::ShowMenu()
-	{
-	iPopupMenu->ShowMenu();
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::DynInitMenuPaneL(TInt /*aResourceId*/,CEikMenuPane* /*aMenuPane*/)
-	{
-	AknFepUiInterfacePanic(EAvkonImplNotSupported);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::DynInitMenuBarL(TInt /*aResourceId*/,CEikMenuBar* /*aMenuBar*/)
-	{
-	AknFepUiInterfacePanic(EAvkonImplNotSupported);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::SetEmphasis(CCoeControl* /*aMenuControl*/,TBool /*aEmphasis*/)
-	{
-	AknFepUiInterfacePanic(EAvkonImplNotSupported);
-	}
-
-void CAknFepUIAvkonStylusPopUpMenu::ProcessCommandL(TInt aCommandId)
-	{
-	iObserver->ProcessCommandL(aCommandId);
-	}
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUserDictionaryEditDialog.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,558 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/*
- * ============================================================================
- *  Name     : CAknFepUserDictionaryEditDialog 
- * ============================================================================
- */
-
-#include <COEMAIN.H>
-#include <EIKENV.H>
-#include <eikclbd.h>
-#include <akntitle.h>
-#include "AknFepUserDictionaryEditDialog.h"
-
-//For help:
-#include <hlplch.h>
-//#include <csxhelp\predinput.hlp.hrh>
-
-//Uid of AknFep
-const TUid KUidAknFep = {0x101FD65A};
-
-CAknFepUserDictionaryEditDialog *CAknFepUserDictionaryEditDialog::NewL(
-        TInt aOpenedItem,
-        CArrayFixFlat<TInt> *aSelectedItems,
-        MDesCArray *aArray)
-    {
-    CAknFepUserDictionaryEditDialog* self = CAknFepUserDictionaryEditDialog::NewLC(
-            aOpenedItem, aSelectedItems, aArray );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CAknFepUserDictionaryEditDialog *CAknFepUserDictionaryEditDialog::NewLC(
-        TInt aOpenedItem,
-        CArrayFixFlat<TInt> *aSelectedItems,
-        MDesCArray *aArray)
-    {
-    CAknFepUserDictionaryEditDialog* self = new (ELeave) CAknFepUserDictionaryEditDialog(
-            aOpenedItem, aSelectedItems, aArray );
-    CleanupStack::PushL(self);
-    self->ConstructL(R_UDB_EDIT_OPTIONS_MENUBAR);
-    return self;
-    }
-
-CAknFepUserDictionaryEditDialog::CAknFepUserDictionaryEditDialog(
-        TInt aOpenedItem,
-        CArrayFixFlat<TInt> *aSelectedItems,
-        MDesCArray *aArray )
-    :CAknMarkableListDialog(aOpenedItem, aSelectedItems, aArray, R_UDB_EDIT_OPTIONS_MENUBAR, NULL, NULL), 
-     iOpenedItem(aOpenedItem), iSelectedItems(aSelectedItems)
-    {
-    };
-
-CAknFepUserDictionaryEditDialog::~CAknFepUserDictionaryEditDialog()
-    {
-    delete iOwnWordsModel;
-    iOwnWordsModel = NULL;
-    iOwnWordsListBox = NULL;
-    };
-
-void CAknFepUserDictionaryEditDialog::RunDlgLD()
-    {
-    CDesCArrayFlat* arrWords = new (ELeave) CDesCArrayFlat(1);
-    CleanupStack::PushL( arrWords );
-    //ownership of selectedItems is given to CAknFepUserDictionaryEditDialog
-    CArrayFixFlat<TInt>* selectedItems = new (ELeave) CArrayFixFlat<TInt>(1);
-    CleanupStack::PushL( selectedItems );
-    
-    TInt openedItem(0);
-    CAknFepUserDictionaryEditDialog* dlg = CAknFepUserDictionaryEditDialog::NewL(
-                        openedItem, selectedItems, arrWords);
-    
-    //Save old title pane and display title for user dictionary editing
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    CAknAppUi* appUi = static_cast<CAknAppUi*>(coeEnv->AppUi());
-
-    CAknTitlePane* titlePane = 
-        static_cast<CAknTitlePane*>( appUi->StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
-
-    const TDesC* appTitle = titlePane->Text();
-    HBufC* oldTitle = appTitle->AllocL();
-    CleanupStack::PushL(oldTitle);
-    HBufC* title = StringLoader::LoadLC( R_AKNFEP_PRED_USERDICT_EDITING_TITLE );
-    titlePane->SetTextL( *title );
-    CleanupStack::PopAndDestroy(title);
-
-    dlg->ExecuteLD(R_USER_DICTIONARY_EDITING_DIALOG);
-    
-    //workaround to prevent application from crashing in case a 3rd party fep 
-    //was installed while the dialog was active. 
-    if( KUidAknFep != CCoeEnv::Static()->FepUid() )
-        {
-        User::Leave(KErrNone);
-        }
-    titlePane->SetTextL( *oldTitle );
-    CleanupStack::PopAndDestroy( 3, arrWords );
-    }
-
-
-void CAknFepUserDictionaryEditDialog::PreLayoutDynInitL()
-    {
-    CAknMarkableListDialog::PreLayoutDynInitL();
-    iOwnWordsListBox = (CEikColumnListBox*) ControlOrNull( ESelectionListControl );
-    //Initialize the model for retrieving UDB entries
-    iOwnWordsModel = CAknFepPredOwnWordsModel::NewL( iOwnWordsListBox->Model()->ItemTextArray() );
-    iOwnWordsListBox->HandleItemAdditionL();
-    
-    //Set the empty listbox string
-    HBufC* emptyListString_secondary = StringLoader::LoadLC( R_AKNFEP_PRED_USER_DICTIONARY_EMPTY );
-    HBufC* emptyListString = StringLoader::LoadLC( R_AKNFEP_PRED_USER_DICTIONARY_HEADING_EMPTY );
-    _LIT( KNewLine, "\n" );
-    TInt newLength = emptyListString->Length() + KNewLine().Length() + emptyListString_secondary->Length();
-    emptyListString = emptyListString->ReAllocL( newLength );
-    CleanupStack::Pop(); //emptyListString could now be at a different location
-    CleanupStack::PushL( emptyListString );
-    TPtr ptr = emptyListString->Des();
-    ptr.Append( KNewLine );
-    ptr.Append( *emptyListString_secondary );
-
-    iOwnWordsListBox->View()->SetListEmptyTextL( *emptyListString );
-    CleanupStack::PopAndDestroy( 2, emptyListString_secondary );
-    
-    //Set the middle soft key:
-    CEikButtonGroupContainer& cba = ButtonGroupContainer();
-    iMSKPosition = cba.PositionById( EAknSoftkeyContextOptions );
-    UpdateMSKLabelL();
-    
-    //For viewing extra long words:
-    iOwnWordsListBox->ItemDrawer()->ColumnData()->EnableMarqueeL(ETrue);
-    }
-
-void CAknFepUserDictionaryEditDialog::DynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane)
-    {
-    CAknMarkableListDialog::DynInitMenuPaneL( aResourceId, aMenuPane );
-    
-    if ( iOwnWordsListBox->SelectionIndexes()->Count() >= 1
-            && R_UDB_EDIT_OPTIONS_MENUPANE == aResourceId )
-        {
-        //At least one item in the list is marked. 
-        //Hide the "Edit" option.
-        aMenuPane->SetItemDimmed( EAknFepPredDictionaryCmdEdit, ETrue);
-        }
-    
-    if ( iOwnWordsListBox->Model()->NumberOfItems() <= 0 
-            && R_UDB_EDIT_OPTIONS_MENUPANE == aResourceId )
-        {
-        //No items available for editing/deletion:
-        aMenuPane->SetItemDimmed( EAknFepPredDictionaryCmdEdit, ETrue);
-        aMenuPane->SetItemDimmed( EAknFepPredDictionaryCmdDelete, ETrue);
-        }
-    
-    }
-
-void CAknFepUserDictionaryEditDialog::ProcessCommandL( TInt aCommandId )
-    {
-    
-    if ( MenuShowing() )
-        {
-        HideMenu();
-        }
-                
-    switch(aCommandId)
-        {
-        case EAknFepPredDictionaryCmdEdit :
-            {
-            HandleEditCommandL();
-            break; 
-            }              
-            
-        case EAknFepPredDictionaryCmdAdd :
-            {
-            HandleAddNewCommandL();
-            break; 
-            }
-            
-        case EAknFepPredDictionaryCmdDelete : 
-            {
-            HandleDeleteCommandL();
-            break; 
-            }
-                        
-        case EAknCmdMark :
-        case EAknCmdUnmark :
-        case EAknMarkAll :
-        case EAknUnmarkAll :
-            {
-            SelectionListProcessCommandL(aCommandId);
-            break;
-            }
-        
-        case EAknSoftkeyEdit :
-            {
-            if ( iOwnWordsListBox->Model()->NumberOfItems() <= 0 )
-                {
-                //No entries in the list. So only option available is "Add new"
-                HandleAddNewCommandL();
-                }
-            else if ( iOwnWordsListBox->SelectionIndexes()->Count() <= 0 )
-                {
-                //Words available and none are marked. So selection => "Edit"
-                HandleEditCommandL();
-                }
-            else
-                {
-                //Words are available and at least one is marked. 
-                //So selection => "Options" menu is launched
-                DisplayMenuL();
-                }
-            break;
-            }
-            
-        case EAknCmdHelp:
-            {
-            CArrayFix<TCoeHelpContext>* helpContext = new (ELeave) CArrayFixFlat<TCoeHelpContext>( 1 );
-            CleanupStack::PushL( helpContext );
-            //THIS IS TEMPORARY AND NEEDS TO BE UPDATED WHEN HELP CONTENT IS AVAILABLE!!!
-            TUid appuid = { 0x100058EC };
-            _LIT( KAknFepPredUserDictHelp, "PREDINPUT_HLP_USERDICT" );
-            helpContext->AppendL( TCoeHelpContext( appuid, KAknFepPredUserDictHelp() ) );
-            HlpLauncher::LaunchHelpApplicationL( CEikonEnv::Static()->WsSession(), helpContext );
-            CleanupStack::Pop( helpContext );  
-            break;
-            }
-        
-        case EAknCmdExit:
-            {
-            iAvkonAppUi->ProcessCommandL( aCommandId );
-            break;
-            }
-        default: CAknMarkableListDialog::ProcessCommandL( aCommandId );
-        }
-    
-    UpdateMSKLabelL();
-    
-    }
-
-TKeyResponse CAknFepUserDictionaryEditDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType )
-    {
-    TKeyResponse response( EKeyWasNotConsumed );
-    //Special handling required only for the clear/backspace/delete keys
-    //AND only when find pane is empty AND there is at least one item in focus/selected
-    if ( 
-            ( aKeyEvent.iCode == EKeyBackspace 
-                ||  aKeyEvent.iCode == EKeyDelete )
-        &&  ( 
-                FindBox()->TextLength() == 0 
-                && iOwnWordsListBox->Model()->NumberOfItems() > 0 
-                && (iOwnWordsListBox->SelectionIndexes()->Count() > 0 
-                        || iOwnWordsListBox->CurrentItemIndex() >= 0 ) 
-            )
-        )
-        {
-        //Delete the item(s)
-        HandleDeleteCommandL();
-        response = EKeyWasConsumed;
-        }
-    else
-        {
-        response = CAknMarkableListDialog::OfferKeyEventL( aKeyEvent, aType );
-        }
-    
-    //Update MSK only if key is not escape key (for exiting)
-    if ( EKeyEscape != aKeyEvent.iCode )
-        {
-        UpdateMSKLabelL();
-        }
-    return response;
-    }
-
-TBool CAknFepUserDictionaryEditDialog::OkToExitL(TInt aButtonId)
-    {
-    if ( EAknSoftkeyEdit == aButtonId || EAknSoftkeyContextOptions == aButtonId )
-        {
-        CAknFepUserDictionaryEditDialog::ProcessCommandL( EAknSoftkeyEdit );
-        return EFalse;
-        }
-    else
-        {
-        return CAknMarkableListDialog::OkToExitL( aButtonId );
-        }
-    }
-
-void CAknFepUserDictionaryEditDialog::UpdateMSKLabelL()
-    {
-    if ( iOwnWordsListBox && iOwnWordsListBox->Model() )
-        {
-        CEikButtonGroupContainer& cba = ButtonGroupContainer();
-        if ( iOwnWordsListBox->Model()->NumberOfItems() <= 0 )
-            {
-            //No entries in the list. So MSK is "Add new"
-            HBufC* mskLabel = StringLoader::LoadLC( R_AKNFEP_PRED_MSK_ADD_NEW );
-            cba.SetCommandL(iMSKPosition, EAknSoftkeyEdit, *mskLabel);    
-            CleanupStack::PopAndDestroy( mskLabel );
-            }
-        else if ( iOwnWordsListBox->SelectionIndexes()->Count() > 0 )
-            {
-            //Words are available and at least one is marked. 
-            //So on pressing MSK, "Options" menu is launched
-            HBufC* mskLabel = StringLoader::LoadLC( R_AKNFEP_PRED_MSK_CONTEXT_OPTIONS );
-            cba.SetCommandL(iMSKPosition, EAknSoftkeyContextOptions, *mskLabel);    
-            CleanupStack::PopAndDestroy( mskLabel );
-            }
-        else
-            {
-            //Words available and none are marked. So MSK should be "Edit"
-            HBufC* mskLabel = StringLoader::LoadLC( R_AKNFEP_PRED_MSK_EDIT );
-            cba.SetCommandL(iMSKPosition, EAknSoftkeyEdit, *mskLabel);    
-            CleanupStack::PopAndDestroy( mskLabel );
-            }
-        cba.DrawDeferred();
-        }
-    }
-
-void CAknFepUserDictionaryEditDialog::HandleEditCommandL()
-    {
-    CDesCArrayFlat* wordArray = (CDesCArrayFlat*)iOwnWordsListBox->Model()->ItemTextArray();
-    //First Get the current focussed word's index
-    TInt selectedWordIndex = iOwnWordsListBox->CurrentItemIndex();
-    //Edit option will be available only for the currently 
-    //focussed item. 
-    
-    //Get the indexed word and remove seperator ("\t")
-    TPtrC oldWord = ( (*wordArray)[selectedWordIndex] ).Mid(1);
-    HBufC* newWord = HBufC::NewLC( KMaxUDBLength );
-    //Copy the old word to newWord for the "Edit word" prompt
-    newWord->Des().Copy( oldWord );
-    TPtr newWordPtr(newWord->Des());
-    HBufC* queryTitle = StringLoader::LoadLC( R_AKNFEP_PRED_EDIT_QUERY );
-    if ( QueryWordL( *queryTitle, newWordPtr ) )
-        {
-        //Remove old word
-        if ( KErrNone == iOwnWordsModel->RemoveSelectedWordL( selectedWordIndex ) )
-            {
-            iOwnWordsListBox->HandleItemRemovalL();
-            //Now add the new word:
-            selectedWordIndex = iOwnWordsModel->AddNewWordL( newWordPtr );
-            if ( selectedWordIndex >= 0 )
-                {
-                iOwnWordsListBox->HandleItemAdditionL();
-                if ( (iOwnWordsListBox->CurrentItemIndex() >= 0) && FindBox() && (FindBox()->TextLength() > 0) )
-                    {
-                    HandleAddNewIntoFilteredListL( selectedWordIndex );
-                    }
-                if ( selectedWordIndex >=0 )
-                    {
-                    iOwnWordsListBox->SetCurrentItemIndex( selectedWordIndex );
-                    }
-                iOwnWordsListBox->DrawNow();
-                }
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( 2, newWord );
-    }
-
-void CAknFepUserDictionaryEditDialog::HandleAddNewCommandL()
-    {
-    HBufC* newWord = HBufC::NewLC( KMaxUDBLength );
-    TPtr newWordPtr(newWord->Des());
-    //if there is some text in the find pane, include it in the query
-    if ( FindBox()->TextLength() > 0 )
-        {
-        FindBox()->GetSearchText( newWordPtr );
-        }
-    HBufC* queryTitle = StringLoader::LoadLC( R_AKNFEP_PRED_ADD_QUERY );
-    if ( QueryWordL( *queryTitle, newWordPtr ) )
-        {
-        TInt selectedWordIndex = iOwnWordsModel->AddNewWordL( newWordPtr );
-        if ( selectedWordIndex >= 0 )
-            {
-            iOwnWordsListBox->HandleItemAdditionL();
-            if ( (iOwnWordsListBox->CurrentItemIndex() >= 0) && FindBox() && (FindBox()->TextLength() > 0) )
-                {
-                HandleAddNewIntoFilteredListL( selectedWordIndex );
-                }
-            if ( selectedWordIndex >=0 )
-                {
-                iOwnWordsListBox->SetCurrentItemIndex( selectedWordIndex );
-                }
-            iOwnWordsListBox->DrawNow();
-            }
-        }
-    CleanupStack::PopAndDestroy( 2, newWord );
-    }
-void CAknFepUserDictionaryEditDialog::HandleDeleteCommandL()
-    {
-    if ( iOwnWordsListBox->Model()->NumberOfItems() <= 0 )
-        {
-        //safety check - no words to delete so return from here
-        return;
-        }
-    
-    TInt updatedIndex(-1);
-    TInt numOfMarkedItems = iOwnWordsListBox->SelectionIndexes()->Count();
-    TInt currentIndex = CurrentItemIndex();
-    //If multiple items are marked:
-    if ( numOfMarkedItems > 1 )
-        {
-        //Load the confirmation string for multiple item deletion
-        HBufC* prompt = StringLoader::LoadLC( 
-                            R_AKNFEP_PRED_DELETE_MANY_QUERY, numOfMarkedItems );
-        if ( ConfirmDeleteL( *prompt ) )
-            {
-            const CArrayFix<TInt>* selectedItems = SelectedItemsL();/*(CArrayFix<TInt>*)filteredModel->Filter()->SelectionIndexes();*/
-            updatedIndex = iOwnWordsModel->RemoveSelectedWordsL( selectedItems );
-            }
-        CleanupStack::PopAndDestroy( prompt );
-        }
-    else
-        {
-        //Load the confirmation string for single item deletion
-        HBufC* prompt = StringLoader::LoadLC( R_AKNFEP_PRED_DELETE_1_QUERY );
-        if ( ConfirmDeleteL( *prompt ) )
-            {
-            //Deleting marked item?
-            if ( numOfMarkedItems == 1 )
-                {
-                updatedIndex = iOwnWordsModel->RemoveSelectedWordL( SelectedItemsL()->At(0) );
-                }
-            //or deleting the currently focussed item
-            else //just one entry to delete:
-                {
-                updatedIndex = iOwnWordsModel->RemoveSelectedWordL( currentIndex );
-                }
-            }
-        CleanupStack::PopAndDestroy( prompt );
-        }
-    
-    if ( updatedIndex == KErrNone )
-        {
-        iOwnWordsListBox->HandleItemRemovalL();
-                
-        CAknListBoxFilterItems* filter;
-        TInt filteredNumOfItems(-1);
-        if ( (iOwnWordsListBox->CurrentItemIndex() >= 0) && FindBox() && (FindBox()->TextLength() > 0) )
-            {
-            CAknFilteredTextListBoxModel* model = static_cast<CAknFilteredTextListBoxModel*>(iOwnWordsListBox->Model());
-            filter = model->Filter();
-            filter->HandleItemArrayChangeL();
-            filter->UpdateCachedDataL();
-            filteredNumOfItems = filter->FilteredNumberOfItems();
-            }
-        
-        //retain the current selection position, unless
-        //it refers to non-existant word. In this case, 
-        //keep selection at the end of the list.
-        TInt numOfItems = filteredNumOfItems>=0? filteredNumOfItems : iOwnWordsListBox->Model()->NumberOfItems();
-                
-        if ( currentIndex >= numOfItems && numOfItems > 0 )
-            {       
-            iOwnWordsListBox->SetCurrentItemIndex( numOfItems - 1 );
-            }
-        
-        
-        UpdateMSKLabelL();
-        iOwnWordsListBox->DrawNow();
-        }
-    
-    }
-
-//Query for new word from user. Also used to edit existing word
-TBool CAknFepUserDictionaryEditDialog::QueryWordL( const TDesC& aTitle, TDes& aNewWord )
-    {
-    CAknTextQueryDialog* dialog = CAknTextQueryDialog::NewL( aNewWord  );
-    dialog->PrepareLC( R_AKNFEP_PRED_USER_DICTIONARY_WORD_QUERY );
-    dialog->SetPromptL(aTitle);
-    //last char space has to be reserved for null terminator
-    dialog->SetMaxLength( KMaxUDBLength - 1 );
-    if ( EAknSoftkeyOk ==  dialog->RunLD() )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TBool CAknFepUserDictionaryEditDialog::ConfirmDeleteL( const TDesC& aPrompt )
-    {
-    CAknQueryDialog* dialog = CAknQueryDialog::NewL();
-    dialog->SetPromptL( aPrompt );
-    if ( EAknSoftkeyYes ==  dialog->ExecuteLD( R_AKNFEP_PRED_DELETE_CONFIRMATION_QUERY ) )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-TInt CAknFepUserDictionaryEditDialog::CurrentItemIndex()
-    {
-    if ( (iOwnWordsListBox->CurrentItemIndex() >= 0) && FindBox() && (FindBox()->TextLength() > 0) )
-        {
-        CAknFilteredTextListBoxModel* model = static_cast<CAknFilteredTextListBoxModel*>(iOwnWordsListBox->Model());
-        CAknListBoxFilterItems* filter = model->Filter(); 
-        return filter->FilteredItemIndex(iOwnWordsListBox->CurrentItemIndex());
-        }           
-    else
-        {
-        return iOwnWordsListBox->CurrentItemIndex();
-        }
-    }
-
-const CArrayFix<TInt>* CAknFepUserDictionaryEditDialog::SelectedItemsL()
-    {
-    const CArrayFix<TInt>* selectedItems;
-    if ( (iOwnWordsListBox->CurrentItemIndex() >= 0) && FindBox() && (FindBox()->TextLength() > 0) )
-        {
-        CAknFilteredTextListBoxModel* model = static_cast<CAknFilteredTextListBoxModel*>(iOwnWordsListBox->Model());
-        CAknListBoxFilterItems* filter = model->Filter();
-        filter->ResetFilteringL();
-        selectedItems = filter->SelectionIndexes();
-        }
-    else
-        {
-        selectedItems = iOwnWordsListBox->SelectionIndexes();
-        }
-    TKeyArrayFix actNumKey(0,ECmpTInt);
-    const_cast<CArrayFix<TInt>*>(selectedItems)->Sort(actNumKey);
-    return selectedItems;
-    }
-
-void CAknFepUserDictionaryEditDialog::HandleAddNewIntoFilteredListL( TInt &aOriginalItemIndex )
-    {
-    CAknFilteredTextListBoxModel* model = static_cast<CAknFilteredTextListBoxModel*>(iOwnWordsListBox->Model());
-    CAknListBoxFilterItems* filter = model->Filter();
-    filter->HandleItemArrayChangeL();
-    filter->UpdateCachedDataL();
-    TInt filteredNumOfItems = filter->FilteredNumberOfItems();
-    aOriginalItemIndex = filter->VisibleItemIndex( aOriginalItemIndex );
-    }
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepchineseuidataconv.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +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 CAknFepChineseUIDataConv methods.
-*
-*
-*/
-
-
-#include "aknfepchineseuidataconv.h"
-
-TInt CAknFepChineseUIDataConv::AnyToInt(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TInt*>(aOriginal));
-    }
-    
-TRect CAknFepChineseUIDataConv::AnyToRect(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TRect*>(aOriginal));
-    }
-    
-CFont* CAknFepChineseUIDataConv::AnyToFont(TAny* aOriginal)
-    {
-    return reinterpret_cast<CFont*>(aOriginal);
-    }
-    
-TPoint CAknFepChineseUIDataConv::AnyToPoint(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TPoint*>(aOriginal));
-    }
-    
-TRgb CAknFepChineseUIDataConv::AnyToRgb(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TRgb*>(aOriginal));
-    }
-    
-TSize CAknFepChineseUIDataConv::AnyToSize(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TSize*>(aOriginal));
-    }
-    
-TAknTextLineLayout CAknFepChineseUIDataConv::AnyToTextLine(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TAknTextLineLayout*>(aOriginal));
-    }
-
-TAknLayoutText CAknFepChineseUIDataConv::AnyToLayoutText(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TAknLayoutText*>(aOriginal));
-    }
-
-TAknWindowLineLayout CAknFepChineseUIDataConv::AnyToWindowLine(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TAknWindowLineLayout*>(aOriginal));
-    }
-
-TAknLayoutRect CAknFepChineseUIDataConv::AnyToLayoutRect(TAny* aOriginal)
-    {
-    return *(reinterpret_cast<TAknLayoutRect*>(aOriginal));
-    }
-
-//End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuictrleepcontrol.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,736 +0,0 @@
-/*
-* 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 CAknFepUICtrlEEPControl definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikappui.h>
-#include <eikenv.h> 
-#include <AknUtils.h> 
-#include <AknBidiTextUtils.h> //AknBidiTextUtils 
-#include <bidivisual.h> //TBidiLogicalToVisual
-#include <AknsSkinInstance.h> 
-#include <AknsDrawUtils.h> 
-#include <skinlayout.cdl.h>
-#include "aknlayoutscalable_avkon.cdl.h"
-
-#include "aknfepuictrleepcontrol.h"
-#include "insertionpoint.h"
-#include "aknfepuilayoutdatamgr.h"
-#include "aknfepchineseuidataconv.h"
-
-const TInt KMaxDispNum = 100;
-
-// ---------------------------------------------------------
-// NewL function.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlEEPControl* CAknFepUICtrlEEPControl::NewL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlEEPControl* self= CAknFepUICtrlEEPControl::NewLC( aParent, aLafDataMgr );
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-// ---------------------------------------------------------
-// NewLC function.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlEEPControl* CAknFepUICtrlEEPControl::NewLC( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlEEPControl* self = new ( ELeave ) CAknFepUICtrlEEPControl(aLafDataMgr);
-    CleanupStack::PushL( self ) ;
-    self->ConstructL( aParent );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlEEPControl::~CAknFepUICtrlEEPControl( )
-    {
-    if ( iBuffer )
-        {
-        delete iBuffer;
-        iBuffer = NULL;
-        }
-    if ( iInsertionPoint )
-        {
-        delete iInsertionPoint;
-        iInsertionPoint = NULL;
-        }
-    iArray.ResetAndDestroy( );
-    }
-
-// ---------------------------------------------------------
-// Draw the control.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::Draw( const TRect& /*aRect*/ ) const
-    {
-    CWindowGc& gc = SystemGc( );
-    TAknTextLineLayout textPaneTextLayout;
-    gc.Clear( Rect( ) ) ;
-    gc.SetPenStyle( CGraphicsContext::ESolidPen ) ;
-    TInt fontWidth = 0;
-    TRect editRectTmp;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance( );
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects( outerRect, innerRect ) ;
-
-    AknsDrawUtils::DrawFrame( skin, gc, outerRect, innerRect,
-        KAknsIIDQsnFrPopupSub, KAknsIIDQsnFrPopupCenterSubmenu ) ;
-
-    TRect textrect;
-    textrect.iTl = Rect().iTl + TPoint( Rect().Width( )*KLROffset/KDenominator, 3 ) ;
-    textrect.SetHeight( Rect().Height( ) ) ;
-    textrect.SetWidth( Rect().Width( )- Rect().Width( )*KLROffset/KDenominator * 2 ) ;
-
-        TAknLayoutText layoutText;
-        TAknTextLineLayout
-            textLayout=
-            AKN_LAYOUT_TEXT_Chinese_universal_FEP_entry_pane_texts_Line_1( 0);
-        layoutText.LayoutText( textrect, textLayout ) ;
-        const CFont* font = layoutText.Font( );
-        gc.UseFont( font ) ;
-    TInt baseLine = font->AscentInPixels( )/2 + Rect().Height( )/2 - 2;
-
-    TInt arrayCount = iArray.Count( );
-    TInt beg = 0;
-    TInt end = iBuffer->Length( ) - 1;
-    
-    for ( TInt i = 0; i < arrayCount; i++ )
-        {
-        TSegment* tmp = iArray[i];
-        fontWidth = font->TextWidthInPixels( iBuffer->Left( beg ) ) ;
-        editRectTmp = textrect;
-        editRectTmp.iTl.iX = textrect.iTl.iX + fontWidth;
-        gc.SetPenColor( iDefaultTextColor ) ;
-        gc.SetUnderlineStyle( EUnderlineOff ) ;
-        gc.DrawText( iBuffer->Mid( beg, tmp->iBegin - beg ) , editRectTmp,
-            baseLine ) ;
-        fontWidth = font->TextWidthInPixels( iBuffer->Left( tmp->iBegin ) ) ;
-        editRectTmp = textrect;
-        editRectTmp.iTl.iX = textrect.iTl.iX + fontWidth;
-        if ( tmp->iStyle == EHighlight )
-            {
-            gc.SetPenColor( iHighlightColor ) ;
-            }
-        else if ( tmp->iStyle == EUnderline )
-            {
-            gc.SetUnderlineStyle( EUnderlineOn ) ;
-            }
-        else if ( tmp->iStyle == EUnderlineHighlight )
-            {
-            gc.SetPenColor( iHighlightColor ) ;
-            gc.SetUnderlineStyle( EUnderlineOn ) ;
-            }
-        gc.DrawText(
-            iBuffer->Mid( tmp->iBegin, tmp->iEnd - tmp->iBegin + 1 ) ,
-            editRectTmp, baseLine ) ;
-        beg = tmp->iEnd + 1;
-        }
-    gc.SetPenColor( iDefaultTextColor ) ;
-    gc.SetUnderlineStyle( EUnderlineOff ) ;
-    fontWidth = font->TextWidthInPixels( iBuffer->Left( beg ) ) ;
-    editRectTmp = textrect;
-    editRectTmp.iTl.iX = textrect.iTl.iX + fontWidth;
-    gc.DrawText( iBuffer->Right( end - beg + 1 ) , editRectTmp, baseLine ) ;
-    gc.DiscardFont( );
-    
-    if ( isCursorDraw )
-        {
-        iInsertionPoint->SetTextRect( textrect ) ;
-        //iInsertionPoint->SetHeight( font->HeightInPixels( ) + 4 ) ;
-        iInsertionPoint->SetHeight();
-        iInsertionPoint->Draw( gc ) ;
-        }
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::SizeChanged( )
-    {
-    }
-
-// ---------------------------------------------------------
-// Set the visual text and store it into member data buffer.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::SetText( const TDesC& aDes )
-    {
-    ResetAll( );
-    * (this->iBuffer ) = aDes;
-    }
-
-// ---------------------------------------------------------
-// Set the cursor position in the visual text rect.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::SetCursorPosition( TInt aIndex )
-    {
-    if ( aIndex < 0 || aIndex> iBuffer->Length() + 1 )
-        {
-        return -1;
-        }
-    else
-        {
-        iCursorPosition = aIndex;
-        TInt offSetInPixel = 0;
-        TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-        const CFont* font = AknLayoutUtils::FontFromId ( textPaneTextLayout.iFont,
-            NULL );
-        offSetInPixel = font->TextWidthInPixels ( iBuffer->Left ( iCursorPosition ) );
-        this->iInsertionPoint->SetPosition ( offSetInPixel );
-        return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Get the cursor position in visual text.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::GetCursorPosition( )
-    {
-    return iCursorPosition;
-    }
-
-// ---------------------------------------------------------
-// Set the underlined text beginning index and ending index.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::SetUnderline( TInt aBeg, TInt aEnd )
-    {
-    if ( aBeg> aEnd 
-    		|| ( aBeg < 0 || aBeg> iBuffer->Length() )
-    		|| ( aEnd < 0 || aEnd> iBuffer->Length() ))
-        {
-        return -1;
-        }
-    else
-        {
-        SetSegment ( aBeg, aEnd, EUnderline );
-        return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Set the highlighted text beginning index and ending index.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::SetHighlight( TInt aBeg, TInt aEnd )
-    {
-    if ( aBeg> aEnd 
-    		|| ( aBeg < 0 || aBeg> iBuffer->Length() )
-    		|| ( aEnd < 0 || aEnd> iBuffer->Length() ))
-        {
-        return -1;
-        }
-    else
-        {
-        SetSegment ( aBeg, aEnd, EHighlight );
-        return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Add a TSegment into iArray to identify the segment with a specified style.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::SetSegmentL ( TInt aBeg, TInt aEnd, TDspStyle aStyle )
-    {
-    TInt left = aBeg;
-    TInt right = aEnd;
-    TSegment* tmp;
-    TSegment* newSeg;
-    RPointerArray<TSegment> newArray;
-    TBool consumed = EFalse;
-    
-    if ( iArray.Count() == 0 )
-        {
-        tmp = new ( ELeave )TSegment ( aBeg, aEnd, aStyle );
-        TLinearOrder<TSegment> orderByBegIndex(TSegment::CompareByBegIndex);
-        iArray.InsertInOrder ( tmp, orderByBegIndex );
-        consumed = ETrue;
-        return;
-        }
-    
-    for ( TInt i = 0; i < iArray.Count(); i++ )
-        {
-        tmp = iArray[i];
-        if ( left > tmp->iBegin && left < tmp->iEnd 
-            && right > tmp->iEnd )
-            {
-            if ( aStyle == tmp->iStyle )
-                {
-                left = tmp->iEnd + 1;
-                }
-            else
-                {
-                TInt tmpIndex = tmp->iEnd;
-                tmp->iEnd = left - 1;
-                newSeg = new ( ELeave ) TSegment ( left, tmpIndex, EUnderlineHighlight );
-                CleanupStack::PushL( newSeg );
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop( newSeg );
-                left = tmpIndex + 1;
-                }
-            }
-        else if ( left < tmp->iBegin
-            && right > tmp->iBegin && right < tmp->iEnd )
-            {
-            if ( aStyle == tmp->iStyle )
-                {
-                tmp->iBegin = left;
-                consumed = ETrue;
-                break;
-                }
-            else
-                {
-                newSeg = new ( ELeave ) TSegment ( left, tmp->iBegin - 1, aStyle );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                newSeg = new ( ELeave ) TSegment ( tmp->iBegin, right, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                tmp->iBegin = right + 1;
-                consumed = ETrue;
-                break;
-                }
-            }
-        else if ( left > tmp->iBegin && left < tmp->iEnd 
-            && right > tmp->iBegin && right < tmp->iEnd )
-            {
-            if ( aStyle == tmp->iStyle )
-                {
-                consumed = ETrue;
-                break;
-                }
-            else
-                {
-                newSeg = new ( ELeave ) TSegment ( tmp->iBegin, left - 1, tmp->iStyle );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                newSeg = new ( ELeave ) TSegment ( left, right, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                tmp->iBegin = right + 1;
-                consumed = ETrue;
-                break;
-                }
-            }
-        else if ( left < tmp->iBegin && right > tmp->iEnd )
-            {
-            if ( aStyle == tmp->iStyle )
-                {
-                tmp->iBegin = left;
-                left = tmp->iEnd + 1;
-                }
-            else
-                {
-                newSeg = new ( ELeave ) TSegment ( left, tmp->iBegin - 1, aStyle );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                tmp->iStyle = EUnderlineHighlight;
-                left = tmp->iEnd + 1;
-                }
-            }
-        else if ( left < tmp->iBegin && right < tmp->iBegin )
-            {
-            newSeg = new ( ELeave ) TSegment ( left, right, aStyle );
-            CleanupStack::PushL(newSeg);
-            newArray.AppendL( newSeg );
-            CleanupStack::Pop(newSeg);
-            consumed = ETrue;
-            break;
-            }
-        else if ( left > tmp->iEnd && right > tmp->iEnd )
-            {
-            if ( i == ( iArray.Count() - 1 )
-                || right < iArray[i+1]->iBegin )
-                {
-                newSeg = new ( ELeave ) TSegment ( left, right, aStyle );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                consumed = ETrue;
-                break;
-                }
-            }
-        else if (left == tmp->iBegin && right < tmp->iEnd )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		consumed = ETrue;
-        		break;
-        		}
-        	else
-        		{
-        		newSeg = new ( ELeave ) TSegment ( left, right, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-        		tmp->iBegin = right + 1;
-        		consumed = ETrue;
-        		break;
-        		}
-        	}
-        else if (left > tmp->iBegin && right == tmp->iEnd )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		consumed = ETrue;
-        		break;
-        		}
-        	else
-        		{
-        		newSeg = new ( ELeave ) TSegment ( left, right, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-        		tmp->iEnd = left - 1;
-        		consumed = ETrue;
-        		break;
-        		}
-        	}
-        else if (left == tmp->iBegin && right == tmp->iEnd )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		consumed = ETrue;
-        		break;
-        		}
-        	else
-        		{
-        		tmp->iStyle = EUnderlineHighlight;
-        		consumed = ETrue;
-        		break;
-        		}
-        	}
-        else if (left == tmp->iBegin && right > tmp->iEnd )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		left = tmp->iEnd + 1;
-        		}
-        	else
-        		{
-        		tmp->iStyle = EUnderlineHighlight;
-        		left = tmp->iEnd + 1;
-        		}
-        	}
-        else if (left < tmp->iBegin && right == tmp->iEnd )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		tmp->iBegin = left;
-        		consumed = ETrue;
-        		break;
-        		}
-        	else
-        		{
-        		newSeg = new ( ELeave ) TSegment ( left, tmp->iBegin - 1, aStyle );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-        		tmp->iStyle = EUnderlineHighlight;
-        		consumed = ETrue;
-        		break;
-        		}
-        	}
-        else if (left == tmp->iEnd && tmp->iBegin < left )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		left = tmp->iEnd + 1;
-        		}
-        	else
-        		{
-        		tmp->iEnd = tmp->iEnd - 1;
-                newSeg = new ( ELeave ) TSegment ( left, left, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                left = left + 1;
-        		}
-        	}
-        else if (right == tmp->iBegin && tmp->iEnd > right )
-        	{
-        	if ( aStyle == tmp->iStyle )
-        		{
-        		tmp->iBegin = left;
-        		consumed = ETrue;
-        		break;
-        		}
-        	else
-        		{
-        		tmp->iBegin = tmp->iBegin + 1;
-                newSeg = new ( ELeave ) TSegment ( right, right, EUnderlineHighlight );
-                CleanupStack::PushL(newSeg);
-                newArray.AppendL( newSeg );
-                CleanupStack::Pop(newSeg);
-                right = right - 1;
-        		}
-        	}
-        }
-    
-    if ( consumed == EFalse )
-    	{
-    	newSeg = new ( ELeave ) TSegment ( left, right, aStyle );
-        CleanupStack::PushL(newSeg);
-        newArray.AppendL( newSeg );
-        CleanupStack::Pop(newSeg);
-    	consumed = ETrue;
-    	}
-    
-    for ( TInt ii = 0; ii < newArray.Count();  ii++ )
-        {
-        TLinearOrder<TSegment> orderByBegIndex(TSegment::CompareByBegIndex);
-        TSegment* tmp1 = newArray[ii];
-        TInt err = 0;
-        err = iArray.InsertInOrder ( newArray[ii], orderByBegIndex );
-        if ( err == KErrAlreadyExists )
-        	{
-        	delete tmp1;
-        	}
-        }
-    newArray.Reset();
-    
-    for ( TInt ii = 0; ii < iArray.Count() - 1; )
-    	{
-    	if ( iArray[ii]->iStyle == iArray[ii + 1]->iStyle 
-    		&& iArray[ii]->iEnd + 1 == iArray[ii + 1]->iBegin )
-    		{
-    		iArray[ii]->iEnd = iArray[ii + 1]->iEnd;
-    		TSegment* tmp1 = iArray[ii + 1];
-    		iArray.Remove(ii + 1);
-    		delete tmp1;
-    		}
-    	else
-    		{
-    		ii ++;
-    		}
-    	}
-    return;
-    }
-
-// ---------------------------------------------------------
-// Add a TSegment into iArray to identify the segment with a specified style.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::SetSegment( TInt aBeg, TInt aEnd, TDspStyle aStyle )
-	{
-	TRAP_IGNORE( SetSegmentL( aBeg,aEnd,aStyle ) );
-	}
-
-// ---------------------------------------------------------
-// Active the cursor,the cursor will be appeared with a glint.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::ActiveCursor( )
-    {
-    iInsertionPoint->Active( );
-    }
-
-// ---------------------------------------------------------
-// Deactive the cursor, the cursor will be gray and with no glint.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::DeactiveCursor( )
-    {
-    iInsertionPoint->Deactive( );
-    }
-
-// ---------------------------------------------------------
-// Enable the cursor.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::EnableCursor()
-    {
-    isCursorDraw = ETrue;
-    DrawDeferred();
-    }
-
-// ---------------------------------------------------------
-// Disable the cursor.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::DisableCursor()
-    {
-    isCursorDraw = EFalse;
-    DrawDeferred();
-    }
-
-// ---------------------------------------------------------
-// Move cursor to the left by a specified stride.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::MoveCursorLeft( TInt aStride )
-    {
-    TRect panerect = Rect( );
-    TAknTextLineLayout textPaneTextLayout = 
-        CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId(
-        textPaneTextLayout.iFont, NULL ) ;
-    if ( iCursorPosition - aStride >= 0 
-    	&& font->TextWidthInPixels( iBuffer->Left( iCursorPosition - aStride ) ) >= panerect.Width() * KLROffset / KDenominator)
-        {
-        iCursorPosition = iCursorPosition - aStride;
-        TInt offSetInPixel = 0;
-        offSetInPixel
-            = font->TextWidthInPixels( iBuffer->Left( iCursorPosition ) ) ;
-        this->iInsertionPoint->SetPosition( offSetInPixel ) ;
-        return 0;
-        }
-    else
-        {
-        return -1;
-        }
-    }
-
-// ---------------------------------------------------------
-// Move cursor to the right by a specified stride.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlEEPControl::MoveCursorRight( TInt aStride )
-    {
-    TRect panerect = Rect( );
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId(
-        textPaneTextLayout.iFont, NULL ) ;
-    TInt lenBegToCursor = font->TextWidthInPixels( iBuffer->Left( iCursorPosition + aStride ) );
-    if ( iBuffer->Length( ) >= iCursorPosition + aStride 
-    	&& lenBegToCursor < panerect.Width() * KCursorResetStartOffset / KDenominator
-    	)
-        {
-        iCursorPosition = iCursorPosition + aStride;
-        TInt offSetInPixel = 0;
-        offSetInPixel
-            = font->TextWidthInPixels( iBuffer->Left( iCursorPosition ) );
-        this->iInsertionPoint->SetPosition( offSetInPixel ) ;
-        return 0;
-        }
-    else
-        {
-        return -1;
-        }
-    }
-
-// ---------------------------------------------------------
-// Called by the cursor object.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::Refresh( )
-    {
-    this->DrawDeferred( );
-    }
-
-// ---------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlEEPControl::CAknFepUICtrlEEPControl( CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    iBuffer = NULL;
-    iInsertionPoint = NULL;
-    iCursorPosition = 0;
-    isCursorDraw = ETrue;
-    iLafDataMgr = aLafDataMgr;
-    }
-
-// ---------------------------------------------------------
-// Two-phrase constructor.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::ConstructL( RWindow& aParent )
-    {
-    SetContainerWindowL( aParent );
-    this->iBuffer = HBufC::New( KMaxDispNum ) ;
-    this->iInsertionPoint = CInsertionPoint::NewL( iLafDataMgr );
-    this->iInsertionPoint->SetRefreshObserver( this ) ;
-    iHighlightColor = KRgbRed;
-    iDefaultTextColor = KRgbBlack;
-    }
-
-// ---------------------------------------------------------
-// Reset all its member data to initialized state.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::ResetAll( )
-    {
-    iBuffer->Des().Zero( );
-    iArray.ResetAndDestroy( );
-    iCursorPosition = 0;
-    isCursorDraw = ETrue;
-    this->iInsertionPoint->SetPosition( 0 );
-    }
-
-// ---------------------------------------------------------
-// Calculate the frame rect.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlEEPControl::CalculateFrameRects( TRect& aOuterRect,
-    TRect& aInnerRect ) const
-    {
-    TRect windowRect = CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectEEP ));
-    TAknLayoutRect eepFirstHorizLineLayoutRect = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( EEEPFirstHorizLine ));
-    TAknLayoutRect eepSecondHorizLineLayoutRect = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( EEEPSecondHorizLine ));
-    TRect eepFirstHorizLineRect = eepFirstHorizLineLayoutRect.Rect();
-    TRect eepSecondHorizLineRect = eepSecondHorizLineLayoutRect.Rect();
-    TInt rectHeight = eepFirstHorizLineRect.iTl.iY - windowRect.iTl.iY;
-    //TInt rectHeight = eepSecondHorizLineRect.iTl.iY - windowRect.iTl.iY - 1;
-    TInt rectWidth = windowRect.Width( );
-    windowRect.iTl.iX = 0;
-    windowRect.iTl.iY = 0;
-    windowRect.SetHeight( rectHeight ) ;
-    windowRect.SetWidth( rectWidth ) ;
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect( windowRect,
-        SkinLayout::Submenu_skin_placing_Line_2( ) ) ;
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect( windowRect,
-        SkinLayout::Submenu_skin_placing_Line_5( ) ) ;
-   
-    aOuterRect = TRect( topLeft.Rect().iTl, bottomRight.Rect().iBr ) ;
-    aInnerRect = TRect( topLeft.Rect().iBr, bottomRight.Rect().iTl ) ;
-//    aOuterRect.SetHeight();
-//    aInnerRect = aOuterRect;
-    aInnerRect.iBr.iY = aOuterRect.iBr.iY;
-    }
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuictrlpinyineep.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1620 +0,0 @@
-/*
-* 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 CAknFepUICtrlPinyinEEP definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikenv.h>
-#include <eikappui.h>
-#include <AknsSkinInstance.h> 
-#include <AknsUtils.h> 
-#include <AknsDrawUtils.h> 
-#include <skinlayout.cdl.h>
-
-#include "aknlayoutscalable_avkon.cdl.h"
-#include "aknfepuictrlpinyineep.h"
-#include "aknfepuilayoutdatamgr.h"
-#include "aknfepchineseuidataconv.h"
-
-_LIT(KFullStop, "\x002E");
-
-_LIT( KToneMark1, "\x0020");
-_LIT( KToneMark2, "\x02CA");
-_LIT( KToneMark3, "\x02C7");
-_LIT( KToneMark4, "\x02CB");
-_LIT( KToneMark5, "\x02D9");
-_LIT( KLeftBracket, "\x0028");
-const TInt KControlNum = 1;
-const TInt KMaxCharNum = 200;
-const TInt KMaxDispNum = 200;
-
-// ---------------------------------------------------------
-// NewL function.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlPinyinEEP* CAknFepUICtrlPinyinEEP::NewL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlPinyinEEP* self=CAknFepUICtrlPinyinEEP::NewLC( aParent, aLafDataMgr );
-    CleanupStack::Pop(self); // self;
-    return self;
-    }
-
-// ---------------------------------------------------------
-// NewLC function.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlPinyinEEP* CAknFepUICtrlPinyinEEP::NewLC( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CAknFepUICtrlPinyinEEP* self = new(ELeave)CAknFepUICtrlPinyinEEP( aLafDataMgr );
-    CleanupStack::PushL( self );
-    self->ConstructL( aParent, aLafDataMgr);
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Destructor.
-// ---------------------------------------------------------
-//
-CAknFepUICtrlPinyinEEP::~CAknFepUICtrlPinyinEEP()
-    {
-    if ( iEditableEntryPane )
-        {
-        delete iEditableEntryPane;
-        iEditableEntryPane = NULL;
-        }
-//    if ( iBgContext )
-//        {
-//        delete iBgContext;
-//        iBgContext = NULL;
-//        }
-    if ( iAbsoluteBuffer )
-        {
-        delete iAbsoluteBuffer;
-        iAbsoluteBuffer = NULL;
-        }
-    if ( iVisualBuffer )
-        {
-        delete iVisualBuffer;
-        iVisualBuffer = NULL;
-        }
-    iArray.ResetAndDestroy();
-    delete iKeystrokeArray;
-    delete iShowKeystrokeArray;
-    delete iPhraseArray;
-    delete iPhraseShowKeyStrokeArray;
-    delete iTempArray;
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::CountComponentControls() const
-    {
-    return KControlNum;
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl.
-// ---------------------------------------------------------
-//
-CCoeControl* CAknFepUICtrlPinyinEEP::ComponentControl( TInt aIndex ) const
-    {
-    switch ( aIndex )
-        {
-        case EEditableEntryPane:
-            return iEditableEntryPane;
-        default:
-            return NULL;
-        }
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::Draw( const TRect& /*aRect*/) const
-    {
-    }
-
-// ---------------------------------------------------------
-// From CCoeControl.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SizeChanged()
-    {
-    LayoutContainedControls();
-    }
-
-// ---------------------------------------------------------
-// Set the text buffer and posit the cursor index.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetText( const TDesC& aDes, TInt aCursorIndex, TBool aMiniQwertyZhuyin )
-    {
-    iMiniQwertyZhuyin = aMiniQwertyZhuyin;
-    iAbsoluteUnderlineBeg = -1;
-    iAbsoluteUnderlineEnd = -1;
-    iAbsoluteHighlightBeg = -1;
-    iAbsoluteHighlightEnd = -1;
-    iArray.ResetAndDestroy();
-    TInt absoluteBufferLen = iAbsoluteBuffer->Length();
-    TInt desLen = aDes.Length();
-
-    if ( aCursorIndex > aDes.Length() )
-        {
-        aCursorIndex = aDes.Length();
-        }
-    else if ( aCursorIndex < 0 )
-        {
-        aCursorIndex = 0;
-        }
-
-    // cursor is at the end of buffer and add a character 
-    if ( aDes.Left( iAbsoluteBuffer->Length() ) == *iAbsoluteBuffer
-        && iAbsoluteCursorPos == iAbsoluteBuffer->Length() && aCursorIndex
-        == aDes.Length() )
-        {
-        Append( aDes.Right( aDes.Length() - iAbsoluteBuffer->Length() ) );
-        }
-    //    delete one character
-    else if ( iAbsoluteBuffer->Left( aCursorIndex ).Compare(aDes.Left(aCursorIndex)) == 0
-        && aCursorIndex < iAbsoluteCursorPos
-        && iAbsoluteBuffer->Compare( aDes ) != 0
-        && 0 == iAbsoluteBuffer->Right( absoluteBufferLen - iAbsoluteCursorPos ).Compare( 
-            aDes.Right( desLen - aCursorIndex)) )
-        {
-        Delete( iAbsoluteCursorPos - (iAbsoluteBuffer->Length()
-            - aDes.Length()), iAbsoluteBuffer->Length() - aDes.Length() );
-        }
-    else if ( iAbsoluteBuffer->Length() < aDes.Length()
-        && iAbsoluteBuffer->Left( iAbsoluteCursorPos )
-            == aDes.Left( iAbsoluteCursorPos )
-        && iAbsoluteBuffer->Right( iAbsoluteBuffer->Length()
-            - iAbsoluteCursorPos ) == aDes.Right( iAbsoluteBuffer->Length()
-            - iAbsoluteCursorPos ) && aCursorIndex - iAbsoluteCursorPos
-        == aDes.Length() - iAbsoluteBuffer->Length() )
-        {
-        TPtrC tmp = aDes.Mid( iAbsoluteCursorPos, aDes.Length()
-            - iAbsoluteBuffer->Length() );
-        Insert( iAbsoluteCursorPos, tmp );
-        }
-    else
-        {
-        SetText( aDes );
-        SetCursor( aCursorIndex );
-        }
-    }
-
-// ---------------------------------------------------------
-// Set the text buffer and posit the cursor index for zhuyin.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetTextForZhuyin( 
-    const TDesC& aDes, 
-    TInt aCursor, 
-    TInt aChineseCount, 
-    const TDesC& aJudgeSeed, 
-    TInt aKeystroke, 
-    TBool aInvalid,
-    TBool aMiniQwertyZhuyin)
-    {
-    iMiniQwertyZhuyin = aMiniQwertyZhuyin;
-    TInt actionType = EZhuyinNULL;
-    if ( aKeystroke == 0 && aJudgeSeed.Compare(iJudgeSeed) == 0)
-        {
-        actionType = EZhuyinMoveCursor;
-        }
-    else if ( aChineseCount == iChineseCount + 1 )
-        {
-        actionType = EZhuyinNULL;
-        }
-    else if ( aKeystroke == 0 && aJudgeSeed.Length() <= iJudgeSeed.Length() - 1)
-        {
-        actionType = EZhuyinDelete;
-        }
-    else
-        {
-        if ( aJudgeSeed.Length() == iJudgeSeed.Length())
-            {
-            if ( aJudgeSeed.Left(aKeystroke - 1).Compare(iJudgeSeed.Left(aKeystroke - 1)) == 0 
-                && aJudgeSeed.Mid(aKeystroke - 1,1).Compare(iJudgeSeed.Mid(aKeystroke - 1,1)) != 0 ) 
-                {
-                actionType = EZhuyinReplace;
-                }
-            else if ( aCursor == GetCursor() )
-                {
-                actionType = EZhuyinReplace;
-                }
-            else
-                {
-                actionType = EZhuyinMoveCursor;
-                }
-            }
-        else if ( aJudgeSeed.Length() == iJudgeSeed.Length() + 1)
-            {
-            actionType = EZhuyinInsert;
-            }
-        else if ( aJudgeSeed.Length() == iJudgeSeed.Length() - 1)
-            {
-            actionType = EZhuyinDelete;
-            }
-        else if ( KErrNotFound != iJudgeSeed.Find( aJudgeSeed ) )
-            {
-            actionType = EZhuyinDelete;
-            }
-        else
-            {
-            actionType = EZhuyinNULL;
-            }
-        }
-    iArray.ResetAndDestroy();
-    iJudgeSeed = aJudgeSeed;
-    iChineseCount = aChineseCount;
-    if ( iLastValid && aInvalid )
-        {
-        TInt newOffset = 0;
-        TPtrC ptr = iAbsoluteBuffer->Des();
-        for ( TInt i = 0; i < iOffset; i++ )
-            {
-            if ( ptr.Mid(i,1).Compare(KFullStop) == 0 )
-                {
-                continue;
-                }
-            newOffset++;
-            }
-        iOffset = newOffset;
-        }
-    else if ( !iLastValid && !aInvalid )
-        {
-        TInt newOffset = 0;
-        TInt i = 0;
-        TPtrC ptr = aDes;
-        for ( i = 0; i < iOffset && newOffset < ptr.Length(); )
-            {
-            if ( ptr.Mid(newOffset,1).Compare(KFullStop) != 0 )
-                {
-                i++;
-                }
-            newOffset++;
-            }
-        iOffset = newOffset;
-        }
-    iLastValid = !aInvalid;
-    switch ( actionType )
-        {
-        case EZhuyinInsert:
-            {
-            *iAbsoluteBuffer = aDes;
-            iAbsoluteCursorPos = aCursor;
-            this->CalculateVisualTextForInsert( 0, aDes );
-            this->iEditableEntryPane->SetText( *iVisualBuffer );
-            this->CalculateVisualIndex();
-            iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos
-                - iOffset );
-            }
-            break;
-        case EZhuyinReplace:
-            {
-            TRect panerect = iEditableEntryPane->Rect();
-            TAknTextLineLayout textPaneTextLayout = 
-                    CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-            const CFont* font = AknLayoutUtils::FontFromId(
-                textPaneTextLayout.iFont, 
-                NULL );
-            TInt lenToCursor = font->TextWidthInPixels( aDes.Mid( iOffset,
-                aCursor - iOffset ) );
-            if ( lenToCursor < panerect.Width() - panerect.Width()
-                *KLROffset/KDenominator * 2 )
-                {
-                *iAbsoluteBuffer = aDes;
-                iAbsoluteCursorPos = aCursor;
-                TInt stride = 0;
-                for (stride = 1;; stride ++ )
-                    {
-                    if ( iOffset + stride > aDes.Length() )
-                        {
-                        break;
-                        }
-                    TInt tmpFontLen = font->TextWidthInPixels( aDes.Mid(
-                        iOffset, stride ) );
-                    if ( tmpFontLen > panerect.Width() - panerect.Width()
-                        *KLROffset/KDenominator * 2 )
-                        {
-                        break;
-                        }
-                    }
-                *iVisualBuffer = aDes.Mid( iOffset, stride - 1 );
-                iEditableEntryPane->SetText( *iVisualBuffer );
-                iEditableEntryPane->SetCursorPosition( aCursor-iOffset );
-                }
-            else
-                {
-                SetText( aDes, aCursor );
-                }
-            CalculateVisualIndex();
-            break;
-            }
-        case EZhuyinDelete:
-            {
-            *iAbsoluteBuffer = aDes;
-            iAbsoluteCursorPos = aCursor;
-            this->CalculateVisualTextForDelete( 0, 0 );
-            this->iEditableEntryPane->SetText( *iVisualBuffer );
-            this->CalculateVisualIndex();
-            iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos
-                - iOffset );
-            }
-            break;
-        default:
-            SetText( aDes, aCursor );
-        }
-    }
-
-// ---------------------------------------------------------
-// Set the text buffer and maintain the current cursor position.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetText( const TDesC& aDes )
-    {
-    iAbsoluteCursorPos = 0;
-    iOffset = 0;
-    iAbsoluteBuffer->Des().Zero();
-    iVisualBuffer->Des().Zero();
-    *iAbsoluteBuffer = aDes;
-    CalculateVisualTextForMoveRight();
-    iEditableEntryPane->SetText( *iVisualBuffer );
-    CalculateVisualIndex();
-    }
-
-// ---------------------------------------------------------
-// Set the cursor position.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCursor( const TInt aIndex )
-    {
-    SetCursorForMoveRight( aIndex );
-    }
-
-// ---------------------------------------------------------
-// get the position index of cursor.The max cursor index must 
-// be larger than the length of text buffer by 1.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetCursor()
-    {
-    return iAbsoluteCursorPos;
-    }
-
-// ---------------------------------------------------------
-// move cursor to the left by a 1 stride.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::MoveCursorLeft( TInt aStride  )
-    {
-    if ( iAbsoluteCursorPos - aStride < 0 )
-        {
-        return EFalse;
-        }
-    if ( iEditableEntryPane->MoveCursorLeft( aStride ) == 0 )
-        {
-        iAbsoluteCursorPos = iAbsoluteCursorPos - aStride;
-        }
-    else
-        {
-        iAbsoluteCursorPos = iAbsoluteCursorPos - aStride;
-        SetCursorForMoveLeft( iAbsoluteCursorPos );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// move cursor to the right by a 1 stride.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::MoveCursorRight( TInt aStride )
-    {
-    if ( iAbsoluteCursorPos + aStride > iAbsoluteBuffer->Length() )
-        {
-        return EFalse;
-        }
-    if ( iEditableEntryPane->MoveCursorRight( aStride ) == 0 )
-        {
-        iAbsoluteCursorPos = iAbsoluteCursorPos + aStride;
-        }
-    else
-        {
-        iAbsoluteCursorPos = iAbsoluteCursorPos + aStride;
-        SetCursorForMoveRight( iAbsoluteCursorPos );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// active the cursor,the cursor will be black and with a wink
-// this cursor state represent this control is focused.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::ActiveCursor()
-    {
-    iEditableEntryPane->ActiveCursor();
-    }
-
-// ---------------------------------------------------------
-// deactive the cursor, the cursor will be gray and no wink this cursor
-// state represent this control with no focus.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::DeactiveCursor()
-    {
-    iEditableEntryPane->DeactiveCursor();
-    }
-
-// ---------------------------------------------------------
-// enable the cursor,the cursor will be drawn.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::EnableCursor()
-    {
-    iEditableEntryPane->EnableCursor();
-    }
-
-// ---------------------------------------------------------
-// deactive the cursor, the cursor will not be drawn.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::DisableCursor()
-    {
-    iEditableEntryPane->DisableCursor();
-    }
-
-// ---------------------------------------------------------
-// set the beginning and ending index for the underline text.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetUnderline( TInt aBeg, TInt aEnd )
-    {
-    CAknFepUICtrlEEPControl::TSegment* tmp =
-        new CAknFepUICtrlEEPControl::TSegment ( aBeg, aEnd, CAknFepUICtrlEEPControl::EUnderline );
-    iArray.Append( tmp );
-
-    TInt visualUnderlineBeg = aBeg - iOffset;
-    TInt visualUnderlineEnd = aEnd - iOffset;
-
-    if (
-        visualUnderlineBeg < 0 &&
-        visualUnderlineEnd < 0
-        ||
-        visualUnderlineBeg> iVisualBuffer->Length() - 1 &&
-        visualUnderlineEnd> iVisualBuffer->Length() - 1
-    )
-        {
-        visualUnderlineBeg = -1;
-        visualUnderlineEnd = -1;
-        }
-    else
-        {
-        if ( visualUnderlineBeg < 0 )
-            {
-            visualUnderlineBeg = 0;
-            }
-        if ( visualUnderlineEnd> iVisualBuffer->Length() - 1 )
-            {
-            visualUnderlineEnd = iVisualBuffer->Length() - 1;
-            }
-        }
-    iEditableEntryPane->SetUnderline( visualUnderlineBeg, visualUnderlineEnd );
-
-    iAbsoluteUnderlineBeg = aBeg;
-    iAbsoluteUnderlineEnd = aEnd;
-    }
-
-// ---------------------------------------------------------
-// get the indexes for text with underline.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::GetUnderlineIndex( TInt& aBeg, TInt& aEnd )
-    {
-    aBeg = iAbsoluteUnderlineBeg;
-    aEnd = iAbsoluteUnderlineEnd;
-    }
-
-// ---------------------------------------------------------
-// set the indexes for the text with highlight
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetHighlight( TInt aBeg, TInt aEnd )
-    {
-    CAknFepUICtrlEEPControl::TSegment* tmp =
-        new CAknFepUICtrlEEPControl::TSegment ( aBeg, aEnd, CAknFepUICtrlEEPControl::EHighlight );
-    iArray.Append( tmp );
-
-    TInt visualHighlightBeg = aBeg - iOffset;
-    TInt visualHighlightEnd = aEnd - iOffset;
-
-    if (
-        visualHighlightBeg < 0 &&
-        visualHighlightEnd < 0
-        ||
-        visualHighlightBeg> iVisualBuffer->Length() - 1 &&
-        visualHighlightEnd> iVisualBuffer->Length() - 1
-    )
-        {
-        visualHighlightBeg = -1;
-        visualHighlightEnd = -1;
-        }
-    else
-        {
-        if ( visualHighlightBeg < 0 )
-            {
-            visualHighlightBeg = 0;
-            }
-        if ( visualHighlightEnd> iVisualBuffer->Length() - 1 )
-            {
-            visualHighlightEnd = iVisualBuffer->Length() - 1;
-            }
-        }
-    iEditableEntryPane->SetHighlight( visualHighlightBeg, visualHighlightEnd );
-
-    iAbsoluteHighlightBeg = aBeg;
-    iAbsoluteHighlightEnd = aEnd;
-    }
-
-// ---------------------------------------------------------
-// get the indexes for the text with highlight
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::GetHighlightIndex( TInt& aBeg, TInt& aEnd )
-    {
-    aBeg = iAbsoluteHighlightBeg;
-    aEnd = iAbsoluteHighlightEnd;
-    }
-
-// ---------------------------------------------------------
-// set keystroke index. 
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCursorIndexOfKeystroke( const TInt aStartIndex )
-    {
-    iIndex = aStartIndex;
-    }
-
-// ---------------------------------------------------------
-// get the keystroke index
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetCursorIndexOfKeystroke()
-    {
-    return iIndex;
-    }
-
-// ---------------------------------------------------------
-// whether this control will be actived.ETrue represent enable 
-// otherwise disable.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::Enable( TBool aEnable )
-    {
-    iEnabled = aEnable;
-    if ( aEnable == EFalse )
-        {
-        Reset();
-        DrawNow();
-        }
-    iEditableEntryPane->MakeVisible( aEnable );
-    MakeVisible( aEnable );
-    }
-	
-// ---------------------------------------------------------
-// return whether this control is enabled.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::IsEnabled() const
-    {
-    return iEnabled;
-    }
-
-// ---------------------------------------------------------
-// Get the info before cursor.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::GetText( TDes& aText )
-    {
-    aText = *iAbsoluteBuffer;
-    }
-
-// ---------------------------------------------------------
-// Get the info before cursor.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::GetDesBeforeCursor( TDes& aOut )
-    {
-    if ( iAbsoluteCursorPos == 0 )
-        {
-        return EFalse;
-        }
-    else
-        {
-        aOut = iAbsoluteBuffer->Mid( (iAbsoluteCursorPos - 1 ), 1 );
-        return ETrue;
-        }
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetToneMark( const TDesC& /*aToneMark*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetToneMarkValidity( TBool /*aValid*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetOverrideFontId( TInt /*aFontId*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetFlag( TInt /*aFlag*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::ClearFlag( TInt /*aFlag*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// From MAknFepUICtrlEditPane.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::IsFlagSet( TInt /*aFlag*/) const
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// Set the cursor index for moving to the left.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCursorForMoveLeft( const TInt aIndex )
-    {
-    iAbsoluteCursorPos = aIndex;
-    CalculateVisualTextForMoveLeft();
-    iEditableEntryPane->SetText( *iVisualBuffer );
-    iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos - iOffset );
-    CalculateVisualIndex();
-    }
-
-// ---------------------------------------------------------
-// Set the cursor index for moving to the right.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCursorForMoveRight( const TInt aIndex )
-    {
-    iAbsoluteCursorPos = aIndex;
-    CalculateVisualTextForMoveRight();
-    iEditableEntryPane->SetText( *iVisualBuffer );
-    iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos - iOffset );
-    CalculateVisualIndex();
-    }
-
-// ---------------------------------------------------------
-// Add some text at the end of buffer.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::Append( const TDesC& aDes )
-    {
-    if ( this->iAbsoluteCursorPos != this->iAbsoluteBuffer->Length() )
-        {
-        return EFalse;
-        }
-    else
-        {
-        if ( iAbsoluteBuffer->Length() + aDes.Length()
-            > iAbsoluteBuffer->Des().MaxLength() )
-            {
-            return EFalse;
-            }
-        iAbsoluteBuffer->Des().Append( aDes );
-        iAbsoluteCursorPos = iAbsoluteCursorPos + aDes.Length();
-        this->CalculateVisualTextForAppend( aDes );
-        this->iEditableEntryPane->SetText( *iVisualBuffer );
-        this->CalculateVisualIndex();
-        iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos - iOffset );
-        return ETrue;
-        }
-    }
-
-// ---------------------------------------------------------
-// delete the content begin with aBeg index, and with an aLen length.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::Delete( TInt aBeg, TInt aLen )
-    {
-    if ( aBeg < 0 || aLen < 0 || aBeg + aLen> iAbsoluteBuffer->Length() )
-        {
-        return EFalse;
-        }
-    else
-        {
-        iAbsoluteBuffer->Des().Delete( aBeg, aLen );
-        iAbsoluteCursorPos = aBeg;
-        this->CalculateVisualTextForDelete( aBeg, aLen );
-        this->iEditableEntryPane->SetText( *iVisualBuffer );
-        this->CalculateVisualIndex();
-        iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos - iOffset );
-        return ETrue;
-        }
-    }
-
-// ---------------------------------------------------------
-// Insert some text after aIndex character.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::Insert( TInt aIndex, const TDesC& aDes )
-    {
-    if ( iAbsoluteBuffer->Length() + aDes.Length() > iAbsoluteBuffer->Des().MaxLength() )
-        {
-        return EFalse;
-        }
-    iAbsoluteBuffer->Des().Insert( aIndex, aDes );
-    iAbsoluteCursorPos = iAbsoluteCursorPos + aDes.Length();
-    this->CalculateVisualTextForInsert( aIndex, aDes );
-    this->iEditableEntryPane->SetText( *iVisualBuffer );
-    this->CalculateVisualIndex();
-    iEditableEntryPane->SetCursorPosition( iAbsoluteCursorPos - iOffset );
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Replace text from aBeg index to aBeg + aLen with aDes.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::Replace( TInt /*aBeg*/, TInt /*aLen*/,
-    const TDesC& /*aDes*/)
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// Reset private member viariable.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::Reset()
-    {
-    iIndex = 0;
-    iEnabled = EFalse;
-    iAbsoluteCursorPos = 0;
-    iOffset = 0;
-    iAbsoluteUnderlineBeg = -1;
-    iAbsoluteUnderlineEnd = -1;
-    iAbsoluteHighlightBeg = -1;
-    iAbsoluteHighlightEnd = -1;
-    iAbsoluteBuffer->Des().Zero();
-    iVisualBuffer->Des().Zero();
-    iEditableEntryPane->ResetAll();
-    iArray.ResetAndDestroy();
-    iJudgeSeed.Zero();
-    iLastValid = ETrue;
-    iChineseCount = 0;
-    }
-
-// ---------------------------------------------------------
-// Layout contained controls.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::LayoutContainedControls()
-    {
-    TRect outerRect;
-    TRect innerRect;
-    CalculateFrameRects( outerRect, innerRect );
-    TRect rect = Rect();
-    iEditableEntryPane->SetRect( rect );
-    }
-
-// ---------------------------------------------------------
-// layout the background frames.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::LayoutFrames()
-    {
-    TRect outerRect;
-    TRect innerRect;
-//    CalculateFrameRects( outerRect, innerRect );
-//    iBgContext->SetFrameRects( outerRect, innerRect );
-//    iBgContext->SetParentPos( PositionRelativeToScreen() );
-    }
-
-// ---------------------------------------------------------
-// layout its rectangles
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::LayoutRects()
-    {
-    TRect windowRect = 
-        CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EEEPWindowRect ));
-    TInt height = windowRect.Height();
-    TInt width = windowRect.Width();
-    windowRect.iTl.iY = 0;
-    windowRect.iTl.iX = 0;
-    windowRect.SetHeight( height );
-    windowRect.SetWidth( width );
-    iSize.SetSize( width, Rect().Height() );
-    }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-CAknFepUICtrlPinyinEEP::CAknFepUICtrlPinyinEEP( CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    iIndex = 0;
-    iEnabled = EFalse;
-    iAbsoluteCursorPos = 0;
-    iAbsoluteUnderlineBeg = -1;
-    iAbsoluteUnderlineEnd = -1;
-    iAbsoluteHighlightBeg = -1;
-    iAbsoluteHighlightEnd = -1;
-    iOffset = 0;
-    iJudgeSeed.Zero();
-    iLastValid = ETrue;
-    iChineseCount = 0;
-    iChangeFlag = 0;
-    iAutoChangeFlag = 1;
-    iAllValidFlag = 1;
-    iInvalidKeystrokeIndex = 0;
-    iCandidateRefreshFlag = 0;
-    iDelimiterCount = 0;
-    iLafDataMgr = aLafDataMgr;
-    }
-
-// ---------------------------------------------------------
-// Two-phrase constructor.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::ConstructL( RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    SetContainerWindowL( aParent );
-    iEditableEntryPane = CAknFepUICtrlEEPControl::NewL( Window(), aLafDataMgr );
-    iAbsoluteBuffer = HBufC::New( KMaxCharNum );
-    iVisualBuffer = HBufC::New( KMaxDispNum );
-    TRect outerRect = TRect();
-    TRect innerRect = TRect();
-    CalculateFrameRects( outerRect, innerRect );
-//    iBgContext = CAknsFrameBackgroundControlContext::NewL(
-//        KAknsIIDQsnFrPopupSub, outerRect, innerRect, ETrue );
-    iKeystrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iShowKeystrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iPhraseArray = new(ELeave)CDesCArrayFlat(1);
-    iPhraseShowKeyStrokeArray = new(ELeave)CDesCArrayFlat(1);
-    iTempArray = new(ELeave)CDesCArrayFlat(1);
-    iMiniQwertyZhuyin = EFalse;
-    iNeedClearDeliberateSelection = EFalse;
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for appending.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForAppend( const TDesC& aDes )
-    {
-    TRect panerect = iEditableEntryPane->Rect();
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, 
-    NULL );
-
-    TInt lenToEnd = font->TextWidthInPixels( iAbsoluteBuffer->Right( iVisualBuffer->Length()
-        + aDes.Length() ) );
-    if ( lenToEnd <= panerect.Width() - panerect.Width()*KLROffset
-        /KDenominator * 2 )
-        {
-        *iVisualBuffer = iAbsoluteBuffer->Right( iVisualBuffer->Length()
-            + aDes.Length() );
-        }
-    else
-        {
-        this->CalculateVisualTextForMoveRight();
-        }
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for deleting.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForDelete( TInt /*aBeg*/,
-    TInt /*aLen*/)
-    {
-    TRect panerect = iEditableEntryPane->Rect();
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, 
-    NULL );
-    iOffset = iOffset > iAbsoluteBuffer->Length()?iAbsoluteBuffer->Length():iOffset;
-    TInt lenToEnd = font->TextWidthInPixels( iAbsoluteBuffer->Right( iAbsoluteBuffer->Length()
-        - iOffset ) );
-    
-    TInt offsetLen = iAbsoluteCursorPos - iOffset;
-    if ( offsetLen < 0 )
-        {
-        offsetLen = 0;
-        }
-    TInt LenOffsetToCursor = font->TextWidthInPixels( iAbsoluteBuffer->Mid( 
-            iOffset, offsetLen ) );
-
-    if ( lenToEnd > 0 && iAbsoluteCursorPos >= iOffset && LenOffsetToCursor > panerect.Width()*KLROffset/KDenominator )
-        {
-        TInt stride = 0;
-        for (stride = 1;; stride ++ )
-            {
-            if ( iOffset + stride > iAbsoluteBuffer->Length() )
-                {
-                break;
-                }
-            TInt tmpFontLen = font->TextWidthInPixels( iAbsoluteBuffer->Mid(
-                iOffset, stride ) );
-            if ( tmpFontLen > panerect.Width() - panerect.Width()
-                *KLROffset/KDenominator * 2 )
-                {
-                break;
-                }
-            }
-        *iVisualBuffer = iAbsoluteBuffer->Mid( iOffset, stride - 1 );
-        }
-    else
-        {
-        this->CalculateVisualTextForMoveLeft();
-        }
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for inserting.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForInsert( TInt /*aIndex*/,
-    const TDesC& /*aDes*/)
-    {
-    TRect panerect = iEditableEntryPane->Rect();
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, 
-    NULL );
-    
-    TInt offsetLen = iAbsoluteCursorPos - iOffset;
-    if ( offsetLen < 0 )
-        {
-        offsetLen = 0;
-        }
-
-    TInt lenToCursor = font->TextWidthInPixels( iAbsoluteBuffer->Mid(
-        iOffset, offsetLen ) );
-    if ( lenToCursor < panerect.Width()* KCursorResetStartOffset / KDenominator
-        || iAbsoluteCursorPos == iAbsoluteBuffer->Length()
-        && lenToCursor <= panerect.Width() - panerect.Width()*KLROffset/KDenominator * 2)
-        {
-        TInt stride = 0;
-        for (stride = 1;; stride ++ )
-            {
-            if ( iOffset + stride > iAbsoluteBuffer->Length() )
-                {
-                break;
-                }
-            TInt tmpFontLen = font->TextWidthInPixels( iAbsoluteBuffer->Mid(
-                iOffset, stride ) );
-            if ( tmpFontLen > panerect.Width() - panerect.Width()
-                *KLROffset/KDenominator * 2 )
-                {
-                break;
-                }
-            }
-        *iVisualBuffer = iAbsoluteBuffer->Mid( iOffset, stride - 1 );
-        }
-    else
-        {
-        this->CalculateVisualTextForMoveRight();
-        }
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for replacing.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForReplace( TInt /*aBeg*/,
-    TInt /*aLen*/, const TDesC& /*aDes*/)
-    {
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for moving to left.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForMoveLeft()
-    {
-    TRect panerect = iEditableEntryPane->Rect();
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, 
-    NULL );
-    TInt absolutelength = font->TextWidthInPixels( *iAbsoluteBuffer );
-    TInt
-        cursorToBegLength =
-            font->TextWidthInPixels( iAbsoluteBuffer->Left( iAbsoluteCursorPos ) );
-    if ( iAbsoluteCursorPos > iAbsoluteBuffer->Length() + 1 )
-        {
-        iAbsoluteCursorPos = iAbsoluteBuffer->Length() + 1;
-        }
-    TInt lenPixelToVisualBeg = panerect.Width() * KCursorResetOffset
-        / KDenominator;
-    TInt stride = 0;
-    TInt visualBeg = 0;
-    TInt visualEnd = 0;
-    for (stride = 1;; stride ++ )
-        {
-        if ( 0 > iAbsoluteCursorPos - stride )
-            {
-            visualBeg = 0;
-            break;
-            }
-        TInt tmpFontLen = font->TextWidthInPixels( iAbsoluteBuffer->Mid(
-            iAbsoluteCursorPos - stride, stride ) );
-        if ( tmpFontLen > lenPixelToVisualBeg )
-            {
-            visualBeg = iAbsoluteCursorPos - stride + 1;
-            break;
-            }
-        }
-        
-    //Fix for bug ESXU-7U68JT, let adjustment of visualBeg before caculation of visualEnd. 
-    //For one, calculation always start before "(" for miniqwertyzhuyin
-    //For two, because characters(markers) might have different length in pixel, it's better recalculate visualEnd
-    // after changing visualBeg, therefore move changing visualBeg ahead of caculation take effect too.
-    if ( iMiniQwertyZhuyin && 
-        iAbsoluteBuffer->Length() > 0 && 
-        visualBeg >= iPhraseArray->Count() )
-        {
-        while ( visualBeg > 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KLeftBracket ) != 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark1 ) != 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark2 ) != 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark3 ) != 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark4 ) != 0 &&
-            iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark5 ) != 0 )
-            {
-            visualBeg--;
-            }
-        }
-
-    for (stride = 1;; stride ++ )
-        {
-        if ( visualBeg + stride > iAbsoluteBuffer->Length() )
-            {
-            visualEnd = visualBeg + stride - 1;
-            break;
-            }
-        TPtrC tempString = iAbsoluteBuffer->Mid(visualBeg, stride );
-        TInt tmpFontLen = font->TextWidthInPixels( tempString );
-        if ( tmpFontLen > panerect.Width() - panerect.Width() *KLROffset
-            /KDenominator * 2 )
-            {
-            visualEnd = visualBeg + stride - 1;
-            //visualEnd = visualBeg + stride;
-            break;
-            }
-        }
-    *iVisualBuffer = iAbsoluteBuffer->Mid( visualBeg, visualEnd - visualBeg );
-    this->iOffset = visualBeg;
-    }
-
-// ---------------------------------------------------------
-// Calculate visual text for moving to the right.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualTextForMoveRight()
-    {
-    TRect panerect = iEditableEntryPane->Rect();
-    TAknTextLineLayout textPaneTextLayout = 
-            CAknFepChineseUIDataConv::AnyToTextLine( iLafDataMgr->RequestData( EEEPTextLine ));
-    const CFont* font = AknLayoutUtils::FontFromId( textPaneTextLayout.iFont, 
-    NULL );
-    TInt absolutelength = font->TextWidthInPixels( *iAbsoluteBuffer );
-    TInt cursorToEndLength =
-        font->TextWidthInPixels( iAbsoluteBuffer->Mid( iAbsoluteCursorPos,
-            iAbsoluteBuffer->Length() - iAbsoluteCursorPos ) );
-    if ( iAbsoluteCursorPos > iAbsoluteBuffer->Length() + 1 )
-        {
-        iAbsoluteCursorPos = iAbsoluteBuffer->Length() + 1;
-        }
-    if ( absolutelength <= panerect.Width() - panerect.Width()*KLROffset
-        /KDenominator * 2 )
-        {
-        *iVisualBuffer = *iAbsoluteBuffer;
-        }
-    else if ( cursorToEndLength < panerect.Width() * KCursorResetOffset
-        / KDenominator )
-        {
-        TInt tmp70VisualEnd = iAbsoluteCursorPos;
-        TInt visualBeg = 0;
-        TInt visualEnd = 0;
-        TInt stride = 0;
-        visualEnd = iAbsoluteBuffer->Length();
-        for (stride = 1;; stride ++ )
-            {
-            TInt tmpFontLen = font->TextWidthInPixels( iAbsoluteBuffer->Mid(
-                tmp70VisualEnd - stride, stride ) );
-            if ( tmpFontLen > panerect.Width() * (KDenominator - 
-                KLROffset * 2 - KCursorResetOffset ) / KDenominator )
-                {
-                visualBeg = tmp70VisualEnd - stride + 1;
-                break;
-                }
-            }
-        if ( iMiniQwertyZhuyin &&
-            iAbsoluteBuffer->Length( ) > 0 &&
-            visualBeg >= iPhraseArray->Count() )
-            {
-            while ( iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KLeftBracket ) != 0 &&
-                iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark1 ) != 0 &&
-                iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark2 ) != 0 &&
-                iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark3 ) != 0 &&
-                iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark4 ) != 0 &&
-                iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark5 ) != 0 )
-                {
-                visualBeg++;
-                //                visualEnd++;
-                }
-            }
-        *iVisualBuffer = iAbsoluteBuffer->Right( visualEnd - visualBeg );
-        this->iOffset = visualBeg;
-        }
-    else
-        {
-        TInt absoluteOffset = font->TextWidthInPixels( 
-            iAbsoluteBuffer->Left( iAbsoluteCursorPos ) );
-        if ( absoluteOffset < panerect.Width() * 
-            KCursorResetStartOffset / KDenominator)
-            {
-            TInt stride = 0;
-            for (stride = 1;; stride ++ )
-                {
-                TInt tmpFontLen = font->TextWidthInPixels( 
-                    iAbsoluteBuffer->Left( stride ) );
-                if ( tmpFontLen > panerect.Width() - panerect.Width()
-                    *KLROffset /KDenominator * 2 )
-                    {
-                    *iVisualBuffer = iAbsoluteBuffer->Left( stride - 1 );
-                    this->iOffset = 0;
-                    break;
-                    }
-                }
-            }
-        else
-            {
-            TInt lenPixelToVisualEnd = panerect.Width() * KCursorResetOffset
-                / KDenominator;
-            TInt stride = 0;
-            TInt visualBeg = 0;
-            TInt visualEnd = 0;
-            for (stride = 1;; stride ++ )
-                {
-                if ( iAbsoluteBuffer->Length() < iAbsoluteCursorPos + stride )
-                    {
-                    visualEnd = iAbsoluteBuffer->Length();
-                    break;
-                    }
-                TInt tmpFontLen = font->TextWidthInPixels( 
-                    iAbsoluteBuffer->Mid( iAbsoluteCursorPos, stride ) );
-                if ( tmpFontLen > lenPixelToVisualEnd )
-                    {
-                    visualEnd = iAbsoluteCursorPos + stride - 1;
-                    break;
-                    }
-                }
-            for (stride = 1;; stride ++ )
-                {
-                TInt tmpFontLen = font->TextWidthInPixels( 
-                    iAbsoluteBuffer->Mid( visualEnd - stride, stride ) );
-                if ( tmpFontLen > panerect.Width() - panerect.Width()
-                    *KLROffset /KDenominator * 2 )
-                    {
-                    visualBeg = visualEnd - stride + 1;
-                    break;
-                    }
-                }
-            if ( iMiniQwertyZhuyin && 
-                iAbsoluteBuffer->Length( ) > 0 &&
-                visualBeg >= iPhraseArray->Count() )
-                {
-                while ( iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KLeftBracket ) != 0 &&
-                    iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark1 ) != 0 &&
-                    iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark2 ) != 0 &&
-                    iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark3 ) != 0 &&
-                    iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark4 ) != 0 &&
-                    iAbsoluteBuffer->Mid( visualBeg, 1 ).Compare( KToneMark5 ) != 0 )
-                    {
-                    visualBeg++;
-                    //                    visualEnd++;
-                    }
-                }
-            *iVisualBuffer = iAbsoluteBuffer->Mid( visualBeg, visualEnd
-                - visualBeg );
-            this->iOffset = visualBeg;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// Calculate the underline indexes and highlight indexes according to the
-// absolute value.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateVisualIndex()
-    {
-    for (TInt i = 0; i < iArray.Count(); i++ )
-        {
-        TInt left = iArray[i]->iBegin - iOffset;
-        TInt right = iArray[i]->iEnd - iOffset;
-        if (
-            left < 0 &&
-            right < 0
-            ||
-            left> iVisualBuffer->Length() - 1 &&
-            right> iVisualBuffer->Length() - 1
-           )
-            {
-            left = -1;
-            right = -1;
-            }
-        else
-            {
-            if ( left < 0 )
-                {
-                left = 0;
-                }
-            if ( right> iVisualBuffer->Length() - 1 )
-                {
-                right = iVisualBuffer->Length() - 1;
-                }
-            }
-        if ( iArray[i]->iStyle == CAknFepUICtrlEEPControl::EHighlight )
-            {
-            iEditableEntryPane->SetHighlight( left, right );
-            }
-        else if ( iArray[i]->iStyle == CAknFepUICtrlEEPControl::EUnderline )
-            {
-            iEditableEntryPane->SetUnderline( left, right );
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// layout the background frames.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::CalculateFrameRects( TRect& aOuterRect,
-    TRect& aInnerRect ) const
-    {
-    TRect windowRect = CAknFepChineseUIDataConv::AnyToRect( iLafDataMgr->RequestData( EPopupRectEEP ));
-    TAknLayoutRect eepFirstHorizLineLayoutRect = CAknFepChineseUIDataConv::AnyToLayoutRect( iLafDataMgr->RequestData( EEEPFirstHorizLine ));
-    TRect eepFirstHorizLineRect = eepFirstHorizLineLayoutRect.Rect();
-    TInt rectHeight = eepFirstHorizLineRect.iBr.iY - windowRect.iTl.iY + 2;
-    TInt rectWidth = windowRect.Width( );
-    windowRect.iTl.iX = 0;
-    windowRect.iTl.iY = 0;
-    windowRect.SetHeight( rectHeight );
-    windowRect.SetWidth( rectWidth );
-
-    TAknLayoutRect topLeft;
-    topLeft.LayoutRect( windowRect,
-        SkinLayout::Submenu_skin_placing_Line_2() );
-
-    TAknLayoutRect bottomRight;
-    bottomRight.LayoutRect( windowRect,
-        SkinLayout::Submenu_skin_placing_Line_5() );
-
-    aOuterRect = TRect( topLeft.Rect().iTl, bottomRight.Rect().iBr );
-    aInnerRect = TRect( topLeft.Rect().iBr, bottomRight.Rect().iTl );
-    }
-
-// ---------------------------------------------------------
-// Return kestroke array.
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlPinyinEEP::KeystrokeArray()
-    {
-    return iKeystrokeArray;
-    }
-
-// ---------------------------------------------------------
-// Return kescode array.
-// ---------------------------------------------------------
-//
-RArray<TInt>* CAknFepUICtrlPinyinEEP::KeycodeArray()
-    {
-    return &iKeycodeArray;
-    }
-
-// ---------------------------------------------------------
-// Return kescode array.
-// ---------------------------------------------------------
-//
-RArray<TInt>* CAknFepUICtrlPinyinEEP::PhraseKeycodeArray()
-    {
-    return &iPhraseKeycodeArray;
-    }
-
-// ---------------------------------------------------------
-// Return show kestroke array.
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlPinyinEEP::ShowKeystrokeArray()
-    {
-    return iShowKeystrokeArray;
-    }
-
-// ---------------------------------------------------------
-// Return choose chinese charater array.
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlPinyinEEP::PhraseArray()
-    {
-    return iPhraseArray;
-    }
-
-// ---------------------------------------------------------
-// Return choose chinese charater show keystroke array.
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlPinyinEEP::PhraseShowKeyStrokeArray()
-    {
-    return iPhraseShowKeyStrokeArray;
-    }
-// ---------------------------------------------------------
-// Return temp array.
-// ---------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUICtrlPinyinEEP::TempArray()
-    {
-    return iTempArray;
-    }
-
-// ---------------------------------------------------------
-// Reset private member viariable array.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::ResetAllArray()
-    {
-    iKeystrokeArray->Reset();
-    iKeystrokeArray->Compress();
-    iKeycodeArray.Reset();
-    iShowKeystrokeArray->Reset();
-    iShowKeystrokeArray->Compress();
-    iPhraseArray->Reset();
-    iPhraseArray->Compress();
-    iPhraseKeycodeArray.Reset();
-    iPhraseShowKeyStrokeArray->Reset();
-    iPhraseShowKeyStrokeArray->Compress();
-    iTempArray->Reset();
-    iTempArray->Compress();
-    iAllValidFlag = 1;
-    iInvalidKeystrokeIndex = 0;
-    iCandidateRefreshFlag = 0;
-    iDelimiterCount = 0;
-    }
-
-// ---------------------------------------------------------
-// change state flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetChangeState( TBool aState )
-    {
-    iChangeFlag = aState;
-    }
-
-// ---------------------------------------------------------
-// check change state flag.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::IsChangeState()
-    {
-    return iChangeFlag;
-    }
-
-// ---------------------------------------------------------
-// Set auto change state flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetAutoChangeStateFlag( TBool aState )
-    {
-    iAutoChangeFlag = aState;
-    }
-
-// ---------------------------------------------------------
-// Set auto change state flag.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::GetAutoChangeStateFlag()
-
-    {
-    return iAutoChangeFlag;
-    }
-
-// ---------------------------------------------------------
-// Set all the keystroke valid flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetAllValidFlag( TBool aState )
-    {
-    iAllValidFlag = aState;
-    }
-
-// ---------------------------------------------------------
-// Set all the keystroke valid flag.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::GetAllValidFlag()
-    {
-    return iAllValidFlag;
-    }
-
-// ---------------------------------------------------------
-// Set is Phrase creation.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetPhraseCreationFlag( TBool aState )
-    {
-    iPhraseCreation = aState;
-    }
-
-// ---------------------------------------------------------
-// Is Phrase creation.
-// ---------------------------------------------------------
-//
-TBool CAknFepUICtrlPinyinEEP::GetPhraseCreationFlag()
-    {
-    return iPhraseCreation;
-    }
-
-// ---------------------------------------------------------
-// Set the keystroke invalid index.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetInvalidIndex( TInt aInvalidIndex )
-    {
-    iInvalidKeystrokeIndex = aInvalidIndex;
-    }
-
-// ---------------------------------------------------------
-// Get all the invalid keystroke index.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetInvalidIndex()
-    {
-    return iInvalidKeystrokeIndex;
-    }
-
-// ---------------------------------------------------------
-// Set Phrase Candidate state need refresh UI flag.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCandidateRefreshFlag( TBool aState )
-    {
-    iCandidateRefreshFlag = aState;
-    }
-
-// ---------------------------------------------------------
-// Get Phrase Candidate state need refresh UI flag.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetCandidateRefreshFlag()
-    {
-    return iCandidateRefreshFlag;
-    }
-
-// ---------------------------------------------------------
-// Set the delimiter count of keystroke.
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetDelimiterCount( TInt aCount )
-    {
-    iDelimiterCount = aCount;
-    }
-
-// ---------------------------------------------------------
-// Get the delimiter count of keystroke.
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetDelimiterCount()
-    {
-    return iDelimiterCount;
-    }
-
-// ---------------------------------------------------------
-// Get current cba resource id. 
-// ---------------------------------------------------------
-//
-TInt CAknFepUICtrlPinyinEEP::GetCurrentCBAResID()
-    {
-    return iCurrentCBAResId;
-    }
-
-// ---------------------------------------------------------
-// Set current cba resource id. 
-// ---------------------------------------------------------
-//
-void CAknFepUICtrlPinyinEEP::SetCurrentCBAResID( TInt aResourceId )
-    {
-    iCurrentCBAResId = aResourceId;
-    }
-
-void CAknFepUICtrlPinyinEEP::SetEffictiveLength( TInt aLength )
-    {
-    iEffictiveLength = aLength;
-    }
-
-TInt CAknFepUICtrlPinyinEEP::GetEffictiveLength()
-    {
-    return iEffictiveLength;
-    }
-
-void CAknFepUICtrlPinyinEEP::AddEffictiveLength()
-    {
-    iEffictiveLength++;
-    }
-
-void CAknFepUICtrlPinyinEEP::DecEffictiveLength()
-    {
-    iEffictiveLength--;
-    }
-
-void CAknFepUICtrlPinyinEEP::SetNeedClearDeliberateSelection( TBool aNeedClearDeliberateSelection )
-    {
-    iNeedClearDeliberateSelection = aNeedClearDeliberateSelection;
-    }
-
-TBool CAknFepUICtrlPinyinEEP::NeedClearDeliberateSelection()
-    {
-    return iNeedClearDeliberateSelection;
-    }
-
-// End of file
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/aknfepuilayoutdatamgr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,280 +0,0 @@
-/*
-* 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:  Implementation for phrase creation layout data managment
- *
-*/
-
-
-// INCLUDE FILES
-#include <gulfont.h> 
-#include <eiklabel.h>
-#include <AknLayout.lag>
-#include <AknsDrawUtils.h>
-#include <skinlayout.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-#include "aknfepuilayoutdatamgr.h"
-
-// -----------------------------------------------------------------------------
-// CAknFepUiLayoutDataMgr::GetPinyinPhraseCreationContainerHeight()
-// Get the pinyin phrase creation container Height data 
-// -----------------------------------------------------------------------------
-//
-CAknFepUiLayoutDataMgr* CAknFepUiLayoutDataMgr::NewL()
-    {
-    CAknFepUiLayoutDataMgr* self = new(ELeave)CAknFepUiLayoutDataMgr();
-    CleanupStack::PushL( self );
-    self->ConstructL( );
-    CleanupStack::Pop( ); // self
-    return self;
-    }
-
-CAknFepUiLayoutDataMgr::CAknFepUiLayoutDataMgr()
-    {
-    }
-
-void CAknFepUiLayoutDataMgr::ConstructL()
-    {
-    ReadLafInfo();
-    }
-
-void CAknFepUiLayoutDataMgr::ReadLafInfo()
-    {
-    // Screen
-    TRect rect;
-    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, rect);
-    iScreenSize = rect.Size();
-
-    iLandScape = iScreenSize.iWidth < iScreenSize.iHeight ? EFalse : ETrue;
-    
-    TAknWindowLineLayout layoutLineEntry, layoutLineCandidate, layoutLineEEP;
-    TAknLayoutRect layoutRectEntry, layoutRectCandidate, layoutRectEEP;
-    
-    layoutLineEntry = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,0);
-    layoutRectEntry.LayoutRect(iScreenSize,layoutLineEntry);
-    iPopupRectEntry = layoutLineEntry.Rect();
-    iPopupHeightEntry = layoutLineEntry.iH;
-    
-    //PinyinPopupWindowRect
-    iEntryPaneWindowLine = AKN_LAYOUT_WINDOW_fep_china_uni_entry_pane;
-    iLayoutEntryItem = AKN_LAYOUT_WINDOW_fep_entry_item_pane;
-    
-    iLayoutLineRectEntryPane.LayoutRect(iPopupRectEntry, iEntryPaneWindowLine);
-    
-    layoutLineCandidate = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,1);
-    layoutRectCandidate.LayoutRect(iScreenSize,layoutLineCandidate);
-    iPopupRectCandidate = layoutLineCandidate.Rect();
-    
-    layoutLineEEP = AKN_LAYOUT_WINDOW_popup_fep_china_uni_window(0,2);//need updated
-    layoutRectEEP.LayoutRect(iScreenSize,layoutLineEEP);
-    iPopupRectEEP = layoutLineEEP.Rect();
-    iPopupHeightEEP = layoutLineEEP.iH;
-    
-    
-    iCandidatePaneWindowLine = AKN_LAYOUT_WINDOW_fep_china_uni_candidate_pane( 0 );
-    
-    //Candidate
-    
-    iCandidatePaneTextLine = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_1;
-    iOrdinalCandidateTextLayout = AKN_LAYOUT_TEXT_Chinese_universal_FEP_candidate_pane_texts_Line_3;
-    iCandidateWindowLine1 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_1;
-    iCandidateWindowLine2 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_2;
-    iCandidateWindowLine3 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_3;
-    iCandidateWindowLine4 = AKN_LAYOUT_WINDOW_Chinese_universal_FEPcandidate_pane_elements_Line_4;
-    
-    iLayoutCandidateItem = AKN_LAYOUT_WINDOW_fep_candidate_item_pane;
-    
-    //EEP   
-    TAknWindowComponentLayout EEPWindowComponentLayout = AknLayoutScalable_Avkon::fep_china_uni_eep_pane();     
-    iEEPWindowLayout = EEPWindowComponentLayout.LayoutLine();
-    TAknLayoutRect EEPLayout;
-    EEPLayout.LayoutRect( iPopupRectEEP, iEEPWindowLayout );
-    iEEPWindowRect = EEPLayout.Rect();
-    //
-    iRectCoverMainPaneInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectEntry));
-    iRectFirstShadowInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectEntry));
-    iRectOutlineFrameInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectEntry));
-    iRectInsideAreaInputEntry.LayoutRect(iPopupRectEntry, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectEntry));
-    
-    iRectCoverMainPaneInputCandidate.LayoutRect(iPopupRectCandidate, 
-                                                AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectCandidate));
-    iRectFirstShadowInputCandidate.LayoutRect(iPopupRectCandidate, 
-                                              AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectCandidate));
-    iRectOutlineFrameInputCandidate.LayoutRect(iPopupRectCandidate,
-                                               AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectCandidate));
-    iRectInsideAreaInputCandidate.LayoutRect(iPopupRectCandidate, 
-                                             AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectCandidate));
-    
-    iRectCoverMainPaneInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(iPopupRectEEP));
-    iRectFirstShadowInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(iPopupRectEEP));
-    iRectOutlineFrameInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(iPopupRectEEP));
-    iRectInsideAreaInputEEP.LayoutRect(iPopupRectEEP, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(iPopupRectEEP));    
-       
-    //HorizLine
-
-    iEntryHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(0,0).LayoutLine();
-    iEEPSecondHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(0,1).LayoutLine();
-    iEEPFirstHorizLineWindow = AknLayoutScalable_Avkon::popup_fep_china_uni_window_g(1,0).LayoutLine();
-    iHorizLine.LayoutRect(iPopupRectEntry, iEntryHorizLineWindow);
-    iEEPFirstHorizLine.LayoutRect(iPopupRectEEP, iEEPFirstHorizLineWindow);
-    iEEPSecondHorizLine.LayoutRect(iPopupRectEEP, iEEPSecondHorizLineWindow);
-
-    iEntryPaneRect = iLayoutLineRectEntryPane.Rect( );
-    iEntryTextLayout
-        = AKN_LAYOUT_TEXT_Chinese_universal_FEP_entry_pane_texts_Line_1(0);
-    TAknLayoutRect labelRect;
-    labelRect.LayoutRect( iEntryPaneRect,
-        AKN_LAYOUT_WINDOW_fep_entry_item_pane );
-    iLayoutInputPaneText.LayoutText( labelRect.Rect( ), iEntryTextLayout );
-
-    TRect windowRect = layoutRectEntry.Rect();    
-    TInt height = windowRect.Height();
-    TInt width = windowRect.Width();
-    windowRect.iTl.iY = 0;
-    windowRect.iTl.iX = 0;
-    windowRect.SetHeight(height);
-    windowRect.SetWidth(width);
-    
-    TAknLayoutRect layoutLineRectEntryPane;
-    layoutLineRectEntryPane.LayoutRect(windowRect, iEntryPaneWindowLine);
-    TRect entryPane = layoutLineRectEntryPane.Rect();
-    // left and right arrow
-    TAknWindowLineLayout leftArrowLayoutLine, rithgArrowLayoutLine;	
-    leftArrowLayoutLine = AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_1;
-    iIndiFepArrowLeft.LayoutRect(entryPane,leftArrowLayoutLine);
-    rithgArrowLayoutLine = AKN_LAYOUT_WINDOW_Chinese_universal_FEP_entry_pane_elements_Line_2;
-    iIndiFepArrowRight.LayoutRect(entryPane,rithgArrowLayoutLine);   	
-    
-    iRectCoverMainPaneInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_1(windowRect));
-    iRectFirstShadowInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_2(windowRect));
-    iRectOutlineFrameInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_3(windowRect));
-    iRectInsideAreaInput.LayoutRect(windowRect, AKN_LAYOUT_WINDOW_Chinese_universal_FEP_pop_up_window_graphics_Line_4(windowRect));
-    
-    //eep text
-    TAknTextComponentLayout textLayout = AknLayoutScalable_Avkon::fep_china_uni_eep_pane_t1();
-    iEEPTextLine = textLayout.LayoutLine();
-    TAknLayoutText eepTextLayout;
-    eepTextLayout.LayoutText( iEEPWindowRect, iEEPTextLine );
-    iEEPTextColor = eepTextLayout.Color();
-    const CFont* font = AknLayoutUtils::FontFromId(iEEPTextLine.FontId());
-    iEEPCursorHeight = font->HeightInPixels();    
-    }
-
-TAny* CAknFepUiLayoutDataMgr::RequestData(TInt aDataType)
-    {
-    switch ( aDataType )
-        {
-        case EPopupRectEntry:
-            return &iPopupRectEntry;
-        case EPopupRectCandatate:
-            return &iPopupRectCandidate;
-        case EPopupRectEEP:
-            return &iPopupRectEEP;
-        case EPopupHeightEntry:
-            return &iPopupHeightEntry;
-        case EPopupHeightEEP:
-            return &iPopupHeightEEP;
-        case EEntryPaneWindowLine:
-            return &iEntryPaneWindowLine;
-        case ECandidatePaneWindowLine:
-            return &iCandidatePaneWindowLine;
-        case ECandidatePaneTextLine:
-            return &iCandidatePaneTextLine;
-        case ECandidateWindowLine1:
-            return &iCandidateWindowLine1;
-        case ECandidateWindowLine2:
-            return &iCandidateWindowLine2;
-        case ECandidateWindowLine3:
-            return &iCandidateWindowLine3;
-        case ECandidateWindowLine4:
-            return &iCandidateWindowLine4;
-        case ELayoutCandidateItem:
-            return &iLayoutCandidateItem;
-        case ELayoutEntryItem:
-            return &iLayoutEntryItem;
-        case EOrdinalCandidateTextLayout:
-            return &iOrdinalCandidateTextLayout;
-        case EEEPWindowRect:
-            return &iEEPWindowRect;
-        case EEEPWindowLayout:
-            return &iEEPWindowLayout;
-        case ERectCoverMainPaneInputEntry:
-            return &iRectCoverMainPaneInputEntry;
-        case ERectFirstShadowInputEntry:
-            return &iRectFirstShadowInputEntry;
-        case ERectOutlineFrameInputEntry:
-            return &iRectOutlineFrameInputEntry;
-        case ERectInsideAreaInputEntry:
-            return &iRectInsideAreaInputEntry;
-        case ERectCoverMainPaneInputCandidate:
-            return &iRectCoverMainPaneInputCandidate;
-        case ERectFirstShadowInputCandidate:
-            return &iRectFirstShadowInputCandidate;
-        case ERectOutlineFrameInputCandidate:
-            return &iRectOutlineFrameInputCandidate;
-        case ERectInsideAreaInputCandidate:
-            return &iRectInsideAreaInputCandidate;
-        case ERectCoverMainPaneInputEEP:
-            return &iRectCoverMainPaneInputEEP;
-        case ERectFirstShadowInputEEP:
-            return &iRectFirstShadowInputEEP;
-        case ERectOutlineFrameInputEEP:
-            return &iRectOutlineFrameInputEEP;
-        case ERectInsideAreaInputEEP:
-            return &iRectInsideAreaInputEEP;
-        case ELayoutInputPaneText:
-            return &iLayoutInputPaneText;
-        case ELayoutLineRectEntryPane:
-            return &iLayoutLineRectEntryPane;
-        case EEntryTextLayout:
-            return &iEntryTextLayout;
-        case EEntryPaneRect:
-            return &iEntryPaneRect;
-        case EIndiFepArrowLeft:
-            return &iIndiFepArrowLeft;
-        case EIndiFepArrowRight:
-            return &iIndiFepArrowRight;
-        case ERectCoverMainPaneInput:
-            return &iRectCoverMainPaneInput;
-        case ERectFirstShadowInput:
-            return &iRectFirstShadowInput;
-        case ERectOutlineFrameInput:
-            return &iRectOutlineFrameInput;
-        case ERectInsideAreaInput:
-            return &iRectInsideAreaInput;
-        case EEEPTextLine:
-            return &iEEPTextLine;
-        case EEEPCursorHeight:
-            return &iEEPCursorHeight;
-        case EHorizLine:
-            return &iHorizLine;
-        case EEEPFirstHorizLine:
-            return &iEEPFirstHorizLine;
-        case EEEPSecondHorizLine:
-            return &iEEPSecondHorizLine;
-        case EEntryHorizLineWindow:
-            return &iEntryHorizLineWindow;
-        case EEEPSecondHorizLineWindow:
-            return &iEEPSecondHorizLineWindow;
-        case EEEPFirstHorizLineWindow:
-            return &iEEPFirstHorizLineWindow;
-        case EEEPTextColor:
-            return &iEEPTextColor;
-        default:
-            break;
-        }
-    return NULL;
-    }
-
-// End of File
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/insertionpoint.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/*
-* Copyright (c) 2009 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:             
-*
-*/
-
-
-#include "insertionpoint.h"
-#include "aknfepchineseuidataconv.h"
-
-//Cursor position offset
-const TInt KCursorPosCorrectionX = 0;
-//define the timer
-const TInt KTimer = 500000;
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-CInsertionPoint::~CInsertionPoint()
-    {
-    Cancel(); // Cancel any request, if outstanding
-    iTimer.Close(); // Destroy the RTimer object
-    // Delete instance variables if any
-    }
-
-// ---------------------------------------------------------
-// NewL function.
-// ---------------------------------------------------------
-CInsertionPoint* CInsertionPoint::NewL( CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CInsertionPoint* self = CInsertionPoint::NewLC( aLafDataMgr );
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-// ---------------------------------------------------------
-// NewLC funciton.
-// ---------------------------------------------------------
-CInsertionPoint* CInsertionPoint::NewLC( CAknFepUiLayoutDataMgr* aLafDataMgr )
-    {
-    CInsertionPoint* self = new ( ELeave ) CInsertionPoint( aLafDataMgr );
-    CleanupStack::PushL( self ) ;
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Set iRefreshObserver member.
-// ---------------------------------------------------------
-void CInsertionPoint::SetRefreshObserver(MRefreshObserver* aObserver)
-    {
-    iRefreshObserver = aObserver;
-    }
-
-// ---------------------------------------------------------
-// Set the position of cursor.
-// ---------------------------------------------------------
-void CInsertionPoint::SetPosition(TInt aOffSet)
-    {
-    iOffSet = aOffSet;
-    isVisible = ETrue;
-    iRefreshObserver->Refresh();
-    TPoint point(iTextRect.iTl.iX -1 + iOffSet + KCursorPosCorrectionX,
-            iCursorRect.iTl.iY);
-    iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
-    }
-
-// ---------------------------------------------------------
-// Set the rect where visual text will be displayed.
-// ---------------------------------------------------------
-void CInsertionPoint::SetTextRect(TRect aRect)
-    {
-    iTextRect = aRect;
-    TPoint point(iTextRect.iTl.iX + iOffSet + KCursorPosCorrectionX,
-            iCursorRect.iTl.iY);
-    iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
-    if ( 0 == iHeight )
-        {
-        iHeight = 
-            CAknFepChineseUIDataConv::AnyToInt( iLafDataMgr->RequestData(EEEPCursorHeight));
-        iWidth = 1;
-        }
-    }
-
-// ---------------------------------------------------------
-// Set the height of cursor.
-// ---------------------------------------------------------
-void CInsertionPoint::SetHeight()
-    {
-    TPoint point(iTextRect.iTl.iX + iOffSet + KCursorPosCorrectionX,
-            iTextRect.iTl.iY - 1 + iTextRect.Height() / 2 - iHeight / 2);
-    iCursorRect = TRect(point, TSize(iWidth, iHeight) ) ;
-    }
-
-// ---------------------------------------------------------
-// Draw the cursor on the screen.
-// ---------------------------------------------------------
-void CInsertionPoint::Draw(CWindowGc& aGc)
-    {
-    if (isActive)
-        {
-        if ( !this->isVisible)
-            {
-            return;
-            }
-        else
-            {
-            aGc.SetBrushStyle(CGraphicsContext::ESolidBrush) ;
-            aGc.SetBrushColor(iActiveBrushColor) ;
-            aGc.SetPenColor(iActivePenColor) ;
-            aGc.SetPenStyle(CGraphicsContext::ESolidPen) ;
-            aGc.SetPenSize(TSize( 1, 1) ) ;
-            aGc.DrawRect(iCursorRect) ;
-            aGc.SetBrushStyle(CGraphicsContext::ENullBrush) ;
-            }
-        }
-    else
-        {
-        aGc.SetBrushStyle(CGraphicsContext::ESolidBrush) ;
-        aGc.SetBrushColor(iInactiveBrushColor) ;
-        aGc.SetPenColor(iInactivePenColor) ;
-        aGc.SetPenStyle(CGraphicsContext::ESolidPen) ;
-        aGc.SetPenSize(TSize( 1, 1) ) ;
-        aGc.DrawRect(iCursorRect) ;
-        aGc.SetBrushStyle(CGraphicsContext::ENullBrush) ;
-        }
-    }
-
-// ---------------------------------------------------------
-// Active the cursor into active state.
-// ---------------------------------------------------------
-void CInsertionPoint::Active()
-    {
-    Cancel();
-    iTimer.Cancel();
-    iTimer.After(iStatus, KTimer); // Set for 1 sec later
-    SetActive(); // Tell scheduler a request is active
-    isActive = ETrue;
-    this->iRefreshObserver->Refresh();
-    }
-
-// ---------------------------------------------------------
-// Deactive the cursor into deactive state.
-// ---------------------------------------------------------
-void CInsertionPoint::Deactive()
-    {
-    Cancel();
-    isActive = EFalse;
-    this->iRefreshObserver->Refresh();
-    }
-
-// ---------------------------------------------------------
-// Insertion Point.
-// ---------------------------------------------------------
-CInsertionPoint::CInsertionPoint( CAknFepUiLayoutDataMgr* aLafDataMgr ) :
-    CActive(EPriorityStandard)
-    {
-    iState = EUninitialized;
-    isVisible = ETrue;
-    iHeight = 0;
-    iWidth = 0;
-    iOffSet = 0;
-    isActive = EFalse;
-    iRefreshObserver = NULL;
-    iLafDataMgr = aLafDataMgr;
-    }
-
-// ---------------------------------------------------------
-// Two-phrase constructor.
-// ---------------------------------------------------------
-void CInsertionPoint::ConstructL()
-    {
-    User::LeaveIfError(iTimer.CreateLocal() ) ; // Initialize timer
-    CActiveScheduler::Add( this); // Add to scheduler
-    iActiveBrushColor = KRgbBlack;
-    iActivePenColor = KRgbBlack;
-    iInactiveBrushColor = KRgbGray;
-    iInactivePenColor = KRgbGray;
-    }
-
-// ---------------------------------------------------------
-// The callback function used by CActiveScheduler.
-// ---------------------------------------------------------
-void CInsertionPoint::RunL()
-    {
-    if (iState == EUninitialized)
-        {
-        // Do something the first time RunL() is called
-        iState = EInitialized;
-        }
-    else
-        if (iState != EError)
-            {
-            // Do something
-            isVisible = isVisible ? EFalse : ETrue;
-            if (iRefreshObserver)
-                {
-                this->iRefreshObserver->Refresh();
-                }
-            }
-    
-    iTimer.Cancel();
-    iTimer.After( iStatus, KTimer ) ; // Set for 1 sec later
-    SetActive(); // Tell scheduler a request is active
-    }
-
-// ---------------------------------------------------------
-// How to cancel me.
-// ---------------------------------------------------------
-void CInsertionPoint::DoCancel()
-    {
-    iTimer.Cancel();
-    }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-TInt CInsertionPoint::RunError(TInt aError)
-    {
-    return aError;
-    }
-
-// ---------------------------------------------------------
-// Start the cursor with glint if actived or with gray color if deactived.
-// ---------------------------------------------------------
-void CInsertionPoint::StartL( TTimeIntervalMicroSeconds32 aDelay )
-    {
-    Cancel(); // Cancel any request, just to be sure
-    iState = EUninitialized;
-    iTimer.Cancel();
-    iTimer.After(iStatus, aDelay) ; // Set for later
-    SetActive(); // Tell scheduler a request is active
-    }
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/bwins/aknfepuiinterfaceu.def	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-EXPORTS
-	??1CAknFepUIInterface@@UAE@XZ @ 1 NONAME ; CAknFepUIInterface::~CAknFepUIInterface(void)
-	?DynInitMenuBarL@MAknFepUiInterfaceMenuObserver@@UAEXHPAVCAknFepUiInterfaceMenuBar@@@Z @ 2 NONAME ; void MAknFepUiInterfaceMenuObserver::DynInitMenuBarL(int, class CAknFepUiInterfaceMenuBar *)
-	?DynInitMenuPaneL@MAknFepUiInterfaceMenuObserver@@UAEXHPAVCAknFepUiInterfaceMenuPane@@@Z @ 3 NONAME ; void MAknFepUiInterfaceMenuObserver::DynInitMenuPaneL(int, class CAknFepUiInterfaceMenuPane *)
-	?NewL@CAknFepUIInterface@@SAPAV1@XZ @ 4 NONAME ; class CAknFepUIInterface * CAknFepUIInterface::NewL(void)
-	??1CAknFepIndicator@@UAE@XZ @ 5 NONAME ; CAknFepIndicator::~CAknFepIndicator(void)
-	?SetCopyMode@CAknFepIndicator@@QAEXH@Z @ 6 NONAME ; void CAknFepIndicator::SetCopyMode(int)
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/eabi/aknfepuiinterfaceu.def	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	_ZN16CAknFepIndicator11SetCopyModeEi @ 1 NONAME
-	_ZN16CAknFepIndicatorD0Ev @ 2 NONAME
-	_ZN16CAknFepIndicatorD1Ev @ 3 NONAME
-	_ZN16CAknFepIndicatorD2Ev @ 4 NONAME
-	_ZN18CAknFepUIInterface4NewLEv @ 5 NONAME
-	_ZN18CAknFepUIInterfaceD0Ev @ 6 NONAME
-	_ZN18CAknFepUIInterfaceD1Ev @ 7 NONAME
-	_ZN18CAknFepUIInterfaceD2Ev @ 8 NONAME
-	_ZN30MAknFepUiInterfaceMenuObserver15DynInitMenuBarLEiP25CAknFepUiInterfaceMenuBar @ 9 NONAME
-	_ZN30MAknFepUiInterfaceMenuObserver16DynInitMenuPaneLEiP26CAknFepUiInterfaceMenuPane @ 10 NONAME
-	_ZTI16CAknFepIndicator @ 11 NONAME ; #<TI>#
-	_ZTI18CAknFepUIInterface @ 12 NONAME ; #<TI>#
-	_ZTI30MAknFepUiInterfaceMenuObserver @ 13 NONAME ; #<TI>#
-	_ZTV16CAknFepIndicator @ 14 NONAME ; #<VT>#
-	_ZTV18CAknFepUIInterface @ 15 NONAME ; #<VT>#
-	_ZTV30MAknFepUiInterfaceMenuObserver @ 16 NONAME ; #<VT>#
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/group/AknFepUiInterface.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       MakMake Project file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <data_caging_paths.hrh>
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET          aknfepuiinterface.dll
-TARGETTYPE      DLL
-
-UID             0x1000008D 0x10285778
-CAPABILITY      All -Tcb
-
-VENDORID        VID_DEFAULT
-
-
-USERINCLUDE     ../inc .
-USERINCLUDE     ../../../inc
-
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   ../inc
-SYSTEMINCLUDE   ../../../../../inc
-
-SOURCEPATH      ../src
-
-SOURCE          AknFepUiInterface.cpp
-SOURCE          AknFepIndicator.cpp
-SOURCE			AknFepUiMenus.cpp
-
-LIBRARY         euser.lib
-LIBRARY 		ecom.lib
-LIBRARY			eikcore.lib
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Bldmake component description file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-
-../inc/aknfepindicator.h        	|../../../../../inc/aknfepindicator.h
-../inc/AknFepUICtrlCandidatePane.h	|../../../../../inc/AknFepUICtrlCandidatePane.h
-../inc/AknFepUICtrlCandidatePaneInterface.h	|../../../../../inc/AknFepUICtrlCandidatePaneInterface.h
-../inc/AknFepUiCtrlContainerChinese.h	|../../../../../inc/AknFepUiCtrlContainerChinese.h
-../inc/AknFepUICtrlContainerJapanese.h	|../../../../../inc/AknFepUICtrlContainerJapanese.h
-../inc/AknFepUICtrlInputPane.h	|../../../../../inc/AknFepUICtrlInputPane.h
-../inc/AknFepUICtrlPinyinPopup.h	|../../../../../inc/AknFepUICtrlPinyinPopup.h
-../inc/AknFepUIStylusPopupMenu.h	|../../../../../inc/AknFepUIStylusPopupMenu.h
-../inc/aknfepuictrleditpane.h     |../../../../../inc/aknfepuictrleditpane.h
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-../inc/AknFepCandidatePopup.h 		|../../../../../inc/AknFepCandidatePopup.h
-../inc/AknFepCandidatePopupCallback.h   |../../../../../inc/AknFepCandidatePopupCallback.h
-../inc/AknFepUiWordPopupContent.h	|../../../../../inc/AknFepUiWordPopupContent.h
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-PRJ_MMPFILES
-// specify the .mmp files required for building the important component releasables
-// note that you should specify any .mmp files for test programs further down the file.
-//
-// Use C++ style #defines to denote that a component is only built for a particular platform
-
-// ../group/aknfepuiinterface.mmp This is now built from aknfep's main bld.inf.
-
-
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopup.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* Copyright (c) 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:             A non-focusing popup menu to show candidates.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_CANDIDATE_POPUP_H
-#define __AKN_FEP_CANDIDATE_POPUP_H
-
-// MACROS
-//To congigure the number of candidates in list
-const TInt KPredictiveListCandidateMax = 16; 
-
-// CLASS DECLARATION
-class MAknFepCandidatePopup
-    {
-public: // methods
-	
-	/**
-	 * destructor
-	 */
-    virtual ~MAknFepCandidatePopup() = 0;
-
-    /**
-    * Getter for the currently active word
-    * @return   The currently active word as pointer descriptor
-    */
-    virtual TPtrC ActiveWord() const = 0;
-    
-    /**
-    * Getter for the exact word (the word with ordinal 0)
-    * @return   The exact word as pointer descriptor.
-    */
-    virtual TPtrC ExactWord() const = 0;
-    
-    /**
-    * Makes the pop-up selection list visible and blocks until the dialog has been dismissed.
-    * @param    aInlineEditorRect   Tells the place of the inline editor. If possible, the popup is opened
-    *                               so that it does not hide the inline editor.
-    * @param    aSelectedIdx        Output argument for the selected index.
-    * @param    aLastKeyEvent       The last key event received by the popup. On return this is the event
-    *                               which closed the popup.
-    * @param    aRightToLeftLanguage Direction of the candidate language.ETrue is right to left. EFalse otherwise
-    * @param    aKeyboard           Keyboard type in use (TPtiKeyboardType)
-    *
-    * @return   The command id used to close the window. EAknFepSoftkeySpell, EAknSoftkeyCancel, or EAknSoftkeySelect
-    */
-    virtual TInt ExecutePopupL( const TRect& aInlineEditorRect, TInt& aSelectedIdx, TKeyEvent& aLastKeyEvent, TBool aRightToLeftLanguage, TInt aKeyboard ) = 0;
-    
-    /**
-    * Function called when the dialog is dismissed. Among other things, this hides the dialog
-    * and deblocks the thread. Unlike in the base class, the instance is not destroyed here. 
-    * The same popup instance can be reused by calling ExecutePopupL() again. 
-    * @param    aAccept     EFalse  if the dialog was cancelled.
-    *                       ETrue   otherwise.
-    */
-    virtual void AttemptExitL(TBool aAccept) = 0;
-
-    /**
-    * Removes the focus from the candidate list and makes the editor to be in focus.
-    */
-    virtual void UnFocus() = 0;
-    /**
-    * Changes the position where the candidate list is shown. The position of the candidate list is choosen by the
-    * candidate list itself but can be controlled by the inline text rectangle.
-    * @param    aRect  The inline text rect.
-    */
-    virtual void ShowAtNewPosition(TRect aRect) = 0;
-    
-    /**
-     *  Revert back the candidate focus, and add the candidate list to the control stack reducing
-     *  the control priority. Usually, this function can be called after void UnFocus().
-     */
-    virtual void SetFocusAddStackReducePriorityL() = 0;
-
-       
-    };
-    
-#endif // __AKN_FEP_CANDIDATE_POPUP_ H
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopupCallback.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 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:             A callback interface for the candidate popup
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_CANDIDATE_POPUP_CALLBACK_H
-#define __AKN_FEP_CANDIDATE_POPUP_CALLBACK_H
-
-class MAknFepCandidatePopupCallback
-    {
-public:
-    /**
-    * Callback the get the current set of candidates
-    * @param    aArray      An output parameter for the candidate strings
-    * @param    aActiveIdx  An output parameter for the index of the 
-    *                       currently active candidate
-    */
-    virtual void GetCandidatesL( CDesCArray& aArray, TInt& aActiveIdx ) = 0;  
-    
-    /**
-     * Callback get current position of candidate list.
-     * @param  aRect  New posion of candidate list
-     */
-    virtual void GetUpdateCandidatePositionL(TRect& aRect) = 0;
-    };
-    
-#endif // __AKN_FEP_CANDIDATE_POPUP_CALLBACK_H
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepIndicator.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2002 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 CAknFepIndicator definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPIND_H
-#define AKNFEPIND_H
-
-#include <e32base.h>
-#include <aknEditStateIndicator.h>  //MAknEditingStateIndicator
-
-class CAknNavigationDecorator;
-class CAknNavigationControlContainer;
-class CEikonEnv;
-
-class CAknFepIndicator : public CBase, public MAknEditingStateIndicator
-	{
-public:
-    IMPORT_C ~CAknFepIndicator();
-	
-public: // new functions    
-    /**
-     * Sets flag that copy mode is ON
-     */    
-    IMPORT_C void SetCopyMode(TBool aCopyMode); 
-    
-protected:
-    TBool                       iCopyMode;
-    TBool                       iCopyModeChanged;
-	};
-
-#endif // AknFepIND_H
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,305 +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 CAknFepUICtrlCandidatePane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_CANDIDATE_PANE_H__
-#define __AKN_FEP_CANDIDATE_PANE_H__
-
-#include <e32std.h>
-#include <coecntrl.h>
-
-#include "AknFepUiCtrlContainerChinese.h"
-
-/**
-* TPage holds the start index, end index and start position in buffer of every display page
-*/
-struct TPage
-    {
-    TInt iStartIndex;
-    TInt iEndIndex;
-    };
-
-/**
- * Pane which displays the Chinese Candidates.
- */
-class MAknFepUICtrlCandidatePane
-    {
-public:
-    enum
-        {
-        EOneCandidate = 1,
-        EMaxCandidates = 10,
-        EMaxPages = 10,
-        EPhraseLength = 10
-        };
-    /**
-     * each candidate can be in a certain mode, which may affect its layout. Note
-     * that only stroke is needed at this time (for components), but more modes could be added 
-     * later if the LAF spec changes.
-     */
-    enum TCandidateMode
-        {
-        ECandidateModeNormal,
-        ECandidateModeStroke
-        };
-public:
-    /**
-     * Allows the client to set a descriptor pointer into an existing buffer of 
-     * data, avoiding unnecessary copying of data.
-     * <p> Note that if the buffer contains less characters than the current
-     * visible count, then the remaining characters will not be displayed. 
-     * <p> Note also that if the current selection falls outside the range
-     * of the size of the new buffer, it will be made not visible. 
-     * However, the current highlighted state remains, so if the selection 
-     * is set once more to a valid entry (or if the buffer is set to a length that 
-     * includes the currently selected position), and the highlight is still enabled,
-     * the highlight will reappear.
-     *
-     * @param aBufferPtr descriptor that contains the candidates for display,
-     *                              could be a pointer into a subset of a larger descriptor 
-     *                              that contains all the candidates. Note that only the 
-     *                              first EMaxCandidates of aBuffer will be used. 
-     *                              Length must be > 0.
-     */
-    virtual void SetCandidateBuffer(const TDesC& aBuffer) = 0;
-
-    /**
-     * This function sets the highlighted status of the pane for rendering purposes. 
-     * If the Pane is highlighted it displays the current selected Candidate, 
-     * plus numbers with each of the other Candidates. 
-     * 
-     * @param aHighlighted ETrue if the highlight is to be set
-     *                                  EFalse if the highlight is to be removed
-     */
-    virtual void SetHighlighted(TBool aHighlighted) = 0;
-
-    /**
-     * enable/disable the rendering of the Horizontal Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    virtual void ShowHorizontalScrollArrows(TBool aValue) = 0;
-
-
-    /**
-     * enable/disable the rendering of the up Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    virtual void ShowUpScrollArrows(TBool aValue) = 0;
-
-    /**
-     * enable/disable the rendering of the down Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    virtual void ShowDownScrollArrows(TBool aValue) = 0;
-    
-     /**
-     * enable/disable the rendering of the left Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    virtual void ShowLeftScrollArrows(TBool aValue) = 0;
-    
-        /**
-     * enable/disable the rendering of the right Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *  if EFalse, disable the arrrows
-     */
-    virtual void ShowRightScrollArrows(TBool aValue) = 0;
-
-    /**
-     * enable/disable the rendering of the Vertical Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    virtual void ShowVerticalScrollArrows(TBool aValue) = 0;
-
-    /**
-     * enable/disable the rendering of the candidate ordinal numbers
-     *
-     * @param aValue if ETrue, enable the ordinals
-     *                          if EFalse, disable the ordinals
-     *
-     */
-    virtual void ShowCandidateOrdinals(TBool aValue) = 0;
-
-    /**
-     * This function returns the number of Candidates that are visible in the pane 
-     * in its current configuration.
-     *
-     * @return number of candidates that are currently visible
-     */
-    virtual TInt VisibleCandidateCount() const = 0;
-
-    /**
-     * Select the first visible item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    virtual TBool SelectFirst() = 0;
-
-    /**
-     * Select the first visible phrase item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    virtual TBool SelectFirstPhrase() = 0;
-    
-    /**
-     * Select the last visible item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    virtual TBool SelectLast() = 0;
-
-    /**
-     * Select the last visible phrase item in the candidate buffer
-     *
-     * @return ETrue if success, EFalse if no items visible
-     *
-     */
-    virtual TBool SelectLastPhrase() = 0;
-
-    /**
-     * Select the next visible item
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if already on last visible item
-     */
-    virtual TBool SelectNext() = 0;
-    /**
-     * Select the previous visible item
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if already on first visible item
-     */
-    virtual TBool SelectPrev() = 0;
-
-    /**
-     * This function selects the given index. 
-     * <p> Note that if the new selected index is within the visible count, 
-     * but falls on a candidate that is not valid (i.e. if it falls outside the
-     * length of the candidate buffer) then nothing happens and EFalse is returned
-     *
-     * @param aIndex If aIndex falls outside length of candidate buffer, 
-     *                          then return EFalse to indicate failure. 
-     * @return ETrue if index was valid, EFalse if index not valid
-     */
-    virtual TBool SelectIndex(TInt aIndex, TBool selected = ETrue) = 0;
-
-    /**
-     * This function returns the selected index of the Candidate Pane. 
-     * 
-     * @return the index of the selected item. If the Pane is not highlighted it returns 0.
-     *
-     */
-    virtual TInt SelectedIndex() const = 0;
-    
-    /**
-     * This function returns the character at index of the current selection
-     *
-     * @return a descrptor containing the character that is currently selected.
-     *              If the currect selection falls outside the length of the current buffer,
-     *              then return a null descriptor
-     *
-     */
-    virtual TPtrC CurrentCandidate() const = 0;
-    /**
-     * This function returns the phrase at index of the current selection
-     *
-     * @return a descrptor containing the character that is currently selected.
-     *              If the currect selection falls outside the length of the current buffer,
-     *              then return a null descriptor
-     *
-     */
-    virtual TPtrC CurrentPhraseCandidate() const = 0;
-    /**
-	*	Split phrase candidates into pages 
-	*/
-    virtual void SplitPhraseCandidatesIntoPages() = 0;
-  
-    /**
-	*	Navigate to next page 
-	*/
-    virtual void NextCandidatePage(void) = 0;
-   
-    /**
-	*	Navigate to previous page 
-	*/
-    virtual void PreviousCandidatePage(void) = 0;
-
-    /**
-	*	Return candidate array 
-	*/
-    virtual CDesCArrayFlat* CandidateArray(void) = 0;
-
-    /**
-	*	Set phrase candidate buffer
-	*/
-    virtual void SetCandidateBuffer(void) = 0;
-
-	/**
-	*	Reset candidate pane state and variables
-	*/
-	virtual void ResetCandidateState() = 0;
-	
-	/**
-	 *	To test whether current page is the first page
-	 */
-	virtual TBool IsFirstPage() = 0;
-	
-	/**
-	 *	To test whether current page is the last page
-	 */
-	virtual TBool IsLastPage() = 0;
-
-   /**
-     *  To set all the cnadidate label invisible(phrase creation)
-     */
-    virtual void SetInVisiable() = 0;
-
-	/**
-	 *	To test whether need to get new candidate page
-	 */
-	virtual TBool NeedGetNewCandidatePage() = 0;
-    };
-
-#endif //__AKN_FEP_CANDIDATE_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePaneInterface.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +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 MAknFepUICtrlCandidatePaneInterface definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_CTRL_CANDIDATEPANE_INTERFACE_H__
-#define __AKN_FEP_UI_CTRL_CANDIDATEPANE_INTERFACE_H__
-
-#include <e32std.h>
-#include <badesca.h> //CDesCArrayFlat
-
-enum TAknFepUICtrlScroll
-    {
-    EScrollNone,
-    EScrollLeft,
-    EScrollRight,
-    EScrollUp,
-    EScrollDown
-    };
-
-
-class MAknFepUICtrlCandidatePaneInterface
-    {
-public:
-    /**
-     * Destructor.
-     */
-    virtual ~MAknFepUICtrlCandidatePaneInterface() {};
-    /**
-     * Show Candidate List
-     *
-     * @param   aItems      The disposition of an item
-     * @param   aIndex      The index of the cursor position when an initial display
-     * @param   aLeftSideOfBaseLine
-     * @param   aHeight     
-     * @param   aAscent
-     */
-    virtual void ShowCandidateListL(CDesCArrayFlat* aItems,
-                                    TInt aIndex, TInt aResourceID) = 0;
-    /**
-     * Close Candidate List
-     */
-    virtual void HideWindow() = 0;
-    /**
-     * 
-     */
-    virtual TInt CurrentItemIndexOfCandidate() = 0;
-    /**
-     * 
-     */
-    virtual TInt MoveItem(TAknFepUICtrlScroll aDirection) = 0;
-    /**
-     * 
-     */
-    virtual void SetWindowPosition(const TPoint& aLeftSideOfBaseLine, TInt aHeight, TInt aAscent) = 0;
-    };
-
-#endif
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidateSelected.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +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 CAknFepUICtrlCandidateSelected definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-#define __AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-
-#include <e32std.h>
-#include <coecntrl.h>
-
-#include "AknFepUICtrlCandidatePane.h"
-
-class CEikLabel;
-
-/**
- * Control representing the selected candidate. Is a window owning control,
- * that appears over the candidate pane such that it obscures the labels
- * beneath. Can be hidden, for example if there is no visible selection, 
- * or if highlighting is disabled.
- */
-class CAknFepUICtrlCandidateSelected : public CCoeControl
-    {
-public:
-    enum
-        {
-		EOneCandidate = 1,
-        EMaxSelectedCandidateLength = 10 // extend buffer for phrase input
-        };
-public:
-
-    /**
-     * first phase construction
-     */
-    static CAknFepUICtrlCandidateSelected* NewL(RWindowTreeNode& aParent);
-
-    /**
-     * destructor
-     */
-    ~CAknFepUICtrlCandidateSelected();
-
-    /**
-     * Set the text buffer of the Pane.
-     *
-     * @param aCharacter, the label will be filled with the characters from aCharacter
-     */
-    void SetText(TPtrC aCharacter);
-    
-    /**
-     * Set the ordinal of the Pane.
-     *
-     * @param aOrdinal
-     */
-    void SetOrdinal(TInt aOrdinal);
-
-    /**
-     * This function sets the candidate mode of the pane for rendering purposes.
-     *
-     * @param aMode the new mode
-     */
-    void SetCandidateMode(CAknFepUICtrlCandidatePane::TCandidateMode aMode);
-
-	/**
-	* Set layout
-	* @param aLayout the new layout
-	*/
-	void SetLayout(CAknFepUICtrlContainerChinese::TPaneLayout aLayout);
-	/**
-	* Set ordinal status
-	* @param aValue the new status
-	*/
-	void ShowOrdinal(TBool aValue);
-
-public: // from CCoeControl
-    /**
-     * size changed
-     */
-    virtual void SizeChanged();
-
-    /**
-     * count component controls
-     *
-     * @return number of contained controls
-     */
-    TInt CountComponentControls() const;
-
-    /**
-     * Component control
-     *
-     * @param aIndex the control to return, must be between 0 and the number of controls
-     * @return pointer to contained control, ownership is not passed
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const;
-
-    /**
-     * draw
-     *
-     * @param aRect rectangle
-     */
-    virtual void Draw(const TRect& aRect) const;
-
-protected:
-    /**
-     * second phase construction
-     */
-    void ConstructL(RWindowTreeNode& aParent);
-
-     /**
-      * constructor
-      */
-    CAknFepUICtrlCandidateSelected();
-
-    /**
-     * layout the rectangles
-     */
-    void LayoutRects();
-
-    /**
-     * layout contained controls
-     */
-    void LayoutContainedControls();
-
-    /**
-     * layout the background frames
-     *
-     * @param aOuterRect filled with outer rect coords
-     * @param aInnerRect filled with inner rect coords
-     *
-     */
-    void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
-
-    /**
-     * set label vilisibilty, according to the current pane layout
-     */
-    void UpdateLabelVisibility();
-
-private:
-    TAknLayoutRect iRectShadow;
-    TAknLayoutRect iRectHighlight;
-	TBufC<EMaxSelectedCandidateLength> iBuffer;
-    CAknFepUICtrlCandidatePane::TCandidateMode iCandidateMode;
-    TInt iIndex;
-    CAknFepUICtrlContainerChinese::TPaneLayout iPaneLayout;
-	TBool iShowOrdinal;
-private: // the following are owned
-    CEikLabel* iCandidateLabel;
-    CEikLabel* iOrdinalLabel;
-    };
-
-#endif //__AKN_FEP_CANDIDATE_SELECTED_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlContainerJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2003 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 CAknFepUICtrlContainerJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_CONTAINER_JAPANESE_H__
-#define __AKN_FEP_UI_CONTAINER_JAPANESE_H__
-
-// INCLUDES
-#include <e32base.h>
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATION
-
-// CLASS DECLARATION
-class MAknFepUICtrlCandidatePaneInterface;
-
-/**
- * Container for the Japanese Candidate Pane and the Predictive Candidate Pane.
- *
- * @lib AknFep.lib
- * @since 2.6
- */
-class MAknFepUICtrlContainerJapanese
-    {
-public:
-    /**
-     *
-     * @since 2.6
-     */
-    enum TAknFepUICtrlCandidatePaneId
-        {
-        EJapaneseCandidatePane,
-        EJapanesePredictiveCandidatePane,
-        EJapaneseCandidatePaneMax
-        };
-
-public: // New faunctions
-    /**
-     * destructor
-     */
-    virtual ~MAknFepUICtrlContainerJapanese() = 0;
-
-    /**
-     * @since 2.6
-     * @param aId
-     * @return
-     */
-    virtual MAknFepUICtrlCandidatePaneInterface* CandidatePane(TAknFepUICtrlCandidatePaneId aId) = 0;
-    };
-
-#endif // __AKN_FEP_UI_CONTAINER_JAPANESE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlInputPane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +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 CAknFepUICtrlInputPane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_INPUT_PANE_H__
-#define __AKN_FEP_INPUT_PANE_H__
-
-#include <e32std.h>
-
-/**
- * pane in which the user's input is shown
- */
-class MAknFepUICtrlInputPane
-    {
-public:
-    /**
-     * Different layouts, can be used depending on whether used as the input pane, or as 
-     * an entry in the popup pinyin window
-     */
-    enum TInputPaneLayout
-        {
-		ELayoutPhraseInputPane = 3,
-		ELayoutPhrasePinyinPopupPane,
-		ELayoutPhraseMiniQwertyZhuyin
-        };
-
-    /**
-     * The number of characters that can be displayed in the input pane.
-     * This does not include the tone mark, which is counted separately.
-     */
-    enum
-        {
-        EMaxToneMarkLength = 1,
-        EMaxInputCharsInputPaneNotIncludingToneMark = 30, // need 30 in the case of stroke
-        EMaxInputCharsPinyinPopupNotIncludingToneMark = 21,
-        EMaxInputCharsZhuyinPopup = 16,
-        EMaxInputCharsInputPane = EMaxInputCharsInputPaneNotIncludingToneMark + EMaxToneMarkLength,
-        EMaxInputCharsPinyinPopup = EMaxInputCharsPinyinPopupNotIncludingToneMark + EMaxToneMarkLength,
-        EMaxInputChars = EMaxInputCharsInputPane + EMaxInputCharsPinyinPopup // guaranteed big enough for either
-        };
-    
-    enum 
-        {
-        EPhoneticChanged  = 0x0001
-        };
-
-public:
-    virtual void SetText(const TDesC& aDes) = 0;
-
-    /**
-     * Get the text buffer of the pane
-     *
-     * @output aText the buffer is filled with the contents of the candidate
-     *              of the pane, up to the size of the buffer
-     */
-    virtual void GetText(TDes& aText) const = 0;
-
-    /**
-     * This function sets the Tone Mark for the Pane.
-     *
-     * @param aToneMark descriptor containing the tone mark character
-     */
-    virtual void SetToneMark(const TDesC& aToneMark) = 0;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     */
-    virtual void SetToneMarkValidity(TBool aValid) = 0;
-
-    /**
-     * sets the font to be used, which will override the font from LAF
-     *
-     * @param aFontId the new font id, pass in 0 to use the one from LAF
-     *
-     */
-    virtual void SetOverrideFontId(TInt aFontId) = 0;
-    virtual void SetFlag(TInt aFlag) = 0;
-    virtual void ClearFlag(TInt aFlag) = 0;
-    virtual TBool IsFlagSet(TInt aFlag) const = 0;
-    };
-
-#endif //__AKN_FEP_INPUT_PANE_H__
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUICtrlPinyinPopup.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,455 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUICtrlPinyinPopup class definitions.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_PINYIN_POPUP_H
-#define __AKN_FEP_UI_PINYIN_POPUP_H
-
-#include <e32std.h>
-
-class MAknFepUICtrlPinyinPopup
-	{
-public:
-    enum 
-        {
-        ESpellingChanged    = 0x0001,
-        ESpellingNavigation = 0x0002,
-		EDispPageChanged	= 0x0004,
-		EChangeStatebyBackSpce = 0x1000//need by pinying phrase creation.
-        };
-
-    /**
-     * The number of selections that can be displayed in the popup.
-     */
-    enum
-        {
-        EMaxToneMarkLength = 1,
-        EMaxCandidates = 6,
-        EMaxCandidateCharsNotIncludingToneMark = 6,
-        EMaxCandidateChars = EMaxCandidateCharsNotIncludingToneMark + EMaxToneMarkLength,
-        EMaxPhraseCandidate = 10
-        };
-
-    typedef TBufC<EMaxToneMarkLength> TToneMark;
-
-public:
-    /**
-     * This function returns the index of the selected phrase item .
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    virtual TInt CurrentSelection() const = 0;
-    /**
-     * This function returns the visible index of the selected item.
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    virtual TInt CurrentVisibleSelection() const = 0;
-
-    /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     *
-     */
-    virtual void Enable(TBool aEnable) = 0;
-	/**
-     * set the number of selections that are visible
-     *
-     * @param aCount the number of visible selections, must be 
-     *                          0 < aCount <= KMaxNumberOfSelections 
-     */
-    virtual void SetVisibleCount(TInt aCount) = 0;
-
-    /**
-     * get the current visible selection count
-     *
-     * @return visible selection count
-     */
-    virtual TInt VisibleSelectionCount() const = 0;
-
-
-    /**
-     * This sets the string of the internal buffer for the item index aIndex to aText,
-     * even if the index falls outside the current visible candidates.
-     *
-     * @param aText new contents of text item
-     * @return ETrue if successful
-     *              EFalse if index outside visible candidates (but value is still set)
-     *
-     */
-    virtual TBool SetItemText(TInt aIndex, const TDesC& aText) = 0;
-
-    /**
-    *   Sets the string of the internal buffer for visible item 
-    */
-    virtual TBool SetPhraseItemTexts() = 0;
-    
-    /**
-     * This function gets the text at the index aIndex. 
-     *
-     * @param aIndex index of entry in window, zero based
-     * @output aText contains contents of text item
-     * @return ETrue always
-     *
-     */
-    virtual TBool GetItemText(TInt aIndex, TDes& aText) const = 0;
-
-    /**
-     * This function sets the Tone Mark for a specific entry
-     * 
-     * @param aIndex index of entry
-     * @param aToneMark the tone mark
-     *
-     */
-    virtual void SetToneMark(TInt aIndex, const TDesC& aToneMark) = 0;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @param aIndex index of the entry to be affected
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     */
-    virtual void SetItemToneMarkValidity(TInt aIndex, TBool aValid) = 0;
-    /**
-     * Is the control enabled for display?
-     *
-     * @return if not enabled, return EFalse
-     */
-    virtual TBool IsEnabled() const = 0;
-
-    /**
-     * Select the next visible item. If already on the last one, loop to the 
-     * first one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    virtual TBool SelectNextPhrase() = 0;
-
-    /**
-     * Select the previous visible item. If already on the first one, loop to the 
-     * last one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    virtual TBool SelectPrevPhrase() = 0;
-
-    /**
-	*	Return Pinyin spelling candidate array 
-	*/
-    virtual CDesCArrayFlat* PhoneticSpellingArray(void) = 0;
-
-    /**
-	*	Split phrase pinyin spelling candidates into pages 
-	*/
-    virtual void SplitPhraseSpellingIntoPages(void) = 0;
-
-    /**
-	*	Split pinyin spelling candidates into pages 
-	*/
-    virtual void SplitSpellingIntoPages(TInt aCount) = 0;
-    
-    /**
-	*	Set display page for deliberate selection 
-	*/
-    virtual void SetDisplayPage(TInt aSelection) = 0;
-
-    /**
-	 *	Return keystroke array 
-	 */
-    virtual CDesCArrayFlat* KeystrokeArray(void) = 0;
-    
-    /**
-	 *	return in effect keystroke array
-	 */
-    virtual CDesCArrayFlat* InEffectKeystrokeArray(void) = 0;    
-
-    /**
-     *	Return show keystroke array 
-     */
-    virtual CDesCArrayFlat* ShowKeystrokeArray(void) = 0;
-    
-    /**
-     *	Return the optimize spelling array 
-     */
-    virtual CDesCArrayFlat* OptimizeSpelling(void) = 0;
-    
-    /**
-     *  Return the temp spelling array 
-     */
-    virtual CDesCArrayFlat* TempSpelling(void) = 0;
-    
-    /**
-     *	Return show keystroke array 
-     */
-    virtual CDesCArrayFlat* ChooseChineseCharacterArray(void) = 0;
-    
-    /**
-     *	Return show keystroke array 
-     */
-    virtual CDesCArrayFlat* ChooseChineseCharacterArrayKeystroke(void) = 0;
-
-    /**
-     *	Return the tone mark state 
-     */
-    virtual TBool GetTonemarkState() = 0;
-    
-    /**
-     *	set the tone mark state 
-     */
-    virtual void SetTonemarkState( TBool aState ) = 0; 
-    
-
-    /**
-     *	Return show keystroke array 
-     */
-    virtual CDesCArrayFlat* PhoneticSpellingIndexArray(void) = 0;
-    
-    /**
-	*	Return current page start spelling index 
-	*/
-    virtual TInt CurrentPageStartIndex(void) = 0;
-    virtual void SetFlag(TInt aFlag) = 0;
-    virtual void ClearFlag(TInt aFlag) = 0;
-    virtual TBool IsFlagSet(TInt aFlag) const = 0;
-    virtual void PopupSizeChanged() = 0;
-    /**
-     *  Set all the input pane not highlight
-     */
-    virtual void SetNoneHighlighted() = 0;
-    
-    virtual CDesCArrayFlat* KeystrokeArrayForStroke() = 0;
-
-    virtual CDesCArrayFlat* InEffectKeystrokeArrayForStroke() = 0;
-
-    virtual CDesCArrayFlat* ShowKeystrokeArrayForStroke() = 0;
-
-    virtual CDesCArrayFlat* ChooseChineseCharacterArrayForStroke() = 0;
-
-    virtual CDesCArrayFlat* ChooseChineseCharacterArrayKeystrokeForStroke() = 0;
-    
-    /**
-     * Get the current content array displayed in eep control for Zhuyin method.
-     */
-    virtual CDesCArrayFlat* ZhuyinSymbols() = 0;
-    
-    /**
-     * Get the current content array displayed in eep control for Zhuyin method.
-     */
-    virtual CDesCArrayFlat* ZhuyinShowSymbols() = 0;
-    
-    /**
-     * Get the current valid zhuyin symbol group.
-     */
-    virtual CDesCArrayFlat* FirstValidZhuyinGrp() = 0;
-    
-    /**
-     * Get the current chinese characters displayed in the eep control.
-     */
-    virtual CDesCArrayFlat* ChineseCharsDisped() = 0;
-    
-    /**
-     * Get the corresponding zhuyin symbol array for chinese characters array.
-     */
-    virtual CDesCArrayFlat* ZhuyinSymbolsForChineseCharsDisped() = 0;
-    
-    virtual void SetEEPContent ( const TDes& aDes ) = 0;
-    virtual TDes& GetEEPContent ( ) = 0;
-    
-    virtual void SetEEPContentValid ( TBool aValid ) = 0;
-    virtual TBool GetEEPContentValid ( ) = 0;
-    
-    virtual void ResetStrokeArray() = 0;
-    
-    virtual void SetChangeState(TBool aChangeState) = 0;
-    
-    virtual TBool IsChangeStatet() const = 0;
-    
-    /**
-     * Set whether state change from entry to spelling editing is automatical.
-     * 
-     * @param aState.1 for automatical, 0 for manual.
-     * @return None.
-     */
-    virtual void SetState( TInt aState ) = 0;
-    
-    /**
-     * Get state change status.
-     */
-    virtual TInt GetState() = 0;
-    
-    /**
-     * Set whether state change from pinyin input state to pinyin phrase creation.
-     * 
-     * @param aState. ETrue for state change from pinyin input to phrase creation,
-     *  EFalse is not.
-     * @since S60 V5.0
-     * @return None.
-     */
-    virtual void SetPhraseCreationState( TBool aState ) = 0;
-    
-    /**
-     * Set whether at the editing state happen editing for pinyin phrase creation.
-     * 
-     * @param aState. ETrue happen editing,EFalse others.
-     * @since S60 V5.0
-     * @return None.
-     */
-    virtual void SetPhraseCreationEditingState( TBool aState ) = 0;
-    
-    /**
-     * Get whether state change from pinyin input state to pinyin phrase creation.
-     * 
-     * @since S60 V5.0
-     * @return ETrue for state change from pinyin input to phrase creation,
-     *  EFalse is not.
-     */
-    virtual TBool GetPhraseCreationState() = 0;
-    
-    /**
-     * Get whether at the editing state happen editing for pinyin phrase creation.
-     * 
-     * @since S60 V5.0
-     * @return None.
-     */
-    virtual TBool GetPhraseCreationEditingState() = 0;
-    
-    /**
-     * set flag whether from candidate state change state.
-     * 
-     * @param aFlag  ETrue from the candidate state change state, other EFalse.
-     * @since S60 V5.0
-     * @return none.
-     */
-    virtual void SetFromCandidateChangeStateFlag( TBool aFlag ) = 0;
-    
-    /**
-     * Get flag whether from candidate state change state.
-     * 
-     * @since S60 V5.0
-     * @return ETrue from the candidate state change state, other EFalse.
-     */
-    virtual TBool GetFromCandidateChangeStateFlag() = 0;
-    
-    /**
-     * Set count of valid keystroke.
-     * 
-     * @since S60 V5.0
-     * @return none
-     */
-    virtual void SetValidKeystrokeCount( TInt aCount ) = 0;
-    
-    /**
-     * get count of valid keystroke.
-     * 
-     * @since S60 V5.0
-     * @return count of valid keystroke.
-     */
-    virtual TInt GetValidKeystrokeCount() = 0;
-    
-    /**
-     * Set last cba resouce id.
-     * 
-     * @since S60 V5.0
-     * @return None
-     */
-    virtual void SetLastResouce( TInt aResouceId ) = 0;
-    
-    /**
-     * Get last cba resouce id.
-     * 
-     * @since S60 V5.0
-     * @return last resouce id
-     */
-    virtual TInt GetLastResouce() = 0;
-    
-    /**
-     * Set change state from Edit to Spelling flag.
-     * 
-     * @param aFlag,If ETrue Change from Edit state to spelling state,EFalse others. 
-     * @since S60 V5.0
-     * @return none.
-     */
-    virtual void SetFromEditToSpellingFlag( TBool aFlag = EFalse ) = 0;
-
-    /**
-     * Set change state from Edit to Spelling flag.
-     * 
-     * @param none. 
-     * @since S60 V5.0
-     * @return ETrue Change from Edit state to spelling state,EFalse others..
-     */
-    virtual TInt GetFromEditToSpellingFlag() = 0;
-    
-    /**
-     * Set valid keystroke change flag.
-     * 
-     * @param aFlag, ETrue valid keystroke changed,EFalse others.
-     * @since S60 V5.0
-     * @return none
-     */
-    virtual void SetValidKeystrokeChange( TBool aFlag ) = 0;
-    
-    /**
-     * Get valid keystroke change flag.
-     * 
-     * @since S60 V5.0
-     * @return ETrue,if vallid keystroke changed, others EFalse.
-     */
-    virtual TBool GetValidKeystrokeChange() = 0;
-    
-    /**
-     * Set PreStateIsPredict flag.
-     * 
-     * @param aFlag, ETrue PreStateIsPredict,EFalse others.
-     * @since S60 V5.0
-     * @return none
-     */
-    virtual void SetPreStateIsPredictive( TBool aFlag ) = 0;
-    
-    /**
-     * Get PreStateIsPredict flag.
-     * 
-     * @since S60 V5.0
-     * @return ETrue,if PreStateIsPredict, others EFalse.
-     */
-    virtual TBool GetPreStateIsPredictive() = 0;
-
-    virtual void SetInputLayoutMiniQwertyZhuyin() = 0;
-    
-    virtual void ResetInputLayoutMiniQwertyZhuyin() = 0;
-	};
-
-#endif // __AKN_FEP_UI_PINYIN_POPUP_H
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiCtrlContainerChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +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 CAknFepUICtrlContainerChinese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_CONTAINER_CHINESE_H__
-#define __AKN_FEP_UI_CONTAINER_CHINESE_H__
-
-#include <e32std.h>
-
-class MAknFepUICtrlInputPane;
-class MAknFepUICtrlCandidatePane;
-class MAknFepUICtrlPinyinPopup;
-class MAknFepUICtrlEditPane;
-class MAknFepManagerUIInterface;
-
-class MAknFepUICtrlContainerChinese
-{
-
-public:
-    /**
-     * Different layouts, the number represents the number of candidates visible in the candidate pane
-     */
-    enum TPaneLayout
-        {
-		ELayoutInput = 6,
-		ELayoutCandidate = 7,
-        // the follow 2 lines be added for phrase creation
-		ELayoutPhraseCreation = 8,
-		ELayoutKeystroke = 9
-        };
-public:
-    /**
-     * destructor
-     */
-    virtual ~MAknFepUICtrlContainerChinese() = 0;
-
-    /**
-     * get the input pane
-     *
-     * @return pointer to the input pane, ownership is not passed
-     */
-    virtual MAknFepUICtrlInputPane* InputPane() const = 0;
-
-    /**
-     * get the candidate pane
-     *
-     * @return pointer to the candidate pane, ownership is not passed
-     */
-    virtual MAknFepUICtrlCandidatePane* CandidatePane() const = 0;
-
-    /**
-     * get the phrase pinyin popup window 
-     *
-     * @return pointer to the phrase popup window, ownership is not passed
-     */
-    virtual MAknFepUICtrlPinyinPopup* PinyinPopupWindow() const = 0;
-
-    /**
-     * phrase creation's EEP Ctrl
-     * get the pinyin phrase creation popup window 
-     * 
-     * @return pointer to the pinyin phrase popup window, ownership is not passed
-    */
-    virtual MAknFepUICtrlEditPane* EditPaneWindow() const = 0;
-
-    /**
-     * Is the control displayed on the screen?
-     *
-     * @return if not enabled, returns EFalse
-     *
-     */
-    virtual TBool IsEnabled() const = 0;
-	 /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     *
-     */
-    virtual void Enable(TBool aEnable) = 0;
-
-    /**
-     * Arrange the constituent panes into the correct proportions for 
-     * the required layout. 
-     *
-     * @param aPaneLayout the required layout
-     *
-     */
-    virtual void SetLayout(TPaneLayout aPaneLayout) = 0;
- 
-
-    /**
-     * Set the Highlight to the desired control.
-     *
-     * @param aValue if aValue is ETrue set the focus to the Candidate Pane.
-     *                          if aValue is EFalse set focus to the Chinese Input Pane 
-     */
-    virtual void FocusCandidatePane(TBool aValue) = 0;
-
-    /**
-     * enable/disable the rendering of the Horizontal Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    virtual void ShowHorizontalScrollArrows(TBool aValue) = 0;
-    
-    /**
-     * enable/disable the rendering of the Vertical Scroll Arrows. 
-     *
-     * @param aValue if ETrue, enable the arrows
-     *                          if EFalse, disable the arrrows
-     */
-    virtual void ShowVerticalScrollArrows(TBool aValue) = 0;
-
-    /**
-     * Call this method if the fep is being displayed for a control that is 
-     * contained in a popup window (i.e. a Query). It changes the layout 
-     * of the container.
-     *
-     * @param aValue if ETrue, use the layout for display with a query
-     *                          if EFalse, use the normal layout
-     */
-    virtual void SetIsShownWithPopupWindows(TBool aValue) = 0;
-
-     /**
-     * This function sets cursor position.
-     *
-     * @param aCurPos containing the cursor position 
-     * @param aHeight containing font height
-     */
-    virtual void SetContainerPosition(TPoint aCurPos,TInt aHeight) = 0;
-
-    /**
-     * Set Candidate and pinyin popup invisible(phrase creation)
-     *
-     */
-    virtual void SetControlInVisible( TBool aVisible = ETrue ) = 0; 
-    
-    /**
-     * Set the state to phrase creation(phrase creation)
-     */
-    virtual void PhraseCreation( TBool aPhraseCreation ) = 0;
-    
-    /**
-     * Is the state is in phrase creation(phrase creation)
-     *
-     * @return if not phrase creation, return EFalse
-     */
-    virtual TInt& IsPhraseCreation() = 0;
-    
-    /**
-     * Set FepMan(phrase creation)
-     *
-     * @return if not enabled, return EFalse
-     */
-    virtual void SetFepMan( MAknFepManagerUIInterface* aFepMan ) = 0;
-
-	};
-#endif  // __AKN_FEP_UI_CONTAINER_CHINESE_H__
-
-// End of file
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiInterfacePlugin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Interface for FEP UI plugins
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIINTERFACEPLUGIN_H
-#define AKNFEPUIINTERFACEPLUGIN_H
-
-#include <e32base.h>
-
-class CAknFepUIInterface;
-
-class CFepUiInterfacePlugin : public CBase
-	{
-public:
-	enum TInterfaceUid { ETypeId = 0x10285779 };
-	virtual TBool UseThisPlugin() const = 0;
-	virtual CAknFepUIInterface* NewImplL() = 0;
-	};
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiStylusPopupMenu.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Interface through which the FEP can use UI components
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUISTYLUSPOPUPMENU_H
-#define AKNFEPUISTYLUSPOPUPMENU_H
-
-#include <e32base.h>
-
-
-class CAknFepUiInterfaceStylusPopUpMenu : public CBase
-	{
-public:
-    virtual void AddMenuItemL(const TDesC& aItem, const TInt aCommandId) = 0;
-    virtual void SetPosition(const TPoint& aPoint) = 0;    
-    virtual void ShowMenu() = 0;
-	};
-
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/AknFepUiWordPopupContent.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Interface through which the FEP can use pop up bubble components
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INTERFACE_WORD_POPUP_CONTENT_H
-#define __AKN_FEP_UI_INTERFACE_WORD_POPUP_CONTENT_H
-
-#include <e32base.h>
-#include <eikcmobs.h>
-#include <avkon.hrh>
-
-
-
-class MAknFepUiWordPopupContent 
-	{
-public:
-    // Enum copied from CAknFepExactWordPopupContent
-    enum TArrowDirection
-            {
-            EUpwards,       //!< The arrow included in the popup points upwards
-            EDownwards      //!< The arrow included in the popup points downwards
-			};
-public: 
-	virtual ~MAknFepUiWordPopupContent() = 0;
-public:
-		/**
-        * Sets the text to be shown in the popup
-        */
-        virtual void SetTextL( const TDesC& aText ) = 0;
-        
-        /**
-        * Sets the direction of the arrow included in the popup. This should be used as a hint
-        * about the direction to tap to select the word shown in the popup.
-        */
-        virtual void SetArrowDirection( TArrowDirection aDirection ) = 0;
-		/**
-        * Sets the delay used before showing the preview popup. The default 
-        * delay is one second.
-        * @param aDelay Delay in microseconds.
-        */
-		virtual void SetPopUpShowDelay( const TTimeIntervalMicroSeconds32& aDelay ) = 0;
-       
-        /**
-        * Sets the preview popup visible after specified delay. If the popup
-        * is already visible it is hidden immediately and shown again after the
-        * showing delay. Popup is automatically hidden after its hiding delay
-        * unless the delay is zero in which case the popup is shown infinitely.
-        */
-        virtual void ShowPopUp() = 0;
-        
-        /**
-        * Hides the popup immediately.
-        */
-        virtual void HidePopUp() = 0;
-        
-        /**
-        * Sets the position of preview popup. Popup's size is determined by the
-        * size of its content. The popup is placed left and down from the given 
-        * point. If fixed mode is used then this function has no effect.
-        * @param aPoint Popup's position.
-        */
-        virtual void SetPosition( const TPoint& aPoint ) = 0;
-
-        /**
-        * Updates popup's size to reflect a change in content's size.
-        * Should be called if the size of the content is changed dynamically.
-        */
-        virtual void UpdateContentSize() = 0;
-        
-        /**
-        * Returns the popup's size.
-        */
-        virtual TSize Size() const = 0;   
-        
-        /**
-        * Returns true if the popup is visible.
-        */
-        virtual TBool IsPopUpVisible() = 0;   
-    };
-
-#endif
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/aknfepuictrleditentrypopup.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,251 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUICtrlPinyinPopup class definitions.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKN_FEP_UI_EDIT_ENTRY_POPUP_H
-#define AKN_FEP_UI_EDIT_ENTRY_POPUP_H
-
-#include <e32std.h>
-
-class MAknFepUICtrlEditEntryPopup
-    {
-public:
-    enum 
-        {
-        ESpellingChanged    = 0x0001,
-        ESpellingNavigation = 0x0002,
-            EDispPageChanged    = 0x0004
-        };
-    /**
-     * The cursor move orientation.
-     */    
-    enum TMoveDirect
-        {
-        ELeft = 0,
-        ERight = 1
-        }; 
-    /**
-     * The number of selections that can be displayed in the popup.
-     */
-    enum
-        {
-        EMaxToneMarkLength = 1,
-        EMaxCandidates = 6,
-        EMaxCandidateCharsNotIncludingToneMark = 6,
-        EMaxCandidateChars = EMaxCandidateCharsNotIncludingToneMark + EMaxToneMarkLength,
-        EMaxPhraseCandidate = 10
-        };
-
-    typedef TBufC<EMaxToneMarkLength> TToneMark;
-
-public:
-    
-    /**
-     * This function move the cursor in the EEP.
-     *
-     * @param aMoveDirect if ELeft, the cursor move left
-     *                    if ERight, the cursor move right
-     *
-     * @return EFalse if the cursor can't move again other ETrue.
-     */
-    virtual TBool Move( TInt aMoveDirect ) const = 0;
-      
-    /**
-     * This function move the cursor in the EEP.
-     *
-     * @param aCount the number of the verifide Key sequence.
-     *
-     * @return None
-     */
-    virtual void SetVerifiedKeySequenceCount( TInt aCount ) const = 0;
-      
-    /**
-     * This function move the cursor in the EEP.
-     *
-     * @param aFlag if ETrue, the key sequence is verified
-     *              if EFalse, the key sequence is not verified.
-     *      
-     * @return EFalse if the cursor can't move again other ETrue.
-     */
-      virtual TBool SetVerifiedKeySequenceFlag( TBool aFlag) const = 0;
-      
-    /**
-     * This function returns the index of the selected phrase item .
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    virtual TInt CurrentSelection() const = 0;
-    
-    /**
-     * This function returns the visible index of the selected item.
-     *
-     * @return aIndex index of entry in window, zero based
-     */
-    virtual TInt CurrentVisibleSelection() const = 0;
-
-    /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     *
-     */
-    virtual void Enable(TBool aEnable) = 0;
-    /**
-     * set the number of selections that are visible
-     *
-     * @param aCount the number of visible selections, must be 
-     *                          0 < aCount <= KMaxNumberOfSelections 
-     */
-    virtual void SetVisibleCount(TInt aCount) = 0;
-
-    /**
-     * get the current visible selection count
-     *
-     * @return visible selection count
-     */
-    virtual TInt VisibleSelectionCount() const = 0;
-
-
-    /**
-     * This sets the string of the internal buffer for the item index aIndex to aText,
-     * even if the index falls outside the current visible candidates.
-     *
-     * @param aText new contents of text item
-     * @return ETrue if successful
-     *              EFalse if index outside visible candidates (but value is still set)
-     *
-     */
-    virtual TBool SetItemText(TInt aIndex, const TDesC& aText) = 0;
-
-    /**
-     *   Sets the string of the internal buffer for visible item 
-     */
-    virtual TBool SetPhraseItemTexts() = 0;
-    
-    /**
-     * This function gets the text at the index aIndex. 
-     *
-     * @param aIndex index of entry in window, zero based
-     * @output aText contains contents of text item
-     * @return ETrue always
-     *
-     */
-    virtual TBool GetItemText(TInt aIndex, TDes& aText) const = 0;
-
-    /**
-     * This function sets the Tone Mark for a specific entry
-     * 
-     * @param aIndex index of entry
-     * @param aToneMark the tone mark
-     *
-     */
-    virtual void SetToneMark(TInt aIndex, const TDesC& aToneMark) = 0;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @param aIndex index of the entry to be affected
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     */
-    virtual void SetItemToneMarkValidity(TInt aIndex, TBool aValid) = 0;
-    /**
-     * Is the control enabled for display?
-     *
-     * @return if not enabled, return EFalse
-     */
-    virtual TBool IsEnabled() const = 0;
-
-    /**
-     * Select the next visible item. If already on the last one, loop to the 
-     * first one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    virtual TBool SelectNextPhrase() = 0;
-
-    /**
-     * Select the previous visible item. If already on the first one, loop to the 
-     * last one.
-     *
-     * @return ETrue if success, 
-     *              EFalse if no items visible, or if selection is outside visible items
-     */
-    virtual TBool SelectPrevPhrase() = 0;
-
-    /**
-     * Return Pinyin spelling candidate array 
-     */
-    virtual CDesCArrayFlat* PhoneticSpellingArray(void) = 0;
-
-    /**
-     * Split phrase pinyin spelling candidates into pages 
-     */
-    virtual void SplitPhraseSpellingIntoPages(void) = 0;
-
-    /**
-     * Split pinyin spelling candidates into pages 
-     */
-    virtual void SplitSpellingIntoPages(TInt aCount) = 0;
-    
-    /**
-     * Set display page for deliberate selection 
-     */
-    virtual void SetDisplayPage(TInt aSelection) = 0;
-
-    /**
-     *    Return keystroke array 
-     */
-    virtual CDesCArrayFlat* KeystrokeArray(void) = 0;
-    
-    /**
-     *    return in effect keystroke array
-     */
-    virtual CDesCArrayFlat* InEffectKeystrokeArray(void) = 0;    
-
-    /**
-     *    Return show keystroke array 
-     */
-    virtual CDesCArrayFlat* ShowKeystrokeArray(void) = 0;
-    
-    /**
-     *    Return current page start spelling index 
-     */
-    virtual TInt CurrentPageStartIndex(void) = 0;
-    virtual void SetFlag(TInt aFlag) = 0;
-    virtual void ClearFlag(TInt aFlag) = 0;
-    virtual TBool IsFlagSet(TInt aFlag) const = 0;
-    virtual void PopupSizeChanged() = 0;
-    };
-
-#endif // AKN_FEP_UI_EDIT_ENTRY_POPUP_H
-
-// End of file
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/inc/aknfepuictrleditpane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,545 +0,0 @@
-/*
-* Copyright (c) 2008-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 MAknFepUICtrlEditPane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef M_AKNFEPUICTRLEDITPANE_H
-#define M_AKNFEPUICTRLEDITPANE_H
-
-/**
- * pane in which the user's edit is shown
- */
-class MAknFepUICtrlEditPane
-    {
-public:
-
-    /**
-	 * Set the show info
-	 * 	 
-     * @since S60 v5.0
-     * @param aDes the show info.
-     * @return None.
-     */
-	virtual void SetText( const TDesC& aDes ) = 0;
-	
-    /**
-     * Set the show info and cursor position
-     *   
-     * @since S60 v5.0
-     * @param aDes the show info.
-     * @param aCursorIndex the cursor position.
-     * @return None.
-     */
-    virtual void SetText( const TDesC& aDes, TInt aCursorIndex, TBool aMiniQwertyZhuyin = EFalse ) = 0;
-    
-    /**
-     * Set the show info
-     *   
-     * @since S60 v5.0
-     * @param aDes the show info.
-     * @param aCursorIndex the cursor position.
-     * @param aChineseCount the chinese count.
-     * @param aJudgeSeed the zhuyin symbols.
-     * @param aKeystroke the index of symbols.
-     * @param aRefreshOffset ETrue the show info only is zhuyin symbols.
-     * @return None.
-     */
-    virtual void SetTextForZhuyin( 
-                                  const TDesC& aDes, 
-                                  TInt aCursorIndex, 
-                                  TInt aChineseCount, 
-                                  const TDesC& aJudgeSeed, 
-                                  TInt aKeystroke, 
-                                  TBool aRefreshOffset = EFalse,
-                                  TBool aMiniQwertyZhuyin = EFalse
-                                  ) = 0;
-    
-    /**
-     * Set the cousor the index. 
-     *   
-     * @since S60 v5.0
-     * @param aIndex the index of cousor.
-     * @return None.
-     */
-	virtual void SetCursor( const TInt aIndex ) = 0;
-	
-    /**
-     * Get the index of the cursor.
-     *   
-     * @since S60 v5.0
-     * @return the index of cousor.
-     */
-	virtual TInt GetCursor() = 0;
-	
-    /**
-     * Move cursor to the left.
-     *   
-     * @since S60 v5.0
-     * @param aStride the cursor move offset.
-     * @return ETrue if the cursor can be move,EFalse the others.
-     */
-	virtual TBool MoveCursorLeft( TInt aStride = 1 ) = 0;
-
-    /**
-     * Move cursor to the right.
-     *   
-     * @since S60 v5.0
-     * @param aStride the cursor move offset.
-     * @return ETrue if the cursor can be move,EFalse the others.
-     */
-	virtual TBool MoveCursorRight( TInt aStride = 1 ) = 0;
-	
-    /**
-     * Active cursor. 
-     *   
-     * @since S60 v5.0
-     * @return None.
-     */
-    virtual void ActiveCursor() = 0;
-
-    /**
-     * Deactive cursor. 
-     *   
-     * @since S60 v5.0
-     * @return None.
-     */
-    virtual void DeactiveCursor() = 0;
-    
-    /**
-     * Enable cursor, the cursor will be drawn.
-     *   
-     * @since S60 v5.0
-     * @return None.
-     */
-    virtual void EnableCursor() = 0;
-    
-    /**
-     * Disable cursor, the cursor will be not drawn.
-     *   
-     * @since S60 v5.0
-     * @return None.
-     */
-    virtual void DisableCursor() = 0;
-    
-    /**
-     * Set the show info underline.
-     *   
-     * @since S60 v5.0
-     * @param aStartIndex the underline begine index.
-     * @param aEndIndex the underline end index.
-     * @return None.
-     */
-	virtual void SetUnderline( TInt aStartIndex, TInt aEndIndex ) = 0;
-	
-    /**
-     * Get the show info underline.
-     *   
-     * @since S60 v5.0
-     * @param aStartIndex the underline begine index.
-     * @param aEndIndex the underline end index.
-     * @return None.
-     */
-    virtual void GetUnderlineIndex(TInt& aStartIndex, TInt& aEndIndex) = 0;
-	
-    /**
-     * Set the highlight text.
-     *   
-     * @since S60 v5.0
-     * @param aStartIndex the high light begine index.
-     * @param aEndIndex the high light end index.
-     * @return None.
-     */
-    virtual void SetHighlight(TInt aStartIndex, TInt aEndIndex) = 0;
-
-    /**
-     * Get the highlight text.
-     *   
-     * @since S60 v5.0
-     * @param aStartIndex the high light begine index.
-     * @param aEndIndex the high light end index.
-     * @return None.
-     */
-    virtual void GetHighlightIndex(TInt& aStartIndex, TInt& aEndIndex) = 0;
-    
-    /**
-     * set index of keystroke array.
-     *   
-     * @since S60 v5.0
-     * @param aStartIndex the index.
-     * @return None.
-     */
-	virtual void SetCursorIndexOfKeystroke( const TInt aStartIndex ) = 0;
-	
-    /**
-     * Get index of keystroke array.
-     *   
-     * @since S60 v5.0
-     * @return the index.
-     */
-	virtual TInt GetCursorIndexOfKeystroke() = 0;
-
-    /**
-     * Enables the display of the control. Sets the control's 
-     * window postion and visibility, but only if the value has
-     * changed (so it's ok to call it excessively). 
-     *
-     * @since S60 v5.0
-     * @param aEnable if ETrue, makes visible
-     *                          if EFalse, makes non-visible
-     * @return none.
-     */
-    virtual void Enable(TBool aEnable) = 0;	
-
-    /**
-     * Is the control enabled for display?
-     *
-     * @since S60 v5.0
-     * @return if not enabled, return EFalse
-     */
-    virtual TBool IsEnabled() const = 0;
-	
-    /**
-     * Get the text buffer of the pane
-     *
-     * @since S60 v5.0
-     * @param aText the buffer is filled with the contents of the candidate
-     *              of the pane, up to the size of the buffer
-     * @return if not enabled, return EFalse
-     */
-    virtual void GetText(TDes& aText) = 0;
-    
-    /**
-     * Get the show info before cursor.
-     *
-     * @since S60 v5.0
-     * @param aOut the show info of the before cursor.
-     * 
-     * @return if not enabled, return EFalse
-     */
-    virtual TBool GetDesBeforeCursor ( TDes& aOut ) = 0;
-
-    /**
-     * This function sets the Tone Mark for the Pane.
-     *
-     * @since S60 v5.0
-     * @param aToneMark descriptor containing the tone mark character
-     * 
-     * @return none.
-     */
-    virtual void SetToneMark(const TDesC& aToneMark) = 0;
-
-    /**
-     * This function sets the validity of the tonemark
-     *
-     * @since S60 v5.0
-     * @param aValid if ETrue, tonemark will be displayed as valid
-     *                          if EFalse, tonemark will be displayed as not valid
-     * 
-     * @return none.
-     */
-    virtual void SetToneMarkValidity(TBool aValid) = 0;
-    
-    /**
-     * Reset private member viariable.
-     * 
-     * @since S60 v5.0
-     * @return None.
-     */
-    virtual void Reset() = 0;
-    
-    /**
-     * Sets the font to be used, which will override the font from LAF
-     *
-     * @since S60 v5.0
-     * @param aFontId the new font id, pass in 0 to use the one from LAF
-     * @return None.
-     */
-    virtual void SetOverrideFontId(TInt aFontId) = 0;
-    
-    /**
-     * Sets flag
-     *
-     * @since S60 v5.0
-     * @param aFlag the flag
-     * @return None.
-     */
-    virtual void SetFlag(TInt aFlag) = 0;
-    
-    /**
-     * Clear flag
-     *
-     * @since S60 v5.0
-     * @param aFlag the flag
-     * @return None.
-     */
-    virtual void ClearFlag(TInt aFlag) = 0;
-    
-    /**
-     * check flag
-     *
-     * @since S60 v5.0
-     * @param aFlag the flag
-     * @return if not enabled, return EFalse.
-     */
-    virtual TBool IsFlagSet(TInt aFlag) const = 0;
-    
-    /**
-     * Return kestroke array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual CDesCArrayFlat* KeystrokeArray() = 0;
-
-    /**
-     * Return show kestroke array. 
-     * save keystroke that after Analyse when pinyin. 
-     * save all valid keystroke when zhuyin. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual CDesCArrayFlat* ShowKeystrokeArray() = 0;
-
-    /**
-     * Return choose chinese charater array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual CDesCArrayFlat* PhraseArray() = 0;
-
-    /**
-      * Return choose chinese charater show keystroke array. 
-      * 
-      * @since S60 v3.2.3
-      * @param None.
-      * @return pointer of array.
-      */
-    virtual CDesCArrayFlat* PhraseShowKeyStrokeArray() = 0;
-    
-    /**
-     * Return temp array. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual CDesCArrayFlat* TempArray() = 0;
-    
-    /**
-     * Reset private member viariable array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return None.
-     */
-    virtual void ResetAllArray() = 0;
-    
-    /**
-     * change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue change state.
-     * @return None.
-     */
-    virtual void SetChangeState( TBool aState = ETrue ) = 0;
-    
-    /**
-     * check change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue if change state, EFalse others.
-     */
-    virtual TBool IsChangeState() = 0;
-
-    /**
-     * Set auto change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue auto change state, EFalse manual change state.
-     * @return None.
-     */
-    virtual void SetAutoChangeStateFlag( TBool aState = ETrue ) = 0;
-    
-    /**
-     * check change state flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue atuo change state, EFalse others.
-     */
-    virtual TBool GetAutoChangeStateFlag() = 0;
-    
-    
-    /**
-     * Set all the keystroke valid flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue all the keystroke is valid, EFalse others.
-     * @return None.
-     */
-    virtual void SetAllValidFlag( TBool aState = ETrue ) = 0;
-    
-    /**
-     * Get all the keystroke valid flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue all the keystroke is valid, EFalse others.
-     */
-    virtual TBool GetAllValidFlag() = 0;
-    
-    /**
-     * Set the keystroke invalid index.
-     * 
-     * @since S60 v3.2.3
-     * @param aIndex, the keystroke invalid index.
-     * @return None.
-     */
-    virtual void SetInvalidIndex( TInt aIndex = 0 ) = 0;
-    
-    /**
-     * Get all the invalid keystroke index.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return invalid keystroke index.
-     */
-    virtual TInt GetInvalidIndex() = 0;
-    
-    /**
-     * Set Phrase Creation flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue is phrase creation, EFalse others.
-     * @return None.
-     */
-    virtual void SetPhraseCreationFlag( TBool aState ) = 0;
-    
-    /**
-     * Get Phrase Creation flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue is phrase creation, EFalse others.
-     */
-    virtual TBool GetPhraseCreationFlag() = 0;
-    
-    /**
-     * Set Phrase Candidate state need refresh UI flag.
-     * 
-     * @since S60 v3.2.3
-     * @param aState, ETrue is that Candidate state need refresh UI,other don't need.
-     * @return None.
-     */
-    virtual void SetCandidateRefreshFlag( TBool aState ) = 0;
-    
-    /**
-     * Get Phrase Candidate state need refresh UI flag.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue is that Candidate state need refresh UI,EFalse don't need.
-     */
-    virtual TBool GetCandidateRefreshFlag() = 0;
-    
-    /**
-     * Set the delimiter count of keystroke.
-     * 
-     * @since S60 v3.2.3
-     * @param aCount, the delimiter count of keystroke.
-     * @return None.
-     */
-    virtual void SetDelimiterCount( TInt aCount ) = 0;
-    
-    /**
-     * Get the delimiter count of keystroke. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return aCount, the delimiter count of keystroke.
-     */
-    virtual TInt GetDelimiterCount() = 0;
-    
-    /**
-     * Get current cba resource id. 
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return current cba resource id.
-     */
-    virtual TInt GetCurrentCBAResID() = 0;
-    
-    /**
-     * Set current cba resource id. 
-     * 
-     * @since S60 v3.2.3
-     * @param aResourceId, current cba resource id.
-     * @return None.
-     */
-    virtual void SetCurrentCBAResID( TInt aResourceId) = 0;
-    
-    virtual void SetEffictiveLength( TInt aLength ) = 0;
-    
-    virtual TInt GetEffictiveLength() = 0;
-    
-    virtual void DecEffictiveLength() = 0;
-    
-    virtual void AddEffictiveLength() = 0;
-    
-    virtual void SetNeedClearDeliberateSelection( TBool aNeedClearDeliberateSelection ) = 0;
-    
-    virtual TBool NeedClearDeliberateSelection() = 0;
-	/**
-     * Return keycode array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual RArray<TInt>* KeycodeArray() = 0;
-    
-	/**
-     * Return phrase keycode array.
-     * 
-     * @since S60 v3.2.3
-     * @param None.
-     * @return pointer of array.
-     */
-    virtual RArray<TInt>* PhraseKeycodeArray() = 0;
-    };
-
-#endif /*M_AKNFEPUICTRLEDITPANE_H*/
-
-//End of File
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepIndicator.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +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 CAknFepIndicator methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikenv.h>         //CEikEnv
-#include <eikspane.h>       //CEikStatusPane
-#include <avkon.hrh>
-#include <aknnavi.h>        //CAknNavigationControlContainer
-#include <aknnavide.h>      //CAknNavigationDecorator
-#include <AknIndicatorContainer.h>  //CAknIndicatorContainer
-#include <aknEditStateIndicator.h>
-#include <AknUtils.h>
-#include "AknFepIndicator.h"
-
-#include "AknFepGlobalEnums.h"
-
-EXPORT_C CAknFepIndicator::~CAknFepIndicator()
-	{
-	}
-
-EXPORT_C void CAknFepIndicator::SetCopyMode(TBool aCopyMode)
-	{
-	iCopyMode = aCopyMode;
-	iCopyModeChanged = ETrue;
-	}
-
-
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepUiInterface.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the CAknFepUIInterface methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepuiinterface.h"
-#include "AknFepUiInterfacePlugin.h"
-#include <ecom/ecom.h>
-
-void PanicNoImpl()
-	{
-	_LIT(KReason, "NoFepUiImpl");
-	User::Panic(KReason, 0);
-	}
-
-const TUid KAvkonPluginUid = { 0x10285839 };
-
-void EComDtorCleanup(TAny* aUid)
-	{
-	TUid dtor = {(TInt)aUid};
-	REComSession::DestroyedImplementation(dtor);
-	}
-
-void EComImplCleanup(TAny* aArray)
-	{
-	RImplInfoPtrArray* array = (RImplInfoPtrArray*) aArray;
-	array->ResetAndDestroy();
-	}
-	
-// factory function	
-EXPORT_C CAknFepUIInterface* CAknFepUIInterface::NewL()
-	{
-	RImplInfoPtrArray impls;
-	CleanupStack::PushL(TCleanupItem(EComImplCleanup, &impls));	
-	REComSession::ListImplementationsL(TUid::Uid(CFepUiInterfacePlugin::ETypeId), impls);
-	
-	// Move Avkon plugin to the back of the list to act as default implementation
-	TInt count = impls.Count();
-	for (int i=0; i<count-1; i++)
-		{
-		CImplementationInformation* info = impls[i];
-		if (info->ImplementationUid() == KAvkonPluginUid)
-			{
-			impls.Remove(i);
-			// Append will not fail as space has been freed by Remove
-			impls.Append(info);
-			break;
-			}
-		}
-
-	// Find the first plugin that says it should be used	
-	CAknFepUIInterface* impl = NULL;
-	for (int i=0; !impl && i<count; i++)
-		{
-		TUid dtorUid;
-		CFepUiInterfacePlugin* plugin = (CFepUiInterfacePlugin*)REComSession::CreateImplementationL(impls[i]->ImplementationUid(), dtorUid);
-		if (plugin->UseThisPlugin())
-			{
-			CleanupStack::PushL(TCleanupItem(EComDtorCleanup, (TAny*)dtorUid.iUid));
-			CleanupStack::PushL(plugin);
-			impl = plugin->NewImplL();
-			impl->iEcomDtorUid = dtorUid;
-			CleanupStack::PopAndDestroy(plugin);
-			CleanupStack::Pop();
-			}
-		else
-			{
-			delete plugin;
-			REComSession::DestroyedImplementation(dtorUid);
-			}
-		}
-	
-	CleanupStack::PopAndDestroy(&impls);
-	
-	__ASSERT_ALWAYS(impl, PanicNoImpl());
-	return impl;
-	}
-
-EXPORT_C CAknFepUIInterface::~CAknFepUIInterface()
-	{
-	if (iEcomDtorUid.iUid)
-		REComSession::DestroyedImplementation(iEcomDtorUid);
-	}
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/src/AknFepUiMenus.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the menu methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepuimenus.h"
-
-EXPORT_C void MAknFepUiInterfaceMenuObserver::DynInitMenuPaneL(TInt /*aResourceId*/,CAknFepUiInterfaceMenuPane* /*aMenuPane*/)
-	{
-	}
-
-EXPORT_C void MAknFepUiInterfaceMenuObserver::DynInitMenuBarL(TInt /*aResourceId*/,CAknFepUiInterfaceMenuBar* /*aMenuBar*/)
-	{
-	}
-
Binary file fep/aknfep/conf/aknfep.confml has changed
Binary file fep/aknfep/conf/aknfep_101F876D.crml has changed
Binary file fep/aknfep/conf/aknfep_japan.confml has changed
Binary file fep/aknfep/conf/aknfep_thai.confml has changed
--- a/fep/aknfep/group/AknFep.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,342 +0,0 @@
-/*
-* Copyright (c) 2002-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:           
-*       MakMake Project file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <data_caging_paths.hrh>
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET          avkonfep.dll
-TARGETTYPE      plugin
-
-UID             0x10009d8d 0x100056de
-CAPABILITY      All -Tcb
-
-VENDORID        VID_DEFAULT
-
-SOURCEPATH      ../resource
-
-START RESOURCE 100056de.rss
-TARGET AvkonFep.rsc
-END
-
-START RESOURCE  AknFep.rss
-HEADER
-TARGETPATH      FEP_RESOURCES_DIR
-LANGUAGE_IDS
-END
-
-MACRO   __REVERSE_FN_KEY_SUPPORTED
-MACRO   __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-MACRO   __HALF_QWERTY_KEYPAD
-MACRO   __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ 
-
-USERINCLUDE     ../inc .
-//sort this out when move to 2.0 env
-
-
-// Added APP_LAYER_SYSTEMINCLUDE for header split and relocation activity
-APP_LAYER_SYSTEMINCLUDE
-
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   ../inc
-SYSTEMINCLUDE   ../../../inc
-//SYSTEMINCLUDE   ../../inc
-
-SOURCEPATH      ../src
-
-SOURCE          AknFepManager.cpp
-SOURCE          AknFepKeyCatcher.cpp
-SOURCE          AknFepHashKeyManager.cpp
-SOURCE          AknFepCaseManager.cpp
-SOURCE          AknFepSharedDataInterface.cpp
-SOURCE          AknFepLanguageManager.cpp
-SOURCE          AknFepUiManagerBase.cpp
-SOURCE          AknFepInlineTextDecorator.cpp
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-SOURCE          AknFepFnKeyManager.cpp
-SOURCE          AknFepUiInputStateHalfQwerty.cpp
-SOURCE			AknFepUiInputStateInitialHalfQwertyWesternPredictive.cpp 
-SOURCE			AknFepUiInputStateEntryHalfQwertyWesternPredictive.cpp
-#endif
-#ifdef RD_SCALABLE_UI_V2
-SOURCE          AknFepPluginManager.cpp
-SOURCE          AknFepPluginMenuManager.cpp
-SOURCE          aknfepuimanagerfingeritutchinese.cpp
-SOURCE          aknfepuifingeritutinputstategeneric.cpp
-
-// for spell
-SOURCE         aknfepuispellcontainer.cpp
-SOURCE         aknfepuispellinputpane.cpp
-#endif
-
-// UI manager for each variant
-SOURCE          AknFepUiManagerWestern.cpp
-SOURCE			AknFepUiIndicInputManager.cpp
-SOURCE			AknFepUiInputStateInitialIndicMultitap.cpp
-SOURCE			AknFepUiInputStateInitialIndicPredictive.cpp
-SOURCE			AknFepUiInputStateEntryIndicPredictive.cpp
-SOURCE			AknFepUiInputStateInitialKoreanMultitap.cpp
-SOURCE          AknFepUiManagerKorean.cpp
-#ifdef RD_HINDI_PHONETIC_INPUT	
-SOURCE			aknfepuiinputstateinitialindicphoneticmultitap.cpp
-SOURCE			aknfepuiinputstateindicphoneticqwerty.cpp
-#endif
-
-SOURCE          AknFepUiManagerChinese.cpp
-SOURCE          AknFepUiManagerJapanese.cpp
-// UI Inputstates
-SOURCE          AknFepUiInputStateBase.cpp
-// for western
-SOURCE          AknFepUiInputStateInitialNumber.cpp
-SOURCE          AknFepUiInputStateInitialLatinMultitap.cpp
-SOURCE          AknFepUiInputStateInitialMultitapBase.cpp
-SOURCE          AknFepUiInputStateInitialWesternPredictive.cpp
-SOURCE          AknFepUiInputStateEntryWesternPredictive.cpp
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive Qwerty changes (e.g. XT9) ---->
-SOURCE          AknFepUiInputStateInitialQwertyWesternPredictive.cpp
-SOURCE          AknFepUiInputStateEntryQwertyWesternPredictive.cpp
-// Predictive Qwerty changes (e.g. XT9) <----
-#endif //RD_INTELLIGENT_TEXT_INPUT 
-SOURCE          AknFepUiInputStateEntryWesternPredictiveJp.cpp
-
-// for Arabic and Hebrew
-SOURCE          AknFepUiInputStateInitialArabicHebrewMultitap.cpp
-SOURCE          AknFepUiInputStateInitialArabicHebrewPredictive.cpp
-SOURCE          AknFepUiInputStateEntryArabicHebrewPredictive.cpp
-
-// for Chinese
-SOURCE          AknFepUiInputStateChineseBase.cpp
-SOURCE          AknFepUiInputStateInitialChineseMultitapBase.cpp
-SOURCE          AknFepUiInputStateInitialChineseGeneric.cpp
-SOURCE          AknFepUiInputStateInitialZhuyinFind.cpp
-SOURCE          AknFepUiInputstateInitialStrokeFind.cpp
-SOURCE          AknFepUiInputStateEntryPinyin.cpp
-SOURCE          AknFepUiInputStateEntryZhuyinStrokeBase.cpp
-SOURCE          AknFepUiInputStateEntryZhuyin.cpp
-SOURCE          AknFepUiInputStateEntryStroke.cpp
-SOURCE          AknFepUiInputStateCandidateBase.cpp
-SOURCE          AknFepUiInputStateCandidate.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidate.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidatePinyin.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidateStroke.cpp
-SOURCE          AknFepUiInputStatePredictiveInput.cpp
-SOURCE          AknFepUiInputStatePredictiveInputChinese.cpp
-// Chinese phrase Input state
-SOURCE          AknFepUiInputStateEntryPinyinPhrase.cpp
-SOURCE          AknFepUiInputStateEntryZhuyinPhrase.cpp
-SOURCE          AknFepUiInputStateEntryStrokePhrase.cpp
-SOURCE          AknFepUiInputStateEntryZhuyinStrokeBasePhrase.cpp
-SOURCE          AknFepUiInputStateCandidateChinese.cpp
-SOURCE          AknFepUiInputStateCandidateBasePhrase.cpp
-SOURCE          AknFepUiInputStateCandidateBaseChinesePhrase.cpp
-SOURCE          AknFepUiInputStateCandidateChinesePhrase.cpp
-SOURCE          AknFepUiInputStateCandidateQwertyBaseChinesePhrase.cpp
-SOURCE          AknFepUiInputStateCandidatePinyinAndStrokePhrase.cpp
-SOURCE          AknFepUiInputStateCandidatePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidatePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidatePinyinPhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidateStrokePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveInputPhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidateChinesePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveInputChinesePhrase.cpp
-// Chinese Qwerty
-SOURCE          AknFepUiInputStateInitialChineseGenericQwerty.cpp
-SOURCE 	        AknFepUiInputStatePredictiveInputQwerty.cpp
-SOURCE 	        AknFepUiInputStatePredictiveInputQwertyPinyin.cpp
-SOURCE          AknFepUiInputStateEntryQwertyPinyin.cpp
-SOURCE          AknFepUiInputStateEntryQwertyZhuyin.cpp
-SOURCE 		AknFepUiInputStateCandidateQwertyZhuyin.cpp
-SOURCE 		AknFepUiInputStatePredictiveCandidateQwertyZhuyin.cpp
-SOURCE          AknFepUiInputStatePredictiveInputQwertyZhuyin.cpp
-SOURCE          AknFepUiInputStateCandidateQwertyBase.cpp
-SOURCE          AknFepUiInputStateCandidateQwertyChineseBase.cpp
-SOURCE          AknFepUiInputStateEntryQwertyBase.cpp
-SOURCE          AknFepUiInputStateEntryQwertyStroke.cpp
-SOURCE          AknFepUiInputStateEntryQwertyCangJie.cpp
-SOURCE 		AknFepUiInputStateCandidateQwertyBasePhrase.cpp
-SOURCE 		AknFepUiInputStateEntryQwertyBaseChinesePhrase.cpp
-SOURCE 		AknFepUiInputStateCandidateQwertyChinesePhrase.cpp
-SOURCE 		AknFepUiInputStateEntryQwertyBasePhrase.cpp
-SOURCE 		AknFepUiInputStatePredictiveInputQwertyPhrase.cpp
-SOURCE 		AknFepUiInputStatePredictiveInputQwertyChinesePhrase.cpp
-SOURCE          AknFepUiInputStateEntryQwertyPinyinPhrase.cpp
-SOURCE          AknFepUiInputStateEntryQwertyZhuyinPhrase.cpp
-SOURCE          AknFepUiInputStateEntryQwertyStrokePhrase.cpp
-SOURCE 		AknFepUiInputStateCandidateQwertyZhuyinPhrase.cpp
-SOURCE 		AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.cpp
-SOURCE 		AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.cpp
-SOURCE 		AknFepUiInputStateStrokeFindQwerty.cpp
-SOURCE 		AknFepUiInputStateChineseFindQwerty.cpp
-SOURCE 		AknFepUiInputStateZhuyinFindQwerty.cpp
-SOURCE          AknFepUiInputStateCandidateQwertyPhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.cpp
-SOURCE          AknFepUiInputStateCandidateQwerty.cpp
-SOURCE          AknFepUiInputStateCandidateQwertyChinese.cpp
-SOURCE          AknFepUiInputStatePredictiveInputQwertyStrokePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveInputQwertyStroke.cpp
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-SOURCE          AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.cpp
-SOURCE          AknFepUIInputStateEntryMiniQwertyPinyinPhrase.cpp
-SOURCE          AknFepUIInputStatePredictiveInputMiniQwertyChinesePhrase.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.cpp
-SOURCE          AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp
-SOURCE          AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp
-SOURCE          AknFepUIInputStateEntryMiniQwertyCangJie.cpp
-SOURCE          aknfepuiinputminiqwertypinyinphrasebase.cpp 
-SOURCE          aknfepuiinputminiqwertystrokephrasebase.cpp 
-SOURCE          aknfepuiinputstateminiqwertystrokephrase.cpp
-SOURCE          aknfepinputstateminiqwertyzhuyinkeymap.cpp  
-SOURCE          aknfepuiinputminiqwertyzhuyinphrasebase.cpp
-SOURCE          aknfepuiinputstateminiqwertyzhuyinphrase.cpp
-SOURCE          AknFepUiInputStateCandidateHalfQwertyChinesePhrase.cpp
-SOURCE          AknFepInputStateInitialChineseGenericHalfQwerty.cpp
-SOURCE          AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.cpp
-SOURCE          aknfepuiinputstateentryhalfqwertyphrase.cpp 
-#endif
-
-// for thai
-SOURCE          AknFepUiInputStateInitialThaiMultitap.cpp
-SOURCE          AknFepUiInputStateInitialThaiPredictive.cpp
-SOURCE          AknFepUiInputStateEntryThaiPredictive.cpp
-SOURCE          AknFepThaiSCTSelector.cpp
-
-// for Japanese
-SOURCE          AknFepUiInputStateJapaneseBase.cpp
-SOURCE          AknFepUiInputStateInitialJapaneseBase.cpp
-SOURCE          AknFepUiInputStateInitialHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateInitialHiragana.cpp
-SOURCE          AknFepUiInputStateInitialKatakana.cpp
-SOURCE          AknFepUiInputStateInitialLatinJapanese.cpp
-SOURCE          AknFepUiInputStateInitialFullNumber.cpp
-SOURCE          AknFepUiInputStateEntryJapaneseMultitap.cpp
-SOURCE          AknFepUiInputStateEntryHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateEntryKatakana.cpp
-SOURCE          AknFepUiInputStateEntryLatinJapanese.cpp
-SOURCE          AknFepUiInputStateConversionHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateCandidateHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateCompletionJapaneseMultitap.cpp
-SOURCE          AknFepUiInputStateCompletionHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateCompletionKatakana.cpp
-SOURCE          AknFepUiInputStateCompletionPredictiveHiraganaKanji.cpp
-SOURCE          AknFepUiInputStateCompletionLatinJapanese.cpp
-SOURCE          AknFepUiInputStateJapanesePredictiveBase.cpp
-SOURCE          AknFepUiInputStatePredictiveInputJapanese.cpp
-SOURCE          AknFepUiInputStateNextWordJapanesePredictive.cpp
-SOURCE          AknFepUiInputStateCandidateRetroActive.cpp
-
-// for Vietnamese
-SOURCE          AknFepUiInputStateInitialVietnameseMultitap.cpp
-SOURCE          AknFepVietnameseToneManager.cpp
-SOURCE          AknFepUiInputStateEntryVietnamesePredictive.cpp
-
-// for Qwerty
-SOURCE          AknFepUiInputStateQwerty.cpp
-SOURCE          AknFepPlugin.cpp
-// for phraes creation
-SOURCE          aknfepinputstatecandidatepinyinphrasecreation.cpp 
-SOURCE          aknfepinputstatespellingpinyinphrasecreation.cpp 
-SOURCE          aknfepuserdbdlg.cpp 
-SOURCE          aknfepuserdbquerydlg.cpp 
-SOURCE          AknFepZhuyinAnalyser.cpp 
-SOURCE          AknFepZhuyinAnalyserDb.cpp 
-SOURCE          dbmanagement.cpp 
-SOURCE          aknfepuiinputstateentrypinyinphrasecreation.cpp 
-SOURCE          aknfepzhuyinconvertion.cpp 
-SOURCE          aknfepzhuyinkeyhandler.cpp
-SOURCE          aknfepinputstatepinyinphrasecreationbase.cpp
-SOURCE          aknfepuiinputstatestrokephrasebase.cpp 
-SOURCE          aknfepuiinputstateentryzhuyinphrasecreation.cpp 
-SOURCE          aknfepuiinputstatezhuyinphrasecreationbase.cpp
-SOURCE          aknfepuiinputstateqwertykorean.cpp
-
-LIBRARY         euser.lib
-LIBRARY         fepbase.lib
-LIBRARY         cone.lib
-LIBRARY         ws32.lib
-LIBRARY         eikcoctl.lib
-LIBRARY         eikctl.lib
-LIBRARY         eikcore.lib
-LIBRARY         ptiengine.lib // for PtiEngine
-LIBRARY         avkon.lib
-LIBRARY         commonengine.lib
-LIBRARY         bafl.lib
-LIBRARY         form.lib
-LIBRARY         eikdlg.lib
-LIBRARY         aknjapanesereading.lib
-LIBRARY         featmgr.lib
-LIBRARY         jplangutil.lib
-LIBRARY         apparc.lib
-LIBRARY         aknpictograph.lib
-LIBRARY         etext.lib
-LIBRARY         tagma.lib
-LIBRARY         gdi.lib
-LIBRARY         AknIcon.lib
-LIBRARY         egul.lib
-LIBRARY         hlplch.lib 
-
-LIBRARY         AknLayout2Scalable.lib
-LIBRARY         aknskins.lib 
-LIBRARY         aknskinsrv.lib
-LIBRARY         uiklaf.lib 
-
-LIBRARY         fbscli.lib
-LIBRARY		    efsrv.lib
-LIBRARY         CdlEngine.lib
-LIBRARY         apgrfx.lib
-
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY         peninputclient.lib
-#endif
-
-LIBRARY         CentralRepository.lib
-LIBRARY         CenRepNotifHandler.lib
-
-LIBRARY ecom.lib
-LIBRARY			AknfepUiInterface.lib
-
-#ifdef RD_TACTILE_FEEDBACK     
-LIBRARY             touchfeedback.lib
-#endif // RD_TACTILE_FEEDBACK  
-
-
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY    aknnotify.lib
-#endif //RD_SCALABLE_UI_V2
-START WINS
-BASEADDRESS     0x70500000
-END
-
-
-// End of file
--- a/fep/aknfep/group/Iconlist.txt	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-/c8,1 qgn_indi_fep_arrow_left.bmp
-/c8,1 qgn_indi_fep_arrow_right.bmp
-/c8,1 qgn_indi_fep_arrow_up.bmp
-/c8,1 qgn_indi_fep_arrow_down.bmp
Binary file fep/aknfep/group/aknfep_Data/ARM4_UDEB/TargetDataWindows.tdt has changed
Binary file fep/aknfep/group/aknfep_Data/ARM4_UREL/TargetDataWindows.tdt has changed
--- a/fep/aknfep/group/aknfep_icons.mk	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 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:           
-#
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=\epoc32\data\z
-endif
-
-# ----------------------------------------------------------------------------
-# Configuration for AknFep icons.
-# ----------------------------------------------------------------------------
-
-TARGETDIR=$(ZDIR)\system\data
-HEADERDIR=\epoc32\include
-ICONTARGETFILENAME=$(TARGETDIR)\aknfepuictrls.mif
-HEADERFILENAME=$(HEADERDIR)\aknfepuictrls.mbg
-
-do_nothing :
-	@rem do_nothing
-
-MAKMAKE : do_nothing
-
-BLD : do_nothing
-
-CLEAN :
-	if exist $(ICONTARGETFILENAME) @del $(ICONTARGETFILENAME)
-	if exist $(HEADERFILENAME) @del $(HEADERFILENAME)
-	if exist $(TARGETDIR)\aknfepuictrls.mbm @del $(TARGETDIR)\aknfepuictrls.mbm
-
-LIB : do_nothing
-
-CLEANLIB : do_nothing
-
-# ----------------------------------------------------------------------------
-# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
-# MifConv if the mask depth is defined.
-#
-# NOTE 2: Usually, source paths should not be included in the bitmap
-# definitions. MifConv searches for the icons in all icon directories in a
-# predefined order, which is currently \s60\icons, \s60\bitmaps2.
-# The directory \s60\icons is included in the search only if the feature flag
-# __SCALABLE_ICONS is defined.
-# ----------------------------------------------------------------------------
-
-RESOURCE:
-	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) /Ficonlist.txt
-
-FREEZE : do_nothing
-
-SAVESPACE : do_nothing
-
-RELEASABLES :
-	@echo $(HEADERFILENAME)&& \
-	@echo $(ICONTARGETFILENAME)
-
-FINAL : do_nothing
\ No newline at end of file
--- a/fep/aknfep/group/aknfep_icons_dc.mk	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-#
-# Copyright (c) 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:           
-#
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=\epoc32\data\z
-endif
-
-# ----------------------------------------------------------------------------
-# Configuration for AknFep icons.
-# ----------------------------------------------------------------------------
-
-TARGETDIR=$(ZDIR)\resource\apps
-HEADERDIR=\epoc32\include
-ICONTARGETFILENAME=$(TARGETDIR)\aknfepuictrls.mif
-HEADERFILENAME=$(HEADERDIR)\aknfepuictrls.mbg
-
-do_nothing :
-	@rem do_nothing
-
-MAKMAKE : do_nothing
-
-BLD : do_nothing
-
-CLEAN :
-	if exist $(ICONTARGETFILENAME) @del $(ICONTARGETFILENAME)
-	if exist $(HEADERFILENAME) @del $(HEADERFILENAME)
-	if exist $(TARGETDIR)\aknfepuictrls.mbm @del $(TARGETDIR)\aknfepuictrls.mbm
-
-LIB : do_nothing
-
-CLEANLIB : do_nothing
-
-# ----------------------------------------------------------------------------
-# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
-# MifConv if the mask depth is defined.
-#
-# NOTE 2: Usually, source paths should not be included in the bitmap
-# definitions. MifConv searches for the icons in all icon directories in a
-# predefined order, which is currently \s60\icons, \s60\bitmaps2.
-# The directory \s60\icons is included in the search only if the feature flag
-# __SCALABLE_ICONS is defined.
-# ----------------------------------------------------------------------------
-
-RESOURCE:
-	mifconv $(ICONTARGETFILENAME) /h$(HEADERFILENAME) /Ficonlist.txt
-
-FREEZE : do_nothing
-
-SAVESPACE : do_nothing
-
-RELEASABLES :
-	@echo $(HEADERFILENAME)&& \
-	@echo $(ICONTARGETFILENAME)
-
-FINAL : do_nothing
--- a/fep/aknfep/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2002-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:           
-*       Bldmake component description file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <platform_paths.hrh>
-
-PRJ_EXPORTS
-// specify the source file followed by its destination here
-// copy will be used to copy the source file to its destination
-// If there's no destination then the source file will be copied
-// to the same name in /epoc32/include
-
-../inc/AknFepManagerInterface.h     |../../../inc/AknFepManagerInterface.h
-../inc/AknFepManagerUIInterface.h   |../../../inc/AknFepManagerUIInterface.h
-../inc/AknFepUiIndicEnums.h         |../../../inc/AknFepUiIndicEnums.h
-../inc/aknfeppeninputimeplugin.h    |../../../inc/aknfeppeninputimeplugin.h
-../inc/AknFepVietnameseInputTables.h  |../../../inc/aknFepVietnameseInputTables.h 
-
-//From AknFepUiInterface
-
-../UiPlugins/AknFepUiInterface/inc/AknFepIndicator.h      |../../../inc/aknfepindicator.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePane.h	|../../../inc/AknFepUICtrlCandidatePane.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUICtrlCandidatePaneInterface.h	|../../../inc/AknFepUICtrlCandidatePaneInterface.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUiCtrlContainerChinese.h	|../../../inc/AknFepUiCtrlContainerChinese.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUICtrlContainerJapanese.h	|../../../inc/AknFepUICtrlContainerJapanese.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUICtrlInputPane.h	|../../../inc/AknFepUICtrlInputPane.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUICtrlPinyinPopup.h	|../../../inc/AknFepUICtrlPinyinPopup.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUiStylusPopupMenu.h	|../../../inc/AknFepUIStylusPopupMenu.h
-../UiPlugins/AknFepUiInterface/inc/aknfepuictrleditpane.h     |../../../inc/aknfepuictrleditpane.h
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-../UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopup.h 		|../../../inc/AknFepCandidatePopup.h
-../UiPlugins/AknFepUiInterface/inc/AknFepCandidatePopupCallback.h   |../../../inc/AknFepCandidatePopupCallback.h
-../UiPlugins/AknFepUiInterface/inc/AknFepUiWordPopupContent.h	|../../../inc/AknFepUiWordPopupContent.h
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-
-../rom/aknfep_variant.iby                   CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(aknfep_variant.iby)
-../rom/aknfepResources.iby                  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(aknfepResources.iby)
-../rom/aknfepuiinterface.iby                CORE_MW_LAYER_IBY_EXPORT_PATH(aknfepuiinterface.iby)
-//../rom/peninputimeplugincn_Variant.iby      CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(peninputimeplugincn_Variant.iby)
-//../rom/peninputimeplugingeneric.iby         CORE_MW_LAYER_IBY_EXPORT_PATH(peninputimeplugingeneric.iby)
-//../rom/peninputimepluginitut_Variant.iby    CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(peninputimepluginitut_Variant.iby)
-//../rom/PeninputPluginKr.iby                 CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(PeninputPluginKr.iby)
-//../rom/peninputimepluginjp_Variant.iby      CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(peninputimepluginjp_Variant.iby)
-
-// Generic configuration interface for component cenrep settings
-../conf/aknfep.confml                  APP_LAYER_CONFML(aknfep.confml)
-../conf/aknfep_japan.confml            CONFML_EXPORT_PATH(aknfep_japan.confml,japan)
-../conf/aknfep_thai.confml             CONFML_EXPORT_PATH(aknfep_thai.confml,thai)
-../conf/aknfep_101F876D.crml           APP_LAYER_CRML(aknfep_101F876D.crml)
-
-
-PRJ_MMPFILES
-// specify the .mmp files required for building the important component releasables
-// note that you should specify any .mmp files for test programs further down the file.
-//
-// Use C++ style #defines to denote that a component is only built for a particular platform
-
-//gnumakefile aknfep_icons_dc.mk
-../group/AknFep.mmp
-../UiPlugins/AknFepUiInterface/group/AknFepUiInterface.mmp
-../UiPlugins/AknFepUiInterface/AvkonImpl/group/AknFepUiAvkonPlugin.mmp
-
-#ifdef RD_SCALABLE_UI_V2
-//../peninputplugins/peninputimepluginitut/group/peninputimepluginitut.mmp
-//../peninputplugins/peninputimeplugincn/group/peninputimeplugincn.mmp
-//../peninputplugins/peninputimepluginjp/group/peninputimepluginjp.mmp
-//../peninputplugins/peninputimeplugingeneric/group/peninputimeplugingeneric.mmp
-//../peninputplugins/PeninputPluginKr/group/PeninputPluginKr.mmp
-#endif //RD_SCALABLE_UI_V2
-
-
-PRJ_EXTENSIONS
-START EXTENSION s60/mifconv
-OPTION TARGETFILE aknfepuictrls.mif
-OPTION HEADERFILE aknfepuictrls.mbg
-OPTION SOURCES -c8,1 qgn_indi_fep_arrow_left.bmp -c8,1 qgn_indi_fep_arrow_right.bmp -c8,1 qgn_indi_fep_arrow_up.bmp -c8,1 qgn_indi_fep_arrow_down.bmp
-END
-// End of file
--- a/fep/aknfep/group/fep.ini	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-(AknFep.fep
--- a/fep/aknfep/group/fep_ecom.ini	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-0::0x101FD65A
\ No newline at end of file
--- a/fep/aknfep/inc/AknFep.hrh	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2007-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:            Resource headers for project AknFep
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEP_HRH
-#define AKNFEP_HRH
-
-// MyListBox enumerate command codes
-enum
-    {
-    EAknCmdUserDBAdd = 0x6001,
-    EAknCmdUserDBEdit,
-    EAknCmdUserDBDelete,
-    EAknCmdMarkOrUnmark,
-    EShowInfoLabel1,
-    EShowInfoLabel2,
-    EShowInfoLabel3,
-    EShowInfoLabel4,
-    EProgressNoteId,
-    EAknCmdSoftkeyExit
-    };
-
-#endif // AKNFEP_HRH
--- a/fep/aknfep/inc/AknFepCaseManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,295 +0,0 @@
-/*
-* Copyright (c) 2002 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 _AKNFEP_CASE_MANAGER_H__
-#define _AKNFEP_CASE_MANAGER_H__
-
-#include "AknFepManager.h"
-
-#include <e32base.h>
-
-class CAknEdwinState;
-class CAknPictographInterface;
-
-
-class CAknFepCaseManager : public CBase
-    {
-private:
-    enum AknFepCaseManagerConsts
-        {
-        ETextCaseCharactersBufferMaxSize            =16
-        };
-
-public:
-    /**
-    * Two phase constructor for this class
-    */
-    static CAknFepCaseManager* NewL(CAknFepManager& aFep);
-
-    /**
-    * C++ Destructor
-    */
-    ~CAknFepCaseManager();
-
-public:
-    /**
-    * Configure the current case state of the system based on the current
-    * editor state
-    */
-    void ConfigureCaseStateFromEditorState();
-
-    /**
-    * Start an automatic case update - determines the case of the next
-    * character based on the rules governing auto case update and applies
-    * this change accordingly
-    *
-    * @param aNaviEvent the type of event which prompted the case update
-    *                   (affects the final cursor position)
-    */
-    void UpdateCase(TWesternNaviEvent aNaviEvent);
-
-    /**
-    * Starts a manual case update
-    */
-    void ManualCaseUpdate();
-
-    /**
-    * Reverts the case of text input to the previous one in order to
-    * back out unneccasary case changes
-    */
-    void RevertCaseChange();
-
-    /**
-    * Set the case of text input
-    *
-    * @param aCase the case of the next character
-    * @param aOverrideNumericTest Isn't used in most cases, but if set, handles
-    *                             numeric mode as normal mode. Needed for selection
-    *                             style hash key loop implementation.
-    */
-    void SetCurrentCase(TInt aCase, TBool aOverrideNumericTest = EFalse);
-
-    /**
-    * Return the current case of text input
-    *
-    * @return integer representing an enumerated value of the current case
-    */
-    TInt CurrentCase() const;
-
-    /**
-    * check whether case can be changed
-    *
-    * @return Eture if case can be changed
-    */
-    TBool IsAbleChangeCase() const;
-    
-    TInt PluginPermittedCases();
-    
-	TBool CapsLockRequired(TInt aCurrentCase);
-	/* Teleca change begin, 18.08.2009 ssal */
-	/**
-    * Determines whether a character is one of Korean characters
-    * @param aChar the charcter to be checked
-    * @return ETrue if aChar is Korean character
-    */
-	TBool IsKoreanCharacter( TChar aChar ) const;   
-    /* Teleca change end, 18.08.2009 ssal */
-private:
-    /**
-    * C++ Constructor
-    */
-    CAknFepCaseManager(CAknFepManager& aFep);
-
-    /**
-    * Second phase constructor for this class
-    */
-    void ConstructL();
-
-    /**
-    * Determines the position the cursor will be in when a navigation event is
-    * complete. This is used to determine the required case at that position.
-    *
-    * @param aNaviEvent the type of event after which the case will be updated
-    * @return The position in the document of the cursor when aNaviEvent is
-    *           complete
-    */
-    TInt FindCursorPositionAtCaseCheck(TWesternNaviEvent aNaviEvent);
-
-    /**
-    * Determines, based on the case rules, whether text case needs to be
-    * applied for text input i.e. whether the next character needs
-    * to be entered in upper case and subsequent characters in lower case
-    *
-    * @return ETrue if text case needs to be applied for the next 
-    *           character
-    */
-    TBool TextCaseRequired(TInt aCursorPos);
-
-    /**
-    * Determines, based on the case rules, whether or not caps lock input style
-    * needs to be applied i.e. if the current case is upper and we should stay
-    * in upper following the entry of the next character
-    *
-    * @return ETrue if caps lock input style is to be applied
-    */
-    TBool CapsLockRequired(TInt aCursorPos, TInt aCurCase);
-
-    /**
-    * Determines the case of text input based on the rules governing
-    * case updates atarted by the user and applies this change accordingly
-    */
-    void DoManualCaseUpdate();
-
-    /**
-    * Applies the case change in the ptiengine (via the engine interface) and
-    * updates the edit state indicators accordingly
-    */
-    void ApplyCase();
-
-    /**
-    * Sets the system to be in fixed case.  No case updates are permitted
-    * in this state
-    *
-    * @param aFixedCase if ETrue then no case updates are subsequently
-    *                   permitted
-    */
-    void SetFixedCase(TBool aFixedCase);
-
-    /**
-    * Determines if the current editor has the fixed case flag set
-    *
-    * @return ETrue if the fixed case flag is set on the current editor
-    */
-    TBool CurrentEditorIsFixedCase() const;
-
-    /**
-    * Determines if a case is one which is allowed in the current editor
-    * based on the editor's configuration
-    *
-    * @param aCase the case to be checked 
-    * @return ETrue if aCase is permitted by the current editor
-    */
-    TBool IsCasePermitted(TInt aCase) const;
-
-    /**
-    * 
-    * 
-    *
-    * @param aChar the charcter to be checke
-    * @return ETrue 
-    */
-    TBool IsTextCaseCharacter(TChar aChar) const;
-
-    /**
-    * 
-    * 
-    *
-    * @param aChar the charcter to be checked
-    * @return ETrue if aChar is full or half alphabet
-    */
-    TBool IsAlpha(TChar aChar) const;
-    
-    /**
-    * Determines whether a character is one of Japanese characters
-    * Japanese character is included as below:
-    *   - Hiragana/Kanji
-    *   - Katakana (Both half and full)
-    *   - Symbol (Full-width only)
-    *      (including Full-width Full-Stop)
-    *
-    * @since S60 v3.1
-    * @param aChar the charcter to be checked
-    * @return ETrue if aChar is Japanese character
-    */
-    TBool IsJapaneseCharacter(TChar aChar) const;
-
-    /* Teleca change begin, 18.08.2009 ssal */
-    /**
-    * Determines whether a character is one of Korean hangul syllable
-    * @param aChar the charcter to be checked
-    * @return ETrue if aChar is korean character
-    */
-    TBool IsHangulSyllable(TChar aChar) const;
-
-    /**
-    * Determines whether a character is one of Korean hangul compatibility Jamo Syllable
-    * @param aChar the charcter to be checked
-    * @return ETrue if aChar is Korean character
-    */
-	TBool IsHangulCompatibilityJamo(TChar aChar) const;
-	/* Teleca change begin, 18.08.2009 ssal */
-
-public:    
-    /**
-    * Calls to ManulaCaseUpdate() in lower case situation will switch to 
-    * upper case even if text case would be normally selected.
-    */
-    inline void SetForceUpperCase();
-    
-    /** 
-    * Clear force upper case flag (see SetForceUpperCase()). 
-	*/ 
-	inline void ClearForceUpperCase();
-
-	inline TBool IsInverseCase() const;
-	inline void SetInverseCase( TBool aVal );
-
-private:
-    CAknFepManager& iFep; //not owned
-    CAknPictographInterface* iPictoInterface; //owned
-    
-    TInt iCurrentCase;
-    TInt iPreviousCase;
-    TBool iFixedCase;
-    TBool iForceUpperCase;
-    TBool iInverseCase;
-    TBufC<ETextCaseCharactersBufferMaxSize> iTextCaseCharacters;
-    };
-
-inline void CAknFepCaseManager::SetForceUpperCase()
-	{
-	iForceUpperCase = ETrue;
-	}
-    
- 
-inline void CAknFepCaseManager::ClearForceUpperCase()
-	{
-	iForceUpperCase = EFalse;
-	}
-	
-inline TBool CAknFepCaseManager::IsInverseCase() const
-    {
-    return iInverseCase;
-    }
-
-inline void CAknFepCaseManager::SetInverseCase( TBool aVal )
-    {
-    iInverseCase = aVal;
-	}
-
-#endif //_AKNFEP_CASE_MANAGER_H__
--- a/fep/aknfep/inc/AknFepFnKeyManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Provides CAknFepManager definition
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef _AKNFEP_FNKEY_MANAGER_H__
-#define _AKNFEP_FNKEY_MANAGER_H__
-
-
-#include <e32base.h>
-#include <w32std.h>
-#include <coeinput.h>
-#include <PtiDefs.h>                   //TCoeInputCapabilities
-
-#include <AknIndicatorContainer.h> 
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepSharedDataInterface.h"
-
-
-class CAknFepManager;
-class CAknIndicatorContainer;
-   
-/**
- *  FnKey State machine
- *
- *  @since S60 v3.2
- */
-class CAknFepFnKeyManager : public CBase
-    {
-
-public:
-
-  /**  Fn key states */
-    enum TFnKeyState
-        {
-        EFnKeyNone,
-        EFnKeyPressed,
-        EFnKeyDown,
-        EFnKeyNext,
-        EFnKeyPressedAgain,
-        EFnKeyLock,
-        EFnKeyForced,
-        EFnKeyReversePressed,
-        EFnKeyReverse
-        };
-
-public:
-    static CAknFepFnKeyManager* NewL( CAknFepManager& aFepMan,CAknFepSharedDataInterface* 
-                                        aSharedDataInterface );
-    ~CAknFepFnKeyManager();
-
-public:
-    /*
-    * Resets the Function Key State
-    */
-    void ClearFnKeyState();
-
-    void SetQwertyInputMode(TBool aQwertyState);
-    
-    /* 
-    * Handles the Fn key event to change the state appropriately.
-    */
-    TKeyResponse CAknFepFnKeyManager::HandleFnKeyEventL( const TKeyEvent& aKeyEvent, 
-                                                TEventCode aEventCode,
-                                                TCoeInputCapabilities aInputCapabilities
-                                                );
-
-    void SetCase( TCase aCase );
-    
-    TFnKeyState FnKeyState();
-    void SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState);    
-private:
-
-    CAknFepFnKeyManager( CAknFepManager& aFepMan,
-                        CAknFepSharedDataInterface* aSharedDataInterface);
-    void ConstructL();
-    
-    // For Shift Key handling.
-    void UpdatePreviousCase();
-    
-
-private: // data
-    CAknFepManager &iFepMan; //not own
-    TCoeInputCapabilities iInputCapabilities;
-    TFnKeyState iFnKeyState;
-    TBool iIsQwertyMode;
-    
-    /**
-     * Pointer to the Indicator Container object containing editor indicators.
-     * Not own.
-     */
-    CAknIndicatorContainer*     iIndicatorContainer;
-    CAknFepSharedDataInterface* iSharedDataInterface;
-    
-    // For Shift key handling.
-    TInt iPreviousCase;
-    TBool iShiftKeyPressed;
-    
-    // For QWERTY Predictive
-    TBool iWasPreviousModePredictive;
-    TBool iPreviousKeyWasFnKey;
-    };
-
-#endif // ? _AKNFEP_FNKEY_MANAGER_H__
--- a/fep/aknfep/inc/AknFepHashKeyManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +0,0 @@
-/*
-* Copyright (c) 2002 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 _AKNFEP_HASHKEY_MANAGER_H__
-#define _AKNFEP_HASHKEY_MANAGER_H__
-
-#include <e32base.h>
-#include <coedef.h>
-#include <frmtlay.h>
-
-#include "AknFepGlobalEnums.h"
-
-class CAknFepManager;
-class CAknFepCaseManager;
-enum TKeyResponse;
-enum TKeyPressLength;
-
-class CAknFepHashKeyManager : public CBase
-    {
-public:
-    enum THashKeyStyle
-        {
-        EHashKeyStyleWestern,
-        EHashKeyStyleChineseWithWestern,
-        EHashKeyStyleJapanese,
-        EHashKeyStyleKoreanWithWestern
-        };
-
-public:
-    static CAknFepHashKeyManager* NewL(CAknFepManager& aFepMan, CAknFepCaseManager* aCaseMan);
-    ~CAknFepHashKeyManager();
-    TKeyResponse HandleKeyEventL(TKeyPressLength aLength); 
-    void SetMode(TInt aMode, TBool aWesternPredictive);
-
-    /**
-    * Changes the hash key functionality.
-    */
-    void SetHashKeyStyle(THashKeyStyle aHashKeyStyle);
-
-    /**
-    * Cancels the hash key timer.
-    */
-    void CancelHashKeyTimer();
-    
-    inline void ClearSelectionModeHashKeyLoop();
-    
-	void SetPreviousSelectionStyleModeL();        
-	 /**
-     * To Handle the Indic Hash key Loop State
-     * 
-     * Set the New State or Mode based on the editor after Fep is configured from Editor
-     * @since 3.2
-     * @return nothing
-     */ 	 
-	void ResetIndicHashKeyStateL();     
-
-     /**
-     * Reset the flag of previous selection
-     *
-     * @since 3.2
-     * @return nothing
-     */
-    void ResetPreviousSelectionStyleMode();
-#ifdef RD_HINDI_PHONETIC_INPUT
-   	 /**
-     * To Handle SetIndicStateL method
-     * 
-     * helps in handling case changes
-     * @since 5.0
-     * @return nothing
-     */ 	   
-    void HandleSetIndicStateL();
-#endif
-
-private:
-    CAknFepHashKeyManager(CAknFepManager& aFepMan, CAknFepCaseManager* aCaseMan);
-    void ConstructL();
-    static TInt HashKeyTimerTimeoutCallback(TAny* aObj);
-    void HashKeyTimerTimeout();
-	TKeyResponse HandleKeyWesternSelectionStyleL(TKeyPressLength aLength);    
-	void SetSelectionStyleModeL();
-	 /**
-     * To Handle Indic Hash key Loop
-     * 
-     * Set the New State or Mode based on the existing mode
-     * @since 3.2
-     * @return EKeyWasConsumed
-     */  
-	TKeyResponse SetIndicStateL();
-	
-	 /**
-     * To Handle Indic Hash key Loop
-     * 
-     * Change back to the Previous State or Mode 
-     * @since 3.2
-     * @return EKeyWasConsumed
-     */  
-	TKeyResponse SetIndicPreviousStateL(); 
-	
-	 /**
-     * To Handle Indic Hash key Loop
-     * 
-     * To verify if Indic hash key Loop is required.
-     * @since 3.2
-     * @return ETrue if Shared Interface input Language is Indic and given editor is not Latin-Only
-     */ 
-	TBool IsIndicHashKeyStyleRequired();
- 
-
-	/**
-     * To Handle Indic Hash key Loop
-     * 
-     * Set the Style for the State 
-     * @since 3.2
-     * @return nothing
-     */ 
-	void SetIndicSelectionStateL();
-	
-
-	/**
-     * To Handle Indic Hash key Loop
-     * 
-     * Update the case information
-     * @since 3.2
-     * @return nothing
-     */ 
-	void UpdateCaseForIndicHashLoop();
-
-    /**
-    * Reverts predictive text setting change. This method can be used
-    * if short key press of hash key changed predictive text
-    * setting in non-case supported languages and actually long key press
-    * action was handled. Not used with Chinese languages.
-    */
-    void RevertPredictiveTextSettingChangeL();
-
-    TKeyResponse HandleKeyWesternL(TKeyPressLength aLength);
-    TKeyResponse HandleKeyWesternWithChineseL(TKeyPressLength aLength);
-    TKeyResponse HandleKeyJapaneseL(TKeyPressLength aLength);
-    TKeyResponse HandleLongKeypressJapaneseL();
-    TKeyResponse HandleSortKeypressJapaneseL();
-    TKeyResponse HandleKeyWesternWithKoreanL(TKeyPressLength aLength);
-
-private:
-    THashKeyStyle iHashKeyStyle;
-    TInt iMode;
-    TBool iLastModeNumber;
-
-    CPeriodic* iHashKeyTimer; //owned
-    
-    CAknFepManager& iFepMan; //not owned
-    CAknFepCaseManager* iCaseMan;
-    TBool iWesternPredictive;
-    
-    TInt iSelectionLoopIndex;
-    TInt iIndicSelectionLoopIndex;
-    TUint8 const * iSelectionLoop;
-    TBool iLanguageChangedOrChangeFromNumberMode;
-    TBool iIndicPredictiveState;
-    TCursorSelection iPreviousIndicCursorPosition;
-    TBool iPreviousSelection;       // used by Japanese
-    };
-
-inline void CAknFepHashKeyManager::ClearSelectionModeHashKeyLoop()
-	{
-	iSelectionLoop = NULL;
-	iSelectionLoopIndex	= 0;
-	}
-
-#endif //_AKNFEP_HASHKEY_MANAGER_H__
--- a/fep/aknfep/inc/AknFepInlineTextDecorator.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2002 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 _AKNFEP_INLINE_TEXT_DECORATOR_H__
-#define _AKNFEP_INLINE_TEXT_DECORATOR_H__
-
-#include <e32base.h>
-
-class CAknFepInlineTextDecorator : public CBase
-	{
-public:
-	enum
-		{
-		ELeftToRightMark = 0x200E,		// LRM
-		ERightToLeftMark = 0x200F		// RLM
-		};
-private:
-	enum
-		{
-		ENullChar = 0,
-		ESingleCharacter = 1,
-		ETwoCharacters = 2
-		};
-
-public:
-	/**
-	* Applies required markup to a piece of bidirectional text to ensure correct
-	* rendering for Averell
-	* 
-	* @param aInlineText original inline text
-	* @param aDecoratedText descriptor which will hold the original text plus
-	*				any decoration
-	* @param aPositionOfInsertionPointInInlineText position of insertion point 
-	*				(cursor) in the original inline text
-	* @param aPreviousCharacter the character immediately prior to the inline
-	*				text
-	* @param aRTLParagraph set to true if the inline text is being inserted into
-	*				a paragraph with RTL directionality in the CParaFormat
-	* @param aInputDirectionIsRtl is to be set to ETrue if the current input direction is RTL
-	*/
-	void DecorateInlineText(
-		const TDesC& aInlineText, 
-		TDes& aDecoratedText,
-		TInt& aPositionOfInsertionPointInInlineText,
-		TChar aPreviousCharacter,
-		TBool aRTLParagraph,
-        TBool aInputDirectionIsRTL);
-	
-	/**
-	* Resolves any decorated text + any surrounding text that has been added to the beginning
-    * or end to remove unnecessary directional markers.
-	*
-	* @param aDecoratedTextPlusSurroundings descriptor to hold a piece of text to be parsed
-	*				and resolved; new text, optionally with accreted surrounding text
-	* @param aDecoratedTextSpan span of text originally inspected and decorated (must be subset of descriptor)
-	* 
-	* @return   EFalse if and only if no change was made to aDecoratedTextPlusSurroundings 
-	*/
-	TBool ResolveDecoratedText(
-		TDes& aDecoratedTextPlusSurroundings,
-		TCursorSelection aDecoratedTextSpan);
-
-	/**
-	* Determines if a character is an LRM (0x200e) or an RLM (0x200f)
-	* 
-	* @param aChar the character to be inspected
-	* @return ETrue if the character has the value 0x200e or 0x200f
-	*/
-	TBool CharacterIsDirectionalMarker(TChar aChar);
-
-	/**
-	* Determines if a character has strong LTR directionality
-	* 
-	* @param	aChar the character to be inspected
-	* @return	ETrue if the character has bidi category of TChar::ELeftToRight
-	*				or is an LRM
-	*/
-	TBool CharacterIsStrongLeftToRight(TChar aChar);
-
-	/**
-	* Determines if a character has strong RTL directionality
-	* 
-	* @param	aChar the character to be inspected
-	* @return	ETrue if the character has bidi category of TChar::ERightToLeft
-	*				or is an RLM
-	*/
-	TBool CharacterIsStrongRightToLeft(TChar aChar);
-
-	/**
-	* Determines if two characters share the same strong directionality
-	* 
-	* @param aCh1 the first character to be compared
-	* @param aCh2 the second character to be compared
-	* @return ETrue if aCh1 and aCh2 share the same strong directionality
-	*/
-	TBool CharactersHaveSameStrongDirection(TChar aCh1, TChar aCh2);
-
-	/**
-	* Determines if a character has weak directionality
-	* 
-	* @param	aChar the character to be inspected
-	* @return	ETrue if the character has any of the following bidi categories
-	*					TChar::EEuropeanNumber
-	*					TChar::EEuropeanNumberSeparator
-	*					TChar::EEuropeanNumberTerminator
-	*					TChar::EArabicNumber
-	*					TChar::ECommonNumberSeparator
-	*/
-	TBool CharacterIsWeaklyDirectional(TChar aChar);
-
-	/**
-	* Determines if a character is a separator character
-	* 
-	* @param	aChar the character to be inspected
-	* @return	ETrue if the character has any of the following bidi categories
-	*					TChar::EParagraphSeparator
-	*					TChar::ESegmentSeparator
-	*/
-	TBool CharacterIsSeparator(TChar aChar);
-
-	/**
-	* Determines if a character has neutral directionlaity
-	* 
-	* @param	aChar the character to be inspected
-	* @return	ETrue if the character has any of the following bidi categories
-	*					TChar::EWhitespace
-	*					TChar::EOtherNeutral
-	*/
-	TBool CharacterIsNeutral(TChar aChar);
-
-private:
-	void DecorateNeutralCharacters(
-		const TDesC& aInlineText, 
-		TDes& aDecoratedText,
-		TInt& aPositionOfInsertionPointInInlineText,
-		TChar aPreviousCharacter,
-		TBool aRTLParagraph,
-        TBool aInputDirectionIsRTL);
-	};
-
-#endif
--- a/fep/aknfep/inc/AknFepKeyCatcher.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +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 CAknFepKeyCatcher definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_INPUT_FEP_KEYCATCHER_H__
-#define __AKN_INPUT_FEP_KEYCATCHER_H__
-
-#include <coecntrl.h>       //CCoeControl
-#include <coemain.h>
-#include "AknFepGlobalEnums.h"
-
-class CAknFepManager;
-
-/**
- * Interface class to allow ability to switch into a test mode, where a different
- * key catcher is used, i.e. to print values of keys received on the screen.
- */
-class CAknFepKeyCatcherInterface : public CCoeControl
-    {
-public:
-    virtual void SetState(const TAknFepManagerState aState) = 0;
-    virtual ~CAknFepKeyCatcherInterface();
-    virtual void HandleChangeInFocus();
-    };
-
-/**
- * The Key Catcher sits sits on top of the control stack and does some basic, primary processing 
- * of all key presses. `
- */
-class CAknFepKeyCatcher : 
-
-#ifdef RD_SCALABLE_UI_V2
-                          public MCoeMessageMonitorObserver, 
-#endif //RD_SCALABLE_UI_V2
-                          public CAknFepKeyCatcherInterface
-    {
-
-private:
-    /** 
-     * values for the flags required to maintain the internal
-     * state of the Key Catcher during operation
-     */
-    enum
-        {
-        EFlagLongKeyPressHandled            =0x00000001,
-        EFlagBlockAllLongKeyPressEvents     =0x00000002 
-        };
-
-public:
-    /**
-     * First phase construction
-     *
-     * @param aFepMan the Fep Manager object which owns this key catcher object. 
-     */
-    static CAknFepKeyCatcher* NewL(CAknFepManager& aFepMan);
-
-    /**
-     * Destructor
-     */
-    virtual ~CAknFepKeyCatcher();
-    
-
-    /**
-     * from CCoeControl  
-     * Key Catcher. Ignores keys when Fep is in null mode (no editor focused)
-     * and does first stage filtering
-     */
-    virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode);
-
-    /**
-     * interface for FepMan to set the Key Catcher's internal state object
-     */
-    virtual void SetState(const TAknFepManagerState aState);
-
-private:    
-    /**
-     * C++ Constructor
-     */
-    CAknFepKeyCatcher(CAknFepManager& aFepMan);
-
-    /**
-     * Second phase construction
-     */
-    void ConstructL();
-
-    TKeyResponse HandleHashKeyJapaneseL(const TKeyEvent& aKeyEvent, TEventCode aEventCode);
-    
-    /**
-     * from CCoeControl  
-     * Handles a change to the control's resources.
-     * @param aType A message UID value
-     */
-    void HandleResourceChange(TInt aType);
-#ifdef RD_SCALABLE_UI_V2
-	void MonitorWsMessage(const TWsEvent& aEvent);
-#endif
-    inline void SetFlag(TInt aFlag);
-    inline void ClearFlag(TInt aFlag);
-    inline TBool IsFlagSet(TInt aFlag) const;
-	TBool IsNaviKey(TUint aCode);
-private:    
-    // Data not owned
-    CAknFepManager& iFepMan;
-
-    TAknFepManagerState iKeyCatcherState;
-    TUint iFlags;
-    TKeyPressLength     iKeyPressLength;
-    TInt iLongPressedScanCode;
-    };
-
-/**
- *  Sets aFlag bitfield in iFlags
- */
-inline void CAknFepKeyCatcher::SetFlag(TInt aFlag)
-    {
-    iFlags|=aFlag;
-    }
-
-/**
- * Clears aFlag bitfield in iFlags
- */
-inline void CAknFepKeyCatcher::ClearFlag(TInt aFlag)
-    {
-    iFlags&=~aFlag;
-    }
-
-/**
- * Returns ETrue if the aFlag bitfield in iFlags is set, EFalse if it
- * is clear
- */
-inline TBool CAknFepKeyCatcher::IsFlagSet(TInt aFlag) const
-    {
-    return iFlags&aFlag;
-    }
-
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepLanguageManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +0,0 @@
-/*
-* Copyright (c) 2003 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:            Declaration of core part of CAknFepLanguageManager class.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_LANGUAGE_MANAGER__H__
-#define __AKN_FEP_LANGUAGE_MANAGER__H__
-
-// INCLUDES
-#include <e32base.h>
-#include <coemain.h>
-#include <badesca.h>
-
-#include "AknFepGlobalEnums.h" // TWidthChar
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATION
-class CAknFepPenInputImePlugin;
-class MInputMethodInterface;
-
-// CLASS DECLARATION
-class MAknFepManagerInterface;
-class MAknFepManagerUIInterface;
-class CAknFepCaseManager;
-class RPeninputServer;
-class TImePlguinImplDetail;
-class CAknFepPluginManager;
-
-/**
- * CAknFepLanguageManager is a part of Japanese FEP.
- *
- * @lib AknFep.lib
- * @since 2.6
- * @see CAknFepManager, other application
- */
-class CAknFepLanguageManager : public CBase
-    {
-private: // enum
-    enum
-        {
-        EUiManWestern,
-        EUiManChinese,
-        EUiManJapanese,
-        EUiManKorean,
-        EUiManMax
-        };
-
-public: // Constructer and Destructor
-    /**
-     * first phase construction
-     *
-     * @since 2.6
-     * @param aFepMan
-     * @param aCaseMan
-     * @param aLanguage
-     */
-    static CAknFepLanguageManager* NewL(MAknFepManagerUIInterface* aFepMan, 
-                                        CAknFepCaseManager* aCaseMan);
-
-    /**
-     * Destructor.
-     *
-     * @since 2.6
-     */
-    virtual ~CAknFepLanguageManager();
-
-public: // New Functions
-    /**
-     * get ui manager object.
-     *
-     * @since 2.6
-     * @param aMode
-     * @param aCharacterWidth
-     * @param aPredictive
-     * @return 
-     */
-    MAknFepManagerInterface* GetFepUI(TInt aMode, TWidthChar aCharacterWidth, TBool aPredictive);
-
-    /**
-     * set language id to ui manager.
-     *
-     * @since 2.6
-     * @param aMode
-     * @param aCharacterWidth
-     * @param aPredictive
-     * @return 
-     */
-    void SetInputLanguageL(TInt aInputLanguage);
-
-    TLanguage InputLanguage() 
-        {
-        return (TLanguage)iInputLanguage;
-        }
-
-    /**
-     * Get plugin UI manager object.
-     *
-     * @since S60 v3.2
-     *
-     * @param aPreferedMode The prefered plugin input mode. If prefered mode is not available
-     *        a substitute choice (according UI sepc) is returned.
-     * @param aPenInputLan Current pen input language.
-     * @param aDisplayLang Current phone display language
-     * @param aPenServer The pen input server object.
-     * @return Plugin UI manager.
-     */
-    MAknFepManagerInterface* GetPluginInputFepUiL(TPluginInputMode aPreferedMode, 
-                                                  TInt aPenInputLang,
-                                                  TInt aDisplayLang,
-                                                  RPeninputServer* aPenServer);
-
-    /**
-     * Test specified plugin UI mode is support or not
-     *
-     * @since S60 v3.2
-     *
-     * @param aMode The plugin input mode to test.
-     * @param aPenInputLan Current pen input language.
-     * @param aPenServer The pen input server object.
-     * @return ETrue if support, EFalse otherwise.
-     */
-    TBool  IsPluginInputAvaiable(TPluginInputMode aMode, 
-                                 TInt aPenInputLang,
-                                 RPeninputServer* aPenServer);
-
-    /**
-     * Set split view flag
-     *
-     * @since S60 v3.2
-     *
-     * @param aIsSplitView 
-     * @return None
-     */	
-    void SetSplitView(TBool aIsSplitView);
-
-    /**
-     * Get current IME plugin object.
-     *
-     * @since S60 v3.2
-     *
-     * @return IME Plugin object.
-     */
-    inline CAknFepPenInputImePlugin* CurrentImePlugin();
-    
-    /**
-     * Get split view flag
-     * 
-     * 
-     * @since S60 v3.2
-     * @return ETrue if split view flag is set
-     */
-    inline TBool IsSplitView();
-    
-private: // New Functions
-    /**
-     * private c++ constructor.
-     *
-     * @since 2.6
-     */
-    CAknFepLanguageManager(MAknFepManagerUIInterface* aFepManager, 
-                           CAknFepCaseManager* aCaseManager);
-
-    /**
-     * Second phase construction
-     *
-     * @since 2.6
-     */
-    void ConstructL();
-    
-    void ConstructUiManagerL();
-
-    TInt UiManagerId();
-
-    
-
-    /**
-     * Activate IME plugin by implemenation.
-     * If current IME plugin's impl id is equal to aImeImplId, then current
-     * IME plugin object is returned.
-     *
-     * @since S60 v3.2
-     *
-     * @param aImeImplId The IME implementation ID.
-     * @param aPenServer The pen input server object.
-     * @return IME Plugin imeplementation ID.
-     */
-    CAknFepPenInputImePlugin* ActivateImePlugin(TInt aImeImplId, RPeninputServer* aPenServer);
-
-    /**
-     * Activate IME plugin's UI by mode.
-     *
-     * @since S60 v3.2
-     *
-     * @param aImePlugin The IME plugin object.
-     * @param aMode The mode of layout UI.
-     * @return The Plugin UI interface.
-     */
-    MAknFepManagerInterface*  ActivateLayoutUiPluginL(CAknFepPenInputImePlugin* aImePlugin,
-                                                      TInt aPenInputLang,
-                                                      TPluginInputMode aMode);
-
-    TBool  IsPluginInputAvaiableL(TPluginInputMode aMode, 
-                                 TInt aPenInputLang,
-                                 RPeninputServer* aPenServer);
-    
-
-private: // Data
-    CArrayPtr<MAknFepManagerInterface>*     iUiManArray;    
-    TInt iInputLanguage;
-    MAknFepManagerUIInterface* iFepManager;
-    CAknFepCaseManager* iCaseManager;
-    CAknFepPluginManager* iPluginManager;
-    
-    /**
-     * Current IME plugin object. Own.
-     * @since S60 v3.2
-     */
-    CAknFepPenInputImePlugin* iCurImePlugin;
-
-    /**
-     * Current layout UI object. Not own.
-     * @since S60 v3.2
-     */
-    MAknFepManagerInterface* iCurUiPlugIn;
-
-    /**
-     * Is split view flag
-     * @since S60 v3.2
-     */	
-    TBool iIsSplitView;
-    };
-
-inline CAknFepPenInputImePlugin* CAknFepLanguageManager::CurrentImePlugin()
-    {
-    return iCurImePlugin;
-    }
-
-inline TBool CAknFepLanguageManager::IsSplitView()
-    {
-    return iIsSplitView;
-    }
-
-#endif // __AKN_FEP_LANGUAGE_MANAGER__H__
-// End of file
--- a/fep/aknfep/inc/AknFepManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3170 +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 CAknFepManager definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_MANAGER_H__
-#define __AKN_FEP_MANAGER_H__
-
-#include "AknFepGlobalEnums.h"          //TKeyPressLength
-#include "AknFepManagerUIInterface.h"   //MAknFepManagerUIInterface
-#include "AknFepLanguageManager.h"      //CAknFepLanguageManager
-#include <gulicon.h>  
-#include "aknfepuiinterface.h"
-#include "aknfepuimenus.h"
-#include <fepbase.h>                    //CCoeFep
-#include <coeinput.h>                   //TCoeInputCapabilities
-#include <fepitfr.h>                    //MFepInlineTextFormatRetriever
-#include <aknedstsobs.h>                //MAknEdStateObserver
-#include <uikon.hrh>                    //TAknEditorNumericKeymap
-#include <aknEditStateIndicator.h>      //TAknEditingState
-#include <frmtlay.h>
-#include <biditext.h>
-#include <PtiDefs.h>
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <tagmalayoutandsource.h>
-#endif
-
-#include <aknextendedinputcapabilities.h>
-#ifdef RD_SCALABLE_UI_V2
-#include <peninputclient.h>
-#endif //#ifdef RD_SCALABLE_UI_V2
-
-#include <AknNullService.h>             // CAknNullService
-#include <AknServerApp.h>               // MAknServerAppExitObserver
-#include <aknfeppensupportinterface.h>
-#include "avkon.hrh"
-#ifdef RD_HINDI_PHONETIC_INPUT	
-#include <PtiIndicDefs.h>
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-class MAknFepUiWordPopupContent;
-#include "AknFepCandidatePopup.h"
-#include "AknFepCandidatePopupCallback.h"
-// Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-class CAknFepPluginManager;
-class CAknFepKeyCatcherInterface;
-class MAknFepManagerInterface;
-class CAknFepIndicator;
-class CAknEdwinState;
-class CPeriodic;
-class MAknEditingStateIndicator;
-class CAknFepCaseManager;
-class CAknFepHashKeyManager;
-class CAknKeySoundSystem;
-class CPtiEngine;
-class CAknFepSharedDataInterface;
-class CApaDocument; // User Dictionary
-class CAknFepInlineTextDecorator;
-class CTextView;
-class MPeninputServerEventHandler;
-class MAknFepDocumentNavigation;
-class CAknFepUIInterface;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-class CAknFepFnKeyManager;
-#endif
-//phrase creation
-class CZhuyinKeyHandler;
-class CAknFepZhuyinAnalyser;
-class CZhuyinAnalyserDbFeed;
-//User DB view
-class CAknFepUserdbDlg;
-class CAknFepThaiSCTSelector;
-class CAknNavigationDecorator;
-// This could be moved inside FepManager class?
-enum TWesternNaviEvent
-    {
-    ENullNaviEvent,
-    ELeftNaviEvent,
-    ERightNaviEvent,
-    EBackspaceEvent,
-    EUpNaviEvent,
-    EDownNaviEvent
-    };
-enum TSpecialTextField
-		{
- 		/**
- 		* Constraints
- 		*/
-    ESplAny,
-    ESplMailAddr,
-    ESplNumeric,
-    ESplPhoneNumber,
-    ESplUrl,
-    ESplDecimal,
-    /**
-     * Modifiers
-     */
-    ESplPassword=0x10000,
-    ESplUneditable=0x20000,
-    ESplSensitive=0x40000,
-    ESplNonPredictive=0x80000,
-    ESPlInitialCapsWord=0x100000,
-    ESplInitialCapsWordSentence=0x200000,
-    ESplConstraintMask=0xFFFF
- 		};    
-
-const TInt KChrKeyMultitapTimeout = 1000000;
-/**
- * Translates ET9Eng language codes into localised descriptors and command Id's
- */
-class TFepLanguageTranslation
-    {
-    public:
-        void ReadFromResource(TResourceReader& aReader);
-    public:
-        TPtrC           iName;
-        TInt            iLanguageId;
-        TInt            iCommandId;
-    };
-class CChrMultiTapTimer : public CTimer
-    {
-    public:
-        static CChrMultiTapTimer* NewL(TCallBack aCallback);
-        void After(TTimeIntervalMicroSeconds32 aInterval);
-    private:
-        CChrMultiTapTimer(TCallBack aCallback);
-        void ConstructL();
-        // from CActive
-        virtual void RunL();
-    private:
-        TCallBack iCallback;
-    };
-/**
- * The CCoeFep derived class of AknFep
- * Controls mode in the Fep. Handles all interaction with the editor
- * Creates and owns the UI Manger, the Key Catcher and the edit state indicators
- */
-class CAknFepManager :
-    public CCoeFep,
-    public MAknFepManagerUIInterface,
-    public MFepInlineTextFormatRetriever,
-    public MFepPointerEventHandlerDuringInlineEdit,
-    public MAknFepUiInterfaceMenuObserver,
-    public MAknServerAppExitObserver,   //embedding
-    private MAknEdStateObserver,
-#ifdef RD_SCALABLE_UI_V2  
-    public CAknExtendedInputCapabilities::MAknEventObserver,
-#endif
-    private MFormCustomDraw
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    ,public MAknFepCandidatePopupCallback // Predictive QWERTY (XT9) changes
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    {
-
-private:
-    class TTextDirectionalInfo
-        {
-        public:
-
-            enum TTextDirectionalStatus
-                {
-                EUnknown,
-                    ENotInDocument,
-                    ENoDirectionalChunks,
-                    ERightToLeft,
-                    ELeftToRight
-                };
-
-            enum TDirectionalBlockEnvironment
-                {
-                EUndefined,
-                    EInsideBlock,
-                    EAtRightEndOfLine,
-                    EAtLeftEndOfLine,
-                    EAtRightEndOfBlockFacingOppositeDirectionalBlock,
-                    EAtLeftEndOfBlockFacingOppositeDirectionalBlock,
-                    EAtRightEndOfBlockFacingSameDirectionBlock,
-                    EAtLeftEndOfBlockFacingSameDirectionBlock
-                };
-        public:
-            // Constructor
-            TTextDirectionalInfo();
-            void SetDirectionFromChunk( const CTmTextLayout::TTmChunkDescription& aChunk);
-        public:
-            TTextDirectionalStatus iDirectionalStatus;
-            TDirectionalBlockEnvironment iBlockEnvironment;
-        };
-
-public:
-    /**
-     * values for the flags required to maintain the internal
-     * state of the Fep Manager during operation
-     */
-    enum
-        {
-        EFlagInsideMultitapInlineEditingTransaction     =0x00000001,
-        EFlagLaunchEditMenu                             =0x00000002,
-        EFlagLongShiftKeyPress                          =0x00000004,
-        EFlagNoActionDuringShiftKeyPress                =0x00000008,
-        EFlagShiftKeyDepressed                          =0x00000010,
-        EFlagInsideInlineEditingTransaction             =0x00000020,
-        EFlagPassNextKey                                =0x00000040,
-        EFlagQwertyChrKeyDepressed                      =0x00000080,  // Not used. Qwerty mode is not supported.
-        EFlagLineFeedCharacter                          =0x00000100,
-        EFlagEditorFull                                 =0x00000200,
-        EFlagNewSharedDataInputMode                     =0x00000400,
-        EFlagNoActionDuringChrKeyPress                  =0x00000800,
-
-        EFlagSupressAutoUpdateAtEditorStart             =0x00001000,
-        EFlagNoMatches                                  =0x00002000,
-        EFlagSuppressInputStateChange                   =0x00004000,
-        EFlagCompoundWord                               =0x00008000,
-        EFlagChangeInputMode                            =0x00010000,
-        EFlagForegroundUIComponentVisible               =0x00020000,
-        EFlagMenuPaneVisible                            =0x00040000,
-        EFlagRemoveMatchesMenuItem                      =0x00080000,
-        EFlagInlineEditInBackground                     =0x00100000,
-        EFlagNewSharedDataInputLanguage                 =0x00200000,
-        EFlagLastCharacterInEditor                      =0x00400000,
-
-        EFlagSpaceCharacter                             =0x00800000,        // adding for japanese
-        EFlagFullWidthSpaceCharacter                    =0x01000000,        // adding for japanese
-        EFlagBidiCursorIsInitialized                    =0x02000000,
-        EFlagCursorPointsRightToLeft                    =0x04000000,
-        EFlagAtDirectionallyAmbiguousPoint              =0x08000000,
-        EFlagCharacterAdded                             =0x10000000,
-        EFlagNoInlineEditFormatting                     =0x20000000,  // Not really used yet!
-        EFlagQwertyShiftMode                            =0x40000000,  // Not used. Qwerty mode is not supported.
-        EFlagSupressAutoUpdate                          =0x80000000
-        };
-    
-     enum
-     	{
-		EExtendedFlagShortPressHashKey                    =0x00000001,
-     	EExtendedFlagNoModeChange                         =0x00000002,
-     	EExtendedFlagShiftReleasedOnPopup                 =0x00000004,
-     	EExtendedFlagOkKeyPressOnCandidatePopup           =0x00000008,
-     	/* Flag to take care of graceful exit for FEP launched dialog when the underneath editor is closed */
-        EExtendedFlagEdwinEditorDestroyed                 =0x00000010,
-        /* Flag to set decide when to set multiple observer for FEP. Set this flag whenever a FEP aware dialog is launched */
-        EExtendedFlagFepAwareDialogLaunched               =0x00000020,
-        /* Flag to specify that pointer event type EDrag has happened */ 
-        EExtendedFlagPointerEventTypeEDrag                =0x00000040
-    	};		
-
-    //public constants
-
-    enum
-        {
-        ESingleCharacter                            =1,
-        EMaximumFepWordLength                       =63
-        };
-
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EShiftKeyRepeatDelay                        =800000, // 0.8s
-        EQueryBufferLength                          =63,
-        EDefaultNumericCharMapResId                 =0,
-        EDefaultSCTResourceId                       =-1,
-        ENoCharacters                               =0,
-        EAknFepUid                                  =0x100056de,
-        EStarKeyUnicodeValue                        =0x2A,
-        EHashKeyUnicodeValue                        =0x23,
-        ELeftSoftkeyIndex                           =CAknFepUIInterface::ELeftSoftkeyIndex,
-        ERightSoftkeyIndex                          =CAknFepUIInterface::ERightSoftkeyIndex,
-        EMiddleSoftkeyIndex                         =CAknFepUIInterface::EMiddleSoftkeyIndex,
-        EWordConcatenationTimeout                   =2000000, // 2.0s
-        ELanguageArrayGranularity                   =20,
-        EChrKeyRepeatDelay                          =1000000, // 1.0s
-        EHalfQwertyChrKeyRepeatDelay                =600000   //0.6 secs from Default actions UI spec
-        };
-
-    enum TChineseFepCursorType
-        {
-        EActive,
-        EPassive
-        };
-        
-public:            
-	enum
-		{
-		ECcpuStateNone       = 0,
-		ECcpuStateStartCopy  = 0x01,
-		ECcpuStateCopy       = 0x02,	
-		ECcpuStateStartCut   = 0x04,
-		ECcpuStateCut        = 0x08,
-		ECcpuStateButton     = 0x10,
-		ECcpuStatePosted               = 0x20,
-		ECcpuStateHashDown             = 0x40,
-		ECcpuStateSelectionEventPosted = 0x80,
-		ECcpuStateEdwinInSelectionMode = 0x100,
-		ECcpuStateIgnoreStarUp          = 0x200,
-		ECcpuSupressEditMenuFromShiftUp = 0x400,		
-		ECcpuStateCbaSymbol             = 0x800,
-		ECcpuStateIgnoreNextFocusChange = 0x1000,
-		ECcpuStataCommitPredictiveWord  = 0x2000,
-		ECcpuStateIgnoreNextEdwinSyncEvent = 0x4000,
-		ECcpuStateLosingFocus			   = 0x8000,	
-		ECcpuStateUncommitWhenFocused = 0x10000,				
-        ECcpuStateHashKeyDeleteDone = 0x20000,
-        ECcpuStateSupressCursorMoveToEnd = 0x40000,
-        ECcpuStateChangeToPredictionMode = 0x80000,
-		ECcpuStateNewPredictiveWord = 0x100000,
-		ECcpuStateShiftkeyWasPressedBeforeLosingFocus = 0x200000,
-		ECcpuStateCbaShown = 0x400000
-        };
-
-	enum TShowSctMode 
-	    {
-	    EShowSctFirst=0, 
-	    EShowPctFirst, 
-	    EShowSmileyFirst 
-	    };
-	
-private:
-	 // These are needed to remember editor's ccpu state 
-	 // for editing options submenu.
-     enum
-     	{
-     	ECcpuStatusFlagCanCopy  = 0x01,
-     	ECcpuStatusFlagCanCut   = 0x02,
-     	ECcpuStatusFlagCanPaste = 0x04,     	
-     	};
-  
-
-private:
-    class TLanguageCapabilities
-        {
-        public:
-            TInt iInputLanguageCode;        // Symbian language code.
-            TBool iLocalInputLanguageInUse;
-            TBool iArabicIndicDigitsAllowed;
-            TBool iEasternArabicIndicDigitsAllowed;
-            TBool iIndicDigitsAllowed;	
-            TDigitType iLocalDigitType;
-            TDigitType iNumericEditorDigitType;
-            TBool iSupportsCase;
-            TBool iSupportsWesternPredictive;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Predictive QWERTY changes ---->
-            TBool iSupportsWesternQwertyPredictive; // predicitve QWERTY
-            // Predictive QWERTY changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            TBool iRightToLeftLanguage;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD            
-            TBool iSupportsWesternHalfQwertyPredictive;
-#endif //__HALF_QWERTY_KEYPAD            
-#endif //RD_INTELLIGENT_TEXT_INPUT 
-        };
-
-public:
-    /**
-     * C++ Constructor
-     */
-    CAknFepManager(CCoeEnv& aConeEnvironment);
-
-    /**
-     *  Second phase construction
-     */
-    void ConstructL(const CCoeFepParameters& aFepParameters);
-
-    /**
-     * destructor
-     */
-    virtual ~CAknFepManager();
-
-
-public: //from MAknFepManagerUIInterface
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-     /**
-     Returns the keyboard layout
-     */
-     TPtiKeyboardType KeyboardLayout() const;
-     /**
-     Returns the current keyboard layout in use.
-     */	 
-     CAknFepFnKeyManager::TFnKeyState FnKeyState();
-     void SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState);
-    /**
-     * Returns the resource ID of the numeric editor in use
-     */
-    
-    TInt GetNumericSCTResID();
-    
-
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-     /**
-    Returns if the input is in reverse Fn key input mode.
-    */
-    virtual TBool IsReverseFnkeyInput();
-    
-    void SetReverseFnkeyInputMode(TBool iIsOn);
-    
-    /**
-     * Returns true if the aChar is allowed in the numeric editor
-     */
-    TBool IsValidCharInNumericEditorL( TChar aChar ) const;
-    
-    /**
-     * Filter the char for Fn reverse mode in case of
-     * numeric editor. This function should call
-     * in case of numeric editor reverse mapping.
-     */
-    TBool IsValidCharForNumericInFnReverseL(TInt aKey, TPtiTextCase aCase) ;
-
-#endif //__REVERSE_FN_KEY_SUPPORTED
-    virtual void AddOneSpaceOrMoveCursorL();
-#endif
-	virtual TBool IsAllowedKeymappingForNumberMode(TChar aChar) const;
-	/**
-     * closes the UI
-     * commits any character in multitap
-     */
-    virtual TBool TryCloseUiL();
-
-    /**
-     * Used by the UI manager to inform the Fep Manager that the UI has activated.
-     */
-    virtual void SendUIActivatedNotification();
-
-    /**
-     * Used by the UI manager to inform the Fep Manger that the UI has not activated.
-     */
-    void SendUIDeActivatedNotification();
-
-
-    /**
-     * Plays sound
-     */
-    virtual void PlaySound(TAvkonSystemSID aSound) const;
-    
-    /**
-     * Set current long clear key press
-     */     
-    virtual void SetLongClearAfterCloseUI(TBool aLongClear);
-
-	/**
-	 * 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
-	 */
-	void AlignLogicalAndVisualCursorL( TTmDocPosSpec::TType aType, TBool aToLeft );
-	
-	/**
-	 * This method removes the Repha character. The function goes to the 
-	 * start of the syllable, checks if repha character is present and 
-	 * removes it.
-	 *
-	 * @since 3.2
-	 * @param None.
-	 * @return None.
-	 */							
-	void RemoveRephaCharacterL();
-	
-	/**
-	 * Checks if the Repha character has been attached to the syllable
-	 *
-	 * @since 3.2
-	 * @param None.
-	 * @return ETrue if present else EFalse.
-	 */	
-	TBool IsRephaPresent();
-	
-	/**
-	 * 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.
-	 */
-	TText PreviousToPreviousChar( TBool aContextSensitive = EFalse );
-
-	 /**
-	 * 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.
-	 */
-	void RemoveRakarCharacterL();
-
-    /**
-	 * 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.
-	 */
-    void RemoveTextFromEditorL( TInt aNumOfCharacters, TInt aPos = 0, 
-                                TBool aIsToAlignCursor = ETrue );
-    
-   	/**
-	 * Align the Logical and Visual cursor positions.
-	 * Overloaded method which uses FindDocPos
-	 *
-     * @since 5.0
-     * @param None
-     * @return None
-	 */
-	void AlignLogicalAndVisualCursorL();
-	
-	CAknFepPluginManager* PluginUIManager();
-    //Phrase creation	
-	MZhuyinKeyHandler* ZhuyinKeyHandler();
-	CAknFepZhuyinAnalyser* ZhuyinAnalyser();
-	void UpdateStickyState();
-	
-#ifdef RD_MARATHI
-	/**
-	 * This function checks if the previous two characters are
-	 * the combination of Chandra-A
-	 *
-	 * @since 5.0
-	 * @param None
-	 * @return TBool.
-	 */
-	TBool IsChandraAPresentL();
-
-	/**
-	 * This function checks if the previous Chandra-A is present
-	 * before the cursor position
-	 *
-	 * @since 5.0
-	 * @param None
-	 * @return TBool.
-	 */
-	TBool IsEyeLashRaPresentL();
-#endif // RD_MARATHI
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-	 * This function returns the current case.
-	 * Required for Shift key handling.
-	 *
-	 * @since 3.2
-	 * @param None
-	 * @return TBool.
-	 */
-	TInt GetCurrentCase();
-	
-	 /**
-	 * This function set the flag of chr composition key
-	 * in mini qwerty
-	 *
-	 * @since 3.2
-	 * @param aFlag ETrue if it is chr composition key.
-	 * @return None.
-	 */
-	void  SetComposChrFlag( TBool aFlag );
-	
-	/**
-	 * This function get the flag of chr composition key
-	 * in mini qwerty
-	 *
-	 * @since 3.2
-	 * @param None.
-	 * @return ETrue if it is chr composition key..
-	 */
-	TBool GetComposChrFlag();
-	/**
-	 * Hides the exact word popup.
-	 */
-	void HideExactWordPopUp();
-	/**
-    * @return   ETrue   If the exact word pop up is shown.
-    */
-	
-	TBool IsExactWordPopUpShown();		
-#endif
-#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();
-#endif
-
-public: //interface to the key catcher
-    /**
-     * Handles key events passed from the Key Catcher, excluding the shift key event
-     * which is dealt with separately in the HandleShiftKeyEventL function.
-     * State will always be Intital or UIActive.
-     */
-    TKeyResponse HandleKeyEventL(TUint aCode, TKeyPressLength aLength, TEventCode aEventCode = EEventKey);
-
-    /**
-     *  Shift keys are dealt with in a different way to other keys, the action is on the up
-     *  key event.
-     */
-    TKeyResponse HandleShiftKeyEventL(TEventCode aEventCode);
-
-    /**
-     *  Thai 0 key is handled differently. If 0 key is up before long keypress, we show SCT.
-     */
-    TKeyResponse HandleThai0KeyEvent(TEventCode aEventCode, TKeyPressLength aLength, 
-                                     TBool& aThai0KeyHandling);
-
-    /**
-     *  Chr key handling
-     */
-    TBool HandleQwertyChrKeyEventL( TEventCode aEventCode );
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD
-	/**
-	*	Chr Key handling in half qwerty
-	*/
-	TKeyResponse HandleChrKeyForHalfQwertyL( TEventCode aEventCode);
-#endif //__HALF_QWERTY_KEYPAD
-#endif //RD_INTELLIGENT_TEXT_INPUT    
-    /**
-    *  Control key handling
-    */
-    TKeyResponse HandleQwertyControlKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode);
-
-    /**
-    * Handles key events for qwerty input mode.
-    *
-    * @since 3.0
-    * @param aKeyEvent An event to be handled.
-    * @param aResponse Repsonse (consumed / not consumed) will be stored here.
-    * @return ETrue if evenat was handled by this method.
-    *         EFalse otrherwise.
-    */
-    TBool HandleQwertyKeyEventL(const TKeyEvent& aKeyEvent, TKeyResponse& aResponse);
-    
-  	/**
-    * Returns boolean value indicating whether it is ok to set edwin into "copy/paste"
-    * mode.
-    *    
-    * @since 3.1
-    * @return ETrue if it is ok to editor into selectuion mode.
-    *         EFalse otherwise.
-    */
-	TBool OkToActivateSelectionMode() const;    
-	
-    /**                
-    * Returns the status of arabic-indic digit mode setting.
-    *
-    * @since 3.0
-    */
-    TBool ArabicIndicDigitsInUse() const;    	
-	
-	/**                
-    * Returns the status of Eastern arabic-indic digit mode setting.
-    *
-    * @since 3.0
-    */
-	TBool EasternArabicIndicDigitsInUse() const;
-	void NumberModeChangeGSNotification();
-	void DimInputmodeMenuItems(CAknFepUiInterfaceMenuPane* aMenuPane);
-	 
-	 /**
-     * Dims the item corresponding to the mode aMode, in the edit mode menu
-     *
-     * @param aMenuPane the edit menu pane
-     * @param aMode the mode to be dimmed
-     */
-    void DimMenuItem(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aMode);
-    
-    TInt FepShowVkbPreviewStatus();
-
-    TInt PluginInputMode() const;
-private: // from CCoeFep
-    /**
-     * from CCoeFep - not used
-     */
-    virtual void CancelTransaction();
-
-    /**
-     * from CCoeFep - not used
-     */
-    virtual void IsOnHasChangedState();
-
-    /**
-     * from CCoeFep - not used
-     */
-    virtual void OfferKeyEventL(TEventResponse& aEventResponse, const TKeyEvent& aKeyEvent, 
-                                TEventCode aEventCode);
-
-    /**
-     * from CCoeFep - not used
-     */
-    virtual void OfferPointerEventL(TEventResponse& aEventResponse, 
-                                    const TPointerEvent& aPointerEvent, 
-                                    const CCoeControl* aWindowOwningControl);
-
-    /**
-     * from CCoeFep - not used
-     */
-    virtual void OfferPointerBufferReadyEventL(TEventResponse& aEventResponse, 
-                                               const CCoeControl* aWindowOwningControl);
-
-private:    // from MFepAttributeStorer (via CCoeFep)
-    /**
-     * from MFepAttributeStorer (via CCoeFep) - not used
-     */
-    virtual TInt NumberOfAttributes() const;
-
-    /**
-     * from MFepAttributeStorer (via CCoeFep) - not used
-     */
-    virtual TUid AttributeAtIndex(TInt aIndex) const;
-
-    /**
-     * from MFepAttributeStorer (via CCoeFep) - not used
-     */
-    virtual void WriteAttributeDataToStreamL(TUid aAttributeUid, RWriteStream& aStream) const;
-
-    /**
-     * from MFepAttributeStorer (via CCoeFep) - not used
-     */
-    virtual void ReadAttributeDataFromStreamL(TUid aAttributeUid, RReadStream& aStream);
-
-private:    // from MCoeForegroundObserver (via CCoeFep)
-    /**
-     * from MCoeForegroundObserver (via CCoeFep) - not used
-     */
-    virtual void HandleGainingForeground();
-
-    /**
-     * from MCoeForegroundObserver (via CCoeFep) - not used
-     */
-    virtual void HandleLosingForeground();
-
-private:        // from MCoeFocusObserver (via CCoeFep)
-
-    virtual void HandleChangeInFocus();
-
-    /**
-     * in queries the editor is destroyed before the call to HandleChangeInFocus
-     * so NULL the iInputCapabilities variables to prevent trying to save to an unreferenced object
-     */
-    virtual void HandleDestructionOfFocusedItem();
-
-public: // from MAknEdStateObserver
-    /**
-     * from MAknEdStateObserver - not used
-     */
-    virtual void HandleAknEdwinStateEventL(CAknEdwinState* aAknEdwinState, 
-                                           EAknEdwinStateEvent aEventType);
-
-private:    // from MEikCommandObserver (via MAknFepUiInterfaceMenuObserver)
-    /**
-     * from MEikCommandObserver
-     * Processes user commands, in this case only commands from the edit menu
-     */
-    virtual void ProcessCommandL(TInt aCommandId);
-
-    /**
-     * Constructs the component fully. This method is called when a
-     * fep aware editor is first time focused for text input.
-     */
-    void ConstructFullyL();
-
-    /**
-     * Deletes the objects constructed with ConstructFullyL() method.
-     */
-    void CommonDestroyFep();
-
-private:    // from MAknFepUiInterfaceMenuObserver
-    /*
-     * not used as DynInitMenuPaneL() is now called before SetEmphasis() and HandleChangeInFocus()
-     */
-    virtual void SetEmphasis(CBase* aMenuControl,TBool aEmphasis);
-
-    /**
-     * removes app menu panes and adds the FEP edit menu pane to the menu bar
-     */
-    virtual void DynInitMenuBarL(TInt aResourceId,CAknFepUiInterfaceMenuBar* aMenuBar);
-
-    /**
-     * dynamically changes the edit menu depending on fep and editor state
-     */
-    virtual void DynInitMenuPaneL(TInt aResourceId,CAknFepUiInterfaceMenuPane* aMenuPane);
-
-private:        //from MFepPointerEventHandlerDuringInlineEdit
-    /**
-     * from MFepPointerEventHandlerDuringInlineEdit - not needed, has to be implemented for MCoeFepAwareTextEditor interface
-     * No pointer in Chinese Series 60
-     */
-    virtual void HandlePointerEventInInlineTextL(TPointerEvent::TType aType, TUint aModifiers, 
-                                                 TInt aPositionInInlineText);
-
-private:        //from MFepInlineTextFormatRetriever
-    /**
-     * from MFepInlineTextFormatRetriever - not needed, has to be implemented for MCoeFepAwareTextEditor interface
-     */
-    virtual void GetFormatOfFepInlineText(TCharFormat& aFormat, 
-                                          TInt& aNumberOfCharactersWithSameFormat, 
-                                          TInt aPositionOfCharacter) const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-// Predictive QWERTY changes (XT9) ---->
-public:         
-	//from MAknFepCandidatePopupCallback ---->
-    /**
-    * Callback the get the current set of candidates
-    * @param    aArray      An output parameter for the candidate strings
-    * @param    aActiveIdx  An output parameter for the index of the 
-    *                       currently active candidate
-    */
-    virtual void GetCandidatesL( CDesCArray& aArray, TInt& aActiveIdx );
-	
-	/**
-	* Callback get new position for candidate list
-	* @param aRect  New rect position for candidate list.
-	*/
-    virtual void GetUpdateCandidatePositionL(TRect& aRect);
-    
-	//from MAknFepManagerUIInterfaceWestern ---->
-    
-    /**
-     * Function to get the text direction for current language.
-     * @return ETrue if language id RTL, EFalse if it is not
-     */
-    TBool IsRightToLeftLanguage();
-    TBool IsLanguageSupportPrediction();
-// Predictive QWERTY changes (XT9) <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-public:
-
-    /**
-     * Launches the mode selection menu
-     */
-    void LaunchSelectModeMenuL();
-    
-    /**
-     * Launches the edit word query in western predictive text mode
-     */
-    void LaunchEditWordQueryL();
-    
-	/**
-	* Returns the status of given extended input capability flag.
-	*/
-    TUint ExtendedInputCapabilities() const;	
-
-	/**
-	* Exit plugin itut spell mode by press ok btn
-	*/
-    void ExitPluginSpellModeByOk();
-
-	/**
-	* Exit plugin itut spell mode by press cancel btn
-	*/
-    void ExitPluginSpellModeByCancel();
-    
-    void SynCCPSoftKey();
-    
-     /**
-     * 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
-     */
-    TBool EditorHasFreeSpace( TInt aNumberOfCharacter = 0 ) const;
-		TBool IsSpecialNumericEditor();
-
-private:
-
-    /**
-     * Handles notifications that the UI has changed focus
-     * <ul>
-     * <\li>When moving away from a fep aware text editor saves the mode of the old editor
-     * <\li>When moving to fep aware text editor gets the the mode if it has previously been saved
-     * and checks if the editor supports secret text
-     * <\ul>
-     */
-    void HandleChangeInFocusL();
-
-    /**
-     * cleans up the fep after trapping a leave
-     */
-    void CleanUpFep();
-
-    /**
-     *
-     * @param aKeyCode the value of the key to simulate
-     */
-    void SimulateKeyEventL(TUint aKeyCode, TBool aActiveObj=EFalse);
-
-    /**
-     * Tries to Reset the Shift Key Monitor
-     * Cleans up FEP if failed
-     *
-     * @return KErrNone if succeed, KErrDied if failed
-     */
-    static TInt ResetShiftKeyMonitorCallback(TAny* aObj);
-
-    /**
-     * Cancels the shift monitor
-     * tells the editor to up date its cba
-     * to enable copy/paste support on cba. We simulate via CCoeEnv
-     * to avoid fep SimulateL adding shift modifiers
-     */
-    void ResetShiftKeyMonitorL();
-
-    /**
-     * Cancels the shift key and concatenation timers if they are active
-     */
-    void CancelAllTimerActivity();
-
-    /**
-     * checks whether a mode is permitted by the current editor
-     *
-     * @return ETrue is aMode is permitted, EFalse if it is not
-     */
-    TBool IsModePermitted(TInt aMode, TWidthChar aWidth = ENoneWidthChar) const;
-
-    /**
-     *
-     *
-     * @return
-     */
-    TUint EditorMode(TInt aMode, TWidthChar aWidth) const;
-
-    /**
-     * Synchronises the states of the Fep Manager and the Key Catcher
-     *
-     * @return System wide error code.
-     */
-    TInt SyncStates(TAknFepManagerState aState);
-
-    /**
-     * Launches the matches popup list
-     */
-    void LaunchMatchesPopupListL();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    /**
-     * 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.
-     */
-    void LaunchCandidatePopupListL( TInt aFocusedIndex = KErrNotFound );
-    void StartInlineEditingWithSelectedWord(TDesC& aTextToUncommit);
-    /**
-     * Shows the exactly typed word above the inline editor if it differs from the 
-     * best guess word shown inline.
-     */
-    void ShowExactWordPopupIfNecessaryL();
-    
-    /**
-     * Launches the predictive setting dialog.
-     */
-    void LaunchPredictiveSettingDialogL();
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-    void  LaunchWritingLanguageSettingDialogL();
-    
-    void  LaunchDualLanguageSettingDialogL();
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-    
-    // Predictive QWERTY (XT9) changes <----
-    
-    /**
-     * Handle shift loop in chinese variant for half qwerty
-     */
-    
-    void HandleShiftHalfQwertyChineseL(TEventCode aEventCode);
-    
-    /**
-     * Handle shift key loop in chinese variant for qwerty and mini qwerty
-     */
-    void HandleShiftQwertyChineseL(TEventCode aEventCode);
-#endif //RD_INTELLIGENT_TEXT_INPUT    
-    /**
-     * Launches the insert word query in western predictive text mode
-     */
-    void LaunchInsertWordQueryL(const TDesC& aInitialText, TCursorSelection aTextSpanToReplace);
-
-    /**
-     * Actual query dialog for LaunchInsertWordQueryL and LaunchEditWordQueryL
-     */
-    void LaunchFepQueryDialogL(TInt aResourceId, const TDesC& aInitialText, 
-                               TCursorSelection aTextSpanToReplace);
-
-     /**
-     * Inserts a text directly into the editor which previously had focus
-     */
-    void InsertTextFromDialogL(const TDesC& aTextFromDialog, 
-                               TCursorSelection aExtentOfTextToReplace);
-
-    /**
-     * Launch the KutenCodeQuery
-     */
-    void LaunchKutenCodeQueryL();
-
-    /**
-     * Returns the resource ID for the numeric mode special character map
-     * available in the current editor.
-     */
-    TInt NumericModeSCTResourceId() const;
-
-    /**
-    * Handles the hash key
-    * <ul>
-    * <\li>a short hash cycles through the modes
-    * <\li>a long key press moves to number mode unless the mode is already number, in which case
-    * it goes to default
-    * <\ul>
-    */
-    TKeyResponse HandleHashKeyL(TKeyPressLength aLength);
-
-    /**
-    *
-    * @return Editor's numeric keymap for # and * keys of ITU-T mode.
-    */
-    TInt EditorNumericKeymap() const;
-
-    /**
-     * dims the item on the edit menu corresponding to the current mode
-     * the user can press cancel to remain in the same mode
-     *
-     * @param aMenuPane the edit menu pane
-     */
-    void DimEditMenuModeItems(CAknFepUiInterfaceMenuPane* aMenuPane);
-
-    /**
-     * Launch confirmation note.
-     *
-     * @param aResourceId Confirmation note resource Id.
-     */
-    void LaunchConfirmationNoteL(TInt aResourceId);
-
-    /**
-     * Enters a new character into the editing window
-     * <p> Secret Text Editors do not use the MCoeFepAwareTextEditorInterface,
-     * they interact with the editor by simlulating key events. When in Multitap, simultating a
-     * numeric key event causes an extra key to be added to the control stack because the numeric
-     * keys exist on the Series 60 keypad; the flag EFlagPassNextKey is used to ignore this.
-     * <p> When secret editing in multitap, a backspace is simulated to replace the last
-     * character in the editor.
-     */
-    void NewCharacterL(const TDesC& aChar);
-    /**
-     * Enters a new phrase into the editing window
-     *
-     */
-    void NewTextL(const TDesC& aText);
-
-    /**
-     * 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.
-     */
-    void CommitInlineEditL(const TDesC& aText, TInt aUncommitedTextChange);
-
-    /**
-      * Cansel inline input.
-      */
-    void CancelInlineEdit();
-
-    /**
-      * Used by editing window when it draws inline input characters.
-      */
-    void GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine, TInt& aHeight,
-                               TInt& aAscent, TInt aDocumentOffset);
-
-    /**
-      * Used by Chinese UI to get cursor baseline position.
-      */
-    void GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine,TInt& aHeight,TInt& aAscent);
-
-
-
-    /**
-     * 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
-     */
-    TBool IsEditorHasFreeSpace()const;
-
-    /**
-     * 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.
-     */
-    TInt EditorFreeSpace(TBool& aUnlimit, 
-    				TBool isToCountUncommittedTextLength = EFalse ) const;
-#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.
-     */
-	TInt EditorFreeSpaceForAutoWordCompletion(TBool& aUnlimit, 
-                                            TBool isToCountUncommittedTextLength = EFalse ) const;
-#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.
-    */
-    TInt DocumentLength() const;
-    
-    /**
-    * Tells if the given key event will replace the latest character in editor
-    * because of multitapping or long press handling.
-    */
-    TBool KeyEventWillReplaceCharacter( const TKeyEvent& aKeyEvent );
-
-#endif
-#endif    																	
-
-    /**
-     * Uses TLocale to access the localized decimal separator in the kernel
-     */
-    TChar CurrentDecimalSeparator() const;
-
-    /**
-     * Sets up the FEP state from the Editor State
-     * Called by HandleChangeInFocusL()
-     */
-    void ConfigureFEPFromEditorStateL();
-
-    /**
-     * Sets up the FEP State(character width) from the Editor Mode
-     * @return FepMode
-     */
-    TInt ConfigureFepModeFromEditorMode(TInt aEditorMode);
-
-    /**
-     * launch query which contains instructions on how to enter
-     * chinese text using the FEP
-     */
-    void LaunchHelpTextQueryL();
-
-    /**
-     * ensure that the UI is aware of the current editor context
-     */
-    void UpdateEditorContext() const;
-
-    /**
-     * query whether the text is valid in the current editor
-     */
-    TBool TextIsValidInEditor(const TDesC& aText);
-
-
-    /**
-     * Sets the style of the cursor to aType
-     */
-    void SetCursorType(TChineseFepCursorType aType);
-
-   /**
-    * Returns the current editing state indicator
-    */
-    MAknEditingStateIndicator* EditingStateIndicator() const;
-
-    /**
-    * Adds space at the end of the buffer if the feature is enabled.
-    */
-    TBool TryHandleArrowRightEventL(TInt aDocumentLength);
-
-    /**
-    * Remove spaces from the end of the buffer if the cursor
-    * is in last position. Only in Japanese variant.
-    * Opposite functionality of TryHandleArrowRightEventL().
-    */
-    TBool TryHandleArrowLeftEventL(TInt aDocumentLength);
-
-    /**
-    * Adds enter to the buffer if the cursor is at the end of the buffer and
-    * feature KAknFepEnterWithScrollDown is enabled.
-    *
-    * @since 2.6
-    * @param aDocumentLength Editor's document length
-    * @return Boolean if the down key event was handled.
-    */
-    TBool TryHandleArrowDownEventL(TInt aDocumentLength);
-
-    inline void ResetFlags();
-
-    /**
-     * Handle the Chr Key Monitor
-     * for Japanese variant only.
-     *
-     * @since 3.0
-     * @return KErrNone if succeed, KErrDied if failed
-     */
-    static TInt HandleChrKeyMonitorCallback(TAny* aObj);
-
-	/**
-	 * Enters a new ligature into the editing window.
-	 *
-     * @since 3.2
-     * @param aText Unicode value of the ligature.
-     * @return None
-	 */
-	void NewLigatureL( const TDesC& aText );
-   /**
-     * Sets the current state to aState based on the input mode 
-     * used to show the indicator
-     * @since 3.2
-     */
-    void SetPredictiveIndicatorState(TAknEditingState& aState);
-    static TInt HandleResourceChangedCallback(TAny* aObj);
-    
-    void ResourceChangedTimeroutL();
-    /**
-    * Exit plugin itut spell mode by press ok btn
-    */
-    void ExitPluginSpellModeByOkL();    
-	
-#ifdef RD_SCALABLE_UI_V2
-	/**
-     * Unregisters Fep as observer
-     */
-    void UnregisterObserver();
-    
-    /**
-     * Unregisters Fep as observer
-     */
-    void RegisterObserver();
-    
-#endif // RD_SCALABLE_UI_V2	    
-private:
-    TUint EditorModeFromFepMode(TInt aFepMode);
-
-    // returns sound system
-    CAknKeySoundSystem* SoundSystem() const;
-
-    void SetHashKeyStyle();
-    void ReadHashKeyLoopL();
-
-    TBool IsValidInLineCharacter(TChar aCharacter) const;
-    TBool HandleLoopingInNaviEventL(TWesternNaviEvent aNaviEvent);
-
-    static TInt WordConcatenationTimerTimeoutCallback(TAny* aObj);
-    void WordConcatenationTimerTimeoutL();
-    
-	void AddInputLanguageItemL(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex);    
-	void SetQwertyModeToInputcapbility();
-	void SetExtendedInputCapabilities( TUint aCapabilities);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-    // Predictive QWERTY (XT9) changes ---->
-    /**
-    * Adds the "Input Options" option and its sub menu to the given menu.
-    * @param    aMenuPane   The menu where the option should be added.
-    * @param    aIndex      The location in the menu where the option should be added.
-    */
-   
-    void AddPredictiveModeOptionsL(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex) const;
-    
-    /**
-     * Adds the XT9 Edit menu options to the given menu.
-     * @param    aMenuPane   The menu where the option should be added.
-     * @param    aIndex      The location in the menu where the option should be added.
-     */
-    
-     void AddPredictiveModeEditMenuL(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex) const;
-    
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    /* Sets default number mode when arabic language is used.
-    * @param aMode either Latin or Arabic
-    * @param aNbrModeType number mode type from GSLangPlugin.hrh
-    */
-    void SetDefaultNumberMode( TInt aMode, TInt aNbrModeType );
-
-    /**
-    * Loads an icon from avkon bitmap file.
-    * @param aIcons The array into which the icon will be added. Icons will be 
-    *        owned by this array.
-    * @param aBitmapId ID of the actual bitmap.
-    * @param aMaskId ID of the mask.
-    */
-    void LoadIconL( CArrayPtr<CGulIcon>* aIcons, TInt aBitmapId, TInt aMaskId );
-
-    /**
-      * Add a menu item for User DB management. 
-      * phrase creation
-      * @since S60 5.0 S60_version
-      * @param aMenuPane The menu into which the mune item will be added. 
-      * @param aIndex Index of the menu item to insert.
-      * @return none
-      */
-     void AddUserDBDlgItemL( CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex );
-
-     /**
-       * Return wether ipnut mode is change by press shift+space. 
-       * This is for half-qwerty.
-       * @return ETure is change by press shift+space, otherwise EFalse.
-       */
-     TBool IsChangeModeByShiftAndSpace();
-     
-     /**
-       * Set wether ipnut mode is change by press shift+space. 
-       * This is for half-qwerty.
-       * @return none
-       */
-     void SetChangeModeByShiftAndSpace( TBool aFlag );
-
-public:
-    //Hash Key Manager Interface
-    TBool IsOnlyNumericPermitted() const;
-    void TryIncrementModeL(TInt aCurrentMode);
-    void TryIncrementModeChineseQwertyL(TInt aCurrentMode);
-    void TryIncrementChineseModeForQwertyL(TInt aCurrentMode);
-    void TryChangeToSharedDataModeL();
-    void TryChangeToModeBeforeL();
-    TBool TryChangeModeL(TInt aMode);
-    void ChangeInputLanguageL(TInt aInputLanguage);
-    void RemovePreviousCharacterL();
-    void  TryChangePredictiveInputModeL(TBool aFlag);
-    
-    /**
-     * To Handle Indic Hash key 
-     * 
-     *
-     * @since 3.2
-     * @return the language id of the Input Language as in Cenral Repository (General Settings)
-     */
-    TLanguage GetInputLanguageFromSharedDataInterface();
-
-    
-    /**
-     * To Handle Hash key 
-     * 
-     *
-     * @since 3.2
-     * @return ETrue if the Last Key press was Hash key.
-     */
-    TBool WasLastKeyPressAHashKey();
-
-    /**
-     * To Handle Hash key 
-     * To set or Reset the status maintained to know if last key pressed was Hash Key	 
-     *
-     * @since 3.2
-     * @return nothin
-     */
-	void SetLastPressedHashKeyStatus(TBool aStatus);
-
-    //Case Manager Interface
-    MCoeFepAwareTextEditor* FepAwareTextEditor() const;
-    
-    TBool IsFepAwareTextEditor() const;
-    
-    TCursorSelection UncommittedText() const;
-    void SetCase(TCase aCase);
-
-    //made public for western
-
-    /**
-     * Retreives the State of the current editor
-     *
-     * @return the current editors state object
-     */
-    CAknEdwinState* EditorState() const;
-
-    /**
-     * update the edit indicators when moving into a new input mode
-     */
-    void UpdateIndicators();
-
-    /**
-     * Checks if the editor is in a state where a Special Character Table can be launched
-     */
-    TBool IsAbleToLaunchSCT() const;
-    
-    /**
-     * Get current editor's SCT resource id
-     */
-    TInt GetCurrentEditorSCTResId() const;
-    
-    /**
-     * Launch the Special Character Table
-     */
-    void LaunchSpecialCharacterTableL(TInt aResourceId = EDefaultNumericCharMapResId,
-                                      TBool aLaunchedByTouchWin=EFalse, 
-                                      TBool aSmileyFirst=EFalse);
-
-    /**
-     * Checks if the editor is in a state where a Pictograph Character Table can be launched
-     */
-    TBool IsAbleToLaunchPCT() const;
-    
-    /**
-     * Checks if the editor is in a state where a Pictograph Character Table can be launched
-     */
-    TBool IsAbleToLaunchSmiley() const;
-
-    /**
-     * Launch the Pictograph Character Table
-     */
-    void LaunchPictographCharacterTableL();
-
-    //MAknFepManagerUIInterfaceWestern
-    virtual void UpdateInlineEditL(const TDesC& aNewInlineText, 
-                                   TInt aPositionOfInsertionPointInInlineText);
-    virtual void StartInlineEditL();
-    virtual void StartInlineEditL(const TDesC& aText);
-    virtual void StartInlineEditL(TCursorSelection aCursorSelection, 
-                                  const TDesC& aInitialInlineText, 
-                                  TInt aPositionOfInsertionPointInInlineText, 
-                                  TBool aCursorVisibility);
-
-    virtual TBool CloseUiIfWordDeletedL();
-    virtual TBool TryGetTextToUncommitL(TDes& aText, TInt aCode, TBool& aComsumeKey);
-
-    /**
-     * Addition for ITI features on FSQ.
-     * To check which characters will be underlined.
-     */
-    TBool TryGetTextToUncommitL(TDes& aText, TBool& aComsumeKey);
-    
-    virtual void UpdateCbaL(TInt aResourceId);
-    virtual TBool TryRemoveNoMatchesIndicatorL();
-    virtual TBool IsMoreGoodWordsComing(TInt aNewWordLength) const;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsMoreGoodAutoCompleteWordsComing(TInt aInputMode, TInt aPreviousWordLengh, 
-                                                    TInt aNewWordLength) const;
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    virtual void TryStartCompoundWord();
-    virtual void AddCompoundWordToUdbL();
-
-    //MAknFepManagerUIInterfaceWestern made public for western
-    inline TBool IsFlagSet(TInt aFlag) const;
-    inline void SetFlag(TInt aFlag);
-    inline void ClearFlag(TInt aFlag);
-    
-    inline TBool IsExtendedFlagSet(TInt aExtendedFlag) const;
-    inline void SetExtendedFlag(TInt aExtendedFlag);
-    inline void ClearExtendedFlag(TInt aExtendedFlag);
-    inline void ResetExtendedFlags();
-
-    inline TCoeInputCapabilities& InputCapabilities();
-
-    void SetWesternPredictive( const TBool aWesternPredictive );
-    void SetWesternAutoComplete( const TBool aWesternAutoComplete );
-    void SetJapanesePredictive(const TBool aJapanesePredictive);
-    void SetQwertyMode(const TBool aQwertyMode); // Empty implementation. Qwerty mode is not supported.
-
-    TBool WesternPredictive(TInt aMode = 0) const;
-    TBool IsPredictive(TInt aMode = 0) const;
-    TBool Japanese() const;
-    TBool IsOnlyFullWidthCharacterPermitted() const;
-    TBool IsOnlyHalfWidthCharacterPermitted() const;
-    TBool IsHalfAndFullKatakanaPermitted() const;
-    TBool IsHalfAndFullLatinPermitted() const;
-    TBool IsHalfAndFullNumberPermitted() const;
-    virtual TWidthChar CharacterWidth() const;
-
-    virtual CPtiEngine* PtiEngine() const;
-    virtual void SetInlineEditingCursorVisibilityL(TBool aCursorVisibility);
-
-    TInt  InputMode() const;
-    TInt CangJieMode() const;
-
-    TBool InputLanguageSupportsCaseChanges() const;
-
-    /**
-     * Queries supportting of KAknFepScrollLatinPredictive feature
-     *
-     * @since 2.6
-     * @return ETrue if ScrollLatinPredictive was supported
-     */
-    TBool IsAbleScrollLatinPredictive() const;
-
-    /**
-     * Previous case is returned.
-     *
-     * @since 2.6
-     * @return TInt  EAknEditorTextCase or EAknEditorUpperCase or EAknEditorLowerCase
-     *               If case cannot be saved, 0 value is returned.
-     */
-    inline TInt CaseBefore() const;
-
-    /**
-    * @return true if current input language is one of Chinese input languages.
-    */
-    inline TBool IsChineseInputLanguage() const;
-    
-    /**
-    * @return true if current input language is arabic input languages.
-    */
-    inline TBool IsArabicInputLanguage() const;    
-    
-    /**
-    * @return true if current input language is Korean input language.
-    */
-    
-    inline TBool IsKoreanInputLanguage() const;
-
-    /**
-     * Check Qwerty keypad
-     *
-     * @since 3.0
-     * @return ETrue is Qwerty
-     */
-    inline TBool IsQwerty() const;
-    
-    
-    /**
-    * 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.
-    */
-    TBool HashKeySelectionInUse() const;
-
-    /**
-    * Returns the UI interface implementation used in the current app.
-    *
-    * @since 3.2
-    * @return  The UI interface object used in the current app.
-    */
-    CAknFepUIInterface* UiInterface();
-  
-    /**
-    * 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.
-    */        
-    TBool EditSubmenuInUse() const; 
-    
-    /**
-     * Set MultiTap Timer
-     *
-     * @since 3.0
-     * @param aMultiTapTimer value of KAknFepMultiTapTimer setting
-     */
-    void SetMultiTapTimer(const TInt aMultiTapTimer);
-
-    /**
-     * Set Japanese Qwerty Flags
-     *
-     * @since 3.0
-     * @param aJapaneseQwertyFlags value of KAknFepJapaneseSpecialCharFlag setting
-     */
-    void SetJapaneseQwertyFlags(const TInt aJapaneseQwertyFlags);
-
-	/**
-	* Calling this method will raise a flag which will cause predictive 
-	* word to be commited during next call to TryCloseUiL-method. This
-	* is needed because of Japanese ReadingTextL. 
-	*
-	* @since 3.1
-	*/	
-	void SetDelayedCommit();
-
-    /**
-     * from MAknFepManagerUIInterface
-     * query whether the special char is valid in the current editor
-     *
-     * @param aChar Checking a chracter
-     */
-    TBool CharIsValidInEditor(TChar aChar);
-
-   /**
-     * from MAknFepManagerUIInterface
-    * Returns the status of predictive input.
-    *
-    * @since 3.2
-    * @return ETrue is available predictive input.
-    */
-    TBool IsAbleToChangePrediction() const;
-    
-    /**
-     * Commits uncommitted text in the editing window. For secret text editors,
-     * only inline editing flags are changed
-     */
-    void CommitInlineEditL();    
-    
-    TBool GetIndicatorImgID(TInt& aIndicatorImgID, TInt& aIndicatorTextID);   
-
-    inline TFepSymbolOfHardwareOne SymbolInfoOfHardKey1();
-public:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /*
-    Sets the keyboard layout.
-    **/
-    void SetKeyboardLayout(TPtiKeyboardType aType);
-#endif
-    virtual TText PreviousChar( TBool aContextSensitive = EFalse );
-    virtual TText NextChar();
-    virtual TBool IsZWSCharacterPresent( TBool aLigaturePresent = EFalse );
-    void RemoveZWSCharacterL( TBool aIsViramaInputted, 
-                              TBool aIsInMultitappingHalant = EFalse, 
-                              TBool aIsCharModifier = EFalse, 
-                              TBool aIsLigaturePresent = EFalse );
-    void NewCharacterSequenceL(const TDesC& aText, TIndicInputResponse aResponse);
-    TBool IsValidInlineIndicCharacter(TChar aCharacter) const;
-#ifdef RD_HINDI_PHONETIC_INPUT	
-    TBool IsIndicPhoneticInputLanguage() const;
-    TInt SetPhoneticIndicator(TLanguage aInputLanguage);
-    void TryChangePhoneticModeL();
-#endif
-    TDigitType LocalDigit();
-public:
-     /**
-     * Auto word Completion is Enabled
-     *
-     * @since 3.2
-     */    
-    void SetAutoCompletionState(TInt aValue);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    void RemoveSuggestedCompletionL();
-#endif	//RD_PRED_AW_COMPLETION
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool IsFnKeyMappedL(TPtiKeyboardType aKeyboardType = EPtiKeyboardNone);
-    TBool IsFnKeyMapped();
-    void SetFnKeyMappingState();
-    TBool KeyMapsDifferentCharacterWithFn( TPtiKey aKey ) const;
-     
-     /**
-	 * Setter for the advanced predictive typing correction.
-	 * @param    aLevel   The level to be set.
-	 */
-	 void SetTypingCorrectionLevel(TInt aLevel);
-	
-	 /**
-	 * Resetter for the advanced predictive Number Candidate setting.
-	 * @param    aValue   The value to be set.
-	 */
-	 void SetNumberCandidateState(TInt aValue);
-	 
-	 /**
-	* Setes the primary candidate from GS to the local state
-	*/
-	 void SetPrimaryCandidate(TInt aValue);
-#endif
-       
-    void SetStopProcessFocus(TBool aStop, TBool aClose = ETrue);
-
-    TBool StopProcessFocus();
-    
-    TBool CloseUiOnFocusChange();
-    
-
-public:
-    void HandleOwnedSimulateKeyL();
-    
-    TBool HandleCcpuModeKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode,
-                                 TKeyResponse& aRetCode, TBool aLongPressFlag = EFalse);
-    
-	/**
- 	*  Sets aFlag bitfield in iCcpuFlags
- 	*/
-	inline void SetCcpuFlag(TInt aFlag);
-
-	/**
- 	* Clears aFlag bitfield in iCcpuFlags
- 	*/
-	inline void ClearCcpuFlag(TInt aFlag);
-
-	/**
- 	* Clears all flags in iCcpuFlags
- 	*/
-	inline void ResetCcpuFlags();
-
-	/**
- 	* Returns ETrue if the aFlag bitfield in iCcpuFlags is set, EFalse if it
- 	* is clear
- 	*/
-	inline TBool IsCcpuFlagSet(TInt aFlag) const;    
-        /**
-     * Check if Auto word Completion is Enabled
-     *
-     * @since 3.2
-     * @return ETrue if Auto word Completion is enabled
-     */
-    inline TBool IsAutoCompleteOn() const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-    
-    
-    /**
-    * @return	TInt 	Typing correction level.
-    */
-    inline TInt AdvancedPredictiveTypingCorrectionLevel() const;
-    
-    /**
-    * @return   ETrue   If the number candidate shown. EFalse otherwise.
-    */
-    inline TBool IsAdvancedPredictiveNumberCandidateShown() const;
-    
-    /**
-    * Cuts off the automatically completed tail of the suggested word candidate.
-    */
-    virtual void RemoveSuggestedAdvanceCompletionL();
-    
-    /**
-    * @return   ETrue   If the number candidate shown. EFalse otherwise.
-    */
-    inline TBool AdvancedPredictivePrimaryCandidate() const;
-    TBool LongPressNumberEntryOnQwerty() const;
-    
-    // Predictive QWERTY (XT9) changs <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    /**
-    * Returns ETrue if Feature manager supports Japanese.
-    */
-    inline TBool IsFeatureSupportedJapanese() const;
-    
- 	/**
-    * Cancels shift key timer.
-    */        
-	void CancelShiftKeyTimer();
-    
-    /**
-     * Queries supportting of SecretText
-     *
-     * @since 2.6
-     * @return ETrue if SecretText was supported
-     */
-    TBool IsSupportsSecretText() const;
-    
-    void SendEventsToPluginManL( TInt aEventType, TInt aEventData = 0 );
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-    Sends the key event received to the Fn key handler and sets the Fn key state.
-    */
-    TKeyResponse HandleFnKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aEventCode );
-#endif
-    
-    MAknFepManagerInterface* FepUI() const;
-  
-    TTmDocPosSpec DocPos();
-    
-    void HandleCopyCutEventL(TInt aCommandId);
-    
-    void LaunchPenSupportMenuL(); 
-
-private: //navigation
-    void FindStartOfWord(TInt& aAnchorPos) const;
-    void FindEndOfWord(TInt& aCursorPos) const;
-    TBool CursorInsideWord();
-    void MoveCursorToStartOfWordL();
-    void MoveCursorToEndOfWordL();
-    TKeyResponse HandleNaviEventOutsideInlineEditL(TUint aCode, TKeyPressLength aLength);
-    TKeyResponse HandleWesternPredictiveArrowKeyL(TInt aCode, TKeyPressLength aLength);
-    TBool TryHandleTextSelectedNaviEventL(TInt aCode, TKeyResponse& aResponse);
-    TBool TryHandleCommonArrowAndBackspaceFunctionalityL(TInt aCode, TKeyResponse& aResponse);
-    void TransferFepStateToEditorL(TBool aFnLockSync=ETrue);
-    inline MAknFepManagerInterface* InternalFepUI();
-
-
-    void LaunchLanguagesPopupListL(TBool aLaunchedByTouchWin = EFalse);
-    void LaunchRecognitionWithDictionaryPopupListL();
-    TBool IsInputModeAvailable(TInt aMode) const;
-    TInt NewInputModeAfterLanguageChange() const;
-
-    /**
-      * Launch User DB dialog
-      * phrase creation
-      * @since S60 5.0 S60_version
-      * @param none
-      * @return none
-      */
-     void LaunchUserDBDlgL();
-
-    /**
-    * Set current input language and the capabilities of the language to
-    * the iLanguageCapabilities member variable.
-    *
-    * @param aInputLanguage New (current) input language.
-    */
-    void SetInputLanguageCapabilities(const TInt aInputLanguage);
-
-    /**
-    * Returns input language code that corresponds to UI language.
-    *
-    * @param aUiLanguage Ui language code.
-    * @return Input language code that corresponds to the UI language code.
-    */
-    TInt SubstituteSublanguageId(const TInt aUiLanguage) const;
-
-    CTextView* TextView() const;
-    CTextLayout* TextLayout() const;
-    CPlainText* PlainText() const;
-
-    void DoWesternMenu(CAknFepUiInterfaceMenuPane* aMenuPane);
-    void DoChineseMenu(CAknFepUiInterfaceMenuPane* aMenuPane);
-    void DoJapaneseMenu(CAknFepUiInterfaceMenuPane* aMenuPane);
-    void DoChineseSubMenu(CAknFepUiInterfaceMenuPane* aMenuPane);
-
-    TBool IsRightToLeftParagraph(TTmDocPosSpec aPos) const;
-    void FindAdjacentChunks(const TTmDocPosSpec& aPos,
-                            CTmTextLayout::TTmChunkDescription& aLeft, 
-                            CTmTextLayout::TTmChunkDescription& aRight) const;
-
-    TBool GetNextVisualRightCharacter( TInt& aPosition );
-    TBool GetNextVisualLeftCharacter( TInt& aPosition );
-    void FindVisualRightOfWord(TInt& aPosition);
-    void FindVisualLeftOfWord(TInt& aPosition);
-
-    //
-    // Remaining methods here are candidates for turning into TextViewUtility methods. Some
-    // have been made static already in anticipation of this.
-    //
-    /**
-    * Obtains the visual beginning of the document. This may be the left or right the right
-    * end of the first line, depending on first paragraph's direction. If the beginning of the document
-    * is currently not formatted, then EFalse is returned
-    *
-    * @param    aEndPos     DocPosSpec is returned for the visual beginning of the document.
-    * @return   ETrue if the value is successfully calculated, that is the first line is formatted
-    */
-    TBool GetVisualDocStart( TTmDocPosSpec& aStartPos ) const;
-
-    /**
-    * Obtains the visual end of the document. This may be the left or right the right
-    * end of the last line, depending on last paragraphs direction. If the end of the document
-    * is currently not formatted, then EFalse is returned
-    *
-    * @param    aEndPos     DocPosSpec is returned for the visual end of the document.
-    * @return   ETrue if the value is successfully calculated, that is the last line is formatted
-    */
-    TBool GetVisualDocEnd( TTmDocPosSpec& aEndPos ) const;
-
-    /**
-    * Get the document position of the visual extrem of the line in which the passed position
-    * is in.
-    *
-    * @param aPos       A position within the line you are interested in
-    * @param aToRight   ETrue if you want the right hand end.
-    * @param aExtreme   Output value of the doc pos spec for the end of the line
-    * @return           ETrue if the line was formatted. If False, the value of eExtreme
-    * cannot be trusted.
-    */
-    TBool GetAknFepLineExtreme( const TTmDocPosSpec& aPos, TBool aToRight,
-        TTmDocPosSpec& aExtreme) const;
-
-    /**
-    * This is a very general routine for finding the visual extreme (according to
-    * Avkon rules) of a piece of selected text.
-    * - Text may in general have many varying directional sections.
-    * - It may extend from one paragraph to another.
-    * - If the paragraph directions are different the current input language is
-    *
-    * @param aSelection     Logical range for which the visual extreme is required
-    * @param aEvent         The direction being navigated (Right/Left/Up/Down); eg. ELeftNaviEvent if moving to the left end
-    * @param aLimitPos      returned position in document
-    * @param aEffectiveRightOrLeftEvent  Pointer to TWesternNaviEvent, if passed from the client, will
-    *                       return either ERightNaviEvent or ELeftNaviEvent
-    */
-    void GetAvkonDefinedVisualLimitsOfSelection(
-        const TCursorSelection& aSelection,
-        TWesternNaviEvent aEvent,
-        TTmDocPosSpec& aLimitPos,
-        TWesternNaviEvent* aEffectiveRightOrLeftEvent) const;
-
-    /**
-    * Returns the position at the visual left extreme end for a logical range
-    *
-    * @param    aStartPos   Starting position for the search
-    * @param    aMinPos     minimum logical position of the logical range
-    * @param    aMaxPos     maximum logical position of the logical range
-    * @return   TTmDocPosSpec for the visual left end
-    */
-    TTmDocPosSpec LeftVisualExtremePos( const TTmDocPosSpec& aStartPos, 
-                                        TInt aMinPos, TInt aMaxPos ) const;
-
-    /**
-    * Returns the position at the visual right extreme end for a logical range. The range may consist
-    * of many directional chunks.  They are iterated through until the visual end is found.
-    *
-    * @param    aStartPos   Starting position for the search
-    * @param    aMinPos     minimum logical position of the logical range
-    * @param    aMaxPos     maximum logical position of the logical range
-    * @return   TTmDocPosSpec for the visual right end
-    */
-    TTmDocPosSpec RightVisualExtremePos( const TTmDocPosSpec& aStartPos, 
-                                         TInt aMinPos, TInt aMaxPos ) const;
-
-    /**
-    * Gets the visual left-most position in a chunk within a logical range
-    */
-    TBool LeftEndOfChunkWithinRange( const CTmTextLayout::TTmChunkDescription& aChunk, 
-                                     TInt aMinPos, TInt aMaxPos, TTmDocPosSpec& aNewPos) const;
-
-    /**
-    * Gets the visual right-most position in a chunk within a logical range
-    */
-    TBool RightEndOfChunkWithinRange( const CTmTextLayout::TTmChunkDescription& aChunk, 
-                                      TInt aMinPos, TInt aMaxPos, TTmDocPosSpec& aNewPos) const;
-
-    /**
-    * Adjust the passed docpos to reflect the avkon principal that after a left navigation
-    * the cursor should adhere to the bordering directional run on the left of that point.
-    * This may mean that the logical position and leading/trailing feature of aPos are adjusted
-    * This method does not perform the navigation, but may be called after a navigation.
-    */
-    void AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( TTmDocPosSpec& aPos, 
-                                                              TWesternNaviEvent aEvent ) const;
-
-    /**
-    * Do not move the visual position, but ensure that the docpos passed is adhering to the left
-    * side of the right chunk passed in.
-    */
-    static void AttachToRightChunk( TTmDocPosSpec& aPos, 
-                                    const CTmTextLayout::TTmChunkDescription& aRightChunk );
-
-    /**
-    * Do not move the visual position, but ensure that the docpos passed is adhering to the
-    * right side of the left chunk passed in.
-    */
-    static void AttachToLeftChunk( TTmDocPosSpec& aPos, 
-                                   const CTmTextLayout::TTmChunkDescription& aRightChunk );
-
-    /**
-    * Modify the cursor position after a jump to the start or end of a document.
-    * The current input direction is used to modify the position, so as to avoid attaching the
-    * new cursor position to a block of the opposite input directionality
-    *
-    * @param aPos   target position of the jump; may be modified by the routine.
-    * @param aEvent navigation event that caused the loop.
-    * @param aLoopToTop ETrue if the looping is from bottom to top; EFalse if from top to bottom
-    *
-    */
-    void AdjustPosSpecForInputLanguageAfterDocumentLoop( TTmDocPosSpec& aPos, 
-                                                         TWesternNaviEvent aEvent, 
-                                                         TBool aLoopToTop ) const;
-
-    /**
-    * Tests a chunk for validity.
-    *
-    * @return ETrue if the chunk is valid - is a real chunk.
-    */
-    static TBool ChunkIsValid( const CTmTextLayout::TTmChunkDescription& aChunk );
-
-    /**
-    * Finds the current input direction. This is determined as best as it can using
-    * - iT9Interface as the preferred source of information
-    * if that is not active/defined then
-    * - shared data (via AknTextUtils) if that fails
-    * - localLanguage overrides may be in place
-    *
-    * - when fep is in numeric mode it returns LTR
-    * - if FEP is in an irelevant mode, then LTR is returned
-    *
-    * Note that secret alpha modes return LTR always, as entry is alwas LTR for these
-    *
-    * @return TDirectionality::ERightToLeft when in an alpha mode and direction is RTL;
-    *                           Otherwise returns ELeftToRight
-    */
-    TBidiText::TDirectionality CurrentInputDirectionality() const;
-
-    /**
-    * Access the local language if defined
-    *
-    * @param aLanguage - returns the Symbian OS language code for the local language
-    * @return EFalse iff no local language is in force
-    */
-    TBool GetLocalLanguage( TLanguage& aLanguage ) const;
-
-    /**
-    * Looks through the FEP aware editor's text starting at character aPos, looking for a
-    * strongly directional character.  Direction of search can be set.
-    * Search is carried out until a strong character is found or the end (or beginning)
-    * of the editor text has been reached.
-    * The value returned in aIsRightToLeft should not be used unless the method returns ETrue
-    * @param aPos       First character to look at
-    * @param aForward   If EFalse, then search is backward (decreasing index) in logical buffer
-    * @param aIsRightToLeft     Set to ETrue on return if first strong character found is RTL
-    *
-    * @return           EFalse if no strong character was found.
-    */
-    TBool GetExposedDirectionOfText( TInt aPos, TBool aForward, TBool& aIsRightToLeft ) const;
-
-    /**
-    * Looks through the passed descriptor, looking for a strongly directional character.
-    * Direction of search can be set. Search starts at the begining if searching forward;
-    * starts at the end if searching backwards.
-    *
-    * Search is carried out until a strong character is found or the end (or beginning)
-    * of the descriptor has been reached.
-    * The value returned in aIsRightToLeft should not be used unless the method returns ETrue
-    *
-    * @param aText      Descriptor to search.
-    * @param aForward   If EFalse, then search is backward (decreasing index) in logical buffer
-    * @param aIsRightToLeft     Set to ETrue on return if first strong character found is RTL
-    *
-    * @return           EFalse if no strong character was found.
-    */
-    TBool GetExposedDirectionOfTextInDescriptor( const TDesC& aText, TBool aForward, 
-                                                 TBool& aIsRightToLeft ) const;
-
-    /**
-    * Access character in editor text at index aPos.
-    *
-    * @param    aPos    Index of character to access. Must be a valid index or panic may ensue.
-    * @return           charater at index aPos; returns TChar(0) if cannot get at the text.
-    */
-    TChar CharAt( TInt aPos ) const;
-
-    /**
-    * Navigate off of selected text using an Up/Down/Right/Left navigation event
-    *
-    * The code takes account of the paragraph directionality that the passed selection is
-    * found in.
-    *
-    * The new cursor position is resolved for ambiguity and then set using SetCursorPosition, and
-    * so it has the same side-effects:
-    *   iUncommittedText is set to the zero-width "cursor" state with the new cursor position
-    *   iUncommittedText is set into the FepAwareTextEditor state
-    *   iCaseManager is updated with a ENullNaviEvent
-    *   the doc pos is set in TextView object if present
-    *
-    * @param    aSelection  currently selected text
-    * @param    aNaviEvent  navigation event. One of ERight/Left/Down/UpNaviEvent. Others are ignored
-    * @param    aPos        Ouput, new position of the cursor
-    * @return   EKeyWasNotConsumed if the key is not consumed
-    */
-    TKeyResponse NavigateFromSelectionL(
-        const TCursorSelection& aSelection,
-        TWesternNaviEvent aNaviEvent,
-        TTmDocPosSpec& aPos );
-
-
-    /**
-    * This method is the standard way for the FEP to move the cursor when there is
-    * no inline edit or selection.
-    * Side effects:
-    * iUncommittedText is set to the zero-width "cursor" state with the passed position
-    * iUncommittedText is set into the FepAwareTextEditor state
-    * iCaseManager is updated with a ENullNaviEvent
-    * the doc post is set in TextView object if present
-    *
-    * @param aNewCursorPos - defines the position to set the cursor at, including leading/trailing
-    * @param aDragSelectOn - iff EFalse, do not keep old anchor position (that is, cancel any selection)
-    * properties.
-    */
-    void SetCursorPositionL( const TTmDocPosSpec& aNewCursorPos, TBool aDragSelectOn = EFalse );
-
-    /**
-    * Returns ETrue if the passed position is formatted and is in the first line
-    */
-    TBool InFirstLineAndFormatted( const TTmDocPosSpec& aPos ) const;
-
-    /**
-    * Returns ETrue if the passed position is formatted and is in the last line
-    */
-    TBool InLastLineAndFormatted( const TTmDocPosSpec& aPos ) const;
-
-    /**
-    * Returns ETrue if the passed position is in the
-    * @param aCheckFirstLine    if ETrue, check for first line; else check last line
-    * @return ETrue if the passed position is formatted and is first (or last - depending on switch)
-    */
-    TBool DocPosInFirstOrLastLineAndFormatted( const TTmDocPosSpec& aPos, 
-                                               TBool aCheckFirstLine ) const;
-
-    /**
-    * Method to determine if the passed position is equivalent visually to the "canonical"
-    * value determined by the limit algorithms.  The methods allow two visually equivalent,
-    * but logically different TTmDocPosSpecs to be be checked for equivalence.
-    * @param aCurrentPos    Position in document as returned by GetDocPos
-    * @param aLimitPos      Visual start of document as returned by GetVisualDocStart
-    * @returns              ETrue if the positions are visully equivalent
-    */
-    TBool AtVisualStart( const TTmDocPosSpec& aCurrentPos, const TTmDocPosSpec& aLimitPos ) const;
-
-    /**
-    * Method to determine if the passed position is equivalent visually to the "canonical"
-    * value determined by the limit algorithms.  The methods allow two visually equivalent,
-    * but logically different TTmDocPosSpecs to be be checked for equivalence.
-    * @param aCurrentPos    Position in document as returned by GetDocPos
-    * @param aLimitPos      The visual end of document as returned by GetVisualDocStart
-    * @returns              ETrue if the positions are visully equivalent
-    */
-    TBool AtVisualEnd( const TTmDocPosSpec& aCurrentPos, const TTmDocPosSpec& aLimitPos, 
-                       TInt aDocLength ) const;
-
-    void SetCursorType(TBool aIsLeftToRight);
-    TBool DeviceSupportsRTLLanguageL();
-
-	/**
-	 * Performs calculations of digit mode; 
-	 * used in UpdateLocalDigitMode() and in UpdateNumericEditorDigitType()
-	 */
-	void CalculateEditorDigitType(TDigitType& aDestination);
-
-    void UpdateNumericEditorDigitType();
-
-    /**
-    * Updates FEP digit mode from global locale settings.
-    */
-    void UpdateLocalDigitMode();
-
-    /**
-    * Checks to see if the cursor position is at an ambiguous point (one where the text blocks
-    * on either side are of different directionality) and potentially moves the cursor from
-    * one block to the other, depending on the key identity.
-    *
-    * To be called before key event is processed by the FEP in the usual way.
-    * If the key is acted upon to move the cursor, then the event is "eaten" and it is not
-    * to be passed on for processing.
-    *
-    * @param aCode      Key code from standard TKeyEvent key event structure
-    * @return           EKeyWasConsumed if a cursor adjustement was made;
-    *                   else EKeyWasNotConsumed
-    */
-    // TKeyResponse AttemptCursorFlipAtAmbiguousPointL( const TKeyEvent& aKeyEvent, TEventCode aEventCode );
-    TKeyResponse AttemptCursorFlipAtAmbiguousPointL( const TUint aCode );
-
-    /**
-    * Call back method for the "Post Event Check" mechanism. Called from a CIdle after
-    * any event that might required a check of the new cursor position or other invariant
-    */
-    static TInt PostEventCheckCallback(TAny* aObj);
-
-    /**
-    * Access method for whether bidirectional cursor is to be used
-    *
-    * @return EFalse iff the bidi cursor is not to be used
-    */
-    TBool BidiCursorRequired() const;
-
-    /**
-    * Since FEP does not complete the navigation of an event (editor and form do that), FEP
-    * has to ensure after all navigation is finished if the cursor is displayed correctly.
-    *
-    * <p> This method, called from the post event callback, implements the action to check the
-    * current cursor directionality against the text directionality at the cursor position,
-    * and alters the cursor appearance as required.
-    */
-    void DoCursorDirectionCheckL();
-
-    /**
-    * Check the directionality of text in the vicinity of the current document position
-    * and ensure that the cursor is indicated appropriately.
-    *
-    * This routine has no side-effect on the cursor position. It merely changes the
-    * appearance of the cursor.
-    */
-    void AdjustCursorTypeForCurrentPosition();
-
-    /**
-    * Kicks off the post event check idle event
-    *
-    * @param aCode Key event code
-    */
-    void SchedulePostEventCheckL(TUint aCode);
-
-    /**
-    * Check the directionality of text in the vicinity of the supplied document position
-    * and ensure that the cursor is indicated appropriately.
-    *
-    * This routine has no side-effect on the cursor position. It merely changes the
-    * appearance of the cursor.
-    *
-    * @param    aDocPos     document position that is to be analysed and acted on
-    */
-    void AdjustCursorTypeForPosition( const TTmDocPosSpec& aDocPos );
-
-    /**
-    * "Hook" method for managing a bidi cursor according to the text directionality at the cursor
-    * Only one of this method or SetCursorTypeForInputDirection will be in operation at any
-    * time.
-    *
-    * @param aLeftToRight   Supply ETrue iff cursor required is LTR cursor
-    */
-    void SetCursorTypeForTextDirection( TBool aLeftToRight );
-
-    /**
-    * "Hook" method for managing a bidi cursor according to the current input direction
-    * Only one of this method or SetCursorTypeForTextDirection will be in operation at any
-    * time.
-    *
-    * @param aLeftToRight   Supply ETrue iff cursor required is LTR cursor
-    */
-    void SetCursorTypeForInputDirection( TBool aLeftToRight );
-
-    /**
-    * Routine to analyse the directionalities surrounding the supplied document position
-    * and to return the results.
-    *
-    * @param    aDocPos     document position that is to be analysed
-    * @return               Structure containing the results of the analysis
-    */
-    TTextDirectionalInfo LocalTextDirectionalStatus( const TTmDocPosSpec& aDocPos ) const;
-
-
-    /**
-    *
-    * This method is used to add directional markers to protect neutrals that may be
-    * exposed to the opposite directional formatting to their situation before the deletion
-    *
-    * Redecoration is carried out if a neutral is exposed by the deletion to a directionality
-    * different to that which is was already marked.
-    *
-    * An inline edit may be stated and then committed.
-    *
-    * iUncommittedText is required to be set to the cursor position that existed after
-    * the deletion.
-    *
-    * iUncommittedText will be updated to the new cursor position.
-    *
-    * @param aTextThatWasDeleted Informs the method of what text has just been removed
-    */
-    void RedecorateAfterDeletionL( const TDesC& aTextThatWasDeleted );
-
-
-    TBool EditorSupportsNeutralProtection();
-
-
-    /**
-    * Wrapper function for the MCoeFepAwareTextEditor commit method.
-    * This method terminates the inline by accepting the current inline edit into the buffer.
-    *
-    * At entry, iUncommittedText is required to have the span of the current inline edit.
-    * iAnchorPos should be the index of the first character in the inline edit.
-    * iCursorPos should be the index of the next character after the inline edit.
-    *
-    * At exit, iUncommittedText has 0-length and represents the current cursor position.
-    * That is, iAnchorPos = iCursorPos = index of the character next after the cursor
-    *
-    * These indices may be more easily though of as "gap indices" where gap 0 precedes
-    * character 0, gap 1 follows character 0, gap 2 follows charcacter 1, etc.. until gap
-    * N follows character (N-1).
-    *
-    * This routine does not attempt to consolidate any directional markers that may be
-    * extraneous in the new buffer.  It is therefore used when it is important to know what
-    * span after the commit, e.g. to make it reversible.
-    *
-    * @param aFepAwareTextEditor    Editor for which there is a current inline edit.
-    * @param aCursorVisibility      EFalse if the cursor is to be suppressed during the commit.
-    */
-    void CommitInlineEditWithoutResolutionL(MCoeFepAwareTextEditor& aFepAwareTextEditor, 
-                                            TBool aCursorVisibility, TBool aClearPti = ETrue);
-
-
-    TKeyResponse HandlePredictiveNaviEventOutsideInlineEditL(TUint aCode, TKeyPressLength aLength);
-
-    static TInt DoSimulateKey(TAny* aThisPtr);
-
-    /**
-    * This method is that the label of CBA is updated by aTextResId.
-    * @param aPosition   CBA position, either ELeftSoftkeyIndex or ERightSoftkeyIndex
-    * @param aCommandId  command id for softkey
-    * @param aTextResId  resource id to set string on label.
-    * @return TBool The return value is ETrue in case it is necessary to update CBA.
-    */
-    TBool UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId);
-
-    /**
-    * Launches special character table (SCT) and pictograph character table (PCT).
-    *
-    * @param aResourceId   Resource of SCT content. NULL if the default SCT content
-    *                      is used. At the moment only Thai language sets non-default
-    *                      content.
-    * @param aShowSctParam Set the show mode for sct. EShowSctFirst or EShowPctFirst or EShowSmileyFirst
-    */
-    void DoLaunchSctAndPctL(TInt aResourceId, TShowSctMode aShowSctMode);
-
-    /**
-     * Update CangJie mode
-     *
-     * @param aNewMode   New CangJie mode
-     * @since 3.0
-     */
-	void UpdateCangJieState(TInt aNewMode);
-
-    /**
-     * Launch CangJie setting dialog
-     *
-     * @since 3.0
-     * @return  Selected CangJie level or KErrGeneral if user cancel the selection
-     */
-	TInt LaunchCangJieOptionDlgL();
-    
-    
-	void AddEditSubmenuL(CAknFepUiInterfaceMenuPane* aMenuPane);
-	void DisableEditSubmenuItems(CAknFepUiInterfaceMenuPane* aMenuPane);
-	void StartCcpuModeL(TBool aCopyMode);
-
-    /**
-     * Handle the Chr Key Monitor
-     * for Japanese variant only.
-     *
-     * @since 3.0
-     */
-    void HandleChrKeyMonitorL();
-    
-    TBool IsCursorAtEndOfWord();  
-    
-    /* This method should be called after launching any dialog by FEP */
-    void PrepareFepAfterDialogExitL(TUid aFepUid);
-    /* This method should be called before launching any fep aware dialog by FEP */
-    void PrepareFepForFepAwareDialogLaunch();
-    /* This method should be called after launching any fep aware dialog by FEP */
-    void PrepareFepAfterFepAwareDialogExitL(TUid aFepUid);
-
-public:
-
-    /**
-     * Handle layout change.
-     * When screen layout change, Key Catcher calls this method
-     *
-     */
-    void HandleResourceChange(TInt aType);
-
-    TBool IsHybridAplhaEditor() const;
-    TBool IsHybridAlphaModeChangedtoAplhanumeric() const;
-
-    TBool QueryPredictiveState(const TAknEditingState aState);
-    TInt EvaluateState(TAknEditingState aState);
-    TBool QueryPredictiveAutoCompleteState(TAknEditingState aState);
-	 CAknExtendedInputCapabilities::TEditorType EditorType() const;
-	 TUint MIDPConstraint() const;
-	/**
-	* Tells if the current editor is phone number editor
-	* @return ETrue if the current editor is phone number editor
-	*/
-	TBool IsPhoneNumberEditor() const;
-
-    
-#ifdef RD_SCALABLE_UI_V2
-
-    /**
-     * Pen input support functions
-     */
-public:
-
-    void HandlePointerEventL(const TPointerEvent &aPointerEvent);
-    
-    
-    /**
-     * Handle arrow key event when some chars have been selected
-     *
-     * @since S60 v3.2
-     * @param aKeyEvent
-     * @param aEventCode
-     * @param aRetCode
-     */    
-    TBool HandleSelModeArrowKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode,
-                                      TKeyResponse& aRetCode);
-    
-    /**
-     * From CAknExtendedInputCapabilities::MAknEventObserver
-     * Handle an event
-     *
-     * @since S60 v3.2
-     * @param aEvent An event, see TInputCapabilitiesEvent
-     * @param aParams Event dependent parameters
-     */
-    void HandleInputCapabilitiesEventL( TInt aEvent, TAny* aParams );
-    
-    void SubmitInlineTextL( const TDesC& aData );
-    
-    inline TInt PermittedModes() const;
-    
-    inline void SetNotifyPlugin( TBool aNotifyFlag );
-            
-    inline void RemeberEditorState();
-    
-    inline TBool IsMfneEditor() const;
-    
-    inline TBool IsFindPaneEditor() const;
-    inline TBool IsSupportedAdaptiveSearch() const;
-    //for japanese
-    void NotifyJapaneseSetting();
-    
-    
-    void ProcessEditorMenuCommand(TInt aCommand);
-    
-    TInt GetPermittedEditorMenu(TBool aOnlyCount = EFalse);
-
-    void UpdateTouchCaseMode();
-
-	void DimInputmodeTouchMenuItems(CAknFepUiInterfaceMenuPane* aMenuPane);
-	
-	inline TLanguageCapabilities InputLanguageCapabilities() const;
-
-    inline TAknFepManagerState& FepManState();
-    
-    inline TBool IsSupportNativeNumber() const;
-
-	void NeedDisableKeySound(const TKeyEvent& aKeyEvent, TEventCode aEventCode);
-	
-	inline void SetGainForeground( TBool aGainForeground );
-	void HandleEndKeyL();
-	inline void SetCancelPopupInQwerty( TBool aCancelPopupInQwerty );
-		
-    /**
-     * Return the chinese input mode used last time
-     */
-	inline TInt LastChineseInputMode() const;
-	
-private:
-       
-    /**
-    * Checks if the current editor is fully FEP aware.
-    *
-    * @since 3.2
-    *
-    * @return ETrue if editor if fully FEP aware.
-    */
-    TBool FullyFepAwareTextEditor() const;
-
-    /**
-    * Checks if the current editor is partially FEP aware.
-    *
-    * @since 3.2
-    *
-    * @param aAtLeast if ETrue then ETrue is returned for also fully FEP aware editors.
-    *
-    * @return ETrue if editor is partially FEP aware.
-    */
-    TBool SemiFepAwareTextEditor( TBool aAtLeast = EFalse ) const;         
-        
-    void DoWesternTouchMenu(CAknFepUiInterfaceMenuPane* aMenuPane);    
-    void DoChineseTouchMenu(CAknFepUiInterfaceMenuPane* aMenuPane);
-    
-    /**
-    * Checks if the current input mode belongs to chinese input modes.        
-    *
-    * @param aMode The current input mode.
-    *
-    * @return ETrue if the current input mode belongs to chinese input mode..
-    */
-    TBool IsChineseInputMode( TInt aMode );
-    
-#endif //RD_SCALABLE_UI_V2
-    
-     /**
-    * Returns the type of the focused editor.
-    *
-    * @since 3.2
-    *
-    * @return Editor type.
-    */
-    //CAknExtendedInputCapabilities::TEditorType EditorType() const;
-        
-    /**
-     *  Get the MAknFepDocumentNavigation object
-     *
-     *  @since 3.2
-     *  @return pointer to MAknFepDocumentNavigation accessed through
-     *  the input capabilites object provider.
-     */
-	MAknFepDocumentNavigation* AknFepDocumentNavigation() const;
-	
-	TInt GetPermittedEditorMenuL(TBool aOnlyCount = EFalse);
-		
-private:// from MPeninputServerEventHandler
-
-    void UpdateLatinIndicator( TAknEditingState& aNewState );
-    void UpdateNumberIndicator( TAknEditingState& aNewState );
-    void UpdateHindiIndicator( TAknEditingState& aNewState );
-    void HandleCopyCutStateL();
- 	/**    
-	* Returns ETrue if hash key selection is on and hash key mode selection should
-	* be blocked.
-	*
-	* @since 3.1
-	*/  
-    TBool HashKeyModeChangeBlockedInSearchField() const;                                  
-    /**
-     * Set editor cursor selection according plugin UI 
-     * cursor state
-     *
-     * @since 3.2
-     * @param aCurSel Cursor position.
-     * @param aSyncCursor ETrue if plug in UI need update cursor, EFalse otherwise
-     * @return None
-     */
-    void SetCursorSelectionL(const TCursorSelection& aCurSel, TBool aSyncCursor);
-
-	/**
-    * An internal helper method for matches popup list.
-    * 
-    * The index of currently selected prediction candidate.
-    * 
-    * @since S60 3.2
-    */ 
-    TInt ResolveCurrentCandidateListIndex(CDesCArrayFlat* aCandList);
-
-    /**
-	*  Removes underlining from predictive word and moves cursor the end of the word.
-	*
-    *  @since 3.2
-    *  @param aData Key data
-    *  @return None
-    */    
-    void DeactivatePredicitveWordAndMoveCursorL();
-    
- 	/**
-	*  Returns the Ccpu status of given editor state as a flag combination.
-	*
-    *  @since 3.2
-    *  @param aEdwinState
-    *  @return editor ccpu status
-    */    
-	TInt EditorCcpuStatus(CAknEdwinState* aEdwinState);
-	
-	/**
-	*  Cancels editing options copy / paste mode initialted from editing options -submenu.
-	*
-    *  @since 3.2
-    */    	
-	void CancelCcpuMode();
-
-#ifdef RD_SCALABLE_UI_V2    
-    /**
-    *  Launches stylus Ccpu-menu
-    *
-    *  @since 5.0
-    *  @param aClickPoint Point where stylus was clicked.
-    */
-    void LaunchStylusCcpuMenuL(TPoint &aClickPoint);
-    
-    void DynInitTouchMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane);
-#endif    
-
-    /**
-    * Has Japanese prediction input mode in PtiEngine
-    */
-    TBool HasJapanesePredictionInputMode() const;
-    
-    
-    void InitPreviewMenuPane(CAknFepUiInterfaceMenuPane* aMenuPane);
-
-public:
-    void StopDisplayingMenuBar();
-
-private:
-    void ConvertCharToKey(TChar aIn, TUint16& aKey) const;
-
-private:
-    // Data owned by this class
-    CAknFepKeyCatcherInterface* iKeyCatcher;
-    CAknFepIndicator* iIndicator;
-    CPeriodic* iShiftKeypressMonitor;
-    CAknFepLanguageManager* iLangMan;           // own
-    MAknFepManagerInterface* iCurrentFepUI;     // not own
-    CAknFepCaseManager* iCaseMan;
-    CAknFepInlineTextDecorator* iInlineTextDecorator;
-
-    CAknFepHashKeyManager* iHashKeyMan;
-    CPeriodic* iConcatenationTimer;
-    //fep delay the resource changed message for getting the updated coordinate from editor.
-    CAsyncCallBack iAsyncResouceChanged;
-
-    // shared data support
-    CAknFepSharedDataInterface* iSharedDataInterface;
-
-    MAknEditingStateIndicator*  iPreviousIndicator;
-    MAknEditingStateIndicator* iEditIndicatorAtLastUpdate;
-    TAknEditingState iPreviousEditingState;
-
-    TLanguage iUiLanguage;  // Symbian language code for UI language.
-    TLanguageCapabilities iLanguageCapabilities; // Input language and capabilities of the language.
-    TUint iFlags;
-    TUint iExtendedFlags;
-    TAknFepManagerState iFepManState;
-    TCoeInputCapabilities iInputCapabilities;
-    TInt iPermittedInputModes;
-    TInt iMode;
-    TInt iModeBefore;
-    TInt iCaseBefore;
-    TInt iResId;
-    TInt iVariantPermittedModes;
-    TInt iSpaceCharacterCode;               // adding for japanese
-    TInt iFullWidthSpaceCharacterCode;      // adding for japanese
-    TAknEditorNumericKeymap iAknEditorNumericKeymap;
-    TInt iAknEditorFlags;
-    TCursorSelection iUncommittedText;
-    RArray<TInt> iHashKeyLoop;
-    TBool iWesternPredictive;
-    TKeyPressLength iKeyRepeat;
-    TBool iIsAutoCompleteOn;				// for Auto Word Completion
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TInt iKeyBackSpaceHit;
-    TInt  iTypingCorrectionLevel;			// for typing correction level
-    TBool iIsNumberCandidateShown;			// for number candidates
-    TBool iPrimaryCandidate;    			// for primary candidate
-    TBool iKeyPressedDuringShift;           
-    TPtiKeyboardType iKeyboardType; 		// for checking the keyboard layout
-    TBool iSupressCursorMoveToEndChrKeyPressed; // For supressing cursor movement when SCT launched
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    TBool iJapanesePredictive;
-    TBool iDeviceSupportsRtlLanguage; // Could be removed
-    CIdle* iPostEventCheck; // Owned
-
-    TWidthChar iCharWidth;      // adding for japanese
-    CPtiEngine* iPtiEngine;     // adding for japanese
-
-    TUint iSimulateKey;
-    CApaDocument* iEmbedded; // User Dictionary
-    CAknNullService*  iNullService; // User Dictionary
-    CAsyncCallBack iAsyncOwnSimulateKey;
-    TInt iFreeSpaceOfEditor;
-    TBool iQwertyInputMode; // Not used. The value is always EFalse.
-    TBool iLongThai0Key;
-    TBool iFepFullyConstructed;
-    CAknEdwinState* iRememberEditorState; // For "editing options" submenu
-    TInt iRememberLength;   // For "editing options" submenu.
-    TInt iEditorCcpuStatus; // For "editing options" submenu.
-    TInt iCcpuMode;         // For "editing options" submenu    
-    TInt  iMultiTapTimer;   // for Japanese only: store MultiTap Timer
- 	CAknFepUiInterfaceMenuBar* iEditMenuBar;   // Remember menu bar instance for closing. 
- 	HBufC* iSctEditChars;   // Buffer for characters selected in the edit menu
- 	TPtr iEditCharsPtr;     // Pointer to the buffer that holds all the selected characters.
- 	TInt iStarScan;         // Remember scan code for star key.
-    TInt  iJapaneseQwertyFlags;   // for Japanese only: store Japanese Qwerty Flags
-
-    CPeriodic* iChrKeypressMonitor; // for Japanese only: Chr key monitor timer
-	TBool iLastKeyPressedWasHashKey;
-    TBool iStopProcessFocus;
-    TBool iClosePeninputUi;
-    /**
-     * User DB dialog
-     * Own, but doesn't need delete by myself
-     */
-    CAknFepUserdbDlg* iUserdbdlg;
-    
-    CAknNavigationDecorator* iTapGroup;
-
-    TInt iEditorCommandList[30];
-
-	TBool iComposChrFlag;
-    //User db view(phrase creation)
-    TInt iIsUserdbdlgActive;
-    /**
-     * * Used for handle key event for zhuyin method.(phrase creation)
-     * 
-     */
-    CZhuyinKeyHandler* iZhuyinKeyHandler;
-    CAknFepZhuyinAnalyser* iZhuyinAnalyser;
-    CZhuyinAnalyserDbFeed* iZhuyinAnalyserDb;
-
-#ifdef RD_SCALABLE_UI_V2
-
-    /**
-     * Used by itut spell mode, initial text in spell mode
-     */
-	HBufC* iSpellInitText;
-
-    /**
-     * Used by itut spell mode, initial text selection in spell mode, 
-     * whose position is relative to whole text in original editor
-     */
-	TCursorSelection iSpellInitCurSel;
-   
-    CAknFepPluginManager* iFepPluginManager;
-    
-    /**
-     * HKB predictive state before starting plugin IME
-     */
-    TBool                    iT9UsedBeforePluginInput;
-    
-    
-    /**
-    * Stylus ccpu menu
-    */ 
-    CAknFepUiInterfaceStylusPopUpMenu*     iStylusCcpuMenu; 
-    
-    /**
-    * Last known clik point, needed for stylus ccpu menu launch.
-    */   
-    TPoint                   iClickPoint;
-    
-    TBool iGainForeground;
-    
-    TBool iLoseForeAndGainFocus;
-    
-    TBool iNotifyPlugin;
-    
-    TBool iCancelPopupInQwerty;
-    
-    TBool iStarKeyPressed;
-    
-    TInt iLastChineseInputMode;
-    
-    // Indicate Stroke is used in QWERTY, when default input mode is Cangjie
-    TBool iStrokeUsedInQWERTY;
-    // Save that which editor use stroke
-    CAknEdwinState* iEditorStateStrokeUsed;
-
-    // Indicated focus change has done in closing SCT, the call back from framework
-    // will not lead to another focus change.
-    TBool iDisalbleFocusChangeForSCT;
-#endif //RD_SCALABLE_UI_V2
-
-    /**
-     * Long press clear key after close UI;
-     */
-    TBool                    iLongClearAfterCloseUI;      
-    
-    TBool iFeatureSupportedJapanese;    // Save the value of KFeatureIdJapanese
-
-	// stores a reference to previous editor state for pointer comparision
-	CAknEdwinState* iPreviousEditorState; 
-	   
-    CAknFepUIInterface* iUiInterface;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    CAknFepFnKeyManager     *iFnKeyManager; // Owned
-    TBool iIsFnKeyMapped;
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-    TBool iIsReverseFnkeyInput;
-#endif //__REVERSE_FN_KEY_SUPPORTED
-	
-	// Predictive QWERTY (XT9) changes ---->
-    //! The exact word tooptip shown above the inline editor when the exact word differs from the best guess candidate
-   // CAknPreviewPopUpController* iExactWordPopup;
-    
-    //! The contents of the exact word popup.
-	MAknFepUiWordPopupContent* iExactWordPopupContent;
-	MAknFepCandidatePopup*	iCandidatePopup;
-	TBool iSListLaunchedFromMenu;
-	TInt iAutoCmptnTailLength;
-	TInt iIsLastResourceEditMenu;
-	// Predictive QWERTY (XT9) changes <----
-#ifdef    __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__    
-    CAknFepUiInterfaceMenuBar* iOptionsMenuBar;
-#endif	
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    //phrase creation    
-    TInt iPhraseCreation;
-    TInt iPinyinPhraseCreation;
-    TInt iKeyStar;
-    TInt iEntryPhrase;
-    TBool iPenSupportMenu;
-    TFepSymbolOfHardwareOne iSymbolData;
-      
-    /**
-     * Flag for wether input mode is changed by shift+space
-     */
-    TBool iShiftAndSpace;
-    CAknFepThaiSCTSelector* iAknFepThaiSCTSelector;
-    
-public:
-
-    //the follow 8 functions for phrase creation 
-    /**
-     * Set the state to pinyin phrase creation
-     */
-    void PinyinPhraseCreation( TBool aPinyinPhraseCreation );
-    
-    /**
-     * Is the state is in pinyin phrase creation
-     *
-     * @return if not enabled, return EFalse
-     */
-    TBool IsPinyinPhraseCreation() const;
-    
-    /**
-     * Set the state to phrase creation
-     */
-    void PhraseCreation( TBool aPhraseCreation );
-    
-    /**
-     * Is the state is in phrase creation
-     *
-     * @return if not enabled, return EFalse
-     */
-    TBool IsPhraseCreation() const;
-    
-    /**
-     * Set the state to input phrase
-     */
-    void EntryPhrase( TBool aEntryPhrase );
-    
-    /**
-     * Is the state is in input phrase
-     *
-     * @return if not enabled, return EFalse
-     */
-    TBool IsEntryPhrase() const;
-    
-    /**
-     * Set the state to enable star key
-     */
-    void EnableKeyStar( TBool aEnable );
-    
-    /**
-     * Is the state is enable star key
-     *
-     * @return if not enabled, return EFalse
-     */
-    TBool IsEnableKeyStar() const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-public:
-   /**
-    * multitaps thru the chars in the SCT.
-    * @param aCallback, the callback when the timer expires
-    */
-    void MultitapThroughSCTCharL(TCallBack aCallBack);       	 
-private:        
-    TBool NumericResourceMultiTapTimerTimeoutL();    
-    
-    /**
-     * CAknFepManager::FindAndRemoveInputOptionsMenuItemL
-     * Helper method to check if the "Input options" menu item exists and
-     * if so, remove it from the menu pane.
-     *  Params - 
-     *      aMenuPane : pointer to the menu pane to be checked for the resource id
-     */
-    void FindAndRemoveInputOptionsMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane );
-    
-    /**
-      * CAknFepManager::FindAndRemoveEditSubMenuItemL
-      * Helper method to check if the "Edit Text" menu item exists and
-      * if so, remove it from the menu pane.
-      *  Params - 
-      *      aMenuPane : pointer to the menu pane to be checked for the resource id
-      */
-    void FindAndRemoveEditSubMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane );
-    
-    /**
-     * CAknFepManager::AddInputOptionsMenuItemL
-     * Helper method to add the "Input options" menu item in appropriate location
-     * Appropriate location is :
-     *  - if Avkon Help command exists, then immediately above it
-     *  - else if Avkon Exit command exists, then immediately above it
-     *  - else if there are 3 or more items in the Options menu, then 3rd from last
-     *  - else it is the last item. 
-     *  Params - 
-     *      aMenuPane : pointer to the menu pane to be checked for the resource id
-     */
-    void AddInputOptionsMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane );
-        
-private:        
-    CChrMultiTapTimer* iNumericResourceTimer;
-    HBufC* iResourceString;
-    TInt iChrCharIndex;    
-#ifdef __HALF_QWERTY_KEYPAD
-	TKeyEvent iHalfQwertyLastKeyEvent;
-// this variable is set whenever a long key press of chr happens
-	TBool iChrLongKeyPress;
-    TBool iFnCharInsertedForShift;	
-#endif //__HALF_QWERTY_KEYPAD
-    TInt iNumericResourceId;
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    TBool iHybridAplphaChangedToAlphanumeric;
-    CAknEdwinState* iLastFocusedEditor;
-    CAknEdwinState* iFepAwareDialogParentEditor;
-    /**
-     * Indicate that the focused control is destroyed.     
-     */  
-    TBool iFocusedItemDestroy;    
-    };
-
-/**
- *  Sets aFlag bitfield in iFlags
- */
-inline void CAknFepManager::SetFlag(TInt aFlag)
-    {
-    iFlags|=aFlag;
-    }
-
-/**
- * Clears aFlag bitfield in iFlags
- */
-inline void CAknFepManager::ClearFlag(TInt aFlag)
-    {
-    iFlags&=~aFlag;
-    }
-
-/**
- * Clears all flags down
- */
-inline void CAknFepManager::ResetFlags()
-    {
-    iFlags=0;
-    }
-
-/**
- * Returns ETrue if the aFlag bitfield in iFlags is set, EFalse if it
- * is clear
- */
-inline TBool CAknFepManager::IsFlagSet(TInt aFlag) const
-    {
-    return iFlags&aFlag;
-    }
-
-/**
- *  Sets aExtendedFlag bitfield in iExtendedFlags
- */
-inline void CAknFepManager::SetExtendedFlag(TInt aExtendedFlag)
-    {
-    iExtendedFlags|=aExtendedFlag;
-    }
-
-/**
- * Clears aExtendedFlag bitfield in iExtendedFlags
- */
-inline void CAknFepManager::ClearExtendedFlag(TInt aExtendedFlag)
-    {
-    iExtendedFlags&=~aExtendedFlag;
-    }
-
-/**
- * Clears all ExtendedFlags down
- */
-inline void CAknFepManager::ResetExtendedFlags()
-    {
-    iExtendedFlags=0;
-    }
-
-/**
- * Returns ETrue if the aExtendedFlag bitfield in iExtendedFlags is set, EFalse if it
- * is clear
- */
-inline TBool CAknFepManager::IsExtendedFlagSet(TInt aExtendedFlag) const
-    {
-    return iExtendedFlags&aExtendedFlag;
-    }
-
-/**
- * Returns previous case information
- */
-inline TInt CAknFepManager::CaseBefore() const
-    {
-    return iCaseBefore;
-    }
-    
-inline TBool CAknFepManager::IsChineseInputLanguage() const
-    {
-    return ( iLanguageCapabilities.iInputLanguageCode == ELangPrcChinese ||
-        iLanguageCapabilities.iInputLanguageCode == ELangHongKongChinese ||
-        iLanguageCapabilities.iInputLanguageCode == ELangTaiwanChinese);
-    }
-
-inline TBool CAknFepManager::IsKoreanInputLanguage() const
-    {
-    return iLanguageCapabilities.iInputLanguageCode == ELangKorean;
-    }
-inline TBool CAknFepManager::IsArabicInputLanguage() const
-    {
-    return ( iLanguageCapabilities.iInputLanguageCode == ELangArabic);
-    }
-/**
- * Returns the valid of Qwerty
- */
-inline TBool CAknFepManager::IsQwerty() const
-    {
-    return iQwertyInputMode;
-    }
-
-
-/**
- *  Sets aFlag bitfield in iCcpuFlags
- */
-inline void CAknFepManager::SetCcpuFlag(TInt aFlag)
-    {
-    iCcpuMode|=aFlag;
-    }
-
-/**
- * Clears aFlag bitfield in iCcpuFlags
- */
-inline void CAknFepManager::ClearCcpuFlag(TInt aFlag)
-    {
-    iCcpuMode&=~aFlag;
-    }
-
-/**
- * Clears all flags in iCcpuFlags
- */
-inline void CAknFepManager::ResetCcpuFlags()
-    {
-    iCcpuMode=0;
-    }
-
-/**
- * Returns ETrue if the aFlag bitfield in iCcpuFlags is set, EFalse if it
- * is clear
- */
-inline TBool CAknFepManager::IsCcpuFlagSet(TInt aFlag) const
-    {
-    return iCcpuMode&aFlag;
-    }
-     
-inline MAknFepManagerInterface* CAknFepManager::InternalFepUI()
-    {
-    return iCurrentFepUI;
-    }
-
-#ifdef RD_SCALABLE_UI_V2
-
-inline void CAknFepManager::SetNotifyPlugin( TBool aNotifyFlag )
-	{
-	iNotifyPlugin = aNotifyFlag;
-	}
-inline TInt CAknFepManager::PermittedModes() const
-	{
-	return iPermittedInputModes;
-	}    
-
-inline void CAknFepManager::RemeberEditorState()
-	{
-	iRememberEditorState = EditorState();
-	}  	
-
-inline TBool CAknFepManager::IsMfneEditor() const
-    {
-    return EditorType() == CAknExtendedInputCapabilities::EMFNEBased;
-    }
-
-inline TBool CAknFepManager::IsFindPaneEditor() const
-    {
-    return iAknEditorFlags & EAknEditorFlagFindPane;
-    }
-    
-inline CAknFepManager::TLanguageCapabilities CAknFepManager::InputLanguageCapabilities() const
-    {
-    return iLanguageCapabilities;
-    }
-
-inline TAknFepManagerState& CAknFepManager::FepManState()
-    {
-    return iFepManState;
-    }
-
-inline void CAknFepManager::SetCancelPopupInQwerty( TBool aCancelPopupInQwerty )
-    {
-    iCancelPopupInQwerty = aCancelPopupInQwerty;
-    }
-inline TInt CAknFepManager::LastChineseInputMode() const
-    {
-    return iLastChineseInputMode;
-    };
-#endif //RD_SCALABLE_UI_V2
-
-/**
-* Returns ETrue if Feature manager supports Japanese.
-*/
-inline TBool CAknFepManager::IsFeatureSupportedJapanese() const
-    {
-    return iFeatureSupportedJapanese;
-    }
-
-/**
-* Returns ETrue if Auto Word Completion is enabled in the edtior
-*/    
-inline TBool CAknFepManager::IsAutoCompleteOn() const
-    {
-    return iIsAutoCompleteOn;
-    }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-/**
-* Setes the current state from GS to the local state
-*/    
-    
-inline void CAknFepManager::SetAutoCompletionState(TInt aValue) 
-{
-	iIsAutoCompleteOn = aValue;
-}
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-/**
-* @return	TInt 	Typing correction level.
-*/
-inline TInt CAknFepManager::AdvancedPredictiveTypingCorrectionLevel() const
-	{
-		return iTypingCorrectionLevel;
-	}
-    
-/**
-* @return   ETrue   If the number candidate shown. EFalse otherwise.
-*/
-inline TBool CAknFepManager::IsAdvancedPredictiveNumberCandidateShown() const
-	{
-	return iIsNumberCandidateShown;
-	}
-  
-/**
-* @return   ETrue   If the number candidate shown. EFalse otherwise.
-*/
-inline TBool CAknFepManager::AdvancedPredictivePrimaryCandidate() const
-	{
-	return iPrimaryCandidate;
-	} 
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-inline TBool CAknFepManager::WasLastKeyPressAHashKey()
-	{
-	return iLastKeyPressedWasHashKey;
-	}
-    
-inline void CAknFepManager::SetLastPressedHashKeyStatus(TBool aStatus)
-	{
-	iLastKeyPressedWasHashKey = aStatus;
-	}
-	
-inline TCoeInputCapabilities& CAknFepManager::InputCapabilities()
-    {
-    return iInputCapabilities;    
-    }
-
-inline TFepSymbolOfHardwareOne CAknFepManager::SymbolInfoOfHardKey1()
-    {
-    return iSymbolData;
-    }
-inline TBool CAknFepManager::IsSupportNativeNumber() const
-    {
-    return ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic
-        || iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic
-        || iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari );
-}
-
-inline TBool CAknFepManager::IsSupportedAdaptiveSearch() const
-    {
-    return iAknEditorFlags & EAknEditorFlagAdaptiveSearch;
-    }
-    
-inline void CAknFepManager::SetGainForeground( TBool aGainForeground )  
-    {
-    iGainForeground = aGainForeground;
-    }
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepManagerInterface.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Declaration of core part of CAknFepLanguageManager class.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_MANAGER_INTERFACE_H__
-#define __AKN_FEP_MANAGER_INTERFACE_H__
-
-// INCLUDES
-#include <e32std.h>
-#include <w32std.h>
-#include <badesca.h>
-#include <txtfrmat.h>
-#include <eikon.hrh>                    //TAknEditorNumericKeymap
-#include <peninputcmdparam.h>
-#include "AknFepGlobalEnums.h"
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include <PtiDefs.h>
-#endif
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
-* MAknFepManagerInterface is a part of Japanese FEP.
-* 
-* 
-* @see CAknFepManager, other application
-*/
-class MAknFepManagerInterface
-    {
-    public: // Constructors and destructor
-        virtual ~MAknFepManagerInterface(){}
-
-public: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-    virtual void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, 
-                         TInt aKeyboardType = EPtiKeyboardNone) = 0;
-#else
-    virtual void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode) = 0;
-#endif    
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void SetCase(TCase aCase) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void HandleCommandL(TInt aCommandId) = 0;
-    virtual void HandleCommandL(TInt aCommandId, TInt aParam) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void CloseUI() = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void ExpireMultitapTimer() = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TBool IsValidNumericLongKeyPress(TInt aKey) const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void AddTextToUserDictionaryL(const TDesC& aText) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void GetFormatOfFepInlineText(TCharFormat& aFormat, 
-                                          TInt& aNumberOfCharactersWithSameFormat, 
-                                          TInt aPositionOfCharacter) const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TInt SupportLanguage(TInt aMode) const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void SetInputLanguageL(TLanguage aLanguage) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TBool IsValidShiftKeyPress() const = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsValidFnKeyPress() const = 0;
-    virtual TBool IsValidLongChrKeyPress() const = 0;
-#endif
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void SetEditorContext(TInt aContext) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void ActivateUI() = 0;
-
-    /**
-     * Set text to Fep aware editor
-     * 
-     * @since 3.2
-     */
-    virtual void SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/) = 0;
-
-    /**
-     * Get max text length that Fep aware editor can contain
-     * 
-     * @since 3.2
-     */
-    virtual TInt EditorMaxLength() = 0;
-    
-    /**
-     * Screen resolution or layout change notification
-     * 
-     * @since 3.2
-     */
-    virtual void ResourceChanged(TInt aType) = 0;
-        
-    /**
-     * Set underlining FepUI interface
-     * 
-     * @since 3.2
-     */
-    virtual void SetNextFepUI(MAknFepManagerInterface* /*aNextUi*/) = 0;
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	virtual void SetStarKeyFlag( TBool aSet ) = 0;
-
-    };
-#endif // __AKN_FEP_MANAGER_INTERFACE_H__
-// End of file
--- 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
--- a/fep/aknfep/inc/AknFepPanic.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*       Panic definitions.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#if !defined(__AKNFEPPANIC_H__)
-#define __AKNFEPPANIC_H__
-
-#include <e32std.h>
-
-enum TAknFepPanic
-    {
-    EAknFepPanicCurrentSelectionOutsideVisibleCandidates_unused,
-    EAknFepPanicAttemptedSelectionOutsideVisibleCandidates_unused,
-    EAknFepPanicAttemptedSelectionOutsideMaxCandidates,
-    EAknFepPanicAttemptedSetItemTextOutsideMaxCandidates_unused,
-    EAknFepPanicAttemptedSetModeOutsideMaxCandidates_unused,
-    EAknFepPanicAttemptedLayoutOutsideMaxCandidates,
-    EAknFepPanicAttemptedLayoutOutsideVisibleCount_unused,
-    EAknFepPanicCurrentSelectionFallsOutsideNewVisibleCount,
-    EAknFepPanicCurrentSelectionFallsOutsideCandidates,
-    EAknFepPanicNewVisibleCountExceedsRange_unused,
-    EAknFepPanicCandidatesExceedVisibleCount,
-    EAknFepPanicCandidatesEmpty,
-    EAknFepPanicNonPermittedEditorMode,
-    EAknFepPanicSizeChangedOutsideRange,
-    EAknFepPanicNoPermittedEditorModesAvailable,
-    EAknFepPanicNotInChina,
-    EAknFepPanicNoHandleToFepAwareTextEditor,
-    EAknFepPanicFindModeSavedToNonFindEditor,
-    EAknFepPanicMoreCandidatesWithToneMarkThanWithout,
-    EAknFepPanicSelectionMustBeZeroIfInInputPane,
-    EAknFepPanicNotInsideInlineEdit,
-    EAknFepPanicNoCaseManager,
-    EAknFepPanicBadInputState,
-    EAknFepPanicNoUiManager,
-    EAknFepPanicNoCandidatePane_unused,
-    EAknFepPanicCandidatePaneNotSupportScrollDirection_unused,
-    EAknFepPanicNotSupportKey,
-    EAknFepPanicBadCase,
-    EAknFepPanicBadCursorNavigationState,
-    EAknFepPanicCharPosOutOfRange,
-    EAknFepPanicNotHandleHashKey,
-    EAknFepPanicSetWindowShapeFail, // for two line UI container window creation
-    EAknFepPanicIllegalNumberModeKeymapping,
-    EAknFepPanicInvalidEditorState
-#ifdef RD_HINDI_PHONETIC_INPUT	
-    ,EAknFepPanicNoValidPtiEngine,
-    EAknFepPanicNoValidFepManager
-#endif
-    };
-
-GLDEF_C void AknFepPanic(TAknFepPanic aPanic);
-
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepPlugin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:           
-*       CAknFepPlugin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_PLUGIN_H__
-#define __AKN_FEP_PLUGIN_H__
-
-#include <fepplugin.h>
-
-class CAknFepPlugin : public CCoeFepPlugIn
-	{
-public:
-	static CAknFepPlugin* NewL();
-
-public:	 // From CCoeFepPlugIn
-	/** Creates a fully constructed object of CCoeFEP.
-	* @param aConeEnvironment	A reference to the application's control environment.
-	* @param aFepParameters FEP parameters.
-	* @return A pointer to the newly created object.
-	*/
-	CCoeFep* NewFepL(CCoeEnv& aConeEnvironment, const CCoeFepParameters& aFepParameters);
-
-	/** Runs the FEP settings dialog. 
-	*
-	* @param aConeEnvironment A reference to the application's control environment.
-	*/
-	void SynchronouslyExecuteSettingsDialogL(CCoeEnv& aConeEnvironment);
-	};
-
-#endif // __AKN_FEP_PLUGIN_H__
-
-// End of file
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepPluginManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1153 +0,0 @@
-/*
-* Copyright (c) 2003 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 __AKN_FEP_PLUGIN_MANAGER__
-#define __AKN_FEP_PLUGIN_MANAGER__
-
-// INCLUDES
-#include <gulicon.h>
-#include <barsread.h>
-#include <aknfeppensupportinterface.h>
-#include <peninputclient.h>
-#include <aknextendedinputcapabilities.h>
-#include <eikedwob.h>          // for MEikEdwinObserver
-
-#include "AknFepGlobalEnums.h"
-#include <aknfeppeninputenums.h>
-#include "AknFepPluginMenuManager.h"
-#include "AknFepSharedDataInterface.h"
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"
-#include <peninputsrveventhandler.h>
-
-// FORWARD DECLARATIONS
-//class MPeninputServerEventHandler;
-class MAknFepManagerInterface;
-class CAknFepUiSpellContainer;
-class CPenInputGSInterface;
-
-// CLASS DECLARATION
-
-
-/** 
- * Plugin command type
- */
-enum TPluginCmd
-    { 
-    EPluginCloseMode,
-    EPluginSyncFepAwareText,
-    EPluginSetDataQueryShown,
-    EPluginActivate,
-    EPluginMenuCmd,
-    EPluginFocusChanged,
-    EPluginResourceChanged,
-    EPluginFaseSwap,
-    EPluginKeyEvent,
-    EPluginUpdateIndicator,
-    EPluginActivateInGlobalNote,
-    EGainForeground,
-    ELostForeground,    
-    EPluginEditorActivate,
-    EPluginForegroundChanged,
-    EPluginFocusItemDestroy,
-    EPluginLanguageChanged,
-    EPluginPreview,
-    EPluginPromptChanged,
-    EPluginShowCandidate,
-    EPluginShowTooltip,
-    EPluginHideTooltip
-    };
-
-/** 
- * Plugin synchronization type
- */
-enum TPluginSync
-    { 
-    EPluginSyncCurSel,
-    EPluginSyncUpdatedText,
-    EPluginSyncAll
-    };
-    
-#ifdef RD_SCALABLE_UI_V2
-
-/**
- * CAknFepPluginManager class.
- *
- *  @lib AknFep.lib
- *  @since 2.8
- */
-class CAknFepPluginManager : 
-    public CBase,
-    public MAknFepPenSupportInterface,
-    public MPeninputServerEventHandler,
-    public MEikEdwinObserver
-    { 
-public:
-	
-	/**
-	 * Simulate event mode
-	 * @remark: Used in SubmitUiPluginTextL()
-	 */	
-	enum TSimulateEventMode
-		{
-		EIgnor,
-		ERawEvent,
-		EKeyEvent	
-		};
-		
-     /**
-     * NewL first phase construction
-     *
-     * @param aFepMan fep manager
-     *
-     */
-    static CAknFepPluginManager* NewL( CAknFepManager& aFepMan,
-                                      CAknFepSharedDataInterface& aSharedData,
-                                      CAknFepLanguageManager& aLangMan,
-                                      CAknFepCaseManager& aCaseMan );
-
-     /**
-     * Destructor
-     */
-    virtual ~CAknFepPluginManager();
-    
-private:
-
-     /**
-     * private constructor
-     */
-    CAknFepPluginManager( CAknFepManager& aFepMan,
-                         CAknFepSharedDataInterface& aSharedData,
-                         CAknFepLanguageManager& aLangMan,
-                         CAknFepCaseManager& aCaseMan );     
-    
-     /**
-     * Construct
-     *
-     * @param aFepMan fep manager
-     *
-     */
-    void ConstructL();
-
-public :
-     
-    enum TSpellCBA
-        {
-        ESpellCBANone,
-        ESpellCBACancelEmpty,
-        ESpellCBAOkCancel,
-        };
-    
-public:
-
-// From MAknFepPenSupportInterface
-    
-    /**
-     *  From MAknFepPenSupportInterface
-     *  Activate pen input method
-     *
-     *  @since 3.2
-     *  @Return None
-     */
-    void ActivatePenInputL();
-
-    /**
-     *  From MAknFepPenSupportInterface
-     *  Deactivate pen input method
-     *
-     *  @since 3.2  
-     *  @Return None
-     */
-    void DeactivatePenInputL();
-
-// From MPeninputServerEventHandler
-        
-    /**
-     * From MPeninputServerEventHandler
-     * Handle pen input server events.
-     *
-     * @since 3.2
-     * @param aEventId Event to handle.
-     * @return ETrue If server event handled
-     */
-    TBool HandleServerEventL(TInt aEventId);
-    
-    /**
-     *  Handle events from FEP
-     *  suggested mode.
-     *  
-     *  @since 3.2
-     *  @param aEventType, event type from FEP
-     *  @param aEventData, event data from FEP
-     *  @return ETrue successful, EFalse otherwise
-     */
-    void HandleEventsFromFepL( TInt aEventType, TInt aEventData );
-
-    /**
-     *  Change current input method to plugin input method with
-     *  suggested mode.
-     *  
-     *  @since 3.2
-     *  @return ETrue successful, EFalse otherwise
-     */
-    TBool TryChangePluginInputModeByModeL(TPluginInputMode aSuggestMode, TInt aOpenMode, 
-                                          TInt aSuggestRange);
-    
-    /**
-     *  Close plugin input mode, reset iPluginInputMode
-     *  to EPluginInputModeNone
-     *
-     *  @since 3.2
-     *  @param aRestore, If ETrue, restor rembered HKB mode
-     *  @return None
-     */
-    void ClosePluginInputModeL(TBool aRestore);
-    
-        /**
-     *  Close plugin input UI, only close UI
-     *
-     *  @param aResetState If ETrue, reset UI state
-     *  to initial.
-     *  @return None.
-     */
-    void ClosePluginInputUiL(TBool aResetState);
-       
-    /**
-     * Handle resource change.
-     * 
-     * @param aType The resource type
-     * @return None.
-     */
-    void OnResourceChangedL(TInt aType);
-         
-    /**
-     *  Synchronize plugin UI text with editor
-     *
-     *  @since 3.2
-     *  @return None
-     */
-    void SyncFepAwareText( TPluginSync aSyncType = EPluginSyncCurSel, TBool aSendNow = ETrue );
-
-    /**
-     * Processes commands from the edit menu
-     * 
-     * @since 3.2
-     * @param aCommandId The menu command id
-     * @return None.
-     */
-    void ProcessMenuCommandL(TInt aCommandId);
-
-    /**
-     * Handle key events
-     * 
-     * @since 3.2
-     * @param aCommandId The key id
-     * @return None.
-     */
-    void HandleKeyEventL(TInt aKeyId);
-    
-    /**
-     * initialize the edit menu depending on fep and editor state
-     * 
-     * @since 3.2
-     * @param aMenuPane The pointer to menu pane
-     * @return None.
-     */
-    void InitMenuPaneL( CAknEdwinState* aEditorState, 
-        CAknFepUiInterfaceMenuPane* aMenuPane, TInt aResourceId );
-    
-    /**
-     * Handles notifications that the UI has changed focus
-     * 
-     * @since 3.2
-     * @param aFepFullyConstructed The flag of fep fully constructed
-     * @return None.
-     */
-    void OnFocusChangedL( TBool aGainForeground );
-
-            
-    /**
-     * Set ICF data
-     *
-     * @since 3.2
-     * @param aTextChanged If editor text changed
-     * @param aIcfData ICF data
-     * @return None
-     */
-    void SendIcfDataL(  TPluginSync aSyncType = EPluginSyncCurSel );            
-    /**
-     * Set editor cursor selection according plugin UI 
-     * cursor state
-     *
-     * @since 3.2
-     * @param aCurSel Cursor position.
-     * @param aSyncCursor ETrue if plug in UI need update cursor, EFalse otherwise
-     * @return None
-     */
-    void SetCursorSelectionL(const TCursorSelection& aCurSel, TBool aSyncCursor);
-    
-    HBufC*  GetNumberKeymapResource(TInt aCaseMode);
-    
-    HBufC*  DoGetNumberKeymapResourceL(TInt aCaseMode);
-    
-    MAknFepManagerInterface* CurrentFepInputUI();
-    
-    void SetFingerMatchSelectionState(TBool aMatchStateOn);
-    TBool IsVisible();
-    TBool DoNextCandidates();
-    void DoPreviousCandidates();
-    // send all predictive candidates at once
-    void ShowAllCandidates();
-    
-    void ResetCandidateList();
-    
-    void UpdateITUTIndicator();
-    
-    void SetITUTSpellingStateL(TBool aState);
-    
-    void DisplaySpellEditor(const TInt aEditorFlag, const TDesC& aInitText, 
-                            TCursorSelection aCurSel);
-    void DisplaySpellEditorL(const TInt aEditorFlag, const TDesC& aInitText, 
-                           TCursorSelection aCurSel);                            
-    
-    void DestroySpellEditor();
-    
-    HBufC* SpellTextInput();
-    void SetTCursorSelection();
-    
-    void HandleEdwinEventL(CEikEdwin* , TEdwinEvent aEventType);
-    
-    TInt GetSoftKeyResID();
-    
-    void HasNoFreeSpace();
-
-    TBool EnterMatchSelectionState();
-    
-    TPluginInputMode PluginInputMode();
-    
-    void UpdateCaseMode();
-    
-    TBool IsGlobleNotes();
-    TBool IsDimed();
-    /**
-     *  Save the cursor visibility. This function is called from fep side, 
-     *  because of sync cursor visibility
-     *
-     *  @since v5.0
-     */
-    void SetCursorVisibility(TBool aVisibility, TBool aReportPlugin = EFalse);
-    /**
-     * Get the correct indicator for VKB;
-     *
-     * @return The correct indicator state for VKB.     
-     */
-    TAknEditingState VKBIndicatorState( TAknEditingState aOldState );
-    void ClosePeninputSetting();
-
-    /**
-     * Show tooltip on FSQ to show the best guess word shown inline,
-     * when it is necessary
-     *
-     * @param aText The tooltip text to be displayed
-     * @return None
-     */
-    void ShowTooltipOnFSQL( TInt aSecondaryIdx );    
-
-    /**
-     * Hide tooltip on FSQ if necessary
-     *
-     * @return None
-     */
-     void HideTooltipOnFSQL();  
-     
-    /**
-     * Open a candidate list to show contents in aItemArray
-     *
-     * @param aCandidateList ITI candidate data
-     * @return None
-     */
-    void ShowCandidateListL( TFepITICandidateList aCandidateList );
-    
-    /**
-     * Hide candidate list
-     *
-     */
-    void HideCandidateListL();
-
-    /**
-     * Commit candidate word on FSQ
-     * 
-     * @param aIndex the index in candidate lists;
-     * @return None
-     */    
-    void CommitCandidateWordOnFSQL( TInt aIndex );
-    
-    /**
-     * Check if ITI features is enabled when FSQ is opened.
-     */
-    TBool EnableITIOnFSQ();
-
-    /**
-     * Check if ITI can be supported by FSQ.
-     */
-    TBool IsSupportITIOnFSQ();
-    
-    /**
-     * Restore some configuration after closing FSQ.
-     *     
-     */
-    void ResetItiStateL();    
-
-/*    
-#ifdef RD_TACTILE_FEEDBACK
-    TBool VKBIsOpened();
-#endif // RD_TACTILE_FEEDBACK
-*/
-
-    void HandleiDimGainForeground(TBool aGain);
-
-public: // inline    
-    
-    /**
-     * Get current plugin input UI
-     *
-     * @since 3.2
-     * @return The pointer to MAknFepManagerInterface
-     */      
-    inline MAknFepManagerInterface* CurrentPluginInputFepUI();
-    
-    /**
-     * Get current plugin input mode
-     *
-     * @since 3.2
-     * @return current plugin input mode
-     */      
-    
-    inline TBool PluginNativeRange();
-    
-    inline void SetPluginNativeRange( TBool aPluginNativeRange );
-    
-    inline TBool SyncWithPluginRange();
-    
-    inline RPointerArray<HBufC>& MatchCandidateList();    
-
-    inline TBool IsMatchState();  
-    
-    inline TBool IsSpellVisible();
-    
-    inline void SetCursorSelection(TCursorSelection& aCursorSel); 
-    
-    inline TCursorSelection CursorSelection(); 
-    
-    inline void SetCaseUpdatesSupressed(TBool aCaseUpdatesSupressed);
-    inline TBool CaseUpdatesSupressed();
-    
-    inline void SetBeforeSpell(TBool aBeforeSpell);
-    inline TBool BeforeSpell();
-    inline HBufC* GetSpellText();
-    inline void SpellText(HBufC* aSpellText);
-    inline TBool IsNonLatinLanguage(TLanguage aLang);
-    inline TInt PreviousPermitMode();
-    /**
-     *  In T9 predictive text input, if user press "Spell" button, a edit word query dialog is opened.  
-     *  This Flag is set for this case to indicate whether edit wod query dialog is opened.
-     *  @param aIsEditWordQueryDlg  ETrue means dialog is open,
-                                    EFalse means dialog is not open.
-     *  @since v5.0
-     */    
-    inline void SetInEditWordQueryFlag(TBool aIsEditWordQueryDlg );    
-    void LaunchPenInputLanguageSelectionL( TBool aLaunchedByTouchWin = EFalse );
-    void LaunchPenInputRecognitionWithDictionarySelectionL();
-  inline TBool IsInGlobleNoteEditor();
-    void SetMenuState(TBool aUpdateEditor = ETrue);
-    void ResetMenuState(TBool aUnDim = ETrue);
-    
-    /**
-     * When ITI setting opened, set this flag to ETrue
-     *  
-     * @param aOpen  ETrue means dialog is open,
-     *               EFalse means dialog is not open.
-     * @return None  
-     */    
-    inline void ITISettingDialogOpen( TBool aOpen );
-    
-    /**
-     * Check if tooltip box on FSQ is opened.
-     *
-     * @return if ETrue: Tooltip box on FSQ is enabled.
-     */    
-    inline TBool IsTooltipOpenOnFSQ();
-private: 
-
-    /**
-     *  Initialize plugin UI, set permitted ranges, primary
-     *  range, case mode and etc.
-     *  
-     *  @since 3.2
-     *  @Return None
-     */
-    void InitializePluginInputL(TInt aOpenMode, TInt aSuggestRange, TBool aCleanContent);
-
-    /**
-     * Launch plugin menu
-     *
-     * @since 3.2
-     * @param aResource Menu resource id.
-     * @return None
-     */
-    void LaunchPenInputMenuL(TInt aResourceId, TBool aRemeber = ETrue);
-        
-    /**
-     *  Show pen input language setting of general setting view
-     *
-     *  @since 3.2
-     *  @return None
-     */
-        
-    /**
-	 *  Show pen input setting of general setting view
-     *  @since 3.2
-     *  @param aData Key data
-     *  @return None
-     */
-    void LaunchPenInputSettingL();
-       
-    /**
-     * Parse editor text passed to plugin ICF
-     * Only return current paragraph of current cursor position.
-     *
-     *  @since 3.2
-     *  @param aBuffer Editor text
-     *  @param aCurrent Current cursor position.
-     *  @param aFrom Returned paragraph start pos.
-     *  @param aTo Returned paragraph end pos.
-     *  @return None
-     */
-    void ParseInputContextContent(TDes& aBuffer, TInt aCurrent, 
-                                  TInt& aFrom, TInt& aTo);
-    
-                                      
-    /**
-     *  Submit text input from plugin UI to editor
-     *
-     *  @since 3.2
-     *  @param aData Key data
-     *  @param aForcedMode Forced simluate event mode.
-     *  @return None
-     */
-    void SubmitUiPluginTextL(const TDesC& aData, 
-    						 TSimulateEventMode aForcedMode = EIgnor);
-
-    /**
-     *  Handle key event sent from pen input server
-     *
-     *  @since 3.2
-     *  @param aData Key data
-     *  @return None
-     */
-    void OnPenInputServerKeyEventL(const TDesC& aData);   
-    
-    /**
-     *  Sync indicator with plugin range
-     *  
-     *  @since 3.2
-     *  @Return None
-     */
-    void SyncIndicatorWithPluginRangeL();
-     
-    /**
-     *  Get current suggest mode
-     *  
-     *  @since 3.2
-     *  @param aSuggestMode The mode suggested
-     *  @Return None
-     */    
-    TBool GetCurSuggestMode( TPluginInputMode& aSuggestMode );
-    
-    /**
-     *  Connect server
-     *  
-     *  @since 3.2
-     *  @Return ETrue If connection sucess
-     */
-    TBool ConnectServer();
-    
-    /**
-     *  Notify layout
-     *  
-     *  @since 3.2
-     *  @param aOpenMode The current input mode
-     *  @param aSuggestRange The suggest range
-     *  @Return None
-     */
-    void NotifyLayoutL(TInt aOpenMode, TInt aSuggestRange, TBool aCleanContent);
-    
-    /**
-     *  verify if mode switch button enable
-     *  
-     *  @since 3.2
-     *  @Return ETrue if mode switch button enable
-     */
-    TBool IsEnableModeSwitchBtn();
-    
-    /**
-     *  verify if setting buttons enable
-     *  
-     *  @since 3.2
-     *  @Return ETrue if setting buttons enable
-     */
-    TBool IsEnableSettingBtn();
-    
-    /**
-     *  Notify layout the editor's keymapping
-     *  
-     *  @since 3.2
-     *  @Return None
-     */
-    void NotifyLayoutKeymappingL();
-             
-    /**
-	 *  Test data query show status
-     *  @since 3.2
-     *  
-     *  @return ETrue if data query is showing now, EFalse otherwise
-     */
-    TBool IsDisplayDataQuery();
-    
-    /**
-	 *  Show pen input setting of general setting view
-	 *
-     *  @since 3.2
-     *  @param aForce ETrue means adjusting data query no matter current showing status,
-                      EFalse means adjusting data query window only first time
-     *  @return None
-     */
-    void RepositionDataQuery(TBool aForce);
-    
-    /**
-     * Timer procedure for adjust data query position
-     *
-     * @param aPtr The pointer of CAknFepManager itself
-     * @since 3.2
-     * @return 0.(meaningless)
-     */
-    static TInt AdjustDataQueryCallBackL(TAny *aPtr);
-    
-    
-    static void FepObserverHandleCompletionOfTransactionL(MCoeFepObserver& aFepObserver);
-    
-    void CreateFingerItutChineseUiL();
-
-    /**
-     * Launch Hwr Training UI
-     * 
-     * @since 3.2
-     * @return None
-     */
-    void LaunchHwrTrainUiL();
-    
-    TBool GetIndicatorImgID(const TInt IndicatorUID,TInt &aImage, TInt &aMask);
-    TBool GetIndicatorImgIDL(const TInt IndicatorUID,TInt &aImage, TInt &aMask);
-    
-    void SetPromptText( TBool aCleanContent = ETrue );
-    
-    void SetIcfAlignment();
-    
-    void ConvertDigitToDigittype(TDigitType& digittype,TDes& aConvertedNumeral);
-
-    void GetAllPredictiveCandidate();
-    void GetAllPredictiveCandidateL();
-    
-    void AddCurrentWinToOpenListL();
-    
-    void AddWinToOpenListL( RDrawableWindow* aWin);
-    
-    void RemoveCurrentWinFromOpenList();
-    
-    void RemoveLastFocusedWinFromOpenList();
-    
-    TBool IsCurrentWindInOpenList();
-    
-    TBool ExistInlineText();
-    
-    TBool SetSyncCurSelIcfDataL( TFepInputContextFieldData& aIcfData );
-    
-    TBool SetSyncIcfDataL( TFepInputContextFieldData& aIcfData, 
-                          const TDesC& aLastEditorContent,
-                          const TDesC& aCurrentEditorContent );
-                          
-    TBool TextInlined( const TDesC& aLastEditorContent, const TDesC& aCurrentEditorContent);
-    
-    TBool TextInserted( const TDesC& aLastEditorContent, const TDesC& aCurrentEditorContent);
-                                          
-    TBool TextDeleted( const TDesC& aLastEditorContent, const TDesC& aCurrentEditorContent);
-
-    TBool TextMultiTapped( const TDesC& aLastEditorContent, const TDesC& aCurrentEditorContent);
-
-	void AdjustDataCase( TDes& aData );
-	
-	TBool IsDimArrowKeys();
-	
-	void LaunchHelpL();
-	void DimAllModeAndCase(CAknFepUiInterfaceMenuPane* aMenuPane);
-	
-	TInt RepeatStringFromLeft(const TDesC& aSubmitData, TDes& aEditorData);
-
-    void InformMfneUiStatusL( TBool aOpened );
-    
-    void UpdatePredicState();
-                            
-    TBool NotifyInGlobalNoteEditorL();
-
-    TBool IsChineseIndicator( TAknEditingState aOldState );
-    
-    TBool IsEditorCursorDisabled();
-
-    /**
-     * Check if the cusror in editor is visible.
-     *
-     * @return ETrue: the cursos in editor is visible.
-     *         EFalse: the cursos in editor is invisible.
-     */
-    TBool IsEditorCursorVisible();
-    
-
-    /**
-     * Check if curor selection in editor is visible.
-     *
-     * @return ETrue: the cursos in editor is visible.
-     *         EFalse: the cursos in editor is invisible.
-     */    
-    TBool IsEditorCursorSelVisible();
-       
-    /**
-     * Get scan code from hw keymapping.
-     *
-     * @param aKeyCode unicode of each virutal key text.
-     */
-    TInt GetScanCodeFromHwKeymapping( TUint aKeyCode );
-    
-    /**
-     * Check if those keys are IIT-supported keys
-     *
-     * @param aKeyEvent The keys to be checked.
-     */
-    TBool IsITISupportedKey( const TKeyEvent& aKeyEvent );
-    
-    TPtiTextCase CaseForMappedCharacter(TChar aCharacter);
-    
-    TBool IsNeedToChangeTextCase( const TPtiTextCase& aTextCase );
-    
-    /**
-     * Do some configuration to make FSQ support ITI features
-     *     
-     */
-    void SetItiStateL();
-    
-    /**
-      * Config keyboard layout for ITI
-      *     
-      */
-    void SetItiKeyboardLayoutL();
-
-    /**
-     * Restore keyboard layout after closing FSQ.
-     */
-    void ResetItiKeyboardLayoutL();
-    
-    /**
-     * Restore predict state.
-     */
-    void RestorePredictStateL();
-    
-    /**
-     * Check if the keycode belongs to dead keys.
-     *     
-     * @param aKeyCode: key code to be checked
-     * @return ETrue: belongs to ETrue
-     *         EFalse: doesn't belong to EFalse;
-     */
-    TBool IsDeadKeyCode( TUint aKeyCode );
-    
-    /**
-     * Notify app touch window state.
-     *     
-     * @param aParam
-     * @return None
-     */
-    void NotifyAppUiImeTouchWndState( const TBool aTouchState );
-        
-    /**
-     * Check if current editor support partial screen IMEs
-     * 
-     * @return ETrue if support  
-     */
-    TBool IsEditorSupportSplitIme();
-    
-private:    // Data
-    
-    /**
-     * The reference of fep manager
-     */
-    CAknFepManager& iFepMan;
-    
-    /**
-     * The reference of language manager
-     */
-    CAknFepLanguageManager& iLangMan;
-    
-    /**
-     * The reference of case manager
-     */
-    CAknFepCaseManager& iCaseMan;
-    
-    /**
-     * The reference of shared data manager
-     */
-    CAknFepSharedDataInterface& iSharedData;
-
-
-    /**
-     * Current plugin UI interface
-     */
-    MAknFepManagerInterface* iCurrentPluginInputFepUI;
-
-    /**
-     * Current plugin input mode
-     */
-    TPluginInputMode iPluginInputMode;
-    
-    /**
-     * Current plugin primary range
-     */
-    TInt iPluginPrimaryRange;
-
-    /**
-     * Update editor cursor timer
-     */
-    CPeriodic* iAdjustDataQueryTimer;
-    
-    /**
-     * HKB predictive state before starting plugin IME
-     */
-    TBool iT9UsedBeforePluginInput;
-    
-    /**
-     * Indicating connection state to pen input server
-     */
-    TBool iAutoCompBeforePluginInput;
-    /**
-     * Indicating connection state to pen input server
-     */
-    TBool iPenInputSvrConnected;
-    
-    /**
-     * flags of layout UI submit status
-     */
-    TInt iLastSubmitCount;
-    
-    /**
-     * Data query showing status
-     */
-    TBool iDataQueryAlreadyShow;
-    
-    /**
-     * Plugin menu manager object
-     */
-    CAknFepPluginMenuManager* iPenInputMenu;
-
-    /**
-     * Pen input server handle
-     */
-    RPeninputServer iPenInputServer;
-    
-    /**
-     * flags of language has been changed by setting
-     */
-    TInt iCurLanguage;
-    
-    /**
-     * flags of fast swap by menu
-     */
-    TBool iFastSwapByMenu;
-    
-    MAknFepManagerInterface* iFingerItutChineseUI;
-    
-    TCursorSelection iCurSelPre;
-    
-    TCursorSelection iCurSelCur;
-    
-    TPluginSync iSyncType;
-    
-    HBufC* iIcfDataBuf;
-    
-    RPointerArray<HBufC> iCandidateList;
-    TInt iCandidateIndex;
-    
-    TFepInputCandidateList iSendList;
-    TFepInputAllCandidates iSendAllList;
-    
-    TBool iMatchState; 
-    
-    TInt iIndicatorImgID;
-    CAknFepUiSpellContainer* iSpell;
-    
-    TBool iSpellOn; 
-    
-    TCursorSelection iCursorSel;
-
-    TInt iIndicatorTextID;
-    
-    TBool iCaseUpdatesSupressed;
-    
-    TBool iBeforeSpell;
-    
-    HBufC* iSpellText;
-    
-    TSpellCBA iSpellCba;
-    TBool iPenUiDimmed;
-    TBool iIsForeground;
-    
-    TInt iPreDocumentLengthForFep;
-    TInt iOpenPenUiFlag;
-    
-    TBool iPluginNativeRange;
-    
-    TBool iSyncWithPluginRange;
-    
-    RArray<TInt> iOpenWindowList;
-    TInt         iLastFocusedWin;
-    
-    HBufC* iLastEditorContentBuf;
-    
-    TBool iModeChanged;
-    
-    TInt iPreviousCoseMode;
-    
-    TBool iLaunchMenu;
-    TBool iInMenu; // need to check whether it can be replaced by iLaunchMenu
-    MCoeFepAwareTextEditor* iCurEditor;
-    MCoeFepAwareTextEditor* iOldFepAwareEditor;
-
-    RDrawableWindow *    iLastDataQueryWin;
-    
-    TInt iDefaultOrientation;
-    RBuf iEventData;
-    TBool iDisableSyncText;
-    TBool iPendingSyncReq;
-    TBool iHasSWEventCap;
-    TInt iCurPermitModes;
-    TBool isLanuchSCT;
-    TBool iInGlobleNoteEditor;
-    TBool iOrientationChanged;
-    TBool iInlineStateOn;
-    TInt iCharStartPostion;
-    /**
-     * Cursor Visibility
-     */
-    TInt iEditorPriority;
-    TBool iDimGainForeground;
-    TBool iEnableIndicatorBtn;
-    TBool iEnableSettingBtn;
-    TBool iEnableArrowBtn;
-    TBool iCursorVisibility;
-    TBool iForegroundChange;
-    TBool iResourceChange;
-
-    TBool iLaunchHelp;
-    TInt iCurPermittedModes;
-    MCoeFepAwareTextEditor* iMfne;
-    TBool iMfneChanged;
-    TBool iIsInEditWordQueryDlg;
-    
-	TBool iPreferredUiMode;
-
-    CRepository* iAvkonRepository;
-    
-    TBool iClosePluginInputMode;
-	
-	TBool iOrientationChangedfromUI;
-	
-	CPenInputGSInterface* iGsInterface;
-    RBuf iPreCaption;
-    TBool iIsPassWord;
-
-    /**
-     * Store the last keyboard layout.
-     */
-    TInt iLastKeyboardLayout;
-    
-
-    /**
-     * Indicate if predictive setting dialog opened.
-     */
-    TBool iITISettingDialogOpen;
-    
-    /**
-     * Indicate if current input mode is qwerty mode.
-     */
-    TBool iIsITIConfigured;
-    
-    /**
-     * Indicate if tooltip on FSQ is opened
-     */       
-    TBool iTooltipOpenOnFSQ;    
-	
-	// Modify for bug ELZG-7WZC35 begin
-	TInt iAlignment;
-	// Modify for bug ELZG-7WZC35 end
-    };
-
-
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::CurrentPluginInputFepUI
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//           
-inline MAknFepManagerInterface* CAknFepPluginManager::CurrentPluginInputFepUI()
-    {
-    return iCurrentPluginInputFepUI;
-    }
-    
-inline TBool CAknFepPluginManager::PluginNativeRange()
-    {
-    return iPluginNativeRange;
-    }
-
-inline TBool CAknFepPluginManager::SyncWithPluginRange()
-    {
-    return iSyncWithPluginRange;
-    }
-
-inline void CAknFepPluginManager::SetPluginNativeRange( TBool aPluginNativeRange )
-    {
-    iPluginNativeRange = aPluginNativeRange;
-    }
-
-inline RPointerArray<HBufC>& CAknFepPluginManager::MatchCandidateList()
-    {
-    return iCandidateList;    
-    }
-
-inline TBool CAknFepPluginManager::IsMatchState()
-    {
-    return iMatchState;
-    }
-
-inline TBool CAknFepPluginManager::IsSpellVisible()
-    {
-    return iSpellOn;
-    }
-
-inline void CAknFepPluginManager::SetCursorSelection(TCursorSelection& aCursorSel)
-    {
-    iCursorSel = aCursorSel;
-    }
-    
-inline TCursorSelection CAknFepPluginManager::CursorSelection()
-    {
-    return  iCursorSel;
-    }
-    
-inline void CAknFepPluginManager::SetCaseUpdatesSupressed(TBool aCaseUpdatesSupressed)
-    {
-     iCaseUpdatesSupressed = aCaseUpdatesSupressed;
-    }
-
-inline TBool CAknFepPluginManager::CaseUpdatesSupressed()
-    {
-    return iCaseUpdatesSupressed;
-    }    
-
-inline void CAknFepPluginManager::SetBeforeSpell(TBool aBeforeSpell)
-    {
-    iBeforeSpell = aBeforeSpell;
-    }
-
-inline TBool CAknFepPluginManager::BeforeSpell()
-    {
-    return iBeforeSpell;
-    }
-    
-inline HBufC* CAknFepPluginManager::GetSpellText()
-    {
-    return iSpellText;
-    }
-
-inline void CAknFepPluginManager::SpellText(HBufC* aSpellText)
-    {
-    if (aSpellText)
-        {
-        delete iSpellText;
-        iSpellText = aSpellText->Alloc();   
-        }
-    else
-        {
-        delete iSpellText;
-        iSpellText = NULL;
-        }
-    }
-
-inline TBool CAknFepPluginManager::IsNonLatinLanguage(TLanguage aLang)
-    {
-    return (aLang == ELangRussian) || (aLang == ELangBulgarian ) ||
-           (aLang == ELangUkrainian) || (aLang == ELangUrdu ) ||
-           (aLang == ELangVietnamese) || (aLang == ELangThai ) ||
-           (aLang == ELangArabic) || (aLang == ELangFarsi ) ||
-           (aLang == ELangHebrew) ;
-    }
-    
-inline TInt CAknFepPluginManager::PreviousPermitMode()
-    {
-    return iCurPermitModes;   
-    }
-inline void CAknFepPluginManager::SetInEditWordQueryFlag(TBool aIsEditWordQueryDlg )
-    {
-    iIsInEditWordQueryDlg = aIsEditWordQueryDlg;
-    }
-    
-inline TBool CAknFepPluginManager::IsInGlobleNoteEditor()
-    {
-    return iInGlobleNoteEditor;    
-    }
-
-inline void CAknFepPluginManager::ITISettingDialogOpen( TBool aOpen )
-    {
-    iITISettingDialogOpen = aOpen;
-    }
-
-inline TBool CAknFepPluginManager::IsTooltipOpenOnFSQ()
-	{
-	return iTooltipOpenOnFSQ;
-	}
-#endif //RD_SCALABLE_UI_V2    
-
-#endif // __AKN_FEP_PLUGIN_MANAGER__
-
-// End of file
--- a/fep/aknfep/inc/AknFepPluginMenuManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Plugin menu manager class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPPLUGINMENUMANAGER_H
-#define C_AKNFEPPLUGINMENUMANAGER_H
-
-//Include
-#include <aknfepuimenus.h>
-
-//Foward declaration
-class CAknFepManager;
-
-/**
- *  Class of management of menu launched by plugin IME
- *
- *  @since S60 v3.2
- */
-class CAknFepPluginMenuManager: public CBase, public MAknFepUiInterfaceMenuObserver
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @return Pointer to created CAknFepPluginMenuManager object
-     */
-    static CAknFepPluginMenuManager* NewL(CAknFepManager* aManager);
-  
-    /**
-     * Destructor.
-     */
-    ~CAknFepPluginMenuManager();
-
-public:
-    /**
-     * Show speicfied menu pane
-     * 
-     * @since S60 v3.2
-     * @param aResourceId Menu resource id.
-     * @return
-     */
-    void ShowL(TInt aResourceId);
-
-    /**
-     * Get menu show status
-     * 
-     * @since S60 v3.2
-     * @return ETrue if show, otherwise EFalse.
-     */
-    TBool IsShowing();
-    
-    /**
-     * Hide current showed menu.
-     * 
-     * @since S60 v3.2
-     * @return None.
-     */
-    void Hide();
-    
-    /**
-     * Get current menu resource id.
-     * 
-     * @since S60 v3.2
-     * @return Resource id.
-     */
-    TInt MenuPaneId();
-
-public: 
-    // MAknFepUiInterfaceMenuObserver
-    /**
-     * Called when menu get or lose focus.
-     * The function does nothing, for FEP will handle menu command anyway.
-     * @since S60 v3.2
-     * @param aMenuControl The menu control
-     * @param aEmphasis ETrue to emphasize the menu, EFalse otherwise
-     * @return None.
-     */
-    virtual void SetEmphasis(CBase* aMenuControl, TBool aEmphasis);
-    
-    /**
-     * Process command user selects.
-     * The function does nothing, for FEP will handle menu command anyway.
-     * @since S60 v3.2
-     * @param 
-     * @return None.
-     */
-    virtual void ProcessCommandL(TInt aCommandId);
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @param aFepManager Fep manager object.
-     */
-    CAknFepPluginMenuManager(CAknFepManager* aFepManager);
-
-private:
-    /**
-     * Current menu bar. Own.
-     */
-    CAknFepUiInterfaceMenuBar*    iOptionMenuBar;
-    /**
-     * Fep manager. Not own.
-     */
-    CAknFepManager* iFepManager;
-    };
-
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepSharedDataInterface.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,714 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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 _AKNFEP_SHARED_DATA_INT_H__
-#define _AKNFEP_SHARED_DATA_INT_H__
-
-#include <e32base.h>
-
-#include <e32property.h>
-#include <cenrepnotifyhandler.h>
-class CRepository;
-
-class CAknFepRepositoryWatcher : public CBase, public MCenRepNotifyHandlerCallback
-    {
-public:
-    static CAknFepRepositoryWatcher* NewL(
-        const TUid aUid,
-        const TUint32 aKey,
-        CCenRepNotifyHandler::TCenRepKeyType aKeyType,
-        TCallBack aCallBack,
-        CRepository* aRepository);
-
-    static CAknFepRepositoryWatcher* NewL(
-        const TUid aUid,
-        TCallBack aCallBack,
-        CRepository* aRepository);
-
-    ~CAknFepRepositoryWatcher();
-
-    TUint32 ChangedKey();
-#ifdef RD_INTELLIGENT_TEXT_INPUT   
-    inline TBool IsGenericCenrepChange(){return iIsGeneric;}
-#endif    
-
-public: // from MCenRepNotifyHandlerCallback
-    void HandleNotifyInt    (TUint32 aKey, TInt aNewValue);
-    void HandleNotifyError  (TUint32 aKey, TInt aError, CCenRepNotifyHandler* aHandler);
-	void HandleNotifyGeneric(TUint32 aId);    
-
-private:
-    CAknFepRepositoryWatcher(
-        const TUid aUid,
-        const TUint32 aKey,
-        TCallBack aCallBack,
-        CRepository* aRepository);
-
-    void ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType);
-
-    void ConstructL();
-
-private:
-    TUid                    iUid;
-    TUint32                 iKey;
-    TUint32                 iChangedKey;
-    TCallBack               iCallBack;
-    CRepository*            iRepository;
-    CCenRepNotifyHandler*   iNotifyHandler;
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    TBool                   iIsGeneric;
-#endif    
-    };
-
-
-class CAknFepManager;
-
-class CAknFepSharedDataInterface : public CBase
-    {
-public:
-    /**
-     * Two phase constructor for this class
-     */
-    static CAknFepSharedDataInterface* NewL(CAknFepManager* aFepManager);
-
-    /**
-     * C++ Destructor
-     */
-    ~CAknFepSharedDataInterface();
-
-public:
-    /**
-     * Queries the value of PredictiveTextOn from shared data
-     *
-     * @return 1 for on or 0 for off
-     */
-    TInt PredictiveTextOn();
-
-    /**
-     * Queries the value of Japanese PredictiveTextOn from shared data
-     *
-     * @since 2.6
-     * @return 1 for on or 0 for off
-     */
-    TInt PredictiveTextJapaneseOn();
-
-    /**
-     * Queries the value of InputMode from shared data
-     *
-     * @since 2.6
-     * @return value of current input mode
-     */
-    TInt InputMode();
-
-    /**
-     * Sets the value of InputMode in shared data to the passed value
-     *
-     * @since 2.6
-     * @param aValue new value set to InputMode  shared data item which
-     *               represents the input mode currently being used
-     */
-    void SetInputMode(TInt aInputMode);
-
-    /**
-     * Queries the value of CangJieMode from shared data
-     *
-     * @since 3.0
-     * @return value of current input mode
-     */
-    TInt CangJieMode();
-
-    /**
-     * Sets the value of CangJieMode in shared data to the passed value
-     *
-     * @since 3.0
-     * @param aValue new value set to CangJieMode shared data item which
-     *               represents the input mode currently being used
-     */
-    void SetCangJieMode(TInt aNewCangJieMode);
-
-    /**
-     * Queries the value of iInputTextLang from shared data
-     *
-     * @return language code of currently used language
-     */
-    TInt InputTextLanguage();
-
-    /**
-     * Sets the value of InputTextLanguage in shared data to the passed value
-     *
-     * @param aValue new value set to InputTextLanguage shared data item which
-     *               represents the language code currently being used
-     */
-    void SetInputTextLanguage(TInt aValue);
-
-    /**
-     * Queries the value of iDisplayLang from shared data
-     *
-     * @return language code of currently display language
-     */
-    TInt DisplayLanguage();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Sets the Fn key state and copies it to Cenrep.
-     *
-     * @return Nothing
-     */
-    void SetFnKeyState(TInt aState);
-    TInt GetFnKeyState();
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-    /**
-     * Queries the value of secondary input language from shared data
-     *
-     * @return language code of currently used language
-     */
-    TInt InputTextLanguageSecondary();
-    /**
-     * Sets the value of secondary input language in shared data to the passed value
-     *
-     * @param aValue new value set to InputTextLanguageSecondary shared data item
-     *               which represents the language code currently being used
-     */
-    void SetInputTextLanguageSecondary(TInt aValue);
-#endif // FF_DUAL_LANGUAGE_SUPPORT
-#endif
-
-    /**
-     * Sets the value of PredictiveTextOn to 1 in shared data - this
-     * is used to represent predictive text being on
-     */
-    void SetPredictiveTextOn();
-
-    /**
-     * Sets the value of PredictiveTextOn to 0 in shared data - this
-     * is used to represent predictive text being off
-     */
-    void ResetPredictiveTextOn();
-
-    /**
-     * Sets the value of Japanese PredictiveTextOn to 1 in shared data
-     * - this is used to represent Japanese predictive text being on
-     *
-     * @since 2.6
-     */
-    void SetJapanesePredictiveTextOn();
-
-    /**
-     * Sets the value of Japanese PredictiveTextOn to 0 in shared data
-     * - this is used to represent Japanese predictive text being off
-     *
-     * @since 2.6
-     */
-    void ResetJapanesePredictiveTextOn();
-
-    /**
-     * Query if KAknFepScrollLatinPredictive feature is enabled in shared data.
-     *
-     * @since 2.6
-     * @return Value of KAknFepScrollLatinPredictive setting.
-     */
-    TInt ScrollLatinPredictiveCandidates() const;
-
-    /**
-     * Query if KAknFepSpaceWithScrollRight feature is enabled in shared data.
-     *
-     * @since 2.6
-     * @return Value of KAknFepSpaceWithScrollRight setting.
-     */
-    TInt SpaceWithScrollRight() const;
-
-    /**
-     * Query if KAknFepEnterWithScrollDown feature is enabled in shared data.
-     *
-     * @since 2.6
-     * @return Value of KAknFepEnterWithScrollDown setting.
-     */
-    TInt EntersWithScrollDown() const;
-
-    /**
-     * Query Qwerty input mode.
-     *
-     * @since 2.6
-     * @return Value of KAknQwertyInputModeActive setting.
-     */
-    TInt QwertyInputMode() ; //const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Reads Cenrep and returns the keyboard layout 
-     *
-     */
-    TInt KeyboardLayout() ;//const
-#endif
-    
-    
-    /**
-    * Returns a value indicating whether edit-submenu functionality should be 
-    * used in options menu.
-    *
-    * @since 3.1
-    * @return Value indicating whether edit submenu should be used.
-    */
-	TInt EditSubmenuInUse() const;
-	
-	/**
-    * Returns a value indicating whether edit-submenu functionality should be 
-    * used in options menu.
-    *
-    * @since 3.1
-    * @return Value indicating whether edit submenu should be used.
-    */	
-	TInt HashKeySelectionInUse();	
-
-    /**
-     * Multitap timer value. 
-     * Replaces the constant KMultiTapTimeoutMS in Japanese variant.
-     *
-     * @since 3.0
-     * @return Value of KAknFepMultiTapTimer setting.
-     */
-    TInt MultiTapTimer() const;
-    /**
-     * Japanese Qwerty Flags value. 
-     * Replaces the constant KAknFepJapaneseSpecialCharFlag in Japanese variant.
-     *
-     * @since 3.0
-     * @return Value of KAknFepJapaneseSpecialCharFlag setting.
-     */
-    TInt JapaneseQwertyFlags() const;
-
-    /**
-     * Get the last used plugin input mode
-     *
-     * @since 3.2
-     * @return Value of KAknFepLastUsedInput setting.
-     */
-    TInt PluginInputMode() const;
-
-    /**
-     * Replaces the last used plugin input mode
-     *
-     * @since 3.2
-     * @return Replace value of KAknFepLastUsedInput setting.
-     */
-    void SetPluginInputMode(TInt aId);
-
-
-    /**
-     * Get the last used plugin UI language
-     *
-     * @since 3.2
-     * @return Value of KAknFepLastUsedUILanguage setting.
-     */
-    TInt PluginUILanguage() const;
-
-    /**
-     * Replaces the last used plugin UI language
-     *
-     * @since 3.2
-     * @param aLanguage Replace value of KAknFepLastUsedUILanguage setting.
-     */
-    void SetPluginUILanguage(TInt aLanguage);
-
-
-    /**
-     * Get current pen input language
-     * @since 3.0
-     *
-     * @return Value of KSettingsPenInputLang
-     */
-    TInt PenInputLanguage() const;
-    
-    /**
-     * Replaces the value of number input mode
-     *
-     * @since 3.2
-     * @param aMode (KSettingsDefaultNumberMode or KSettingsIndicDefaultNumberMode)
-     * @param aValue a value
-     */
-	void SetDefaultNumberMode( TInt aMode, TInt aValue );
-
-    /**
-     * Returns a value of current clear direction.
-     *
-     * @since 3.2
-     * @return Value of KAknFepClearDirection setting.
-     */
-    TInt ClearDirection() const;
-
-    /**
-     * Set a value of current clear direction.
-     *
-     * @since 3.2
-     * @param aValue new value set to Clear Direction shared data item which
-     *               represents the direction currently being used
-     */
-    void SetClearDirection(TInt aValue);
-    /**
-     * Queries the value of PredictiveText Auto Word Completion state to be On from shared data
-     *
-     * @return 1 for on or 0 for off
- 	 * Since 5.0    
-     */
-	TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn();
-
-    
-    /**
-     * Sets the value of PredictiveText Auto Word Completion state to 1 in shared data - this
-     * is used to represent predictive text Auto Word Completion being on
- 	 * Since 5.0    
-     */    
-	void CAknFepSharedDataInterface::SetPredictiveTextAutoCompleteOn();
-
-
-    /**
-     * Sets the value of PredictiveText Auto Word Completion state to 0 in shared data - this
-     * is used to represent predictive text Auto Word Completion being off
- 	 * Since 5.0    
-     */    
-	void CAknFepSharedDataInterface::ResetPredictiveTextAutoCompleteOn();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-
-    /**
-     * Handles a change in predictive text Auto Word Completion setting from general settings
- 	 * Since 5.0    
-     */    
-	void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange();
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-  
-    /**
-     * Handles a change in predictive text Auto Word Completion setting from general settings
- 	 * Since 5.0    
-     */    
-	void HandlePredictiveTextAutoCompleteSettingGSChange();
-#endif	//
-
-    /**
-     * Returns a value of Hwr conversion ON/OFF.
-     *
-     * @since 3.2
-     * @return Value of KAknFepJapaneseHwrConversion value
-     */
-    TInt JapaneseHwrConversion() const;
-
-    /**
-     * Set a value of Hwr conversion ON/OFF.
-     *
-     * @since 3.2
-     * @param aValue new value set to Hwr conversion ON/OFF shared data item which
-     *               represents the conversion ON/OFF currently being used
-     */
-    void SetJapaneseHwrConversion(TInt aValue);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Queries the value of PredictiveText Typing Correction Level from shared data
-     *
-     * @return Typing Correction Level
- 	 */
-	TInt PredictiveTextTypingCorrectionLevel();
-
-    
-    /**
-     * Sets the value of PredictiveText Typing Correction Level state to aCorrectionLevel in shared data 
- 	 */    
-	void SetPredictiveTextTypingCorrectionLevel(TInt aCorrectionLevel);
-
-
-     /**
-     * Handles a change in predictive text Typing Correction Level setting.
- 	 */    
-	void HandlePredictiveTextTypingCorrectionLevelChange();
-
-    /**
-     * Queries the value of PredictiveText Number Candidate Shown state to be On from shared data
-     *
-     * @return 1 for shown or 0 for not shown
- 	 */
-	TInt PredictiveTextNumberCandidateShown();
-
-    
-    /**
-     * Sets the value of PredictiveText Number Candidate Shown state to 1 in shared data - this
-     * is used to represent predictive text Number Candidate Shown being shown.
- 	 */    
-	void SetPredictiveTextNumberCandidateShown();
-
-
-    /**
-     * Sets the value of PredictiveText Number Candidate Shown state to 0 in shared data - this
-     * is used to represent predictive text Number Candidate Shown being not shown.
- 	 */    
-	void ResetPredictiveTextNumberCandidateShown();
-
-
-    /**
-     * Handles a change in predictive text NumberCandidateShown setting.
- 	 */    
-	void HandlePredictiveTextNumberCandidateSettingChange();
-	
-	/**
-     * Queries the value of PredictiveText Primary candidate setting from shared data
-     *
-     * @return Primary candidate setting(0 for Exact or 1 for Suggested)
- 	 */
-	TInt PredictiveTextPrimaryCandidate();
-
-    
-    /**
-     * Sets the value of PredictiveText Primary candidate setting state to aPrimaryCandidate in shared data 
- 	 */    
-	void SetPredictiveTextPrimaryCandidate(TInt aPrimaryCandidate);
-
-
-     /**
-     * Handles a change in predictive text Primary candidate setting.
- 	 */    
-	void HandlePredictiveTextPrimaryCandidateChange();
-#endif	// RD_INTELLIGENT_TEXT_INPUT
-
-    TInt FepShowFsqPreviewStatus();
-
-    void SetFepShowFsqPreviewStatus(TInt aValue);
-
-    TInt FepShowVkbPreviewStatus();
-
-    void SetFepShowVkbPreviewStatus(TInt aValue);
-
-    TInt FepLastUseVkbModeForLandscape();
-
-    void SetFepLastUseVkbModeForLandscape(TInt aValue);
-
-    TBool AutoRotateEnabled();
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	/**
-	* Queries if numbers (and other characters found behind Fn) can be entered with long key press on QWERTY.
-	*/
-	TBool LongPressNumberEntryOnQwerty() const;
-	/**
-	* Queries if copy-pasting with shift+softkeys is available also on QWERTY.
-	*/
-	TBool ShiftCopyPastingOnQwerty() const;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef  RD_SCALABLE_UI_V2
-    /**
-     * Get a value of current default on screen vkb.
-     * It depends on input lanage is PRC/HW/TW Chinese.
-     *
-     * @return Value of current default on screen vkb
-     */
-    TInt DefaultOnScreenVKB();
-#endif
-    
-private:
-    /**
-     * C++ Constructor
-     */
-    CAknFepSharedDataInterface(CAknFepManager* aFepManager);
-    /**
-     * Second phase constructor for this class
-     */
-    void ConstructL();
-
-private:
-
-    /**
-     * Handles a change in hash key selection setting
-     */
-    static TInt HashKeySelectionNotification(TAny* aObj);
-    
-    /**
-     * Handles a change in input mode from general settings
-     */
-    static TInt InputModeChangeGSNotification(TAny* aObj);
-
-    /**
-     * Handles a change in input language from general settings
-     */
-    static TInt InputTextLangGSNotification(TAny* aObj);
-
-    /**
-     * Handles a change in predictive text setting from general settings
-     */
-    static TInt PredictiveTextSettingChangeGSNotification(TAny* aObj);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-
-    /**
-     * Handles a change in predictive text Auto Word Completion setting from general settings
- 	 * Since 5.0    
-     */    
-	static TInt PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj);
-#endif	// RD_PRED_AW_COMPLETION
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-    Handles the change in keyboard layout.
-    */
-    void HandleKeyboardLayoutChange();
-    /**
-     * Call back function to handle a change in keyboard layout.
-     */	
-    static TInt HandleKeyboardLayoutChangeNotification(TAny* aObj);
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-    /**
-     * Handles a change in predictive text Auto Word Completion setting from general settings
- 	 * Since 3.2    
-     */    
-	static TInt PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj);
-#endif	// RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Handles a change in Japanese predictive text setting from general settings
-     */
-    static TInt JapanesePredictiveTextSettingChangeGSNotification(TAny* aObj);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Handles a change in predictive text Typing Correction Level setting.
- 	 */    
-	static TInt PredictiveTextTypingCorrectionLevelChangeNotification(TAny* aObj);
-	
-	/**
-     * Handles a change in predictive text Number Candidate setting.
- 	 */    
-	static TInt PredictiveTextNumberCandidateSettingChangeNotification(TAny* aObj);
-	
-	/**
-     * Handles a change in predictive text Primary Candidate setting.
- 	 */    
-	static TInt PredictiveTextPrimaryCandidateChangeNotification(TAny* aObj);
-#endif	// RD_INTELLIGENT_TEXT_INPUT
-
-    /**
-     * Handles a change in qwerty input mode setting.
-     */
-    static TInt QwertyModeChangeNotification(TAny* aObj);
-
-    /**
-     * Handles a change in hash key selection
-     */
-    void HandleHashKeySelectionChange();
-    
-    /**
-     * Handles a change in input mode from general settings
-     */
-    void HandleInputModeGSChange();
-
-    /**
-     * Handles a change in input language from general settings
-     */
-    void HandleInputTextLanguageGSChange();
-
-    /**
-     * Handles a change in predictive text setting from general settings
-     */
-    void HandlePredictiveTextSettingGSChange();
-
-    /**
-     * Handles a change in Japanese predictive text setting from general settings
-     */
-    void HandleJapanesePredictiveTextSettingGSChange();
-
-    /**
-     * Call back function to handle a change in MultiTapTimer from general settings
-     */
-    static TInt MultiTapTimerChangeGSNotification(TAny* aObj);
-    /**
-     * Handles a change in MultiTapTimer from general settings
-     */
-    void HandleMultiTapTimerChangeGSNotification();
-
-    /**
-     * Call back function to handle a change in Japanese Qwerty Flags from general settings
-     */
-    static TInt JapaneseQwertyFlagsChangeGSNotification(TAny* aObj);
-    /**
-     * Handle change notification for Japanese Qwerty Flags. 
-     */
-    void HandleJapaneseQwertyFlagsChangeGSNotification();
-
-    /**
-     * Handles a change in qwerty input mode setting.
-     */
-    void HandleQwertyModeChangeNotification();
-    TInt NumberModeChangesGSNotification();
-
-    static TInt HandleRepositoryCallBack(TAny* aPtr);
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    static TInt HandleGenericRepositoryChange(TAny* aPtr);
-#endif    
-    static TInt HandleLocaleRepositoryCallBack(TAny* aPtr);
-
-    class CSubscriber : public CActive
-        {
-    public:
-        CSubscriber(TCallBack aCallBack, RProperty& aProperty);
-        ~CSubscriber();
-
-    public: // New functions
-        void SubscribeL();
-        void StopSubscribe();
-
-    private: // from CActive
-        void RunL();
-        void DoCancel();
-
-    private:
-        TCallBack   iCallBack;
-        RProperty&  iProperty;
-        };
-
-    CSubscriber*    iQwertyModeStatusSubscriber;
-    RProperty       iQwertyModeStatusProperty;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    CSubscriber*    iKeyboardLayoutStatusSubscriber;
-    RProperty       iKeyboardLayoutStatusProperty;
-#endif
-
-    friend class CSubscriber;
-
-private:
-    CAknFepManager* iFepManager; //not owned
-
-    CRepository*                iCommonEngineRepository;
-    CRepository*                iAknFepRepository;
-    CRepository*                iGsPenSettings;   //for global setting 
-    CRepository*				iLocaleRepository; // locale related settings
-    CRepository*                iSensorRepository;
-    CAknFepRepositoryWatcher*   iAknFepRepositoryWatcher;
-    CAknFepRepositoryWatcher*   iAknFepLocaleRepositoryWatcher;
-
-    TInt iSharedDataScrollLatinPredictive;
-    TInt iSharedDataSpaceWithScrollRight;
-    TInt iSharedDataEnterWithScrollDown;
-    
-    TInt iHashKeySelectionInUse;
-    };
-
-#endif
-
-// End of File
--- a/fep/aknfep/inc/AknFepThaiSCTSelector.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2003 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 __AKN_FEP_THAI_SCT_SELECTOR__
-#define __AKN_FEP_THAI_SCT_SELECTOR__
-
-#include <e32def.h>
-#include <e32base.h>
-
-enum AknFepSCTThaiGlyphTypes
-    {
-    EAknFepThaiCharNon,
-    EAknFepThaiCharCons,
-    EAknFepThaiCharLV,
-    EAknFepThaiCharFV1,
-    EAknFepThaiCharFV2,
-    EAknFepThaiCharFV3,
-    EAknFepThaiCharBV1,
-    EAknFepThaiCharBV2,
-    EAknFepThaiCharBD,
-    EAknFepThaiCharTone,
-    EAknFepThaiCharAD1,
-    EAknFepThaiCharAD2,
-    EAknFepThaiCharAD3,
-    EAknFepThaiCharAV1,
-    EAknFepThaiCharAV2,
-    EAknFepThaiCharAV3,
-    EAknFepThaiCharNonThai,
-    };
-
-class CAknFepThaiSCTSelector : public CBase
-    {
-    public:
-        
-        TInt ThaiSCRResourceId(TUint aPrevGlyph, TInt aKey);
-
-        static CAknFepThaiSCTSelector* NewL();
-        
-        ~CAknFepThaiSCTSelector();
-        
-    private:
-        
-        CAknFepThaiSCTSelector();
-
-        AknFepSCTThaiGlyphTypes ThaiGlyphType(TUint aGlyph);
-
-        TInt ThaiSctCharMap(enum AknFepSCTThaiGlyphTypes aGlyphType, TInt aKey);
-        
-    };
-
-#endif // __AKN_FEP_UI_THAI_CHARACTER_MAP_SELECTOR__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUIInputStateEntryMiniQwertyCangJie.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStateEntryMiniQwertyCangJie definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_CANGJIE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_CANGJIE_H__
-
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStateEntryMiniQwertyCangJie : 
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateEntryMiniQwertyCangJie(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-
-
-
-#endif __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_CANGJIE_H__
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepUIInputStateEntryMiniQwertyPinyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStateEntryMiniQwertyPinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_PINYINPHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_PINYINPHRASE_H__
-
-#include "aknfepuiinputminiqwertypinyinphrasebase.h"
-/**
- *  TAknFepInputStateEntryMiniQwertyPinyinPhrase class.
- *
- *  Implementation of Pinyin phrase creation entry  state 
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateEntryMiniQwertyPinyinPhrase: public TAknFepInputMiniQwertyPinyinPhraseBase
-    {
-public: 
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryMiniQwertyPinyinPhrase(
-            MAknFepUIManagerStateInterface* aOwner,
-            MAknFepUICtrlContainerChinese* aUIContainer );
-    /**
-     * From TAknFepInputStateEntryMiniQwertyPinyinPhrase
-     * Handle system key press
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-     TBool HandleKeyL( TInt aKey, TKeyPressLength aLength );
-     
-     /**
-      * Handling Command events.
-      * This Method is called by CAknFepUIManagerJapanese.
-      *
-      * @param aCommandId Command ID value
-      */
-     void HandleCommandL( TInt aCommandId );
-    };
-
-/**
- *  TAknFepInputStateEditinigMiniQwertyPinyinPhrase class.
- *  Implementation of Pinyin phrase creation  editing state 
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-
-class TAknFepInputStateEditinigMiniQwertyPinyinPhrase: public TAknFepInputMiniQwertyPinyinPhraseBase
-    {
-public: 
-
-    /**
-     * C++ default constructor
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEditinigMiniQwertyPinyinPhrase(
-            MAknFepUIManagerStateInterface* aOwner,
-            MAknFepUICtrlContainerChinese* aUIContainer );
-    /**
-     * From TAknFepInputStateEditinigMiniQwertyPinyinPhrase
-     * Handle system key press
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL( TInt aKey ,TKeyPressLength alength );
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_ENTRY_MINIQWERTY_PINYINPHRASE_H__
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepUIInputStateEntryThaiMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialThaiMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-
-#include "AknFepUIInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialThaiMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialThaiMultitap(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool TAknFepInputStateInitialThaiMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    };
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUIInputStateInitialIndicMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +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 TAknFepInputStateInitialIndicMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-#include "AknFepUiIndicEnums.h"
-/**
-*  This class  handles the multitap input for Indic languages.
-*  @lib avkonfep.dll
-*  @since Series 60 3.1
-*/
-class TAknFepInputStateInitialIndicMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    /**
-    * 
-    * Constructor for TAknFepInputStateInitialIndicMultitap.	
-    * @since 3.1M
-    * @return 
-    */
-    TAknFepInputStateInitialIndicMultitap(MAknFepUIManagerStateInterface* aOwner, 
-                                          TLanguage aLanguage); 
-public: //from TAknFepInputStateBase    
-    /**
-    * 
-    * Returns the virama character depending on the input language.	
-    * @since 3.1M
-    * @return Etrue if the Key is handled. 
-    */
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-public: //from MptiObserver
-    /**
-    * 
-    * Gets called when PTI Engine's timer expires.	
-    * @since 3.1M
-    * @return 
-    */
-
-	void KeyTimerExpired();
-
-    /**
-	 * This function handles Indic key response codes
-	 *
-	 * @since 3.2
-	 * @param TInt The key code.
-	 * @param TIndicInputResponse the key response.
-	 * @param TPtrC Text obtained from PtiEngine
-	 * @return TBool
-	 */
-    TBool HandleIndicKeyResponseL( TInt aKey, TIndicInputResponse aKeyResponse, TPtrC aPtiText );
-
-    /**
-	 * This function checks if space is left in a limited space editor.
-	 *
-	 * @since 3.2
-     * @param TIndicInputResponse the key response.
-	 * @return TBool
-	 */
-    TBool IsFreeSpaceAvailable( TIndicInputResponse aKeyResponse );
-
-#ifdef RD_MARATHI
-    /**
-	 * This function handles Marathi specific code.
-	 *
-	 * @since 5.0
-	 * @return void
-	 */
-    void HandleKeyMarathiL();
-#endif // RD_MARATHI	
-	};
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_INDIC_MULTITAP_H__
-
-// End of File
--- a/fep/aknfep/inc/AknFepUIInputStateInitialThaiMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialThaiMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialThaiMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialThaiMultitap(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    void HandleCommandL(TInt aCommandId);
-
-    };
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_THAI_MULTITAP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUIInputStateInitialVietnameseMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateInitialVietnameseMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_VIETNAMESE_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_VIETNAMESE_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialVietnameseMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialVietnameseMultitap(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    static TBool NeedsVietnameseBkDelSupport(TText aGlyphToDelete, TDes& aNewText);
-    
-    // Inherited from Base
-    void KeyTimerExpired();
-    };
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_VIETNAMESE_MULTITAP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUIManagerJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +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 CAknFepManagerJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MANAGER_JAPANESE_H__
-#define __AKN_FEP_UI_MANAGER_JAPANESE_H__
-
-// INCLUDES
-#include <bldvariant.hrh>
-#include <AknUtils.h>
-#include <uikon.hrh>                        //TAknEditorNumericKeymap
-
-#include "AknFepManagerInterface.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiInputStateJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepManagerUIInterface;
-class MAknFepUIManagerStateInterface;
-class CAknFepCaseManager;
-class CPtiEngine;
-class MAknFepUICtrlContainerJapanese;
-
-/**
- * CAknFepUIManagerJapanese class.
- * This class is mounted based on CAknFepUiManager.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class CAknFepUIManagerJapanese : public CAknFepUIManagerBase
-{
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EBaseLanguageNumericKeymapIndex = 0x00FF,
-        EMaskShiftOffset                = 8
-        };
-
-public: // Constructors and destructor
-    /**
-     *
-     *
-     * @since 2.6
-     */
-    static CAknFepUIManagerJapanese* NewL(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
-
-    /**
-     *
-     *
-     * @since 2.6
-     */
-    virtual ~CAknFepUIManagerJapanese();
-
-public: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    void SetCase(TCase aCase);
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey);
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    void CloseUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    TBool IsValidShiftKeyPress() const;
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    TUIState ChangeState(TUIState aState);
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    CDesCArrayFlat* CandidateArray();
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    TBool IsPredictive() const;
-
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    void SetInlineEditUnderlineVisibility(TBool aFlag);
-
-    /**
-     * From MAknFepManagerInterface
-     *
-     * @since 2.8
-     */
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, TInt aKeyboardType);
-#else
-		void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif 
-#else    
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__	
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.0
-     */
-    TBool IsQwerty() const;
-
-    /**
-     * From MAknFepManagerInterface
-     * this is in base class only
-     * @since 3.2
-     */
-    void HandleCommandL(TInt aCommandId);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.2
-     */
-    void ResourceChanged(TInt aType);
-
-private: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     *
-     * @since 2.6
-     */
-    TAknFepInputStateBase* FepUIState();
-
-public: // New Functions
-    /**
-     *
-     *
-     * @since 2.6
-     */
-    MAknFepUICtrlContainerJapanese* UIContainer() const;
-
-private: // New Functions
-    /**
-     *
-     *
-     * @since 2.6
-     */
-    CAknFepUIManagerJapanese(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
-
-    /**
-     *
-     *
-     * @since 2.6
-     */
-    void ConstructL(TLanguage aLanguage);
-
-private: // Data
-
-    TAknFepUiInputStateJapaneseBase iFepUiState;
-
-    MAknFepUICtrlContainerJapanese* iContainerPane;
-
-    CDesCArrayFlat* iCandidateArray; //owned
-
-    TBool iFlagInlineEditUnderline; // underline flag in Inline edit
-
-    TBool iQwerty;
-    };
-
-#endif //__AKN_FEP_UI_MANAGER_JAPANESE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUIManagerStateInterface.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
-* Copyright (c) 2002 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 MAknFepUIManagerStateInterface definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MAN_STATE_INTERFACE_H__
-#define __AKN_FEP_UI_MAN_STATE_INTERFACE_H__
-
-// INCLUDES
-#include <e32std.h>
-#include <badesca.h> //CDesCArrayFlat
-
-#include "AknFepGlobalEnums.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepManagerUIInterface;
-class CPtiEngine;
-class CAknFepCaseManager;
-
-//the follow class for phrase creation
-class MZhuyinKeyHandler;
-class CAknFepZhuyinAnalyser;
-
-/**
- *  CAknFepUIManagerBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- *
- */
-class MAknFepUIManagerStateInterface
-    {
-public: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TUIState State() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TUIState ChangeState(TUIState) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual MAknFepManagerUIInterface* FepMan() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual CPtiEngine* PtiEngine() const = 0;
-
-    /**
-     * zhuyin phrase creation
-     * 
-     * @since 5.0
-     */
-    virtual MZhuyinKeyHandler* ZhuyinKeyHandler() = 0;
-
-    /**
-     * zhuyin phrase creation
-     * 
-     * @since 5.0
-     */
-    virtual CAknFepZhuyinAnalyser* ZhuyinAnalyser() = 0;
-
-    
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TBool IsValidChineseInputKey(TInt aKey) const = 0;
-
-    /**
-     * 
-     * 
-     * @since 3.0
-     */
-    virtual TBool IsValidChineseInputKeyQwerty(TInt aKey) const = 0;
-
-    /**
-     * 
-     * 
-     * @since 3.0
-     */
-    virtual TBool IsQwertyZhuyinToneMarkKey(TInt aKey) const = 0;
-    
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TLanguage GetLanguage() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TPtr GetLatestDeliberateSelection() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual CAknFepCaseManager* CaseMan() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TInt ThaiSCTResourceId(TUint aPrewChar, TInt aKey) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual CDesCArrayFlat* CandidateArray() = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TBool IsPredictive() const = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual void SetInlineEditUnderlineVisibility(TBool aFlag) = 0;
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual const TDesC& NumberModeKeyMapping() const = 0;
-
-    /**
-     * Check Qwerty keypad
-     * 
-     * @since 3.0
-     */
-    virtual TBool IsQwerty() const = 0;
-    
-    /**
-     * Check chinese symbol
-     */
-    virtual TBool IsValidChineseSymbol(TInt aKey) const =0;
-
-    };
-
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiIndicEnums.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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 global enumerations.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INDIC_ENUMS_H__
-#define __AKN_FEP_UI_INDIC_ENUMS_H__
-
-enum TIndicInputResponse
-	{
-	/*causes the default input.  New Case will rather be applied*/
-	EIndicInputResponseNone, 
-	/*forces the input to the number.  This will happen in case we 
-	try to add modifier without the preceeding consonant being a vowel, 
-	consonant or a modified consonant*/
-	EIndicInputResponseNumber,
-	/*When VIRAMA is inserted in the already entered text between two consonants, 
-	then to we need to insert ZWS (Zero Width Space U+200B) so as to prevent 
-	the incorrect joining*/ 
-	EIndicInputResponseInsertZWS,
-	/*When ligature is formed while editing in middle of the word with the help of "*" key 
-	we need to handle it so that it should not form a ligature and a explicit halant 
-	is  entered in the text*/
-	EIndicInputResponseInsertZWSandLigature,
-	/*causes the user to input ligature by explicitly appending VIRAMA*/
-	EIndicInputResponseZWSandCharacter,
-	/*an error input.  not currently used but can be used later*/
-	EIndicInputResponseIgnore,	
-	/*Response for Repha insertion*/
-	EIndicInputResponseInsertRepha,	
-	/*Response for Rakar insertion*/
-	EIndicInputResponseInsertRakar,	
-	/*Response for ligature insertion*/
-	EIndicInputResponseInsertDirectLigature,
-	/*Response for Virama, ZWS and ligature insertion*/
-	EIndicInputResponseInsertViramaZWSandDirectLigature,
-	/*Response for ZWS and ligature insertion*/
-	EIndicInputResponseZWSandDirectLigature,
-	/*Response for invalid input*/
-	EIndicInputResponseInvalid,
-#ifdef RD_HINDI_PHONETIC_INPUT	
-	/*causes the inputting of transliterated text returned by PtiEngine in Multitap mode*/
-	EIndicInputResponsePhoneticMultitapText,
-	/*causes the inputting of transliterated text returned by PtiEngine in Qwerty mode*/
-	EIndicInputResponsePhoneticQwertyText,
-#endif
-
-#ifdef RD_MARATHI
-	/*Response for Eye Lash Ra insertion*/
-	EIndicInputResponseInsertEyeLashRa,	
-	/*Response for Chandra A insertion*/
-	EIndicInputResponseInsertChandraA, 
-#endif // RD_MARATHI
-
-	/* not used*/
-	EindicInputResponseLast
-	};
-	
-enum TIndicBaseCharacter
-	{
-	EIndicBaseVowel,
-	EIndicBaseConsonant	
-	};
-//Changing ZWS to ZWNJ for time being, Latter the variable names need to be changed.		
-#define ZERO_WIDTH_SPACE 0x200C	
-#define MAX_SYLABLE_BOUNDRY 12
-#define ZERO_WIDTH_JOINER 0x200D
-#endif //__AKN_FEP_UI_INDIC_ENUMS_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiIndicInputManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,389 +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 TAknFepUiIndicInputManager definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INDIC_INPUT_MANAGER_H__
-#define __AKN_FEP_UI_INDIC_INPUT_MANAGER_H__
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepUiIndicEnums.h"
-
-#include <e32const.h>
-#include <PtiEngine.h>
-#ifdef RD_HINDI_PHONETIC_INPUT	
-#include <PtiIndicDefs.h>
-#endif
-/**
-*  This class provides Helper methods for Indic Multitap class.
-*  @lib avkonfep.dll
-*  @since Series 60 3.1
-*/
-
-class TAknFepUiIndicInputManager 
-	{
-	public:
-		
-		/**
-	    * This method validates the input key and returns a correct response code.
-	    * Depending on the code, the character is added. This method applies the rules of 
-	    * Language to the user Input. 
-	    *
-	    * @since 3.1M
-	    * @return TIndicInputResponse
-	    */
-		static	TIndicInputResponse ValidateInput(TInt  aKey, 
-												  TUint aPrevChar,
-												  TUint aCurrChar,
-												  TUint aNextChar, 
-												  TBool& aIsHalantAllowed,	
-												  TBool aIsStarKeyPressed, 
-												  TBool aIsKeyTimerExpired, 
-												  TPtiTextCase& aNewCase, 
-												  TKeyPressLength aLength,
-												  TLanguage aLanguage,
-												  TBool aIsRakarPresent = EFalse,
-												  TBool aIsZWSPresent = EFalse
-#ifdef RD_MARATHI
-												  , TBool aIsChandraAPresent = EFalse
-#endif // RD_MARATHI
-												  );
-		/**
-	    * Checks wheather Character is Empty. 
-	    * @since 3.1M
-	    * @return ETrue if the  character is not present else EFalse
-	    */										  
-		static TBool IsCharEmpty(TUint aChar, TLanguage aLanguage);	
-		/**
-	    * Checks wheather Character is Other. Space is not supposed to be Other character.
-	    * @since 3.1M
-	    * @return ETrue if the  character is any other character that doesn’t belong to Hindi (like digits) based on the given language else EFalse
-	    */
-		static TBool IsCharOther(TUint aChar, TLanguage aLanguage);
-		/**
-	    * Checks wheather Character is Base consonant.
-	    * @since 3.1M
-	    * @return ETrue if the  character is a base consonant based on 
-	    * the given language else Efalse
-	    */
-		static TBool IsCharBaseConsonant(TUint aChar, TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Nukta.
-	    * @since 3.1M
-	    * @return ETrue if the  character is a Nukta based on the 
-	    * given language else Efalse
-	    */
-		static TBool IsCharNukta(TUint aChar, TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Matra.
-	    * @since 3.1M
-	    * @return ETrue if the  character is a matra based on the 
-	    * given language else EFalse
-	    */
-		static TBool IsCharMatra(TUint aChar,  TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Vowel.
-	    * @since 3.1M
-	    * @return ETrue if the  character is an vowel based on the 
-	    * given language else EFalse
-	    */
-		static TBool IsCharAnVowel(TUint aChar, TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Modifier.
-	    * @since 3.1M
-	    * @return ETrue if the  character is an modifier based on the 
-	    * given language else EFalse
-	    */
-		static TBool IsCharModifier(TUint aChar, TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Virama.
-	    * @since 3.1M
-	    * @return ETrue if Character is virama.
-	    */
-		static TBool IsCharVirama(TUint aChar, TLanguage aLanguage);
-		/**
-	    * 
-	    * Checks wheather Character is Space.
-	    * @since 3.1M
-	    * @return ETrue if Character is Space.
-	    */
-		static TBool IsCharSpace(TUint aChar);
-		/**
-	    * 
-	    * Checks wheather it is possilble to enter Virama (Halant) as per the language rule.
-	    * @since 3.1M
-	    * @return
-	    */
-		static void SetHalantOrMatraAllowed(TUint aPrevChar,TBool& aViramaAllowed,
-                                        TBool aIsKeyTimerExpired,TLanguage aLanguage);
-		/**
-	    * 
-	    * Returns the virama character depending on the input language.	
-	    * @since 3.1M
-	    * @return Virama character for the langiage aLanguage
-	    */
-		static TUint Virama(TLanguage aLanguage);
-		/**
-	    * 
-	    * Returns the True if the language is an Indic Language.	
-	    * @since 3.1M
-	    * @param aInputLanguage current input language
-	    *  param aUiLanguage current UI language
-	    * @return True for Indic language.
-	    */
-		static TBool IsIndicLangauge(TLanguage aInputLanguage);
-		/**
-	    * 
-	    * Returns the True if the language supports Indic Digits.	
-	    * @since 3.1M
-	    * @param aInputLanguage current input language
-	    *  param aUiLanguage current UI language
-	    *
-	    * @return True for digit support.
-	    */
-		static TBool IsIndicDigitsSupported(TLanguage aInputLanguage);
-
-	    /**
-		 * Handles the logic of Indic Repha input. This function first checks
-		 * the validity of the inputted Repha and then allows it to be entered
-		 *
-		 * @since 3.2
-		 * @param aChar The characer to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the character is allowed as governed by the rules 
-		 * of the language else EFalse.
-		 */
-		static TBool IsRephaAllowed( TUint aChar, TLanguage aLanguage );
-		
-		/**
-		 * This function checks whether the character is Repha (U0971).
-		 *
-		 * @since 3.2
-		 * @param aChar The character to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the  character is repha else returns EFalse
-		 */			
-		static TBool IsCharRepha( TUint aChar, TLanguage aLanguage );		
-		
-		/**
-		 * This function returns the Ra character for the language specified.
-		 *
-		 * @since 3.2
-		 * @param aLanguage The input language
-		 * @return TUint The ra character.
-		 */
-		static TUint RaCharacter( TLanguage aLanguage );
-		
-		/**
-		 * This function populates the Repha character into aRepha parameter.
-		 *
-		 * @since 3.2
-		 * @param aRepha A descriptor in which Repha is stored.
-		 * @param aLanguage The input language
-		 * @return void
-		 */		
-		static void GetRepha( TDes& aRepha, TLanguage aLanguage );
-		
-		/**
-		 * This function checks whether the character is Rakar (U0972).
-		 *
-		 * @since 3.2
-		 * @param aChar The character to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the  character is Rakar else returns EFalse
-		 */			
-		static TBool IsCharRakar( TUint aChar, TLanguage aLanguage );
-		
-		/**
-		 * This function populates the Rakar character into aRakar parameter.
-		 *
-		 * @since 3.2
-		 * @param aRakar A descriptor in which Rakar is stored.
-		 * @param aLanguage The input language
-		 * @return void
-		 */
-		static void GetRakar( TDes& aRakar, TLanguage aLanguage );
-
-		/**
-		 * This function populates the ligature into the buffer 
-		 * depending on the current input character.
-		 *
-		 * @since 3.2
-		 * @param aLigature A descriptor in which the ligature is stored.
-		 * @param aCurrChar The current character from the key map.
-		 * @param aLanguage The input language
-		 * @return void
-		 */
-		static void GetLigature( TDes& aLigature, 
-								TUint aCurrChar, 
-								TLanguage aLanguage );
-
-		/**
-		 * This function checks whether the character is a special ligature.
-		 *
-		 * @since 3.2
-		 * @param aChar The character to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the  character is a special ligature else EFalse.
-		 */
-		static TBool IsCharLigature( TUint aChar, TLanguage aLanguage );
-
-		/**
-		 * This function checks if entry of modifier is allowed.
-		 *
-		 * @since 3.2
-		 * @param aPrevChar The previous character.
-		 * @param aIsKeyTimerExpired. Indicates if the multitap timer is alive
-		 * @param aLanguage. The input language.
-		 * @return void
-		 */
-		 static TBool IsModifierAllowed( TUint aPrevChar, 
-		 								TLanguage aLanguage );
-
-	   /**
-	    * 
-	    * Checks if the character is the first ligature.
-	    * @since 3.2M
-	    * @return ETrue if Character is the first ligature.
-	    */
-		static TBool IsCharAtStartOfLigature(TUint aChar, 
-											TLanguage aLanguage);
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		/**
-	    * 
-	    * Returns the True if the language is Phonetic Language.	
-	    * @since 3.1M
-	    * @param aInputLanguage current input language
-	    *  param aUiLanguage current UI language
-	    *
-	    * @return True if language is Phonetic.
-	    */
-		static TBool IsIndicPhoneticLanguage(TLanguage aInputLanguage);
-	    /** @since 3.1M
-	    * @param aInputLanguage current input language
-	    *  param aChar Indic Character
-	    *
-	    * @returns Key associated with char.
-	    */
-		static TInt MapCharacterToKeys(TUint aChar, TLanguage aLanguage);
-#endif
-
-		/**
-		 * This function checks whether the script is Devanagari
-		 *
-		 * @since 5.0
-		 * @param aLanguage The input language
-		 * @return ETrue if the  script is Devanagari,
-		 * 		   else returns EFalse
-		 */
-		static TBool IsScriptDevanagari( TLanguage aInputLanguage );
-
-        /**
-		 * This function checks the response code. AknFepManager calls
-		 * this method with the response code to know if the CommitInlineEditL
-		 * needs to be invoked.
-		 *
-		 * @since 5.0
-		 * @param aResponse The Current response code.
-		 * @return ETrue if the inline text is to be committed
-		 * 		   else returns EFalse
-		 */
-		static TBool IsToCommitCharSeq( TIndicInputResponse aResponse );
-
-		/**
-		 * This function checks whether the character is a Nukta Consonant.
-		 *
-		 * @since 5.0
-		 * @param aChar The character to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the  character is a Nukta Consonant,
-		 * 		   else returns EFalse
-		 */
-		static TBool IsCharNuktaConsonant( TUint aChar, TLanguage aLanguage );
-    
-#ifdef RD_MARATHI
-		/**
-		 * This function checks whether the character is Eye Lash Ra (U0977).
-		 *
-		 * @since 5.0
-		 * @param aChar The character to be checked.
-		 * @param aLanguage The input language
-		 * @return ETrue if the  character is Eye Lash Ra, else returns EFalse
-		 */
-		static TBool IsCharEyeLashRa( TUint aChar, TLanguage aLanguage );
-
-		/**
-		 * This function populates the Eye Lash Ra character into 
-		 * aEyeLashRa parameter. (0x0931+0x094D+0x200D)
-		 *
-		 * @since 5.0
-		 * @param aEyeLashRa A descriptor in which Eye Lash Ra is stored.
-		 * @param aLanguage The input language
-		 * @return void
-		 */
-		static void GetEyeLashRa( TDes& aEyeLashRa, 
-									TLanguage aLanguage );
-
-		/**
-		 * This function checks whether the character is a Chandra A (0x0978).
-		 *
-		 * @since 5.0
-		 * @param aChar The character to be checked.
-		 * @return ETrue if the  character is a Chandra A,
-		 * 		   else returns EFalse
-		 */
-		static TBool IsCharChandraA( TUint aChar );
-
-		/**
-		 * This function populates the Chandra A character into 
-		 * aChandraA parameter. (0x0905+0x0945)
-		 *
-		 * @since 5.0
-		 * @param aChandraA A descriptor in which Chandra A is stored.
-		 * @param aIsToGetSingleUnicodeValue. If ETrue, return 0x0978
-		 * @return void
-		 */
-		static void GetChandraA( TDes& aChandraA, 
-								TBool aIsToGetSingleUnicodeValue = EFalse );
-#endif // RD_MARATHI
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		/**
-	    * 
-	    * Returns True if aChar is a mathra( Dependant vowel), Modifier or Virama.
-	    * @since 5.0
-	    */		
-		static TBool IsIndicDependantCharacter(TUint aChar, TLanguage aLanguage);
-#endif	// RD_INTELLIGENT_TEXT_INPUT
-
-	}; //__AKN_FEP_UI_INDIC_INPUT_MANAGER_H__
-	
-#endif	
-
-//End of File
--- a/fep/aknfep/inc/AknFepUiInputStateBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +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 TAknFepInputStateBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUTSTATE_BASE_H__
-#define __AKN_FEP_UI_INPUTSTATE_BASE_H__
-
-// INCLUDES
-#include <e32std.h>
-#include <uikon.hrh>
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-
-#include <PtiObserver.h> // MPtiObserver
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATION
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepInputStateBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepInputStateBase : public MPtiObserver
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default constructor
-     *
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterfa
-     */
-    TAknFepInputStateBase(MAknFepUIManagerStateInterface* aOwner);
-
-public: // Functions from base classes
-    /**
-     * From MPtiObserver interface
-     * Call this function when Multitap timer of PtiEngine was time-out
-     *
-     * @since 2.6
-     */
-    virtual void KeyTimerExpired();
-
-    /**
-     * From MPtiObserver interface
-     * Call this function when getting last word in selection list
-     *
-     * @since 2.6
-     */
-    virtual void LastWordInSelectionList();
-
-    /**
-     * From MPtiObserver interface
-     * Call this function when getting first word in selection list
-     *
-     * @since 2.6
-     */
-    virtual void FirstWordInSelectionList();
-
-public: // New functions
-    /**
-     * Hnadling Keypress events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-    virtual void HandleCommandL(TInt aCommandId);
-    virtual void HandleCommandL(TInt aCommandId, TInt aParam);
-    /**
-     * return own input state.
-     *
-     * @since 2.6
-     * @return own input sate
-     */
-    virtual TUIState State() const;
-
-    /**
-     * Processing of Closeing UI
-     * @since 2.6
-     */
-    virtual void CloseUI();
-
-    /**
-     * Initialize state
-     * @since 2.6
-     */
-    virtual void InitializeStateL();
-
-    /**
-     * A patch to force the vtable to be copied during an assignment.
-     * @since 2.6
-     * @param aState TAknFepInputStateBase object
-     */
-    virtual void operator=(const TAknFepInputStateBase& aState);
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	virtual void SetStarKeyFlag( TBool aSet );
-#ifdef RD_HINDI_PHONETIC_INPUT 
-	/**
-	 * Gives the iPhoneticLatinChar
-	 *
-     * @param aChar TChar iPhoneticLatinChar value.
-     * @since 5.0
-     * @return None
-	 */
-	virtual void GetPhoneticLatinChar(TChar& aChar)const;
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	/**
-	 * Gets the length of the character of the short key press
-     * @return Lenght of the character
-	 */
-	virtual TInt GetShortKeyPressTxtLength();
-	/**
-	 * Set the text for short key press
-	 *
-     * @param aText Teh text entered for short key press.
-     * @return None
-	 */
-	virtual void SetShortKeyPressText(const TDesC& aText);
-#endif // RD_INTELLIGENT_TEXT_INPUT	
-
-protected: // Data
-		TBool iFakeDelete;  	                                        
-		TBool iCharKeyException;	                                    
-protected: // Data
-    MAknFepUIManagerStateInterface* iOwner;
-    TUIState iState;
-    TWordMatchState iMatchState; 
-    TInt iData; // data store for sub-classes...
-    TInt iCbaResourceID;
-protected:
-#ifdef RD_HINDI_PHONETIC_INPUT        
-	TChar iPhoneticLatinChar; // Used for current Latin character to be transliterated on key timer expiry or on other key press 
-    TBuf<CAknFepManager::EMaximumFepWordLength > iIndicPhoneticBuffer; // Used to hold the uncommited word to append with latin character    
-#endif
-	//Used for Hindi
-    TBool iIsStarKeyPressed;
-	TBool iIsKeyTimerExpired;
-	TLanguage iIndicLanguage;
-	TBool iIsHalantAllowed;  
-	TBool iZWSPresent;
-	TBool iKey1Pressed;
-	TBool iRephaPresent;
-	TBool iRakarPresent;
-	TBool iResponseInsertZWS;
-	TBool iLigaturePresent;
-        TBool iIsLastWord;
-	/** Stores the character which was present in the editor before
-	  * multitapping started. Used for validation of current character.
-	  */
-	TUint iPreviousCommittedChar;
-
-#ifdef RD_MARATHI
-	TBool iEyeLashRaPresent;
-	TBool iChandraAPresent;
-#endif // RD_MARATHI
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBuf<CAknFepManager::EMaximumFepWordLength > iShortKeyPressText;
-#endif
-    };
-
-#endif
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidate.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateCandidate definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-class TAknFepInputStateCandidate : public TAknFepInputStateCandidateBase 
-    {
-public:
-    TAknFepInputStateCandidate(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateCandidateBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateBase : public TAknFepInputStateChineseBase
-    {
-public:
-    void HandleCommandL(TInt aCommandId);    
-    
-protected:
-    TAknFepInputStateCandidateBase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    inline TInt MapKeyToIndex(TInt aKey);
-    };
-
-inline TInt TAknFepInputStateCandidateBase::MapKeyToIndex(TInt aKey)
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateBaseChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATEBASECHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATECANDIDATEBASECHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateBaseChinesePhrase : public TAknFepInputStateCandidateBase
-    {
-protected:
-    TAknFepInputStateCandidateBaseChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    void HandleCommandL(TInt aCommandId);
-
-    /**
-     * Handle CBA1 or select event.
-     * 
-     * @since S60 v3.2.3
-     * @return None.
-     */
-    void HandleCommitL();
-    
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey, TKeyPressLength aLength);
-    void UpdateIndicator();
-    //the follow 6 functions for creation
-    void GetValidkeystrokeL();
-    TBool CheckSpellingOfPtiEngine();
-    void GetKeystrokeCode( TInt& aKey, const TDesC& aKeystroke );
-    void ClearPtiEngineKeystroke();
-    void DeleteTonMarkFromInEffectKeytrokeArray();
-    void CheckTonemarkL();
-    TBool IsValid(const TDesC& aDesC, TInt aCount);
-    void GetNewCandidatesL(const TDesC& aSource, RPointerArray<HBufC>& aList);
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATEBASECHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateBasePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateCandidateBasePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateBasePhrase : public TAknFepInputStateCandidateBase
-    {
-protected:
-    TAknFepInputStateCandidateBasePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_BASE_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Pinyin phrase predictive Qwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATECHINESE_H
-#define T_AKNFEPUIINPUTSTATECANDIDATECHINESE_H
-
-// User includes 
-#include "AknFepUiInputStateCandidateBase.h"
-
-/**
- *  TAknFepInputStateCandidateChinese class.
- *
- *  Implementation of Chinese candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateCandidateChinese : public TAknFepInputStateCandidateBase 
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-
-    TAknFepInputStateCandidateChinese(MAknFepUIManagerStateInterface* aOwner,
-                                      MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * From TAknFepInputStateCandidate
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-    
-    /**
-     * From MPtiObserver interface
-     * Call this function when getting last word in selection list
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-     
-protected:
-    
-    /**
-     * Handle horizontal navigation Key
-     *
-     * @since S60 v3.2
-     * @param aKey System key
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleHorizontalNavigation(TInt aKey);
-
-    /**
-     * Handle vertical navigation Key
-     *
-     * @since S60 v3.2
-     * @param aKey System key
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleVerticalNavigation(TInt aKey);
-    
-    /**
-     * Update indicator 
-     *
-     * @since S60 v3.2
-     * @param aKey System key
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void UpdateIndicator();
-    
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATECHINESE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATECHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATECANDIDATECHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateBaseChinesePhrase.h"
-
-class TAknFepInputStateCandidateChinesePhrase : public TAknFepInputStateCandidateBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateCandidateChinesePhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    //the follow 3 functions for phrase creation
-      TBool UpdateEEPContent();
-      
-      void AddPhraseToDB( TDes& aPhrase );
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATECHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateHalfQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIINPUTSTATECANDIDATEHALFQWERTYCHINESEPHRASE_H_
-#define AKNFEPUIINPUTSTATECANDIDATEHALFQWERTYCHINESEPHRASE_H_
-
-// User includes 
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-/**
- *  TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase class.
- *
- *  Implementation of Pinyin and Stroke phrase candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUiInputStateCandidateHalfQwertyChinesePhrase : 
-    public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepUiInputStateCandidateHalfQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-    
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif /*AKNFEPUIINPUTSTATECANDIDATEHALFQWERTYCHINESEPHRASE_H_*/
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +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 TAknFepUiInputStateCandidateHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-class CAknFepUICtrlJapaneseCandidatePane;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCandidateHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCandidateHiraganaKanji
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: //  Constructors and destructor
-    /**
-     * C++ default constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterfa
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-     TAknFepUiInputStateCandidateHiraganaKanji(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-    virtual void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Processing of Closeing UI
-     *
-     * @since 2.6
-     */
-    virtual void CloseUI();
-
-protected:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue
-     */
-    virtual TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETure
-     */
-    virtual TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling auxiliary keypress events including OK and Backspace.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETure
-     */
-    virtual TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-protected: // New Fanctions
-    virtual void UpdateCandidateListL(TInt aIndex = 0);
-
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Pinyin and Stroke phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATEMINIQERTYPINYINANDSTROKE_PHRASE_H
-#define T_AKNFEPUIINPUTSTATECANDIDATEMINIQERTYPINYINANDSTROKE_PHRASE_H
-
-// User includes 
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "aknfepuiinputminiqwertypinyinphrasebase.h"
-
-/**
- *  TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase class.
- *
- *  Implementation of Pinyin and Stroke phrase candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase : 
-    public TAknFepInputMiniQwertyPinyinPhraseBase
-    {
-public:
-
-    enum TAknFepStrokePhraseChange
-        {
-        EManualChangeState,
-        EAutoChangeStateFromInput,
-        EAutoChangeStateFromCandidate
-        };
-    
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATEPINYINANDSTROKE_PHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of zhuyin phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_MINIQWERTY_ZHUYINPHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_MINIQWERTY_ZHUYINPHRASE_H__
-
-// User includes 
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-/**
- *  TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase class.
- *
- *  Implementation of Pinyin and Stroke phrase candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase : 
-    public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    
-    TBool HandleKeyForMiniQwertyL( TInt aKey,
-           TKeyPressLength aLength );
-       
-    TBool HandleKeyForHalfAndCustomQwertyL( TInt aKey,
-           TKeyPressLength aLength );
-    TBool HandleKeyL( TInt aKey,TKeyPressLength aLength );
-    /**
-     *fill the phrase and keystorke array 
-     *
-     * @since S60 V3.2
-     * @param aText Pointer to the spelling 
-     * @param aPhrase Pointer to phrase 
-     */
-    void FillPhraseAndStrokArrayL(const TDesC& aText, const TDesC& aPhrase);
-    /**
-     * get the key stroke count
-     *
-     * @since S60 V3.2
-     * @param aBuf Pointer to the spelling 
-     * 
-     */
-    TInt GetInputPaneKeyStrokeCount(const TDesC& aBuf);
-    /**
-     * commit the pharse created to editor
-     *
-     * @since S60 V3.2
-     * 
-     */
-    TBool ComitPhraseCreatedToEditorL();
-    /**
-     * Get the valid keystroke.
-     * ETure  get the valid keystorke,else EFalse
-     */
-    TBool CheckToneMarkBorderUpon();
-    /**
-     * get the index of the tonemark 
-     *
-     * @since S60 V3.2
-     * @param aText  Pointer to the spelling 
-     * 
-     */
-    TInt GetIndexOfToneMark( const TDesC& aText);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_CANDIDATE_MINIQWERTY_ZHUYINPHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidatePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateCandidatePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateBasePhrase.h"
-
-class TAknFepInputStateCandidatePhrase : public TAknFepInputStateCandidateBasePhrase
-    {
-public:
-    TAknFepInputStateCandidatePhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidatePinyinAndStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Pinyin and Stroke phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATEPINYINANDSTROKE_PHRASE_H
-#define T_AKNFEPUIINPUTSTATECANDIDATEPINYINANDSTROKE_PHRASE_H
-
-// User includes 
-#include "AknFepUiInputStateCandidateBaseChinesePhrase.h"
-
-/**
- *  TAknFepUiInputStateCandidatePinyinAndStrokePhrase class.
- *
- *  Implementation of Pinyin and Stroke phrase candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUiInputStateCandidatePinyinAndStrokePhrase : 
-    public TAknFepInputStateCandidateBaseChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepUiInputStateCandidatePinyinAndStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-        
-    void HandleCommandL(TInt aCommandID);
-    
-    
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATEPINYINANDSTROKE_PHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_H__
-
-#include "AknFepUiInputStateCandidateQwertyBase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateCandidateQwerty : public TAknFepInputStateCandidateQwertyBase
-    {
-public:
-    TAknFepInputStateCandidateQwerty(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateQwertyBase : public TAknFepInputStateChineseBase
-    {
-public:
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    TAknFepInputStateCandidateQwertyBase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    inline TInt MapKeyToIndex(TInt aKey);
-    };
-
-inline TInt TAknFepInputStateCandidateQwertyBase::MapKeyToIndex(TInt aKey)
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATEQWERTYBASECHINESEPHRASE_H
-#define T_AKNFEPUIINPUTSTATECANDIDATEQWERTYBASECHINESEPHRASE_H
-
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-/**
- * key struct.
- * @since S60 v3.2.3
- */
-struct TMiniQwertyKeyMap
-    {
-    TUint16 iValue;
-    TInt iKeyCode;
-    };
-
-/**
- * Tone mark struct.
- * @since S60 v3.2.3
- */
-struct TMiniQwertyToneMap
-    {
-    TUint16 iValue;
-    TInt iInputTone;
-    };
-
-class TAknFepInputStateCandidateQwertyBaseChinesePhrase : public TAknFepInputStateChineseBase
-    {
-public:
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    TAknFepInputStateCandidateQwertyBaseChinesePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Check the select candidate numeric key is valid or not
-     * @since S60 v3.2
-     * @return ETure if the select number is valid ,others is EFalse
-     */
-    TBool  MapKeyToIndexSelectCandidate( TInt aKey,TInt& aIndex );
-#endif
-    
-    inline TInt MapKeyToIndex(TInt aKey);
-    void UpdateIndicator();
-    void GetNewCandidatesL(const TDesC& aSource, RPointerArray<HBufC>& aList);
-    };
-
-inline TInt TAknFepInputStateCandidateQwertyBaseChinesePhrase::MapKeyToIndex(TInt aKey)
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATEQWERTYBASECHINESEPHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyBasePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyBasePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_PHRASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateQwertyBasePhrase : public TAknFepInputStateChineseBase
-    {
-    public:
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    TAknFepInputStateCandidateQwertyBasePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    inline TInt MapKeyToIndex(TInt aKey);
-    };
-
-inline TInt TAknFepInputStateCandidateQwertyBasePhrase::MapKeyToIndex(TInt aKey)
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_BASE_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_H__
-
-#include "AknFepUiInputStateCandidateQwertyChineseBase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateCandidateQwertyChinese : public TAknFepInputStateCandidateQwertyChineseBase
-    {
-public:
-    TAknFepInputStateCandidateQwertyChinese(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChineseBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_BASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateCandidateQwertyChineseBase : public TAknFepInputStateChineseBase
-    {
-    public:
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    TAknFepInputStateCandidateQwertyChineseBase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    inline TInt MapKeyToIndex(TInt aKey);
-    void UpdateIndicator();
-    };
-  
-inline TInt TAknFepInputStateCandidateQwertyChineseBase::MapKeyToIndex(TInt aKey)
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_CHINESE_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATECANDIDATEQWERTYCHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATECANDIDATEQWERTYCHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateCandidateQwertyChinesePhrase : 
-public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateCandidateQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif //T_AKNFEPUIINPUTSTATECANDIDATEQWERTYCHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateQwertyBasePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateCandidateQwertyPhrase : public TAknFepInputStateCandidateQwertyBasePhrase
-    {
-public:
-    TAknFepInputStateCandidateQwertyPhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_QWERTY_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyZhuyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyZhuyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_H__
-#define __AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_H__
-
-#include "AknFepUiInputStateCandidateQwertyChinese.h"
-
-class TAknFepInputStateCandidateQwertyZhuyin : public TAknFepInputStateCandidateQwertyChinese 
-    {
-public:
-    TAknFepInputStateCandidateQwertyZhuyin(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateQwertyChinesePhrase.h"
-
-class TAknFepInputStateCandidateQwertyZhuyinPhrase : 
-public TAknFepInputStateCandidateQwertyChinesePhrase
-    {
-public:
-    TAknFepInputStateCandidateQwertyZhuyinPhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_INPUT_STATE_CANDIDATE_QWERTY_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCandidateRetroActive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* 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:            Provides the TAknFepUiInputStateCandidateRetroActive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CANDIDATE_RETROACTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_CANDIDATE_RETROACTIVE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-class CAknFepUICtrlJapaneseCandidatePane;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCandidateRetroActive class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCandidateRetroActive
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: //  Constructors and destructor
-    /**
-     * C++ default constructor
-     *
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterfa
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-     TAknFepUiInputStateCandidateRetroActive(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Initialize state
-     *
-     * @since 2.6
-     */
-    void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Processing of Closeing UI
-     *
-     * @since 2.6
-     */
-    void CloseUI();
-
-protected:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue
-     */
-    TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETure
-     */
-    TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling auxiliary keypress events including OK and Backspace.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETure
-     */
-    TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepInputStateBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-private: // New Functions
-    void ShowListL(TInt aCommandId, TInt aIndex = 0);
-    void ShowPredictiveListL();
-    void DoSelectItemL();
-    void DoCommitItemL();
-
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_CANDIDATE_RETROACTIVE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateChineseBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2003 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 TAknFepInputStateChineseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUTSTATE_CHINESE_BASE_H__
-#define __AKN_FEP_UI_INPUTSTATE_CHINESE_BASE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include <avkon.hrh>
-#include <uikon.hrh>
-#include <AknFepGlobalEnums.h>
-#include "AknFepUiInputStateBase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-
-// CONSTANTS
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-//class TAknFepInputStateBase;
-class MAknFepUIManagerStateInterface;
-//class MAknFepUICtrlContainerChinese;
-
-/**
-*  TAknFepInputStateChineseBase class.
-*
-*  @lib AknFep.lib
-*  @since 2.6
-*/
-class TAknFepInputStateChineseBase : public TAknFepInputStateBase
-    {
-public: // Constructors and destructor
-    /**
-     * Constructor
-     * @since 2.6
-     * @param aOwner 
-     * @param aUIContainer 
-     */
-    TAknFepInputStateChineseBase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-    
-public:
-    // A patch to force the vtable to be copied during an assignment.
-    void operator=(const TAknFepInputStateBase& aState);
-
-    /**
-     * A patch to force the vtable to be copied during an assignment.
-     * 
-     * @param aState
-     */
-    void operator=(const TAknFepInputStateChineseBase& aState);
-    /**
-     * Getting UI container object
-     * @since 2.6
-     * @return Japanese UI container object
-     */
-    MAknFepUICtrlContainerChinese* UIContainer();
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-
-protected:
-    MAknFepUICtrlContainerChinese* iUIContainer;
-    
-   TBool iUseforResourcechange;    
-      
-    };
-#endif//__AKN_FEP_UI_INPUTSTATE_CHINESE_BASE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateChineseBaseQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateChineseBaseQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CHINESE_BASE_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_CHINESE_BASE_QWERTY_H__
-
-#include "AknFepUIInputStateChineseBase.h"
-
-class TAknFepInputStateChineseBaseQwerty : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateChineseBaseQwerty(MAknFepUIManagerStateInterface* aOwner,
-					MAknFepUICtrlContainerChinese* aUIContainer); 
-
-protected:
-    TBool IsQwertyKey(const TInt aKey);
-    TBool IsNumberKey(const TInt aKey);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_CHINESE_BASE_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateChineseFindQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateFindQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_FIND_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_FIND_QWERTY_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-class TAknFepInputStateChineseFindQwerty : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateChineseFindQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-protected:
-    TBool IsQwertyKey(const TInt aKey);
-    TBool IsNumberKey(const TInt aKey);
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_FIND_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCompletionHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +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 AknFepUiInputStateCompletionHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_COMPLETION_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_COMPLETION_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateCompletionJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCompletionHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCompletionHiraganaKanji
-    :public TAknFepUiInputStateCompletionJapaneseMultitap
-    {
-public: //  Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateCompletionHiraganaKanji(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer);
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Update inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool UpdateInlineEditingCharacterL();
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_COMPLETION_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCompletionJapaneseMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +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 TAknFepUiInputStateCompletionJapaneseMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_COMPLETION_JAPANESE_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_COMPLETION_JAPANESE_MULTITAP_H__
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCompletionJapaneseMultitap class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCompletionJapaneseMultitap
-    :public TAknFepUiInputStateJapaneseBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateCompletionJapaneseMultitap(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-protected: // From TAknFepUiInputStateJapaneseBase
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Update inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool UpdateInlineEditingCharacterL();
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Commit inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool CommitInlineEditingCharacterL();
-
-protected: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     * @param aKey
-     * @return ETrue
-     */
-    virtual TBool ProcessNumericLongKeyPressL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_COMPLETION_JAPANESE_MULTITAP_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCompletionKatakana.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +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 TAknFepUiInputStateCompletionKatakana definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_COMPLETION_KATAKANA_H__
-#define __AKN_FEP_UI_INPUT_STATE_COMPLETION_KATAKANA_H__
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateCompletionJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepUiInputStateCompletionLatinJapanese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCompletionKatakana
-    :public TAknFepUiInputStateCompletionJapaneseMultitap
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateCompletionKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-protected: // Functions from base classes
-    /**
-     * From AknFepUiInputStateCompletionJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Update inline editing string
-     *
-     * @since 3.0
-     * @return ETrue If inline editing string was updated
-     */
-    TBool UpdateInlineEditingCharacterL();
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Commit inline editing string
-     *
-     * @since 3.0
-     * @return ETrue If inline editing string was updated
-     */
-    TBool CommitInlineEditingCharacterL();
-
-    /**
-     * Check Full-width hiragana
-     *
-     * @since 3.0
-     * @return ETrue If there are some hiragana characters
-     */
-    TBool IsFullHiragana(const TChar aChr);
-    
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 3.1
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_COMPLETION_FULL_LATIN_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCompletionLatinJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +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 TAknFepUiInputStateCompletionLatinJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_COMPLETION_FULL_LATIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_COMPLETION_FULL_LATIN_H__
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateCompletionJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCompletionLatinJapanese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCompletionLatinJapanese
-    :public TAknFepUiInputStateCompletionJapaneseMultitap
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateCompletionLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-    TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Commit inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool CommitInlineEditingCharacterL();
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 3.1
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_COMPLETION_FULL_LATIN_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateCompletionPredictiveHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +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 TAknFepUiInputStateCompletionPredictiveHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_COMPLETION_PREDICTIVE_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_COMPLETION_PREDICTIVE_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateCompletionHiraganaKanji.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateCompletionHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateCompletionPredictiveHiraganaKanji
-    :public TAknFepUiInputStateCompletionHiraganaKanji
-    {
-public: //  Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateCompletionPredictiveHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateCompletionJapaneseMultitap
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_COMPLETION_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateConversionHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +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 TAknFepUiInputStateConversionHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_CONVERSION_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_CONVERSION_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateConversionHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateConversionHiraganaKanji
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: //  Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateConversionHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif // __AKN_FEP_UI_INPUT_STATE_CONVERSION_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryArabicHebrewPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_ARABIC_HEBREW_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_ARABIC_HEBREW_PREDICTIVE_H__
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-class TAknFepInputStateEntryArabicHebrewPredictive : public TAknFepInputStateEntryWesternPredictive
-    {
-public:
-    TAknFepInputStateEntryArabicHebrewPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_ARABIC_HEBREW_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryHalfQwertyWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepUiInputStateEntryHalfQwertyWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_HALFQWERTY_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_HALFQWERTY_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepUiInputStateEntryHalfQwertyWesternPredictive : public TAknFepInputStateBase
-    {
-public:
-    /**
-    * Constructor
-    * @param    aOwner  The UI manager that owns this input state
-    */
-    TAknFepUiInputStateEntryHalfQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-    
-    /**
-    * The main handler function for the key presses.
-    * @param    aKey    The key to be handled. This may be either TKeyCode or TStdScanCode value.
-    * @param    aLength Tells if the key press is short or long one.
-    */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-
-public: // Functions from MPtiObserver interface
-    /**
-    * Called when last word in the selection list is activated. Not relevant as we use the 
-    * candidate popup.
-    */
-    void LastWordInSelectionList();
-    
-    /**
-    * Called when the first word in the selection list is activated. Not relevant as we use the
-    * candidate popup.
-    */
-    void FirstWordInSelectionList();
-
-    /**
-    * Called when the Chr multitap timer expires. The case should be updated at that time.
-    */ 
-    void KeyTimerExpired();
-    
-//    void HandleCommandL(TInt aCommandId);
-
-protected:
-    /**
-    * Sets the shift state of the PtiEngine according the shift and chr states of the Fep.
-    * @param    aKey    The with which the shift state is used. This is needed because shift
-    *                   works differently with letter keys than with numbers and punctuation.
-    */
-    void HandleShiftState(TInt aKey);
-    
-    /**
-    * Handles keys which cause the active word to be committed (like enter, space, tab,...).
-    * @param    aKey    The key to be handled.
-    */
-    TBool HandleWordBreakingKeysL(TInt aKey);
-    
-    /**
-    * Handles the "normal" keys which (may) cause some character to be appended to the current word.
-    * @param    aKey    The key to be handled.
-    */
-    TBool HandleQwertyKeysL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-    * Handles the keys which cause cursor movements (arrows, backspace).
-    * @param    aKey    The key to be handled
-    * @param    aLength The key press length.
-    */
-    TBool HandleNaviKeysL(TInt aKey, TKeyPressLength aLength);
-    
-    void ConvertDigitToDigittype(TDigitType& digittype,TDes& aConvertedNumeral);
-    
-    
-/*    TBool HandleStandardNumericKeysL(TInt aKey, TKeyPressLength aLength);
-    
-    void DoNextMatch();
-    void DoPreviousMatch();*/
-};
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_HALFQWERTY_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +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 TAknFepUiInputStateEntryHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateEntryHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateEntryHiraganaKanji
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateEntryHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 3.2
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    TBool HandleNumericShortKeyL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryIndicPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +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 TAknFepInputStateEntryIndicPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_INDIC_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_INDIC_PREDICTIVE_H__
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-/**
-*  This class handles the entry predictive state for Indic languages.
-*  @lib avkonfep.dll
-*  @since Series 60 3.1
-*/
-class TAknFepInputStateEntryIndicPredictive : public TAknFepInputStateEntryWesternPredictive
-    {
-public:
-    /**
-    * 
-    * Constructor for TAknFepInputStateEntryIndicPredictive.	
-    * @since 3.1M
-    * @return 
-    */
-    TAknFepInputStateEntryIndicPredictive(MAknFepUIManagerStateInterface* aOwner, 
-                                          TLanguage aLanguage);
-    void LastWordInSelectionList();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_INDIC_PREDICTIVE_H__
-// End of File
--- a/fep/aknfep/inc/AknFepUiInputStateEntryJapaneseMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +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 TAknFepUiInputStateEntryJapaneseMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_JAPANESE_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_JAPANESE_MULTITAP_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateEntryJapaneseMultitap class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateEntryJapaneseMultitap
-    :public TAknFepUiInputStateJapaneseBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     *
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateEntryJapaneseMultitap(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Call this function when Multitap timer of PtiEngine was time-out
-     *
-     * @since 2.6
-     */
-     void KeyTimerExpired();
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Initialize state
-     *
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Update inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool UpdateInlineEditingCharacterL();
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Commit inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool CommitInlineEditingCharacterL();
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 3.2
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_JAPANESE_MULTITAP_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryKatakana.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +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 TAknFepUiInputStateEntryKatakana definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_KATAKANA_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_KATAKANA_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateEntryKatakana class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateEntryKatakana
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateEntryKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected: // Functions from base classes
-    /**
-     * From AknFepUiInputStateEntryJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_JAPANESE_MULTITAP_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryLatinJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +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 TAknFepUiInputStateEntryLatinJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_FULL_LATIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_FULL_LATIN_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateEntryLatinJapanese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateEntryLatinJapanese
-    :public TAknFepUiInputStateEntryJapaneseMultitap
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */ 
-    TAknFepUiInputStateEntryLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Call this function when Multitap timer of PtiEngine was time-out
-     *
-     * @since 2.6
-     */
-    void KeyTimerExpired();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_FULL_LATIN_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryMiniQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_MINIQWERTY_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_MINIQWERTY_ZHUYIN_PHRASE_H__
-
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStateEntryMiniQwertyZhuyinPhrase : 
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateEntryMiniQwertyZhuyinPhrase(MAknFepUIManagerStateInterface* aOwner,
-                                 MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    TBool HandleKeyForMiniQwertyL( TInt aKey,
-        TKeyPressLength aLength );
-    
-    TBool HandleKeyForHalfAndCustomQwertyL( TInt aKey,
-        TKeyPressLength aLength );
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-private:
-    void DeliberatelyUpdateSelection();
-    void ImplicitlyUpdateSelection();
-    void ClearDeliberateSelection();
-    void RefreshUI(TInt aSelection);
-    void InitializeStateL();
-    void UpdateIndicator();    
-    
-    /**
-     * Check whether tone mark border upon.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue,if the tone mark border upon, EFalse otehrs.
-     */
-    TBool CheckToneMarkBorderUpon();
-    
-    void CommitToneMarkL( TInt aKey );
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_INPUT_MINIQWERTY_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryPinyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryPinyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-class TAknFepInputStateEntryPinyin : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateEntryPinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-    void HandleCommandL(TInt aCommandId);
-private:
-    void DeliberatelyUpdateSelection();
-    void ImplicitlyUpdateSelection();
-    void ClearDeliberateSelection();
-    void RefreshUI(TInt aSelection);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryPinyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryPinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_PHRASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-class TAknFepInputStateEntryPinyinPhrase : public TAknFepInputStateChineseBase
-    {
-public:
-	TAknFepInputStateEntryPinyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-    void HandleCommandL(TInt aCommandId);
-private:
-    void ClearDeliberateSelection();
-    void DeliberatelyUpdateSelection();
-    void ImplicitlyUpdateSelection();
-    void RefreshUI(TInt aSelection);
-    void UpdateIndicator();
-
-    //the follow 12 functions for phrase creation
-    /**
-     * Optimize spelling.
-     *
-     * @since S60 v5.0.
-     * @param aOptimizeBefore the before spelling array be Optimized.
-     * @param aOptimizeAfter the after spelling array be Optimized..
-     * @return None.
-     */
-    void OptimizeSpellingL(CDesCArrayFlat& aOptimizeBefore,
-        CDesCArrayFlat& aOptimizeAfter);
-
-    /**
-     * Delete current keystroke.
-     *
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void DeleteCurrentKeystroke();
-
-    /**
-     * Add current keystroke.
-     *
-     * @since S60 v5.0.
-     * @param keystroke input keystroke.
-     * @return None.
-     */
-    void AddCurrentKeystrokeL(const TDesC& keystroke);
-
-    /**
-     * Get the keystroke.
-     *
-     * @since S60 v5.0.
-     * @param aKey input key.
-     * @param aKeystroke the aKey's keytroke.
-     * @return None.
-     */
-    void GetKeystrokeNum(TInt aKey, TDes& aKeystroke);
-
-    /**
-     * Get the keystroke buf.
-     *
-     * @since S60 v5.0.
-     * @param aKeystrokeArray keytroke array.
-     * @param aKeystrokeBuf the keytroke buf.
-     * @return None.
-     */
-    void GetKeystrokeBuf(const CDesCArrayFlat& aKeystrokeArray,
-        TDes& aKeystrokeBuf);
-
-    /**
-     * clear keystroke.
-     *
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void ClearKeystrokeBuf();
-
-    /**
-     * Get tome mark.
-     *
-     * @since S60 v5.0.
-     * @param aKeystrokeArray keytroke array.
-     * @param aPinyinToneMark the tone mark.
-     * @return None.
-     */
-    void GetPinyinToneMark(const CDesCArrayFlat& aKeystrokeArray,
-        TDes& aPinyinToneMark);
-
-    /**
-     * Check keystroke.
-     *
-     * @since S60 v5.0.
-     * @param aKeystrokeArray keytroke array.
-     * @param aPinyinToneMark the tone mark.
-     * @return None.
-     */
-    TBool CheckKeystroke(TInt aKey, const CDesCArrayFlat& aKeystrokeArray);
-
-    /**
-     * Check tome mark.
-     *
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void CheckTonemarkL();
-
-    /**
-     * Get change state.
-     *
-     * @since S60 v5.0.
-     * @return ETrue change state, EFasle others.
-     */
-    TBool GetChangeState();
-
-    /**
-     * Append show keystroke.
-     *
-     * @since S60 v5.0.
-     * @param aShowKeystrokeArray the show keytroke array.
-     * @param aKeystrokeArray the keytroke array.
-     * @param aPinyinToneMark the tome mark.
-     * @return None.
-     */
-    void ShowKeystrokeAppendL(CDesCArrayFlat& aShowKeystrokeArray,
-        const CDesCArrayFlat& aKeystrokeArray, const TDesC& aPinyinToneMark);
-
-    /**
-     * change  CBA.
-     *
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void ChangeCbaL();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_PINYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateQwertyBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_H__
-
-#include "AknFepUiInputStateCandidateQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateEntryQwertyBase : public TAknFepInputStateCandidateQwerty
-    {
-public:
-    TAknFepInputStateEntryQwertyBase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-protected:
-    void RefreshUI();
-    void SetInputPaneToneMark();
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyBaseChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEENTRYQWERTYBASECHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATEENTRYQWERTYBASECHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateQwertyChinesePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateEntryQwertyBaseChinesePhrase : 
-public TAknFepInputStateCandidateQwertyChinesePhrase
-    {
-public:
-    TAknFepInputStateEntryQwertyBaseChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-protected:
-    void RefreshUI();
-    void SetInputPaneToneMark();
-   };
-
-#endif //T_AKNFEPUIINPUTSTATEENTRYQWERTYBASECHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyBasePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateQwertyBasePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateQwertyPhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateEntryQwertyBasePhrase : public TAknFepInputStateCandidateQwertyPhrase
-    {
-public:
-    TAknFepInputStateEntryQwertyBasePhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-protected:
-    void RefreshUI();
-    void SetInputPaneToneMark();
-   };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_BASE_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyCangJie.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateEntryQwertyCangJie definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_CANGJIE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_CANGJIE_H__
-
-#include "AknFepUiInputStateEntryQwertyBase.h"
-#include "AknFepUIManagerStateInterface.h"
-#include <PtiDefs.h>
-
-class TAknFepInputStateEntryQwertyCangJie : public TAknFepInputStateEntryQwertyBase
-    {
-public:
-TAknFepInputStateEntryQwertyCangJie(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-	TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-private:
-	inline TBool IsValidCangJieCode(TInt aKey) const;
-    };
-
-inline TBool TAknFepInputStateEntryQwertyCangJie::IsValidCangJieCode(TInt aKey) const
-	{
-	return ((aKey >= EPtiKeyQwertyA) && (aKey <= EPtiKeyQwertyZ));
-	}
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_CANGJIE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyPinyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyPinyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_H__
-
-#include "AknFepUiInputStateEntryQwertyBase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateEntryQwertyPinyin : public TAknFepInputStateEntryQwertyBase
-    {
-public:
-    TAknFepInputStateEntryQwertyPinyin(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    void RefreshUI();  
-private:
-    TBool HandleVerticalNavigation(TInt aKey);
-    TBool HandleHorizontalNavigation(TInt aKey);
-    void UpdateIndicator();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyPinyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyPinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_PHRASE_H__
-
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-class TAknFepInputStateEntryQwertyPinyinPhrase : 
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateEntryQwertyPinyinPhrase(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_PINYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyStroke.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateEntryQwertyStroke definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_STROKE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_STROKE_H__
-
-#include "AknFepUiInputStateEntryQwertyBase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-
-class TAknFepInputStateEntryQwertyStroke : public TAknFepInputStateEntryQwertyBase
-    {
-public:
-    TAknFepInputStateEntryQwertyStroke(MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-    void RefreshUI();
-private:
-    TBool HandleHorizontalNavigation(TInt aKey);
-    TBool HandleVerticalNavigation(TInt aKey);
-    void  UpdateIndicator();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_STROKE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Stroke phrase Qwerty entry state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEENTRYQWERTYSTROKE_PHRASE_H
-#define T_AKNFEPUIINPUTSTATEENTRYQWERTYSTROKE_PHRASE_H
-
-// User includes 
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-
-/**
- *  TAknFepInputStateEntryQwertyStrokePhrase class.
- *
- *  Implementation of Stroke phrase Qwerty entry state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateEntryQwertyStrokePhrase : 
-    public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryQwertyStrokePhrase(MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-protected:
-
-    /**
-     * From TAknFepInputStateEntryQwertyBasePhrase
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-
-    /**
-     * From TAknFepInputStateEntryQwertyBasePhrase
-     * Update popup window
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    void RefreshUI();
-    };
-
-#endif //T_AKNFEPUIINPUTSTATEENTRYQWERTYSTROKE_PHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateEntryQwertyWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateEntryQwertyWesternPredictive : public TAknFepInputStateBase
-    {
-public:
-    /**
-    * Constructor
-    * @param    aOwner  The UI manager that owns this input state
-    */
-    TAknFepInputStateEntryQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-    
-    /**
-    * The main handler function for the key presses.
-    * @param    aKey    The key to be handled. This may be either TKeyCode or TStdScanCode value.
-    * @param    aLength Tells if the key press is short or long one.
-    */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-
-public: // Functions from MPtiObserver interface
-    /**
-    * Called when last word in the selection list is activated. Not relevant as we use the 
-    * candidate popup.
-    */
-    void LastWordInSelectionList();
-    
-    /**
-    * Called when the first word in the selection list is activated. Not relevant as we use the
-    * candidate popup.
-    */
-    void FirstWordInSelectionList();
-
-    /**
-    * Called when the Chr multitap timer expires. The case should be updated at that time.
-    */ 
-    void KeyTimerExpired();
-
-protected:
-    /**
-    * Sets the shift state of the PtiEngine according the shift and chr states of the Fep.
-    * @param    aKey    The with which the shift state is used. This is needed because shift
-    *                   works differently with letter keys than with numbers and punctuation.
-    */
-    void HandleShiftState(TInt aKey);
-    
-    /**
-    * Handles keys which cause the active word to be committed (like enter, space, tab,...).
-    * @param    aKey    The key to be handled.
-    */
-    TBool HandleWordBreakingKeysL(TInt aKey);
-    
-    /**
-    * Handles the "normal" keys which (may) cause some character to be appended to the current word.
-    * @param    aKey    The key to be handled.
-    */
-    TBool HandleQwertyKeysL(TInt aKey);
-    
-    /**
-    * Handles the keys which cause cursor movements (arrows, backspace).
-    * @param    aKey    The key to be handled
-    * @param    aLength The key press length.
-    */
-    TBool HandleNaviKeysL(TInt aKey, TKeyPressLength aLength);
-};
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_QWERTY_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyZhuyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateEntryQwertyZhuyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_H__
-
-#include "AknFepUiInputStateEntryQwertyBase.h"
-
-class TAknFepInputStateEntryQwertyZhuyin : public TAknFepInputStateEntryQwertyBase
-    {
-    public:
-        TAknFepInputStateEntryQwertyZhuyin(MAknFepUIManagerStateInterface* aOwner,
-                                     MAknFepUICtrlContainerChinese* aUIContainer);
-
-        TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-	 /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    public: // Functions from MPtiObserver interface
-        void KeyTimerExpired();    
-    protected:
-        void RefreshUI();
-        void UpdateIndicator();
-        TBool HandleVerticalNavigation(TInt aKey);            
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateEntryQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStateEntryQwertyZhuyinPhrase : 
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStateEntryQwertyZhuyinPhrase(MAknFepUIManagerStateInterface* aOwner,
-                                 MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryStroke.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryStroke definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_STROKE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_STROKE_H__
-
-#include "AknFepUiInputStateEntryZhuyinStrokeBase.h"
-
-class TAknFepInputStateEntryStroke : public TAknFepInputStateEntryZhuyinStrokeBase
-    {
-public:
-    TAknFepInputStateEntryStroke(MAknFepUIManagerStateInterface* aOwner,
-                                 MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-
-    void HandleCommandL(TInt aCommandId);
-    
-    void RefreshUI();
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_STROKE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Stroke phrase entry state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEENTRYSTROKEPHRASE_H
-#define T_AKNFEPUIINPUTSTATEENTRYSTROKEPHRASE_H
-
-// User includes 
-#include "aknfepuiinputstatestrokephrasebase.h"
-
-/**
- *  TAknFepInputStateEntryStrokePhrase class.
- *
- *  Implementation of Stroke phrase entry state
- *
- *  @lib avkonfep.dll
- *  @since S60 v5.0
- */
-class TAknFepInputStateEntryStrokePhrase : 
-    public TAknFepInputStateStrokePhraseBase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V5.0
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer );
-	 /**
-    * Handling Command events.
-    * This Method is called by CAknFepUIManagerJapanese.
-    *
-    * @param aCommandId Command ID value
-    */
-    void HandleCommandL(TInt aCommandId);                                   
-
-    /**
-     * From TAknFepInputStateEntryZhuyinStrokeBasePhrase
-     * Handle system key press event
-     *
-     * @since S60 V5.0
-     * @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);
-private:   
-    /**
-     * Commit phrase to the EEP ctrl.
-     *
-     * @since S60 v5.0
-     * @param aText that need to commint to the EEP phrase.     
-     * @return ETrue commit to the EEP phrase successful, EFalse other.
-     */
-    TBool CommitInlineEEPL( const TDesC& aText );
-    /**
-     * Handle CBA1,ok and select candidate phrase key press.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void HandleCommitL();
-    };
-
-/**
- *  TAknFepInputStateEditStrokePhrase class.
- *
- *  Implementation of Stroke phrase creation edit state
- *
- *  @lib avkonfep.dll
- *  @since S60 v5.0
- */
-class TAknFepInputStateEditStrokePhrase : public TAknFepInputStateStrokePhraseBase
-    {
-public:
-
-    /**
-     * C++ construct.
-     *
-     * @since S60 v5.0.
-     * @return self object.
-     */ 
-    TAknFepInputStateEditStrokePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * HandleKeyL.
-     *
-     * @since S60 v5.0.
-     * @return ETrue.
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    };    
-
-
-/**
- *  TAknFepInputStateEntryStrokePhraseCreation class.
- *
- *  Implementation of Stroke phrase creation candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v5.0
- */
-class TAknFepInputStateCandidateStrokePhrase : 
-    public TAknFepInputStateStrokePhraseBase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v5.0
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateCandidateStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * From TAknFepInputStateEntryZhuyinStrokeBasePhrase
-     * Handle system key press event
-     *
-     * @since S60 v5.0
-     * @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);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );   
-    
-private:
-    
-    /**
-     * Handle Horizontal Navigation.
-     *
-     * @since S60 v5.0
-     * @param aKey,key press.     
-     * @return None
-     */
-    void HandleHorizontalNavigation(TInt aKey);
-    
-    /**
-     * Commit phrase to the EEP ctrl.
-     *
-     * @since S60 v5.0
-     * @param aText that need to commint to the EEP phrase.     
-     * @return ETrue commit to the EEP phrase successful, EFalse other.
-     */
-    TBool CommitInlineEEPL( const TDesC& aText );
-    
-    /**
-     * Handle CBA1,ok and select candidate phrase key press.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void HandleCommitL();
-    
-    inline TInt MapKeyToIndex(TInt aKey);
-    
-    };
-
-inline TInt TAknFepInputStateCandidateStrokePhrase::MapKeyToIndex( TInt aKey )
-    {
-    TInt index = aKey - EPtiKey0; // get zero-based value first
-    return !index ? 9 : --index; // map it for one-based keys...
-    }    
-    
-#endif //T_AKNFEPUIINPUTSTATEENTRYSTROKEPHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryThaiPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryThaiPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_THAI_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_THAI_PREDICTIVE_H__
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-
-class TAknFepInputStateEntryThaiPredictive : public TAknFepInputStateEntryWesternPredictive
-    {
-public:
-    TAknFepInputStateEntryThaiPredictive(MAknFepUIManagerStateInterface* aOwner);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-private:
-    TBool HandleDownKeyL();
-    TBool HandleUpKeyL();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_THAI_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryVietnamesePredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +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 TAknFepUiInputStateEntryVietnamesePredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_VIET_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_VIET_PREDICTIVE_H__
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-class TAknFepInputStateEntryVietnamesePredictive : public TAknFepInputStateEntryWesternPredictive
-    {
-public:
-    TAknFepInputStateEntryVietnamesePredictive(MAknFepUIManagerStateInterface* aOwner);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-private:
-    TBool HandleStarKeyL(TKeyPressLength aLength);
-    TBool HandleDeleteKeysL(TInt aKey, TKeyPressLength /*aLength*/);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_VIET_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +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 TAknFepInputStateEntryWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateEntryWesternPredictive : public TAknFepInputStateBase
-    {
-public:
-    TAknFepInputStateEntryWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void HandleCommandL(TInt aCommandId);
-
-public: // Functions from MPtiObserver interface
-    void LastWordInSelectionList();
-    void FirstWordInSelectionList();
-    void DoPreviousMatchL();
-    void DoNextMatch();
-protected:
-    TBool HandleStandardNumericKeysL(TInt aKey, TKeyPressLength aLength);
-    TBool HandleNaviKeysL(TInt aKey, TKeyPressLength aLength);
-    virtual TBool HandleStarKeyL(TKeyPressLength aLength);
-
-private:
-	void ConvertDigitToDigittype(TDigitType& digittype,TDes& aConvertedNumeral);
-	TBool IsMoreCandidate();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryWesternPredictiveJp.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* 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:            Provides the TAknFepInputStateEntryWesternPredictiveJp definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_JP_H__
-#define __AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_JP_H__
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-class TAknFepInputStateEntryWesternPredictiveJp : public TAknFepInputStateEntryWesternPredictive
-    {
-public:
-    TAknFepInputStateEntryWesternPredictiveJp(MAknFepUIManagerStateInterface* aOwner);
-
-protected:
-    TBool HandleStarKeyL(TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ENTRY_WESTERN_PREDICTIVE_JP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryZhuyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryZhuyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_H__
-
-#include "AknFepUiInputStateEntryZhuyinStrokeBase.h"
-
-class TAknFepInputStateEntryZhuyin : public TAknFepInputStateEntryZhuyinStrokeBase
-    {
-public:
-    TAknFepInputStateEntryZhuyin(MAknFepUIManagerStateInterface* aOwner,
-                                 MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    void HandleCommandL(TInt aCommandId);
-
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-protected:
-    void RefreshUI(TBool aOrdinals);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_PHRASE_H__
-
-//#include "AknFepUIInputStateEntryZhuyinStrokeBasePhrase.h"
-#include "aknfepuiinputstatezhuyinphrasecreationbase.h"
-
-class TAknFepInputStateEntryZhuyinPhrase : public TAknFepInputStateZhuyinPhraseCreationBase //TAknFepInputStateEntryZhuyinStrokeBasePhrase
-    {
-public:
-    TAknFepInputStateEntryZhuyinPhrase(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-	TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-	void HandleCommandL(TInt aCommandId);
-
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-    void GetNewCandidatesL(const TDesC& aSource, RPointerArray<HBufC>& aList);
-    void AddPhraseToDB( TDes& aPhrase );
-    /**
-     * Handle CBA1,ok and select candidate phrase key press.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void HandleCommitL();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INPUT_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryZhuyinStrokeBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryZhuyinStrokeBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-/**
- * Zhuyin and Stroke share a base class as there is commonality
- * over most of their functionality
- */
-class TAknFepInputStateEntryZhuyinStrokeBase : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateEntryZhuyinStrokeBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-    void HandleCommandL(TInt aCommandId);
-
-public: // Functions from MPtiObserver interface
-    virtual void KeyTimerExpired();
-
-protected:
-    void RefreshUI(TBool aOrdinals);
-    void SetInputPaneToneMark();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateEntryZhuyinStrokeBasePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryZhuyinStrokeBasePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_PHRASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-/**
- * Zhuyin and Stroke share a base class as there is commonality
- * over most of their functionality
- */
-class TAknFepInputStateEntryZhuyinStrokeBasePhrase : public TAknFepInputStateChineseBase
-    {
-public:
-    enum 
-        {
-        EPhoneticChanged  = 0x0001
-        };
-
-    TAknFepInputStateEntryZhuyinStrokeBasePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void InitializeStateL();
-
-    void HandleCommandL(TInt aCommandId);
-
-public: // Functions from MPtiObserver interface
-    virtual void KeyTimerExpired();
-
-protected:
-    void RefreshUI();
-    void SetInputPaneToneMark();
-    void UpdateIndicator();
-    };
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ZHUYIN_STROKE_BASE_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateHalfQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateHalfQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_HALF_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_HALF_QWERTY_H__
-
-#include <w32std.h>
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateHalfQwerty : public TAknFepInputStateBase
-    {
-public:
-    TAknFepInputStateHalfQwerty(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    void HandleCaseChange(TInt aKey, TBool aIsCharacter);
-    TBool IsCharacterKey(const TInt aKey);
-
-  
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-    
-protected:
-    TBool TryGetValidCharForKey(const TInt& aKey, TChar& aChar);
-    TBool TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase);
-    static TInt TimerExpire(TAny* aPtr);
-    TInt ChrKeyTimerExpired();
-    TBool IsKeymapped(TInt aKey);
-    TBool CheckHasValidNumerKeyMappedL(TInt aKey, TBool &aLangChanged);	
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_HALF_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialArabicHebrewMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialArabicHebrewMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_ARABIC_HEBREW_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_ARABIC_HEBREW_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-
-class TAknFepInputStateInitialArabicHebrewMultitap : public TAknFepInputStateInitialLatinMultitap
-    {
-public:
-    TAknFepInputStateInitialArabicHebrewMultitap(MAknFepUIManagerStateInterface* aOwner); 
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_ARABIC_HEBREW_MULTITAP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialArabicHebrewPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateInitialWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_ARABIC_HEBREW_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_ARABIC_HEBREW_PREDICTIVE_H__
-
-#include "AknFepUiInputStateInitialWesternPredictive.h"
-
-class TAknFepInputStateInitialArabicHebrewPredictive : 
-public TAknFepInputStateInitialWesternPredictive
-    {
-public:
-    TAknFepInputStateInitialArabicHebrewPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_ARABIC_HEBREW_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialChineseGeneric.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialChineseGeneric definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_H__
-
-#include "AknFepUiInputStateInitialChineseMultitapBase.h"
-
-class TAknFepInputStateInitialChineseGeneric : public TAknFepInputStateInitialChineseMultitapBase
-    {
-public:
-    TAknFepInputStateInitialChineseGeneric(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialChineseGenericHalfQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateInitialChineseGenericHalfQwerty definition.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIINPUTSTATEINITIALCHINESEGENERICHALFQWERTY_H_
-#define AKNFEPUIINPUTSTATEINITIALCHINESEGENERICHALFQWERTY_H_
-#include "AknFepUiInputStateHalfQwerty.h"
-
-class TAknFepInputStateInitialChineseGenericHalfQwerty :
-public TAknFepInputStateHalfQwerty
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateInitialChineseGenericHalfQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode );
-    /**
-     * 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 );
-
-private:
-    /**
-     * to check whether the key stroke is the sct key or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is the sct key , otherwise not
-     */
-    TBool IsSCTKey( TInt aKey );
-    /**
-     * to check whether the key stroke is a character key or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is a character key , otherwise not
-     */
-    TBool IsCharacter( TInt aKey );
-    /**
-     * Handle the shift key envent 
-     *
-     * @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 HandleKeyByShiftOrCharPressedL( TInt aKey, TKeyPressLength aLength );
-    /**
-     * to check whether the key stroke is a emotion key  or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is a emotion key , otherwise not
-     */
-    TBool HandleEmotionKeyL( TInt aKey, TKeyPressLength aLength );
-    /**
-     * to check whether the key is a Multitap key or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is a Multitap key , otherwise not
-     */
-    TBool IsMultitapkey( TInt aKey );
-    };
-#endif /*AKNFEPUIINPUTSTATEINITIALCHINESEGENERICHALFQWERTY_H_*/
-
-//end of the file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialChineseGenericQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateInitialChineseGenericQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_QWERTY_H__
-
-#include "AknFepUiInputStateQwerty.h"
-
-class TAknFepInputStateInitialChineseGenericQwerty : public TAknFepInputStateQwerty
-    {
-public:
-    TAknFepInputStateInitialChineseGenericQwerty(MAknFepUIManagerStateInterface* aOwner, 
-                                                 TInt aMode);
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    void KeyTimerExpired();
-private:
-    TBool IsSCTKey(TInt aKey);
-    TBool IsCharacter(TInt aKey);
-    TBool HandleKeyByShiftOrCharPressed(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_CHIN_GEN_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialChineseMultitapBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialChineseMultitapBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_CHINESE_MULTITAP_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_CHINESE_MULTITAP_BASE_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-class MAknFepUICtrlContainerChinese;
-
-class TAknFepInputStateInitialChineseMultitapBase : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateInitialChineseMultitapBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_CHINESE_MULTITAP_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialFullNumber.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +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 TAknFepUiInputStateInitialFullNumber definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_FULL_NUMBER_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_FULL_NUMBER_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepUiInputStateInitialFullNumber class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialFullNumber
- :public TAknFepUiInputStateInitialJapaneseBase
-    {
-public: // onstructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialFullNumber(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-    /**
-     * From TAknFepInputStateBase
-     * Hnadling Keypress events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 3.0
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-public: // Functions from MPtiObserver interface
-
-    virtual void KeyTimerExpired();
-
-private: // New function
-    /**
-     * Handle ITUT-keypad characters (half-width only)
-     * 
-     * @since 3.0
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    TBool HandleOwnKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Handle Qwerty characters
-     * 
-     * @since 3.0
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    TBool HandleQwertyKeyL(TInt aKey,
-                           TKeyPressLength aLength,
-                           TWidthChar aWidth);
-
-
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_FULL_NUMBER_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialHalfQwertyWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialHalfQwertyWesternPredictive definition.
-*       This state is active when the predictive Half QWERTY mode is used but no
-*       inline editing is yet ongoing. The entry state is activated when some
-*       character key press is gained.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_HALFQWERTY_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_HALFQWERTY_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateBase.h"
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepUiInputStateInitialHalfQwertyWesternPredictive : /*public TAknFepInputStateBase, */public  TAknFepInputStateInitialMultitapBase
-    {
-public:
-    /**
-    * Constructor
-    * @param    aOwner  The UI manager owning this state object.
-    */
-    TAknFepUiInputStateInitialHalfQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    /**
-    * Handler for the key presses.
-    * @param    aKey    The key code to be handled
-    * @param    aLength The lengyh of the key press
-    */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-    * Called when the Chr multitap timer expires. The case should be updated at that time.
-    */ 
-    void KeyTimerExpired();
-private:
-    void HandleShiftState( TInt aKey );
-    
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_HALFQWERTY_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialHiragana.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +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 TAknFepUiInputStateInitialHiragana definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepInputStateInitialHiragana class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialHiragana
- :public TAknFepUiInputStateInitialJapaneseBase
-    {
-public: // onstructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialHiragana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-    TBool HandleNumericShortKeyL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialHiraganaKanji.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +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 TAknFepUiInputStateInitialHiraganaKanji definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_KANJI_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_KANJI_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateInitialHiraganaKanji class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialHiraganaKanji
- :public TAknFepUiInputStateInitialJapaneseBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_HIRAGANA_KANJI_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialIndicPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +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 TAknFepInputStateInitialIndicPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_INDIC_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_INDIC_PREDICTIVE_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-
-/**
-*  This class handles the initial predictive state for Indic languages.
-*  @lib avkonfep.dll
-*  @since Series 60 3.1
-*/
-
-class TAknFepInputStateInitialIndicPredictive : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-	/**
-    * 
-    * Constructor for TAknFepInputStateInitialIndicPredictive.	
-    * @since 3.1M
-    * @return 
-    */
-    TAknFepInputStateInitialIndicPredictive(MAknFepUIManagerStateInterface* aOwner, 
-                                            TLanguage aLanguage);
-
-public: // from TAknFepInputStateBase 
-    /**
-    * 
-    * Returns the virama character depending on the input language.	
-    * @since 3.1M
-    * @return Etrue if the Key is handled. 
-    */
-  
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_INDIC_PREDICTIVE_H__
-//End of File
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialJapaneseBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +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 TAknFepUiInputStateInitialJapaneseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_JAPANESE_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_JAPANESE_BASE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-/**
- *  TAknFepUiInputStateInitialJapaneseBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialJapaneseBase :public TAknFepUiInputStateJapaneseBase
-    {
-public: // onstructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialJapaneseBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapaneseBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_JAPANESE_BASE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialKatakana.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +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 TAknFepUiInputStateInitialKatakana definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_KATAKANA_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_KATAKANA_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepUiInputStateInitialKatakana class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialKatakana
-  :public TAknFepUiInputStateInitialJapaneseBase
-    {
-public: // onstructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-private: // New functions
-    /**
-     * Setting input mode to PtiEngine
-     *
-     * @since 3.0
-     * @param aWidth Full or Half width
-     */
-    void SetInputMode(const TWidthChar aWidth);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_KATAKANA_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialKoreanMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateInitialKoreanMultitap definition.
-*
-*/
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_KOREAN_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_KOREAN_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialKoreanMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialKoreanMultitap(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-	
-	/**
-	 * Decides whether text input should be commited or not.
-	 * Function makes comparison between latest key input and korean keymappping data.
-	 * if data match, then text is to be commited. 
-     * @param aData TPtrC
-     * @param aKey TInt.
-     * @return TBool
-	 */
-	TBool CommitOrNot(TPtrC aData, TInt aKey);
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_KOREAN_MULTITAP_H__
-
-// End of file
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialLatinJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +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 TAknFepUiInputStateInitialLatinJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_FULL_LATIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_FULL_LATIN_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepUiInputStateInitialLatinJapanese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateInitialLatinJapanese
- :public TAknFepUiInputStateInitialJapaneseBase
-    {
-public: // onstructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateInitialLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public:// Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateInitialJapaneseBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 3.1
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_FULL_LATIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialLatinMultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialLatinMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_LATIN_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_LATIN_MULTITAP_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialLatinMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialLatinMultitap(MAknFepUIManagerStateInterface* aOwner); 
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_LATIN_MULTITAP_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialMultitapBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialMultitapBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_MULTITAP_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_MULTITAP_BASE_H__
-
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateInitialMultitapBase : public TAknFepInputStateBase
-    {
-public:
-    TAknFepInputStateInitialMultitapBase(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	void SetStarKeyFlag( TBool aSet );
-
-public: // Functions from MPtiObserver interface
-
-    virtual void KeyTimerExpired();
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_MULTITAP_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialNumber.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialNumber definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_NUMBER_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_NUMBER_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialNumber : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialNumber(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-protected:
-    static TInt NumericResourceTimerTimeoutL(TAny* aPtr);
-    TInt NumericResourceKeyTimerTimeoutL();    
-    
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_NUMBER_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialQwertyWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialQwertyWesternPredictive definition.
-*       This state is active when the predictive QWERTY mode is used but no
-*       inline editing is yet ongoing. The entry state is activated when some
-*       character key press is gained.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_QWERTY_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_QWERTY_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateInitialQwertyWesternPredictive : public TAknFepInputStateBase
-    {
-public:
-    /**
-    * Constructor
-    * @param    aOwner  The UI manager owning this state object.
-    */
-    TAknFepInputStateInitialQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    /**
-    * Handler for the key presses.
-    * @param    aKey    The key code to be handled
-    * @param    aLength The lengyh of the key press
-    */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_QWERTY_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialStrokeFind.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialStrokeFind definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_STROKE_FIND_H__
-#define __AKN_FEP_UI_INPUT_STATE_STROKE_FIND_H__
-
-#include "AknFepUiInputStateChineseBase.h"
-
-class TAknFepInputStateInitialStrokeFind : public TAknFepInputStateChineseBase
-    {
-public:
-    TAknFepInputStateInitialStrokeFind(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_STROKE_FIND_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialThaiPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2002-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:           
-*       Provides the TAknFepInputStateInitialThaiPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_THAI_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_THAI_PREDICTIVE_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-class TAknFepInputStateInitialThaiPredictive : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialThaiPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    void HandleCommandL(TInt aCommandId);
-
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_THAI_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialWesternPredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialWesternPredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INITIAL_WESTERN_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_INITIAL_WESTERN_PREDICTIVE_H__
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-
-// Reverting the change of deriving from TAknFepInputStateBase to fix the bugs
-// BSAN-7G4G3K and BSAN-7GD8ZW.
-class TAknFepInputStateInitialWesternPredictive : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    TAknFepInputStateInitialWesternPredictive(MAknFepUIManagerStateInterface* aOwner);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INITIAL_WESTERN_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateInitialZhuyinFind.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialZhuyinFind definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ZHUYIN_FIND_H__
-#define __AKN_FEP_UI_INPUT_STATE_ZHUYIN_FIND_H__
-
-#include "AknFepUiInputStateInitialChineseMultitapBase.h"
-
-class TAknFepInputStateInitialZhuyinFind : public TAknFepInputStateInitialChineseMultitapBase
-    {
-public:
-    TAknFepInputStateInitialZhuyinFind(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_ZHUYIN_FIND_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateJapaneseBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +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 TAknFepUiInputStateJapaneseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUTSTATE_JAPANESE_BASE_H__
-#define __AKN_FEP_UI_INPUTSTATE_JAPANESE_BASE_H__
-
-// INCLUDES
-#include <e32std.h>
-#include <uikon.hrh>
-
-#include "AknFepUiInputStateBase.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepUICtrlContainerJapanese.h"
-
-#include <PtiObserver.h> // MPtiObserver
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-
-/**
- *  TAknFepUiInputStateJapaneseBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateJapaneseBase : public TAknFepInputStateBase
-    {
-protected:
-        enum TStateEvent
-        {
-        EStateEventNone,
-        EStateEventCompleteCharacter,
-        EStateEventDeleteCharacter,
-        EStateEventScrollLeft,
-        EStateEventScrollRigth,
-        EStateEventScrollUp,
-        EStateEventScrollDown,
-        EStateEventCandidateOff,
-        EStateEventCandidateOn
-        };
-
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     *
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateJapaneseBase(MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer);
-
-
-public: // Functions from base classes
-    /**
-     * From MPtiObserver
-     * Call this function when Multitap timer of PtiEngine was time-out
-     *
-     * @since 2.6
-     */
-     void KeyTimerExpired();
-
-    /**
-     * From MPtiObserver
-     * not-use Japanese state
-     *
-     * @since 2.6
-     */
-     void LastWordInSelectionList();
-
-    /**
-     * From MPtiObserver
-     * not-use Japanese state
-     *
-     * @since 2.6
-     */
-     void FirstWordInSelectionList();
-
-    /**
-     * From TAknFepInputStateBase
-     * Hnadling Keypress events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepInputStateBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-    /**
-     * From TAknFepInputStateBase
-     * A patch to force the vtable to be copied during an assignment.
-     *
-     * @since 2.6
-     */
-    void operator=(const TAknFepInputStateBase& aState);
-
-protected: // New Functions
-    /**
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * Handling Qwerty keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.8
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleQwertyShortKeyL(TInt aKey);
-
-    /**
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-    virtual TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Update inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-    virtual TBool UpdateInlineEditingCharacterL();
-
-    /**
-     * Commit inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-    virtual TBool CommitInlineEditingCharacterL();
-
-    /**
-     * Getting UI container object
-     *
-     * @since 2.6
-     * @return Japanese UI container object
-     */
-    MAknFepUICtrlContainerJapanese* UIContainer();
-
-    /**
-     * Update character case
-     *
-     * @since 2.6
-     * @param aChar 1-character, Judgment data of character case
-     */
-    void  UpdateCase(TPtrC& aChar);
-
-    TBool IsNumberKey(const TInt aKey);
-    TBool IsQwertyKey(const TInt aKey);
-
-private: // New Functions
-    /**
-     * Check whether last catacter case and current catacter case is same
-     * 
-     * @since 2.6
-     * @param aChar 1-character, Judgment data of character case
-     * @return ETrue If aChar case is diffrent from last character
-     */
-    TBool IsDiffrentCase(TPtrC& aChar) const;
-
-    /**
-     * Check a caracter case is upper
-     * 
-     * @since 2.6
-     * @param aChar 1-character, Judgment data of character case
-     * @return ETrue If aChar case is upper case
-     */
-    TBool IsUpperCase(TPtrC& aChar) const;
-
-    /**
-     * Check a caracter case is lower
-     *
-     * @since 2.6
-     * @param aChar 1-character, Judgment data of character case
-     * @return ETrue If aChar case is lower case
-     */
-    TBool IsLowerCase(TPtrC& aChar) const;
-
-protected: // Data
-    MAknFepUICtrlContainerJapanese* iUIContainer; // not owner
-    };
-#endif//__AKN_FEP_UI_INPUT_STATE_JAPANESE_BASE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateJapanesePredictiveBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +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 TAknFepUiInputStateJapanesePredictiveBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_JAPANESE_PREDICTIVE_BASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_JAPANESE_PREDICTIVE_BASE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapaneseBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateJapanesePredictiveBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateJapanesePredictiveBase
-    :public TAknFepUiInputStateJapaneseBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateJapanesePredictiveBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * 
-     * @since 2.6
-     */
-     void CloseUI();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling numeric long-keypress events.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericLongKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Update inline editing string
-     *
-     * @since 2.6
-     * @return ETrue If inline editing string was updated
-     */
-     TBool UpdateInlineEditingCharacterL();
-
-protected: // New Fanctions
-    /**
-     *
-     *
-     * @since 2.6
-     * @return ETrue
-     */
-    virtual TBool UpdateCandidateListL(TInt aIndex = 0);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_JAPANESE_PREDICTIVE_BASE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateNextWordJapanesePredictive.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +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 TAknFepUiInputStateNextWordJapanesePredictive definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_NEXTWORD_JAPANESE_PREDICTIVE_H__
-#define __AKN_FEP_UI_INPUT_STATE_NEXTWORD_JAPANESE_PREDICTIVE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapanesePredictiveBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStateNextWordJapanesePredictive class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStateNextWordJapanesePredictive
-    :public TAknFepUiInputStateJapanesePredictiveBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     * 
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStateNextWordJapanesePredictive(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Initialize state
-     * 
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     * 
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     * 
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_NEXTWORD_JAPANESE_PREDICTIVE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidate.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidate definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-class TAknFepInputStatePredictiveCandidate : public TAknFepInputStateCandidateBase 
-    {
-public:
-    TAknFepInputStatePredictiveCandidate(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDCANDCHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATEPREDCANDCHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateBaseChinesePhrase.h"
-
-class TAknFepInputStatePredictiveCandidateChinesePhrase : 
-public TAknFepInputStateCandidateBaseChinesePhrase 
-    {
-public:
-    TAknFepInputStatePredictiveCandidateChinesePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDCANDCHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-#ifndef AKNFEPUIINPUTSTATEPREDICTIVECANDIDATEHALFQWERTYCHINESEPHRASE_H_
-#define AKNFEPUIINPUTSTATEPREDICTIVECANDIDATEHALFQWERTYCHINESEPHRASE_H_/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStatePredictiveCandidateMiniQwertyPinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h"
-
-
-
-class TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase : 
-    public TAknFepInputStatePredictiveInputQwertyChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-
-    TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-protected:
-
-    /**
-     * From TAknFepInputStatePredictiveInputQwertyPhrase
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-    };
-
-#endif /*AKNFEPUIINPUTSTATEPREDICTIVECANDIDATEHALFQWERTYCHINESEPHRASE_H_*/
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStatePredictiveCandidateMiniQwertyPinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PREDICTIVECANDIDATE_MINIQWERTY_CHINESEPHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PREDICTIVECANDIDATE_MINIQWERTY_CHINESEPHRASE_H__
-
-#include "AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h"
-
-
-
-class TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase : 
-    public TAknFepInputStatePredictiveInputQwertyChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-
-    TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-
-    /**
-     * From TAknFepInputStatePredictiveInputQwertyPhrase
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-
-    };
-
-
-
-#endif __AKN_FEP_UI_INPUT_STATE_PREDICTIVECANDIDATE_MINIQWERTY_CHINESEPHRASE_H__
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveCandidatePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateBasePhrase.h"
-
-class TAknFepInputStatePredictiveCandidatePhrase : public TAknFepInputStateCandidateBasePhrase 
-    {
-public:
-    TAknFepInputStatePredictiveCandidatePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePinyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidatePinyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_H__
-
-#include "AknFepUiInputStatePredictiveCandidate.h"
-
-class TAknFepInputStatePredictiveCandidatePinyin : public TAknFepInputStatePredictiveCandidate
-    {
-public:
-    TAknFepInputStatePredictiveCandidatePinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidatePinyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveCandidatePinyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_PHRASE_H__
-
-#include "AknFepUiInputStatePredictiveCandidateChinesePhrase.h"
-
-class TAknFepInputStatePredictiveCandidatePinyinPhrase : 
-public TAknFepInputStatePredictiveCandidateChinesePhrase
-    {
-public:
-    TAknFepInputStatePredictiveCandidatePinyinPhrase(
-								MAknFepUIManagerStateInterface* aOwner,
-								MAknFepUICtrlContainerChinese* aUIContainer); 
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_PINYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateQwertyZhuyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveCandidateQwertyZhuyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_H__
-
-#include "AknFepUiInputStateCandidateQwertyChinese.h"
-
-class TAknFepInputStatePredictiveCandidateQwertyZhuyin : 
-public TAknFepInputStateCandidateQwertyChinese
-    {
-public:
-    TAknFepInputStatePredictiveCandidateQwertyZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateQwertyChinesePhrase.h"
-
-class TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase : 
-public TAknFepInputStateCandidateQwertyChinesePhrase
-    {
-public:
-    TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_QWERTY_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateStroke.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidateStroke definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_CAND_STROKE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_CAND_STROKE_H__
-
-#include "AknFepUiInputStateCandidateChinese.h"
-
-class TAknFepInputStatePredictiveCandidateStroke : public TAknFepInputStateCandidateChinese
-    {
-public:
-    TAknFepInputStatePredictiveCandidateStroke(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_CAND_STROKE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveCandidateStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Stroke phrase predictive state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDICTIVECANDIDATESTROKE_PHRASE_H
-#define T_AKNFEPUIINPUTSTATEPREDICTIVECANDIDATESTROKE_PHRASE_H
-
-// User includes 
-#include "AknFepUiInputStatePredictiveCandidateChinesePhrase.h"
-
-/**
- *  TAknFepInputStatePredictiveCandidateStrokePhrase class.
- *
- *  Implementation of Stroke phrase predictive state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStatePredictiveCandidateStrokePhrase : 
-    public TAknFepInputStatePredictiveCandidateChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStatePredictiveCandidateStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer); 
-
-protected:
-
-    /**
-     * From TAknFepInputStatePredictiveCandidatePhrase
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDICTIVECANDIDATESTROKE_PHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInput.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveInput definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-class TAknFepInputStatePredictiveInput : public TAknFepInputStateCandidateBase 
-    {
-public:
-    TAknFepInputStatePredictiveInput(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Pinyin phrase predictive Qwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTCHINESE_H
-#define T_AKNFEPUIINPUTSTATEPREDINPUTCHINESE_H
-
-// User includes 
-#include "AknFepUiInputStateCandidateChinese.h"
-
-/**
- *  TAknFepInputStatePredictiveInputChinese class.
- *
- *  Implementation of Chinese predictive state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStatePredictiveInputChinese : public TAknFepInputStateCandidateChinese 
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-
-    TAknFepInputStatePredictiveInputChinese(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * From TAknFepInputStateCandidateChinese
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTCHINESE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTCHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATEPREDINPUTCHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateBaseChinesePhrase.h"
-
-class TAknFepInputStatePredictiveInputChinesePhrase : 
-public TAknFepInputStateCandidateBaseChinesePhrase 
-    {
-public:
-    TAknFepInputStatePredictiveInputChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTCHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputJapanese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +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 TAknFepUiInputStatePredictiveInputJapanese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PREDICTIVE_INPUT_JAPANESE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PREDICTIVE_INPUT_JAPANESE_H__
-
-// INCLUDES
-#include <e32std.h>
-
-#include "AknFepUiInputStateJapanesePredictiveBase.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepUIManagerStateInterface;
-enum TKeyPressLength;
-
-/**
- *  TAknFepUiInputStatePredictiveInputJapanese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class TAknFepUiInputStatePredictiveInputJapanese
-    :public TAknFepUiInputStateJapanesePredictiveBase
-    {
-public: // Constructors and destructor
-    /**
-     * C++ default Constructor
-     *
-     * @since 2.6
-     * @param aOwner Object derived MAknFepUIManagerStateInterface
-     * @param aUIContainer MAknFepUICtrlContainerJapanese object
-     */
-    TAknFepUiInputStatePredictiveInputJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer);
-
-public: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Call this function when Multitap timer of PtiEngine was time-out
-     *
-     * @since 2.6
-     */
-    void KeyTimerExpired();
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Initialize state
-     *
-     * @since 2.6
-     */
-     void InitializeStateL();
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @since 2.6
-     * @param aCommandId Command ID value
-     */
-     void HandleCommandL(TInt aCommandId);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Close UI (Predictive popup)
-     * @since 2.6
-     */
-     void CloseUI();
-
-protected: // Functions from base classes
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling short keypress events of the numeric and the star.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNumericShortKeyL(TInt aKey);
-
-    /**
-     * From TAknFepUiInputStateJapanesePredictiveBase
-     * Handling auxiliary keypress events including OK and Backspace.
-     * HandleKeyEventL() call this method.
-     *
-     * @since 2.6
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleAuxKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * From TAknFepUiInputStateEntryJapaneseMultitap
-     * Handling navigate keypress events. HandleKeyEventL() call this method.
-     *
-     * @since 3.2
-     * @param aKey The event key code
-     * @param aLength The Length of keypress
-     * @return ETrue If aKey was handled
-     */
-     TBool HandleNaviKeyL(TInt aKey, TKeyPressLength aLength);
-
-private: // New function
-
-    /**
-     * TAknFepUiInputStatePredictiveInputJapanese::IsFullWidthAlphaChar
-     * Check full-width alphabet character
-     */
-    TBool IsFullWidthAlphaChar(TPtrC aPtr);
-
-    /**
-     * TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToConversionL()
-     * Change state to conversion
-     */
-    void ChangeStateToConversionL();
-
-    /**
-     * TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToEntryL()
-     * Change state to Entry
-     */
-    void ChangeStateToEntryL();
-    };
-#endif //__AKN_FEP_UI_INPUT_STATE_PREDICTIVE_INPUT_JAPANESE_H__
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputMiniQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTMINIQWERTYCHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATEPREDINPUTMINIQWERTYCHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase : 
-public TAknFepInputStateCandidateQwertyBaseChinesePhrase 
-    {
-public:
-    TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTCHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveInputPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateBasePhrase.h"
-
-class TAknFepInputStatePredictiveInputPhrase : public TAknFepInputStateCandidateBasePhrase 
-    {
-public:
-    TAknFepInputStatePredictiveInputPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_H__
-
-#include "AknFepUiInputStateCandidateQwertyChineseBase.h"
-
-class TAknFepInputStatePredictiveInputQwerty : public TAknFepInputStateCandidateQwertyChineseBase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYCHINESEPHRASE_H_
-#define T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYCHINESEPHRASE_H_
-
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStatePredictiveInputQwertyChinesePhrase : 
-public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyChinesePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYCHINESEPHRASE_H_
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwertyPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateQwertyBasePhrase.h"
-
-class TAknFepInputStatePredictiveInputQwertyPhrase : 
-public TAknFepInputStateCandidateQwertyBasePhrase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPinyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PINYIN__H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PINYIN__H__
-
-#include "AknFepUiInputStateCandidateQwertyChineseBase.h"
-
-class TAknFepInputStatePredictiveInputQwertyPinyin : 
-public TAknFepInputStateCandidateQwertyChineseBase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyPinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-private:
-
-    TBool IsValidPinyinKey(TInt aKey);
-    TBool IsValidEntryKey(TInt aKey);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_PINYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            header file of Pinyin phrase predictive Qwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDICTIVEINPUTQWERTYPINYIN_PHRASE_H
-#define T_AKNFEPUIINPUTSTATEPREDICTIVEINPUTQWERTYPINYIN_PHRASE_H
-
-// User includes 
-#include "AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h"
-
-/**
- *  TAknFepInputStatePredictiveInputQwertyPinyinPhrase class.
- *
- *  Implementation of Pinyin phrase predictive Qwerty state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStatePredictiveInputQwertyPinyinPhrase : 
-    public TAknFepInputStatePredictiveInputQwertyChinesePhrase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-
-    TAknFepInputStatePredictiveInputQwertyPinyinPhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-
-    /**
-     * From TAknFepInputStatePredictiveInputQwertyPhrase
-     * Handle system key press event
-     *
-     * @since S60 v3.2
-     * @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);
-
-private:
-
-    /**
-     * Judge the kay is in the valid pinyin key group 
-     *
-     * @since S60 v3.2
-     * @param aKey System key
-     * @return ETrue if it is pinyin key, otherwise it is not
-     */
-    TBool IsValidPinyinKey(TInt aKey);
-
-    /**
-     * Judge the kay is in the valid entry key group 
-     *
-     * @since S60 v3.2
-     * @param aKey System key
-     * @return ETrue if it is pinyin key, otherwise it is not
-     */
-    TBool IsValidEntryKey(TInt aKey);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDICTIVEINPUTQWERTYPINYIN_PHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyStroke.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKE_H
-#define T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKE_H
-
-#include "AknFepUiInputStateCandidateQwertyChineseBase.h"
-
-class TAknFepInputStatePredictiveInputQwertyStroke : 
-public TAknFepInputStateCandidateQwertyChineseBase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyStroke(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    TBool IsValidEntryKey(TInt aKey);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyStrokePhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c)  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:            ?Description
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKEPHRASE_H
-#define T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKEPHRASE_H
-
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-class TAknFepInputStatePredictiveInputQwertyStrokePhrase : 
-public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-private:
-    TBool IsValidEntryKey(TInt aKey);
-    };
-
-#endif T_AKNFEPUIINPUTSTATEPREDINPUTQWERTYSTROKEPHRASE_H
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyZhuyin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwertyZhuyin definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-#include "AknFepUiInputStateCandidateQwertyChinese.h"
-
-class TAknFepInputStatePredictiveInputQwertyZhuyin : public TAknFepInputStateCandidateQwertyChinese
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-#define __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-
-#include "AknFepUiInputStateCandidateBase.h"
-#include "AknFepUiInputStateCandidateQwertyChinesePhrase.h"
-
-class TAknFepInputStatePredictiveInputQwertyZhuyinPhrase 
-    : public TAknFepInputStateCandidateQwertyChinesePhrase
-    {
-public:
-    TAknFepInputStatePredictiveInputQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_PRED_INPUT_QWERTY_ZHUYIN_PHRASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_QWERTY_H__
-
-#include <w32std.h>
-#include "AknFepUiInputStateBase.h"
-
-class TAknFepInputStateQwerty : public TAknFepInputStateBase
-    {
-public:
-    TAknFepInputStateQwerty(MAknFepUIManagerStateInterface* aOwner); 
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    TBool IsNumberKey(const TInt aKey);
-
-public: // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-
-protected:
-    TBool IsCharacterKey(const TInt aKey);
-    TBool IsQwertyKey(const TInt aKey);
-    
-//	TBool IsAllowedKeymappingForNumberMode(TChar aChar);    
-	void NumericCharacterForQwertyKey(TInt aInScanCode,
-                                      TKeyEvent& aEvent,
-                                      TBool aShifted,
-                                      TChar& aResult);     
-	TBool IsExceptionChar(TUint16 aChar);
-                                         
-                                      
-	/**
-	* There are currently handled as a herdcoded special cases. 
-	* This method is used for collecting and handling those cases.
-	*/                                      
-	void CustomFilter(TPtrC aInput, TDes& aOutput, TInt aLanguage, 
-                      TInt aCurrentCase, TBool aShiftDown);                                      
-	void HandleCaseChange(TInt aKey, TBool aIsCharacter);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool IsCharacterNumber(TChar aChar);
-    TBool TryGetValidCharForKey(const TInt& aKey, TChar& aChar);
-    TBool TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase);
-#endif
-    TBool CheckForValidNumberEntryForqwerty(TInt aKey);  	  	                                        
-private:
-	//TBool iFakeDelete;  	                                        
-	//TBool iCharKeyException;	 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    
-    //IsLanguageSupportsCaseChanges() should return ETrue if the current input language
-    // does not support case changes. Eg - Arabic, Urdu, Farsi, Hindi, etc. 
-    //It should return EFalse for other languages (eg - latin based languages)
-    TBool IsLanguageWithoutCaseChanges();
-    
-    //IsSpecialNonLatinScript() should return ETrue if the current input language uses
-    // either Greek, Cyrillic or Hebrew script. Currently supported languages with Cyrillic 
-    // script are Russian, Ukrainian and Bulgarian.
-    TBool IsSpecialNonLatinScript();
-    
-#endif
-    };
-
-#endif //__AKN_FEP_UI_INPUT_STATE_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStateQwertyKorean.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       CAknFepInputStateQwertyKorean declaration
-*
-*/
-
-#ifndef AKNFEPINPUTSTATEQWERTYKOREAN_H
-#define AKNFEPINPUTSTATEQWERTYKOREAN_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-
-#include "AknFepUiInputStateQwerty.h"
-
-class CPtiEngine;
-
-class TAknFepInputStateQwertyKorean : public TAknFepInputStateQwerty
-    {
-public:
-    
-    TAknFepInputStateQwertyKorean(MAknFepUIManagerStateInterface* aOwner);
-    
-    virtual ~TAknFepInputStateQwertyKorean();
-
-private:
-
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    void KeyTimerExpired();
-    
-private:
-    
-    };
-
-#endif // AKNFEPINPUTSTATEQWERTYKOREAN_H
--- a/fep/aknfep/inc/AknFepUiInputStateZhuyinFindQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateZhuyinFindQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_ZHUYIN_FIND_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_ZHUYIN_FIND_QWERTY_H__
-
-#include "AknFepUiInputStateChineseFindQwerty.h"
-#include "AknFepUiInputStateInitialChineseGenericQwerty.h"
-#include "AknFepUiInputStateInitialChineseGenericHalfQwerty.h"
-
-class TAknFepInputStateZhuyinFindQwerty : public TAknFepInputStateChineseFindQwerty
-    {
-public:
-    TAknFepInputStateZhuyinFindQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    };
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-class TAknFepInputStateZhuyinFindMiniQwerty : public TAknFepInputStateInitialChineseGenericQwerty
-    {
-public:
-    TAknFepInputStateZhuyinFindMiniQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                TInt aMode);
-    
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-     // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-    };
-
-#ifdef __HALF_QWERTY_KEYPAD
-class TAknFepInputStateZhuyinFindHalfQwerty : 
-public TAknFepInputStateInitialChineseGenericHalfQwerty
-    {
-public:
-    TAknFepInputStateZhuyinFindHalfQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                TInt aMode);
-    
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-     // Functions from MPtiObserver interface
-    void KeyTimerExpired();
-private:
-    TBool IsValidZhuyinKey(TInt aKey);
-    };
-
-#endif //__HALF_QWERTY_KEYPAD
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-#endif //__AKN_FEP_UI_INPUT_STATE_STROKE_FIND_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiInputStatelStrokeFindQwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateStrokeFindQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_STROKE_FIND_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_STROKE_FIND_QWERTY_H__
-
-#include "AknFepUiInputStateChineseFindQwerty.h"
-#include "AknFepUiInputStateInitialChineseGenericHalfQwerty.h"
-#include "AknFepUiInputStateInitialChineseGenericQwerty.h"
-
-class TAknFepInputStateStrokeFindQwerty : public TAknFepInputStateChineseFindQwerty
-    {
-public:
-    TAknFepInputStateStrokeFindQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    };
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-class TAknFepInputStateStrokeFindMiniQwerty :
-    public TAknFepInputStateInitialChineseGenericQwerty
-    {
-public:
-    TAknFepInputStateStrokeFindMiniQwerty(
-            MAknFepUIManagerStateInterface* aOwner,
-            TInt aMode);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-#ifdef __HALF_QWERTY_KEYPAD
-class TAknFepInputStateStrokeFindHalfQwerty :
-    public TAknFepInputStateInitialChineseGenericHalfQwerty
-    {
-public:
-    TAknFepInputStateStrokeFindHalfQwerty(
-            MAknFepUIManagerStateInterface* aOwner,
-            TInt aMode);
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif //__HALF_QWERTY_KEYPAD
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-#endif //__AKN_FEP_UI_INPUT_STATE_STROKE_FIND_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiManagerBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,479 +0,0 @@
-/*
-* Copyright (c) 2003 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 CAknFepUIManagerBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MANAGER_BASE_H__
-#define __AKN_FEP_UI_MANAGER_BASE_H__
-
-// INCLUDES
-#include <uikon.hrh>                        //TAknEditorNumericKeymap
-
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManagerInterface.h"
-#include "AknFepUIManagerStateInterface.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class CPtiEngine;
-class TAknFepInputStateBase;
-
-/**
- *  CAknFepUIManagerBase class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- *
- */
-class CAknFepUIManagerBase : 
-            public CBase,
-            public MAknFepManagerInterface,
-            public MAknFepUIManagerStateInterface
-    {
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EBaseLanguageNumericKeymapIndex = 0x00FF,
-        EMaskShiftOffset                = 8 
-        };
-
-public: // Constructors and destructor
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    static CAknFepUIManagerBase* NewL(MAknFepManagerUIInterface* aFepMan, 
-                                      CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual ~CAknFepUIManagerBase();
-
-public: // Functions from base classes
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT     
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, 
-                 TInt aKeyboardType = EPtiKeyboardNone);
-#else
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif    
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    void SetCase(TCase aCase);
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap);
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    const TDesC& NumberModeKeyMapping() const;
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * From MAknFepManagerInterface
-     * this is in base class only
-     * @since 2.6
-     */
-    void HandleCommandL(TInt aCommandId);
-    void HandleCommandL(TInt aCommandId, TInt aParam);
-
-    /**
-     * From MAknFepManagerInterface
-     * this should be implemented in each ui manager
-     * 
-     * @since 2.6
-     */
-    void CloseUI();
-
-    /**
-     * From MAknFepManagerInterface
-     * this is in base class only
-     *
-     * @since 2.6
-     */
-    void ExpireMultitapTimer();
-
-    /**
-     * From MAknFepManagerInterface
-     * this is in base class only
-     * 
-     * @since 2.6
-     */
-    TBool IsValidNumericLongKeyPress(TInt aKey) const;
-
-    /**
-     * From MAknFepManagerInterface
-     * this api use in chinese and western
-     * 
-     * @since 2.6
-     */
-    void AddTextToUserDictionaryL(const TDesC& aText);
-
-    /**
-     * From MAknFepManagerInterface
-     * this should be implemented in each ui manager
-     * 
-     * @since 2.6
-     */
-    void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, 
-                                  TInt aPositionOfCharacter) const;
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    virtual TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    virtual void SetInputLanguageL(TLanguage aLanguage);
-
-    /**
-     * From MAknFepManagerInterface
-     * 
-     * @since 2.6
-     */
-    TBool IsValidShiftKeyPress() const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool IsValidFnKeyPress() const;
-
-    virtual TBool IsValidLongChrKeyPress() const;
-
-#endif
-
-    /**
-     * From MAknFepManagerInterface
-     * this api use in chinese ui only
-     * 
-     * @since 2.6
-     */
-    void SetEditorContext(TInt aContext);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    void ActivateUI();
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this is in base class only
-     *
-     * @since 2.6
-     */
-    TUIState State() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this should be implemented in each ui manager
-     *
-     * @since 2.6
-     */
-    TUIState ChangeState(TUIState aState);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this is in base class only
-     *
-     * @since 2.6
-     */
-    MAknFepManagerUIInterface* FepMan() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * using instead of PtiEngine()
-     *
-     * @since 2.6
-     */
-    CPtiEngine* PtiEngine() const;
-    
-    // the follow function for phrase creation
-    MZhuyinKeyHandler* ZhuyinKeyHandler();
-    CAknFepZhuyinAnalyser* ZhuyinAnalyser();
-    
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this api use in chinese input states only
-     *
-     * @since 2.6
-     */
-    TBool IsValidChineseInputKey(TInt aKey) const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this api use in chinese Qwerty input states only
-     *
-     * @since 3.0
-     */
-    TBool IsValidChineseInputKeyQwerty(TInt aKey) const;
-    
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this api use in chinese Qwerty input states only
-     *
-     * @since 3.0
-     */
-    TBool IsQwertyZhuyinToneMarkKey(TInt aKey) const;
-
-    /**
-     * this api use in HK Qwerty input states only
-     *
-     * @since 3.0
-     */
-    virtual void UpdateCangJieState();
-    
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this api use in chinese input states only
-     *
-     * @since 3.0
-     */
-    TBool IsValidChineseSymbol(TInt aKey) const;
-    /**
-     * From MAknFepUIManagerStateInterface
-     * this is in base class only
-     * TLanguage is Language identity enumeration defined in e32std.h
-     *
-     * @since 2.6
-     */
-    TLanguage GetLanguage() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * 
-     * @since 2.6
-     */
-    CAknFepCaseManager* CaseMan() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * 
-     * 
-     * @since 2.6
-     * this api use in chinese ui only
-     */
-    TPtr GetLatestDeliberateSelection() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * Thai only
-     *
-     * @since 2.6
-     */
-    TInt ThaiSCTResourceId(TUint aPrewChar, TInt aKey);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * Japanese only
-     *
-     * @since 2.6
-     */
-    CDesCArrayFlat* CandidateArray();
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * Japanese only
-     *
-     * @since 2.6
-     */
-    TBool IsPredictive() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     * Japanese only
-     * 
-     * @since 2.6
-     */
-    void SetInlineEditUnderlineVisibility(TBool aFlag);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.0
-     */
-    TBool IsQwerty() const;
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.2
-     */
-    void SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.2
-     */
-    TInt EditorMaxLength();
-    
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.2
-     */
-    void ResourceChanged(TInt aType);
-
-    /**
-     * From MAknFepUIManagerStateInterface
-     *
-     * @since 3.2
-     */
-    void SetNextFepUI(MAknFepManagerInterface* /*aNextUi*/);
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	void SetStarKeyFlag( TBool aSet );
-
-protected: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    void ConstructL(TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    CAknFepUIManagerBase(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual TAknFepInputStateBase* FepUIState();
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    /**
-     * Removes the character produced by the initial short key press and substitutes
-     * it with the character found behind Fn. If no no Fn-mapping is available, the
-     * function does nothing. Also, in non-QWERTY modes the function does nothing because
-     * ITU-T input states handle long press internally.
-     * @return  ETrue   if key was consumed and no further handling should be made.
-     *                  This is the case when editor is filled up and no more characters can be entered.
-     *          EFalse  if handling of the key event may continue. Either the mode has
-     *                  been changed to Fn mode for the next character or nothing has
-     *                  been done and normal key repeat should happen.
-     * @since 3.2
-     */
-    virtual TBool HandleLongKeyL( TInt aKey );
-    
-    /**
-    * Removes the character produced by the last handled key press. Long press number
-    * entry uses this to remove the character which was entered when the key was pressed
-    * down ("the initially short press character") before the key press turned out to be
-    * a long press.
-    * @return   ETrue   if something was really removed
-    *           EFalse  if nothing was removed (the previous key press had produced no charcters)
-    * @since 3.2
-    */
-    virtual TBool RollbackPreviousCharL();
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-
-protected: // Data
-    TInt iMode;                         // 
-    TInt iNumericKeymapResourceId;
-    HBufC* iNumericKeymapBuffer;
-    TLanguage iLanguage;                //
-
-    CPtiEngine* iPtiEngine;             //owned
-
-    TAknFepInputStateBase* iStatePtr;   // gcc workaround to force compiler to use vtable lookup.
-
-    MAknFepManagerUIInterface* iFepMan; //not owned
-    CAknFepCaseManager* iCaseMan;       //not owned
-    TBool iPredictive;                  // ETrue: prediction is ON.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // predictive QWERTY changes (e.g. XT9) ---->
-    TBool iQwertyInputMode;             // ETrue: QWERTY mode is ON
-    // predictive QWERTY changes (e.g. XT9) <----
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-    TInt iPreviousInputSeqLen;
-    TInt iPreviousEditorTextLen;
-    TInt iInputSeqLenDeltaWithLastKey;
-    TInt iEditorTextLenDeltaWithLastKey;
-#endif //__ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__   
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    TUIState iInitialFepUIState;        //
-    TInt     iCaseBeforeLongKey;
-    };
-
-#endif //__AKN_FEP_UI_MANAGER_BASE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiManagerChinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,312 +0,0 @@
-/*
-* Copyright (c) 2003-2005 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 CAknFepUIManagerChinese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MANAGER_CHINESE_H__
-#define __AKN_FEP_UI_MANAGER_CHINESE_H__
-
-// INCLUDES
-#include <uikon.hrh>                        //TAknEditorNumericKeymap
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateChineseBase.h"
-#include <PtiDefs.h>
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class CAknFepUIManagerBase;
-class MAknFepUICtrlContainerChinese;
-
-/**
- *  CAknFepUIManagerChinese class.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- *
- */
-class CAknFepUIManagerChinese : public CAknFepUIManagerBase
-    {
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EBaseLanguageNumericKeymapIndex = 0x00FF,
-        EMaskShiftOffset                = 8 ,
-        ESupportPinyinPhrase            = 0x0010,
-        ESupportZhuyinPhrase            = 0x0020,
-        ESupportStrokePhrase            = 0x0040,
-        EQueryPtiEngineAlready          = 0x0080
-        };
-
-public: // Constructors and destructor
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    static CAknFepUIManagerChinese* NewL(MAknFepManagerUIInterface* aFepMan, 
-                                         CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual ~CAknFepUIManagerChinese();
-
-public: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength,TEventCode aEventCode = EEventKey);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void CloseUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, 
-                                  TInt aPositionOfCharacter) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void SetInputLanguageL(TLanguage aLanguage);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void SetEditorContext(TInt aContext);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TUIState ChangeState(TUIState aState);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */
-    void ChangeStatetItut(TUIState aState);
-    
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */
-    void ChangeStateQwerty(TUIState aState);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TBool IsValidChineseInputKey(TInt aKey) const;
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */
-    TBool IsValidChineseInputKeyQwerty(TInt aKey) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */
-    TBool IsQwertyZhuyinToneMarkKey(TInt aKey) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TPtr GetLatestDeliberateSelection() const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */
-    void UpdateCangJieState();
-    
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 3.0
-     */ 
-    TBool IsValidChineseSymbol(TInt aKey) const;
-
-private: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TAknFepInputStateBase* FepUIState();
-
-    /**
-    * Clears all flags down
-    */
-    inline void ResetFlags();
-
-    /**
-    *  Clears aFlag bitfield in iFlags
-    */
-    inline void ClearFlag(TInt aFlag);
-
-    /**
-    *  Sets aFlag bitfield in iFlags
-    */
-    inline void SetFlag(TInt aFlag);
-    
-    /**
-    * Returns ETrue if the aFlag bitfield in iFlags is set, EFalse if it
-    * is clear
-    */    
-    inline TBool IsFlagSet(TInt aFlag) const;
-    /**
-    * Query PtiEngine for phrase input
-    */ 
-    void QueryPtiEngine();
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    /**
-     * Decide if the key mapped stroke
-     * 
-     * since 3.2.3
-     */   
-    TBool IsKeyMappedStroke(TInt aKey) const;
-#endif
-public: // New Fanctions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    MAknFepUICtrlContainerChinese* UIContainer() const;
-
-    /**
-    * Check valid shift key press
-    */ 
-    TBool IsValidShiftKeyPress() const;
-#ifdef RD_INTELLIGENT_TEXT_INPUT     
-    TBool IsValidFnKeyPress() const;  
-
-    TBool IsValidLongChrKeyPress() const;
-
-#endif    
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-protected: // from CAknFepUIManagerBase
-    TBool RollbackPreviousCharL();
-#endif // RD_INTELLIGENT_TEXT_INPUT	
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-private: // New Fanctions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    CAknFepUIManagerChinese(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    void ConstructL(TLanguage aLanguage);
-
-private: // Data
-    TAknFepInputStateChineseBase iFepUiState;
-    MAknFepUICtrlContainerChinese* iContainerPane;
-
-    // note that this must be stored in the manager, as the input states cannot allocate any memory
-    TBufC<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> iLatestDeliberateSelection;
-	TUint iFlags;
-    TInt iPrevMode;
-    TBool iQwertyMode;
-    };
-    
-inline void CAknFepUIManagerChinese::SetFlag(TInt aFlag)
-    {
-    iFlags |= aFlag;
-    }
-
-inline void CAknFepUIManagerChinese::ClearFlag(TInt aFlag)
-    {
-    iFlags &= ~aFlag;
-    }
-
-inline void CAknFepUIManagerChinese::ResetFlags()
-    {
-    iFlags = 0;
-    }
-
-inline TBool CAknFepUIManagerChinese::IsFlagSet(TInt aFlag) const
-    {
-    return iFlags & aFlag;
-    }
-
-
-#endif //__AKN_FEP_UI_MANAGER_CHINESE_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiManagerKorean.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIManagerKorean definition.
-*
-*/
-#ifndef __AKN_FEP_UI_MANAGER_KOREAN_H__
-#define __AKN_FEP_UI_MANAGER_KOREAN_H__
-
-// INCLUDES
-#include <uikon.hrh>                        //TAknEditorNumericKeymap
-
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiInputStateBase.h"
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepManagerInterface;
-class MAknFepManagerUIInterface;
-class MAknFepUIManagerStateInterface;
-class MAknFepUIManagerStateInterface;
-
-
-/**
- * CAknFepUIManagerWestern class.
- * This class is mounted based on CAknFepUiManager.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class CAknFepUIManagerKorean : public CAknFepUIManagerBase
-    {
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EBaseLanguageNumericKeymapIndex = 0x00FF,
-        EMaskShiftOffset                = 8 
-        };
-
-public: // Constructors and destructor
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    static CAknFepUIManagerKorean* NewL(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual ~CAknFepUIManagerKorean();
-
-public: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void CloseUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * Activates western predictive entry UI to inline editing state 
-     * by changing input state to entry state.
-     * 
-     * @since 2.6
-     */
-    void ActivateUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TUIState ChangeState(TUIState aState);
-    
-private: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    void ConstructL(TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    CAknFepUIManagerKorean(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
-    
-   	/**
-     * 
-     * 
-     * @since 2.6
-     */
-
-    TAknFepInputStateBase* FepUIState();
-
-
-
-private: // Data
-                              
-    TAknFepInputStateBase iFepUiState;
-    
-    };
-
-#endif //__AKN_FEP_UI_MANAGER_KOREAN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepUiManagerWestern.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
-* Copyright (c) 2003 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 CAknFepUIManagerWestern definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MANAGER_WESTERN_H__
-#define __AKN_FEP_UI_MANAGER_WESTERN_H__
-
-// INCLUDES
-#include <uikon.hrh>                        //TAknEditorNumericKeymap
-
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiInputStateBase.h"
-
-// CONSTANTS
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-#define KSLATEGRAY TRgb(112,138,144); // slate gray color used in AutoCompletion mode
-#else	// RD_PRED_AW_COMPLETION
-#define KSLATEGRAY TRgb(112,138,144); // slate gray color used in AutoCompletion mode
-#endif // RD_PRED_AW_COMPLETION
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-class MAknFepManagerInterface;
-class MAknFepManagerUIInterface;
-class MAknFepUIManagerStateInterface;
-class CAknFepThaiSCTSelector;
-class CAknFepVietnameseToneManager;
-
-/**
- * CAknFepUIManagerWestern class.
- * This class is mounted based on CAknFepUiManager.
- *
- *  @lib AknFep.lib
- *  @since 2.6
- */
-class CAknFepUIManagerWestern : public CAknFepUIManagerBase
-    {
-private:
-    /**
-     * private constants
-     */
-    enum
-        {
-        EBaseLanguageNumericKeymapIndex = 0x00FF,
-        EMaskShiftOffset                = 8 
-        };
-
-public: // Constructors and destructor
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    static CAknFepUIManagerWestern* NewL(MAknFepManagerUIInterface* aFepMan, 
-                                         CAknFepCaseManager* aCaseMan, TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    virtual ~CAknFepUIManagerWestern();
-
-public: // Functions from base classes
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void CloseUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void AddTextToUserDictionaryL(const TDesC& aText);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    void GetFormatOfFepInlineText(TCharFormat& aFormat, TInt& aNumberOfCharactersWithSameFormat, 
-                                  TInt aPositionOfCharacter) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * Activates western predictive entry UI to inline editing state 
-     * by changing input state to entry state.
-     * 
-     * @since 2.6
-     */
-    void ActivateUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TUIState ChangeState(TUIState aState);
-
-    /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    TInt ThaiSCTResourceId(TUint aPrewChar, TInt aKey);
-
-     /**
-     * From CAknFepUIManagerBase
-     * 
-     * @since 2.6
-     */
-    CAknFepVietnameseToneManager* VietnameseToneManager() const; 
-
-private: // New Functions
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    void ConstructL(TLanguage aLanguage);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    CAknFepUIManagerWestern(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan);
-
-    /**
-     * 
-     * 
-     * @since 2.6
-     */
-    TAknFepInputStateBase* FepUIState();
-
-private: // Data
-
-    TAknFepInputStateBase iFepUiState;
-    CAknFepThaiSCTSelector* iAknFepThaiSCTSelector;
-    CAknFepVietnameseToneManager* iVietToneMarkMgr; // own, tone mark mgr for vietnamese
-    };
-
-#endif //__AKN_FEP_UI_MANAGER_WESTERN_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepVietnameseInputTables.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/*
-* Copyright (c) 2002 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 global tables.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_VIET_TABLES_H__
-#define __AKN_FEP_VIET_TABLES_H__
-
-// Vietnamese tone tables
-
-const TInt KNumberOfToneMarks = 5; // This equals the tone marks5 + mother vowel1
-
-const TText VietVowelList[] = {
-    0x0041, 0x0061, 0x0102, 0x0103, 0x00c2, 
-    0x00e2, 0x0045, 0x0065, 0x00ca, 0x00ea,
-    0x0049, 0x0069, 0x004f, 0x006f, 0x00d4,
-    0x00f4, 0x01a0, 0x01a1, 0x0055, 0x0075,
-    0x01af, 0x01b0, 0x0059, 0x0079
-    };
-
-const TText VietToneMatrix[][KNumberOfToneMarks] = 
-    {
-    0x0301, 0x0300, 0x0309, 0x0303, 0x0323, // Tone Marks
-    0x00c1, 0x00c0, 0x1ea2, 0x00c3, 0x1ea0,
-    0x00e1, 0x00e0, 0x1ea3, 0x00e3, 0x1ea1,
-    0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6,
-    0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7,
-    0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac,
-    0x1ea5, 0x1ea7, 0x1ea9, 0x1eab, 0x1ead,
-    0x00c9, 0x00c8, 0x1eba, 0x1ebc, 0x1eb8,
-    0x00e9, 0x00e8, 0x1ebb, 0x1ebd, 0x1eb9,
-    0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6,
-    0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7,
-    0x00cd, 0x00cc, 0x1ec8, 0x0128, 0x1eca,
-    0x00ed, 0x00ec, 0x1ec9, 0x0129, 0x1ecb,
-    0x00d3, 0x00d2, 0x1ece, 0x00d5, 0x1ecc,
-    0x00f3, 0x00f2, 0x1ecf, 0x00f5, 0x1ecd,
-    0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
-    0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9,
-    0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2,
-    0x1edb, 0x1edd, 0x1edf, 0x1ee1, 0x1ee3,
-    0x00da, 0x00d9, 0x1ee6, 0x0168, 0x1ee4,
-    0x00fa, 0x00f9, 0x1ee7, 0x0169, 0x1ee5,
-    0x1ee8, 0x1eea, 0x1eec, 0x1eee, 0x1ef0,
-    0x1ee9, 0x1eeb, 0x1eed, 0x1eef, 0x1ef1,
-    0x00dd, 0x1ef2, 0x1ef6, 0x1ef8, 0x1ef4,
-    0x00fd, 0x1ef3, 0x1ef7, 0x1ef9, 0x1ef5
-    };
-
-#endif // __AKN_FEP_VIET_TABLES_H__
-
-// End of file
--- a/fep/aknfep/inc/AknFepVietnameseToneManager.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-/*
-* Copyright (c) 2003 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 __AKN_FEP_VIETNAMESE_TONE_MANAGER__
-#define __AKN_FEP_VIETNAMESE_TONE_MANAGER__
-
-#include <e32def.h>
-#include <e32base.h>
-
-#include "AknFepManager.h"
-#include "AknFepVietnameseInputTables.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
- * CAknFepVietnameseToneManager class.
- * This class is mounted based on CAknFepUIManagerWestern.
- *
- *  @lib AknFep.lib
- *  @since 2.8
- */
-class CAknFepVietnameseToneManager : public CBase
-    {
-private:
-     /**
-     * Construct
-     *
-     * @param aFepManager fep manager
-     *
-     */
-    void ConstructL();
-
-     /**
-     * private constructor
-     */
-    CAknFepVietnameseToneManager();     
-    
-public:
-     /**
-     * NewL first phase construction
-     *
-     * @param aFepManager fep manager
-     *
-     */
-    static CAknFepVietnameseToneManager* NewL();
-
-     /**
-     * Destructor
-     */
-    virtual ~CAknFepVietnameseToneManager();
-    
-public:
-    /**
-     * Start the tone mark looping 
-     */
-    TBool StartToneMarkLooping();
-
-    /**
-     * first phase construction
-     *
-     * @param aParent parent window
-     * @param aPaneLayout the required layout
-     *
-     */
-    TText GetVowelWithToneMark() const;
-
-    /**
-     * Increase the tone mark
-     */
-    inline void IncrementToneMark();
-
-    /**
-     * stop tone marking looping, counterpart to StartToneMarkLooping
-     */
-    void StopToneMarkLooping();
-
-    /**
-     * Set the fep manager pointer
-     *
-     * @param aFepManager Pointer to the fep manager
-     *
-     */
-    inline void SetFepManager(MAknFepManagerUIInterface* aFepManager);
-
-    /**
-     * Judge if the current state is looping or not
-     */
-    inline TBool IsLooping() const;
-
-    /**
-     * Judge if the current state is looping or not
-     */
-    inline void SetDeletedVowel(TText aDeletedVowel);
-    
-    /**
-     * Judge if the current state is looping or not
-     */
-    inline TText GetDeletedVowel() const;
-
-private:    // Data
-    MAknFepManagerUIInterface* iFepMan;     // not own
-    TInt iToneIndex;                        // Index of tone mark list
-    TInt iVowelIndex;                       // Index of vowel list
-    TBool iIsLooping;                       // Judge if input is in looping state
-    TText iPrevVowel;                       // Prev Vowel, used for undo the backdeletion
-    };
-
-// Inline function implementation
-inline TBool CAknFepVietnameseToneManager::IsLooping() const
-    {
-    return iIsLooping;
-    }
-
-inline void CAknFepVietnameseToneManager::SetFepManager(MAknFepManagerUIInterface* aFepManager)
-    {
-    iFepMan = aFepManager;
-    }
-
-inline void CAknFepVietnameseToneManager::IncrementToneMark()
-    {
-    if (iToneIndex+1 == KNumberOfToneMarks)
-        iToneIndex = 0;
-    else
-        ++iToneIndex;
-    }
-
-inline void CAknFepVietnameseToneManager::SetDeletedVowel(TText aDeletedVowel)
-    {
-    iPrevVowel = aDeletedVowel;
-    }
-
-inline TText CAknFepVietnameseToneManager::GetDeletedVowel() const
-    {
-    return iPrevVowel;
-    }
-
-#endif // __AKN_FEP_VIETNAMESE_TONE_MANAGER__
-
-// End of file
--- a/fep/aknfep/inc/AknFepZhuyinAnalyser.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Pen input related enums
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPZHUYINANALYSER_H
-#define C_AKNFEPZHUYINANALYSER_H
-
-
-#include <e32base.h>
-
-class TSpellBand;      
-class CZhuyinAnalyserDbFeed;
-
-/**
- *  Composition no chars ui state
- *  It provides key event handling and internal event handling in composition no chars state
- *
- *  @lib peninputvkbcn.lib
- *  @since S60 v3.2
- */
-class CAknFepZhuyinAnalyser : public CBase
-    {
-public:
-
-    /**
-     * Two-phased constructor.
-     *
-     * @since S60 v3.2
-     * @param aDb The database file for pinyin or spell
-     * @return The pointer point to CAknFepVkbPinyinAnalyser type object
-     */
-    static CAknFepZhuyinAnalyser* NewL( CZhuyinAnalyserDbFeed* aDb );
-        
-    /**
-     * Destructor.
-     *
-     * @since S60 v3.2
-     */
-    virtual ~CAknFepZhuyinAnalyser();
-        
-    /**
-     * Process key event
-     *
-     * @since S60 v3.2
-     * @param aData Carry information of key pressed
-     * @return ETrue means event was responsed, otherwise EFalse
-     */
-
-        
-    TBool AnalyzeL(const TDesC& aInputString);
-    
-    HBufC* LastAnalysisResult();
-    
-private:
-    CAknFepZhuyinAnalyser();
-    void ConstructL( CZhuyinAnalyserDbFeed* aDb );
-    TBool DetailAnalyseL(const TDesC& aInputString);
-    TBool FindSpell(const TDesC& aSpell, TInt& aSameLength);
-    TInt  Compare(const TDesC& aFirst, const TDesC& aSecond, TInt& aSameLength);
-  
-private:
-    TSpellBand* iParagraph;
-    TPtrC*      iSpellLibrary;
-    HBufC*      iLastResult;
-    RArray<TInt> iSeperators;
-    CZhuyinAnalyserDbFeed* iDb;
-    TBool   iAnalysisFlag;
-    };
-
-#endif // C_AKNFEPZHUYINANALYSER_H
--- a/fep/aknfep/inc/AknFepZhuyinAnalyserDb.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Pen input related enums
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPZHUYINANALYSERDB_H
-#define C_AKNFEPZHUYINANALYSERDB_H
-
-
-#include <e32base.h>
-
-enum TPinyinAnalyserDbType
-    {
-    EPinyinAnalyserTypePinyin,
-    EPinyinAnalyserTypeZhuyin
-    };
-
-enum TSpellType
-{
-    ESpellVowel,
-    ESpellConsonant,
-    ESpellSpecialConsonnant
-};
-const TUint16 KProgramSeparator = 0x002e;
-/**
- *  Composition no chars ui state
- *  It provides key event handling and internal event handling in composition no chars state
- *
- *  @lib peninputvkbcn.lib
- *  @since S60 v3.2
- */
-class CZhuyinAnalyserDbFeed : public CBase
-    {
-public:
-
-    /**
-     * Two-phased constructor.
-     *
-     * @since S60 v3.2
-     * @param aUiStateMgr The vkb ui state manager
-     * @param aContext The vkb layout context
-     * @return The pointer point to CAknFepVkbPinyinAnalyser type object
-     */
-    static CZhuyinAnalyserDbFeed* NewL( TPinyinAnalyserDbType aType );
-        
-    /**
-     * Destructor.
-     *
-     * @since S60 v3.2
-     */
-    virtual ~CZhuyinAnalyserDbFeed();
-    
-    /**
-     * Get the Number of whole spell set.        
-     *
-     * @since S60 V4.0        
-     */ 
-    TInt GetSpellCount() const;
-    
-    /**
-     * Get the Number of whole spell set.        
-     *
-     * @since S60 V4.0        
-     * @param The index for the spell.
-     */ 
-    const TPtrC GetSpellByIndex( TInt aIndex ) const;
-    
-    /**
-     * Get the Number of spell elements.        
-     *
-     * @since S60 V4.0        
-     */ 
-    TInt GetSpellElementCount() const;
-    
-    /**
-     * Get the unicode number for spell element index.       
-     *
-     * @since S60 V4.0        
-     * @param The index for the spell element.
-     */ 
-    TUint16 GetSpellElementByIndex( TInt aIndex ) const;
-    
-    TBool IsNormalElement( TUint16 aCode ) const;
-    
-    TSpellType GetSpellElementType( TUint16 aCode ) const;
-    
-    TBool IsFirstElement( TUint16 aCode ) const;
-    
-    TBool IsToneMark( TUint16 aCodeFirst, TUint16 aCodeSecond );
-    
-private:
-    CZhuyinAnalyserDbFeed();
-    
-    void ConstructL( TPinyinAnalyserDbType aType );
-    
-private:
-    TPtrC iSpellBuf;
-    TPtrC iSpellLenBuf;
-    TUint16 iSpellElemBase;
-    TUint16 iSpellElemLen;
-    TPtrC iSpellTypeBuf;
-    TPtrC iNoFirstElements;
-    };
-
-#include "AknFepZhuyinAnalyserDb.inl"
-
-#endif //C_AKNFEPZHUYINANALYSERDB_H
--- a/fep/aknfep/inc/AknFepZhuyinAnalyserDb.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            vkb control pool inline function 
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-inline TInt CZhuyinAnalyserDbFeed::GetSpellCount() const
-    {
-    return iSpellLenBuf.Length();
-    }
-    
-inline const TPtrC CZhuyinAnalyserDbFeed::GetSpellByIndex( TInt aIndex ) const
-    {
-    int offset = 0;
-    for ( TInt i = 0;  i < aIndex;  ++i  )
-        {
-        offset += iSpellLenBuf[i];
-        }
-    return iSpellBuf.Mid( offset, iSpellLenBuf[aIndex] );
-    }
-
-inline TInt CZhuyinAnalyserDbFeed::GetSpellElementCount() const
-    {
-    return iSpellElemLen;
-    }
-    
-inline TUint16 CZhuyinAnalyserDbFeed::GetSpellElementByIndex( TInt aIndex ) const
-    {
-    return iSpellElemBase + aIndex;
-    }
-
-inline TBool CZhuyinAnalyserDbFeed::IsNormalElement( TUint16 aCode ) const
-    {
-    return aCode >= iSpellElemBase && aCode < iSpellElemBase + iSpellElemLen;
-    }
-    
-inline TSpellType CZhuyinAnalyserDbFeed::GetSpellElementType( TUint16 aCode ) const
-    {
-    return ( TSpellType )iSpellTypeBuf[ aCode - iSpellElemBase ];
-    }
- 
-inline TBool CZhuyinAnalyserDbFeed::IsFirstElement( TUint16 aCode ) const
-    {
-    for ( TInt i = 0; i < iNoFirstElements.Length(); i++ )
-        {
-        if ( iNoFirstElements[i] == aCode )
-            {
-            return EFalse;
-            }
-        }
-    return ETrue;
-    }
-
- 
-
--- a/fep/aknfep/inc/aknfepinputstatecandidatepinyinphrasecreation.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* 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 aknfepinputstatecandidatepinyinphrasecreation definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATECANDIDATEPINYINPHRASECREATION_H
-#define T_AKNFEPINPUTSTATECANDIDATEPINYINPHRASECREATION_H
-
-#include "aknfepinputstatepinyinphrasecreationbase.h"
-
-class TAknFepInputStateCandidatePinyinPhraseCreation : 
-    public TAknFepInputStatePinyinPhraseCreationBase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V5.0
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     * @return self object
-     */
-    TAknFepInputStateCandidatePinyinPhraseCreation(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-    
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 V5.0
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-     * Update indicator
-     *
-     * @since S60 V5.0
-     * @return none.
-     */
-    void UpdateIndicator();
-    
-    /**
-     * Handle horizontal navigation
-     *
-     * @since S60 V5.0
-     * @return ETrue if can move left or right,EFalse others.
-     */
-    TBool HandleHorizontalNavigation(TInt aKey);
-    
-    /**
-     * Handle vertical navigation
-     *
-     * @since S60 V5.0
-     * @return ETrue if can move up or down,EFalse others.
-     */
-    TBool HandleVerticalNavigation(TInt aKey);
-    
-    /**
-     * Commit Inline to the EEP ctrl
-     *
-     * @since S60 V5.0
-     * @param aText the commit info.
-     * @return ETrue if can move up or down,EFalse others.
-     */
-    TBool CommitInlineEEPL( const TDesC& aText  );
-
-private:
-    
-    /**
-     * KeyBackspace.
-     *
-     * @since S60 V5.0
-     * @return none.
-     */
-    void KeyBackspace();
-    
-    /**
-     * Key Up,Down,Left,RightArrow Or Key CBA1,OK.
-     *
-     * @since S60 V5.0
-     * @return none.
-     */
-    void HandleKeyUpDownLeftRightArrowOrKeyCBA1OKL( 
-                                 TInt aKey, 
-                                 TKeyPressLength aLength );
-    /**
-       * the state change or not 
-       *
-       * @since S60 V5.0
-       * @return none.
-       */
-    void ChangeStateOrNotL();
-    };
-
-#endif //T_AKNFEPINPUTSTATECANDIDATEPINYINPHRASECREATION_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepinputstateminiqwertyzhuyinkeymap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* 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:            This file contains classes of phrase creation layout data management
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPINPUTSTATEMINIQWERTYZHUYINKEYMAP_H
-#define C_AKNFEPINPUTSTATEMINIQWERTYZHUYINKEYMAP_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include "PtiEngine.h"
-
-//class CAknFepInputStateMiniQwertyZhuyinKeyMap;
-/**
- *  CAknFepInputStateMiniQwertyZhuyinKeyMap
- *  This class provides mini-qwerty zhuyin key map 
- *  zhuyin key map interface management
- *  to the program other component
- */
-/**
-* CAknFepInputStateMiniQwertyZhuyinKeyMap is a static fascade interface to the mini-qwerty zhuyin key map object.
-* There is at most one CAknFepInputStateMiniQwertyZhuyinKeyMap per thread. This static interface ensures that this
-* fact can not be changed.
-*/
-class TAknFepInputStateMiniQwertyZhuyinKeyMap
-    {
-public:
-    // General public API
-    
-    /**
-     * Get the show keystroke for the keytype.
-     * 
-     * @param aPtiEngine, ptiengine.
-     * @param aKey, the input keystroke.
-     * @param aKeystroke, the keystroke.
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    static void GetKeyStroke( CPtiEngine* aPtiEngine, TInt& aKey, TDes& aKeystroke );
-    };
-
-#endif // C_AKNFEPINPUTSTATEMINIQWERTYZHUYINKEYMAP_H
-
-// End of File
--- a/fep/aknfep/inc/aknfepinputstatepinyinphrasecreationbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryPinyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATEPINYINPHRASECREATIONBASE_H
-#define T_AKNFEPINPUTSTATEPINYINPHRASECREATIONBASE_H
-
-#include <PtiDefs.h>                            //keys
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-enum TMkeyReturnValue
-    {
-    EKeyStrokeNull = -2, //  neans the keystroke is null  
-    EKeyDelimiter,   // means the input key is delimiter
-    EkeyNumber       // means the input key is the number( from 2 to 9 )
-    };
-
-class TAknFepInputStatePinyinPhraseCreationBase : public TAknFepInputStateCandidateBase
-    {
-public:
-    
-    /**
-     * C++ constructor.
-     * 
-     * @since S60 v5.0.
-     * @return self object.
-     */  
-    TAknFepInputStatePinyinPhraseCreationBase(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * Add keystroke.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddKeystroke( TInt aKey );
-    
-    /**
-     * Add tone mark.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddToneMark(); 
-    
-    /**
-     * get the valid keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if valid keystroke happen change , EFase others.
-     */            
-    TBool GetValidKeystroke();
-    
-    /**
-     * Delete current keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that can be deleted, EFase others.
-     */            
-    TBool DeleteCurrentKeystroke();
-    
-    /**
-     * Revert the current chinse to keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that can be deleted, EFase others.
-     */            
-    TBool ChineseRevertKeystroke();
-    
-    /**
-     * show info to the eep ctrl.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void ShowInfo();
-    
-    /**
-     * set the show info warning color.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void SetWarningColor();
-    
-    /**
-     * Get the candidate info.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void GetCandidate( TInt aSelection = 0 );
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void ChangeCba();
-  
-    /**
-     * Refresh the candidate info.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void RefreshCandidate();
-    
-    /**
-     * Update Selection
-     *
-     * @since S60 v5.0
-     * @param aSelection the index of selecion.
-     * @return None.
-     */ 
-    void RefreshUI(TInt aSelection = 0);
-    
-    /**
-     * clear Selection
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void ClearDeliberateSelection();
-    
-    /**
-     * Update indicator
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void UpdateIndicator();
-    
-private:
-    
-    /**
-     * clear the keystroke of PtiEngine.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */
-    void ClearPtiEngineKeystroke();
-    
-    /**
-     * Add keystroke.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddKeystrokeL( TInt aKey );  
-    
-    /**
-     * Add tone mark.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddToneMarkL(); 
-    
-    /**
-     * check the keystroke.
-     * 
-     * @param aInput the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if the input param is tone mark, EFalse others.
-     */            
-    TBool IsToneMark( const TDesC& aInput );
-    
-    /**
-     * check the keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return EFalse if that have invalid keystroke, ETrue others.
-     */            
-    TBool CheckKeystroke();
-    
-    /**
-     * get the valid keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that have valid keystroke than happens change, EFase others.
-     */            
-    TBool GetValidKeystrokeL();
-    
-    /**
-     * get the key code.
-     * 
-     * @param aKey the TPtiKey.
-     * @param aKeystroke the input show key.
-     * 
-     * @since S60 v5.0.
-     * @return -2 the aKeystroke is null,-1 if the input key is delimiter, 
-     *  0 the input key is 2 - 9, others return tome mark.
-     */
-    TInt GetKeystrokeCode( TPtiKey& aKey, 
-                           const TDesC& aKeystroke );
-    
-    /**
-     * Append the key to the ptiengine.
-     * 
-     * @param aKey the TPtiKey.
-     * @param aKey the add the spelling to the spelling array flag.
-     * @since S60 v5.0.
-     * @return ETrue if ptiengine can append keypress, others return EFalse.
-     */
-    TBool AppendKeyPressL( TPtiKey& aKey, TBool aAddSpellingFlag );
-    
-    
-    /**
-     * Append the tone mark to the ptiengine.
-     * 
-     * @param aToneMark the tone mark.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if ptiengine can append tone mark, others return EFalse.
-     */
-    TBool AppendToneMarkL( TInt& aToneMark );
-    
-    /**
-     * Revert the current chinse to keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that can be deleted, EFase others.
-     */            
-    TBool ChineseRevertKeystrokeL();
-    
-    /**
-     * check the spelling delete the phrase spelling.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */
-    void CheckSpellingL( CDesCArrayFlat* aTempSpelling, CDesCArrayFlat* aAfterCheck );
-    
-    /**
-     * check the tone mark and delete the phrase spelling.
-     * 
-     * @param aToneMark the tone mark.
-     * @since S60 v5.0.
-     * @return ETrue if the spelling is valid, EFalse others.
-     */
-    TBool CheckToneMark( TInt& aToneMark );
-    
-    /**
-     * Get the candidate info.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void GetCandidateL( TInt aSelection );
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void ChangeCbaL();
-    
-    };
-
-#endif /*T_AKNFEPINPUTSTATEPINYINPHRASECREATIONBASE_H*/
-
-// End of file
-
--- a/fep/aknfep/inc/aknfepinputstatespellingpinyinphrasecreation.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/*
-* Copyright (c) 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 aknfepinputstatespellingpinyinphrasecreation definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATESPELLINGPINYINPHRASECREATION_H
-#define T_AKNFEPINPUTSTATESPELLINGPINYINPHRASECREATION_H
-
-#include "aknfepinputstatepinyinphrasecreationbase.h"
-
-class TAknFepInputStateSpellingPinyinPhraseCreation : public TAknFepInputStatePinyinPhraseCreationBase
-    {
-public:
-    
-    /**
-     * C++ construct.
-     *
-     * @since S60 v5.0.
-     * @return self object.
-     */ 
-    TAknFepInputStateSpellingPinyinPhraseCreation(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * HandleKeyL.
-     *
-     * @since S60 v5.0.
-     * @param aKey the input key.
-     * @param TKeyPressLength the key press length.
-     * @return ETrue.
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-     * Initialize State.
-     *
-     * @since S60 v5.0.
-     * @return none.
-     */
-    void InitializeStateL();
-
-private:
-    
-    /**
-     * Implicity Show Info.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */    
-    void ImplicityShowInfo( TBool aGetScreenCoordinates = EFalse );
-    
-    /**
-     * Refresh Show Info.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */    
-    void RefreshShowInfo();
-    
-    /**
-     * KeyBackspace Or KeyUpArrow
-     *
-     * @since S60 v5.0
-     * @param TKeyPressLength the key press length.
-     * @return None.
-     */
-    void HandleKeyBackspaceOrKeyUpArrow( TKeyPressLength aLength );
-    
-    
-    /**
-     * KeyBackspace And KeyUpArrow
-     *
-     * @since S60 v5.0
-     * @param TKeyPressLength the key press length.
-     * @return None.
-     */
-    void HandleKeyOKOrKeyDownArrowOrKeyCBA1( TKeyPressLength aLength );
-  
-    /**
-     * KeyRightArrow.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */  
-    void HandleKeyRightArrow();
-    
-    /**
-     * KeyLeftArrow.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */ 
-    void HandleKeyLeftArrow();
-    /**
-     * Refresh Valid Keystroke.
-     *
-     * @since S60 v5.0
-     * @return ETrue refresh ok, others EFalse.
-     */  
-    TBool RefreshValidKeystroke();
-    
-    /**
-     * Refresh Valid Keystroke.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */  
-    void RefreshValidKeystrokeL();
-    
-    };
-
-#endif //T_AKNFEPINPUTSTATESPELLINGPINYINPHRASECREATION_H
-
-// End of file
--- a/fep/aknfep/inc/aknfeppeninputimeplugin.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Input mode plugin interac
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPPENINPUTIMEPLUGIN_H
-#define C_AKNFEPPENINPUTIMEPLUGIN_H
-
-//Include 
-#include <ecom/ecom.h>
-
-//Forward declaration
-class MAknFepManagerInterface;
-class MAknFepManagerUIInterface;
-class CAknFepUiInterfaceMenuPane;
-class CPtiEngine;
-
-/** UID of IME plugin this interface */
-const TInt KImePluginInterfaceId = 0x10207363;
-
-/** Maxlength of IME plugin name */
-const TInt KMaxImePluginName = 20;
-
-/**
- *  Pen input mode plugin interface
- *
- *  @since S60 v3.2
- */
-class CAknFepPenInputImePlugin: public CBase
-    {
-public:
-    /**
-     *  IME plugin implemetation detail struct
-     *
-     *  @since S60 v3.2
-     */
-    class TImePlguinImplDetail
-        {
-    public:
-        TInt iImplementationId;
-        TInt iMode;
-        TInt iMeritValue;
-        TInt iLanguage;
-        TBuf<KMaxImePluginName> iDisplayName;
-        };
-        
-    /**
-     *  IME plugin weight number, if there are more than one
-     *  IME plugin for some language, the system select the
-     *  biggest meritvalue one.
-     *
-     *  @since S60 v3.2
-     */
-    enum TImePluginMerit
-        {
-        EImeMerit_NotUsed = 0,
-        EImeMerit_Normal = 100,
-        EImeMerit_Preferred = 200
-        };
-        
-    /**
-     * Destructor
-     *
-     * @since S60 v3.2
-     */
-     virtual ~CAknFepPenInputImePlugin() 
-        { 
-        REComSession::DestroyedImplementation(iDtor_ID_Key);                        
-        }
-
-public:
-    /**
-     * Pure virtual functions to implement the interface.
-     */
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    virtual MAknFepManagerInterface* GetInputMethodUiL(
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TLanguage aLanguage, 
-                                        TInt      aMode,
-                                        const TDesC8& aData,
-                                        const TBool aIsSplitView = EFalse) = 0;
-    
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    virtual MAknFepManagerInterface* GetInputMethodUiL(
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TInt aLayoutId,
-                                        const TDesC8& aData) = 0;
-    
-    /**
-     * Activate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void Activate() = 0;
-
-    /**
-     * Deactivate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void DeActivate() = 0;
-
-    /**
-     * Get current IME plugin implementation ID.
-     * 
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    virtual TInt ImeImplId() = 0;
-
-    /**
-     * Get current layout UI implementation id.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual TInt LayoutUiImplId() = 0;
-
-    /**
-     * Handle pen input server event.
-     * 
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual TBool HandleServerEventL(TInt aEventId, const TDesC& aData) = 0;
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @return Supported modes.
-     */
-    virtual TInt SupportModes(CPtiEngine* aPtiEngine, 
-                              RArray<TImePlguinImplDetail>& aSupportList) const = 0;
-    
-    /**
-     * Get current layout UI mode.
-     * 
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-    virtual TInt CurrentMode() const = 0;
-    
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if 
-     * this function return EFalse, FEP handles it defaultly.
-     * 
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command; 
-     *         EFalse otherwise.
-     */
-    virtual TBool HandleMenuCommandL(TInt aCommandId) = 0;
-    
-    /**
-     * Dynamiclly update menu items during it displays. 
-     * 
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    virtual void DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane) = 0;
-    
-protected:
-    /**
-     * C++ default constructor.
-     *
-     * @param aServer Pen input server pointer
-     */
-    CAknFepPenInputImePlugin()
-        {
-        }
-    
-public:
-
-    /**
-     * Destructor key.
-     */
-    TUid iDtor_ID_Key;
-
-protected:
-    /**
-     * Current language.
-     */
-    TLanguage iLanguage;
-
-    /**
-     * Fep manager UI interface. Not own.
-     */
-    MAknFepManagerUIInterface* iFepManager;
-    };
-
-#endif //C_AKNFEPPENINPUTIMEPLUGIN_H
-//End Of File
--- a/fep/aknfep/inc/aknfepuifingeritutinputstategeneric.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Provides the TAknFepUIFingerItutInputStateChineseGeneric definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_FINGERITUT_INPUT_STATE_INIT_CHIN_GEN_H__
-#define __AKN_FEP_UI_FINGERITUT_INPUT_STATE_INIT_CHIN_GEN_H__
-
-// INCLUDES
-#include "AknFepUiInputStateBase.h"
-
-/**
- *  TAknFepUIFingerItutInputStateChineseGeneric state machine
- *
- *  This class handle the key event, which is not handled by finger ITUT ui.
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUIFingerItutInputStateChineseGeneric : public TAknFepInputStateBase//TAknFepInputStateInitialChineseMultitapBase
-    {
-    
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2
-     * @param aOwner Pointer to finger ITUT ui manager
-     * @param aUIContainer Pointer to ui container
-     * @return None
-     */  
-    TAknFepUIFingerItutInputStateChineseGeneric(
-        MAknFepUIManagerStateInterface* aOwner/*,
-        MAknFepUICtrlContainerChinese* aUIContainer*/);
-        
-    /**
-     * Handle key event  
-     *
-     * @since S60 v3.2
-     * @param aKey Event key
-     * @param aLength The length of key press
-     * @return ETrue for handling by state machine; otherwise EFalse
-     */ 
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-     * Key timer expired called by ptiengine  
-     *
-     * @since S60 v3.2
-     * @return none
-     */ 
-    void KeyTimerExpired();
-    
-private:
-
-    /**
-     * Set Previous ptiengine observer  
-     *
-     * @since S60 v3.2
-     * @param aPreObserver Pointer to previous observer
-     * @return none
-     */ 
-    void SetPreObserver(MPtiObserver* aPreObserver);
-    
-    /**
-     * Get Previous ptiengine observer  
-     *
-     * @since S60 v3.2
-     * @return Pointer to previous observer
-     */ 
-    MPtiObserver* PreObserver();
-
-private:
-    
-    /**
-     * Previous observer
-     */
-    MPtiObserver* iPreObserver;    
-
-    };
-
-#endif //__AKN_FEP_UI_FINGERITUT_INPUT_STATE_INIT_CHIN_GEN_H__
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputminiqwertypinyinphrasebase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,542 +0,0 @@
-/*
-* 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
--- a/fep/aknfep/inc/aknfepuiinputminiqwertystrokephrasebase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,342 +0,0 @@
-/*
-* 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 TAknFepInputMiniQwertyStrokePhraseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTMINIQWERTYSTROKEPHRASEBASE_H
-#define T_AKNFEPUIINPUTMINIQWERTYSTROKEPHRASEBASE_H
-
-//#include "AknFepUiInputStateChineseBase.h"
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-/**
- * key struct.
- * @since S60 v3.2.3
- */
-
-class TAknFepInputMiniQwertyStrokePhraseBase : 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
-     */
-    TAknFepInputMiniQwertyStrokePhraseBase(
-        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 );
-    
-    /**
-     * 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();
-    
-    /**
-     * check the first group stroke of keystroke.
-     *
-     * @since S60 v3.2.3
-     * @return ETrue if the first group stroke is valid, others return EFalse.
-     */
-    TBool CheckFirstGroupStroke();
-
-    /**
-     * Add phrase to the UDB.
-     * 
-     * @param aPhraseAdd that need to be added to the UDB.
-     * @since S60 v3.2.3.
-     * @return None.
-     */ 
-    void AddPhraseToDB( const TDesC& aPhraseAdd );    
-
-    
-    /**
-     * Refresh candidate
-     *
-     * @since S60 v3.2.3
-     * @return none
-     */
-    void RefreshCandidate();
-    
-    /**
-     * Check key whether need repeat.
-     * 
-     * @since S60 v3.2.3
-     * @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
-     * @return None.
-     */
-    void UpdateIndicator();
-    
-    /**
-      * Do action afer commit, change state to predictive or not.
-      *
-      * @since S60 v3.2.3
-      * @return None.
-      */
-    void DoActionAfterCommit();
-    
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-private:
-    
-    /**
-     * 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 CBA1 or select event.
-     * 
-     * @since S60 v3.2.3
-     * @return None.
-     */
-    void HandleCommitL( TKeyPressLength aLength );
-    
-    /**
-     * Auto change state.
-     * 
-     * @since S60 v3.2.3
-     * @return Etru auto change state,ohters don't change state.
-     */
-    TBool HandleAutoChangeState();
-    
-    /**
-     * Handle KeyBackspace event.
-     * 
-     * @param aLength Key press length
-     * @since S60 v3.2.3
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void HandleKeyBackspaceL( TKeyPressLength aLength );
-    
-    /**
-     * Handle default 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 HandleDefaultL( TInt aKey, TKeyPressLength aLength );
-    
-    /**
-     * Handle default key press event.
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return none.
-     */
-    void HandleDefaultKeyL( TInt aKey );
-    
-    /**
-     * Show the showinfo on the EEP ctrl.
-     * 
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    void ShowInfoOnEEPPane();
-    
-    /**
-     * Show the showinfo on the candidate ctrl.
-     * 
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    void ShowInfoOnCandidatePane();
-    
-    /**
-     * Handle horizontal navigation.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v3.2.3.
-     * @return ETrue if high light can move, EFase others.
-     */ 
-    TBool HandleHorizontalNavigation( TInt aKey );
-    
-    /**
-     * Add keystroke.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v3.2.3.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddKeystrokeL( TInt aKey );
-    
-    /**
-     * Get the candidate info.
-     * 
-     * @since S60 v3.2.3.
-     * @return none.
-     */            
-    void GetCandidateL();
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v3.2.3
-     * @return None.
-     */        
-    void ChangeCbaL();
-    
-    /**
-     * Delete current keystroke.
-     * 
-     * @since S60 v3.2.3.
-     * @return ETrue if that can be deleted, EFase others.
-     */            
-    TBool DeleteKeystroke();
-    
-    /**
-     * Clear Keystroke of PtiEngine.
-     *
-     * @since S60 v3.2.3
-     * @return None.
-     */
-    void ClearPtiEngineKeystroke();
-    
-    /**
-     * get the show keystroke.
-     * 
-     * @param aKey, the input keystroke.
-     * @param aKeystroke the show keystroke.
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    void GetShowKeystroke( TInt aKey, TDes& aKeystroke );    
-    
-    /**
-     * Revert the phrase to keystroke.
-     * @since S60 v3.2.3
-     * @return none.
-     */
-    void RevertPhraseToKeystrokeL();
-    
-    /**
-     * set warning color.
-     * 
-     * @since S60 v3.2.3.
-     * @return none.
-     */         
-    void SetWarningColor();
-    
-    /**
-     * Move the cursor to Left.
-     * 
-     * @since S60 v3.2.3.
-     * @return ETrue if cursor can be moved, other EFalse.
-     */         
-    TBool MoveCursorLeft();
-    
-    /**
-     * Move the cursor to Right.
-     * 
-     * @since S60 v3.2.3.
-     * @return ETrue if cursor can be moved, other EFalse.
-     */         
-    TBool MoveCursorRight();
-
-    /**
-     * check the all group stroke of keystroke.
-     *
-     * @since S60 v3.2.3
-     * @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
-      * @return None.
-      */
-    void DoActionAfterCommitL();
-    
-    /**
-     * check the delimeter 
-     * @ aKeystroke   the key stroke
-     * @@since S60 v3.2.3
-     * @return ETrue if the key stoke is the delimeter ,otherwise return EFalse .
-     */
-   TBool CheckSpellingDLT( const TDesC& aKeystroke );
-
-    };		
-
-#endif //T_AKNFEPUIINPUTMINIQWERTYSTROKEPHRASEBASE_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputminiqwertyzhuyinphrasebase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* 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 TAknFepInputMiniQwertyZhuyinPhraseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTMINIQWERTYZHUYINPHRASEBASE_H
-#define T_AKNFEPUIINPUTMINIQWERTYZHUYINPHRASEBASE_H
-
-//#include "AknFepUiInputStateChineseBase.h"
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-
-class TAknFepInputMiniQwertyZhuyinPhraseBase : public TAknFepInputStateCandidateQwertyBaseChinesePhrase
-    {
-public:
-    
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputMiniQwertyZhuyinPhraseBase(
-        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 valid keystroke.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue,if the valid keystroke is not null, EFalse otehrs.
-     */
-    TBool GetValidKeystroke();
-    
-    /**
-     * Refresh editing pane
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return None
-     */
-    void RefreshEditPane();
-    
-    /**
-     * Refresh spelling pane
-     *
-     * @since S60 v3.2.3
-     * @param aClearSelection ETrue if need to clear current selection, otherwise EFalse.
-     * @return None
-     */
-    void RefreshSpellingPane( TBool aClearSelection = EFalse );
-    
-    /**
-     * Refresh candidate
-     *
-     * @since S60 v3.2.3
-     * @param aClearSelection, if ETrue then clear selection of popup, others EFalse.
-     * @return none
-     */
-    void RefreshCandidatePane( TBool aClearSelection = EFalse );
-
-    /**
-     * Get candidate info.
-     *
-     * @since S60 v3.2.3
-     * @param aClearSelection, if ETrue then clear selection of popup, others EFalse.
-     * @return none
-     */
-    void GetCandidate( TBool aClearSelection = EFalse );
-    
-    /**
-     * Update indicator
-     *
-     * @since S60 v3.2.3
-     * @param None
-     * @return None.
-     */
-    void UpdateIndicator();
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return None.
-     */        
-    void ChangeCbaL();
-    
-    /**
-     * clear Selection
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void ClearDeliberateSelection();
-    
-private:
-    
-    /**
-     * clear the ptiengine keystroke.
-     *
-     * @since S60 v3.2.3
-     * @param None
-     * @return None
-     */
-    void ClearPtiEngineKeystroke();
-    
-    /**
-     * Check the spelling whether is phrase spelling.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue,if one of spelling of PtiEngine is not phrase spelling, 
-     *  EFalse others.
-     */
-    TBool CheckPhraseSpellingL();
-    
-    /**
-     * Get the valid keystroke.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue,if the valid keystroke is not null, EFalse otehrs.
-     */
-    TBool GetValidKeystrokeL();
-    
-    /**
-     * Check whether tone mark border upon.
-     *
-     * @since S60 v3.2.3
-     * @param None.
-     * @return ETrue,if the tone mark border upon, EFalse otehrs.
-     */
-    TBool CheckToneMarkBorderUpon();
-    
-    /**
-     * Get candidate info.
-     *
-     * @since S60 v3.2.3
-     * @param aClearSelection, if ETrue then clear selection of popup, others EFalse.
-     * @return none
-     */
-    void GetCandidateL( TBool aClearSelection = EFalse );
-    };		
-
-#endif //T_AKNFEPUIINPUTMINIQWERTYZHUYINPHRASEBASE_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputstateentryhalfqwertyphrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* 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  TAknFepInputStateEntryHalfQwerty definition.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATEENTRYHALFQWERTYPINYINPHRASE_H
-#define T_AKNFEPINPUTSTATEENTRYHALFQWERTYPINYINPHRASE_H
-
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-#include "aknfepuiinputstateminiqwertystrokephrase.h"
-#include "AknFepUiInputStateEntryZhuyinPhrase.h"
-#include "AknFepUiInputStateChineseBase.h"
-
-// the entry of the pinyin inputmethod 
-class TAknFepInputStateEntryHalfQwertyPinyinPhrase :
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryHalfQwertyPinyinPhrase(
-        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 );
-private:
-    /**
-     * update the selection 
-     *
-     * @since S60 v3.2.3
-     */
-    void DeliberatelyUpdateSelection( );
-    /**
-     * update the selection  
-     *
-     * @since S60 v3.2.3
-     */
-    void ImplicitlyUpdateSelection( );
-    /**
-     * clear the deliberate selection
-     *
-     * @since S60 v3.2.3
-     */
-    void ClearDeliberateSelection( );
-    /**
-     * refresh the ui 
-     *
-     * @since S60 v3.2.3
-     */
-    void RefreshUI( TInt aSelection );
-    /**
-     * change the cba 
-     *
-     * @since S60 v3.2.3
-     */
-    void InitializeStateL( );
-    /**
-     * update the indicator  
-     *
-     * @since S60 v3.2.3
-     */
-    void UpdateIndicator( );
-    /**
-     * to check whether the key stroke is a character key or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is a character key , otherwise not
-     */
-    TBool IsCharacterKey( const TInt aKey );
-    };
-
-// the entry state of the stroke inputmethod  
-class TAknFepInputStateEntryHalfQwertyStrokePhrase :
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryHalfQwertyStrokePhrase(
-        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 );
-private:
-    /**
-     * change the cba 
-     *
-     * @since S60 v3.2.3
-     */
-    void InitializeStateL( );
-    /**
-     * to check whether the key stroke is a character key or not 
-     *
-     * @since S60 v3.2.3
-     * @param aKey System key
-     * @return ETrue if it is a character key , otherwise not
-     */
-    TBool IsCharacterKey( const TInt aKey );
-    
-    /**
-     * update the indicator  
-     *
-     * @since S60 v3.2.3
-     */
-    void UpdateIndicator( );
-
-    };
-// the zhuyin inputmethod entry state 
-class TAknFepInputStateEntryHalfQwertyZhuyinPhrase :
-public TAknFepInputStateEntryQwertyBaseChinesePhrase
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryHalfQwertyZhuyinPhrase(
-        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 );
-
-public:
-    // Functions from MPtiObserver interface
-    void KeyTimerExpired( );
-    
-private:
-    /**
-     * update the indicator  
-     *
-     * @since S60 v3.2.3
-     */
-    void UpdateIndicator( );
-    };
-#endif T_AKNFEPINPUTSTATEENTRYHALFQWERTYPINYINPHRASE_H
-
-//end of the file 
--- a/fep/aknfep/inc/aknfepuiinputstateentrypinyinphrasecreation.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryPinyinPhraseCreation definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATEENTRYPINYINPHRASECREATION_H
-#define T_AKNFEPUIINPUTSTATEENTRYPINYINPHRASECREATION_H
-
-
-#include "aknfepinputstatepinyinphrasecreationbase.h"
-
-
-class TAknFepInputStateEntryPinyinPhraseCreation : public TAknFepInputStatePinyinPhraseCreationBase
-    {
-public:
-    
-    /**
-     * C++ construct.
-     *
-     * @since S60 v5.0.
-     * @return self object.
-     */ 
-    TAknFepInputStateEntryPinyinPhraseCreation(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * HandleKeyL.
-     *
-     * @param aKey input key.
-     * @param aLength TKeyPressLength.
-     * @since S60 v5.0.
-     * @return ETrue.
-     */ 
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength );
-    
-    /**
-     * Initialize State.
-     *
-     * @since S60 v5.0.
-     * @return none.
-     */ 
-    void InitializeState();
-    
-private:
-    
-    /**
-     * Implicity show the show info.
-     *
-     * @since S60 v5.0.
-     * @return none.
-     */        
-    void ImplicityShowInfo( TBool aGetScreenCoordinates = EFalse );
-
-    /**
-     * Implicity show the show info.
-     *
-     * @since S60 v5.0.
-     * @return none.
-     */        
-    void ImplicityShowInfoL( TBool aGetScreenCoordinates );
-
-    /**
-     * EKeyBackspace.
-     *
-     * @param aLength TKeyPressLength.
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void HandleKeyBackspace( TKeyPressLength aLength );
-    
-    /**
-     * EKeyOK And EKeyCBA1L.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void HandleKeyOKAndKeyCBA1L();
-    
-    /**
-     * others key input.
-     *
-     * @param aKey input key.
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void HandleOthersKey( TInt aKey );
-    
-    /**
-     * Judge that cursor can move.
-     * 
-     * @since S60 v5.0
-     * @return ETrue the cursor can move, EFalse the cursor can't move.
-     */
-    TBool IsMoveCursor();
-    
-    /**
-     * move cursor to left.
-     * 
-     * @since S60 v5.0
-     * @return none.
-     */
-    void MoveCursorToLeft();
-    
-    /**
-     * move cursor to left.
-     * 
-     * @since S60 v5.0
-     * @return none.
-     */
-    void MoveCursorToRight();
-    
-    /**
-     * Add phrase to DB.
-     *
-     * @since S60 v5.0
-     * @param aPhraseAdd the phrase to be added to DB  
-     * @return ETrue if the phrase is added to DB successfully, otherwise EFalse.
-     */    
-    TBool AddPhraseToDB( const TDesC& aPhraseAdd );
-    
-    /**
-     * Try to close UI.
-     * 
-     * @since S60 v5.0
-     * @return ETrue close the UI.
-     */
-    TBool TryCloseUI( TKeyPressLength aLength );
-    
-    };
-
-#endif //T_AKNFEPUIINPUTSTATEENTRYPINYINPHRASECREATION_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputstateentryzhuyinphrasecreation.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryZhuyinPhraseCreation methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATEENTRYZHUYINPHRASECREATION_H
-#define T_AKNFEPINPUTSTATEENTRYZHUYINPHRASECREATION_H
-
-
-//#include "AknFepUIInputStateChineseBase.h"
-#include "aknfepuiinputstatezhuyinphrasecreationbase.h"
-
-class TAknFepInputStateEntryZhuyinPhraseCreation : public TAknFepInputStateZhuyinPhraseCreationBase
-    {
-public:
-    /**
-     * C++ constructor.
-     * 
-     * @since S60 v5.0.
-     * @param fepuimanagerstate interface
-     * @param uicontainer
-     * @return self object.
-     */  
-    TAknFepInputStateEntryZhuyinPhraseCreation(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * Handle Key function.
-     * 
-     * @since S60 v5.0.
-     * 
-     * @param the user input key.
-     * @param TKeyPressLength the key length.
-     * @return ETrue if handle key is dealed with, EFalse others.
-     */  
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    
-    /**
-     * Initialize State.
-     * 
-     * @since S60 v5.0.
-     * @return None.
-     */ 
-    void InitializeState();
-
-private:
-
-    /**
-     * Set the show info high light.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */         
-    void SetHighLight();
-    
-    /**
-     * Set the show info high light.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */         
-    void SetHighLightMoreThanMax();
-    
-    /**
-     * move the index of the keystroke left.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if move ok.
-     */
-    TBool MoveIndexOfKeystrokeLeft();
-
-    /**
-     * move the index of the keystroke right.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if move ok.
-     */
-    TBool MoveIndexOfKeystrokeRight();
-    
-    /**
-     * Add phrase to DB.
-     *
-     * @since S60 v5.0.
-     * @param aPhraseAdd the phrase to be added to DB  
-     * @return ETrue if the phrase is added to DB successfully, otherwise EFalse.
-     */
-     TBool AddPhraseToDB( const TDesC& aPhraseAdd );
-    
-    /**
-     * Check auto change state.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if need to auto change state,EFalse others.
-     */
-    TBool AutoChangeState();
-    
-    /**
-     * Check high light.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if the hight light,EFalse others.
-     */
-    TBool CheckHighLightL(); 
-    
-    };
-
-#endif //T_AKNFEPINPUTSTATEENTRYZHUYINPHRASECREATION_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputstateindicphoneticqwerty.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateIndicPhoneticQwerty definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INDIC_PHONETIC_QWERTY_H__
-#define __AKN_FEP_UI_INPUT_STATE_INDIC_PHONETIC_QWERTY_H__
-
-#include <w32std.h>
-#include <aknfepuiinputstateqwerty.h>
-class TAknFepInputStateIndicPhoneticQwerty : public TAknFepInputStateQwerty
-    {
-public:
-	/**
-         * Class Constructor.
-         * 
-         * @since S60 4.0
-         * @param UI Manager.
-         * Engine.
-         * @return Nothing
-    */
-         
-    TAknFepInputStateIndicPhoneticQwerty(MAknFepUIManagerStateInterface* aOwner); 
-
-	/**
-         * Interface fuction from MAknFepManagerInterface, Used for handling events passes by FEP manager.
-         * 
-         * @since S60 4.0
-         * @param aKey- key code of the event.
-         * @param aLength- Signifies short key press or long key press.
-         * Engine.
-         * @return returns EKeyWasConsumed if the key event is handled else EKeyWasNotConsumed
-    */
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-	/**
-         * Removes Halant added by Phonetic PtiENgine for North Indian Languages.
-         * 
-         * @since S60 4.0
-         * @param aLanguage- Current Phonetic input language is passed to this function.
-         * Engine.
-         * @return Nothing
-    */
-    
-	void RemoveHalantL(TLanguage aLanguage);
-	
-	/**
-         * Checks wheather the current Phonetic Input Language follows North Indian style of editing. This is necessary for removal
-         * of Halant.
-         * @since S60 4.0
-         * @param aLanguage- Current Phonetic input language is passed to this function.
-         * Engine.
-         * @return Returns True if the current language comes under North Indian style of writting.
-    */
-	TBool IsToRemoveHalantForLanguage(TInt aLanguage);
-
-private:
-	
-	/**
-         * Checks wheather key code is valid QWERTY key for Phonetic FEP.
-         * 
-         * @since S60 4.0
-         * @param aKey- key code of the event.
-         * Engine.
-         * @return Returns ETrue if the key is valid Phonetic QWERTY Key.
-    */
-    
-    TBool IsQwertyKey(const TInt aKey);
-
-    };
-
-#endif __AKN_FEP_UI_INPUT_STATE_INDIC_PHONETIC_QWERTY_H__
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputstateinitialindicphoneticmultitap.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +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 TAknFepInputStateInitialIndicPhoneticMultitap definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_PHONETIC_MULTITAP_H__
-#define __AKN_FEP_UI_INPUT_STATE_INIT_INDIC_PHONETIC_MULTITAP_H__
-
-#include "AknFepUIInputStateInitialMultitapBase.h"
-/**
-*  This class  handles the multitap input for Indic languages.
-*  @lib avkonfep.dll
-*  @since Series 60 3.1
-*/
-class TAknFepInputStateInitialIndicPhoneticMultitap : public TAknFepInputStateInitialMultitapBase
-    {
-public:
-    /**
-    * 
-    * Constructor for TAknFepInputStateInitialIndicPhoneticMultitap.	
-    * @since 5.0
-    * @return 
-    */
-    TAknFepInputStateInitialIndicPhoneticMultitap(MAknFepUIManagerStateInterface* aOwner, 
-                                                  TInt aLanguage); 
-public: //from TAknFepInputStateBase    
-    /**
-    * 
-    * Returns the virama character depending on the input language.	
-    * @since 5.0
-    * @return Etrue if the Key is handled. 
-    */
-
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-#ifdef RD_HINDI_PHONETIC_INPUT 
-    /**
-    * 
-    * Populates iPhoneticLatinChar to aChar.	
-    * @since 5.0
-    * @return None. 
-    */
-    virtual void GetPhoneticLatinChar(TChar& aChar)const;
-#endif 
-    
-public: //from MptiObserver
-    /**
-    * 
-    * Gets called when PTI Engine's timer expires.	
-    * @since 5.0
-    * @return 
-    */
-	void KeyTimerExpired();
-	/**
-	 * Transliterate the current inputted character to language specific character
-	 * of Halant.
-	 * @since 5.0
-	 * @param Null
-	 * @return Null
-	 */
-private:
-	void TransliterateFromLatinL();
-	/**
-     * Removes Halant added by Phonetic PtiENgine for North Indian Languages.
-     * 
-     * @since 5.0
-     * @param aLanguage- Current Phonetic input language is passed to this function.
-     * Engine.
-     * @return Nothing
-     */
-	void RemoveHalantL(TLanguage aLanguage);
-	
-	/**
-     * Checks wheather the current Phonetic Input Language follows North Indian style of editing. This is necessary for removal
-     * of Halant.
-     * @since 5.0
-     * @param aLanguage- Current Phonetic input language is passed to this function.
-     * Engine.
-     * @return Returns True if the current language comes under North Indian style of writting.
-     */
-	TBool IsToRemoveHalantForLanguage(TInt aLanguage);
-	/**
-	 * Checks if the character has phonetic equivallent to be Transliterated
-	 * of Halant.
-	 * @since 5.0
-	 * @param aChar character to be checked
-	 * @return returns ETrue if the character can be transliterated
-	 */
-	inline TBool IsToTransliterate(TChar& aChar);
-	/**
-	 * Checks if the current transliterated character can be inputted as per the language rule, if not then Question mark is inputted 
-	 * of Halant.
-	 * @since 5.0
-	 * @param aChar character to be validated for inputting
-	 * @return ETrue if the character is allowed
-	 */
-	TBool ValidatePhoneticInputL(const TDes& aBuf, TLanguage aLanguage);
-	/**
-	 * Checks if the current inputted character is a fallback rendered character
-	 * of Halant.
-	 * @since 5.0
-	 * @param aChar Character to be checked
-	 * @return ETrue is the character is a fallback rendered character
-	 */	
-	TBool IsInvalidPhoneticCharacter( TUint aChar, TLanguage aLanguage );
-	/**
-	 * Handels the key timer expiry
-	 * of Halant.
-	 * @since 5.0
-	 * @param Null
-	 * @return Null
-	 */
-	void HandleKeyTimerExpiryL();
-	};
-
-
-#endif //__AKN_FEP_UI_INPUT_STATE_INIT_INDIC_MULTITAP_H__
-
-// End of File
--- a/fep/aknfep/inc/aknfepuiinputstateminiqwertystrokephrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateEntryMiniQwertyStrokePhrase,
-*       TAknFepInputStateEditingMiniQwertyStrokePhrase,
-*       TAknFepUiInputStateCandidateMiniQwertyStrokePhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_INPUT_STATE_MINIQWERTY_STROKEPHRASECREATION_H__
-#define __AKN_FEP_UI_INPUT_STATE_MINIQWERTY_STROKEPHRASECREATION_H__
-//#include "aknfepuiinputminiqwertystrokephrasebase.h"
-#include "aknfepuiinputminiqwertystrokephrasebase.h"
-/**
- *  TAknFepInputStateEntryMiniQwertyStrokePhrase class.
- *
- *  Implementation of Stroke phrase entry state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateEntryMiniQwertyStrokePhrase: public TAknFepInputMiniQwertyStrokePhraseBase
-    {
-public: 
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEntryMiniQwertyStrokePhrase(
-            MAknFepUIManagerStateInterface* aOwner,
-            MAknFepUICtrlContainerChinese* aUIContainer );
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-     TBool HandleKeyL( TInt aKey, TKeyPressLength aLength );
-     
-     /**
-      * Handling Command events.
-      * This Method is called by CAknFepUIManagerJapanese.
-      *
-      * @param aCommandId Command ID value
-      */
-     void HandleCommandL( TInt aCommandId );
-    };
-
-/**
- *  TAknFepInputStateEditingMiniQwertyStrokePhrase class.
- *
- *  Implementation of Stroke phrase editing state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateEditingMiniQwertyStrokePhrase: public TAknFepInputMiniQwertyStrokePhraseBase
-    {
-public: 
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEditingMiniQwertyStrokePhrase(
-            MAknFepUIManagerStateInterface* aOwner,
-            MAknFepUICtrlContainerChinese* aUIContainer );
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL( TInt aKey ,TKeyPressLength alength );
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-    };
-
-/**
- *  TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase class.
- *
- *  Implementation of Pinyin and Stroke phrase candidate state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepUiInputStateCandidateMiniQwertyStrokePhrase: public TAknFepInputMiniQwertyStrokePhraseBase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepUiInputStateCandidateMiniQwertyStrokePhrase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer);
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-protected:
-
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-    };
-
-#endif /*__AKN_FEP_UI_INPUT_STATE_MINIQWERTY_STROKEPHRASECREATION_H__*/
--- a/fep/aknfep/inc/aknfepuiinputstateminiqwertyzhuyinphrase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateEntryMiniQwertyZhuyinPhrase,
-*       TAknFepInputStateEditingMiniQwertyZhuyinPhrase,
-*       TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEPUIINPUTSTATEMINIQWERTYZHUYINPHRASE_H_
-#define AKNFEPUIINPUTSTATEMINIQWERTYZHUYINPHRASE_H_
-
-#include "aknfepuiinputminiqwertyzhuyinphrasebase.h"
-
-/**
- *  TAknFepInputStateEntryMiniQwertyZhuyinPhrase class.
- *
- *  Implementation of Zhuyin phrase editing state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-
-class TAknFepInputStateEditingMiniQwertyZhuyinPhrase : public TAknFepInputMiniQwertyZhuyinPhraseBase
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateEditingMiniQwertyZhuyinPhrase(
-            MAknFepUIManagerStateInterface* aOwner,
-            MAknFepUICtrlContainerChinese* aUIContainer );
-    
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-     TBool HandleKeyL( TInt aKey, TKeyPressLength aLength );
-     
-     /**
-      * Handling Command events.
-      * This Method is called by CAknFepUIManagerJapanese.
-      *
-      * @param aCommandId Command ID value
-      */
-     void HandleCommandL( TInt aCommandId );
-     
-     /**
-      * 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 );
-     
-     /**
-      * Revert the phrase to keystroke.
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void RevertPhraseToKeystrokeL();
-     
-     /**
-      * Add phrase to DB.
-      * 
-      * @since S60 v3.2.3.
-      * @param aPhraseAdd The phrase to be added
-      * @return None.
-      */
-     void AddPhraseToDB( const TDesC& aPhraseAdd );
-     
-     /**
-      * Move the cursor to Left.
-      * 
-      * @since S60 v3.2.3.
-      * @return ETrue if cursor can be moved, other EFalse.
-      */         
-     TBool MoveCursorLeft();
-     
-     /**
-      * Move the cursor to Right.
-      * 
-      * @since S60 v3.2.3.
-      * @return ETrue if cursor can be moved, other EFalse.
-      */         
-     TBool MoveCursorRight();
-
-     /**
-      * Handle Key Backspace
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */  
-     void HandleKeyBackspaceL( TKeyPressLength aLength );
-     
-     /**
-      * Commit content
-      * 
-      * @since S60 v3.2.3.
-      * param aAddUDB ETrue if the content need to be added to UDB, otherwise EFalse.
-      * @return None.
-      */ 
-     void CommitContentL( TBool aAddUDB );
-     
-     /**
-      * Handle commit action
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void HandleCommitL();
-     
-     /**
-      * Refresh UI if necessary
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void RefreshUI();
-     
-     /**
-      * Refresh UI if necessary
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void ImplicityShowInfo( TBool aGetScreenCoordinates );
-
-     /**
-      * Refresh UI if necessary
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void ImplicityShowInfoL( TBool aGetScreenCoordinates );
-     
-     /**
-      * Show EEP Info
-      * 
-      * @since S60 v3.2.3.
-      * @return None.
-      */
-     void ShowEEPInfo();
-    };
-
-/**
- *  TAknFepInputStateSpellingMiniQwertyZhuyin class.
- *
- *  Implementation of Zhuyin phrase spelling selection state
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class TAknFepInputStateSpellingMiniQwertyZhuyin: public TAknFepInputMiniQwertyZhuyinPhraseBase
-    {
-public:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 V3.2
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateSpellingMiniQwertyZhuyin(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer );
-    
-    /**
-     * Handling Command events.
-     * This Method is called by CAknFepUIManagerJapanese.
-     *
-     * @param aCommandId Command ID value
-     */
-    void HandleCommandL( TInt aCommandId );
-
-private:
-    /**
-     * From TAknFepInputStateCandidateBasePhrase
-     * Handle system key press
-     *
-     * @since S60 v3.2
-     * @param aKey System key event
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-
-    /**
-     * Refresh UI if necessary
-     * 
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    void RefreshUI();
-    
-    /**
-     * Refresh vaild key stroke length
-     * 
-     * @since S60 v3.2.3.
-     * @return None.
-     */
-    void RefreshVaildKeyStroke();
-    };
-
-class TAknFepInputStateCanindateSelectingMiniQwertyZhuyin : public TAknFepInputMiniQwertyZhuyinPhraseBase
-    {
-public:
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2.3
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateCanindateSelectingMiniQwertyZhuyin(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer
-        );
-   /**
-    * From TAknFepInputStateMiniQwertyZhuyinPhraseCreationBase
-    * Handle system key press
-    *
-    * @since S60 v3.2
-    * @param aKey System key event
-    * @param aLength Key press length
-    * @return ETrue if handle, otherwise this class do not handle this key
-    */
-   TBool HandleKeyL(TInt aKey, TKeyPressLength aLength);
-   
-   /**
-    * Handling Command events.
-    * This Method is called by CAknFepUIManagerJapanese.
-    *
-    * @param aCommandId Command ID value
-    */
-   void HandleCommandL( TInt aCommandId );
-   
-   /**
-     * commit the selected character into the editor pane 
-     * @since S60 v3.2
-     * @return none
-     */
-   void CommitCandidateL();
-   
-   /**
-     * Check the select candidate numeric key is valid or not
-     * @since S60 v3.2
-     * @return ETure if the select number is valid ,others is EFalse
-     */
-   TBool SelectCandidate( TInt aKey );
-   
-   /**
-     * the postion of the first tonemark appeared 
-     * @since S60 v3.2
-     */
-    TInt GetIndexOfToneMark( const TDesC& aText);
-    };
-
-#endif /*AKNFEPUIINPUTSTATEMINIQWERTYZHUYINPHRASE_H_*/
--- a/fep/aknfep/inc/aknfepuiinputstatestrokephrasebase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,310 +0,0 @@
-/*
-* 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 TAknFepInputStateStrokePhraseBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPUIINPUTSTATESTROKEPHRASEBASE_H
-#define T_AKNFEPUIINPUTSTATESTROKEPHRASEBASE_H
-
-#include "AknFepUiInputStateChineseBase.h"
-
-/**
- * key struct.
- * @since S60 v5.0
- */
-
-struct TKeyMap
-    {
-    TUint16 iValue;
-    TInt iKeyCode;
-    };
-
-class TAknFepInputStateStrokePhraseBase : public TAknFepInputStateChineseBase
-    {
-public:
-    
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v5.0
-     * @param aOwner Pointer to UI manager state interface
-     * @param aUIContainer Pointer to Chinese UI container
-     */
-    TAknFepInputStateStrokePhraseBase(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer
-        );
-    
-    /**
-     * Handle system key press event
-     *
-     * @since S60 v5.0
-     * @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 );
-    
-    /**
-     * Update input window
-     *
-     * @since S60 v5.0
-     * @param aRefresh, if ETRue need to get the screen position, other need not.      
-     * @return None
-     */
-    void RefreshUI( TBool aRefresh = EFalse );
-    
-    /**
-     * Update popup window
-     *
-     * @since S60 v5.0
-     * @return ETrue if the first group stroke is valid, others return EFalse.
-     */
-    TBool CheckFirstGroupStroke();
-
-    /**
-     * Add phrase to the UDB.
-     * 
-     * @param aPhraseAdd that need to be added to the UDB.
-     * @since S60 v5.0.
-     * @return None.
-     */ 
-    void AddPhraseToDB( const TDesC& aPhraseAdd );    
-
-    
-    /**
-     * Refresh candidate
-     *
-     * @since S60 V5.0
-     * @return none
-     */
-    void RefreshCandidate();
-    
-    /**
-     * Check key whether need repeat.
-     * 
-     * @since S60 v5.0
-     * @return ETrue if the key need repeat, EFalse others.
-     */
-    TBool CheckKeyNeedRepeat( TKeyPressLength aLength );
-    
-    /**
-     * Get new candidate.
-     * 
-     * @since S60 v5.0
-     * @return None.
-     */
-    void GetNewCandidatesL(const TDesC& aSource, RPointerArray<HBufC>& aList);
-private:    
-    
-    /**
-     * Handle KeyBackspace event.
-     * 
-     * @param aLength Key press length
-     * @since S60 v5.0
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void HandleKeyBackspaceL( TKeyPressLength aLength );
-    
-    /**
-     * Entry state handle CBA1 or OK key press event.
-     *
-     * @since S60 v5.0
-     * @param aKey System key
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void HandleKeyCBA1OrKeyOKEntry( TKeyPressLength aLength );
-    
-    /**
-     * Edit state handle CBA1 or OK key press event.
-     *
-     * @since S60 v5.0
-     * @param aKey System key
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void HandleKeyCBA1OrKeyOKEditL();
-    
-    /**
-     * Handle CBA1 or OK key press event.
-     *
-     * @since S60 v5.0
-     * @param aKey System key
-     * @param aLength Key press length
-     * @return ETrue if handle, otherwise this class do not handle this key
-     */
-    void HandleKeyCBA1OrKeyOKL( TKeyPressLength aLength );
-    
-    /**
-     * Handle default key press event.
-     *
-     * @since S60 v5.0
-     * @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 v5.0.
-     * @return None.
-     */
-    void ShowInfoOnEEPPane();
-    
-    /**
-     * Show the showinfo on the candidate ctrl.
-     * 
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void ShowInfoOnCandidatePane();
-    
-    /**
-     * get the show keystroke.
-     * 
-     * @param aKey, the input keystroke.
-     * @param aKeystroke the show keystroke.
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void GetShowKeystroke( TInt aKey, TDes& aKeystroke );
-    
-    /**
-     * Handle horizontal navigation.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if high light can move, EFase others.
-     */ 
-    TBool HandleHorizontalNavigation( TInt aKey );
-    
-    /**
-     * Add keystroke.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFase others.
-     */            
-    TBool AddKeystrokeL( TInt aKey );
-    
-    /**
-     * Get the candidate info.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */            
-    void GetCandidateL();
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */        
-    void ChangeCbaL();
-    
-    /**
-     * Update indicator
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void UpdateIndicator();
-    
-    /**
-     * Delete current keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that can be deleted, EFase others.
-     */            
-    TBool DeleteKeystroke();
-    
-    /**
-     * Clear Keystroke of PtiEngine.
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void ClearPtiEngineKeystroke();
-
-    /**
-     * get the key code.
-     * 
-     * @param aKey, the keycode.
-     * @param aKeystroke, the show keystroke.
-     * @since S60 v5.0
-     * @return none.
-     */
-    void GetKeystrokeCode( TInt& aKey, const TDesC& aKeystroke );
-    
-    /**
-     * Check all the keystroke.
-     * 
-     * @since S60 v5.0.
-     * @return True if All the keystroke is valid.
-     */            
-    TBool CheckAllKeystroke();
-    
-    /**
-     * Revert the phrase to keystroke.
-     * @since S60 v5.0
-     * @return none.
-     */
-    void RevertPhraseToKeystrokeL();
-    
-    /**
-     * set warning color.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */         
-    void SetWarningColor();
-    
-    /**
-     * Move the cursor to Left.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */         
-    void MoveCursorLeft();
-    
-    /**
-     * Move the cursor to Right.
-     * 
-     * @since S60 v5.0.
-     * @return none.
-     */         
-    void MoveCursorRight();
-
-    };		
-
-#endif //T_AKNFEPUIINPUTSTATESTROKEPHRASEBASE_H
-
-// End of file
--- a/fep/aknfep/inc/aknfepuiinputstatezhuyinphrasecreationbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryZhuyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPINPUTSTATEZHUYINPHRASECREATIONBASE_H
-#define T_AKNFEPINPUTSTATEZHUYINPHRASECREATIONBASE_H
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-class TAknFepInputStateZhuyinPhraseCreationBase : public TAknFepInputStateCandidateBase
-    {
-public:
-    
-    /**
-     * C++ constructor.
-     * 
-     * @since S60 v5.0.
-     * @return self object.
-     */  
-    TAknFepInputStateZhuyinPhraseCreationBase(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerChinese* aUIContainer);
-    
-    /**
-     * Add keystroke.
-     * 
-     * @param aKey the input keystroke.
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFalse others.
-     */            
-    TBool AddKeystrokeL( TInt aKey );
-    
-    /**
-     * Add tone mark.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if that the key can add to the current keystroke, EFalse others.
-     */            
-    TBool AddToneMarkL(); 
-    
-    /**
-     * Get the candidate info and refresh ui.
-     * 
-     * @since S60 v5.0.
-     * @return ETrue if get candidate sucessful, EFalse others.
-     */            
-    TBool UpdateEEPContent();
-    
-    /**
-     * Check the key stroke group more than max.
-     * 
-     * @since S60 v5.0
-     * 
-     * @return value that more than max begine position.
-     */
-    TInt BegPosOfMoreThanSeven();
-    
-    /**
-     * Check the key stroke group more than max.
-     * 
-     * @since S60 v5.0
-     * @param aBegPos that more than max begine position.
-     * @return none.
-     */
-    void HighlightMoreThanSeven( TInt aBegPos );
-    
-    /**
-     * Check the keystroke count.
-     * 
-     * @since S60 v5.0.
-     * @param aIndex the index of keystroke.
-     * @param aChineseCount the chinese character count.
-     * @param aSymbol the zhuyinsymbol.
-     * @param aZhuyinSymbol the zhuyin symbol array.
-     * @return ETure if keystroke count is not more than max,EFalse others.
-     */
-    TBool ReplaceKeystrokeL( 
-                          TInt aIndex, 
-                          TInt aChineseCount,
-                          const TDesC& aSymbol, 
-                          CDesCArrayFlat* aZhuyinSymbol );
-    
-    /**
-     * Update Selection
-     *
-     * @since S60 v5.0
-     * @param aSelection the index of selecion.
-     * @return None.
-     */ 
-    void RefreshUI();
-    
-    /**
-     * Update indicator
-     *
-     * @since S60 v5.0
-     * @return None.
-     */
-    void UpdateIndicator();
-    
-    void HandleCommandL(TInt /*aCommandId*/);
-    
-    TBool DeleteZhuyinSymbolOrChinese();
-    
-    
-    /**
-     * Change CBA.
-     *
-     * @since S60 v5.0.
-     * @return None.
-     */
-    void ChangeCbaL();
-    
-private:
-    
-    /**
-     * Check the keystroke count.
-     * 
-     * @since S60 v5.0.
-     * @param aChineseCount the chinese character count.
-     * @param aZhuyinSymbol the zhuyin symbol array.
-     * @return ETure if keystroke count is not more than max,EFalse others.
-     */
-    TBool CheckKeystrokeCountL( TInt aChineseCount, CDesCArrayFlat* aZhuyinSymbol );
-    
-    void CheckShowInfo( TDes& aOutDes, CDesCArrayFlat* aZhuyinSymbol );
-    
-    void DeleteSeparatorWhenInvaild( TDes& aDes );
-
-    };
-
-#endif /*T_AKNFEPINPUTSTATEZHUYINPHRASECREATIONBASE_H*/
-
-// End of file
--- a/fep/aknfep/inc/aknfepuimanagerfingeritutchinese.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Provides the CAknFepUIManagerFingerItutChinese definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKN_FEP_UI_MANAGER_FINGERITUT_CHINESE_H__
-#define __AKN_FEP_UI_MANAGER_FINGERITUT_CHINESE_H__
-
-// INCLUDES
-#include <PtiDefs.h>
-
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUiInputStateChineseBase.h"
-
-// FORWARD DECLARATION
-class CAknFepUIManagerBase;
-class CAknFepPluginManager;
-
-/**
- *  CAknFepUIManagerFingerItutChinese ui class
- *
- *  This class is Chinese finger ITUT ui manager. 
- *  It manage the Chinese finger ITUT state class.
- *
- *  @lib avkonfep.dll
- *  @since S60 v3.2
- */
-class CAknFepUIManagerFingerItutChinese : public CAknFepUIManagerBase
-    {
-    
-public: 
-
-    /**
-     * Symbian constructor
-     *
-     * @since S60 v3.2
-     * @param aFepMan Pointer to fep manager
-     * @param aCaseMan Pointer to case manager
-     * @param aLanguage Current language
-     * @param aPluginMager Pointer to plugin manager
-     * @return Pointer to created CAknFepUIManagerFingerItutChinese object
-     */  
-     static CAknFepUIManagerFingerItutChinese* NewL(MAknFepManagerUIInterface* aFepMan, 
-         CAknFepCaseManager* aCaseMan, TLanguage aLanguage, CAknFepPluginManager* aPluginMager);
-         
-    /**
-     * Destructor
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    virtual ~CAknFepUIManagerFingerItutChinese();
-
-public:
-
-// From CAknFepUIManagerBase
-
-    /**
-     * From CAknFepUIManagerBase
-     * Handle key event  
-     *
-     * @since S60 v3.2
-     * @param aKey Event key
-     * @param aLength The length of key press
-     * @return ETrue for handling by state machine; otherwise EFalse
-     */ 
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength,TEventCode aEventCode = EEventKey);       
-
-    /**
-     * From CAknFepUIManagerBase
-     * Close current Finger ITUT ui  
-     *
-     * @since S60 v3.2
-     * @return none
-     */ 
-    void CloseUI();
-
-    /**
-     * From CAknFepUIManagerBase
-     * Input mode is supported by this ui  
-     *
-     * @since S60 v3.2
-     * @param aMode Input mode
-     * @return error code
-     */ 
-    TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * From CAknFepUIManagerBase
-     * Set current input language  
-     *
-     * @since S60 v3.2
-     * @param aLanguage Current language
-     * @return none
-     */ 
-    void SetInputLanguageL(TLanguage aLanguage);
-
-    /**
-     * From CAknFepUIManagerBase
-     * Change state machine  
-     *
-     * @since S60 v3.2
-     * @param aState ui state
-     * @return current ui state
-     */ 
-    TUIState ChangeState(TUIState aState);
-
-    /**
-     * From CAknFepUIManagerBase
-     * Change ITUT state machine  
-     *
-     * @since S60 v3.2
-     * @param aState ui state
-     * @return none
-     */ 
-    void ChangeStatetItut(TUIState aState);
-    
-private: 
-
-    /**
-     * From CAknFepUIManagerBase
-     * Get current fep ui state machine
-     *
-     * @since S60 v3.2
-     * @return pointer to TAknFepInputStateBase
-     */ 
-    TAknFepInputStateBase* FepUIState();
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v3.2
-     * @param aFepMan Pointer to fep manager
-     * @param aCaseMan Pointer to case manager
-     * @param aPluginMager Pointer to plugin manager
-     * @return None
-     */  
-    CAknFepUIManagerFingerItutChinese(MAknFepManagerUIInterface* aFepMan, 
-        CAknFepCaseManager* aCaseMan, CAknFepPluginManager* aPluginMager);
-
-    /**
-     * Symbian second-phase constructor
-     *
-     * @since S60 v3.2
-     * @param aLanguage Current language
-     * @return None
-     */ 
-    void ConstructL(TLanguage aLanguage);
-
-private: // Data
-
-    /**
-     * Current state machine
-     */
-    TAknFepInputStateBase iFepUiState;//TAknFepInputStateChineseBase iFepUiState;
-
-    /**
-     * Current flag
-     */
-	TUint iFlags;
-
-    /**
-     * Previous mode
-     */
-    TInt iPrevMode;
-
-    /**
-     * Fep plugin manager (Not own)
-     */
-    CAknFepPluginManager* iPluginMager;
-
-    };
-    
-#endif //__AKN_FEP_UI_MANAGER_FINGERITUT_CHINESE_H__
-
-// End of file
--- a/fep/aknfep/inc/aknfepuispellcontainer.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* Copyright (c)  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 CAknFepUiSpellContainer definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEP_SPELLCONTAINER_H
-#define AKNFEP_SPELLCONTAINER_H
-
-// INCLUDES
-#include <coecntrl.h>          // for CCoeControl
-#include <eiklbo.h>            // for MEikListBoxObserver
-#include <badesca.h>           // for CDesCArray
-
-
-// FORWARD DECLARATIONS
-class CAknFepUiSpellInputPane;
-
-// CLASS DECLARATION
-
-/**
-*  CAknFepUiSpellContainer  container control class.
-*/
-class CAknFepUiSpellContainer : public CCoeControl
-{
-public: // Constructors and destructor
-
-    /**
-    * Two-phased constructor.
-    * @param aRect Frame rectangle for container.
-    * @param aModel Data model of the application.
-    * @return A Pointer to new dictionary container.
-    */
-    static CAknFepUiSpellContainer* NewL(const TInt aEditorFlag, const TInt aEditorCase, 
-                                         const TInt aEditorSCTResID);
-
-    /**
-    * Destructor.
-    */
-    virtual ~CAknFepUiSpellContainer();
-    
-    CAknFepUiSpellInputPane* InputPane();
-    
-    void SetInputWinObserver( MEikEdwinObserver* aObserver );
-
-private:
-    
-    /**
-    * C++ default constructor.
-    */
-    CAknFepUiSpellContainer();
-    
-    /**
-    * EPOC default constructor.
-    * @param aRect Frame rectangle for container.
-    * @param aModel Data model of the application.
-    */
-    void ConstructL(const TInt aEditorFlag, const TInt aEditorCase, const TInt aEditorSCTResID); 
-
-private: // Functions from base classes
-
-    /**
-    * From CoeControl, CountComponentControls.
-    */
-    TInt CountComponentControls() const;
-
-    /**
-    * From CCoeControl, ComponentControl.
-    */
-    CCoeControl* ComponentControl( TInt aIndex ) const;
-
-    /**
-    * From CCoeControl, Draw.
-    */
-    void Draw( const TRect& aRect ) const;
-
-    /**
-    * From CCoeControl, return the container's input capabilities.
-    */
-    TCoeInputCapabilities InputCapabilities() const;
-
-    /**
-    * From CCoeControl, handle key events.
-    */
-    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
-   
-    void SetContainerRect();
-    
-    HBufC* InputText();
-     
-     
-protected:
-    
-    void SizeChanged();
-    
-    void FocusChanged(TDrawNow aDrawNow);
-    
-private: // data
-    
-    CAknFepUiSpellInputPane* iInputPane;
-
- };
-
-#endif  // AKNFEP_SPELLCONTAINER_H
-
-// End of File
--- a/fep/aknfep/inc/aknfepuispellinputpane.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* Copyright (c)  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 CAknFepUiSpellInputPane definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef AKNFEP_SPELLINPUTPANE_H
-#define AKNFEP_SPELLINPUTPANE_H
-
-#include <coecntrl.h> // for CCoeControl
-
-// FORWARD DECLARATIONS
-class CEikEdwin;
-class MEikEdwinObserver;
-
-/**
-*  CDicInputPane  input pane class.
-*/
-class CAknFepUiSpellInputPane : public CCoeControl
-{
-public: // Constructors and destructor
-
-    /**
-    * Two-phased constructor.
-    * @param aParent Parent control for container.
-    * @param aRect Frame rectangle for container.
-    * @return A Pointer to new input pane.
-    */
-    static CAknFepUiSpellInputPane* NewL( CCoeControl* aParent, 
-                                 const TInt aEditorFlag, 
-                                 const TInt aEditorCase, 
-                                 const TInt aEditorSCTResID );
-
-    /**
-    * Destructor.
-    */
-    virtual ~CAknFepUiSpellInputPane();
-
-public: // New functions
-
-    /**
-    * Return input win.
-    * @return A pointer to the input editor object.
-    */
-    CEikEdwin* InputWin() const;
-
-    /**
-    * Set input win observer
-    * @param aObserver input win observer
-    */
-    void SetInputWinObserver( MEikEdwinObserver* aObserver );
-
-    /**
-    * Set the content of input win
-    * @param aDes the text to be set
-    */
-    void SetInputWinTextL( const TDesC* aDes );
-
-    /**
-    * Selects the entire document of input win
-    */
-    void SelectAllL();
-
-	/**
-	*  SizeChanged   resize the controls
-	**/
-	void SizeChanged();
-	
-public: // Functions from base classes   
- 
-    /**
-    * From CoeControl, return the container's input capabilities.
-    * @return The input capabilities of the container
-    */
-    TCoeInputCapabilities InputCapabilities() const;
-
-    /**
-    * From CoeControl, Handles key events.
-    * @param aKeyEvent The key event.
-    * @param aType The type of key event: EEventKey, 
-    *  EEventKeyUp or EEventKeyDown.
-    * @return The value to indicates whether or not 
-    * the key event was used by this control
-    */
-    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
-private:
-
-    /**
-    * C++ default constructor.
-    */
-    CAknFepUiSpellInputPane();
-
-    /**
-    * EPOC default constructor.
-    * @param aParent Parent control for container.
-    * @param aRect Frame rectangle for container.
-    */
-    void ConstructL( CCoeControl* aParent, const TInt aEditorFlag, 
-        const TInt aEditorCase, const TInt aEditorSCTResID );
-
-private: // Functions from base classes
-
-    /**
-    * From CoeControl, CountComponentControls.
-    */
-    TInt CountComponentControls() const;
-
-    /**
-    * From CoeControl, ComponentControl.
-    */
-    CCoeControl* ComponentControl( TInt aIndex ) const;
-
-    /**
-    * From CoeControl, Draw.
-    */
-    void Draw( const TRect& aRect ) const; 
-
-    /**
-    * From CoeControl, FocusChanged.
-    */
-    void FocusChanged( TDrawNow aDrawNow );
-
-private: // data
-
-    CEikEdwin*   iInputWin;
-};
-
-#endif      // AKNFEP_SPELLINPUTPANE_H
-
-// End of File
--- a/fep/aknfep/inc/aknfepuserdbdlg.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +0,0 @@
-/*
-* Copyright (c) 2007-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:            Define dialog for user DB management
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_CAKNFEPUSERDBDLG_H
-#define C_CAKNFEPUSERDBDLG_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <aknselectionlist.h> //CAknMarkableListDialog
-#include <AknProgressDialog.h> 
-#include <eiklbo.h> // MEikListBoxObserver 
-#include <eiklbx.h> //MListBoxItemChangeObserver
-
-const TInt KMaxInputSize(7);
-const TInt KMaxCharSize(7);
-
-// CLASS DECLARATION
-class CDBManagement;
-class CPtiEngine;
-class CAknFepManager;
-class CAknProgressDialog;
-class CEikProgressInfo;
-class CAknFepUserDBQueryDlg;
-
-/**
- *  Dialog for user DB management
- *  In this Dialog of user DB management, it has add,remove,
- *  edit and mark/unmark function
- *
- *  @code
- *   ?good_class_usage_example(s)
- *  @endcode
- *
- *  @lib ?library
- *  @since S60 v3.1
- */
-class CAknFepUserdbDlg : public CAknMarkableListDialog,
-                         public MListBoxItemChangeObserver 
-    {
-public:
-    // Constructors and destructor
-
-    /**
-     * Destructor.
-     */
-    ~CAknFepUserdbDlg();
-
-    /**
-     * Two-phased constructor.
-     * @param aOpenedItem Index of the item focusing on
-     * @param aSelectedItems Selected of list items
-     * @param aArray Content of list items
-     * @param aMenuBarResourceId Menu bar id
-     * @param aCommand Default value is zero
-     */
-    static CAknFepUserdbDlg* NewL( TInt &aOpenedItem,
-            CArrayFix< TInt > *aSelectedItems, MDesCArray *aArray,
-            TInt aMenuBarResourceId, CPtiEngine* aPtiEngine, CAknFepManager* aOwner,
-            MEikCommandObserver *aObserver=0 );
-    
-    /**
-     * Refresh user db view
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void OnChangeLanguageL( TInt aInputLanguage );
-
-    /**
-     * Refresh user db view when the screen size was changed.
-     *
-     * @since S60 vTB9.1
-     * @param none
-     * @return none
-     */
-    void SizeChanged();
-	
-	/**
-     * Return control to application framework.
-     *
-     * @since S60 vTB9.2
-     * @param TInt aIndex is the index of control
-     * @return CCoeControl object pointer
-     */
-    CCoeControl* ComponentControl(TInt aIndex) const; 
-	
-	/**
-     * Return number of controls in this dialog
-     *
-     * @since S60 vTB9.2
-     * @param none
-     * @return number of controls
-     */
-    TInt CountComponentControls() const;
-	
-private:
-
-    /**
-     * C++ constructor.
-     * @param aOpenedItem Index of the item focusing on
-     * @param aSelectedItems Selected of list items
-     * @param aArray Content of list items
-     * @param aCommand Default value is zero
-     */
-    CAknFepUserdbDlg( TInt &aValue, CArrayFix< TInt > *aSelectedItems,
-            MDesCArray *aArray, CPtiEngine* aPtiEngine, CAknFepManager* aOwner,
-            MEikCommandObserver *aObserver );
-
-    /**
-     * Symbian second-phase constructor.
-     * @param aMenuBarResourceId Menu bar id
-     */
-    void ConstructL( TInt aMenuBarResourceId );
-    
-    /**
-     * Construct Context Menu
-     *
-     * @since S60 v3.1
-     * @param None
-     * @return None 
-     */
-    void ConstructContextMenuL();
-    
-    /**
-     * Init items in the list from user DB
-     *
-     * @since S60 v3.1
-     * @param None
-     * @return Whether there are any items in list, ETrue is have items 
-     */
-    TBool InitListBoxItemL( );
-    
-    /**
-     * Add phrase to listbox and user DB
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void AddItemL();
-
-    /**
-     * Delete phrase in listbox and user DB
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void RemoveItemL();
-
-    /**
-     * Edit phrase in listbox and user DB
-     *
-     * @@since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void EditItemL();
-
-    /**
-     * Mark/Unmark phrase in listbox and user DB
-     *
-     * @since S60 v3.1
-     * @param aItemIndex item's index which would be mark or unmark
-     * @return aMark set for the item mark
-     */
-    void CmdMarkL( TInt aItemIndex, TBool aMark );
-    
-    /**
-     * Change the current cba to the specific cba
-     *
-     * @since S60 v3.1
-     * @param aCbaResourceId cba id
-     * @return none
-     */
-    void ChangeCurrentCbaL ( TInt aCbaResourceId );
-    
-    /**
-     * Show context menu
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void ShowContextMenuL();
-    
-    /**
-     * Set the Search Field blank
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void ResetSearchFieldL();
-    
-    /**
-     * Find item's real Index in list
-     *
-     * @since S60 v3.1
-     * @param aItemIndex Item's index in the view which want to find the actual index
-     * @return The actual index of the item
-     */
-    TInt FindActualIndex( const TInt aItemIndex ); 
-    /**
-     * Mark or unmark item in list
-     *
-     * @since S60 v3.1
-     * @param none
-     * @return none
-     */
-    void MarkOrUnmarkItemL();
-    
-    /**
-     * Add '\t' to item array
-     *
-     * @since S60 v3.1
-     * @param aDataArray array which want to be inserted '\t'
-     * @return none
-     */
-    void InsertIconL( CDesC16Array* aDataArray );
-    
-    /**
-     * To update cba of dialg
-     *
-     * @since S60 v3.1
-     * @param aCommandId command id from menu, 0 for command except mark
-     * @return none
-     */
-    void UpdateListBoxL( TInt aCommandId = 0);
-        
-    //From base class CAknMarkableListDialog
-    /**
-     * From base class CAknMarkableListDialog
-     * Deal the commands that have recevied
-     * @param aCommandId Commands' Id
-     * @return None
-     */
-    void ProcessCommandL( TInt aCommandId );
-    
-    /**
-     * From base class CAknMarkableListDialog
-     * Deal the softkey event
-     * @param aButtonId softkey Id
-     * @return ETrue to validate and exit the dialog, EFalse to keep the dialog active.
-     */
-    TBool OkToExitL( TInt aButtonId );
-    
-    /**
-     * From base class CAknMarkableListDialog
-     * Dynamically initialises a menu pane.
-     * @param aResourceId Menu pane id
-     * @param aMenuPane The in-memory representation of the menu pane.
-     * @return None
-     */
-    void DynInitMenuPaneL( TInt aResourceId,CEikMenuPane* aMenuPane );
-    
-    void FocusChanged(TDrawNow aDrawNow);
-    
-    /**
-     * From base class CAknMarkableListDialog
-     * Initializes the dialog's controls after the 
-     * dialog has been sized but before it has been activated
-     * @param None
-     * @return None
-     */
-    void PostLayoutDynInitL();
-    
-    /**
-     * From base class CAknMarkableListDialog
-     * @param aKeyEvent The key event.
-     * @param aType The type of key event: EEventKey, EEventKeyUp or EEventKeyDown
-     * @return Indicates whether or not the key event was used by this control
-     */
-    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType );
-
-    //From base class MEikListBoxObserver
-    /**
-     * From base class MEikListBoxObserver
-     * Observer callback from the listbox..
-     * @param aListBox  ptr to listbox that is calling the method  
-     * @param aEventType  type of event; defined by MEikListBoxObserver 
-     * @return None
-     */
-    void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); 
-    
-    //From base class MListBoxItemChangeObserver
-    /**
-     * From base class MListBoxItemChangeObserver
-     * Item change observer will be notified when list box items have been 
-     * added or removed or the list box has been reset.
-     * @param aListBox  ptr to listbox that is calling the method  
-     * @return None
-     */
-    void ListBoxItemsChanged( CEikListBox* aListBox );
-    
-private: //data
-
-    /**
-     * Engine
-     * Own
-     */
-	CDBManagement* iDBEngine;  
-	
-    /**
-     * Progress dialog
-     * Own, but doesn't need delete by myself
-     */
-	CAknProgressDialog*  iProgressDialog;
-	
-    /**
-     * progress info
-     * Own, but doesn't need delete by myself
-     */
-	CEikProgressInfo*    iProgressInfo;
-	
-    /**
-     * Item array
-     * Own, but doesn't need delete by myself,listbox would free it automatic
-     */
-	CDesC16Array* iItems;
-	
-    /**
-     * Pti Engine
-     * Not Own
-     */
-    CPtiEngine* iPtiEngine;
-    
-    /**
-     * AknFepManager need by DBEngine
-     * Not own
-     */
-	CAknFepManager* iOwner;
-	
-    /**
-     * Context menu bar
-     * Own
-     */
-	CEikMenuBar* iContextMenuBar;
-    
-    /**
-     * Old highLight postion
-     */
-    TInt iOldIndex;
-
-    /**
-     * Old Language
-     */
-    TInt iOldLanguage;
-    
-    /**
-     * Query for add and edit. Not Own.
-     */
-    CAknFepUserDBQueryDlg* iQueryDlg;
-    
-    /**
-     * Old cba resouce
-     */
-    TInt iOldCbaRes;
-    };
-
-#endif // C_CAKNFEPUSERDBDLG_H
--- a/fep/aknfep/inc/aknfepuserdbquerydlg.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
-* Copyright (c) 2007-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:            Define query dialog for user DB management
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_AKNFEPUSERDBQUERYDLG_H
-#define C_AKNFEPUSERDBQUERYDLG_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <AknQueryDialog.h> 
-
-// CLASS DECLARATION
-class CDBManagement;
-
-
-/**
- *  Query dialog for user DB management
- *  In this query dialog, it will check phrase and show note
- *
- *  @code
- *   ?good_class_usage_example(s)
- *  @endcode
- *
- *  @lib ?library
- *  @since S60 v3.1
- */
-class CAknFepUserDBQueryDlg : public CAknTextQueryDialog 
-    {
-public:
-    // Constructors and destructor
-
-    /**
-     * Destructor.
-     */
-    ~CAknFepUserDBQueryDlg();
-
-    /**
-     * Two-phased constructor.
-     * @param aDBEngine Pointer of DBEngine
-     * @param aText Text which for initialization of query dialog
-     * @param aPrompt Prompt for query
-     * @param aTone The tone played before the dialog is shown.
-     *              Default No tone is played. 
-     */
-    static CAknFepUserDBQueryDlg* NewL( CDBManagement* aDBEngine, 
-                                        TDes& aText, const TDesC& aPrompt, 
-                                        const TTone& aTone = ENoTone );
-
-    /**
-     * Two-phased constructor.
-     * @param aDBEngine Pointer of DBEngine
-     * @param aText Text which for initialization of query dialog
-     * @param aPrompt Prompt for query
-     * @param aTone The tone played before the dialog is shown.
-     *              Default No tone is played. 
-     */
-    static CAknFepUserDBQueryDlg* NewLC( CDBManagement* aDBEngine, 
-                                         TDes& aText, const TDesC& aPrompt, 
-                                         const TTone& aTone = ENoTone );
-
-private:
-
-    /**
-     * C++ constructor.
-     * @param aDBEngine Pointer of DBEngine
-     * @param aText Text which for initialization of query dialog
-     * @param aTone The tone played before the dialog is shown.
-     *              Default No tone is played. 
-     */
-    CAknFepUserDBQueryDlg( CDBManagement* aDBEngine, 
-                           TDes& aText,
-                           const TTone& aTone = ENoTone );
-
-    /**
-     * Symbian second-phase constructor.
-     * @param aPrompt Prompt for query
-     */
-    void ConstructL( const TDesC& aPrompt );
-       
-    // From base class CAknQueryDialog
-    /**
-     * From base class CAknQueryDialog
-     * Deal the softkey event
-     * @param aButtonId softkey Id
-     * @return ETrue to validate and exit the dialog, EFalse to keep the dialog active.
-     */
-    TBool OkToExitL( TInt aButtonId );
-    
-    /**
-     * From base class CAknQueryDialog
-     * Initializes the dialog's controls after the 
-     * dialog has been sized but before it has been activated
-     * @param None
-     * @return None
-     */
-    void PostLayoutDynInitL();
-    
-private: // data
-    
-    /**
-     * Engine
-     * Not own
-     */
-    CDBManagement* iDBEngine;  
-    
-    /**
-     * Text pointer in query
-     * Not own
-     */
-    TDes* iptrbuf;
-    
-    /**
-     * Text in query
-     * Own
-     */
-    HBufC* iItemText;
-    
-    };
-
-#endif // C_AKNFEPUSERDBQUERYDLG_H
--- a/fep/aknfep/inc/aknfepzhuyinconvertion.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
-* 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 TZhuyinSymbolsMethods definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef T_AKNFEPZHUYINCONVERTION_H
-#define T_AKNFEPZHUYINCONVERTION_H
-
-#include <e32hashtab.h>
-#include <badesca.h>
-#include <PtiEngine.h>
-#include "AknFepZhuyinAnalyser.h"
-
-class TZhuyinSymbolsMethods
-    {
-public:
-    /**
-     * Convert aArray to a descriptor outputed through aOutDes
-     * 
-     * @param aArray. the converted array.
-     * @param aOutDes. an output parameter for storing descriptor after converting.
-     * @return. the converted number of elements for aArray.
-     */
-    static TInt Convert2Des ( CDesCArrayFlat* aArray, TDes& aOutDes );
-    
-    /**
-     * Update the content in eep control.
-     * 
-     * @since S60 v5.0
-     * @param aPtiengine. used for getting candidate list.
-     * @param aAnylyser. used for analysing validity for zhuyin symbols.
-     * @param aZhuyinSymbols. zhuyin symbols' array.
-     * @param aChineseDisped. chinese characters' array.
-     * @param aCandidateList. an output parameter which will receive updated candidates.
-     * @param aOutDes. an output parameter for storing displayed text.
-     * @param aPhraseCreation. an out put parameter, ETrue for phrase creation, EFalse phrase input
-     * @return. whether zhuyin symbols is valid. ETrue for valid and EFalse for invalid.
-     */
-    static TBool UpdateEEPContent( 
-        CPtiEngine* aPtiengine,
-        CAknFepZhuyinAnalyser* aAnalyser,
-        CDesCArrayFlat* aZhuyinSymbols, 
-        CDesCArrayFlat* aChineseDisped,
-        CDesCArrayFlat* aCandidateList,
-        TDes& aOutDes,
-        TBool& aPhraseCreation);
-    
-    /**
-     * Update the content in eep control.
-     * 
-     * @since S60 v5.0
-     * @param aPtiengine. used for getting candidate list.
-     * @param aAnylyser. used for analysing validity for zhuyin symbols.
-     * @param aZhuyinSymbols. zhuyin symbols' array.
-     * @param aChineseDisped. chinese characters' array.
-     * @param aCandidateList. an output parameter which will receive updated candidates.
-     * @param aOutDes. an output parameter for storing displayed text.
-     * @param aPhraseCreation. an out put parameter, ETrue for phrase creation, EFalse phrase input
-     * @return. whether zhuyin symbols is valid. ETrue for valid and EFalse for invalid.
-     */
-    static TBool UpdateEEPContentL( 
-        CPtiEngine* aPtiengine,
-        CAknFepZhuyinAnalyser* aAnalyser,
-        CDesCArrayFlat* aZhuyinSymbols, 
-        CDesCArrayFlat* aChineseDisped,
-        CDesCArrayFlat* aCandidateList,
-        TDes& aOutDes,
-        TBool& aPhraseCreation);
-    
-    /**
-     * commit a chinese character from candidate list.
-     * After appending, the CDesCArrayFlat parameters will be updated for accordance.
-     * 
-     * @since S60 v5.0
-     * @param aChinese. the unicode for added chinese character.
-     * @param aAnalyser. the analyser for cecking the validity of aZhuyinSymbols.
-     * @param aZhuyinSymbols. the zhuyin symbols appeared in the eep control.
-     * @param aChineseDisped. the chinese character array aChinese should be added into.
-     * @param aZhuyinSymbolsForChinese. the corresponding symbols for chinese character array.
-     * @return. ETrue there are already 7 characters in eep control after appending.
-     *          EFalse there are less than 7 characters in eep control.
-     */
-    static TBool AppendChineseChar( 
-        const TDes& aChinese,
-        CAknFepZhuyinAnalyser* aAnalyser,
-        CDesCArrayFlat* aZhuyinSymbols, 
-        CDesCArrayFlat* aChineseDisped,
-        CDesCArrayFlat* aZhuyinSymbolsForChinese ); 
-
-    /**
-     * Delete a chinese character from aChineseDisped array
-     * and update related array in the meantime.
-     * 
-     * @since S60 v5.0
-     * @param aZhuyinSymbols.zhuyin symbols' array.
-     * @param aInputBuf. zhuyin symbols' buf.
-     * @return.ETrue for successful delete, EFalse for failed delete.
-     */
-    static void GetZhuyinSymbolsL(
-        CDesCArrayFlat* aZhuyinSymbols,
-        const TDesC& aInputBuf );
-    
-    /**
-     * Delete a chinese character from aChineseDisped array
-     * and update related array in the meantime.
-     * 
-     * @since S60 v5.0
-     * @param aZhuyinSymbols.zhuyin symbols' array.
-     * @param aChineseDisped. chinese caracters' array.
-     * @param aZhuyinSymbolsForChinese. corresponding zhuyin symbol sequences for 
-     * chinese caracters stored in aChineseDisped.
-     * @return.ETrue for successful delete, EFalse for failed delete.
-     */
-    static TBool DeleteChineseChar(
-        CDesCArrayFlat* aZhuyinSymbols, 
-        CDesCArrayFlat* aChineseDisped,
-        CDesCArrayFlat* aZhuyinSymbolsForChinese );
-    
-    /**
-     * Delete a zhuyin symbol stored in aZhuyinSymbols array.
-     * if the symbol after aKeyStroke is a tonemark, the tonemark should be deleted with zhuyin symbol.
-     * 
-     * @since S60 v5.0
-     * @param aZhuyinSymbols.zhuyin symbols' array.
-     * @param aKeyStroke. the key stroke position when deleting. 
-     * @return. ETrue for success. EFalse for failure.
-     */
-    static TBool DeleteZhuyinSymbol(
-        CDesCArrayFlat* aZhuyinSymbols, 
-        TInt aKeyStroke
-        );
-    
-    /**
-     * Refresh the cursor position according to the input parameters.
-     * 
-     * @since S60 v5.0
-     * @param aChineseNum. the number of chinese characters.
-     * @param aZhuyinShown. the displayed content.
-     * @param aKeyStrokePos. the key stroke position.
-     * @return. the new cursor position for displayed content.
-     */
-    static TInt RefreshCursorPos (
-        TInt aChineseNum,
-        const TDes& aShownContent,
-        TInt aKeyStrokePos );
-    
-    /**
-     * Get the number of zhuyin symbol group.
-     * 
-     * @since S60 v5.0
-     * @param aShown. the displayed content.
-     * @return. the number of zhuyin symbol group.
-     */
-    static TInt GetChineseCount ( const TDes& aShown );
-    
-    /**
-     * Whether the aFirstPhrase is a Zhuyin symbol or not.
-     * 
-     * @since S60 v5.0
-     * @param aFirstPhrase.Phrase content.
-     * @return. ETrue for aFirstPhrase is Zhuyin symbol. EFalse for not.
-     */
-    static TBool IsZhuyinSymbol( const TDesC& aFirstPhrase );
-    
-    /**
-     * Whether is a Zhuyin spelling or not.
-     * 
-     * @since S60 v5.0
-     * @param aSymbol the first zhuyin symbol.
-     * @param index the zhuyin symbol that index of zhuyin symbol array. 
-     * @return. ETrue the aSymbol and the symbol that index of zhuyin symbol
-     *  array is zhuyin spelling, EFalse others.
-     */
-    static TBool IsZhuyinSpelling( 
-        const TDesC& aSymbol,
-        const TInt index,
-        CDesCArrayFlat* aZhuyinSymbols );
-    
-    };
-
-#endif /*T_AKNFEPZHUYINCONVERTION_H*/
-
-//End of File
-
--- a/fep/aknfep/inc/aknfepzhuyinkeyhandler.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-/*
-* Copyright (c) 2009 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 C_AKNFEPZHUYINKEYHANDLER_H
-#define C_AKNFEPZHUYINKEYHANDLER_H
-
-#include <e32base.h>	// For CActive, link against: euser.lib
-#include <e32std.h>		// For RTimer, link against: euser.lib
-#include <PtiDefs.h>
-#include "aknfepzhuyinkeyhandlerinterface.h"
-
-class ZhuyinKeyTable
-    {
-public:
-    /**
-     *  C++ constructor.
-     * 
-     * @return state.
-     */
-    ZhuyinKeyTable();
-
-    /**
-     *  Cancel and destroy
-     * 
-     * @return state.
-     */
-    ~ZhuyinKeyTable();
-    
-    /**
-     *  Get butten loop length.
-     * 
-     * @parameter aKey the input key.
-     * @return loop length.
-     */
-    static TInt GetBtLoopLength( TPtiKey aKey );
-    
-    /**
-     *  Get zhuyin symbol.
-     * 
-     * @parameter aKey the input key
-     * @parameter aClkCount input key count
-     * @parameter aOutput the zhuyin symbol
-     * @return state.
-     */
-    static TBool GetUnicode( TPtiKey aKey, TInt aClkCount, TDes& aOutput );
-    
-    };
-
-class CZhuyinKeyHandler : public CActive, public MZhuyinKeyHandler
-    {
-public:
-     
-    /**
-     *  Cancel and destroy
-     * 
-     * @return state.
-     */
-    ~CZhuyinKeyHandler();
-
-    /**
-     *  Two-phased constructor.
-     * 
-     * @return state.
-     */
-    static CZhuyinKeyHandler* NewL();
-
-    /**
-     *  Two-phased constructor.
-     * 
-     * @return state.
-     */
-    static CZhuyinKeyHandler* NewLC();
-
-public:
-
-    /**
-     * Function for making the initial request.
-     * 
-     * @return state.
-     */
-    void Start();
-    
-    /**
-     * Get Zhuyin symbol according to the input key.
-     * 
-     * @param aKey. the input key.
-     * @param aOutBuf. an output parameter which will receive the zhuyin symbol unicode.
-     * @return 0 identify the output should replace the old symbol.
-     *         1 identify the output is a new symbol.
-     *        -1 identify error
-     */
-    TInt GetZhuyinSymbol( TPtiKey aKey, TDes& aOutBuf );
-    
-    /**
-     * Reset all the member variables.
-     * @param None.
-     * @return None.
-     */
-    void Reset();
-    
-    /**
-     * Get tonemark according to symbol in front of cursor.
-     * 
-     * @param. aBaseSymbol is the symbol in front of cursor.
-     * @param. aOutBuf is the output buffer for rcving tonemark.
-     * @return. 0 identify the output should replace symbol in front of cursor
-     *          1 identify the output should be added.
-     *         -1 identify error
-     */
-    TInt GetToneMark( const TDes& aBaseSymbol, TDes& aOutBuf );
-    
-    /**
-     * Set whether state change from entry to spelling editing is automatical.
-     * 
-     * @param aState.1 for automatical, 0 for manual.
-     * @return None.
-     */
-    void SetState( TInt aState );
-    
-    /**
-     * Get state change states.
-     * 
-     * @return state.
-     */
-    TInt GetState();
-    
-    /**
-     * Set status change flag. 
-     * this function is used to deal with long press on Down key or Clear key.
-     * 
-     * @param aChgFlag.
-     * @return None.
-     */
-    void SetStatusChgFlag( TStatusChgFlag aChgFlag );
-    
-    /**
-     * Get the status change flag.
-     * @prama None.
-     * @return.
-     */
-    TStatusChgFlag GetStatusChgFlag();
-    
-private:
-    
-    /**
-     * C++ constructor.
-     * @prama None.
-     * @return.
-     */
-    CZhuyinKeyHandler();
-
-    /**
-     * Second-phase constructor.
-     * @prama None.
-     * @return.
-     */
-    void ConstructL();
-
-private:
-
-    /**
-     * From CActive Handle completion.
-     * @prama None.
-     * @return.
-     */
-    void RunL();
-
-    /**
-     * How to cancel me.
-     * @prama None.
-     * @return.
-     */
-    void DoCancel();
-
-    /**
-     * Override to handle leaves from RunL(). Default implementation causes.
-     * the active scheduler to panic.
-     * @prama None.
-     * @return.
-     */
-    TInt RunError( TInt aError );
-
-private:
-    
-    /**
-     * Provides async timing service
-     */
-    RTimer iTimer;
-    
-    /**
-     * Last pressed key.
-     */
-    TPtiKey iLastKey;
-    
-    /**
-     * if ETrue, it identify you don't touch any key in the specified time.
-     */
-    TBool iTimeOut;
-    /**
-     * the times you pressed current key.
-     */
-    TInt iBtClickNum;
-    
-    /**
-     * the max loop length for pressed key.
-     */
-    TInt iBtLoopLength;
-    
-    /**
-     * whether the state change from entry to spelling editing is automatical.
-     */
-    TInt iState;
-    
-    /**
-     * state change flag.used to handle long press on down key and clear key currently.
-     */
-    TStatusChgFlag iStatusChgFlag;
-    
-    };
-
-#endif // C_AKNFEPZHUYINKEYHANDLER_H
-
-// End of file
-
--- a/fep/aknfep/inc/aknfepzhuyinkeyhandlerinterface.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-/**
- * aknfepzhuyinkeyhandlerinterface.h
- * 
- */
-#ifndef M_AKNFEPZHUYINKEYHANDLERINTERFACE_H
-#define M_AKNFEPZHUYINKEYHANDLERINTERFACE_H
-
-#include <e32std.h>
-
-class MZhuyinKeyHandler
-    {
-public:
-    enum TStatusChgFlag
-    {
-    EInit,
-    EFromSpellingEditingToEntry,
-    EFromCandidateToEntry
-    };
-    virtual TInt GetZhuyinSymbol ( TPtiKey aKey, TDes& aOutBuf ) = 0;
-    virtual void Reset() = 0;
-    virtual TInt GetToneMark ( const TDes& aBaseSymbol, TDes& aOutBuf ) = 0;
-    virtual void SetState( TInt aState ) = 0;
-    virtual TInt GetState() = 0;
-    virtual void SetStatusChgFlag ( TStatusChgFlag aChgFlag ) = 0;
-    virtual TStatusChgFlag GetStatusChgFlag () = 0;
-    };
-
-#endif /*M_AKNFEPZHUYINKEYHANDLERINTERFACE_H*/
--- a/fep/aknfep/inc/dbmanagement.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-/*
-* 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:            DB Engine
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_CDBMANAGEMENT_H
-#define C_CDBMANAGEMENT_H
-
-// CLASS DECLARATION
-class CPtiEngine;
-class CAknFepSharedDataInterface;
-class CAknFepManager;
-
-// CONSTANTS
-const TInt KErrorMsgMaxLength = 60;
-/**
- *  CDBManagement
- *  User DB management view's DB Engine
- * 
- * 
- *  @lib peninputhwrboxcn.lib
- *  @since S60 v5.0
- */
-class CDBManagement : public CBase
-    {
-    
-public:
-    
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v5.0
-     * @return Pointer to created CDBManagement object
-     */
-    static CDBManagement* NewL( CAknFepManager* aFepManager );
-
-    /**
-     * Destructor.
-     *
-     * @since S60 v5.0
-     * @return None
-     */    
-    virtual ~CDBManagement();
-
-    /**
-     * Add phrase to DB.
-     *
-     * @since S60 v5.0
-     * @param aPhraseAdd the phrase to be added to DB  
-     * @return ETrue if the phrase is added to DB successfully, otherwise EFalse.
-     */    
-    TBool AddPhraseToDB( const TDesC& aPhraseAdd );
-    
-    /**
-     * Edit phrase from DB.
-     *
-     * @since S60 v5.0
-     * @param aPhraseOld the phrase to be edited before
-     * @param aPhraseNew the phrase to be edited after
-     * @return ETrue if the phrase is edited from DB successfully, otherwise EFalse.
-     */    
-    TBool EditPhraseFromDB(  const TDesC& aPhraseOld,
-                             const TDesC& aPhraseNew );
-    
-    /**
-     * Remove phrase from DB.
-     *
-     * @since S60 v5.0
-     * @param aPhraseRemove the phrase to be removed
-     * @return ETrue if the phrase is remove from DB successfully, otherwise EFalse.
-     */    
-    TBool RemovePhraseFromDB( const TDesC& aPhraseRemove );
-    
-    /**
-     * Get phrases from DB.
-     *
-     * @since S60 v5.0
-     * @param aPhraseGet the phrases are getde from DB
-     * @return ETrue if the phrases are geted from DB successfully, otherwise EFalse.
-     */    
-    TBool GetPhraseFromDBL( CDesCArray& aPhraseGet);     
-    
-    /**
-     * Get Error Message.
-     *
-     * @since S60 v5.0
-     * @param aErrMsg the Error Message
-     * @return None.
-     */    
-    void GetErrMsg( TDes& aErrMsg );
- 
-    /**
-     * Check the input pharese.
-     *
-     * @since S60 v5.0
-     * @param aPhraseInput  the phrase to be checked
-     * @return ETrue if the input phrase are checked successfully, otherwise EFalse.
-     */
-    TBool InputPhraseCheck( TDes& aPhraseInput );
-
-private:
-    
-    /**
-     * C++ constructor
-     *
-     * @since S60 v5.0
-     * @return None
-     */
-    CDBManagement();
-    
-    /**
-     * Second phase constructor.
-     *
-     * @since S60 v5.0
-     * @return Pointer to created CDBManagement object
-     */    
-    void ConstructL( CAknFepManager* aFepManager );
-
-    /**
-     * set language
-     *
-     * @since S60 v5.0
-     * @return none.
-     */    
-    void ActivateLanguageL();
-    
-    /**
-     * set language
-     *
-     * @since S60 v5.0
-     * @return none.
-     */    
-    void ActivateLanguageOfFepL();
-    
-    /**
-     * set language
-     *
-     * @since S60 v5.0
-     * @return none.
-     */    
-    void ActivateLanguage();
-    
-    /**
-     * set input mode
-     *
-     * @since S60 v5.0
-     * @return ETrue if set input mode successfully, otherwise EFalse.
-     */
-    TBool SetInputMode( CPtiEngine* aPtiEngine );
-    
-    /**
-     * get db error message
-     *
-     * @since S60 v5.0
-     * @return none.
-     */
-    void GetDBErrMsg( TInt aErrCode );
-    
-private: //private data
-    
-    /**
-     * CAknFepSharedDataInterface objcet
-     * Own
-     */
-    CAknFepSharedDataInterface* iAknFepSharedDataInterface;
-    
-    /**
-     * CAknFepSharedDataInterface objcet
-     * Own
-     */
-    CPtiEngine* iPtiEngine;
-    
-    /**
-     * CAknFepSharedDataInterface objcet
-     * not Own
-     */
-    CPtiEngine* iPtiEngineOfFep;
-    
-    /**
-     * CAknFepSharedDataInterface objcet
-     * not Own
-     */
-    CAknFepManager* iFepManager;
-        
-    /**
-     * Error message info
-     */
-    TBuf<KErrorMsgMaxLength> iErrMsg;
-    };
-
-#endif // C_CDBMANAGEMENT_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/data/E95A395D.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:  Resource definitions for project peninputimeplugingeneric
-*
-*/
-
-#include <eikon.rh>
-#include <ecom/registryinfo.rh>
-#include "PeninputPluginKr.hrh"   // CPeninputPluginKr
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = KAknFepImePluginImplementationId;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = 0x10207363;
-            implementations = 
-                {
-                // Info for CImplementation1
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = KAknFepImePluginImplementationId;
-                    version_no = 1;
-                    display_name = "Korean touch input method plugin";
-                    //supported language
-                    default_data = "1||65";
-                    }
-                };
-            }
-        };
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/data/PeninputPluginKr.loc	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
-//  LOCALISATION STRINGS
-
-#ifdef LANGUAGE_01
-
-#define qtn_peninput_plugin_kr_doubleconsonent_setting "Custom Combination"
-
-#define STRING_r_aknexquery_selection_title "Custom Combination"
-
-#define qtn_peninput_plugin_kr_item1 "1\t"<0x3131>" + "<0x3131>" "<0x21D2>" "<0x3132>
-#define qtn_peninput_plugin_kr_item2 "1\t"<0x3137>" + "<0x3137>" "<0x21D2>" "<0x3138>
-#define qtn_peninput_plugin_kr_item3 "1\t"<0x3142>" + "<0x3142>" "<0x21D2>" "<0x3143>
-#define qtn_peninput_plugin_kr_item4 "1\t"<0x3145>" + "<0x3145>" "<0x21D2>" "<0x3146>
-#define qtn_peninput_plugin_kr_item5 "1\t"<0x3148>" + "<0x3148>" "<0x21D2>" "<0x3149>
-#define qtn_peninput_plugin_kr_item6 "1\t"<0x3151>" + "<0x3163>" "<0x21D2>" "<0x3152>
-#define qtn_peninput_plugin_kr_item7 "1\t"<0x3155>" + "<0x3163>" "<0x21D2>" "<0x3156>
-
-#endif
-
-#ifdef LANGUAGE_65
-
-#define qtn_peninput_plugin_kr_doubleconsonent_setting <0xC790><0xBAA8>" "<0xC870><0xD569>" "<0xC124><0xC815>
-
-#define STRING_r_aknexquery_selection_title <0xC790><0xBAA8>" "<0xC870><0xD569>" "<0xC124><0xC815>
-
-#define qtn_peninput_plugin_kr_item1 "1\t"<0x3131>" + "<0x3131>" "<0x21D2>" "<0x3132>
-#define qtn_peninput_plugin_kr_item2 "1\t"<0x3137>" + "<0x3137>" "<0x21D2>" "<0x3138>
-#define qtn_peninput_plugin_kr_item3 "1\t"<0x3142>" + "<0x3142>" "<0x21D2>" "<0x3143>
-#define qtn_peninput_plugin_kr_item4 "1\t"<0x3145>" + "<0x3145>" "<0x21D2>" "<0x3146>
-#define qtn_peninput_plugin_kr_item5 "1\t"<0x3148>" + "<0x3148>" "<0x21D2>" "<0x3149>
-#define qtn_peninput_plugin_kr_item6 "1\t"<0x3151>" + "<0x3163>" "<0x21D2>" "<0x3152>
-#define qtn_peninput_plugin_kr_item7 "1\t"<0x3155>" + "<0x3163>" "<0x21D2>" "<0x3156>
-
-#endif
-
-// End of File
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/data/PeninputPluginKrRes.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:  Resource definitions for project peninputgenericvkb
-*
-*/
-
-
-// Resource identifier
-NAME PIPK
-
-// System includes
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <eikon.rh>
-#include <appinfo.rh>
-#include "PeninputPluginKr.loc"
-
-RESOURCE RSS_SIGNATURE
-    {
-    }
-
-RESOURCE TBUF
-    {
-    buf = "PeninputPluginKr";
-    }
-
-
-RESOURCE LBUF r_peninput_plugin_kr_doubleconsonent_setting
-    {
-    txt=qtn_peninput_plugin_kr_doubleconsonent_setting;
-    }
-
-//-----------------------------------------------------------------------------
-//
-//    r_aknexquery_multi_selection_query
-//    Resource of Multi Selection Query.
-//
-//-----------------------------------------------------------------------------
-//
-
-#define AKNEXQUERY_LISTBOX_HEIGHT 3
-#define AKNEXQUERY_LISTBOX_WIDTH 3
-
-RESOURCE DIALOG r_aknexquery_multi_selection_query
-    {
-    flags = EGeneralQueryFlags;
-    buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtListQueryControl;
-            id = EListQueryControl;
-            control = AVKON_LIST_QUERY_CONTROL
-                {
-                listtype = EAknCtSingleGraphicPopupMenuListBox;
-                listbox = LISTBOX
-                    {
-                    flags = EAknListBoxMultiselectionList;
-                    height = AKNEXQUERY_LISTBOX_HEIGHT;
-                    width = AKNEXQUERY_LISTBOX_WIDTH;
-                    array_id = r_aknexquery_multi_selection_query_list_item;
-                    };
-                heading = STRING_r_aknexquery_selection_title;
-                };
-            }
-        };
-    }
-
-//-----------------------------------------------------------------------------
-//
-//    r_aknexquery_multi_selection_query_list_item
-//    Items array for Multi Selection Query
-//
-//-----------------------------------------------------------------------------
-//
-RESOURCE ARRAY r_aknexquery_multi_selection_query_list_item
-    {
-    items =
-        {
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item1;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item2;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item3;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item4;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item5;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item6;
-            },
-        LBUF
-            {
-            txt = qtn_peninput_plugin_kr_item7;
-            }
-        };
-    }
-
-//-----------------------------------------------------------------------------
-//
-//    r_aknexquery_multi_selection_list_query
-//
-//-----------------------------------------------------------------------------
-//
-RESOURCE AVKON_MULTISELECTION_LIST_QUERY r_aknexquery_multi_selection_list_query
-    {
-    flags = EGeneralQueryFlags;
-    softkeys = R_AVKON_SOFTKEYS_SELECT_CANCEL;
-    items =
-        {
-        AVKON_MULTISELECTION_LIST_QUERY_DLG_LINE 
-            {
-            control = AVKON_LIST_QUERY_CONTROL
-                {
-                listtype = EAknCtSingleGraphicPopupMenuListBox;
-                listbox = AVKON_MULTISELECTION_LIST_QUERY_LIST
-                    {
-                    array_id=r_aknexquery_multi_selection_query_list_item;
-                    };
-                heading = STRING_r_aknexquery_selection_title;
-                };
-            }
-        };
-    }
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/group/PeninputPluginKr.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <bldvariant.hrh>
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-TARGET          PeninputPluginKr.dll
-TARGETTYPE      PLUGIN
-CAPABILITY      CAP_ECOM_PLUGIN
-VENDORID        VID_DEFAULT
-UID             0x10009D8D 0xE95A395D
-
-MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE   /epoc32/include/ecom
-SYSTEMINCLUDE   ../../../../../inc 
-SYSTEMINCLUDE   ../../../../../fep/aknfep/inc
-
-USERINCLUDE	    ../inc
-
-SOURCEPATH	  ../src
-
-SOURCE        PeninputPluginKr.cpp
-SOURCE        PeninputPluginKrDllMain.cpp
-SOURCE        PeninputPluginKrProxy.cpp
-SOURCE        PluginKrFepManagerBase.cpp
-SOURCE        PluginKrFepManagerHwr.cpp
-SOURCE        PluginKrFepManagerVkb.cpp
-SOURCE	      PluginKrFepManagerItut.cpp
-
-LANG          sc 01 65
-
-SOURCEPATH ../data
-START RESOURCE E95A395D.rss
-    #ifdef SYMBIAN_SECURE_ECOM 
-      TARGET PeninputPluginKr.rsc
-    #endif
-END
-
-SOURCEPATH      ../data
-START RESOURCE PeninputPluginKrRes.rss
-	HEADER
-	TARGETPATH resource/fep
-END
-
-LIBRARY       euser.lib
-LIBRARY       ecom.lib
-LIBRARY       FeatMgr.lib
-LIBRARY       commonengine.lib
-LIBRARY       bafl.lib
-LIBRARY       cone.lib
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY       peninputclient.lib
-#else
-LIBRARY       peninputserverstub.lib
-#endif
-LIBRARY       estor.lib
-LIBRARY       avkon.lib
-LIBRARY       eikcoctl.lib
-LIBRARY       centralrepository.lib
-
-DEBUGLIBRARY  flogger.lib
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2002-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:
-*
-*/
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-
-PRJ_MMPFILES
-PeninputPluginKr.mmp
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/group/peninputpluginkrproxy.d	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \Carbide\PeninputPluginKr\src\peninputpluginkrproxy.cpp
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\RVCT2_2\RVCT2_2.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\feature_settings.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\defaultcaps.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\Symbian.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\..\variant\Symbian_OS.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\privateruntimeids.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\publicruntimeids.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\ncp_feature_consts.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \EPOC32\include\oem\ncp_consts.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldcodeline.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldprivate.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldpublic.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldregional.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\adaptation_features.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\ncp_feature_settings.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\hw_rapido_init_settings.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\hw_logical_pins.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\spp_feature_settings.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\dsw_feature_settings.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\productvariant.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldcustomsw.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\customswconsts.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\customswruntimeids.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\customswstaticfeatures.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\oem\bldnokia.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\RVCT2_2\../symcpp.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32std.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32cmn.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32const.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32err.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32def.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32lang.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32capability.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32des8.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32des16.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32cmn.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32std.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\ecom\ImplementationProxy.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \Carbide\PeninputPluginKr\inc\PeninputPluginKr.hrh
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \Carbide\PeninputPluginKr\inc\PeninputPluginKr.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32base.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32base.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \s60\mw\inputmethods\inc\AknFepPenInputImePlugin.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\ECom\ECom.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\s32std.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\s32strm.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\s32strm.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\s32std.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\f32file.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32svr.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32hal.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\d32locd.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\partitions.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\d32locd.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32notif.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32ldr.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32event.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32ktran.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32keys.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32debug.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\e32lmsg.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include\f32file.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/ecom/ecomerrorcodes.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/ecom/ecomresolverparams.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/ecom/ecomresolverparams.inl
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/ecom/implementationinformation.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/s32std.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/f32file.h
-\EPOC32\BUILD\Carbide\PeninputPluginKr\group\PENINPUTPLUGINKR\ARMV5\udeb\PeninputPluginKrProxy.o: \epoc32\include/ecom/implementationinformation.inl
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputImePluginKr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* 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 PENINPUTIMEPLUGINKR_H
-#define PENINPUTIMEPLUGINKR_H
-
-// INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-
-// CLASS DECLARATION
-
-/**
- *  CPeninputImePluginKr
- * 
- */
-class CPeninputImePluginKr : public CBase
-    {
-public:
-    // Constructors and destructor
-
-    /**
-     * Destructor.
-     */
-    ~CPeninputImePluginKr();
-
-    /**
-     * Two-phased constructor.
-     */
-    static CPeninputImePluginKr* NewL();
-
-    /**
-     * Two-phased constructor.
-     */
-    static CPeninputImePluginKr* NewLC();
-
-private:
-
-    /**
-     * Constructor for performing 1st stage construction
-     */
-    CPeninputImePluginKr();
-
-    /**
-     * EPOC default constructor for performing 2nd stage construction
-     */
-    void ConstructL();
-
-    };
-
-#endif // PENINPUTIMEPLUGINKR_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/*
-* 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 __PENINPUTPLUGINKR_H__
-#define __PENINPUTPLUGINKR_H__
-
-#include <e32base.h>	// CBase
-#include <e32std.h>	 // TBuf
-#include <aknfeppeninputimeplugin.h>
-#include <centralrepository.h>
-
-class RPeninputServer;
-class CPtiEngine;
-class CPluginKrFepManagerBase;
-
-class CPeninputPluginKr : public CAknFepPenInputImePlugin
-    {
-public:
-
-    static CPeninputPluginKr* NewLC(TAny* aInitParams);
-    
-    static CPeninputPluginKr* NewL(TAny* aInitParams);
-    
-    virtual ~CPeninputPluginKr();
-
-private:
-
-    CPeninputPluginKr(RPeninputServer* aServer);
-    
-    void ConstructL();
-
-private: // from CAknFepPenInputImePlugin
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    virtual MAknFepManagerInterface* GetInputMethodUiL(
-        MAknFepManagerUIInterface* aFepManager,
-        TLanguage aLanguage, 
-        TInt aMode,
-        const TDesC8& aData,
-        const TBool aIsSplitView = EFalse);
-    
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    virtual MAknFepManagerInterface* GetInputMethodUiL(
-        MAknFepManagerUIInterface* aFepManager,
-        TInt aLayoutId,
-        const TDesC8& aData);
-    
-    /**
-     * Activate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void Activate();
-
-    /**
-     * Deactivate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void DeActivate();
-
-    /**
-     * Get current IME plugin implementation ID.
-     * 
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    virtual TInt ImeImplId();
-
-    /**
-     * Get current layout UI implementation id.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual TInt LayoutUiImplId();
-
-    /**
-     * Handle pen input server event.
-     * 
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual TBool HandleServerEventL(
-        TInt aEventId, 
-        const TDesC& aData);
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @return Supported modes.
-     */
-    virtual TInt SupportModes(
-        CPtiEngine* aPtiEngine, 
-        RArray<TImePlguinImplDetail>& aSupportList) const;
-    
-    /**
-     * Get current layout UI mode.
-     * 
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-    virtual TInt CurrentMode() const;
-    
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if 
-     * this function return EFalse, FEP handles it defaultly.
-     * 
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command; 
-     *         EFalse otherwise.
-     */
-    virtual TBool HandleMenuCommandL(TInt aCommandId);
-    
-    /**
-     * Dynamiclly update menu items during it displays. 
-     * 
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    virtual void DynInitMenuPaneL(
-        CAknFepUiInterfaceMenuPane* aMenuPane);
-    
-
-private:
-    
-    void FindUiLayoutImplementationL();
-    
-    CPluginKrFepManagerBase* GetPluginUiL( TInt aMode );
-    
-    TInt SupportModesL(
-        CPtiEngine* /*aPtiEngine*/,
-        RArray<TImePlguinImplDetail>& aSupportList) const; 
-
-    CPluginKrFepManagerBase* CPeninputPluginKr::GetCurrentUi();
-
-    /**
-     * Get VKB UI interface
-     *
-     * @return VKB UI pointer
-     */
-    CPluginKrFepManagerBase* GetVkbUiL();
-
-    /**
-     * Get Itut UI interface
-     *
-     * @return Itut UI pointer
-     */
-    CPluginKrFepManagerBase* GetItutUiL();
-
-    /**
-     * Get FSQ UI interface
-     *
-     * @return FSQ UI pointer
-     */
-    CPluginKrFepManagerBase* GetFSQUiL(TInt aLang);
-    
-    void ShowListQueryL( const TInt aResourceId );
-    
-private:
-    
-    RPeninputServer& iPeninputServer;
-
-    RArray<TInt> iUiLayoutImpIdList;
-
-    TInt iPenInputMode;
-    
-     /**
-     * Pen input server pointer. Not own.
-     */
-    RPointerArray<CPluginKrFepManagerBase> iAllUiManagers;
-    
-    CPluginKrFepManagerBase* iPluginKrFepManager;
-    
-    CRepository* iRepository;
-    
-    TInt iResId;
-    
-    };
-
-#endif  // __PENINPUTPLUGINKR_H__
-
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.hrh	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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 PENINPUTPLUGINKR_HRH_
-#define PENINPUTPLUGINKR_HRH_
-
-#include <avkon.hrh>
-
-#define KAknFepImePluginImplementationId   0xE95A395D
-#define KHwrLayoutInterfaceId 0x102072FC
-
-enum TLayoutUiImplId
-    {
-    KVkbUiId = 0xEB339F5D,
-    KItutUiId = 0x2000b101,
-    KFsqUiId = 0xEB339F5E,
-    KFsqUiEngId = 0x2001114D
-    };
-
-enum TPeninputPluginKrCmd
-    {
-    EPeninputPluginKrDoubleConsonentCmd=EAknCmdEnd
-    };
-
-
-#endif /* PENINPUTPLUGINKR_HRH_ */
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.pan	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* 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 __PENINPUTPLUGINKR_PAN__
-#define __PENINPUTPLUGINKR_PAN__
-
-//  Data Types
-
-enum TPeninputPluginKrPanic
-    {
-    EPeninputPluginKrNullPointer
-    };
-
-//  Function Prototypes
-
-GLREF_C void Panic(TPeninputPluginKrPanic aPanic);
-
-#endif  // __PENINPUTPLUGINKR_PAN__
-
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKrDbg.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* 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 __PENINPUTPLUGINKRDBG_H__
-#define __PENINPUTPLUGINKRDBG_H__
-
-#ifdef _DEBUG
-#include <e32svr.h>
-    #if __WINS__
-        #define LOG_ASSERT(a) RDebug::Print(_L("PKQC: "a)); __ASSERT_DEBUG(EFalse,User::Panic(_L("PKQC: Not Implemented"),__LINE__))
-        #define LOG(a) RDebug::Print(_L("PKQC: "a))
-        #define LOG1(a,b) RDebug::Print(_L("PKQC: "a),b)
-        #define LOG2(a,b,c) RDebug::Print(_L("PKQC: "a),b,c)
-        #define LOG3(a,b,c,d) RDebug::Print(_L("PKQC: "a),b,c,d)
-        #define LOG4(a,b,c,d,e) RDebug::Print(_L("PKQC: "a),b,c,d,e)
-    #else
-        #define LOG_ASSERT(a) RDebug::Print(_L(a)); __ASSERT_DEBUG(EFalse,User::Panic(_L("PKQC: Not Implemented"),__LINE__))
-        #define LOG(a) RDebug::Print(_L(a))
-        #define LOG1(a,b) RDebug::Print(_L(a),b)
-        #define LOG2(a,b,c) RDebug::Print(_L(a),b,c)
-        #define LOG3(a,b,c,d) RDebug::Print(_L(a),b,c,d)
-        #define LOG4(a,b,c,d,e) RDebug::Print(_L(a),b,c,d,e)
-    #endif
-#else
-    #define LOG_ASSERT(a)
-    #define LOG(a)
-    #define LOG1(a,b)
-    #define LOG2(a,b,c)
-    #define LOG3(a,b,c,d)
-    #define LOG4(a,b,c,d,e)
-#endif
-
-#endif /* __PENINPUTPLUGINKRDBG_H__ */
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerBase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
-* 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 PLUGINKRFEPMANAGERBASE_H
-#define PLUGINKRFEPMANAGERBASE_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <AknFepManagerInterface.h>
-#include <peninputclient.h>
-
-class CPeninputPluginKr;
-class RPeninputServer;
-class CRepository;
-class CAknEdwinState;
-
-class CPluginKrFepManagerBase : public CBase, public MAknFepManagerInterface
-    {
-public:
-    
-    virtual ~CPluginKrFepManagerBase();
-
-protected:
-
-    CPluginKrFepManagerBase(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    void ConstructL();
-    
-private:
-
-    virtual void SetMode(
-        TInt aMode, 
-        TBool aPredictive, 
-        TBool aQwertyInputMode,
-        TInt aKeyboardType = EPtiKeyboardNone);
-
-    virtual void SetCase(TCase aCase);
-
-    virtual void SetNumberModeKeyMappingL(
-        TAknEditorNumericKeymap aAknEditorNumericKeymap);
-
-    virtual TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey);
-
-    virtual void HandleCommandL(TInt aCommandId);
-    
-    virtual void HandleCommandL(TInt aCommandId, TInt aParam);
-
-    virtual void CloseUI();
-
-    virtual void ExpireMultitapTimer();
-
-    virtual TBool IsValidNumericLongKeyPress(TInt aKey) const;
-
-    virtual void AddTextToUserDictionaryL(const TDesC& aText);
-
-    virtual void GetFormatOfFepInlineText(
-        TCharFormat& aFormat, 
-        TInt& aNumberOfCharactersWithSameFormat, 
-        TInt aPositionOfCharacter) const;
-
-    virtual TInt SupportLanguage(TInt aMode) const;
-
-    virtual void SetInputLanguageL(TLanguage aLanguage);
-
-    virtual TBool IsValidShiftKeyPress() const;
-
-    virtual void SetEditorContext(TInt aContext);
-
-    virtual void ActivateUI();
-
-    virtual void SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/);
-
-    virtual TInt EditorMaxLength();
-    
-    virtual void ResourceChanged(TInt aType);
-        
-    virtual void SetNextFepUI(MAknFepManagerInterface* /*aNextUi*/);
-
-    virtual void SetStarKeyFlag( TBool aSet );
-    
-    virtual TBool IsValidFnKeyPress() const
-		{
-		return EFalse;
-		};
-    virtual TBool IsValidLongChrKeyPress() const
-		{
-        return EFalse;
-		};
-public:
-    
-    virtual void OnInit();
-    
-    virtual void RetrieveEditorMaxLength();
-    
-    virtual void UpdateRange( TInt aRange );
-    
-    virtual void UpdateCaseMode( TInt aCaseMode );
-    
-protected:
-    
-    void SendCommandToServer( TInt aCommandId );
-    
-    void SendCommandToServer( TInt aCommandId, TInt aParam );
-    
-    void SendCommandToServer(TInt aCommandId, const TDesC8& aParam);
-
-    void SetLayoutRange(const CAknEdwinState* aEditorState);
-    
-    void SetLayoutPermitedRanges( TInt aPermittedMode );
-    
-    TBool SupportNativeNumberRange();
-    
-protected:
-
-    CPeninputPluginKr& iOwner;
-
-    RPeninputServer& iPenInputServer;
-
-    TInt iPermittedRange;
-    
-    TInt iHkbMode;
-
-    TInt iSuggestedRange;
-    
-    TLanguage iLanguage;   
-    
-private:
-
-    CRepository* iRepository;
-
-    TInt iMaxEditorLength;
-
-    TInt iLastCase;
-    
-    TInt iLastRange;
-
-    MAknFepManagerInterface* iHkbUi;
-    
-    TInt iPermittedMode;
-    };
-
-#endif // PLUGINKRFEPMANAGERBASE_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerHwr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* 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 PLUGINKRFEPMANAGERHWR_H
-#define PLUGINKRFEPMANAGERHWR_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include "PluginKrFepManagerBase.h"
-
-class CPluginKrFepManagerHwr : public CPluginKrFepManagerBase
-    {
-public:
-    
-    static CPluginKrFepManagerHwr* NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    static CPluginKrFepManagerHwr* NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    virtual ~CPluginKrFepManagerHwr();
-
-private:
-
-    CPluginKrFepManagerHwr(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    void ConstructL();
-
-    };
-
-#endif // PLUGINKRFEPMANAGERHWR_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerItut.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* 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 PLUGINKRFEPMANAGERITUT_H
-#define PLUGINKRFEPMANAGERITUT_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include "PluginKrFepManagerBase.h"
-
-class PeninputImePluginKr;
-
-class CPluginKrFepManagerItut : public CPluginKrFepManagerBase
-    {
-public:
-    
-    static CPluginKrFepManagerItut* NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    static CPluginKrFepManagerItut* NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-        
-   TBool HandleKeyL( TInt aKey, TKeyPressLength aLength,TEventCode aEventCode = EEventKey);                                      
-
-
-    virtual ~CPluginKrFepManagerItut();
-
-private:
-
-    CPluginKrFepManagerItut(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    void ConstructL();
-
-    };
-
-#endif // PLUGINKRFEPMANAGERVKB_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PluginKrFepManagerVkb.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* 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 PLUGINKRFEPMANAGERVKB_H
-#define PLUGINKRFEPMANAGERVKB_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include "PluginKrFepManagerBase.h"
-
-class CPluginKrFepManagerVkb : public CPluginKrFepManagerBase
-    {
-public:
-    
-    static CPluginKrFepManagerVkb* NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    static CPluginKrFepManagerVkb* NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    virtual ~CPluginKrFepManagerVkb();
-
-private:
-
-    CPluginKrFepManagerVkb(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer);
-
-    void ConstructL();
-
-    };
-
-#endif // PLUGINKRFEPMANAGERVKB_H
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_EKA2.pkg	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-;
-; Copyright (c) 2009 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:
-;
-; Installation file for PeninputPluginKr dll
-;
-; This is an auto-generated PKG file by Carbide.
-; This file uses variables specific to Carbide builds that will not work
-; on command-line builds. If you want to use this generated PKG file from the
-; command-line tools you will need to modify the variables with the appropriate
-; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
-
-;
-; UID is the dll's UID
-;
-#{"PeninputPluginKr DLL"},(0xE95A395D),1,0,0
-
-
-;Localised Vendor name
-%{"Vendor-EN"}
-
-;Unique Vendor name
-:"Vendor"
-
-"\epoc32\release\ARMV5\UDEB\PeninputPluginKr.dll"-"!:\Sys\Bin\PeninputPluginKr.dll" 
-"\epoc32\data\Z\resource\fep\PeninputPluginKrRes.r01"-"!:\resource\fep\PeninputPluginKrRes.r01"
-"\epoc32\data\Z\resource\fep\PeninputPluginKrRes.r65"-"!:\resource\fep\PeninputPluginKrRes.r65"
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_stub.pkg	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-;
-; Copyright (c) 2009 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:
-;
-; Installation file for PeninputPluginKr dll
-;
-; This is an auto-generated PKG file by Carbide.
-; This file uses variables specific to Carbide builds that will not work
-; on command-line builds. If you want to use this generated PKG file from the
-; command-line tools you will need to modify the variables with the appropriate
-; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
-
-;
-; UID is the dll's UID
-;
-#{"PeninputPluginKr DLL"},(0xE95A395D),1,0,0, TYPE=SA
-
-
-;Localised Vendor name
-%{"Vendor-EN"}
-
-;Unique Vendor name
-:"Vendor"
-
-"\epoc32\release\ARMV5\UDEB\PeninputPluginKr.dll"-"!:\Sys\Bin\PeninputPluginKr.dll" 
-"\epoc32\data\Z\resource\fep\PeninputPluginKrRes.r01"-"!:\resource\fep\PeninputPluginKrRes.r01"
-"\epoc32\data\Z\resource\fep\PeninputPluginKrRes.r65"-"!:\resource\fep\PeninputPluginKrRes.r65"
Binary file fep/aknfep/peninputplugins/PeninputPluginKr/sis/PeninputPluginKr_stub.sis has changed
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,640 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <featmgr.h>
-#include <implementationinformation.h>
-#include <aknfeppeninputenums.h>
-#include <aknfepuiinterface.h>
-#include <aknfepuimenus.h>
-#include <aknlistquerydialog.h>
-
-#include <coemain.h>
-#include <bautils.h>
-#include <StringLoader.h>
-
-#include <peninputcmd.h>
-#include <PeninputPluginKrRes.rsg>
-#include <peninputclient.h>
-
-#include <PtiKoreanQwertyCoreCRDefs.h>
-
-#include "PeninputPluginKrDbg.h"
-#include "PeninputPluginKr.hrh"   // CPeninputPluginKr
-#include "PeninputPluginKr.h"	// CPeninputPluginKr
-#include "PeninputPluginKr.pan"	  	// panic codes
-#include "PluginKrFepManagerBase.h"     // panic codes
-#include "PluginKrFepManagerHwr.h"
-#include "PluginKrFepManagerVkb.h"
-#include "PluginKrFepManagerItut.h"
-
-//_LIT(KFscImeName, "Korean FSC");
-//_LIT(KHwrImeName, "Korean HWR");
-_LIT(KVkbImeName, "Korean VKB");
-_LIT(KFsqImeName, "Korean FSQ");
-//_LIT(KFsqImeNameEng, "English FSQ");
-_LIT(KItutImeName, "Korean ITUT");
-
-_LIT(KPeninputPluginKrResourceFileName, "z:\\resource\\fep\\PeninputPluginKrRes.rsc");
-
-const TInt KItutUiIndex = 0;
-const TInt KVkbUiIndex = 1;
-const TInt KFSQUiIndex = 2;
-//const TInt KFSQUiEngIndex = 3;
-const TInt KInvalidImplId = 0;
-
-LOCAL_C void Cleanup( TAny* aAny )
-    {
-    RImplInfoPtrArray* implArray = 
-        reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Constructors & Destructors
-// ---------------------------------------------------------------------------
-//
-
-CPeninputPluginKr* CPeninputPluginKr::NewLC(TAny* aInitParams)
-    {
-    CPeninputPluginKr* self = new (ELeave) CPeninputPluginKr(
-        static_cast<RPeninputServer*>(aInitParams));
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-CPeninputPluginKr* CPeninputPluginKr::NewL(TAny* aInitParams)
-    {
-    CPeninputPluginKr* self = CPeninputPluginKr::NewLC(aInitParams);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CPeninputPluginKr::CPeninputPluginKr(RPeninputServer* aServer)
-    : iPeninputServer(*aServer)
-    {
-    }
-
-void CPeninputPluginKr::ConstructL()
-    {
-    /*
-    LOG("FEP.IMEPLG.KR.ConstructL");
-    FindUiLayoutImplementationL();
-    */
-    FindUiLayoutImplementationL();
-    //Append NULL to save HWR manager position
-    iAllUiManagers.Append(NULL);
-    //Append NULL to save VKB manager position
-    iAllUiManagers.Append(NULL);
-    //Append NULL to save ITUT manager position
-    iAllUiManagers.Append(NULL);
-    //Append NULL to save Mini ITUT manager position
-    iAllUiManagers.Append(NULL);
-    //Append NULL to save FSQ manager position
-    iAllUiManagers.Append(NULL);
-    
-    TFileName resourceName(KPeninputPluginKrResourceFileName);
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    BaflUtils::NearestLanguageFile(coeEnv->FsSession(), resourceName);
-    iResId = coeEnv->AddResourceFileL(resourceName);
-    
-    iRepository=CRepository::NewL(KCRUidPtiKoreanQwertyCore);
-    
-    }
-
-CPeninputPluginKr::~CPeninputPluginKr()
-    {
-    delete iRepository;
-    CCoeEnv::Static()->DeleteResourceFile(iResId);
-    DeActivate();
-    iUiLayoutImpIdList.Close();
-    delete iPluginKrFepManager;
-    iAllUiManagers.ResetAndDestroy();
-    REComSession::FinalClose();//cleanup ecom
-    }
-
-// ---------------------------------------------------------------------------
-// from CAknFepPenInputImePlugin
-// ---------------------------------------------------------------------------
-//
-
-MAknFepManagerInterface* CPeninputPluginKr::GetInputMethodUiL(
-        MAknFepManagerUIInterface* aFepManager,
-        TLanguage aLanguage, 
-        TInt aMode,
-        const TDesC8& /*aData*/,
-        const TBool /*aIsSplitView*/ )
-    {
-    iFepManager = aFepManager;
-    iLanguage = aLanguage;
-    CPluginKrFepManagerBase* fepmanager = NULL;
-
-    TUid layoutId;
-    TInt i;
-
-    switch(aMode)
-        {
-        case EPluginInputModeVkb:
-            layoutId.iUid = KVkbUiId;
-            fepmanager = GetVkbUiL();
-            break;
-        /*   
-        case EPluginInputModeItut:
-            layoutId.iUid = KItutUiId;
-            fepmanager = GetItutUiL();
-            break;*/
-            
-        case EPluginInputModeFSQ:
-        	{
-        	/*if(iLanguage == ELangEnglish)
-        		{
-        		layoutId.iUid = KFsqUiEngId;
-        		}
-        	else*/
-        		{
-        		layoutId.iUid = KFsqUiId;
-        		}
-        	fepmanager = GetFSQUiL(aLanguage);
-        	}
-            break;
-        default:
-            return NULL;
-        }
-    
-    for(i = 0; i < iUiLayoutImpIdList.Count(); ++i)
-        {
-        if(iUiLayoutImpIdList[i] == layoutId.iUid )
-            {
-            break;
-            }
-        }
-
-    if( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = aMode;
-        TInt errCode = iPeninputServer.SetUiLayoutId(layoutId);
-        if( errCode == KErrNone )
-            {
-            fepmanager->OnInit();
-            return fepmanager;
-            }
-        }
-        
-    return NULL;
-    }
-
-MAknFepManagerInterface* CPeninputPluginKr::GetInputMethodUiL(
-        MAknFepManagerUIInterface* /*aFepManager*/,
-        TInt /*aLayoutId*/,
-        const TDesC8& /*aData*/)
-    {
-    LOG("FEP.IMEPLG.KR.GetInputMethodUiL");
-    MAknFepManagerInterface* ret(NULL);
-    return ret;    
-    }
-
-void CPeninputPluginKr::Activate()
-    {
-    LOG("FEP.IMEPLG.KR.Activate");
-    iPeninputServer.ActivateLayout(ETrue);        
-    }
-
-void CPeninputPluginKr::DeActivate()
-    {
-    LOG("FEP.IMEPLG.KR.DeActivate");
-    if (&iPeninputServer && iPeninputServer.IsVisible())        
-        {
-        iPeninputServer.ActivateLayout(EFalse);
-        }
-    }
-
-TInt CPeninputPluginKr::ImeImplId()
-    {
-    LOG("FEP.IMEPLG.KR.ImeImplId");
-    return KAknFepImePluginImplementationId;
-    }
-
-TInt CPeninputPluginKr::LayoutUiImplId()
-    {
-    LOG("FEP.IMEPLG.KR.LayoutUiImplId");
-    TInt id;
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeVkb:
-            {
-            id = KVkbUiId;
-            }
-            break;
-        case EPluginInputModeFSQ:
-            {
-            id = KFsqUiId;
-            }
-            break;
-        case EPluginInputModeItut:
-        	{
-        	id = KItutUiId;
-        	}
-        	
-        	break;
-        default:
-            {
-            id = KInvalidImplId;
-            }
-            break;
-        }
-    return id;
-    }
-
-TBool CPeninputPluginKr::HandleServerEventL(
-        TInt aEventId, 
-        const TDesC& aData)
-    {
-    LOG1("FEP.IMEPLG.KR.HandleServerEventL %d",aEventId);
-    TBool bHandled = EFalse;
-    switch ( aEventId )
-        {
-        case ESignalLayoutICFLengthChanged:
-            {
-            GetCurrentUi()->RetrieveEditorMaxLength();
-            }
-            break;
-        case ESignalCaseMode:
-            {
-            TInt data = *(TInt*)( aData.Ptr() );
-            if (data>=ECaseInvalide)
-                {
-                GetCurrentUi()->UpdateCaseMode( data );                 
-                }
-            }
-            break;
-        default:
-            break;
-        }
-        
-    return bHandled;
-    }
-
-TInt CPeninputPluginKr::SupportModes(
-        CPtiEngine* aPtiEngine, 
-        RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    LOG("FEP.IMEPLG.KR.SupportModes");
-    TRAPD( ret, SupportModesL( aPtiEngine, aSupportList ) );
-    return ret;
-    }
-
-TInt CPeninputPluginKr::CurrentMode() const
-    {
-    LOG("FEP.IMEPLG.KR.CurrentMode");
-    return iPenInputMode;
-    }
-
-TBool CPeninputPluginKr::HandleMenuCommandL(TInt aCommandId)
-    {
-    LOG("FEP.IMEPLG.KR.HandleMenuCommandL");
-    TInt ret(EFalse);
-    if (aCommandId==EPeninputPluginKrDoubleConsonentCmd)
-        {
-        iRepository->Set(EDblConsonentOnSetting,1);
-        TRAP_IGNORE(ShowListQueryL(R_AKNEXQUERY_MULTI_SELECTION_LIST_QUERY));
-        iRepository->Set(EDblConsonentOnSetting,0);
-        ret=ETrue;
-        }
-    return ret;
-    }
-
-void CPeninputPluginKr::DynInitMenuPaneL(
-        CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    LOG("FEP.IMEPLG.KR.DynInitMenuPaneL");
-    TInt index;
-    /*
-    if ((iPenInputMode == EPluginInputModeVkb ||
-        iPenInputMode == EPluginInputModeFSQ) &&
-        aMenuPane->MenuItemExists(EPenInputCmdSetting, index))
-        {
-        aMenuPane->SetItemDimmed(EPenInputCmdSetting, EFalse);   
-        }
-    aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);
-    */           
-    if (
-        ( iLanguage == ELangKorean ) &&
-        (iPenInputMode == EPluginInputModeVkb ||
-        iPenInputMode == EPluginInputModeFSQ))
-        {
-        aMenuPane->MenuItemExists(EFepInputCmdHelp, index);
-        if (index!=KErrNotFound)
-            {
-            TBuf<255> menuStr;
-            StringLoader::Load(menuStr, R_PENINPUT_PLUGIN_KR_DOUBLECONSONENT_SETTING);
-            CAknFepUiInterfaceMenuPane::SItemData data;
-            data.iCommandId=EPeninputPluginKrDoubleConsonentCmd;
-            data.iCascadeId=0;
-            data.iFlags=0;
-            data.iText=menuStr.Mid(1, menuStr.Length() - 1);
-            aMenuPane->InsertMenuItemL(data,index);
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Internal Utilities
-// ---------------------------------------------------------------------------
-//
-
-void CPeninputPluginKr::FindUiLayoutImplementationL()
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    
-    iUiLayoutImpIdList.Reset();
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-
-    LOG1("FEP.IMEPLG.KR.FindUiLayoutImplementationL %d",infoArray.Count());
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        LOG1("FEP.IMEPLG.KR.  0x%08X",infoArray[i]->ImplementationUid().iUid);
-#ifdef _DEBUG
-        TPtrC ptr(infoArray[i]->DisplayName());
-        LOG1("FEP.IMEPLG.KR.  %S",&ptr);
-#endif
-        iUiLayoutImpIdList.AppendL(infoArray[i]->ImplementationUid().iUid);
-        
-        }
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray    
-    }
-
-CPluginKrFepManagerBase* CPeninputPluginKr::GetPluginUiL( TInt /*aMode*/ )
-    {
-    return NULL;
-    }
-
-TInt CPeninputPluginKr::SupportModesL(
-        CPtiEngine* /*aPtiEngine*/,
-        RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    //TBool hwr = EFalse;
-    TBool vkb = EFalse;
-    TBool itut = EFalse;
-    //TBool miniitut = EFalse;
-    TBool fsq = EFalse;
-    //TBool fsqEng = EFalse;
-
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        if(infoArray[i]->ImplementationUid().iUid == KVkbUiId )
-            {
-            vkb = ETrue;
-            }
-        /*    
-        if(infoArray[i]->ImplementationUid().iUid == KItutUiId )
-            {
-            itut = ETrue;
-            }*/
-        if(infoArray[i]->ImplementationUid().iUid == KFsqUiId )
-            {
-            fsq = ETrue;
-            }
-        /*if(infoArray[i]->ImplementationUid().iUid == KFsqUiEngId )
-            {
-            fsqEng = ETrue;
-            }*/
-        }
-
-    TImePlguinImplDetail detail;
-
-    detail.iImplementationId = KAknFepImePluginImplementationId;
-
-    if( vkb )
-        {
-        detail.iMode = EPluginInputModeVkb;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KVkbImeName());
-        detail.iLanguage = ELangKorean;
-        aSupportList.Append(detail);
-        }
-
-    if( itut )
-        {
-        detail.iMode = EPluginInputModeItut;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KItutImeName());
-        detail.iLanguage = ELangKorean;
-        aSupportList.Append(detail);
-        }
-
-    if( fsq )
-        {
-        detail.iMode = EPluginInputModeFSQ;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KFsqImeName());
-        detail.iLanguage = ELangKorean;
-        aSupportList.Append(detail);
-        }
-     /*if( fsqEng )
-        {
-        detail.iMode = EPluginInputModeFSQ;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KFsqImeNameEng());
-        detail.iLanguage = ELangEnglish;
-        aSupportList.Append(detail);
-        }*/
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray
-
-    return 0;
-    }
-
-inline CPluginKrFepManagerBase* CPeninputPluginKr::GetCurrentUi()
-    {
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeVkb:
-            return iAllUiManagers[KVkbUiIndex];
-        case EPluginInputModeItut:
-            return iAllUiManagers[KItutUiIndex];
-        case EPluginInputModeFSQ:
-        	{
-        	/*if(iLanguage == ELangEnglish)
-        		{
-				return iAllUiManagers[KFSQUiEngIndex];
-        		}
-        	else*/
-        		{
-        		return iAllUiManagers[KFSQUiIndex];	
-        		}
-        	}
-        default:
-            return NULL;
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPeninputPluginKr::GetVkbUi
-// Get VKB UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginKrFepManagerBase* CPeninputPluginKr::GetVkbUiL()
-    {
-    if( !iAllUiManagers[KVkbUiIndex] )
-        {
-        iAllUiManagers[KVkbUiIndex] = CPluginKrFepManagerVkb::NewL(*this, iPeninputServer);
-        }
-
-    return iAllUiManagers[KVkbUiIndex];
-    }
-
-// -----------------------------------------------------------------------------
-// CPeninputPluginKr::GetItutUi
-// Get Itut UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginKrFepManagerBase* CPeninputPluginKr::GetItutUiL()
-    {
-    if( iAllUiManagers[KItutUiIndex] == NULL )
-        {
-        iAllUiManagers[KItutUiIndex] = CPluginKrFepManagerItut::NewL(*this, iPeninputServer);
-        }
-
-    return iAllUiManagers[KItutUiIndex];
-    }
-
-// -----------------------------------------------------------------------------
-// CPeninputPluginKr::GetFSQUi
-// Get FSQ UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginKrFepManagerBase* CPeninputPluginKr::GetFSQUiL(TInt aLang)
-    {
-    if( iAllUiManagers[KFSQUiIndex] == NULL )
-        {
-        iAllUiManagers[KFSQUiIndex] = CPluginKrFepManagerVkb::NewL(*this, iPeninputServer);
-        }
-        
-   /* if( iAllUiManagers[KFSQUiEngIndex] == NULL )
-        {
-        iAllUiManagers[KFSQUiEngIndex] = CPluginKrFepManagerVkb::NewL(*this, iPeninputServer);
-        }*/
-	
-	/*if (aLang == ELangEnglish)
-		{
-		return iAllUiManagers[KFSQUiEngIndex];
-		}
-	else*/
-		{
-		return iAllUiManagers[KFSQUiIndex];
-		}
-    }
-
-void CPeninputPluginKr::ShowListQueryL(const TInt aResourceId)
-    {
-    CArrayFixFlat<TInt>* arraySelected=
-        new (ELeave) CArrayFixFlat<TInt>(7);
-    CleanupStack::PushL(arraySelected);
-    CAknListQueryDialog* dlg=
-        new (ELeave) CAknListQueryDialog(arraySelected);
-    dlg->PrepareLC(aResourceId);
-    
-    TInt set;
-    if (iRepository->Get(EDblConsonentSsangKiyeok,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(0);
-        }
-    if (iRepository->Get(EDblConsonentSsangTikeut,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(1);
-        }
-    if (iRepository->Get(EDblConsonentSsangPieup,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(2);
-        }
-    if (iRepository->Get(EDblConsonentSsangSios,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(3);
-        }
-    if (iRepository->Get(EDblConsonentSsangCieuc,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(4);
-        }
-    if (iRepository->Get(EDblConsonentYaPlusI,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(5);
-        }
-    if (iRepository->Get(EDblConsonentYuPlusI,set)==KErrNone)
-        {
-        if (set) arraySelected->AppendL(6);
-        }
-    dlg->ListBox()->SetSelectionIndexesL(arraySelected);
-    
-    if (dlg->RunLD())
-        {
-        iRepository->Set(EDblConsonentSsangKiyeok,0);
-        iRepository->Set(EDblConsonentSsangTikeut,0);
-        iRepository->Set(EDblConsonentSsangPieup,0);
-        iRepository->Set(EDblConsonentSsangSios,0);
-        iRepository->Set(EDblConsonentSsangCieuc,0);
-        iRepository->Set(EDblConsonentYaPlusI,0);
-        iRepository->Set(EDblConsonentYuPlusI,0);
-
-        for (TInt i=0;i<arraySelected->Count();i++)
-            {
-            switch (arraySelected->At(i))
-                {
-                case 0:
-                    iRepository->Set(EDblConsonentSsangKiyeok,1);
-                    break;
-                case 1:
-                    iRepository->Set(EDblConsonentSsangTikeut,1);
-                    break;
-                case 2:
-                    iRepository->Set(EDblConsonentSsangPieup,1);
-                    break;
-                case 3:
-                    iRepository->Set(EDblConsonentSsangSios,1);
-                    break;
-                case 4:
-                    iRepository->Set(EDblConsonentSsangCieuc,1);
-                    break;
-                case 5:
-                    iRepository->Set(EDblConsonentYaPlusI,1);
-                    break;
-                case 6:
-                    iRepository->Set(EDblConsonentYuPlusI,1);
-                    break;
-                default:
-                    break;
-                }
-            }
-        }
-    CleanupStack::PopAndDestroy(arraySelected);
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKrDllMain.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <e32std.h>		 // GLDEF_C
-#include "PeninputPluginKr.pan"		// panic codes
-
-//  Global Functions
-
-GLDEF_C void Panic(TPeninputPluginKrPanic aPanic)
-// Panics the thread with given panic code
-    {
-    User::Panic(_L("PeninputPluginKr"), aPanic);
-    }
-
-//  Exported Functions
-
-#ifndef EKA2 // for EKA1 only
-EXPORT_C TInt E32Dll(TDllReason /*aReason*/)
-// Called when the DLL is loaded and unloaded. Note: have to define
-// epoccalldllentrypoints in MMP file to get this called in THUMB.
-    {
-    return KErrNone;
-    }
-#endif
-
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKrProxy.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <e32std.h>
-#include <implementationproxy.h>
-
-// User includes
-#include "PeninputPluginKr.hrh"
-#include "PeninputPluginKr.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    //lint !e611    
-    IMPLEMENTATION_PROXY_ENTRY( KAknFepImePluginImplementationId, CPeninputPluginKr::NewL ) 
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
-    return ImplementationTable;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,587 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include <s32mem.h>
-#include <centralrepository.h>
-#include <AknFepGlobalEnums.h>
-#include <aknfeppeninputenums.h>
-#include <aknedsts.h>
-
-#include <peninputcommonlayoutglobalenum.h>
-
-#include "PeninputPluginKrDbg.h"
-#include "PeninputPluginKr.hrh"
-#include "PluginKrFepManagerBase.h"
-
-// ---------------------------------------------------------------------------
-// Constructors & Destructors
-// ---------------------------------------------------------------------------
-//
-
-CPluginKrFepManagerBase::CPluginKrFepManagerBase(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    : iOwner(aOwner),
-      iPenInputServer(aPenInputServer),
-      iSuggestedRange(ERangeInvalid),
-      iLastRange(ERangeInvalid)
-    {
-    }
-
-void CPluginKrFepManagerBase::ConstructL()
-    {
-
-    }
-
-CPluginKrFepManagerBase::~CPluginKrFepManagerBase()
-    {
-    delete iRepository;
-    }
-
-// ---------------------------------------------------------------------------
-// from MAknFepManagerInterface
-// ---------------------------------------------------------------------------
-//
-
-void CPluginKrFepManagerBase::SetMode(
-        TInt aMode, 
-        TBool aPredictive, 
-        TBool aQwertyInputMode,
-        TInt /*aKeyboardType*/ )
-    {
-    LOG3("FEP.IMEPLG.KR.Base.SetMode %d %d %d",aMode,aPredictive,aQwertyInputMode);
-    iHkbUi->SetMode(aMode, aPredictive, aQwertyInputMode);
-    }
-
-void CPluginKrFepManagerBase::SetCase(TCase aCase)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.SetCase %d",aCase);
-    iHkbUi->SetCase(aCase);
-    }
-
-void CPluginKrFepManagerBase::SetNumberModeKeyMappingL(
-        TAknEditorNumericKeymap aAknEditorNumericKeymap)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.SetNumberModeKeyMappingL %d",aAknEditorNumericKeymap);
-    SendCommandToServer(ECmdPenInputEditorNumericKeyMap, aAknEditorNumericKeymap);    
-    }
-
-TBool CPluginKrFepManagerBase::HandleKeyL(
-        TInt aKey, 
-        TKeyPressLength aLength,
-        TEventCode /*aEventCode*/ )
-    {
-    LOG2("FEP.IMEPLG.KR.Base.HandleKeyL %d",aKey,aLength);
-    return iHkbUi->HandleKeyL( aKey, aLength );
-    }
-
-void CPluginKrFepManagerBase::HandleCommandL(
-        TInt aCommandId)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.HandleCommandL %d",aCommandId);
-    SendCommandToServer( aCommandId );
-    }
-    
-void CPluginKrFepManagerBase::HandleCommandL(
-        TInt aCommandId, 
-        TInt aParam)
-    {
-    switch ( aCommandId )
-        {
-        case ECmdPenInputRange:
-            {
-            LOG1("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputRange %d",iHkbMode);
-            if (aParam&EPRCFind) LOG("FEP.IMEPLG.KR.Base  EPRCFind");
-            if (aParam&ECangJie) LOG("FEP.IMEPLG.KR.Base  ECangJie");
-            if (aParam&EZhuyinFind) LOG("FEP.IMEPLG.KR.Base  EZhuyinFind");
-            if (aParam&EStrokeFind) LOG("FEP.IMEPLG.KR.Base  EStrokeFind");
-            if (aParam&EPinyin) LOG("FEP.IMEPLG.KR.Base  EPinyin");
-            if (aParam&EZhuyin) LOG("FEP.IMEPLG.KR.Base  EZhuyin");
-            if (aParam&EStroke) LOG("FEP.IMEPLG.KR.Base  EStroke");
-            if (aParam&ELatin) LOG("FEP.IMEPLG.KR.Base  ELatin");
-            if (aParam&ENumber) LOG("FEP.IMEPLG.KR.Base  ENumber");
-            if (aParam&EHiraganaKanji) LOG("FEP.IMEPLG.KR.Base  EHiraganaKanji");
-            if (aParam&EKatakana) LOG("FEP.IMEPLG.KR.Base  EKatakana");
-            if (aParam&EHiragana) LOG("FEP.IMEPLG.KR.Base  EHiragana");
-            if (aParam&EHindi) LOG("FEP.IMEPLG.KR.Base  EHindi");
-            if (aParam&ENativeNumber) LOG("FEP.IMEPLG.KR.Base  ENativeNumber");
-            if (aParam&EHangul) LOG("FEP.IMEPLG.KR.Base  EHangul");
-            if (aParam&ELatinText) LOG("FEP.IMEPLG.KR.Base  ELatinText");
-            if (aParam&ELatinUpper) LOG("FEP.IMEPLG.KR.Base  ELatinUpper");
-            if (aParam&ELatinLower) LOG("FEP.IMEPLG.KR.Base  ELatinLower");
-            if (aParam&ECangJieNormal) LOG("FEP.IMEPLG.KR.Base  ECangJieNormal");
-            if (aParam&ECangJieEasy) LOG("FEP.IMEPLG.KR.Base  ECangJieEasy");
-            if (aParam&ECangJieAdvanced) LOG("FEP.IMEPLG.KR.Base  ECangJieAdvanced");
-            iHkbMode = aParam;
-            }
-            break;
-        case ECmdPenInputPermittedRange:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputPermittedRange");
-            if (aParam&EAknEditorTextInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorTextInputMode");
-            if (aParam&EAknEditorNumericInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorNumericInputMode");
-            if (aParam&EAknEditorSecretAlphaInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorSecretAlphaInputMode");
-            if (aParam&EAknEditorKatakanaInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorKatakanaInputMode");
-            if (aParam&EAknEditorFullWidthTextInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorFullWidthTextInputMode");
-            if (aParam&EAknEditorFullWidthNumericInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorFullWidthNumericInputMode");
-            if (aParam&EAknEditorFullWidthKatakanaInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorFullWidthKatakanaInputMode");
-            if (aParam&EAknEditorHiraganaKanjiInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorHiraganaKanjiInputMode");
-            if (aParam&EAknEditorHiraganaInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorHiraganaInputMode");
-            if (aParam&EAknEditorHalfWidthTextInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorHalfWidthTextInputMode");
-            if (aParam&EAknEditorHangulInputMode) LOG("FEP.IMEPLG.KR.Base  EAknEditorHangulInputMode");
-            iLastCase = ECaseInvalide;
-            SetLayoutPermitedRanges( aParam );
-            }
-            break;
-        case ECmdPenInputEditorState:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputEditorState");
-            SetLayoutRange(reinterpret_cast<CAknEdwinState*>(aParam));
-            }
-            break;
-        case ECmdPenInputSetWindowPos:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputSetWindowPos");
-            //SetLayoutPosition(*reinterpret_cast<TRect*>(aParam));
-            }
-            break;
-        case ECmdPenInputCaseMode:
-            LOG1("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputCaseMode %d",aParam);
-            //if( aParam != iLastCase )
-                {
-                SendCommandToServer( ECmdPenInputCase, aParam );
-                iLastCase = aParam;
-                }
-            break;
-        case ECmdPenInputEditorCustomNumericKeyMap:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputEditorCustomNumericKeyMap");
-            TDesC* res = (TDesC*)aParam;
-            TPtrC8 param;
-            param.Set((TUint8*)res->Ptr(), res->Size());
-            SendCommandToServer( aCommandId, param );                    
-            SetNumberModeKeyMappingL((TAknEditorNumericKeymap)EKeymapFromResource);
-            }
-            break;            
-        case ECmdPenInputSuggestRange:
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputSuggestRange");
-            iSuggestedRange = aParam;
-            if( iSuggestedRange == ERangeAccent )
-                {
-                iSuggestedRange = ERangeEnglish;
-                }
-            break;
-        case ECmdPenInputSendEditorTextAndCurPos:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputSendEditorTextAndCurPos");
-            TFepInputContextFieldData* pIcfData = 
-                reinterpret_cast<TFepInputContextFieldData*>( aParam );
-                       
-            TInt dataSize = sizeof( TFepInputContextFieldData );
-            TInt textSize = pIcfData->iText.Size();
-            
-            HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-            TPtr8 bufPtr = buf->Des();
-            
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-            
-            writeStream.WriteInt32L(dataSize);
-            writeStream.WriteInt32L(textSize);
-            
-            const TUint8* pData = reinterpret_cast<const TUint8*>( pIcfData );
-            writeStream.WriteL( pData, dataSize );
-                
-            const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
-            writeStream.WriteL( pText, textSize );
-            
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-            CleanupStack::PopAndDestroy(&writeStream);
-            CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputSetPromptText:
-            {
-            LOG("FEP.IMEPLG.KR.Base.HandleCommandL ECmdPenInputSetPromptText");
-            TFepPromptText* pPromptData = 
-                reinterpret_cast<TFepPromptText*>( aParam );
-                
-            TInt dataSize = sizeof( TFepPromptText );
-            TInt textSize = 0;
-            
-            if (pPromptData->iText.Length())
-                {
-                textSize = pPromptData->iText.Size();
-                }
-            
-            HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-            TPtr8 bufPtr = buf->Des();
-            
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-            
-            writeStream.WriteInt32L(dataSize);
-            writeStream.WriteInt32L(textSize);
-            
-            const TUint8* pData = reinterpret_cast<const TUint8*>( pPromptData );
-            writeStream.WriteL( pData, dataSize );
-            
-            if (textSize != 0)
-                {
-                const TUint16* pText = pPromptData->iText.Ptr();
-                writeStream.WriteL( pText, textSize/2 );
-                }
-            
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-            CleanupStack::PopAndDestroy(&writeStream);
-            CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputFingerMatchIndicator:
-            {
-            if (aParam)  // ITUT
-                {
-                TFepIndicatorInfo* pIndicatorData = 
-                    reinterpret_cast<TFepIndicatorInfo*>( aParam );
-
-                HBufC8* buf = HBufC8::NewLC(4 * sizeof(TInt));
-                TPtr8 bufPtr = buf->Des();
-
-                RDesWriteStream writeStream;
-                writeStream.Open(bufPtr);
-                CleanupClosePushL(writeStream);
-
-                writeStream.WriteInt32L(pIndicatorData->iIndicatorImgID);
-                writeStream.WriteInt32L(pIndicatorData->iIndicatorMaskID);
-                writeStream.WriteInt32L(pIndicatorData->iIndicatorTextImgID);
-                writeStream.WriteInt32L(pIndicatorData->iIndicatorTextMaskID);
-
-                writeStream.CommitL();
-
-                SendCommandToServer( aCommandId, bufPtr );
-
-                CleanupStack::PopAndDestroy(&writeStream);
-                CleanupStack::PopAndDestroy(buf);
-                }
-            else
-                {
-                SendCommandToServer( aCommandId, 0 );
-                }
-            }
-            break;
-        default:
-            LOG2("FEP.IMEPLG.KR.Base.HandleCommandL %d 0x%08x",aCommandId,aParam);
-            SendCommandToServer( aCommandId, aParam );
-            break;
-        }
-    }
-
-void CPluginKrFepManagerBase::CloseUI()
-    {
-    LOG("FEP.IMEPLG.KR.Base.CloseUI");
-    if ( iPenInputServer.IsVisible() )
-        {
-        iPenInputServer.ActivateLayout( EFalse ); 
-        }
-    }
-
-void CPluginKrFepManagerBase::ExpireMultitapTimer()
-    {
-    LOG("FEP.IMEPLG.KR.Base.ExpireMultitapTimer");
-    }
-
-TBool CPluginKrFepManagerBase::IsValidNumericLongKeyPress(TInt aKey) const
-    {
-    LOG1("FEP.IMEPLG.KR.Base.IsValidNumericLongKeyPress %d",aKey);
-    return EFalse;
-    }
-
-void CPluginKrFepManagerBase::AddTextToUserDictionaryL(const TDesC& aText)
-    {
-    TPtrC ptr(aText);
-    LOG1("FEP.IMEPLG.KR.Base.AddTextToUserDictionaryL %S",&ptr);
-    }
-
-void CPluginKrFepManagerBase::GetFormatOfFepInlineText(
-        TCharFormat& /*aFormat*/, 
-        TInt& /*aNumberOfCharactersWithSameFormat*/, 
-        TInt aPositionOfCharacter) const
-    {
-    LOG1("FEP.IMEPLG.KR.Base.GetFormatOfFepInlineText %S",aPositionOfCharacter);
-    }
-
-TInt CPluginKrFepManagerBase::SupportLanguage(TInt aMode) const
-    {
-    LOG2("FEP.IMEPLG.KR.Base.SupportLanguage %d - %d",aMode,iLanguage);
-    return iLanguage;
-    }
-
-void CPluginKrFepManagerBase::SetInputLanguageL(TLanguage aLanguage)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.SetInputLanguageL %d",aLanguage);
-    iLanguage = aLanguage;
-    SendCommandToServer(ECmdPenInputLanguage, (TInt)aLanguage);
-    }
-
-TBool CPluginKrFepManagerBase::IsValidShiftKeyPress() const
-    {
-    LOG("FEP.IMEPLG.KR.Base.IsValidShiftKeyPress");
-    return EFalse;
-    }
-
-void CPluginKrFepManagerBase::SetEditorContext(TInt aContext)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.SetEditorContext %d",aContext);
-    }
-
-void CPluginKrFepManagerBase::ActivateUI()
-    {
-    LOG("FEP.IMEPLG.KR.Base.ActivateUI");
-    iPenInputServer.ActivateLayout( ETrue );
-    }
-
-void CPluginKrFepManagerBase::SetFepAwareEditorText(
-        const TFepInputContextFieldData& /*aIcfData*/)
-    {
-    LOG("FEP.IMEPLG.KR.Base.SetFepAwareEditorText");
-    }
-
-TInt CPluginKrFepManagerBase::EditorMaxLength()
-    {
-    LOG1("FEP.IMEPLG.KR.Base.EditorMaxLength - %d",iMaxEditorLength);
-    return iMaxEditorLength;
-    }
-    
-void CPluginKrFepManagerBase::ResourceChanged(TInt aType)
-    {
-    LOG1("FEP.IMEPLG.KR.Base.ResourceChanged - %d",aType);
-    iPenInputServer.ResourceChanged(aType);
-    }
-        
-void CPluginKrFepManagerBase::SetNextFepUI(
-        MAknFepManagerInterface* aNextUi)
-    {
-    LOG("FEP.IMEPLG.KR.Base.SetNextFepUI");
-    iHkbUi = aNextUi;
-    }
-
-void CPluginKrFepManagerBase::SetStarKeyFlag( TBool aSet )
-    {
-    LOG1("FEP.IMEPLG.KR.Base.SetStarKeyFlag %d",aSet);
-    }
-
-// ---------------------------------------------------------------------------
-// External Functions
-// ---------------------------------------------------------------------------
-//
-
-void CPluginKrFepManagerBase::OnInit()
-    {
-    
-    }
-
-void CPluginKrFepManagerBase::RetrieveEditorMaxLength()
-    {
-    
-    }
-
-void CPluginKrFepManagerBase::UpdateRange( TInt aRange )
-    {
-    iLastRange=aRange;
-    }
-
-void CPluginKrFepManagerBase::UpdateCaseMode( TInt aCaseMode )
-    {
-    iLastCase = aCaseMode; 
-    }
-
-// ---------------------------------------------------------------------------
-// Internal Functions
-// ---------------------------------------------------------------------------
-//
-
-void CPluginKrFepManagerBase::SendCommandToServer( TInt aCommandId )
-    {
-    iPenInputServer.HandleCommand( aCommandId );
-    }
-
-void CPluginKrFepManagerBase::SendCommandToServer( TInt aCommandId, TInt aParam )
-    {
-    TBuf8<sizeof(TInt)> buf;
-    buf.Append( (TUint8*)&aParam, sizeof(TInt) );    
-    SendCommandToServer( aCommandId, buf );
-    }
-
-void CPluginKrFepManagerBase::SendCommandToServer(TInt aCommandId, const TDesC8& aParam)
-    {
-    iPenInputServer.HandleCommand( aCommandId, aParam );        
-    }
-
-void CPluginKrFepManagerBase::SetLayoutRange(const CAknEdwinState* aEditorState)
-    {
-    //calculate permitted ranges
-    // TODO: Korean specific permitted range can be added
-    if (aEditorState)
-        {
-        if( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly )
-            {
-            iPermittedRange &= ~ERangeNative;
-            iPermittedRange &= ~ERangeNativeNumber;
-            iPermittedRange &= ~ERangeSymbol;
-            }
-        /*
-        if ( iPermittedMode != EAknEditorNumericInputMode 
-            && !( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly ) )
-            {
-            iPermittedRange &= ~ERangeEnglish;
-            }
-        */
-        }
-    else // for MFNE editor
-        {
-        if ( iPermittedMode == EAknEditorNumericInputMode )
-            {
-            iPermittedRange &= ~ERangeSymbol;
-            if( iHkbMode == ENumber )
-                {
-                iPermittedRange = ERangeNumber;
-                }
-            else if ( iHkbMode == ENativeNumber )
-                {
-                iPermittedRange = ERangeNativeNumber;
-                } 
-            }
-        }
-    
-
-    SendCommandToServer( ECmdPenInputPermittedRange, iPermittedRange );
-    
-    TInt priRange;
-    
-    switch( iHkbMode )
-        {
-        case ECangJie:
-        case EStrokeFind:
-        case EStroke:
-        case EPinyin:
-        case EZhuyin:
-        case EZhuyinFind:
-        case EHindi:
-        case EHangul:
-            {
-            priRange = ERangeNative;
-            }
-            break;                 
-        case ENumber:
-            {
-            priRange = ERangeNumber;
-            }
-            break;  
-        case ENativeNumber:
-            {
-            priRange = ERangeNativeNumber;
-            }
-            break;  
-        case EPRCFind:
-        case ELatin:
-        case ELatinText:
-        case ELatinUpper:
-        case ELatinLower:
-        	{
-        	priRange = ERangeEnglish;
-        	}
-        	break;
-        default:
-            priRange = iPermittedRange & ERangeNative ? ERangeNative : ERangeEnglish;
-            break;               
-        }
-     
-    if( iSuggestedRange != ERangeInvalid && (iSuggestedRange & iPermittedRange) )
-        {
-        priRange = iSuggestedRange;
-        iSuggestedRange = ERangeInvalid;
-        }
-    
-    if (iLastRange)
-        {
-        priRange=iLastRange;
-        }
-    
-    SendCommandToServer( ECmdPenInputRange, priRange );
-    }
-
-void CPluginKrFepManagerBase::SetLayoutPermitedRanges( TInt aPermittedMode )
-    {
-    iPermittedMode = aPermittedMode;
-    
-    // Not derived from edwin
-    if ( aPermittedMode == EAknEditorNumericInputMode ) 
-        {
-        if ( SupportNativeNumberRange() )
-            {
-            iPermittedRange = ERangeNativeNumber;
-            }
-        iPermittedRange |= ERangeNumber;
-        }
-        
-    else if ( aPermittedMode & EAknEditorTextInputMode )
-        {
-        // Derived from edwin and EAknEditorTextInputMode
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol |
-                          ERangeNativeNumber;
-        }
-    else if ( aPermittedMode & EAknEditorSecretAlphaInputMode ) 
-        {
-        // Derived from EAknEditorSecretAlphaInputMode 
-        iPermittedRange = ERangeNumber |
-                          ERangeEnglish | 
-                          ERangeSymbol;        
-        }
-    else
-        {
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol |
-                          ERangeNativeNumber;
-        }
-    }
-
-TBool CPluginKrFepManagerBase::SupportNativeNumberRange()
-    {
-    if ( iLanguage == ELangArabic || iLanguage == ELangFarsi ||
-         iLanguage == ELangUrdu || iLanguage == ELangHindi ||
-         iLanguage == ELangThai )
-         {
-         return ETrue;
-         }
-        
-    return EFalse;                   
-    }   
-
-
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerHwr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "PluginKrFepManagerHwr.h"
-
-CPluginKrFepManagerHwr* CPluginKrFepManagerHwr::NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerHwr* self = 
-        new (ELeave) CPluginKrFepManagerHwr(aOwner,aPenInputServer);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-CPluginKrFepManagerHwr* CPluginKrFepManagerHwr::NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerHwr* self = 
-        CPluginKrFepManagerHwr::NewLC(aOwner,aPenInputServer);
-    CleanupStack::Pop(); // self;
-    return self;
-    }
-
-CPluginKrFepManagerHwr::CPluginKrFepManagerHwr(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    : CPluginKrFepManagerBase(aOwner,aPenInputServer)
-    {
-    }
-
-void CPluginKrFepManagerHwr::ConstructL()
-    {
-    }
-
-CPluginKrFepManagerHwr::~CPluginKrFepManagerHwr()
-    {
-    }
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerItut.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "PeninputImePluginKr.h"
-#include "eikon.hrh"
-
-#include <aknedsts.h>               //CAknEdwinState
-#include <aknfeppeninputenums.h>
-
-
-#include "PluginKrFepManagerItut.h"
-
-CPluginKrFepManagerItut* CPluginKrFepManagerItut::NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerItut* self = 
-        new (ELeave) CPluginKrFepManagerItut(aOwner,aPenInputServer);
-    CleanupStack::PushL(self);
-    self->ConstructL(); 
-    return self;
-    }
-
-CPluginKrFepManagerItut* CPluginKrFepManagerItut::NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerItut* self = 
-        CPluginKrFepManagerItut::NewLC(aOwner,aPenInputServer);
-    CleanupStack::Pop(); // self;
-    return self;
-    }
-
-TBool CPluginKrFepManagerItut::HandleKeyL( TInt aKey, TKeyPressLength aLength,
-                                           TEventCode /*aEventCode*/)
-    {
-    TInt ret;
-    TPckgC<TInt> msgdata(aKey);
-    
-    if (aLength == ELongKeyPress)
-        {
-        iPenInputServer.HandleCommand(ECmdPenInputFingerLongKeyPress, msgdata, ret);
-        }
-    else
-        {
-        iPenInputServer.HandleCommand(ECmdPenInputFingerKeyPress, msgdata, ret);
-        }
-    
-    return ret == KErrNone ? ETrue:EFalse;
-    }
-
-CPluginKrFepManagerItut::CPluginKrFepManagerItut(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    : CPluginKrFepManagerBase(aOwner,aPenInputServer)
-    {
-    }
-
-void CPluginKrFepManagerItut::ConstructL()
-    {
-    }
-
-CPluginKrFepManagerItut::~CPluginKrFepManagerItut()
-    {
-    }
--- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PluginKrFepManagerVkb.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* 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:
-*
-*/
-
-#include "PluginKrFepManagerVkb.h"
-
-CPluginKrFepManagerVkb* CPluginKrFepManagerVkb::NewLC(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerVkb* self = 
-        new (ELeave) CPluginKrFepManagerVkb(aOwner,aPenInputServer);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-CPluginKrFepManagerVkb* CPluginKrFepManagerVkb::NewL(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    {
-    CPluginKrFepManagerVkb* self = 
-        CPluginKrFepManagerVkb::NewLC(aOwner,aPenInputServer);
-    CleanupStack::Pop(); // self;
-    return self;
-    }
-
-CPluginKrFepManagerVkb::CPluginKrFepManagerVkb(
-        CPeninputPluginKr& aOwner, 
-        RPeninputServer& aPenInputServer)
-    : CPluginKrFepManagerBase(aOwner,aPenInputServer)
-    {
-    }
-
-void CPluginKrFepManagerVkb::ConstructL()
-    {
-    }
-
-CPluginKrFepManagerVkb::~CPluginKrFepManagerVkb()
-    {
-    }
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Build information file for project peninputimeplugincn
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-	
-PRJ_MMPFILES
-
-../group/peninputimeplugincn.mmp
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/group/peninputimeplugincn.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Project definition file for project peninputimeplugincn
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET      peninputimeplugincn.dll
-TARGETTYPE  plugin
-UID         0x10009D8D 0x10207361
-
-CAPABILITY  CAP_ECOM_PLUGIN
-VENDORID    VID_DEFAULT
-
-SOURCEPATH	../src
-
-SOURCE		peninputimeplugincnproxy.cpp
-SOURCE		peninputimeplugincn.cpp
-SOURCE		pluginfepmanagerbase.cpp
-SOURCE		pluginfepmanagerhwr.cpp
-SOURCE		pluginfepmanagervkb.cpp
-
-userinclude     ../inc 
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE 	/epoc32/include/ecom
-SYSTEMINCLUDE   ../../../../../inc
-SYSTEMINCLUDE	../../../inc
-
-
-SOURCEPATH      ../srcdata
-
-START RESOURCE 10207361.rss
-#ifdef SYMBIAN_SECURE_ECOM 
-TARGET peninputimeplugincn.rsc                                                              
-#endif
-END
-
-
-LIBRARY euser.lib 
-LIBRARY ECom.lib
-LIBRARY centralrepository.lib 
-LIBRARY eikcoctl.lib 
-LIBRARY estor.lib 
-LIBRARY FeatMgr.lib                // feature manager
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY         peninputclient.lib
-#else
-LIBRARY         peninputserverstub.lib
-#endif
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincn.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            input mode plugin header file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PENINPUTIMEPLUGINCHN_H
-#define C_PENINPUTIMEPLUGINCHN_H   
-
-// System includes
-#include <e32base.h>
-#include <peninputclient.h>
-#include <aknfeppeninputimeplugin.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-//#include <AknFepManagerUIInterface.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-
-// Forward declaration
-class MAknFepManagerInterface;
-class CAknEdwinState;
-class CRepository;
-class CPluginFepManagerBase;
-
-/**
- *  Pen input mode plugin chinese implementation
- *
- *  @lib peninputimeplugincn.lib
- *  @since S60 v3.2
- */
-class CPenInputImePluginCn : public CAknFepPenInputImePlugin
-    {
-public:
-
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aInitParams Init data plugin, actually it is 
-     *        a pointer of RPeninputServer.
-     * @return Pointer to created CPenInputImePluginCn object
-     */
-    static CPenInputImePluginCn* NewL(TAny* aInitParams);
-
-    static CPenInputImePluginCn* NewLC(TAny* aInitParams);
-
-    /**
-     * Destructor.
-     */
-    ~CPenInputImePluginCn();
-
-public: // From CAknFepPenInputImePlugin
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL(
-                            MAknFepManagerUIInterface* aFepManager,
-                            TLanguage aLanguage,
-                            TInt      aMode,
-                            const TDesC8& aData,
-                            const TBool aIsSplitView = EFalse);
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL(
-                            MAknFepManagerUIInterface* aFepManager,
-                            TInt aLayoutId,
-                            const TDesC8& aData);
-
-    /**
-     * Activate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void Activate();
-
-    /**
-     * Deactivate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void DeActivate();
-
-    /**
-     * Get current IME plugin implementation ID.
-     * 
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    TInt ImeImplId();
-
-    /**
-     * Get current layout UI implementation id.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TInt LayoutUiImplId();
-
-    /**
-     * Handle pen input server event.
-     * 
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TBool HandleServerEventL(TInt aEventId, const TDesC& aData);
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-     TInt SupportModes(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-
-    /**
-     * Get current layout UI mode.
-     * 
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-     TInt CurrentMode() const;
-
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if 
-     * this function return EFalse, FEP handles it defaultly.
-     * 
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command; 
-     *         EFalse otherwise.
-     */
-    TBool HandleMenuCommandL(TInt aCommandId);
-
-    /**
-     * Dynamiclly update menu items during it displays. 
-     * 
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    void DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane);
-
-private:
-    
-    /**
-     * C++ default constructor.
-     *
-     * @param aServer Pen input server pointer
-     */
-    CPenInputImePluginCn(RPeninputServer* aServer);
-    
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     *
-     * @return None
-     */
-    void ConstructL();
-
-    /**
-     * Enumuate all layout UI ids and save them to iUiLayoutImpIdList.
-     *
-     * @return None
-     */
-    void FindUiLayoutImplementationL();
-    
-    /**
-     * Get HWR UI interface
-     *
-     * @return HWR UI pointer
-     */
-    CPluginFepManagerBase* GetPluginUiL( TInt aMode );
-    
-    /**
-     * Get current UI interface
-     *
-     * @return current UI pointer
-     */
-    inline CPluginFepManagerBase* GetCurrentUi();
-        
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-    TInt SupportModesL(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-                       
-private:
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RArray<TInt> iUiLayoutImpIdList;
-
-    /**
-     * Current layout UI mode.
-     */
-    TInt iPenInputMode;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    CPluginFepManagerBase* iPluginUiManager;
-    };
-
-#include "peninputimeplugincn.inl"
-
-#endif //C_PENINPUTIMEPLUGINCHN_H
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincn.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Inline file for Ime plugin China.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-const TInt KHwrLayoutInterfaceId = 0x102072FC; // This is for layout interface
-const TInt KInputMethodImplementationId = 0x10207361;
-const TInt KHwrUiId = 0x10281856;
-const TInt KFScUiId = 0x2000B132;
-const TInt KVkbUiId = 0x1028185C;
-const TInt KFsqUiId = 0x2001114E;
-const TInt KFingerHwrUiId = 0x2001CB83;
-
-inline CPluginFepManagerBase* CPenInputImePluginCn::GetCurrentUi()
-    {
-    switch(iPenInputMode)
-        {
-        case EPluginInputModeHwr:
-        case EPluginInputModeVkb:
-        case EPluginInputModeFSc:
-        case EPluginInputModeFingerHwr:
-        case EPluginInputModeFSQ:
-            return iPluginUiManager;
-        default:
-            return NULL;
-        }
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/peninputimeplugincndebug.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Debug utils API
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINCHSDEBUG_H
-#define PENINPUTIMEPLUGINCHSDEBUG_H
- 
-#ifdef _DEBUG
-    #define PRINT( txt )                    RDebug::Print( txt );
-    #define PRINTF( txt )                   RDebug::Print txt;
-    #define PRINT1( txt, arg1 )             RDebug::Print( txt, arg1 );
-    #define PRINT2( txt, arg1, arg2 )       RDebug::Print( txt, arg1, arg2 );
-    #define PRINT3( txt, arg1, arg2, arg3 ) RDebug::Print( txt, arg1, arg2, arg3 ); 
-#else 
-    #define PRINT( txt ) 
-    #define PRINTF( txt )                    
-    #define PRINT1( txt, arg1 ) 
-    #define PRINT2( txt, arg1, arg2 ) 
-    #define PRINT3( txt, arg1, arg2, arg3 ) 
-#endif
-
-
-// Record into log files
-#define USE_FILE_LOGGER
-
-#if defined (_DEBUG) && !defined(USE_FILE_LOGGER)                   
-    #define USE_SERIAL_LOGGER 
-#endif
-                                    
-#if defined (USE_FILE_LOGGER)
-    #include <flogger.h>
-    _LIT(KLogFile,"imepluginchn.txt");
-    _LIT(KLogFolder,"peninputime");
-    #define LOGTEXT(AAA)                RFileLogger::Write(KLogFolder(), \
-                                                           KLogFile(), \
-                                                           EFileLoggingModeAppend, \
-                                                           AAA)
-    #define LOGTEXT2(AAA,BBB)           RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB, \
-                                                                 CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) RFileLogger::HexDump(KLogFolder(), \
-                                                             KLogFile(), \
-                                                             EFileLoggingModeAppend, \
-                                                             AAA,\
-                                                             BBB,\
-                                                             CCC,\
-                                                             DDD)    
-#elif defined (USE_SERIAL_LOGGER) 
-    #include <e32svr.h>
-    #define LOGTEXT(AAA)                RDebug::Print(AAA)
-    #define LOGTEXT2(AAA,BBB)           RDebug::Print(AAA,BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RDebug::Print(AAA,BBB,CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD)
-#else
-    #define LOGTEXT(AAA)                
-    #define LOGTEXT2(AAA,BBB)           
-    #define LOGTEXT3(AAA,BBB,CCC)       
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) 
-#endif      
-
-#endif      // PENINPUTIMEPLUGINCHSDEBUG   
-            
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagerbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,473 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERBASE_H
-#define C_PLUGINFEPMANAGERBASE_H
-
-// System includes
-#include <e32base.h>
-#include <frmtlay.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-#include <peninputcmd.h>
-
-//Forward declaration
-class CPenInputImePluginCn;
-class RPeninputServer;
-class CAknEdwinState;
-class CRepository;
-/**
- *  CPluginFepManagerBase is the layout UI interface base class. 
- *  It is something like a "proxy" class of layout UI plugin, sending
- *  commands from FEP to layout UI plugin.
- *
- *  @lib peninputimeplugincn.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerBase: public CBase, public MAknFepManagerInterface
-    {
-public: 
-
-    /**
-     * Destructor.
-     */
-    ~CPluginFepManagerBase();
-
-    /**
-     * Initalize UI when first time starting up. 
-     * The first time means when the instance created.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void OnInit();
-
-    /**
-     * Explicitly get ICF max length from layout UI and save the 
-     * value to iMaxEditorLength.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void RetrieveEditorMaxLength();
-
-    /**
-     * Update local copy of case mode when 
-     * user change case in layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCaseMode The case mode to save locally.
-     * @return None.
-     */
-    void UpdateCaseMode( TInt aCaseMode );
-
-// From MAknFepManagerInterface
-
-    /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-    void SetNumberModeKeyMappingL( TAknEditorNumericKeymap aAknEditorNumericKeymap );
-
-    /**
-     * Handle key event.
-     * Since most plugin layout UIs are based on animation, they receive 
-     * key and process key events before this function. 
-     * 
-     * @since S60 v3.2
-     *
-     * @param aKey Key event code.
-     * @param aLength Key press length.
-     * @return ETrue if processed, EFalse otherwise.
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @return None
-     */
-    void HandleCommandL( TInt aCommandId );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL( TInt aCommandId, TInt aParam );
-
-    /**
-     * Close plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void CloseUI();
-
-    /**
-     * Activate plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ActivateUI();
-
-    /**
-     * Get max text length of layout UI ICF control.
-     * 
-     * @since S60 v3.2
-     * @return Max ICF text length.
-     */
-    TInt EditorMaxLength();
-
-    /**
-     * When screen size changes, SizeChanged is called by FEP.
-     * 
-     * @since S60 v3.2
-     * @return None.
-     */
-    void ResourceChanged( TInt aType );
-
-    /**
-     * Set underlining UI.
-     * Since plugin layout UI and HKB can be used at same time,
-     * HKB UI layout need to be notified after plugin layout UI 
-     * processes some events
-     * 
-     * @since S60 v3.2
-     * @param aNextUI The underlining UI pointer.
-     * @return None.
-     */
-    void SetNextFepUI( MAknFepManagerInterface* aNextUi );
-    
-    /**
-     * Get support language in sepecfied mode.
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Input mode.
-     * @return Language supported.
-     */
-    TInt SupportLanguage( TInt aMode ) const;
-
-    /**
-     * Set current language, which is required by editor
-     * 
-     * @since S60 v3.2
-     *
-     * @param aLanguage Language to set.
-     * @return None.
-     */
-    void SetInputLanguageL( TLanguage aLanguage );
-
-    /**
-     * Set editor text and cursor information to layout UI 
-     * ICF control.
-     * 
-     * @since S60 v3.2
-     * @param aTotalTextLen Total text length in eidtor.
-     * @param aStartPos Offset of aText to the start of editor text.
-     * @param aCursorSel Cursor position.
-     * @param aText A part of editor text start from aStartPos.
-     *
-     * @return None.
-     */
-    void SetFepAwareEditorText( const TFepInputContextFieldData& aIcfData );
-
-    /**
-     * Set layout UI mode.
-     * The method leaves here only for compatibility
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Mode to set.
-     * @param aPredictive Whether the current mode support predictive.
-     * @param aWwertyInputMode Whether the current HKB is qwerty.
-     * @return None.
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, TInt aKeyboardType);
-#else
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif   
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsValidFnKeyPress() const;
-    virtual TBool IsValidLongChrKeyPress() const;
-#endif
-
-    /**
-     * Set layout UI current case.
-     * The method leaves here only for compatibility. Since plugin layout 
-     * UI is different from HKB tranditional UI, they use something like 
-     * "case mode" other than case which is set by a FEP command.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCase Case to set.
-     * @return None.
-     */
-    void SetCase( TCase aCase );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ExpireMultitapTimer();
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     * 
-     * @param aKey The key presssed.
-     * @return ETrue if long press, EFalse otherwise.
-     */
-    TBool IsValidNumericLongKeyPress( TInt aKey ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aText Text to add to user dictionary.
-     * @return None.
-     */
-    void AddTextToUserDictionaryL( const TDesC& aText );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aFormat On return, contains the formatting to 
-     *        apply to the inline text (or to a portion of it). 
-     * @param aNumberOfCharactersWithSameFormat  On return, 
-              contains the number of characters in the inline 
-              text (starting at aPositionOfCharacter) 
-              which have the same formatting
-     * @param aPositionOfCharacter Start position within the inline text
-     * @return None.
-     */
-    void GetFormatOfFepInlineText( TCharFormat& aFormat, 
-                                   TInt& aNumberOfCharactersWithSameFormat, 
-                                   TInt aPositionOfCharacter ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return ETrue if valid, EFalse otherwise.
-     */
-    TBool IsValidShiftKeyPress() const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void SetEditorContext( TInt aContext );
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	void SetStarKeyFlag( TBool aSet );
-protected:
-   
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin pointer.
-     * @param aPenInputServer Pen input server pointer
-     */
-    CPluginFepManagerBase(CPenInputImePluginCn& aOwner, 
-                          RPeninputServer* aPenInputServer);
-
-    /**
-     * By default Symbian 2nd phase constructor.
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    void BaseConstructL();
-
-    /**
-     * Set layout permited ranges.
-     *
-     * @param aPermittedMode Ranges of current editor allowed.
-     * @return None
-     */
-    virtual void SetLayoutPermitedRanges( TInt aPermittedRanges );
-
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    virtual void SetLayoutRange( const CAknEdwinState* aEditorState );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, TInt aParam );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, const TDesC8& aParam );
-
-    /**
-     * Get layout UI last used range.
-     *
-     * @since S60 v3.2
-     * @return Range last used.
-     */
-    TInt LayoutLastUsedRange();
-
-    /**
-     * Set layout UI position.
-     * Move layout UI not to overlap with some editors.
-     *
-     * @since S60 v3.2
-     * @param aBottomRight The bottom right position of layout UI.
-     *        The value is only a suggest value, layout UI may adjust it.
-     * @return None.
-     */
-    void SetLayoutPosition( const TRect& aParam );
-
-    /**
-     * Get Editor's local language.
-     *
-     * @since S60 v3.2
-     * @param aEditorState The editor's .CAknEdwinState pointer
-     * @return Language code the editor requires.
-     */
-    TLanguage GetLocalLanguage( const CAknEdwinState* aEditorState ) const;
-   
-protected:
-
-    /**
-     * IME plugin reference.
-     */
-    CPenInputImePluginCn& iOwner;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * The premitted range of current editor.
-     */
-    TInt iPermittedRange;
-    
-    TInt iHkbMode;
-    /**
-     * The fep suggested range. The suggested value comes from
-     * previous touch input method.
-     */
-    TInt iSuggestedRange;
-    
-    /**
-     * Current language.
-     */
-    TLanguage iLanguage;   
-    
-private:
-
-    /**
-     * Repository object used to get last used range.
-     */
-    CRepository* iRepository;
-
-    /**
-     * Local copy of ICF max text length.
-     */
-    TInt iMaxEditorLength;
-
-    /**
-     * Local copy of layout current case mode
-     */
-    TInt iLastCase;
-
-    /**
-     * Underlineing UI interface
-     */
-    MAknFepManagerInterface* iHkbUi;
-    };
-#endif // C_PLUGINFEPMANAGERBASE_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagerhwr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            HWR layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERHWR_H
-#define C_PLUGINFEPMANAGERHWR_H
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-
-//Forward declaration
-class CPenInputImePluginCn;
-class RPeninputServer;
-
-/**
- *  CPluginFepManagerHwr is the chinese HWR layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimeplugincn.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerHwr : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerHwr* NewL(CPenInputImePluginCn& aOwner,
-                                      RPeninputServer* aPenInputServer);
-
-     /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-   void SetNumberModeKeyMappingL( TAknEditorNumericKeymap aAknEditorNumericKeymap );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL( TInt aCommandId, TInt aParam );
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-    CPluginFepManagerHwr(CPenInputImePluginCn& aOwner,
-                         RPeninputServer* aPenInputServer);
- 
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    void SetLayoutRange(const CAknEdwinState* aEditorState);
-    
-    /**
-     * Flag to skin set number key mapping.
-     */
-    TInt iNumberKeyMapping;
-    };
-
-#endif // C_PLUGINFEPMANAGERHWR_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/inc/pluginfepmanagervkb.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            VKB layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERVKB_H
-#define C_PLUGINFEPMANAGERVKB_H
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-
-class CPenInputImePluginCn;
-
-/**
- *  CPluginFepManagerHwr is the chinese VKB layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimeplugincn.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerVkb : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerVkb* NewL( CPenInputImePluginCn& aOwner,
-                                       RPeninputServer* aPenInputServer);
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-     
-    CPluginFepManagerVkb(CPenInputImePluginCn& aOwner,
-                         RPeninputServer* aPenInputServer);
-    };
-#endif // C_PLUGINFEPMANAGERVKB_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincn.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,630 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Input mode plugin implementation file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <ecom.h>
-#include <AknFepManagerInterface.h>
-#include <eikmenup.h>
-#include <avkon.hrh>
-#include <aknfepuiinterface.h>
-#include <aknfepuimenus.h>
-#include <bldvariant.hrh>
-#include <featmgr.h>
-
-// User includes
-#include "peninputimeplugincn.h"
-#include "peninputimeplugincndebug.h"
-#include "pluginfepmanagerhwr.h"
-#include "pluginfepmanagervkb.h"
-#include "aknfepuiinterface.h"
-
-
-
-const TInt KInvalidImplId = 0;
-
-_LIT(KFscImeName, "Chinese FSC");
-_LIT(KHwrImeName, "Chinese HWR");
-_LIT(KVkbImeName, "Chinese VKB");
-_LIT(KFsqImeName, "Chinese FSQ");
-_LIT(KFingerHwrImeName, "Chinese Fingerhwr");
-
-//lint -esym( 960, 58, * ) lint notes: break used outside of a switch
-
-// Implementation of Class CPenInputImePluginCn 
-
-// -----------------------------------------------------------------------------
-// RImplInfoPtrArray cleanup function
-// -----------------------------------------------------------------------------
-//
-void Cleanup( TAny* aAny )
-    {
-    RImplInfoPtrArray* implArray = 
-        reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginCn* CPenInputImePluginCn::NewL(TAny* aInitParams)
-    {
-    CPenInputImePluginCn* self = new(ELeave)CPenInputImePluginCn(
-                                        static_cast<RPeninputServer*>(aInitParams));
-    CleanupStack::PushL(self);
-    self->ConstructL(); 
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::NewLC
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginCn* CPenInputImePluginCn::NewLC(TAny* aInitParams)
-    {
-    CPenInputImePluginCn* self = new(ELeave) CPenInputImePluginCn(
-                                        static_cast<RPeninputServer*>(aInitParams));
-    CleanupStack::PushL(self);
-    self->ConstructL(); 
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::~CPenInputImePluginCn
-// destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginCn::~CPenInputImePluginCn()
-    {
-    DeActivate();
-    iUiLayoutImpIdList.Close();
-    delete iPluginUiManager;
-    REComSession::FinalClose();//cleanup ecom
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginCn::GetInputMethodUiL(
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TLanguage aLanguage, 
-                                        TInt      aMode,
-                                        const TDesC8& /*aData*/,
-                                        const TBool aIsSplitView)
-    {
-    iFepManager = aFepManager;
-    iLanguage = aLanguage;
-    CPluginFepManagerBase* fepmanager = NULL;
-    
-    TUid layoutId;
-    TInt i;
-
-    switch(aMode)
-        {
-        case EPluginInputModeFSc:
-            {
-            layoutId.iUid = KFScUiId;
-            }
-            break;         
-        case EPluginInputModeHwr:
-            {
-            layoutId.iUid = KHwrUiId;
-            }
-            break; 
-        case EPluginInputModeVkb:
-            {
-            layoutId.iUid = KVkbUiId;
-            }
-            break;
-        case EPluginInputModeFSQ:
-            {
-            layoutId.iUid = KFsqUiId;
-            }
-            break;
-        case EPluginInputModeFingerHwr:
-            {
-            layoutId.iUid = KFingerHwrUiId;
-            }
-            break;            
-        default:
-            return NULL;
-        }
-    fepmanager = GetPluginUiL( aMode );
-    
-    for(i = 0; i < iUiLayoutImpIdList.Count(); ++i)
-        {
-        if(iUiLayoutImpIdList[i] == layoutId.iUid )
-            {
-            break;
-            }
-        }
-
-    if( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = aMode;
-        TInt errCode = iPenInputServer->SetUiLayoutId(layoutId);
-        if( errCode == KErrNone )
-            {
-            fepmanager->OnInit();
-            return fepmanager;
-            }
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginCn::GetInputMethodUiL(
-                                    MAknFepManagerUIInterface* aFepManager,
-                                    TInt aLayoutId,
-                                    const TDesC8& /*aData*/)
-    {
-    iFepManager = aFepManager;
-    CPluginFepManagerBase* fepmanager = NULL;   
-    TInt i;
-    TInt mode;    
-    
-    if ( aLayoutId == KHwrUiId )
-        {
-        mode = EPluginInputModeHwr;      
-        }
-    else if( aLayoutId == KVkbUiId )
-        {
-        mode = EPluginInputModeVkb;
-        }
-    else if (aLayoutId == KFScUiId)
-        {
-        mode = EPluginInputModeFSc;
-        }
-    else if( aLayoutId == KFsqUiId )
-        {
-        mode = EPluginInputModeFSQ;
-        }
-    else if( aLayoutId == KFingerHwrUiId )
-        {
-        mode = EPluginInputModeFingerHwr;
-        }
-    else
-        {
-        return NULL;
-        }
-    fepmanager = GetPluginUiL( mode );
-
-    for ( i = 0; i < iUiLayoutImpIdList.Count(); ++i )
-        {
-        if ( iUiLayoutImpIdList[i] == aLayoutId )
-            {
-            break;
-            }
-        }
-
-    if ( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = mode;
-        iPenInputServer->SetUiLayoutId(TUid::Uid(aLayoutId));
-        fepmanager->OnInit();    
-        return fepmanager;
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::Activate
-// Activate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginCn::Activate()
-    {
-    if(iPenInputServer)
-        {
-        iPenInputServer->ActivateLayout(ETrue);        
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::DeActivate
-// Deactivate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginCn::DeActivate()
-    {
-    if (iPenInputServer && iPenInputServer->IsVisible())        
-        {
-        iPenInputServer->ActivateLayout(EFalse);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::ImeImplId
-// Get current IME plugin implementation ID.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginCn::ImeImplId()
-    {
-    return KInputMethodImplementationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::LayoutUiImplId
-// Get current layout UI implementation id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginCn::LayoutUiImplId()
-    {
-    TInt id;
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeHwr:
-            {
-            id = KHwrUiId;
-            }
-            break;
-        case EPluginInputModeVkb:
-            {
-            id = KVkbUiId;
-            }
-            break;
-        case EPluginInputModeFSc:
-            {
-            id = KFScUiId;
-            }
-            break; 
-        case EPluginInputModeFSQ:
-            {
-            id = KFsqUiId;
-            }
-            break;
-        case EPluginInputModeFingerHwr:
-            {
-            id = KFingerHwrUiId;
-            }
-            break; 
-        default:
-            {
-            id = KInvalidImplId;
-            }
-            break;
-        }
-    return id;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::SupportModes
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginCn::SupportModes(CPtiEngine* aPtiEngine,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    TInt ret = 0;
-    TRAP_IGNORE( ret = SupportModesL( aPtiEngine, aSupportList ) );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::SupportModesL
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginCn::SupportModesL(CPtiEngine* /*aPtiEngine*/,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const 
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    TBool hwr = EFalse;
-    TBool vkb = EFalse;
-    TBool fsc = EFalse;
-    TBool fsq = EFalse;
-    TBool fingerhwr = EFalse;
-    
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-        
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        if(infoArray[i]->ImplementationUid().iUid == KHwrUiId )
-            {
-            hwr = ETrue;
-            }
-
-        if (infoArray[i]->ImplementationUid().iUid == KVkbUiId
-                && FeatureManager::FeatureSupported(KFeatureIdVirtualKeyboardInput))
-            {
-            vkb = ETrue;
-            }
-        if(infoArray[i]->ImplementationUid().iUid == KFScUiId )
-            {
-            fsc = ETrue;
-            }          
-        if (infoArray[i]->ImplementationUid().iUid == KFsqUiId
-                && FeatureManager::FeatureSupported(KFeatureIdVirtualFullscrQwertyInput))
-            {
-            fsq = ETrue;
-            }
-        if (infoArray[i]->ImplementationUid().iUid == KFingerHwrUiId )
-            {
-            fingerhwr = ETrue;
-            }  
-        }
-    
-    TImePlguinImplDetail detail;
-    
-    detail.iImplementationId = KInputMethodImplementationId;
-    if( fsc )
-        {
-        detail.iMode = EPluginInputModeFSc;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KFscImeName());
-        detail.iLanguage = ELangTaiwanChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangHongKongChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangPrcChinese;
-        aSupportList.Append(detail);
-        //detail.iLanguage = ELangEnglish;
-        //detail.iMeritValue = EImeMerit_NotUsed;
-        //aSupportList.Append(detail);
-        }
-    if( hwr )
-        {
-        detail.iMode = EPluginInputModeHwr;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KHwrImeName());
-        detail.iLanguage = ELangTaiwanChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangHongKongChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangPrcChinese;
-        aSupportList.Append(detail);
-        //detail.iLanguage = ELangEnglish;
-        //detail.iMeritValue = EImeMerit_NotUsed;
-        //aSupportList.Append(detail);
-        }
-
-    if( vkb )
-        {
-        detail.iMode = EPluginInputModeVkb;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KVkbImeName());
-        detail.iLanguage = ELangTaiwanChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangHongKongChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangPrcChinese;
-        aSupportList.Append(detail);
-        //detail.iLanguage = ELangEnglish;
-        //detail.iMeritValue = EImeMerit_NotUsed;
-        //aSupportList.Append(detail);
-        }
-        
-    if( fsq )
-        {
-        detail.iMode = EPluginInputModeFSQ;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KFsqImeName());
-        detail.iLanguage = ELangTaiwanChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangHongKongChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangPrcChinese;
-        aSupportList.Append(detail);
-        //detail.iLanguage = ELangEnglish;
-        //detail.iMeritValue = EImeMerit_NotUsed;
-        //aSupportList.Append(detail);
-        }
-    if( fingerhwr )
-        {
-        detail.iMode = EPluginInputModeFingerHwr;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KFingerHwrImeName());
-        detail.iLanguage = ELangTaiwanChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangHongKongChinese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangPrcChinese;
-        aSupportList.Append(detail);
-        }
-        
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray    
-    
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::CurrentMode
-// Get current layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginCn::CurrentMode() const
-    {
-    return iPenInputMode;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::HandleServerEventL
-// Handle pen input server event..
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginCn::HandleServerEventL(TInt aEventId, const TDesC& aData)
-    {
-    TBool bHandled = EFalse;
-    switch( aEventId )
-        {
-        case ESignalLayoutICFLengthChanged:
-            {
-            GetCurrentUi()->RetrieveEditorMaxLength();
-            }
-            break;
-        case ESignalCaseMode:
-            {
-            GetCurrentUi()->UpdateCaseMode(*(TInt*)(aData.Ptr())); //lint !e728
-            }
-            break;
-        default:
-            break;
-        }
-        
-    return bHandled;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::HandleMenuCommandL
-// Handle the menu command.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginCn::HandleMenuCommandL(TInt /*aCommandId*/)
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::DynInitMenuPaneL
-// Dynamiclly update menu items during it displays.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginCn::DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    TInt index;
-    
-    if ((iPenInputMode == EPluginInputModeVkb ||
-        iPenInputMode == EPluginInputModeFSQ) &&
-        aMenuPane->MenuItemExists(EPenInputCmdSetting, index))
-        {
-        aMenuPane->SetItemDimmed(EPenInputCmdSetting, EFalse);   
-        }
-    aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);			
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::CPenInputImePluginCn
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginCn::CPenInputImePluginCn(RPeninputServer* aHwrServer)
-:iPenInputServer(aHwrServer) 
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::ConstructL
-// 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginCn::ConstructL()
-    {
-    FindUiLayoutImplementationL();
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::FindUiLayoutImplementationL
-// Enumuate all layout UI ids.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginCn::FindUiLayoutImplementationL()
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-
-    iUiLayoutImpIdList.Reset();
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-        
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        iUiLayoutImpIdList.AppendL(infoArray[i]->ImplementationUid().iUid);
-        }
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray    
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginCn::GetPluginUiL
-// Get HWR UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase* CPenInputImePluginCn::GetPluginUiL( TInt aMode )
-    {
-    delete iPluginUiManager;
-    iPluginUiManager = NULL;
-    
-    switch ( aMode )
-        {
-        case EPluginInputModeFingerHwr:
-        case EPluginInputModeFSc:
-        case EPluginInputModeHwr:
-            {
-            return iPluginUiManager = CPluginFepManagerHwr::NewL(*this, iPenInputServer);
-            }
-        case EPluginInputModeVkb:
-        case EPluginInputModeFSQ:
-            {
-            return iPluginUiManager = CPluginFepManagerVkb::NewL(*this, iPenInputServer);
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincnmain.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to E32Dll
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <e32base.h>
-
-/** DLL Entry point */
-#ifndef EKA2
-GLDEF_C TInt E32Dll( TDllReason /*aReason*/ )
-    {
-    return( KErrNone );
-    }
-#endif
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/peninputimeplugincnproxy.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to Proxy
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32std.h>
-#include <implementationproxy.h>
-
-// User includes
-#include "peninputimeplugincn.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY(0x10207361,    CPenInputImePluginCn::NewL) //lint !e611    
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
-    return ImplementationTable;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,743 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class implementation
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <w32std.h>
-#include <s32mem.h> 
-#include <aknedsts.h>               // CAknEdwinState
-#include <centralrepository.h>
-#include <peninputclient.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepInternalCRKeys.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-#include "peninputimeplugincn.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::~CPluginFepManagerBase()
-    {
-    delete iRepository;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::OnInit
-// Initalize UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::OnInit()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::RetrieveEditorMaxLength
-// Explicitly get ICF max length from layout UI .
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::RetrieveEditorMaxLength()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::UpdateCaseMode
-// Update local copy of case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::UpdateCaseMode( TInt aCaseMode )
-    {
-    iLastCase = aCaseMode; 
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNumberModeKeyMappingL
-// Set layout UI current number mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNumberModeKeyMappingL(
-                                            TAknEditorNumericKeymap aAknEditorNumericKeymap)
-    {
-    SendCommandToServer(ECmdPenInputEditorNumericKeyMap, aAknEditorNumericKeymap);    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleKeyL
-// Handle key event.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/ )
-    {
-    return iHkbUi->HandleKeyL( aKey, aLength );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL( TInt aCommandId )
-    {
-    SendCommandToServer( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    switch ( aCommandId )
-        {
-        case ECmdPenInputRange:
-            {
-            iHkbMode = aParam;
-            }
-            break;
-        case ECmdPenInputPermittedRange:
-            {
-            iLastCase = ECaseInvalide;
-            SetLayoutPermitedRanges( aParam );
-            }
-            break;
-        case ECmdPenInputEditorState:
-            {
-            SetLayoutRange(reinterpret_cast<CAknEdwinState*>(aParam));
-            }
-            break;
-        case ECmdPenInputSetWindowPos:
-            {
-            SetLayoutPosition(*reinterpret_cast<TRect*>(aParam));
-            }
-            break;
-        case ECmdPenInputCaseMode:
-            //if( aParam != iLastCase )
-                {
-                SendCommandToServer( ECmdPenInputCase, aParam );
-                iLastCase = aParam;
-                }
-            break;
-        case ECmdPenInputEditorCustomNumericKeyMap:
-            {
-            TDesC* res = (TDesC*)aParam;
-            TPtrC8 param;
-            param.Set((TUint8*)res->Ptr(), res->Size());
-            SendCommandToServer( aCommandId, param );                    
-            SetNumberModeKeyMappingL((TAknEditorNumericKeymap)EKeymapFromResource);
-            }
-            break;            
-        case ECmdPenInputSuggestRange:
-            iSuggestedRange = aParam;
-            if( iSuggestedRange == ERangeAccent )
-                {
-                iSuggestedRange = ERangeEnglish;
-                }
-            break;
-        case ECmdPenInputSendEditorTextAndCurPos:
-            {
-            TFepInputContextFieldData* pIcfData = 
-                reinterpret_cast<TFepInputContextFieldData*>( aParam );
-                       
-            TInt dataSize = sizeof( TFepInputContextFieldData );
-            TInt textSize = pIcfData->iText.Size();
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pIcfData );
-			writeStream.WriteL( pData, dataSize );
-        		
-    		const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
-		    writeStream.WriteL( pText, textSize );
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputSetPromptText:
-            {
-            TFepPromptText* pPromptData = 
-                reinterpret_cast<TFepPromptText*>( aParam );
-                
-            TInt dataSize = sizeof( TFepPromptText );
-            TInt textSize = 0;
-            
-            if (pPromptData->iText.Length())
-                {
-                textSize = pPromptData->iText.Size();
-                }
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pPromptData );
-			writeStream.WriteL( pData, dataSize );
-        	
-        	if (textSize != 0)
-        	    {
-                const TUint16* pText = pPromptData->iText.Ptr();
-    		    writeStream.WriteL( pText, textSize/2 );
-        	    }
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputPopupTooltip:
-            {
-            TPtrC* tooltipTextPtr = reinterpret_cast<TPtrC*>( aParam );
-            if ( tooltipTextPtr )
-            	{
-				HBufC8* buf8 = HBufC8::NewLC
-							 ( sizeof( TInt ) + tooltipTextPtr->Size() );
-				TPtr8 buf8Ptr = buf8->Des();
-				RDesWriteStream writeStream;
-				CleanupClosePushL(writeStream);
-				writeStream.Open( buf8Ptr );
-				writeStream.WriteInt32L( tooltipTextPtr->Size() );
-				writeStream.WriteL( tooltipTextPtr->Ptr(), tooltipTextPtr->Length() );
-				writeStream.CommitL();
-				CleanupStack::PopAndDestroy( &writeStream );                        
-				SendCommandToServer( aCommandId, buf8Ptr );            
-				CleanupStack::PopAndDestroy( buf8 );
-            	}
-            }
-            break;
-        case ECmdPenInputPopupCandidateList:
-            {
-            TFepITICandidateList* candidatelist 
-                               = reinterpret_cast<TFepITICandidateList*>( aParam );
-            if ( candidatelist )
-            	{
-				CDesCArray* itemArray = candidatelist->iItemArray;
-				if ( itemArray )
-					{           
-					TInt sumSize = 0;     
-					for ( TInt i = 0; i < itemArray->Count(); i++ )
-						{
-						sumSize += (*itemArray)[i].Size();
-						}
-					HBufC8* buf8 = HBufC8::NewLC( sizeof(TInt) // For active index
-												 + sizeof(TInt) // For the count of item array
-												 + sizeof(TInt)*( itemArray->Count() ) // For the size of each item
-												 + sumSize// For all of char data 
-												 );
-					TPtr8 buf8Ptr = buf8->Des();
-					RDesWriteStream writeStream;
-					CleanupClosePushL(writeStream);                
-					writeStream.Open( buf8Ptr );                
-					writeStream.WriteInt32L( candidatelist->iActiveIndex );
-					writeStream.WriteInt32L( itemArray->Count() );                
-					for ( TInt i = 0; i < itemArray->Count(); i++  )
-						{
-						writeStream.WriteInt32L( (*itemArray)[i].Size() );
-						writeStream.WriteL( (*itemArray)[i].Ptr(), (*itemArray)[i].Length() );
-						}
-					writeStream.CommitL();                 
-					CleanupStack::PopAndDestroy( &writeStream );
-					SendCommandToServer( aCommandId, buf8Ptr );
-					CleanupStack::PopAndDestroy( buf8 );
-					}
-            	}
-            }
-            break;
-        default:
-            SendCommandToServer( aCommandId, aParam );
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CloseUI
-// Close plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::CloseUI()
-    {
-    iPenInputServer->ActivateLayout( EFalse ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ActivateUI
-// Activate plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ActivateUI()
-    {
-    iPenInputServer->ActivateLayout( ETrue );    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::EditorMaxLength
-// Get max text length of layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::EditorMaxLength()
-    {
-    return iMaxEditorLength;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SizeChanged
-// Handle screen size changed.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ResourceChanged(TInt aType)
-    {
-    iPenInputServer->ResourceChanged(aType);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNextFepUI
-// Set underlining UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNextFepUI( MAknFepManagerInterface* aNextUi )
-    {
-    iHkbUi = aNextUi;    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SupportLanguage
-// Get support language in sepecfied mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::SupportLanguage( TInt /*aMode*/ ) const
-    {
-    return iLanguage;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetInputLanguageL
-// Set current language.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetInputLanguageL(TLanguage aLanguage)
-    {
-    iLanguage = aLanguage;
-
-    if(iLanguage == ELangTaiwanChinese ||
-       iLanguage == ELangHongKongChinese ||
-       iLanguage == ELangPrcChinese)
-        {
-    	SendCommandToServer(ECmdPenInputLanguage, (TInt)aLanguage);
-        }
-    else 
-        {
-        // other language except chinese, will treated as English
-        iLanguage = ELangEnglish;
-    	SendCommandToServer(ECmdPenInputLanguage, (TInt)ELangEnglish);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetFepAwareEditorText
-// Set editor text and cursor information to layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/)
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode, TInt /*aKeyboardType*/)
-#else
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode )
-#endif    
-    {
-    iHkbUi->SetMode(aMode, aPredictive, aQwertyInputMode);
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool CPluginFepManagerBase::IsValidFnKeyPress() const
-    {
-    return EFalse;
-    }
-    TBool CPluginFepManagerBase::IsValidLongChrKeyPress() const
-    {
-    return EFalse;
-    }
-#endif
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI current case.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetCase(TCase aCase)
-    {
-    iHkbUi->SetCase(aCase);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ExpireMultitapTimer
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ExpireMultitapTimer()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidNumericLongKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidNumericLongKeyPress( TInt /*aKey*/ ) const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::AddTextToUserDictionaryL
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::AddTextToUserDictionaryL( const TDesC& /*aText*/ )
-    {
-    }
-       
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetFormatOfFepInlineText
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::GetFormatOfFepInlineText( 
-                                TCharFormat& /*aFormat*/, 
-                                TInt& /*aNumberOfCharactersWithSameFormat*/, 
-                                TInt /*aPositionOfCharacter*/ ) const
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidShiftKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidShiftKeyPress() const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetEditorContext( TInt /*aContext*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetStarKeyFlag( TBool /*aSet*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::CPluginFepManagerBase(CPenInputImePluginCn& aOwner,
-                                             RPeninputServer* aPenInputServer )
-    :iOwner( aOwner ), iPenInputServer( aPenInputServer )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::BaseConstructL
-// Symbian 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::BaseConstructL()
-    {
-    iRepository = CRepository::NewL( KCRUidAknFep );
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPermitedRanges
-// Set layout permited ranges.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPermitedRanges( TInt aPermittedMode )
-    {
-    // Not derived from edwin
-    if ( aPermittedMode == EAknEditorNumericInputMode ) 
-        {
-        iPermittedRange = ERangeNumber;         
-        }
-    else if ( aPermittedMode & EAknEditorTextInputMode )
-        {
-        // Derived from edwin and EAknEditorTextInputMode
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol;
-        }
-    else if ( aPermittedMode & EAknEditorSecretAlphaInputMode ) 
-        {
-        // Derived from EAknEditorSecretAlphaInputMode 
-        iPermittedRange = ERangeNumber |
-                          ERangeEnglish | 
-                          ERangeSymbol;        
-        }
-    else
-        {
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutRange(const CAknEdwinState* aEditorState)
-    {
-    //calculate permitted ranges
-    if(aEditorState)
-        {
-        if( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly &&
-            iPermittedRange & ERangeNative )
-            {
-            iPermittedRange &= ~ERangeNative;
-            }
-        }
-
-    SendCommandToServer( ECmdPenInputPermittedRange, iPermittedRange );
-    
-    TInt priRange;
-    
-    switch( iHkbMode )
-        {
-        case ECangJie:
-        case EStrokeFind:
-        case EStroke:
-        case EPinyin:
-        case EZhuyin:
-        case EZhuyinFind:
-            {
-            priRange = ERangeNative;
-            }
-            break;                 
-        case ENumber:
-            {
-            priRange = ERangeNumber;
-            }
-            break;                 
-        case EPRCFind:
-        case ELatin:
-        case ELatinText:
-        case ELatinUpper:
-        case ELatinLower:
-        default:
-            {
-            priRange = ERangeEnglish;
-            }
-            break;               
-        }
-        
-    if ((iLanguage == ELangEnglish) && (priRange == ERangeNative))
-        {
-        // when language switch button switch to English, if original range is Native, 
-        // then it need to be changed to ERangeEnglish
-    	priRange = ERangeEnglish;
-        }
-        
-    if( iSuggestedRange != ERangeInvalid && (iSuggestedRange & iPermittedRange) )
-        {
-        priRange = iSuggestedRange;
-        iSuggestedRange = ERangeInvalid;
-        }
-
-    SendCommandToServer( ECmdPenInputRange, priRange );  
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId )
-    {
-    iPenInputServer->HandleCommand( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, TInt aParam )
-    {
-    TBuf8<sizeof(TInt)> buf;
-    buf.Append( (TUint8*)&aParam, sizeof(TInt) );    
-    SendCommandToServer( aCommandId, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer(TInt aCommandId, const TDesC8& aParam)
-    {
-    iPenInputServer->HandleCommand( aCommandId, aParam );        
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::LayoutLastUsedRange
-// Get layout UI last used range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::LayoutLastUsedRange()
-    {
-    TInt value = 0;
-    if( iRepository )
-        {
-        iRepository->Get( KAknFepLastUsedRange, value );
-        }
-        
-    return value;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPosition
-// Set layout UI position.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPosition( const TRect& pParam )
-    {
-    TBuf8<sizeof( TRect )> buf;
-    buf.Append((TUint8*)&pParam, sizeof(pParam));
-    
-    SendCommandToServer( ECmdPenInputSetWindowPos, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetLocalLanguage
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TLanguage CPluginFepManagerBase::GetLocalLanguage( 
-    const CAknEdwinState* aEditorState ) const
-    {
-    TLanguage language = ELangTest;
-    // Check for a local language override
-    if ( aEditorState )
-        {
-        TInt aknEditorFlags = aEditorState->Flags()	;
-        if ( aknEditorFlags & EAknEditorFlagLatinInputModesOnly )
-            {
-            language = ELangEnglish;
-            }
-        else
-            {
-            language = aEditorState->LocalLanguage();
-            }
-        }
-
-    return language;
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerhwr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            HWR layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknfeppeninputenums.h>
-#include <aknedsts.h>               //CAknEdwinState
-
-// User includes
-#include "pluginfepmanagerhwr.h"
-#include "peninputimeplugincn.h"
-
-// ======== MEMBER FUNCTIONS ========
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr* CPluginFepManagerHwr::NewL(CPenInputImePluginCn& aOwner,
-                                                 RPeninputServer* aPenInputServer)
-    {
-    CPluginFepManagerHwr* self = new(ELeave)CPluginFepManagerHwr(aOwner, aPenInputServer);
-    CleanupStack::PushL(self);
-    self->BaseConstructL(); 
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetNumberModeKeyMappingL
-// Set layout UI current number mode key mapping.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetNumberModeKeyMappingL(
-                             TAknEditorNumericKeymap aAknEditorNumericKeymap)
-    {
-    //don't send number key map here, the key mapping is only meaningful
-    //in ENumber range
-    iNumberKeyMapping = aAknEditorNumericKeymap;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    if( aCommandId == ECmdPenInputSetWindowPos)
-        {
-        return;
-        }
-    CPluginFepManagerBase::HandleCommandL(aCommandId, aParam);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::CPluginFepManagerHwr
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr::CPluginFepManagerHwr(CPenInputImePluginCn& aOwner,
-                                           RPeninputServer* aPenInputServer)
-    :CPluginFepManagerBase(aOwner, aPenInputServer)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetLayoutRange(const CAknEdwinState* aEditorState)
-    {
-    CPluginFepManagerBase::SetLayoutRange(aEditorState);
-    
-    //set number key mapping
-    if( iPermittedRange == ERangeNumber )        
-        {
-        SendCommandToServer(ECmdPenInputEditorNumericKeyMap, iNumberKeyMapping);
-        }
-    else
-        {
-        //for not number only editor, we set plain number and 
-        //second range handles other characters
-        SendCommandToServer(ECmdPenInputEditorNumericKeyMap, 
-                            EAknEditorPlainNumberModeKeymap);    
-        }
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagervkb.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            VKB layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknedsts.h>               // CAknEdwinState
-#include <eikon.hrh>
-
-// User includes
-#include "pluginfepmanagervkb.h"
-#include "peninputimeplugincn.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb* CPluginFepManagerVkb::NewL(CPenInputImePluginCn& aOwner,
-                                                 RPeninputServer* aPenInputServer)
-    {
-    CPluginFepManagerVkb* self = new(ELeave)CPluginFepManagerVkb(aOwner, aPenInputServer);
-    CleanupStack::PushL(self);
-    self->BaseConstructL(); 
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::CPluginFepManagerVkb
-// constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb::CPluginFepManagerVkb(CPenInputImePluginCn& aOwner,
-                                           RPeninputServer* aPenInputServer)
-    :CPluginFepManagerBase(aOwner, aPenInputServer)
-    {
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/srcdata/10207361.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 1020 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:            Resource definitions for project peninputimeplugincn
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x10207361;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x10207363;
-			implementations = 
-				{
-				// Info for CImplementation1
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x10207361;
-					version_no = 1;
-					display_name = "Chinese Hwr input method plugin";
-					//supported language
-					default_data = "1||29-31";
-					//supported IME impl id
-					opaque_data= "29-31";
-					}
-				};
-			}
-		};
-	}
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Build information file for project peninputimeplugingeneric
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-	
-PRJ_MMPFILES
-
-../group/peninputimeplugingeneric.mmp
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/group/peninputimeplugingeneric.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Project definition file for project peninputimeplugingeneric
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET      peninputimeplugingeneric.dll
-TARGETTYPE  plugin
-UID         0x10009D8D 0x1028235F
-
-CAPABILITY  CAP_ECOM_PLUGIN
-VENDORID    VID_DEFAULT
-
-SOURCEPATH  ../src
-
-SOURCE      peninputimeplugingenericproxy.cpp
-SOURCE      peninputimeplugingeneric.cpp
-SOURCE      pluginfepmanagerbase.cpp
-SOURCE      pluginfepmanagerhwr.cpp
-SOURCE      pluginfepmanagervkb.cpp
-
-USERINCLUDE     ../inc 
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   /epoc32/include/ecom
-SYSTEMINCLUDE   ../../../../../inc
-
-SOURCEPATH      ../srcdata
-
-START RESOURCE 1028235F.rss
-#ifdef SYMBIAN_SECURE_ECOM 
-TARGET peninputimeplugingeneric.rsc                                                              
-#endif
-END
-
-
-LIBRARY euser.lib 
-LIBRARY ECom.lib
-LIBRARY centralrepository.lib 
-LIBRARY eikcoctl.lib 
-LIBRARY cone.lib 
-LIBRARY efsrv.lib
-LIBRARY estor.lib 
-LIBRARY FeatMgr.lib                // feature manager
-LIBRARY avkon.lib 
-LIBRARY eikcore.lib 
-
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY         peninputclient.lib
-#else
-LIBRARY         peninputserverstub.lib
-#endif
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            input mode plugin header file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PENINPUTIMEPLUGINGENERIC_H
-#define C_PENINPUTIMEPLUGINGENERIC_H   
-
-// System includes
-#include <e32base.h>
-#include <peninputclient.h>
-#include <aknfeppeninputimeplugin.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-//#include <AknFepManagerUIInterface.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-
-// Forward declaration
-class MAknFepManagerInterface;
-class CAknEdwinState;
-class CRepository;
-class CPluginFepManagerBase;
-
-/**
- *  Pen input mode plugin chinese implementation
- *
- *  @lib peninputimeplugingeneric.lib
- *  @since S60 v3.2
- */
-class CPenInputImePluginGeneric : public CAknFepPenInputImePlugin
-    {
-public:
-
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aInitParams Init data plugin, actually it is 
-     *        a pointer of RPeninputServer.
-     * @return Pointer to created CPenInputImePluginGeneric object
-     */
-    static CPenInputImePluginGeneric* NewL( TAny* aInitParams );
-
-    static CPenInputImePluginGeneric* NewLC( TAny* aInitParams );
-
-    /**
-     * Destructor.
-     */
-    ~CPenInputImePluginGeneric();
-
-public: // From CAknFepPenInputImePlugin
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL( 
-                            MAknFepManagerUIInterface* aFepManager,
-                            TLanguage aLanguage,
-                            TInt aMode,
-                            const TDesC8& aData, 
-                            const TBool aIsSplitView = EFalse);
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL( 
-                            MAknFepManagerUIInterface* aFepManager, 
-                            TInt aLayoutId, 
-                            const TDesC8& aData );
-
-    /**
-     * Activate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void Activate();
-
-    /**
-     * Deactivate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void DeActivate();
-
-    /**
-     * Get current IME plugin implementation ID.
-     * 
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    TInt ImeImplId();
-
-    /**
-     * Get current layout UI implementation id.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TInt LayoutUiImplId();
-
-    /**
-     * Handle pen input server event.
-     * 
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TBool HandleServerEventL( TInt aEventId, const TDesC& aData );
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-     TInt SupportModes(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-
-    /**
-     * Get current layout UI mode.
-     * 
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-     TInt CurrentMode() const;
-
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if 
-     * this function return EFalse, FEP handles it defaultly.
-     * 
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command; 
-     *         EFalse otherwise.
-     */
-    TBool HandleMenuCommandL( TInt aCommandId );
-
-    /**
-     * Dynamiclly update menu items during it displays. 
-     * 
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    void DynInitMenuPaneL( CAknFepUiInterfaceMenuPane* aMenuPane );
-
-private:
-    
-    /**
-     * C++ default constructor.
-     *
-     * @param aServer Pen input server pointer
-     */
-    CPenInputImePluginGeneric( RPeninputServer* aServer );
-    
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     *
-     * @return None
-     */
-    void ConstructL();
-
-    /**
-     * Enumuate all layout UI ids and save them to iUiLayoutImpIdList.
-     *
-     * @return None
-     */
-    void FindUiLayoutImplementationL();
-    
-    /**
-     * Get plugin UI interface
-     *
-     * @return plugin UI pointer
-     */
-    CPluginFepManagerBase* GetPluginUiL( TInt aMode );
-    
-    /**
-     * Get current UI interface
-     *
-     * @return current UI pointer
-     */
-    inline CPluginFepManagerBase* GetCurrentUi();
-    
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-    TInt SupportModesL(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-                       
-private:
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RArray<TInt> iUiLayoutImpIdList;
-
-    /**
-     * Current layout UI mode.
-     */
-    TInt iPenInputMode;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    CPluginFepManagerBase* iPluginUiManager;
-    };
-
-#include "peninputimeplugingeneric.inl"
-
-#endif // C_PENINPUTIMEPLUGINGENERIC_H
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingeneric.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Inline file for Ime plugin China.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-const TInt KHwrLayoutInterfaceId = 0x102072FC; // This is for layout interface
-const TInt KInputMethodImplementationId = 0x1028235F;
-const TInt KHwrUiId = 0x1028235B;
-const TInt KHwrArabicUiId = 0x20019599;
-const TInt KVkbUiId = 0x10282359;
-const TInt KFsqUiId = 0x2001114D;
-const TInt KSsqUiId = 0x2001E2BB;
-
-inline CPluginFepManagerBase* CPenInputImePluginGeneric::GetCurrentUi()
-    {
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeHwr:
-        case EPluginInputModeVkb:
-        case EPluginInputModeFSQ:
-            return iPluginUiManager;
-        default:
-            return NULL;
-        }
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/peninputimeplugingenericdebug.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Debug utils API
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINCHSDEBUG_H
-#define PENINPUTIMEPLUGINCHSDEBUG_H
- 
-#ifdef _DEBUG
-    #define PRINT( txt )                    RDebug::Print( txt );
-    #define PRINTF( txt )                   RDebug::Print txt;
-    #define PRINT1( txt, arg1 )             RDebug::Print( txt, arg1 );
-    #define PRINT2( txt, arg1, arg2 )       RDebug::Print( txt, arg1, arg2 );
-    #define PRINT3( txt, arg1, arg2, arg3 ) RDebug::Print( txt, arg1, arg2, arg3 ); 
-#else 
-    #define PRINT( txt ) 
-    #define PRINTF( txt )                    
-    #define PRINT1( txt, arg1 ) 
-    #define PRINT2( txt, arg1, arg2 ) 
-    #define PRINT3( txt, arg1, arg2, arg3 ) 
-#endif
-
-
-// Record into log files
-#define USE_FILE_LOGGER
-
-#if defined (_DEBUG) && !defined(USE_FILE_LOGGER)                   
-    #define USE_SERIAL_LOGGER 
-#endif
-                                    
-#if defined (USE_FILE_LOGGER)
-    #include <flogger.h>
-    _LIT(KLogFile,"imepluginchn.txt");
-    _LIT(KLogFolder,"peninputime");
-    #define LOGTEXT(AAA)                RFileLogger::Write(KLogFolder(), \
-                                                           KLogFile(), \
-                                                           EFileLoggingModeAppend, \
-                                                           AAA)
-    #define LOGTEXT2(AAA,BBB)           RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB, \
-                                                                 CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) RFileLogger::HexDump(KLogFolder(), \
-                                                             KLogFile(), \
-                                                             EFileLoggingModeAppend, \
-                                                             AAA,\
-                                                             BBB,\
-                                                             CCC,\
-                                                             DDD)    
-#elif defined (USE_SERIAL_LOGGER) 
-    #include <e32svr.h>
-    #define LOGTEXT(AAA)                RDebug::Print(AAA)
-    #define LOGTEXT2(AAA,BBB)           RDebug::Print(AAA,BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RDebug::Print(AAA,BBB,CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD)
-#else
-    #define LOGTEXT(AAA)                
-    #define LOGTEXT2(AAA,BBB)           
-    #define LOGTEXT3(AAA,BBB,CCC)       
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) 
-#endif      
-
-#endif      // PENINPUTIMEPLUGINCHSDEBUG   
-            
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagerbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,482 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERBASE_H
-#define C_PLUGINFEPMANAGERBASE_H
-
-// System includes
-#include <e32base.h>
-#include <frmtlay.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-#include <peninputcmd.h>
-
-//Forward declaration
-class CPenInputImePluginGeneric;
-class RPeninputServer;
-class CAknEdwinState;
-class CRepository;
-/**
- *  CPluginFepManagerBase is the layout UI interface base class. 
- *  It is something like a "proxy" class of layout UI plugin, sending
- *  commands from FEP to layout UI plugin.
- *
- *  @lib peninputimeplugingeneric.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerBase: public CBase, public MAknFepManagerInterface
-    {
-public: 
-
-    /**
-     * Destructor.
-     */
-    ~CPluginFepManagerBase();
-
-    /**
-     * Initalize UI when first time starting up. 
-     * The first time means when the instance created.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void OnInit();
-
-    /**
-     * Explicitly get ICF max length from layout UI and save the 
-     * value to iMaxEditorLength.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void RetrieveEditorMaxLength();
-
-    /**
-     * Update local copy of case mode when 
-     * user change case in layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCaseMode The case mode to save locally.
-     * @return None.
-     */
-    void UpdateCaseMode( TInt aCaseMode );
-
-// From MAknFepManagerInterface
-
-    /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-    void SetNumberModeKeyMappingL( TAknEditorNumericKeymap aAknEditorNumericKeymap );
-
-    /**
-     * Handle key event.
-     * Since most plugin layout UIs are based on animation, they receive 
-     * key and process key events before this function. 
-     * 
-     * @since S60 v3.2
-     *
-     * @param aKey Key event code.
-     * @param aLength Key press length.
-     * @return ETrue if processed, EFalse otherwise.
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @return None
-     */
-    void HandleCommandL( TInt aCommandId );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL( TInt aCommandId, TInt aParam );
-
-    /**
-     * Close plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void CloseUI();
-
-    /**
-     * Activate plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ActivateUI();
-
-    /**
-     * Get max text length of layout UI ICF control.
-     * 
-     * @since S60 v3.2
-     * @return Max ICF text length.
-     */
-    TInt EditorMaxLength();
-
-    /**
-     * When screen size changes, SizeChanged is called by FEP.
-     * 
-     * @since S60 v3.2
-     * @return None.
-     */
-    void ResourceChanged( TInt aType );
-
-    /**
-     * Set underlining UI.
-     * Since plugin layout UI and HKB can be used at same time,
-     * HKB UI layout need to be notified after plugin layout UI 
-     * processes some events
-     * 
-     * @since S60 v3.2
-     * @param aNextUI The underlining UI pointer.
-     * @return None.
-     */
-    void SetNextFepUI( MAknFepManagerInterface* aNextUi );
-    
-    /**
-     * Get support language in sepecfied mode.
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Input mode.
-     * @return Language supported.
-     */
-    TInt SupportLanguage( TInt aMode ) const;
-
-    /**
-     * Set current language, which is required by editor
-     * 
-     * @since S60 v3.2
-     *
-     * @param aLanguage Language to set.
-     * @return None.
-     */
-    void SetInputLanguageL( TLanguage aLanguage );
-
-		TInt InputLanguage(); 
-
-    /**
-     * Set editor text and cursor information to layout UI 
-     * ICF control.
-     * 
-     * @since S60 v3.2
-     * @param aTotalTextLen Total text length in eidtor.
-     * @param aStartPos Offset of aText to the start of editor text.
-     * @param aCursorSel Cursor position.
-     * @param aText A part of editor text start from aStartPos.
-     *
-     * @return None.
-     */
-    void SetFepAwareEditorText( const TFepInputContextFieldData& aIcfData );
-
-    /**
-     * Set layout UI mode.
-     * The method leaves here only for compatibility
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Mode to set.
-     * @param aPredictive Whether the current mode support predictive.
-     * @param aWwertyInputMode Whether the current HKB is qwerty.
-     * @return None.
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, 
-                 TInt aKeyboardType = EPtiKeyboardNone) ;
-#else
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif   
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsValidFnKeyPress() const;
-    virtual TBool IsValidLongChrKeyPress() const;
-#endif
-
-    /**
-     * Set layout UI current case.
-     * The method leaves here only for compatibility. Since plugin layout 
-     * UI is different from HKB tranditional UI, they use something like 
-     * "case mode" other than case which is set by a FEP command.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCase Case to set.
-     * @return None.
-     */
-    void SetCase( TCase aCase );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ExpireMultitapTimer();
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     * 
-     * @param aKey The key presssed.
-     * @return ETrue if long press, EFalse otherwise.
-     */
-    TBool IsValidNumericLongKeyPress( TInt aKey ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aText Text to add to user dictionary.
-     * @return None.
-     */
-    void AddTextToUserDictionaryL( const TDesC& aText );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aFormat On return, contains the formatting to 
-     *        apply to the inline text (or to a portion of it). 
-     * @param aNumberOfCharactersWithSameFormat  On return, 
-              contains the number of characters in the inline 
-              text (starting at aPositionOfCharacter) 
-              which have the same formatting
-     * @param aPositionOfCharacter Start position within the inline text
-     * @return None.
-     */
-    void GetFormatOfFepInlineText( TCharFormat& aFormat, 
-                                   TInt& aNumberOfCharactersWithSameFormat, 
-                                   TInt aPositionOfCharacter ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return ETrue if valid, EFalse otherwise.
-     */
-    TBool IsValidShiftKeyPress() const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void SetEditorContext( TInt aContext );
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	void SetStarKeyFlag( TBool aSet );
-protected:
-   
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin pointer.
-     * @param aPenInputServer Pen input server pointer
-     */
-    CPluginFepManagerBase( CPenInputImePluginGeneric& aOwner, 
-                           RPeninputServer* aPenInputServer );
-
-    /**
-     * By default Symbian 2nd phase constructor.
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    void BaseConstructL();
-
-    /**
-     * Set layout permited ranges.
-     *
-     * @param aPermittedMode Ranges of current editor allowed.
-     * @return None
-     */
-    virtual void SetLayoutPermitedRanges( TInt aPermittedRanges );
-
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    virtual void SetLayoutRange( const CAknEdwinState* aEditorState );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, TInt aParam );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, const TDesC8& aParam );
-
-    /**
-     * Get layout UI last used range.
-     *
-     * @since S60 v3.2
-     * @return Range last used.
-     */
-    TInt LayoutLastUsedRange();
-
-    /**
-     * Set layout UI position.
-     * Move layout UI not to overlap with some editors.
-     *
-     * @since S60 v3.2
-     * @param aBottomRight The bottom right position of layout UI.
-     *        The value is only a suggest value, layout UI may adjust it.
-     * @return None.
-     */
-    void SetLayoutPosition( const TRect& aParam );
-
-    /**
-     * Get Editor's local language.
-     *
-     * @since S60 v3.2
-     * @param aEditorState The editor's .CAknEdwinState pointer
-     * @return Language code the editor requires.
-     */
-    TLanguage GetLocalLanguage( const CAknEdwinState* aEditorState ) const;
-   
-   TBool SupportLatinRange();
-   
-   TBool SupportNativeNumberRange();
-   
-protected:
-
-    /**
-     * IME plugin reference.
-     */
-    CPenInputImePluginGeneric& iOwner;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * The premitted range of current editor.
-     */
-    TInt iPermittedRange;
-    
-    TInt iHkbMode;
-
-    /**
-     * The fep suggested range. The suggested value comes from
-     * previous touch input method.
-     */
-    TInt iSuggestedRange;
-    /**
-     * Current language.
-     */
-    TLanguage iLanguage;   
-    
-private:
-
-    /**
-     * Repository object used to get last used range.
-     */
-    CRepository* iRepository;
-
-    /**
-     * Local copy of ICF max text length.
-     */
-    TInt iMaxEditorLength;
-
-    /**
-     * Local copy of layout current case mode
-     */
-    TInt iLastCase;
-
-    /**
-     * Underlineing UI interface
-     */
-    MAknFepManagerInterface* iHkbUi;
-	
-	TInt iPermittedMode;
-    };
-#endif // C_PLUGINFEPMANAGERBASE_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagerhwr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            HWR layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERHWR_H
-#define C_PLUGINFEPMANAGERHWR_H
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-
-//Forward declaration
-class CPenInputImePluginGeneric;
-class RPeninputServer;
-
-/**
- *  CPluginFepManagerHwr is the chinese HWR layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimeplugingeneric.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerHwr : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerHwr* NewL( CPenInputImePluginGeneric& aOwner,
-                                      RPeninputServer* aPenInputServer );
-
-     /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-   void SetNumberModeKeyMappingL( 
-       TAknEditorNumericKeymap aAknEditorNumericKeymap );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL( TInt aCommandId, TInt aParam );
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-    CPluginFepManagerHwr( CPenInputImePluginGeneric& aOwner,
-                          RPeninputServer* aPenInputServer );
- 
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    void SetLayoutRange( const CAknEdwinState* aEditorState );
-    
-    TInt iNumberKeyMapping;
-    };
-
-#endif // C_PLUGINFEPMANAGERHWR_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/inc/pluginfepmanagervkb.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            VKB layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERVKB_H
-#define C_PLUGINFEPMANAGERVKB_H
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-
-class CPenInputImePluginGeneric;
-
-/**
- *  CPluginFepManagerHwr is the chinese VKB layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimeplugingeneric.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerVkb : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerVkb* NewL( CPenInputImePluginGeneric& aOwner,
-                                      RPeninputServer* aPenInputServer );
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-     
-    CPluginFepManagerVkb( CPenInputImePluginGeneric& aOwner,
-                         RPeninputServer* aPenInputServer );
-    };
-#endif // C_PLUGINFEPMANAGERVKB_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,753 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Input mode plugin implementation file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <ecom.h>
-#include <AknFepManagerInterface.h>
-#include <eikmenup.h>
-#include <coemain.h>
-#include <aknfepuiinterface.h>
-#include <aknfepuimenus.h>
-#include <languages.hrh>
-#include <bldvariant.hrh>
-#include <featmgr.h>
-
-// User includes
-#include "peninputimeplugingeneric.h"
-#include "peninputimeplugingenericdebug.h"
-#include "pluginfepmanagerhwr.h"
-#include "pluginfepmanagervkb.h"
-#include "truisupportedlanguageid.h"
-
-const TInt KInvalidImplId = 0;
-
-_LIT(KHwrImeName, "Generic HWR");
-_LIT(KVkbImeName, "Generic VKB");
-_LIT(KFSQImeName, "Generic FSQ");
-_LIT(KSSQImeName, "Split View Qwerty");
-
-_LIT(KHwrResourceFormatPattern, "peninputhwrwindowconfiginfo_*.rsc");
-_LIT(KVkbResourceFormatPattern, "peninputvkbwindowconfiginfo_*.rsc");
-_LIT(KSsqResourceFormatPattern, "peninputssqwinconfiginfo_*.rsc");
-
-_LIT(KPluginResourcePath, "z:\\RESOURCE\\Plugins\\");
-
-class TLangMeritPair 
-    {
-public:
-    TInt iLangStart;
-    TInt iLangEnd;
-    TInt iMerit;
-    };
-    
-const TLangMeritPair KSupportLanguages[] = 
-    {
-        {ELangEnglish, ELangAmerican, CAknFepPenInputImePlugin::EImeMerit_Preferred}, //01-10
-        {ELangPortuguese, ELangDutch, CAknFepPenInputImePlugin::EImeMerit_Preferred},//13-18
-        {ELangCzech, ELangSlovenian, CAknFepPenInputImePlugin::EImeMerit_Preferred}, //25-28
-        {ELangThai, ELangThai, CAknFepPenInputImePlugin::EImeMerit_Preferred},//33
-        {ELangArabic, ELangArabic, CAknFepPenInputImePlugin::EImeMerit_Preferred},//37
-        {ELangTagalog, ELangTagalog, CAknFepPenInputImePlugin::EImeMerit_Preferred},//39
-        {ELangBulgarian, ELangBulgarian, CAknFepPenInputImePlugin::EImeMerit_Preferred},//42
-        {ELangCatalan, ELangCatalan, CAknFepPenInputImePlugin::EImeMerit_Preferred},//44
-        {ELangCroatian, ELangCroatian, CAknFepPenInputImePlugin::EImeMerit_Preferred},//45
-        {ELangEstonian, ELangCanadianFrench, CAknFepPenInputImePlugin::EImeMerit_Preferred},//49-51
-        {ELangGreek, ELangGreek, CAknFepPenInputImePlugin::EImeMerit_Preferred},//54
-        {ELangHebrew, ELangIndonesian, CAknFepPenInputImePlugin::EImeMerit_Preferred},//57-59
-        {ELangLatvian, ELangLithuanian, CAknFepPenInputImePlugin::EImeMerit_Preferred},//67 -68
-        {ELangMalay, ELangMalay, CAknFepPenInputImePlugin::EImeMerit_Preferred},//70
-#ifdef RD_MARATHI    
-        {ELangMarathi, ELangMarathi, CAknFepPenInputImePlugin::EImeMerit_Preferred},//72
-#endif        
-        {ELangBrazilianPortuguese, ELangBrazilianPortuguese, CAknFepPenInputImePlugin::EImeMerit_Preferred},//76
-        {ELangRomanian, ELangSerbian, CAknFepPenInputImePlugin::EImeMerit_Preferred},//78 -79
-        {ELangLatinAmericanSpanish, ELangLatinAmericanSpanish, CAknFepPenInputImePlugin::EImeMerit_Preferred},//83
-        {ELangUkrainian, ELangUrdu, CAknFepPenInputImePlugin::EImeMerit_Preferred},//93-94
-        {ELangVietnamese, ELangVietnamese, CAknFepPenInputImePlugin::EImeMerit_Preferred},//96
-        {KLangBasque, KLangGalician, CAknFepPenInputImePlugin::EImeMerit_Preferred},//401,402
-        {ELangKorean, ELangKorean, CAknFepPenInputImePlugin::EImeMerit_Preferred} // 65 tp teleca add-on
-    };
-    
-// -----------------------------------------------------------------------------
-// RImplInfoPtrArray cleanup function
-// -----------------------------------------------------------------------------
-//
-void Cleanup( TAny* aAny )
-    {
-    RImplInfoPtrArray* implArray = 
-        reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-//lint -esym( 960, 58, * ) lint notes: break used outside of a switch
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::NewL
-// Factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginGeneric* CPenInputImePluginGeneric::NewL(TAny* aInitParams)
-    {
-    CPenInputImePluginGeneric* self = new ( ELeave ) CPenInputImePluginGeneric(
-                                        static_cast<RPeninputServer*>( 
-                                            aInitParams ) );
-    CleanupStack::PushL( self );
-    self->ConstructL(); 
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::NewLC
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginGeneric* CPenInputImePluginGeneric::NewLC( 
-    TAny* aInitParams )
-    {
-    CPenInputImePluginGeneric* self = new ( ELeave ) CPenInputImePluginGeneric(
-                                        static_cast<RPeninputServer*>( 
-                                            aInitParams ) );
-    CleanupStack::PushL( self );
-    self->ConstructL(); 
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::~CPenInputImePluginGeneric
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginGeneric::~CPenInputImePluginGeneric()
-    {
-    DeActivate();
-    iUiLayoutImpIdList.Close();
-    delete iPluginUiManager;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginGeneric::GetInputMethodUiL( 
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TLanguage aLanguage, 
-                                        TInt aMode,
-                                        const TDesC8& /*aData*/,
-                                        const TBool aIsSplitView)
-    {
-    iFepManager = aFepManager;
-    iLanguage = aLanguage;
-    CPluginFepManagerBase* fepmanager = NULL;
-    
-    TUid layoutId;
-    TInt i;
-
-    switch ( aMode )
-        {
-        case EPluginInputModeHwr:
-            {
-            if(aLanguage == ELangArabic)
-                {
-                layoutId.iUid = KHwrArabicUiId;                
-                }
-            else
-                {
-                layoutId.iUid = KHwrUiId;
-                }
-            }
-            break; 
-        case EPluginInputModeVkb:
-            {
-            layoutId.iUid = KVkbUiId;
-            }
-            break;
-        case EPluginInputModeFSQ:
-            {
-            if(aIsSplitView)
-                {
-                layoutId.iUid = KSsqUiId;
-                }
-            else
-                {
-                layoutId.iUid = KFsqUiId;
-                }
-            }
-            break;
-        default:
-            return NULL;
-        }
-    fepmanager = GetPluginUiL( aMode );
-    
-    for ( i = 0; i < iUiLayoutImpIdList.Count(); ++i )
-        {
-        if( iUiLayoutImpIdList[i] == layoutId.iUid )
-            {
-            break;
-            }
-        }
-
-    if ( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = aMode;
-        TPtrC8 ptr( (TUint8*)&aMode );
-        
-        TInt errCode;
-       	errCode = iPenInputServer->SetUiLayoutId( layoutId );	
-        	
-        if ( errCode == KErrNone )
-            {
-            fepmanager->OnInit();
-            return fepmanager;
-            }
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginGeneric::GetInputMethodUiL( 
-                                    MAknFepManagerUIInterface* aFepManager,
-                                    TInt aLayoutId,
-                                    const TDesC8& aData )
-    {
-    iFepManager = aFepManager;
-    CPluginFepManagerBase* fepmanager = NULL;   
-    TInt i;
-    TInt mode;    
-    
-    if ( aLayoutId == KHwrUiId )
-        {
-        mode = EPluginInputModeHwr;      
-        }
-    else if( aLayoutId == KVkbUiId )
-        {
-        mode = EPluginInputModeVkb;
-        }
-    else if( aLayoutId == KFsqUiId )
-        {
-        mode = EPluginInputModeFSQ;
-        }
-    else
-        {
-        return NULL;
-        }
-
-    fepmanager = GetPluginUiL( mode );
-    for ( i = 0; i < iUiLayoutImpIdList.Count(); ++i )
-        {
-        if ( iUiLayoutImpIdList[i] == aLayoutId )
-            {
-            break;
-            }
-        }
-
-    if ( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = mode;
-        iPenInputServer->SetUiLayoutId( TUid::Uid( aLayoutId ), aData );
-        fepmanager->OnInit();    
-        return fepmanager;
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::Activate
-// Activate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginGeneric::Activate()
-    {
-    if(iPenInputServer)
-        {
-        iPenInputServer->ActivateLayout(ETrue);        
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::DeActivate
-// Deactivate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginGeneric::DeActivate()
-    {
-    if (iPenInputServer && iPenInputServer->IsVisible())        
-        {
-        iPenInputServer->ActivateLayout(EFalse);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::ImeImplId
-// Get current IME plugin implementation ID.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginGeneric::ImeImplId()
-    {
-    return KInputMethodImplementationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::LayoutUiImplId
-// Get current layout UI implementation id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginGeneric::LayoutUiImplId()
-    {
-    TInt id;
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeHwr:
-            {
-            id = KHwrUiId;
-            }
-            break;
-        case EPluginInputModeVkb:
-            {
-            id = KVkbUiId;
-            }
-            break;
-        case EPluginInputModeFSQ:
-            {
-            id = KFsqUiId;
-            }
-            break;
-        default:
-            {
-            id = KInvalidImplId;
-            }
-            break;
-        }
-    return id;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::SupportModes
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginGeneric::SupportModes(CPtiEngine* aPtiEngine,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    TInt ret = 0;
-    TRAP_IGNORE( ret = SupportModesL( aPtiEngine, aSupportList ) );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::SupportModesL
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool IsFileInDir( CDir* aDir, const TDesC& aFileName )
-    {
-    if( aDir )
-        {
-        for( TInt k = 0; k < aDir->Count(); ++k )
-            {
-            if( aFileName.CompareF( (*aDir)[k].iName ) == 0 )
-                {
-                return ETrue;
-                }
-            }
-        }
-    return EFalse;
-    }
-  
-inline void HwrResNameFromLangId( TFileName& aFileName,  TInt aLang )    
-    {
-    if( aLang < 10 )    
-        {
-        _LIT(KHwrResourceFormat1, "peninputhwrwindowconfiginfo_%02d.rsc"); 
-        aFileName.Format(KHwrResourceFormat1, aLang);               
-        }
-    else
-        {
-        _LIT(KHwrResourceFormat, "peninputhwrwindowconfiginfo_%d.rsc"); 
-        aFileName.Format(KHwrResourceFormat, aLang);               
-        }        
-    }
-    
-inline void VkbResNameFromLangId( TFileName& aFileName,  TInt aLang )    
-    {
-    if( aLang < 10 )    
-        {
-        _LIT(KVkbResourceFormat1, "peninputvkbwindowconfiginfo_%02d.rsc");
-        aFileName.Format(KVkbResourceFormat1, aLang);               
-        }
-    else
-        {
-        _LIT(KVkbResourceFormat, "peninputvkbwindowconfiginfo_%d.rsc");
-        aFileName.Format(KVkbResourceFormat, aLang);               
-        }        
-    }
-    
-inline void SsqResNameFromLangId( TFileName& aFileName,  TInt aLang )    
-    {
-    if( aLang < 10 )    
-        {
-        _LIT(KSsqResourceFormat1, "peninputssqwinconfiginfo%02d.rsc");
-        aFileName.Format(KSsqResourceFormat1, aLang);               
-        }
-    else
-        {
-        _LIT(KSsqResourceFormat, "peninputssqwinconfiginfo%d.rsc");
-        aFileName.Format(KSsqResourceFormat, aLang);               
-        }        
-    }
-    
-TInt CPenInputImePluginGeneric::SupportModesL(CPtiEngine* /*aPtiEngine*/,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const    
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    TBool hwr = EFalse;
-    TBool vkb = EFalse;
-    TBool fsq = EFalse;
-    TBool ssq = EFalse;
-    
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-        
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        if(infoArray[i]->ImplementationUid().iUid == KHwrUiId )
-            {
-            hwr = ETrue;
-            }
-
-        if (infoArray[i]->ImplementationUid().iUid == KVkbUiId
-                && FeatureManager::FeatureSupported(KFeatureIdVirtualKeyboardInput))
-            {
-            vkb = ETrue;
-            }
-            
-        if (infoArray[i]->ImplementationUid().iUid == KFsqUiId
-                && FeatureManager::FeatureSupported(KFeatureIdVirtualFullscrQwertyInput))
-            {
-            fsq = ETrue;
-            }
-            
-        if (infoArray[i]->ImplementationUid().iUid == KSsqUiId
-                && FeatureManager::FeatureSupported(KFeatureIdVirtualFullscrQwertyInput))
-            {
-            ssq = ETrue;
-            } 
-        }
-    
-    TImePlguinImplDetail detail;
-    
-    detail.iImplementationId = KInputMethodImplementationId;
-    if( hwr )
-        {
-        detail.iMode = EPluginInputModeHwr;
-        detail.iDisplayName.Copy(KHwrImeName());      
-      	TFindFile fileFinder(CCoeEnv::Static()->FsSession());
-      	TFileName resName;
-      	CDir* dir = NULL;
-      	TInt result = fileFinder.FindWildByDir( KHwrResourceFormatPattern, 
-                                                KPluginResourcePath, dir );
-      	if( result == KErrNone )
-      	    {
-            for(TInt i = 0; i < sizeof(KSupportLanguages)/sizeof(TLangMeritPair); ++i )
-                {
-                for(TInt j =  KSupportLanguages[i].iLangStart; 
-                    j <=  KSupportLanguages[i].iLangEnd; ++j)
-                    {
-                    HwrResNameFromLangId( resName, j);
-                    if( IsFileInDir( dir, resName ) )
-                        {
-                        detail.iLanguage = j;
-                        detail.iMeritValue = KSupportLanguages[i].iMerit;
-                        aSupportList.Append(detail);
-                        }
-                    }
-                }
-                
-      	    }
-  	    delete dir;
-        }
-
-    if( vkb || fsq )
-        {
-      	TFindFile fileFinder(CCoeEnv::Static()->FsSession());
-      	TFileName resName;
-      	CDir* dir = NULL;
-      	TInt result = fileFinder.FindWildByDir( KVkbResourceFormatPattern, 
-                                                KPluginResourcePath, dir );
-      	
-      	if( vkb )
-      	    {
-            detail.iMode = EPluginInputModeVkb;
-            detail.iDisplayName.Copy(KVkbImeName());      
-            for(TInt i = 0; i < sizeof(KSupportLanguages)/sizeof(TLangMeritPair); ++i )
-                {
-                for(TInt j =  KSupportLanguages[i].iLangStart; 
-                    j <=  KSupportLanguages[i].iLangEnd; ++j)
-                    {
-                    VkbResNameFromLangId( resName, j);
-                    if( IsFileInDir( dir, resName ) )
-                        {
-                        detail.iLanguage = j;
-                        detail.iMeritValue = KSupportLanguages[i].iMerit;
-                        aSupportList.Append(detail);
-                        }
-                    }
-                }
-      	    }
-        
-        if( fsq )
-            {
-            detail.iMode = EPluginInputModeFSQ;
-            detail.iDisplayName.Copy(KFSQImeName());      
-            for(TInt i = 0; i < sizeof(KSupportLanguages)/sizeof(TLangMeritPair); ++i )
-                {
-                for(TInt j =  KSupportLanguages[i].iLangStart; 
-                    j <=  KSupportLanguages[i].iLangEnd; ++j)
-                    {
-                    VkbResNameFromLangId( resName, j);
-                    if( IsFileInDir( dir, resName ) )
-                        {
-                        detail.iLanguage = j;
-                        detail.iMeritValue = KSupportLanguages[i].iMerit;
-                        aSupportList.Append(detail);
-                        }
-                    }
-                }
-            }
-            
-        delete dir;
-        }
-        
-    if( ssq )
-        {
-        detail.iMode = EPluginInputModeFSQ;
-        detail.iDisplayName.Copy(KSSQImeName());      
-      	TFindFile fileFinder(CCoeEnv::Static()->FsSession());
-      	TFileName resName;
-      	CDir* dir = NULL;
-      	TInt result = fileFinder.FindWildByDir( KSsqResourceFormatPattern, 
-                                                KPluginResourcePath, dir );
-      
-        for(TInt i = 0; i < sizeof(KSupportLanguages)/sizeof(TLangMeritPair); ++i )
-            {
-            for(TInt j =  KSupportLanguages[i].iLangStart; 
-                j <=  KSupportLanguages[i].iLangEnd; ++j)
-                {
-                SsqResNameFromLangId( resName, j);
-                if( IsFileInDir( dir, resName ) )
-                    {
-                    detail.iLanguage = j;
-                    detail.iMeritValue = KSupportLanguages[i].iMerit;
-                    aSupportList.Append(detail);
-                    }
-                }
-            }
-        delete dir;
-        }    
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray    
-    
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::CurrentMode
-// Get current layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginGeneric::CurrentMode() const
-    {
-    return iPenInputMode;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::HandleServerEventL
-// Handle pen input server event..
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginGeneric::HandleServerEventL( TInt aEventId, const TDesC& aData )
-    {
-    TBool bHandled = EFalse;
-    switch ( aEventId )
-        {
-        case ESignalLayoutICFLengthChanged:
-            {
-            GetCurrentUi()->RetrieveEditorMaxLength();
-            }
-            break;
-        case ESignalCaseMode:
-            {
-            TInt data = *(TInt*)( aData.Ptr() );
-            ASSERT( data >= 0 );
-            //lint !e728
-            GetCurrentUi()->UpdateCaseMode( data ); 
-            }
-            break;
-        default:
-            break;
-        }
-        
-    return bHandled;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::HandleMenuCommandL
-// Handle the menu command.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginGeneric::HandleMenuCommandL( TInt /*aCommandId*/ )
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::DynInitMenuPaneL
-// Dynamiclly update menu items during it displays.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginGeneric::DynInitMenuPaneL( CAknFepUiInterfaceMenuPane* aMenuPane )
-    {
-    TInt currentLanguage = iPluginUiManager->InputLanguage();
-    TBool isDimTraining = ETrue;
-    TInt count = sizeof(KTruiSupportedLanguages)/sizeof(TInt);
-    for(TInt i = 0; i < count; i++)
-        {
-        if(currentLanguage == KTruiSupportedLanguages[i])
-            {
-            isDimTraining = EFalse;
-            break;
-            }
-        }
-    if(isDimTraining)
-        {
-        aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::CPenInputImePluginGeneric
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginGeneric::CPenInputImePluginGeneric( RPeninputServer* aHwrServer )
-    :iPenInputServer( aHwrServer ) 
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::ConstructL
-// 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginGeneric::ConstructL()
-    {
-    FindUiLayoutImplementationL();
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::FindUiLayoutImplementationL
-// Enumuate all layout UI ids.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginGeneric::FindUiLayoutImplementationL()
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-
-    iUiLayoutImpIdList.Reset();
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL( id, infoArray );
-        
-    for ( TInt i = 0; i < infoArray.Count(); ++i )
-        {
-        iUiLayoutImpIdList.AppendL( infoArray[i]->ImplementationUid().iUid );
-        }
-
-    CleanupStack::PopAndDestroy( &infoArray ); // infoArray    
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginGeneric::GetPluginUiL
-// Get HWR UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase* CPenInputImePluginGeneric::GetPluginUiL( TInt aMode )
-    {
-    delete iPluginUiManager;
-    iPluginUiManager = NULL;
-    
-    switch ( aMode )
-        {
-        case EPluginInputModeHwr:
-            {
-            return iPluginUiManager = CPluginFepManagerHwr::NewL(*this, iPenInputServer);
-            }
-        case EPluginInputModeVkb:
-        case EPluginInputModeFSQ:
-            {
-            return iPluginUiManager = CPluginFepManagerVkb::NewL(*this, iPenInputServer);
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingenericmain.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to E32Dll
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <e32base.h>
-
-/** DLL Entry point */
-#ifndef EKA2
-GLDEF_C TInt E32Dll( TDllReason /*aReason*/ )
-    {
-    return( KErrNone );
-    }
-#endif
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingenericproxy.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to Proxy
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32std.h>
-#include <implementationproxy.h>
-
-// User includes
-#include "peninputimeplugingeneric.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    //lint !e611    
-    IMPLEMENTATION_PROXY_ENTRY( 0x1028235F, CPenInputImePluginGeneric::NewL ) 
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
-    return ImplementationTable;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,824 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class implementation
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <w32std.h>
-#include <s32mem.h> 
-#include <aknedsts.h>               // CAknEdwinState
-#include <centralrepository.h>
-#include <AknUtils.h> 
-
-#include <peninputclient.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepInternalCRKeys.h>
-#include <peninputcommonlayoutglobalenum.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-#include "peninputimeplugingeneric.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::~CPluginFepManagerBase()
-    {
-    delete iRepository;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::OnInit
-// Initalize UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::OnInit()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::RetrieveEditorMaxLength
-// Explicitly get ICF max length from layout UI .
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::RetrieveEditorMaxLength()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::UpdateCaseMode
-// Update local copy of case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::UpdateCaseMode( TInt aCaseMode )
-    {
-    iLastCase = aCaseMode; 
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNumberModeKeyMappingL
-// Set layout UI current number mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNumberModeKeyMappingL( 
-    TAknEditorNumericKeymap aAknEditorNumericKeymap )
-    {
-    SendCommandToServer( ECmdPenInputEditorNumericKeyMap, 
-                         aAknEditorNumericKeymap );    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleKeyL
-// Handle key event.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/ )
-    {
-    return iHkbUi->HandleKeyL( aKey, aLength );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL( TInt aCommandId )
-    {
-    SendCommandToServer( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    switch ( aCommandId )
-        {
-        case ECmdPenInputRange:
-            {
-            iHkbMode = aParam;
-            if ( iHkbMode == ENativeNumber && !SupportNativeNumberRange() )
-                {
-                iHkbMode = ENumber;
-                }
-            }
-            break;
-        case ECmdPenInputPermittedRange:
-            {
-            iLastCase = ECaseInvalide;
-            SetLayoutPermitedRanges( aParam );
-            }
-            break;
-        case ECmdPenInputEditorState:
-            {
-            CAknEdwinState* state = 
-                reinterpret_cast<CAknEdwinState*>( aParam );
-            SetLayoutRange( state );
-            }
-            break;
-        case ECmdPenInputSetWindowPos:
-            {
-            TRect* rect = reinterpret_cast<TRect*>( aParam );
-            ASSERT( rect );
-            SetLayoutPosition( *rect );
-            }
-            break;
-        case ECmdPenInputCaseMode:
-            //if( aParam != iLastCase )
-                {
-                SendCommandToServer( ECmdPenInputCase, aParam );
-                iLastCase = aParam;
-                }
-            break;
-        case ECmdPenInputEditorCustomNumericKeyMap:
-            {
-            TDesC* res = (TDesC*)aParam;
-            TPtrC8 param;
-            param.Set((TUint8*)res->Ptr(), res->Size());
-            SendCommandToServer( aCommandId, param ); 
-            SetNumberModeKeyMappingL((TAknEditorNumericKeymap)EKeymapFromResource);
-            }
-            break;
-        case ECmdPenInputSuggestRange:
-            iSuggestedRange = aParam;
-            if( iSuggestedRange == ERangeAccent )
-                {
-                iSuggestedRange = ERangeEnglish;
-                }
-            break;
-        case ECmdPenInputSendEditorTextAndCurPos:
-            {    
-            TFepInputContextFieldData* pIcfData = 
-                reinterpret_cast<TFepInputContextFieldData*>( aParam );
-                       
-            TInt dataSize = sizeof( TFepInputContextFieldData );
-            TInt textSize = pIcfData->iText.Size();
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pIcfData );
-			writeStream.WriteL( pData, dataSize );
-        		
-    		const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
-		    writeStream.WriteL( pText, textSize );
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-	     case ECmdPenInputSetPromptText:
-            {
-            TFepPromptText* pPromptData = 
-                reinterpret_cast<TFepPromptText*>( aParam );
-                
-            TInt dataSize = sizeof( TFepPromptText );
-            TInt textSize = 0;
-            
-            if (pPromptData->iText.Length())
-                {
-                textSize = pPromptData->iText.Size();
-                }
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pPromptData );
-			writeStream.WriteL( pData, dataSize );
-        	
-        	if (textSize != 0)
-        	    {
-                const TUint16* pText = pPromptData->iText.Ptr();
-    		    writeStream.WriteL( pText, textSize/2 );
-        	    }
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputPopupTooltip:
-            {
-            TPtrC* tooltipTextPtr = reinterpret_cast<TPtrC*>( aParam );
-            HBufC8* buf8 = HBufC8::NewLC
-                         ( sizeof( TInt ) + tooltipTextPtr->Size() );
-            TPtr8 buf8Ptr = buf8->Des();
-            RDesWriteStream writeStream;
-            CleanupClosePushL(writeStream);
-            writeStream.Open( buf8Ptr );
-            writeStream.WriteInt32L( tooltipTextPtr->Size() );
-            writeStream.WriteL( tooltipTextPtr->Ptr(), tooltipTextPtr->Length() );
-            writeStream.CommitL();
-            CleanupStack::PopAndDestroy( &writeStream );                        
-            SendCommandToServer( aCommandId, buf8Ptr );            
-            CleanupStack::PopAndDestroy( buf8 );
-            break;
-            }
-        case ECmdPenInputPopupCandidateList:
-            {
-            TFepITICandidateList* candidatelist 
-                               = reinterpret_cast<TFepITICandidateList*>( aParam );            
-            CDesCArray* itemArray = candidatelist->iItemArray;
-            if ( itemArray )
-                {           
-                TInt sumSize = 0;     
-                for ( TInt i = 0; i < itemArray->Count(); i++ )
-                    {
-                    sumSize += (*itemArray)[i].Size();
-                    }
-                HBufC8* buf8 = HBufC8::NewLC( sizeof(TInt) // For active index
-                                             + sizeof(TInt) // For the count of item array
-                                             + sizeof(TInt)*( itemArray->Count() ) // For the size of each item
-                                             + sumSize// For all of char data 
-                                             );
-                TPtr8 buf8Ptr = buf8->Des();
-                RDesWriteStream writeStream;
-                CleanupClosePushL(writeStream);                
-                writeStream.Open( buf8Ptr );                
-                writeStream.WriteInt32L( candidatelist->iActiveIndex );
-                writeStream.WriteInt32L( itemArray->Count() );                
-                for ( TInt i = 0; i < itemArray->Count(); i++  )
-                    {
-                    writeStream.WriteInt32L( (*itemArray)[i].Size() );
-                    writeStream.WriteL( (*itemArray)[i].Ptr(), (*itemArray)[i].Length() );
-                    }
-                writeStream.CommitL();                 
-                CleanupStack::PopAndDestroy( &writeStream );
-                SendCommandToServer( aCommandId, buf8Ptr );
-                CleanupStack::PopAndDestroy( buf8 );
-                }            
-            break;
-            }
-        default:
-            SendCommandToServer( aCommandId, aParam );
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CloseUI
-// Close plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::CloseUI()
-    {
-    iPenInputServer->ActivateLayout( EFalse );  
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ActivateUI
-// Activate plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ActivateUI()
-    {
-    iPenInputServer->ActivateLayout( ETrue );    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::EditorMaxLength
-// Get max text length of layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::EditorMaxLength()
-    {
-    return iMaxEditorLength;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SizeChanged
-// Handle screen size changed.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ResourceChanged(TInt aType)
-    {
-    iPenInputServer->ResourceChanged(aType);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNextFepUI
-// Set underlining UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNextFepUI( MAknFepManagerInterface* aNextUi )
-    {
-    iHkbUi = aNextUi;    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SupportLanguage
-// Get support language in sepecfied mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::SupportLanguage( TInt /*aMode*/ ) const
-    {
-    return iLanguage;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetInputLanguageL
-// Set current language.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetInputLanguageL( TLanguage aLanguage )
-    {
-    iLanguage = aLanguage;
-    //maybe language check is needed.
-    TInt lang = (TInt)aLanguage;
-    ASSERT( lang >=0 );
-    SendCommandToServer( ECmdPenInputLanguage, lang );       
-    }
-
-TInt CPluginFepManagerBase::InputLanguage()
-    {
-    return iLanguage;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetFepAwareEditorText
-// Set editor text and cursor information to layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetFepAwareEditorText( 
-    const TFepInputContextFieldData& aIcfData )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode, TInt aKeyboardType)
-#else
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode )
-#endif    
-    {
-    iHkbUi->SetMode( aMode, aPredictive, aQwertyInputMode );
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool CPluginFepManagerBase::IsValidFnKeyPress() const
-    {
-    return EFalse;
-    }
-    TBool CPluginFepManagerBase::IsValidLongChrKeyPress() const
-    {
-    return EFalse;
-    }
-#endif
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI current case.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetCase( TCase aCase )
-    {
-    iHkbUi->SetCase( aCase );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ExpireMultitapTimer
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ExpireMultitapTimer()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidNumericLongKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidNumericLongKeyPress( TInt /*aKey*/ ) const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::AddTextToUserDictionaryL
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::AddTextToUserDictionaryL( const TDesC& /*aText*/ )
-    {
-    }
-       
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetFormatOfFepInlineText
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::GetFormatOfFepInlineText( 
-                                TCharFormat& /*aFormat*/, 
-                                TInt& /*aNumberOfCharactersWithSameFormat*/, 
-                                TInt /*aPositionOfCharacter*/ ) const
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidShiftKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidShiftKeyPress() const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetEditorContext( TInt /*aContext*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetStarKeyFlag( TBool /*aSet*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::CPluginFepManagerBase( CPenInputImePluginGeneric& aOwner,
-                                             RPeninputServer* aPenInputServer )
-    :iOwner( aOwner ), iPenInputServer( aPenInputServer )
-    {
-    iSuggestedRange = ERangeInvalid;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::BaseConstructL
-// Symbian 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::BaseConstructL()
-    {
-    iRepository = CRepository::NewL( KCRUidAknFep );
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPermitedRanges
-// Set layout permited ranges.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPermitedRanges( TInt aPermittedMode )
-    {
-    iPermittedMode = aPermittedMode;
-    
-    // Not derived from edwin
-    if ( aPermittedMode == EAknEditorNumericInputMode ) 
-        {
-		if ( SupportNativeNumberRange() )
-		    {
-		    iPermittedRange = ERangeNativeNumber;
-		    }
-		iPermittedRange |= ERangeNumber;
-        }
-        
-    else if ( aPermittedMode & EAknEditorTextInputMode )
-        {
-        // Derived from edwin and EAknEditorTextInputMode
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol |
-						  ERangeNativeNumber;
-        }
-    else if ( aPermittedMode & EAknEditorSecretAlphaInputMode ) 
-        {
-        // Derived from EAknEditorSecretAlphaInputMode 
-        iPermittedRange = ERangeNumber |
-                          ERangeEnglish | 
-                          ERangeSymbol;        
-        }
-    else
-        {
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol |
-						  ERangeNativeNumber;
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutRange( 
-    const CAknEdwinState* aEditorState )
-    {
-    //calculate permitted ranges
-    if(aEditorState)
-        {
-        if( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly )
-            {
-            iPermittedRange &= ~ERangeNative;
-			iPermittedRange &= ~ERangeNativeNumber;
-            }      
-        if ( iPermittedMode != EAknEditorNumericInputMode 
-            && !SupportLatinRange() 
-            && !( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly ) )
-            {
-		    iPermittedRange &= ~ERangeEnglish;
-            }
-        }
-    else
-        {
-        if ( iPermittedMode == EAknEditorNumericInputMode )
-            {
-            if( iHkbMode == ENumber )
-                {
-                iPermittedRange = ERangeNumber;
-                }
-            else if ( iHkbMode == ENativeNumber )
-                {
-                iPermittedRange = ERangeNativeNumber;
-                } 
-            }
-        }
-
-    SendCommandToServer( ECmdPenInputPermittedRange, iPermittedRange );
-    
-    TInt priRange;
-    
-    switch( iHkbMode )
-        {
-        case ECangJie:
-        case EStrokeFind:
-        case EStroke:
-        case EPinyin:
-        case EZhuyin:
-        case EZhuyinFind:
-        case EHindi:
-            {
-            priRange = ERangeNative;
-            }
-            break;                 
-        case ENumber:
-            {
-            priRange = ERangeNumber;
-            }
-            break;  
-        case ENativeNumber:
-            {
-            priRange = ERangeNativeNumber;
-            }
-            break;  
-        case EPRCFind:
-        case ELatin:
-        case ELatinText:
-        case ELatinUpper:
-        case ELatinLower:
-            if ( iLanguage == ELangHindi)
-                {
-                priRange = ERangeEnglish;
-                }
-            else
-                {
-                priRange = iPermittedRange & ERangeNative ? ERangeNative : ERangeEnglish;
-                }
-            break;
-        default:
-            {
-            priRange = iPermittedRange & ERangeNative ? ERangeNative : ERangeEnglish;
-            }
-            break;               
-        }
-     
-    if( iSuggestedRange != ERangeInvalid && (iSuggestedRange & iPermittedRange) )
-        {
-        priRange = iSuggestedRange;
-        iSuggestedRange = ERangeInvalid;
-        }
-    SendCommandToServer( ECmdPenInputRange, priRange );  
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId )
-    {
-    iPenInputServer->HandleCommand( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, TInt aParam )
-    {
-    TBuf8<sizeof(TInt)> buf;
-    buf.Append( (TUint8*)&aParam, sizeof(TInt) );    
-    SendCommandToServer( aCommandId, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, 
-                                                 const TDesC8& aParam )
-    {
-    iPenInputServer->HandleCommand( aCommandId, aParam );        
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::LayoutLastUsedRange
-// Get layout UI last used range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::LayoutLastUsedRange()
-    {
-    TInt value = 0;
-    if ( iRepository )
-        {
-        iRepository->Get( KAknFepLastUsedRange, value );
-        }
-        
-    return value;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPosition
-// Set layout UI position.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPosition( const TRect& pParam )
-    {
-    TBuf8<sizeof( TRect )> buf;
-    buf.Append( (TUint8*)&pParam, sizeof( pParam ) );
-    
-    SendCommandToServer( ECmdPenInputSetWindowPos, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetLocalLanguage
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TLanguage CPluginFepManagerBase::GetLocalLanguage( 
-    const CAknEdwinState* aEditorState ) const
-    {
-    TLanguage language = ELangTest;
-    // Check for a local language override
-    if ( aEditorState )
-        {
-        TInt aknEditorFlags = aEditorState->Flags()	;
-        if ( aknEditorFlags & EAknEditorFlagLatinInputModesOnly )
-            {
-            language = ELangEnglish;
-            }
-        else
-            {
-            language = aEditorState->LocalLanguage();
-            }
-        }
-
-    return language;
-    }
-
-TBool CPluginFepManagerBase::SupportLatinRange()
-    {
-	if ( iLanguage == ELangRussian || iLanguage == ELangBulgarian ||
-         iLanguage == ELangUkrainian || iLanguage == ELangHebrew )
-		 {
-		 return EFalse;
-		 }
-		 
-	if ( iLanguage == ELangGreek )
-		 {
-		 return EFalse;
-		 }
-		 
-	if ( iLanguage == ELangArabic || iLanguage == ELangFarsi ||
-         iLanguage == ELangUrdu || iLanguage == ELangThai )
-		 {
-		 return EFalse;
-		 }
-
-	if ( iLanguage == ELangHindi || iLanguage == ELangMarathi )
-		 {
-		 return ETrue;
-		 }	
-		
-    return ETrue;	 		 		 
-	}
-	
-
-TBool CPluginFepManagerBase::SupportNativeNumberRange()
-    {
-	if ( iLanguage == ELangArabic || iLanguage == ELangFarsi ||
-         iLanguage == ELangUrdu || iLanguage == ELangHindi ||
-         iLanguage == ELangThai )
-		 {
-		 return ETrue;
-		 }
-		
-    return EFalse;	 		 		 
-	}	
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerhwr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            HWR layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknfeppeninputenums.h>
-#include <aknedsts.h>               // CAknEdwinState
-
-// User includes
-#include "pluginfepmanagerhwr.h"
-#include "peninputimeplugingeneric.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::NewL
-// Factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr* CPluginFepManagerHwr::NewL( 
-    CPenInputImePluginGeneric& aOwner, RPeninputServer* aPenInputServer )
-    {
-    CPluginFepManagerHwr* self = new ( ELeave ) CPluginFepManagerHwr( aOwner,
-                                     aPenInputServer );
-    CleanupStack::PushL( self );
-    self->BaseConstructL(); 
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetNumberModeKeyMappingL
-// Set layout UI current number mode key mapping.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetNumberModeKeyMappingL( 
-    TAknEditorNumericKeymap aAknEditorNumericKeymap )
-    {
-    iNumberKeyMapping = aAknEditorNumericKeymap;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::HandleCommandL( TInt aCommandId, TInt aParam )
-    {
-    if( aCommandId == ECmdPenInputSetWindowPos )
-        {
-        return;
-        }
-    CPluginFepManagerBase::HandleCommandL( aCommandId, aParam );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::CPluginFepManagerHwr
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr::CPluginFepManagerHwr( CPenInputImePluginGeneric& aOwner,
-                                           RPeninputServer* aPenInputServer )
-    :CPluginFepManagerBase( aOwner, aPenInputServer )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetLayoutRange( const CAknEdwinState* aEditorState )
-    {
-    CPluginFepManagerBase::SetLayoutRange( aEditorState );
-    
-    //set number key mapping
-    #if 0
-    if ( iPermittedRange == ERangeNumber)        
-        {
-        SendCommandToServer( ECmdPenInputEditorNumericKeyMap, 
-                             iNumberKeyMapping );    
-        }
-    else
-        {
-        //for alphanumeric editor, always use EAknEditorAlphanumericNumberModeKeymap
-        SendCommandToServer( ECmdPenInputEditorNumericKeyMap, 
-                             EAknEditorAlphanumericNumberModeKeymap );    
-        }
-    #endif
-    SendCommandToServer( ECmdPenInputEditorNumericKeyMap, 
-                             iNumberKeyMapping );           
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagervkb.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            VKB layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknedsts.h>               // CAknEdwinState
-
-// User includes
-#include "pluginfepmanagervkb.h"
-#include "peninputimeplugingeneric.h"
-#include "eikon.hrh"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::NewL
-// Factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb* CPluginFepManagerVkb::NewL( 
-    CPenInputImePluginGeneric& aOwner, RPeninputServer* aPenInputServer )
-    {
-    CPluginFepManagerVkb* self = new ( ELeave ) CPluginFepManagerVkb(
-         aOwner, aPenInputServer );
-    CleanupStack::PushL( self );
-    self->BaseConstructL(); 
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::CPluginFepManagerVkb
-// constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb::CPluginFepManagerVkb( CPenInputImePluginGeneric& aOwner,
-                                            RPeninputServer* aPenInputServer )
-    :CPluginFepManagerBase( aOwner, aPenInputServer )
-    {
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/srcdata/1028235F.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 1028 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:            Resource definitions for project peninputimeplugingeneric
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = 0x1028235F;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = 0x10207363;
-            implementations = 
-                {
-                // Info for CImplementation1
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x1028235F;
-                    version_no = 1;
-                    display_name = "Generic touch input method plugin";
-                    //supported language
-                    default_data = "1||16||33||37||42||50||54||57||93||94||96";
-                    //supported IME impl id
-                    opaque_data= "16||33||37||42||50||54||57||93||94||96";
-                    }
-                };
-            }
-        };
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Build information file for project peninputimeplugingeneric
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-	
-PRJ_MMPFILES
-
-../group/peninputimepluginitut.mmp
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/group/peninputimepluginitut.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Project definition file for project peninputimepluginitut
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET      peninputimepluginitut.dll
-TARGETTYPE  plugin
-UID         0x10009D8D 0x2000B133
-
-CAPABILITY  CAP_ECOM_PLUGIN
-VENDORID    VID_DEFAULT
-
-SOURCEPATH  ../src
-
-SOURCE      peninputimepluginitutproxy.cpp
-SOURCE      peninputimepluginitut.cpp
-SOURCE      pluginfepmanagerbase.cpp
-SOURCE      pluginfepmanageritut.cpp
-
-USERINCLUDE     ../inc 
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   /epoc32/include/ecom
-SYSTEMINCLUDE   ../../../../../inc
-
-SOURCEPATH      ../srcdata
-
-START RESOURCE 2000B133.rss
-#ifdef SYMBIAN_SECURE_ECOM 
-TARGET peninputimepluginitut.rsc                                                             
-#endif
-END
-
-
-LIBRARY euser.lib 
-LIBRARY ECom.lib
-LIBRARY centralrepository.lib 
-LIBRARY eikcoctl.lib 
-LIBRARY cone.lib 
-LIBRARY efsrv.lib
-LIBRARY estor.lib 
-
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY         peninputclient.lib
-#else
-LIBRARY         peninputserverstub.lib
-#endif
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitut.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,293 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            input mode plugin header file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PENINPUTIMEPLUGINITUT_H
-#define C_PENINPUTIMEPLUGINITUT_H   
-
-// System includes
-#include <e32base.h>
-#include <peninputclient.h>
-#include <aknfeppeninputimeplugin.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-//#include <AknFepManagerUIInterface.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-
-// Forward declaration
-class MAknFepManagerInterface;
-class CAknEdwinState;
-class CRepository;
-class CPluginFepManagerBase;
-
-/**
- *  Pen input mode plugin chinese implementation
- *
- *  @lib peninputimeplugingeneric.lib
- *  @since S60 v3.2
- */
-class CPenInputImePluginItut : public CAknFepPenInputImePlugin
-    {
-public:
-
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aInitParams Init data plugin, actually it is 
-     *        a pointer of RPeninputServer.
-     * @return Pointer to created CPenInputImePluginItut object
-     */
-    static CPenInputImePluginItut* NewL( TAny* aInitParams );
-
-    static CPenInputImePluginItut* NewLC( TAny* aInitParams );
-
-    /**
-     * Destructor.
-     */
-    ~CPenInputImePluginItut();
-
-public: // From CAknFepPenInputImePlugin
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL( 
-                            MAknFepManagerUIInterface* aFepManager,
-                            TLanguage aLanguage,
-                            TInt aMode,
-                            const TDesC8& aData,
-                            const TBool aIsSplitView = EFalse );
-
-    /**
-     * Get layout UI interface
-     * 
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL( 
-                            MAknFepManagerUIInterface* aFepManager, 
-                            TInt aLayoutId, 
-                            const TDesC8& aData );
-
-    /**
-     * Activate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void Activate();
-
-    /**
-     * Deactivate current IME plugin.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void DeActivate();
-
-    /**
-     * Get current IME plugin implementation ID.
-     * 
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    TInt ImeImplId();
-
-    /**
-     * Get current layout UI implementation id.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TInt LayoutUiImplId();
-
-    /**
-     * Handle pen input server event.
-     * 
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TBool HandleServerEventL( TInt aEventId, const TDesC& aData );
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-     TInt SupportModes(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-
-    /**
-     * Get current layout UI mode.
-     * 
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-     TInt CurrentMode() const;
-
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if 
-     * this function return EFalse, FEP handles it defaultly.
-     * 
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command; 
-     *         EFalse otherwise.
-     */
-    TBool HandleMenuCommandL( TInt aCommandId );
-
-    /**
-     * Dynamiclly update menu items during it displays. 
-     * 
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    void DynInitMenuPaneL( CAknFepUiInterfaceMenuPane* aMenuPane );
-    
-public:
-
-    enum TScriptIndex
-        {
-        ELatinLang,
-        ECyrillicLang,
-        EGreekLang,
-        EHebrewLang,
-        EArabicLang,
-        EFarsiLang,
-        EUrduLang,
-        EThaiLang,
-        EChnLang,
-        EIndicLang
-        };
-        
-private:        
-    
-    /**
-     * C++ default constructor.
-     *
-     * @param aServer Pen input server pointer
-     */
-    CPenInputImePluginItut( RPeninputServer* aServer );
-    
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     *
-     * @return None
-     */
-    void ConstructL();
-
-    /**
-     * Enumuate all layout UI ids and save them to iUiLayoutImpIdList.
-     *
-     * @return None
-     */
-    void FindUiLayoutImplementationL();
-    
-    /**
-     * Get plugin UI interface
-     *
-     * @return plugin UI pointer
-     */
-    CPluginFepManagerBase* GetPluginUiL( TInt aMode );
-    
-    /**
-     * Get current UI interface
-     *
-     * @return current UI pointer
-     */
-    inline CPluginFepManagerBase* GetCurrentUi();
-        
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-    TInt SupportModesL(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-
-    static const TDesC& ResFileNameByScriptIdx(const TScriptIndex aIndex);
-
-    static const TDesC& ResFileNameByScriptIdxForSplit(const TScriptIndex aIndex);
-
-private:
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RArray<TInt> iUiLayoutImpIdList;
-
-    /**
-     * Current layout UI mode.
-     */
-    TInt iPenInputMode;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    CPluginFepManagerBase* iPluginUiManager;
-    };
-
-#include "peninputimepluginitut.inl"
-
-#endif // C_PENINPUTIMEPLUGINITUT_H
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitut.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Inline file for Ime plugin China.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-const TInt KHwrLayoutInterfaceId = 0x102072FC; // This is for layout interface
-const TInt KInputMethodImplementationId = 0x2000B133;
-// modified by txin in 2007.06.04, change vkb's implementation uid to finger's
-const TInt KItutUiId = 0x2000b101;
-const TInt KSplitItutUiId = 0x2001E2BA;
-// end modifying
-
-
-inline CPluginFepManagerBase* CPenInputImePluginItut::GetCurrentUi()
-    {
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeHwr:
-        case EPluginInputModeVkb:
-        case EPluginInputModeItut:
-            return iPluginUiManager;
-        default:
-            return NULL;
-        }
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/inc/peninputimepluginitutdebug.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Debug utils API
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINCHSDEBUG_H
-#define PENINPUTIMEPLUGINCHSDEBUG_H
- 
-#ifdef _DEBUG
-    #define PRINT( txt )                    RDebug::Print( txt );
-    #define PRINTF( txt )                   RDebug::Print txt;
-    #define PRINT1( txt, arg1 )             RDebug::Print( txt, arg1 );
-    #define PRINT2( txt, arg1, arg2 )       RDebug::Print( txt, arg1, arg2 );
-    #define PRINT3( txt, arg1, arg2, arg3 ) RDebug::Print( txt, arg1, arg2, arg3 ); 
-#else 
-    #define PRINT( txt ) 
-    #define PRINTF( txt )                    
-    #define PRINT1( txt, arg1 ) 
-    #define PRINT2( txt, arg1, arg2 ) 
-    #define PRINT3( txt, arg1, arg2, arg3 ) 
-#endif
-
-
-// Record into log files
-#define USE_FILE_LOGGER
-
-#if defined (_DEBUG) && !defined(USE_FILE_LOGGER)                   
-    #define USE_SERIAL_LOGGER 
-#endif
-                                    
-#if defined (USE_FILE_LOGGER)
-    #include <flogger.h>
-    _LIT(KLogFile,"imepluginchn.txt");
-    _LIT(KLogFolder,"peninputime");
-    #define LOGTEXT(AAA)                RFileLogger::Write(KLogFolder(), \
-                                                           KLogFile(), \
-                                                           EFileLoggingModeAppend, \
-                                                           AAA)
-    #define LOGTEXT2(AAA,BBB)           RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB, \
-                                                                 CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) RFileLogger::HexDump(KLogFolder(), \
-                                                             KLogFile(), \
-                                                             EFileLoggingModeAppend, \
-                                                             AAA,\
-                                                             BBB,\
-                                                             CCC,\
-                                                             DDD)    
-#elif defined (USE_SERIAL_LOGGER) 
-    #include <e32svr.h>
-    #define LOGTEXT(AAA)                RDebug::Print(AAA)
-    #define LOGTEXT2(AAA,BBB)           RDebug::Print(AAA,BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RDebug::Print(AAA,BBB,CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD)
-#else
-    #define LOGTEXT(AAA)                
-    #define LOGTEXT2(AAA,BBB)           
-    #define LOGTEXT3(AAA,BBB,CCC)       
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) 
-#endif      
-
-#endif      // PENINPUTIMEPLUGINCHSDEBUG   
-            
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/inc/pluginfepmanagerbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,474 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERBASE_H
-#define C_PLUGINFEPMANAGERBASE_H
-
-// System includes
-#include <e32base.h>
-#include <frmtlay.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-#include <peninputcmd.h>
-
-//Forward declaration
-class CPenInputImePluginItut;
-class RPeninputServer;
-class CAknEdwinState;
-class CRepository;
-/**
- *  CPluginFepManagerBase is the layout UI interface base class. 
- *  It is something like a "proxy" class of layout UI plugin, sending
- *  commands from FEP to layout UI plugin.
- *
- *  @lib peninputimepluginitut.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerBase: public CBase, public MAknFepManagerInterface
-    {
-public: 
-
-    /**
-     * Destructor.
-     */
-    ~CPluginFepManagerBase();
-
-    /**
-     * Initalize UI when first time starting up. 
-     * The first time means when the instance created.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void OnInit();
-
-    /**
-     * Explicitly get ICF max length from layout UI and save the 
-     * value to iMaxEditorLength.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void RetrieveEditorMaxLength();
-
-    /**
-     * Update local copy of case mode when 
-     * user change case in layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCaseMode The case mode to save locally.
-     * @return None.
-     */
-    void UpdateCaseMode( TInt aCaseMode );
-
-// From MAknFepManagerInterface
-
-    /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-    void SetNumberModeKeyMappingL( TAknEditorNumericKeymap aAknEditorNumericKeymap );
-
-    /**
-     * Handle key event.
-     * Since most plugin layout UIs are based on animation, they receive 
-     * key and process key events before this function. 
-     * 
-     * @since S60 v3.2
-     *
-     * @param aKey Key event code.
-     * @param aLength Key press length.
-     * @return ETrue if processed, EFalse otherwise.
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @return None
-     */
-    void HandleCommandL( TInt aCommandId );
-
-    /**
-     * Handle command come from FEP.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL( TInt aCommandId, TInt aParam );
-
-    /**
-     * Close plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void CloseUI();
-
-    /**
-     * Activate plugin layout UI.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ActivateUI();
-
-    /**
-     * Get max text length of layout UI ICF control.
-     * 
-     * @since S60 v3.2
-     * @return Max ICF text length.
-     */
-    TInt EditorMaxLength();
-
-    /**
-     * When screen size changes, SizeChanged is called by FEP.
-     * 
-     * @since S60 v3.2
-     * @return None.
-     */
-    void ResourceChanged( TInt aType );
-
-    /**
-     * Set underlining UI.
-     * Since plugin layout UI and HKB can be used at same time,
-     * HKB UI layout need to be notified after plugin layout UI 
-     * processes some events
-     * 
-     * @since S60 v3.2
-     * @param aNextUI The underlining UI pointer.
-     * @return None.
-     */
-    void SetNextFepUI( MAknFepManagerInterface* aNextUi );
-    
-    /**
-     * Get support language in sepecfied mode.
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Input mode.
-     * @return Language supported.
-     */
-    TInt SupportLanguage( TInt aMode ) const;
-
-    /**
-     * Set current language, which is required by editor
-     * 
-     * @since S60 v3.2
-     *
-     * @param aLanguage Language to set.
-     * @return None.
-     */
-    void SetInputLanguageL( TLanguage aLanguage );
-
-    /**
-     * Set editor text and cursor information to layout UI 
-     * ICF control.
-     * 
-     * @since S60 v3.2
-     * @param aTotalTextLen Total text length in eidtor.
-     * @param aStartPos Offset of aText to the start of editor text.
-     * @param aCursorSel Cursor position.
-     * @param aText A part of editor text start from aStartPos.
-     *
-     * @return None.
-     */
-    void SetFepAwareEditorText( const TFepInputContextFieldData& aIcfData );
-
-    /**
-     * Set layout UI mode.
-     * The method leaves here only for compatibility
-     * 
-     * @since S60 v3.2
-     *
-     * @param aMode Mode to set.
-     * @param aPredictive Whether the current mode support predictive.
-     * @param aWwertyInputMode Whether the current HKB is qwerty.
-     * @return None.
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, 
-                 TInt aKeyboardType = EPtiKeyboardNone) ;
-#else
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif  
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsValidFnKeyPress() const;
-    virtual TBool IsValidLongChrKeyPress() const;
-#endif
-
-    /**
-     * Set layout UI current case.
-     * The method leaves here only for compatibility. Since plugin layout 
-     * UI is different from HKB tranditional UI, they use something like 
-     * "case mode" other than case which is set by a FEP command.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aCase Case to set.
-     * @return None.
-     */
-    void SetCase( TCase aCase );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ExpireMultitapTimer();
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     * 
-     * @param aKey The key presssed.
-     * @return ETrue if long press, EFalse otherwise.
-     */
-    TBool IsValidNumericLongKeyPress( TInt aKey ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aText Text to add to user dictionary.
-     * @return None.
-     */
-    void AddTextToUserDictionaryL( const TDesC& aText );
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @param aFormat On return, contains the formatting to 
-     *        apply to the inline text (or to a portion of it). 
-     * @param aNumberOfCharactersWithSameFormat  On return, 
-              contains the number of characters in the inline 
-              text (starting at aPositionOfCharacter) 
-              which have the same formatting
-     * @param aPositionOfCharacter Start position within the inline text
-     * @return None.
-     */
-    void GetFormatOfFepInlineText( TCharFormat& aFormat, 
-                                   TInt& aNumberOfCharactersWithSameFormat, 
-                                   TInt aPositionOfCharacter ) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return ETrue if valid, EFalse otherwise.
-     */
-    TBool IsValidShiftKeyPress() const;
-
-    /**
-     * The method leaves here only for compatibility.
-     * 
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void SetEditorContext( TInt aContext );
-
-	/**
-	 * Set the Star key flag
-	 *
-     * @param aSet TBool.
-     * @return None
-	 */
-	void SetStarKeyFlag( TBool aSet );
-protected:
-   
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin pointer.
-     * @param aPenInputServer Pen input server pointer
-     */
-    CPluginFepManagerBase( CPenInputImePluginItut& aOwner, 
-                           RPeninputServer* aPenInputServer );
-
-    /**
-     * By default Symbian 2nd phase constructor.
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    void BaseConstructL();
-
-    /**
-     * Set layout permited ranges.
-     *
-     * @param aPermittedMode Ranges of current editor allowed.
-     * @return None
-     */
-    virtual void SetLayoutPermitedRanges( TInt aPermittedRanges );
-
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    virtual void SetLayoutRange( const CAknEdwinState* aEditorState );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, TInt aParam );
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer( TInt aCommandId, const TDesC8& aParam );
-
-    /**
-     * Get layout UI last used range.
-     *
-     * @since S60 v3.2
-     * @return Range last used.
-     */
-    TInt LayoutLastUsedRange();
-
-    /**
-     * Set layout UI position.
-     * Move layout UI not to overlap with some editors.
-     *
-     * @since S60 v3.2
-     * @param aBottomRight The bottom right position of layout UI.
-     *        The value is only a suggest value, layout UI may adjust it.
-     * @return None.
-     */
-    void SetLayoutPosition( const TRect& aParam );
-
-    /**
-     * Get Editor's local language.
-     *
-     * @since S60 v3.2
-     * @param aEditorState The editor's .CAknEdwinState pointer
-     * @return Language code the editor requires.
-     */
-    TLanguage GetLocalLanguage( const CAknEdwinState* aEditorState ) const;
-   
-protected:
-
-    /**
-     * IME plugin reference.
-     */
-    CPenInputImePluginItut& iOwner;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * The premitted range of current editor.
-     */
-    TInt iPermittedRange;
-    
-    TInt iHkbMode;
-
-    /**
-     * The fep suggested range. The suggested value comes from
-     * previous touch input method.
-     */
-    TInt iSuggestedRange;
-    /**
-     * Current language.
-     */
-    TLanguage iLanguage;   
-    
-private:
-
-    /**
-     * Repository object used to get last used range.
-     */
-    CRepository* iRepository;
-
-    /**
-     * Local copy of ICF max text length.
-     */
-    TInt iMaxEditorLength;
-
-    /**
-     * Local copy of layout current case mode
-     */
-    TInt iLastCase;
-
-    /**
-     * Underlineing UI interface
-     */
-    MAknFepManagerInterface* iHkbUi;
-    };
-#endif // C_PLUGINFEPMANAGERBASE_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/inc/pluginfepmanageritut.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            ITUT layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERITUT_H
-#define C_PLUGINFEPMANAGERITUT_H
-
-// System includes
-#include <e32base.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-
-class CPenInputImePluginItut;
-
-/**
- *  CPluginFepManagerItut is the ITUT layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimepluginitut.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerItut : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerItut object
-     */
-    static CPluginFepManagerItut* NewL( CPenInputImePluginItut& aOwner,
-                                      RPeninputServer* aPenInputServer );
-                                      
-    /**
-     * Handle key event.
-     * Since most plugin layout UIs are based on animation, they receive 
-     * key and process key events before this function. 
-     * 
-     * @since S60 v3.2
-     *
-     * @param aKey Key event code.
-     * @param aLength Key press length.
-     * @return ETrue if processed, EFalse otherwise.
-     */
-    TBool HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey );                                      
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-     
-    CPluginFepManagerItut( CPenInputImePluginItut& aOwner,
-                         RPeninputServer* aPenInputServer );
-    };
-#endif // C_PLUGINFEPMANAGERITUT_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitut.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,685 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Input mode plugin implementation file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <ecom.h>
-#include <AknFepManagerInterface.h>
-#include <eikmenup.h>
-#include <coemain.h>
-
-// User includes
-#include "peninputimepluginitut.h"
-#include "peninputimepluginitutdebug.h"
-#include "pluginfepmanageritut.h"
-
-const TInt KInvalidImplId = 0;
-
-_LIT(KItutImeName,"vitut Itut");
-_LIT(KSplitItutImeName, "split vitut Itut");
-
-class TScriptPair
-    {
-public:
-    const TInt* iData;
-    TInt iLen;
-    CPenInputImePluginItut::TScriptIndex iScriptIdx;
-    };
-
-const TInt LatinLangs[] = 
-    {
-    65, 1,   2,   3,   4,   5,   6,   7,   8,   9,   10, 
-    11,  12,  13,  14,  15,  17,  18,  20,  21,  22, 
-    23,  24,  25,  26,  27,  28,  39,  44,  45,  46, 
-    47,  48,  49,  51,  59,  67,  68,  70,  76,  78, 
-    79,  82,  83,  85,  91,  96,  102, 103, 401, 402
-    };
-const TInt CyrillicLangs[] = {16, 42, 93,};
-const TInt GreekLangs[] = {54, 55,};
-const TInt HebrewLangs[] = {57,};
-const TInt ArabicLangs[] = {37,};
-const TInt FarsiLangs[] = {50,};
-const TInt UrduLangs[] = {94,};
-const TInt ThaiLangs[] = {33,};
-const TInt ChnLangs[] = {29, 30, 31,};
-const TInt IndicLangs[] = {58, 72};
-
-_LIT(KPluginResourcePath, "z:\\RESOURCE\\Plugins\\");
-_LIT(KResFilePattern, "peninputitutconfig_*.rsc");
-_LIT(KResFilePatternSplit, "peninputsplititutconfig_*.rsc");
-
-_LIT(KLatinResFile, "peninputitutconfig_latin.rsc");
-_LIT(KLatinResFileSplit, "peninputsplititutconfig_latin.rsc");
-_LIT(KCyrillicResFile, "peninputitutconfig_cyrillic.rsc");
-_LIT(KCyrillicResFileSplit, "peninputsplititutconfig_cyrillic.rsc");
-_LIT(KGreekResFile, "peninputitutconfig_greek.rsc");
-_LIT(KGreekResFileSplit, "peninputsplititutconfig_greek.rsc");
-_LIT(KHebrewResFile, "peninputitutconfig_hebrew.rsc");
-_LIT(KHebrewResFileSplit, "peninputsplititutconfig_hebrew.rsc");
-_LIT(KArabicResFile, "peninputitutconfig_arabic.rsc");
-_LIT(KArabicResFileSplit, "peninputsplititutconfig_arabic.rsc");
-_LIT(KFarsiResFile, "peninputitutconfig_farsi.rsc");
-_LIT(KFarsiResFileSplit, "peninputsplititutconfig_farsi.rsc");
-_LIT(KUrduResFile, "peninputitutconfig_urdu.rsc");
-_LIT(KUrduResFileSplit, "peninputsplititutconfig_urdu.rsc");
-_LIT(KThaiResFile, "peninputitutconfig_thai.rsc");
-_LIT(KThaiResFileSplit, "peninputsplititutconfig_thai.rsc");
-_LIT(KChnResFile, "peninputitutconfig_chinese.rsc");
-_LIT(KChnResFileSplit, "peninputsplititutconfig_chinese.rsc");
-
-_LIT(KDevanagiriResFile, "peninputitutconfig_devanagari.rsc");
-_LIT(KDevanagiriResFileSplit, "peninputsplititutconfig_devanagari.rsc");
-const TScriptPair KSupportScripts[] = 
-    {
-    {LatinLangs, 50, CPenInputImePluginItut::ELatinLang},
-    {CyrillicLangs, 3, CPenInputImePluginItut::ECyrillicLang},
-    {GreekLangs, 2, CPenInputImePluginItut::EGreekLang},
-    {HebrewLangs, 1, CPenInputImePluginItut::EHebrewLang},
-    {ArabicLangs, 1, CPenInputImePluginItut::EArabicLang},
-    {FarsiLangs, 1, CPenInputImePluginItut::EFarsiLang},
-    {UrduLangs, 1, CPenInputImePluginItut::EUrduLang},
-    {ThaiLangs, 1, CPenInputImePluginItut::EThaiLang},
-    {ChnLangs, 3, CPenInputImePluginItut::EChnLang},
-    {IndicLangs, 2, CPenInputImePluginItut::EIndicLang}
-    };
-
-// -----------------------------------------------------------------------------
-// RImplInfoPtrArray cleanup function
-// -----------------------------------------------------------------------------
-//
-void Cleanup( TAny* aAny )
-    {
-    RImplInfoPtrArray* implArray = 
-        reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-//lint -esym( 960, 58, * ) lint notes: break used outside of a switch
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::NewL
-// Factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginItut* CPenInputImePluginItut::NewL(TAny* aInitParams)
-    {
-    CPenInputImePluginItut* self = new ( ELeave ) CPenInputImePluginItut(
-                                        static_cast<RPeninputServer*>( 
-                                            aInitParams ) );
-    CleanupStack::PushL( self );
-    self->ConstructL(); 
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::NewLC
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginItut* CPenInputImePluginItut::NewLC( 
-    TAny* aInitParams )
-    {
-    CPenInputImePluginItut* self = new ( ELeave ) CPenInputImePluginItut(
-                                        static_cast<RPeninputServer*>( 
-                                            aInitParams ) );
-    CleanupStack::PushL( self );
-    self->ConstructL(); 
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::~CPenInputImePluginItut
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginItut::~CPenInputImePluginItut()
-    {
-    DeActivate();
-    iUiLayoutImpIdList.Close();
-    delete iPluginUiManager;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginItut::GetInputMethodUiL( 
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TLanguage aLanguage, 
-                                        TInt aMode,
-                                        const TDesC8& /*aData*/,
-                                        const TBool aIsSplitView)
-    {
-    iFepManager = aFepManager;
-    iLanguage = aLanguage;
-    CPluginFepManagerBase* fepmanager = NULL;
-    
-    TUid layoutId;
-    TInt i;
-
-    switch ( aMode )
-        {
-        case EPluginInputModeItut:
-            {
-            if(aIsSplitView)
-                {
-                layoutId.iUid = KSplitItutUiId;
-                }
-            else
-                {
-                layoutId.iUid = KItutUiId;
-                }
-            }
-            break;
-        default:
-            return NULL;
-        }
-    fepmanager = GetPluginUiL( aMode );
-    
-    for ( i = 0; i < iUiLayoutImpIdList.Count(); ++i )
-        {
-        if( iUiLayoutImpIdList[i] == layoutId.iUid )
-            {
-            break;
-            }
-        }
-
-    if ( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = aMode;
-        TInt errCode = iPenInputServer->SetUiLayoutId( layoutId );
-        if ( errCode == KErrNone )
-            {
-            fepmanager->OnInit();
-            return fepmanager;
-            }
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginItut::GetInputMethodUiL( 
-                                    MAknFepManagerUIInterface* aFepManager,
-                                    TInt aLayoutId,
-                                    const TDesC8& aData )
-    {
-    iFepManager = aFepManager;
-    CPluginFepManagerBase* fepmanager = NULL;   
-    TInt i;
-    TInt mode;    
-    
-     if ( aLayoutId == KItutUiId || aLayoutId == KSplitItutUiId)
-        {
-        mode = EPluginInputModeItut;
-        }
-    else
-        {
-        mode = EPluginInputModeNone;
-        return NULL;
-        }
-
-    fepmanager = GetPluginUiL( mode );
-    for ( i = 0; i < iUiLayoutImpIdList.Count(); ++i )
-        {
-        if ( iUiLayoutImpIdList[i] == aLayoutId )
-            {
-            break;
-            }
-        }
-
-    if ( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = mode;
-        iPenInputServer->SetUiLayoutId( TUid::Uid( aLayoutId ), aData );
-        fepmanager->OnInit();    
-        return fepmanager;
-        }
-        
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::Activate
-// Activate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginItut::Activate()
-    {
-    if(iPenInputServer)
-        {
-        iPenInputServer->ActivateLayout(ETrue);        
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::DeActivate
-// Deactivate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginItut::DeActivate()
-    {
-    if (iPenInputServer && iPenInputServer->IsVisible())        
-        {
-        iPenInputServer->ActivateLayout(EFalse);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::ImeImplId
-// Get current IME plugin implementation ID.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginItut::ImeImplId()
-    {
-    return KInputMethodImplementationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::LayoutUiImplId
-// Get current layout UI implementation id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginItut::LayoutUiImplId()
-    {
-    TInt id;
-    switch ( iPenInputMode )
-        {
-        case EPluginInputModeItut:
-            {
-            id = KItutUiId;
-            }
-            break;
-        default:
-            {
-            id = KInvalidImplId;
-            }
-            break;
-        }
-    return id;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::SupportModes
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginItut::SupportModes(CPtiEngine* aPtiEngine,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    TInt ret = KErrNone;
-    TRAP_IGNORE( ret = SupportModesL( aPtiEngine, aSupportList ) );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::SupportModesL
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool IsFileInDir( CDir* aDir, const TDesC& aFileName )
-    {
-    if( aDir )
-        {
-        for( TInt k = 0; k < aDir->Count(); ++k )
-            {
-            if( aFileName.CompareF( (*aDir)[k].iName ) == 0 )
-                {
-                return ETrue;
-                }
-            }
-        }
-    return EFalse;
-    }
-    
-
-TInt CPenInputImePluginItut::SupportModesL(CPtiEngine* /*aPtiEngine*/,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const 
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    TBool itut = EFalse;
-    TBool splititut = EFalse;
-    
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        if (infoArray[i]->ImplementationUid().iUid == KItutUiId)
-            {
-            itut = ETrue;
-            }
-            
-        if (infoArray[i]->ImplementationUid().iUid == KSplitItutUiId)
-            {
-            splititut = ETrue;
-            } 
-        }
-
-    TImePlguinImplDetail detail;
-
-    detail.iImplementationId = KInputMethodImplementationId;
-
-    if (itut)
-        {
-        detail.iMode = EPluginInputModeItut;
-        detail.iDisplayName.Copy(KItutImeName());
-        detail.iMeritValue = EImeMerit_Preferred;
-
-        TFindFile fileFinder(CCoeEnv::Static()->FsSession());
-
-      	CDir* dir = NULL;
-      	TInt result = fileFinder.FindWildByDir( KResFilePattern, KPluginResourcePath, dir );
-      	if( result == KErrNone )
-      	    {
-            for (TInt i = 0; i < sizeof(KSupportScripts)/sizeof(KSupportScripts[0]); i++)
-                {
-                if ( IsFileInDir( dir, ResFileNameByScriptIdx(KSupportScripts[i].iScriptIdx) ) )
-                    {
-                    TInt* data = const_cast<TInt*>(KSupportScripts[i].iData);
-                    for (TInt j = 0; j < KSupportScripts[i].iLen; j++)
-                        {
-                        detail.iLanguage = *(data);
-                        data++;
-                        aSupportList.AppendL(detail);                      
-                        }
-                    }
-                }
-      	    }
-  	    delete dir;
-        }    
-
-    if (splititut)
-        {
-        detail.iMode = EPluginInputModeItut;
-        detail.iDisplayName.Copy(KSplitItutImeName());
-        detail.iMeritValue = EImeMerit_Preferred;
-
-        TFindFile fileFinder(CCoeEnv::Static()->FsSession());
-
-      	CDir* dir = NULL;
-      	TInt result = fileFinder.FindWildByDir( KResFilePatternSplit, KPluginResourcePath, dir );
-      	if( result == KErrNone )
-      	    {
-            for (TInt i = 0; i < sizeof(KSupportScripts)/sizeof(KSupportScripts[0]); i++)
-                {
-                if ( IsFileInDir( dir, ResFileNameByScriptIdxForSplit(KSupportScripts[i].iScriptIdx) ) )
-                    {
-                    TInt* data = const_cast<TInt*>(KSupportScripts[i].iData);
-                    for (TInt j = 0; j < KSupportScripts[i].iLen; j++)
-                        {
-                        detail.iLanguage = *(data);
-                        data++;
-                        aSupportList.AppendL(detail);                      
-                        }
-                    }
-                }
-      	    }
-  	    delete dir;
-        }    
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray    
-    
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::CurrentMode
-// Get current layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginItut::CurrentMode() const
-    {
-    return iPenInputMode;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::HandleServerEventL
-// Handle pen input server event..
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginItut::HandleServerEventL( TInt aEventId, const TDesC& aData )
-    {
-    TBool bHandled = EFalse;
-    switch ( aEventId )
-        {
-        case ESignalLayoutICFLengthChanged:
-            {
-            GetCurrentUi()->RetrieveEditorMaxLength();
-            }
-            break;
-        case ESignalCaseMode:
-            {
-            TInt data = *(TInt*)( aData.Ptr() );
-            ASSERT( data >= 0 );
-            //lint !e728
-            GetCurrentUi()->UpdateCaseMode( data ); 
-            }
-            break;
-        default:
-            break;
-        }
-        
-    return bHandled;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::HandleMenuCommandL
-// Handle the menu command.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginItut::HandleMenuCommandL( TInt /*aCommandId*/ )
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::DynInitMenuPaneL
-// Dynamiclly update menu items during it displays.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginItut::DynInitMenuPaneL( CAknFepUiInterfaceMenuPane* /*aMenuPane*/ )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::CPenInputImePluginItut
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginItut::CPenInputImePluginItut( RPeninputServer* aHwrServer )
-    :iPenInputServer( aHwrServer ) 
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::ConstructL
-// 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginItut::ConstructL()
-    {
-    FindUiLayoutImplementationL();
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::FindUiLayoutImplementationL
-// Enumuate all layout UI ids.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginItut::FindUiLayoutImplementationL()
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-
-    iUiLayoutImpIdList.Reset();
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL( id, infoArray );
-        
-    for ( TInt i = 0; i < infoArray.Count(); ++i )
-        {
-        iUiLayoutImpIdList.AppendL( infoArray[i]->ImplementationUid().iUid );
-        }
-
-    CleanupStack::PopAndDestroy( &infoArray ); // infoArray    
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::GetPluginUiL
-// Get HWR UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase* CPenInputImePluginItut::GetPluginUiL( TInt aMode )
-    {
-    switch ( aMode )
-        {
-        case EPluginInputModeItut:
-            {
-            delete iPluginUiManager;
-            iPluginUiManager = NULL;
-            iPluginUiManager = CPluginFepManagerItut::NewL(*this, iPenInputServer);
-            return iPluginUiManager;
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// CPenInputImePluginItut::ResFileNameByScriptIdx
-// Get HWR UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TDesC& CPenInputImePluginItut::ResFileNameByScriptIdx(const TScriptIndex aIndex)
-    {
-    switch (aIndex)
-        {
-        case ELatinLang:
-            return KLatinResFile;
-        case ECyrillicLang:
-            return KCyrillicResFile;
-        case EGreekLang:
-            return KGreekResFile;
-        case EHebrewLang:
-            return KHebrewResFile;
-        case EArabicLang:
-            return KArabicResFile;
-        case EFarsiLang:
-            return KFarsiResFile;
-        case EUrduLang:
-            return KUrduResFile;
-        case EThaiLang:
-            return KThaiResFile;
-        case EChnLang:
-            return KChnResFile;
-        case EIndicLang:
-        	return KDevanagiriResFile;
-        default:
-            break;    
-        }
-
-    return KNullDesC;
-    }
-
-const TDesC& CPenInputImePluginItut::ResFileNameByScriptIdxForSplit(const TScriptIndex aIndex)
-    {
-    switch (aIndex)
-        {
-        case ELatinLang:
-            return KLatinResFileSplit;
-
-        case ECyrillicLang:
-            return KCyrillicResFileSplit;
-
-        case EGreekLang:
-            return KGreekResFileSplit;
-
-        case EHebrewLang:
-            return KHebrewResFileSplit;
-                
-        case EArabicLang:
-            return KArabicResFileSplit;
-
-        case EFarsiLang:
-            return KFarsiResFileSplit;
-
-        case EUrduLang:
-            return KUrduResFileSplit;
-
-        case EThaiLang:
-            return KThaiResFileSplit;
-
-        case EChnLang:
-            return KChnResFileSplit;
-
-        case EIndicLang:
-            return KDevanagiriResFileSplit;
-
-        default:
-            break;    
-        }
-
-    return KNullDesC;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitutmain.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to E32Dll
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <e32base.h>
-
-/** DLL Entry point */
-#ifndef EKA2
-GLDEF_C TInt E32Dll( TDllReason /*aReason*/ )
-    {
-    return( KErrNone );
-    }
-#endif
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/peninputimepluginitutproxy.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation to Proxy
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32std.h>
-#include <implementationproxy.h>
-
-// User includes
-#include "peninputimepluginitut.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    //lint !e611    
-    IMPLEMENTATION_PROXY_ENTRY( 0x2000B133, CPenInputImePluginItut::NewL ) 
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
-    {
-    aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
-    return ImplementationTable;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,751 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Layout UI interface base class implementation
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <w32std.h>
-#include <s32mem.h> 
-#include <aknedsts.h>               // CAknEdwinState
-#include <centralrepository.h>
-#include <peninputclient.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepInternalCRKeys.h>
-#include <peninputgenericitutcustomization.h>
-
-// User includes
-#include "pluginfepmanagerbase.h"
-#include "peninputimepluginitut.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::~CPluginFepManagerBase()
-    {
-    delete iRepository;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::OnInit
-// Initalize UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::OnInit()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::RetrieveEditorMaxLength
-// Explicitly get ICF max length from layout UI .
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::RetrieveEditorMaxLength()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::UpdateCaseMode
-// Update local copy of case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::UpdateCaseMode( TInt aCaseMode )
-    {
-    iLastCase = aCaseMode; 
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNumberModeKeyMappingL
-// Set layout UI current number mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNumberModeKeyMappingL( 
-    TAknEditorNumericKeymap aAknEditorNumericKeymap )
-    {
-    SendCommandToServer( ECmdPenInputEditorNumericKeyMap, 
-                         aAknEditorNumericKeymap );    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleKeyL
-// Handle key event.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/ )
-    {
-    return iHkbUi->HandleKeyL( aKey, aLength );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL( TInt aCommandId )
-    {
-    SendCommandToServer( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    switch ( aCommandId )
-        {
-        case ECmdPenInputRange:
-            {
-            iHkbMode = aParam;
-            }
-            break;
-        case ECmdPenInputPermittedRange:
-            {
-            iLastCase = ECaseInvalide;
-            SetLayoutPermitedRanges( aParam );
-            }
-            break;
-        case ECmdPenInputEditorState:
-            {
-            CAknEdwinState* state = 
-                reinterpret_cast<CAknEdwinState*>( aParam );
-            SetLayoutRange( state );
-            }
-            break;
-        case ECmdPenInputSetWindowPos:
-            {
-            TRect* rect = reinterpret_cast<TRect*>( aParam );
-            ASSERT( rect );
-            SetLayoutPosition( *rect );
-            }
-            break;
-        case ECmdPenInputCaseMode:
-            //if( aParam != iLastCase )
-                {
-                SendCommandToServer( ECmdPenInputCase, aParam );
-                iLastCase = aParam;
-                }
-            break;
-        case ECmdPenInputEditorCustomNumericKeyMap:
-            {
-            TDesC* res = (TDesC*)aParam;
-            TPtrC8 param;
-            param.Set((TUint8*)res->Ptr(), res->Size());
-            SendCommandToServer( aCommandId, param ); 
-            SetNumberModeKeyMappingL
-                ( ( TAknEditorNumericKeymap )EKeymapFromResource );                   
-            }
-            break;
-        case ECmdPenInputSuggestRange:
-            iSuggestedRange = aParam;
-            if( iSuggestedRange == ERangeAccent )
-                {
-                iSuggestedRange = ERangeEnglish;
-                }
-            break;
-        case ECmdPenInputSendEditorTextAndCurPos:
-            {
-            TFepInputContextFieldData* pIcfData = 
-                reinterpret_cast<TFepInputContextFieldData*>( aParam );
-            TInt dataSize = sizeof( TFepInputContextFieldData );
-            TInt textSize = pIcfData->iText.Size();
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pIcfData );
-			writeStream.WriteL( pData, dataSize );
-        		
-    		const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
-		    writeStream.WriteL( pText, textSize );
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputFingerMatchList:
-            {
-            TFepInputAllCandidates* pCanData = reinterpret_cast<TFepInputAllCandidates*>(aParam);
-            TInt count = (*pCanData).iCandidates.Count();
-
-            TInt transferSize = 2 * sizeof(TInt);
-            RArray<TInt> sizeArray;
-            for (TInt i = 0; i < count; i++)
-                {
-                sizeArray.Append((*pCanData).iCandidates[i].Size());
-                transferSize += sizeArray[i] + sizeof(TInt);
-                }
-
-            HBufC8* buf = HBufC8::NewLC(transferSize);
-            TPtr8 bufPtr = buf->Des();
-
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-
-            writeStream.WriteInt32L(count);
-            writeStream.WriteInt32L(transferSize);
-
-            for (TInt i = 0; i < count; i++)
-                {
-                writeStream.WriteInt32L(sizeArray[i]);
-                const TUint16* piData = (*pCanData).iCandidates[i].Ptr();
-                writeStream.WriteL(piData, sizeArray[i]/2);
-                }
-			
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-
-            sizeArray.Close();    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            
-            }
-            break;
-        case ECmdPenInputSetPromptText:
-            {
-            TFepPromptText* pPromptData = 
-                reinterpret_cast<TFepPromptText*>( aParam );
-                
-            TInt dataSize = sizeof( TFepPromptText );
-            TInt textSize = 0;
-            
-            if (pPromptData->iText.Length())
-                {
-                textSize = pPromptData->iText.Size();
-                }
-            
-			HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-			writeStream.WriteInt32L(dataSize);
-			writeStream.WriteInt32L(textSize);
-			
-			const TUint8* pData = reinterpret_cast<const TUint8*>( pPromptData );
-			writeStream.WriteL( pData, dataSize );
-        	
-        	if (textSize != 0)
-        	    {
-                const TUint16* pText = pPromptData->iText.Ptr();
-    		    writeStream.WriteL( pText, textSize/2 );
-        	    }
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        case ECmdPenInputFingerMatchIndicator:
-            {
-            TFepIndicatorInfo* pIndicatorData = 
-                reinterpret_cast<TFepIndicatorInfo*>( aParam );
-            
-			HBufC8* buf = HBufC8::NewLC(4 * sizeof(TInt));
-			TPtr8 bufPtr = buf->Des();
-			
-			RDesWriteStream writeStream;
-			writeStream.Open(bufPtr);
-			CleanupClosePushL(writeStream);
-			
-            writeStream.WriteInt32L(pIndicatorData->iIndicatorImgID);
-            writeStream.WriteInt32L(pIndicatorData->iIndicatorMaskID);
-            writeStream.WriteInt32L(pIndicatorData->iIndicatorTextImgID);
-            writeStream.WriteInt32L(pIndicatorData->iIndicatorTextMaskID);
-		    
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-			CleanupStack::PopAndDestroy(&writeStream);
-			CleanupStack::PopAndDestroy(buf);			
-            }
-            break;
-        case ECmdPenInputSendEditMenuData:
-            {
-            TInt* commandList = reinterpret_cast<TInt*>( aParam );
-            
-            HBufC8* buf = HBufC8::NewLC( (*commandList+1) * sizeof(TInt));
-            TPtr8 bufPtr = buf->Des();
-      
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-      
-            writeStream.WriteInt32L(*commandList);
-            for (TInt i=1;i<=*commandList;i++)
-                {
-                writeStream.WriteInt32L(*(commandList+i));
-                }
-        
-            writeStream.CommitL();  
-            
-            SendCommandToServer( aCommandId, bufPtr );
-            
-            CleanupStack::PopAndDestroy(&writeStream);
-            CleanupStack::PopAndDestroy(buf);                          
-            }
-            break;
-            
-        case ECmdPenInputSymbolOfHardKeyOne:
-            {
-            TFepSymbolOfHardwareOne* pIndicatorData = 
-                reinterpret_cast<TFepSymbolOfHardwareOne*>( aParam );
-            
-            HBufC8* buf = HBufC8::NewLC(3 * sizeof(TInt));
-            TPtr8 bufPtr = buf->Des();
-            
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-            
-            writeStream.WriteInt32L(pIndicatorData->iSymbol1);
-            writeStream.WriteInt32L(pIndicatorData->iSymbol2);
-            writeStream.WriteInt32L(pIndicatorData->iSymbol3);
-            
-            writeStream.CommitL();
-        
-            SendCommandToServer( aCommandId, bufPtr );
-    
-            CleanupStack::PopAndDestroy(&writeStream);
-            CleanupStack::PopAndDestroy(buf);           
-            }
-            break;
-        default:
-            SendCommandToServer( aCommandId, aParam );
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CloseUI
-// Close plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::CloseUI()
-    {
-    iPenInputServer->ActivateLayout( EFalse ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ActivateUI
-// Activate plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ActivateUI()
-    {
-    iPenInputServer->ActivateLayout( ETrue );    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::EditorMaxLength
-// Get max text length of layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::EditorMaxLength()
-    {
-    return iMaxEditorLength;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SizeChanged
-// Handle screen size changed.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ResourceChanged(TInt aType)
-    {
-    iPenInputServer->ResourceChanged(aType);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNextFepUI
-// Set underlining UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNextFepUI( MAknFepManagerInterface* aNextUi )
-    {
-    iHkbUi = aNextUi;    
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SupportLanguage
-// Get support language in sepecfied mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::SupportLanguage( TInt /*aMode*/ ) const
-    {
-    return iLanguage;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetInputLanguageL
-// Set current language.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetInputLanguageL( TLanguage aLanguage )
-    {
-    iLanguage = aLanguage;
-    //maybe language check is needed.
-    TInt lang = (TInt)aLanguage;
-    ASSERT( lang >=0 );
-    SendCommandToServer( ECmdPenInputLanguage, lang );       
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetFepAwareEditorText
-// Set editor text and cursor information to layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetFepAwareEditorText( 
-    const TFepInputContextFieldData& /*aIcfData*/ )
-    {
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode, TInt aKeyboardType)
-#else
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode )
-#endif 
-    {
-    iHkbUi->SetMode( aMode, aPredictive, aQwertyInputMode );
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool CPluginFepManagerBase::IsValidFnKeyPress() const
-    {
-    return EFalse;
-    }
-    TBool CPluginFepManagerBase::IsValidLongChrKeyPress() const
-    {
-    return EFalse;
-    }
-#endif
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI current case.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetCase( TCase aCase )
-    {
-    iHkbUi->SetCase( aCase );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ExpireMultitapTimer
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ExpireMultitapTimer()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidNumericLongKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidNumericLongKeyPress( TInt /*aKey*/ ) const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::AddTextToUserDictionaryL
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::AddTextToUserDictionaryL( const TDesC& /*aText*/ )
-    {
-    }
-       
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetFormatOfFepInlineText
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::GetFormatOfFepInlineText( 
-                                TCharFormat& /*aFormat*/, 
-                                TInt& /*aNumberOfCharactersWithSameFormat*/, 
-                                TInt /*aPositionOfCharacter*/ ) const
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidShiftKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidShiftKeyPress() const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetEditorContext( TInt /*aContext*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetStarKeyFlag( TBool /*aSet*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::CPluginFepManagerBase( CPenInputImePluginItut& aOwner,
-                                             RPeninputServer* aPenInputServer )
-    :iOwner( aOwner ), iPenInputServer( aPenInputServer )
-    {
-    iSuggestedRange = ERangeInvalid;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::BaseConstructL
-// Symbian 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::BaseConstructL()
-    {
-    iRepository = CRepository::NewL( KCRUidAknFep );
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPermitedRanges
-// Set layout permited ranges.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPermitedRanges( TInt aPermittedMode )
-    {
-    // Not derived from edwin
-	SendCommandToServer( ECmdPenInputPermittedRange, aPermittedMode == EAknEditorNumericInputMode  );
-	
-	/*if ( aPermittedMode == EAknEditorNumericInputMode ) 
-        {
-        iPermittedRange = ERangeNumber;         
-        }
-    else if ( aPermittedMode & EAknEditorTextInputMode )
-        {
-        // Derived from edwin and EAknEditorTextInputMode
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol;
-        }
-    else if ( aPermittedMode & EAknEditorSecretAlphaInputMode ) 
-        {
-        // Derived from EAknEditorSecretAlphaInputMode 
-        iPermittedRange = ERangeNumber |
-                          ERangeEnglish | 
-                          ERangeSymbol;        
-        }
-    else
-        {
-        iPermittedRange = ERangeNative | 
-                          ERangeNumber | 
-                          ERangeEnglish | 
-                          ERangeSymbol;
-        }*/
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutRange( 
-    const CAknEdwinState* aEditorState )
-    {
-    if ( aEditorState )
-	    {
-	    SendCommandToServer( ECmdPenInputRange, 
-	                         aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly ); 
-	    }
-    }
-    
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId )
-    {
-    iPenInputServer->HandleCommand( aCommandId );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, TInt aParam )
-    {
-    TBuf8<sizeof(TInt)> buf;
-    buf.Append( (TUint8*)&aParam, sizeof(TInt) );    
-    SendCommandToServer( aCommandId, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, 
-                                                 const TDesC8& aParam )
-    {
-    iPenInputServer->HandleCommand( aCommandId, aParam );        
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::LayoutLastUsedRange
-// Get layout UI last used range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::LayoutLastUsedRange()
-    {
-    TInt value = 0;
-    if ( iRepository )
-        {
-        iRepository->Get( KAknFepLastUsedRange, value );
-        }
-        
-    return value;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPosition
-// Set layout UI position.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPosition( const TRect& pParam )
-    {
-    TBuf8<sizeof( TRect )> buf;
-    buf.Append( (TUint8*)&pParam, sizeof( pParam ) );
-    
-    SendCommandToServer( ECmdPenInputSetWindowPos, buf );
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetLocalLanguage
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TLanguage CPluginFepManagerBase::GetLocalLanguage( 
-    const CAknEdwinState* aEditorState ) const
-    {
-    TLanguage language = ELangTest;
-    // Check for a local language override
-    if ( aEditorState )
-        {
-        TInt aknEditorFlags = aEditorState->Flags()	;
-        if ( aknEditorFlags & EAknEditorFlagLatinInputModesOnly )
-            {
-            language = ELangEnglish;
-            }
-        else
-            {
-            language = aEditorState->LocalLanguage();
-            }
-        }
-
-    return language;
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanageritut.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            ITUT layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknedsts.h>               // CAknEdwinState
-#include <peninputclient.h>
-
-// User includes
-#include "pluginfepmanageritut.h"
-#include "peninputimepluginitut.h"
-#include "eikon.hrh"
-
-// ======== MEMBER FUNCTIONS ========
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerItut::NewL
-// Factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerItut* CPluginFepManagerItut::NewL( 
-    CPenInputImePluginItut& aOwner, RPeninputServer* aPenInputServer )
-    {
-    CPluginFepManagerItut* self = new ( ELeave ) CPluginFepManagerItut(
-         aOwner, aPenInputServer );
-    CleanupStack::PushL( self );
-    self->BaseConstructL(); 
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerItut::CPluginFepManagerItut
-// constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerItut::CPluginFepManagerItut( CPenInputImePluginItut& aOwner,
-                                            RPeninputServer* aPenInputServer )
-    :CPluginFepManagerBase( aOwner, aPenInputServer )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerItut::HandleKeyL
-// Handle key event.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerItut::HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/ )
-    {
-    TInt ret;
-    TPckgC<TInt> msgdata(aKey);
-    
-    if (aLength == ELongKeyPress)
-        {
-        iPenInputServer->HandleCommand(ECmdPenInputFingerLongKeyPress, msgdata, ret);
-        }
-    else
-        {
-        iPenInputServer->HandleCommand(ECmdPenInputFingerKeyPress, msgdata, ret);
-        }
-    
-    return ret == KErrNone ? ETrue:EFalse;
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/srcdata/2000B133.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 1028 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:            Resource definitions for project peninputimepluginitut
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = 0x2000B133;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = 0x10207363;
-            implementations = 
-                {
-                // Info for CImplementation1
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = 0x2000B133;
-                    version_no = 1;
-                    display_name = "vitut touch input method plugin";
-                    //supported language
-                    default_data = "1||16||33||37||42||50||54||57||65||93||94||96";
-                    //supported IME impl id
-                    opaque_data= "16||33||37||42||50||54||57||93||94||96";
-                    }
-                };
-            }
-        };
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/group/bld.inf	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Build information file for project peninputimepluginjp
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_EXPORTS
-	
-PRJ_MMPFILES
-
-../group/peninputimepluginjp.mmp
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/group/peninputimepluginjp.mmp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Project definition file for project peninputimepluginjp
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <bldvariant.hrh>
-#include <platform_paths.hrh>
-
-TARGET      peninputimepluginjp.dll
-TARGETTYPE  plugin
-UID         0x10009D8D 0x10282419
-
-CAPABILITY  CAP_ECOM_PLUGIN
-VENDORID    VID_DEFAULT
-
-SOURCEPATH  ../src
-
-SOURCE      peninputimepluginjpproxy.cpp
-SOURCE      peninputimepluginjp.cpp
-SOURCE      pluginfepmanagerbase.cpp
-SOURCE      pluginfepmanagerhwr.cpp
-SOURCE      pluginfepmanagervkb.cpp
-
-userinclude     ../inc
-
-// This is a SYSTEMINCLUDE macro containing the middleware
-// layer specific include directories
-MW_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   /epoc32/include/ecom
-SYSTEMINCLUDE   ../../../../../inc
-SYSTEMINCLUDE	../../../inc
-
-SOURCEPATH      ../srcdata
-
-START RESOURCE 10282419.rss
-#ifdef SYMBIAN_SECURE_ECOM
-TARGET peninputimepluginjp.rsc
-#endif
-END
-
-LIBRARY euser.lib
-LIBRARY ECom.lib
-LIBRARY centralrepository.lib
-LIBRARY eikcoctl.lib
-LIBRARY cone.lib 
-LIBRARY efsrv.lib
-LIBRARY estor.lib 
-LIBRARY FeatMgr.lib                // feature manager
-
-#ifdef RD_SCALABLE_UI_V2
-LIBRARY         peninputclient.lib
-#else
-LIBRARY         peninputserverstub.lib
-#endif
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,280 +0,0 @@
-/*
-* Copyright (c) 2002-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:            input mode plugin header file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PENINPUTIMEPLUGINCHN_H
-#define C_PENINPUTIMEPLUGINCHN_H
-
-//  INCLUDES
-#include <e32base.h>
-#include <peninputclient.h>
-#include <aknfeppeninputimeplugin.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-//#include <AknFepManagerUIInterface.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepGlobalEnums.h>
-
-// Forward declaration
-class MAknFepManagerInterface;
-class CAknEdwinState;
-class CRepository;
-class CPluginFepManagerBase;
-
-/**
- *  Pen input mode plugin Japanese implementation
- *
- *  @lib peninputimepluginjp.lib
- *  @since S60 v3.2
- */
-class CPenInputImePluginJp : public CAknFepPenInputImePlugin
-    {
-public:
-
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aInitParams Init data plugin, actually it is
-     *        a pointer of RPeninputServer.
-     * @return Pointer to created CPenInputImePluginJp object
-     */
-    static CPenInputImePluginJp* NewL(TAny* aInitParams);
-
-    static CPenInputImePluginJp* NewLC(TAny* aInitParams);
-
-    /**
-     * Destructor.
-     */
-    ~CPenInputImePluginJp();
-
-public: // From CAknFepPenInputImePlugin
-
-    /**
-     * Get layout UI interface
-     *
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLanguage Language that layout UI need to support
-     * @param aMode Speicifed layout UI mode to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL(
-                            MAknFepManagerUIInterface* aFepManager,
-                            TLanguage aLanguage,
-                            TInt      aMode,
-                            const TDesC8& aData,
-                            const TBool aIsSplitView = EFalse);
-
-    /**
-     * Get layout UI interface
-     *
-     * @since S60 v3.2
-     * @param aFepManager Fep manager interface pointer
-     * @param aLayoutId Speicifed layout UI id to create
-     * @param aData Initialization data.
-     *
-     * @return The layout UI interface..
-     */
-    MAknFepManagerInterface* GetInputMethodUiL(
-                            MAknFepManagerUIInterface* aFepManager,
-                            TInt aLayoutId,
-                            const TDesC8& aData);
-
-    /**
-     * Activate current IME plugin.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void Activate();
-
-    /**
-     * Deactivate current IME plugin.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void DeActivate();
-
-    /**
-     * Get current IME plugin implementation ID.
-     *
-     * @since S60 v3.2
-     *
-     * @return IME plugin implementation id.
-     */
-    TInt ImeImplId();
-
-    /**
-     * Get current layout UI implementation id.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TInt LayoutUiImplId();
-
-    /**
-     * Handle pen input server event.
-     *
-     * @param aEventId The event id, defined in <peninputcmd.h>
-     * @param aData The event related data.
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-     TBool HandleServerEventL(TInt aEventId, const TDesC& aData);
-
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     *
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-     TInt SupportModes(CPtiEngine* aPtiEngine,
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-
-    /**
-     * Get current layout UI mode.
-     *
-     * @since S60 v3.2
-     *
-     * @return Current layout UI mode.
-     */
-     TInt CurrentMode() const;
-
-    /**
-     * Handle the menu command.The menu is launched by FEP
-     * The menu command is first passed to IME plugin, if
-     * this function return EFalse, FEP handles it defaultly.
-     *
-     * @param aCommandId The menu command id
-     * @return ETrue if IME plugin handled the command;
-     *         EFalse otherwise.
-     */
-    TBool HandleMenuCommandL(TInt aCommandId);
-
-    /**
-     * Dynamiclly update menu items during it displays.
-     *
-     * aMenuPane The menu pane pointer.
-     * @return None.
-     */
-    void DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane);
-
-private:
-
-    /**
-     * C++ default constructor.
-     *
-     * @param aServer Pen input server pointer
-     */
-    CPenInputImePluginJp(RPeninputServer* aServer);
-
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     *
-     * @return None
-     */
-    void ConstructL();
-
-    /**
-     * Enumuate all layout UI ids and save them to iUiLayoutImpIdList.
-     *
-     * @return None
-     */
-    void FindUiLayoutImplementationL();
-
-    /**
-     * Get HWR UI interface
-     *
-     * @return HWR UI pointer
-     */
-    CPluginFepManagerBase* GetHwrUiL();
-
-    /**
-     * Get VKB UI interface
-     *
-     * @return VKB UI pointer
-     */
-    CPluginFepManagerBase* GetVkbUiL();
-
-    /**
-     * Get current UI interface
-     *
-     * @return current UI pointer
-     */
-    inline CPluginFepManagerBase* GetCurrentUi();
-        
-    /**
-     * Get suppored layout UI modes(VKB/HWR).
-     * 
-     * @since S60 v3.2
-     *
-     * @param aPtiEngine  A pointer to ptiengine
-     * @param aSupportList A reference to result ime plugin list
-     * @return Meaningless.
-     */
-    TInt SupportModesL(CPtiEngine* aPtiEngine, 
-                       RArray<TImePlguinImplDetail>& aSupportList) const;
-                       
-private:
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RArray<TInt> iUiLayoutImpIdList;
-
-    /**
-     * Current layout UI mode.
-     */
-    TInt iPenInputMode;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPointerArray<CPluginFepManagerBase> iAllUiManagers;
-
-    };
-
-#include "peninputimepluginjp.inl"
-
-#endif //C_PENINPUTIMEPLUGINCHN_H
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.inl	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Inline file for Ime plugin Japan.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-const TInt KHwrLayoutInterfaceId = 0x102072FC; //this is for layout interface
-const TInt KInputMethodImplementationId = 0x10282419;
-const TInt KHwrUiId = 0x1028241B;
-const TInt KVkbUiId = 0x1028241A;
-const TInt KHwrUiIndex = 0;
-const TInt KVkbUiIndex = 1;
-
-inline CPluginFepManagerBase* CPenInputImePluginJp::GetCurrentUi()
-    {
-    switch(iPenInputMode)
-        {
-        case EPluginInputModeHwr:
-            return iAllUiManagers[KHwrUiIndex];
-        case EPluginInputModeVkb:
-            return iAllUiManagers[KVkbUiIndex];
-        default:
-            return NULL;
-        }
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjpdebug.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Debug utils API
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINCHSDEBUG_H
-#define PENINPUTIMEPLUGINCHSDEBUG_H
- 
-#ifdef _DEBUG
-    #define PRINT( txt )                    RDebug::Print( txt );
-    #define PRINTF( txt )                   RDebug::Print txt;
-    #define PRINT1( txt, arg1 )             RDebug::Print( txt, arg1 );
-    #define PRINT2( txt, arg1, arg2 )       RDebug::Print( txt, arg1, arg2 );
-    #define PRINT3( txt, arg1, arg2, arg3 ) RDebug::Print( txt, arg1, arg2, arg3 ); 
-#else 
-    #define PRINT( txt ) 
-    #define PRINTF( txt )                    
-    #define PRINT1( txt, arg1 ) 
-    #define PRINT2( txt, arg1, arg2 ) 
-    #define PRINT3( txt, arg1, arg2, arg3 ) 
-#endif
-
-
-// Record into log files
-#define USE_FILE_LOGGER
-
-#if defined (_DEBUG) && !defined(USE_FILE_LOGGER)                   
-    #define USE_SERIAL_LOGGER 
-#endif
-                                    
-#if defined (USE_FILE_LOGGER)
-    #include <flogger.h>
-    _LIT(KLogFile,"imepluginchn.txt");
-    _LIT(KLogFolder,"peninputime");
-    #define LOGTEXT(AAA)                RFileLogger::Write(KLogFolder(), \
-                                                           KLogFile(), \
-                                                           EFileLoggingModeAppend, \
-                                                           AAA)
-    #define LOGTEXT2(AAA,BBB)           RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RFileLogger::WriteFormat(KLogFolder(), \
-                                                                 KLogFile(), \
-                                                                 EFileLoggingModeAppend, \
-                                                                 TRefByValue<const TDesC>(AAA), \
-                                                                 BBB, \
-                                                                 CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) RFileLogger::HexDump(KLogFolder(), \
-                                                             KLogFile(), \
-                                                             EFileLoggingModeAppend, \
-                                                             AAA,\
-                                                             BBB,\
-                                                             CCC,\
-                                                             DDD)    
-#elif defined (USE_SERIAL_LOGGER) 
-    #include <e32svr.h>
-    #define LOGTEXT(AAA)                RDebug::Print(AAA)
-    #define LOGTEXT2(AAA,BBB)           RDebug::Print(AAA,BBB)
-    #define LOGTEXT3(AAA,BBB,CCC)       RDebug::Print(AAA,BBB,CCC)
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD)
-#else
-    #define LOGTEXT(AAA)                
-    #define LOGTEXT2(AAA,BBB)           
-    #define LOGTEXT3(AAA,BBB,CCC)       
-    #define LOGHEXDUMP(AAA,BBB,CCC,DDD) 
-#endif      
-
-#endif      // PENINPUTIMEPLUGINCHSDEBUG   
-            
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagerbase.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,519 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Layout UI interface base class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERBASE_H
-#define C_PLUGINFEPMANAGERBASE_H
-
-//Include
-#include <e32base.h>
-#include <frmtlay.h>
-#include <eikon.hrh>
-#include <AknFepManagerInterface.h>
-#include <peninputcmd.h>
-
-//Forward declaration
-class CPenInputImePluginJp;
-class RPeninputServer;
-class CAknEdwinState;
-class CRepository;
-/**
- *  CPluginFepManagerBase is the layout UI interface base class.
- *  It is something like a "proxy" class of layout UI plugin, sending
- *  commands from FEP to layout UI plugin.
- *
- *  @lib peninputimepluginjp.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerBase: public CBase, public MAknFepManagerInterface
-    {
-public:
-
-    /**
-     * Destructor.
-     */
-    ~CPluginFepManagerBase();
-
-    /**
-     * Initalize UI when first time starting up.
-     * The first time means when the instance created.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    virtual void OnInit();
-
-    /**
-     * Explicitly get ICF max length from layout UI and save the
-     * value to iMaxEditorLength.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void RetrieveEditorMaxLength();
-
-    /**
-     * Update local copy of case mode when
-     * user change case in layout UI.
-     *
-     * @since S60 v3.2
-     *
-     * @param aCaseMode The case mode to save locally.
-     * @return None.
-     */
-    void UpdateCaseMode(TInt aCaseMode);
-
-// From MAknFepManagerInterface
-
-    /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     *
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-    void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap);
-
-    /**
-     * Handle key event.
-     * Since most plugin layout UIs are based on animation, they receive
-     * key and process key events before this function.
-     *
-     * @since S60 v3.2
-     *
-     * @param aKey Key event code.
-     * @param aLength Key press length.
-     * @return ETrue if processed, EFalse otherwise.
-     */
-    TBool HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode = EEventKey);
-
-    /**
-     * Handle command come from FEP.
-     *
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @return None
-     */
-    void HandleCommandL(TInt aCommandId);
-
-    /**
-     * Handle command come from FEP.
-     *
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL(TInt aCommandId, TInt aParam);
-
-    /**
-     * Close plugin layout UI.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void CloseUI();
-
-    /**
-     * Activate plugin layout UI.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ActivateUI();
-
-    /**
-     * Get max text length of layout UI ICF control.
-     *
-     * @since S60 v3.2
-     * @return Max ICF text length.
-     */
-    TInt EditorMaxLength();
-
-    /**
-     * When screen size changes, SizeChanged is called by FEP.
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void ResourceChanged(TInt aType);
-
-    /**
-     * Set underlining UI.
-     * Since plugin layout UI and HKB can be used at same time,
-     * HKB UI layout need to be notified after plugin layout UI
-     * processes some events
-     *
-     * @since S60 v3.2
-     * @param aNextUI The underlining UI pointer.
-     * @return None.
-     */
-    void SetNextFepUI(MAknFepManagerInterface* aNextUi);
-
-    /**
-     * Get support language in sepecfied mode.
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @param aMode Input mode.
-     * @return Language supported.
-     */
-    TInt SupportLanguage(TInt aMode) const;
-
-    /**
-     * Set current language, which is required by editor
-     *
-     * @since S60 v3.2
-     *
-     * @param aLanguage Language to set.
-     * @return None.
-     */
-    void SetInputLanguageL(TLanguage aLanguage);
-
-    /**
-     * Set editor text and cursor information to layout UI
-     * ICF control.
-     *
-     * @since S60 v3.2
-     * @param aTotalTextLen Total text length in eidtor.
-     * @param aStartPos Offset of aText to the start of editor text.
-     * @param aCursorSel Cursor position.
-     * @param aText A part of editor text start from aStartPos.
-     *
-     * @return None.
-     */
-    void SetFepAwareEditorText(const TFepInputContextFieldData& aIcfData);
-
-    /**
-     * Set layout UI mode.
-     * The method leaves here only for compatibility
-     *
-     * @since S60 v3.2
-     *
-     * @param aMode Mode to set.
-     * @param aPredictive Whether the current mode support predictive.
-     * @param aWwertyInputMode Whether the current HKB is qwerty.
-     * @return None.
-     */
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, 
-                 TInt aKeyboardType = EPtiKeyboardNone) ;
-#else
-    void SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode);
-#endif
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    virtual TBool IsValidFnKeyPress() const;
-    virtual TBool IsValidLongChrKeyPress() const;
-#endif
-
-    /**
-     * Set layout UI current case.
-     * The method leaves here only for compatibility. Since plugin layout
-     * UI is different from HKB tranditional UI, they use something like
-     * "case mode" other than case which is set by a FEP command.
-     *
-     * @since S60 v3.2
-     *
-     * @param aCase Case to set.
-     * @return None.
-     */
-    void SetCase(TCase aCase);
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void ExpireMultitapTimer();
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @param aKey The key presssed.
-     * @return ETrue if long press, EFalse otherwise.
-     */
-    TBool IsValidNumericLongKeyPress(TInt aKey) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @param aText Text to add to user dictionary.
-     * @return None.
-     */
-    void AddTextToUserDictionaryL(const TDesC& aText);
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @param aFormat On return, contains the formatting to
-     *        apply to the inline text (or to a portion of it).
-     * @param aNumberOfCharactersWithSameFormat  On return,
-              contains the number of characters in the inline
-              text (starting at aPositionOfCharacter)
-              which have the same formatting
-     * @param aPositionOfCharacter Start position within the inline text
-     * @return None.
-     */
-    void GetFormatOfFepInlineText(TCharFormat& aFormat,
-                                  TInt& aNumberOfCharactersWithSameFormat,
-                                  TInt aPositionOfCharacter) const;
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @return ETrue if valid, EFalse otherwise.
-     */
-    TBool IsValidShiftKeyPress() const;
-
-    /**
-     * The method leaves here only for compatibility.
-     *
-     * @since S60 v3.2
-     *
-     * @return None.
-     */
-    void SetEditorContext(TInt aContext);
-
-    /**
-     * Set the Star key flag
-     *
-     * @param aSet TBool.
-     * @return None
-     */
-    void SetStarKeyFlag( TBool aSet );
-
-    /**
-     * Check the character width.
-     *
-     * @since S60 v3.2
-     *
-     * @return ETrue is Full-width.
-     */
-    TBool IsCharWidth() const;
-
-    /**
-     * Check the Japanese predictive.
-     *
-     * @since S60 v3.2
-     *
-     * @return ETrue is predictive on.
-     */
-    TBool IsJapanesePredictive() const;
-
-    /**
-     * Check the Japanese HWR conversion.
-     *
-     * @since S60 v3.2
-     *
-     * @return ETrue is Japanese HWR conversion on.
-     */
-    TBool IsJapaneseHwrConversion() const;
-
-protected:
-
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin pointer.
-     * @param aPenInputServer Pen input server pointer
-     */
-    CPluginFepManagerBase(CPenInputImePluginJp& aOwner,
-                          RPeninputServer* aPenInputServer);
-
-    /**
-     * By default Symbian 2nd phase constructor.
-     *
-     * @since S60 v3.2
-     * @return None
-     */
-    void BaseConstructL();
-
-    /**
-     * Set layout permited ranges.
-     *
-     * @param aPermittedMode Ranges of current editor allowed.
-     * @return None
-     */
-    virtual void SetLayoutPermitedRanges(TInt aPermittedRanges);
-
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    virtual void SetLayoutRange(const CAknEdwinState* aEditorState);
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @return None
-     */
-    void SendCommandToServer(TInt aCommandId);
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer(TInt aCommandId, TInt aParam);
-
-    /**
-     * Send command to pen input server utility function.
-     *
-     * @since S60 v3.2
-     * @param aCommandId The command id to sent.
-     * @param aParam The command param.
-     * @return None
-     */
-    void SendCommandToServer(TInt aCommandId, const TDesC8& aParam);
-
-    /**
-     * Get layout UI last used range.
-     *
-     * @since S60 v3.2
-     * @return Range last used.
-     */
-    TInt LayoutLastUsedRange();
-
-    /**
-     * Set layout UI position.
-     * Move layout UI not to overlap with some editors.
-     *
-     * @since S60 v3.2
-     * @param aBottomRight The bottom right position of layout UI.
-     *        The value is only a suggest value, layout UI may adjust it.
-     * @return None.
-     */
-    void SetLayoutPosition(const TRect& aParam);
-
-    TLanguage GetLocalLanguage(const CAknEdwinState* aEditorState) const;
-
-    /**
-     * Save the current information.
-     *
-     * @since S60 v3.2
-     * @param aParam
-     */
-    void SaveCurrentInfo(const TInt aParam);
-
-protected:
-
-    /**
-     * IME plugin reference.
-     */
-    CPenInputImePluginJp& iOwner;
-
-    /**
-     * Pen input server pointer. Not own.
-     */
-    RPeninputServer* iPenInputServer;
-
-    /**
-     * The premitted range of current editor.
-     */
-    TInt iPermittedRange;
-
-    TInt iHkbMode;
-
-    /**
-     * Current language.
-     */
-    TLanguage    iLanguage;
-
-    /**
-     * The width of character, Full-width(ETrue)
-     * or Half-width(EFalse)
-     */
-    TBool iCharWidth;
-
-    /**
-     * Predictive is ON(ETrue) or OFF(EFalse).
-     */
-    TBool iPredictive;
-
-    /**
-     * Conversion is ON(ETrue) or OFF(EFalse).
-     */
-    TBool iConversion;
-
-private:
-
-    /**
-     * Repository object used to get last used range.
-     */
-    CRepository* iRepository;
-
-    /**
-     * Local copy of ICF max text length.
-     */
-    TInt iMaxEditorLength;
-
-    /**
-     * Local copy of layout current case mode
-     */
-    TInt iLastCase;
-
-    /**
-     * Underlineing UI interface
-     */
-    MAknFepManagerInterface* iHkbUi;
-
-    /**
-     * subrage for ERangeNative
-     */
-    TInt iSubRange;
-    };
-#endif // C_PLUGINFEPMANAGERBASE_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagerhwr.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-/*
-* Copyright (c) 2002-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:            HWR layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERHWR_H
-#define C_PLUGINFEPMANAGERHWR_H
-
-//Include
-#include <e32base.h>
-#include "pluginfepmanagerbase.h"
-
-//Forward declaration
-class CPenInputImePluginJp;
-class RPeninputServer;
-
-/**
- *  CPluginFepManagerHwr is the Japanese HWR layout UI interface
- *  "proxy" class.
- *
- *  @lib peninputimepluginjp.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerHwr : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerHwr* NewL(CPenInputImePluginJp& aOwner,
-                                      RPeninputServer* aPenInputServer);
-
-     /**
-     * Set layout UI current number mode key mapping.
-     * For example, 0-9 ; 0-9,*,# and etc.
-     *
-     * @since S60 v3.2
-     *
-     * @param aAknEditorNumericKeymap Key mapping enum value.
-     * @return None.
-     */
-   void SetNumberModeKeyMappingL(TAknEditorNumericKeymap aAknEditorNumericKeymap);
-
-    /**
-     * Handle command come from FEP.
-     *
-     * @since S60 v3.2
-     *
-     * @param aCommandId Command id.
-     * @param aParam  Command parameter.
-     * @return None.
-     */
-    void HandleCommandL(TInt aCommandId,TInt aParam);
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-    CPluginFepManagerHwr(CPenInputImePluginJp& aOwner,
-                         RPeninputServer* aPenInputServer);
-
-    /**
-     * Set layout primary range.
-     *
-     * @since S60 v3.2
-     * @param aEditorState Current editor state.
-     * @return None
-     */
-    void SetLayoutRange(const CAknEdwinState* aEditorState);
-
-private:
-    TInt iNumberKeyMapping;
-    };
-
-#endif // C_PLUGINFEPMANAGERHWR_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/inc/pluginfepmanagervkb.h	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) 2002-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:            VKB layout UI class header
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifndef C_PLUGINFEPMANAGERVKB_H
-#define C_PLUGINFEPMANAGERVKB_H
-
-#include <e32base.h>
-#include "pluginfepmanagerbase.h"
-
-class CPenInputImePluginJp;
-
-/**
- *  CPluginFepManagerHwr is the Japanese VKB layout UI interface 
- *  "proxy" class.
- *
- *  @lib peninputimepluginjp.lib
- *  @since S60 v3.2
- */
-class CPluginFepManagerVkb : public CPluginFepManagerBase
-    {
-public:
-    /**
-     * Symbian constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     * @return Pointer to created CPluginFepManagerHwr object
-     */
-    static CPluginFepManagerVkb* NewL(CPenInputImePluginJp& aOwner,
-                                      RPeninputServer* aPenInputServer);
-
-private:
-    /**
-     * C++ default constructor.
-     *
-     * @since S60 v3.2
-     * @param aOwner IME plugin reference 
-     * @param aPenInputServer The pointer of RPeninputServer.
-     */
-     
-    CPluginFepManagerVkb(CPenInputImePluginJp& aOwner,
-                         RPeninputServer* aPenInputServer);
-    };
-#endif // C_PLUGINFEPMANAGERVKB_H
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjp.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,539 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Input mode plugin implementation file
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include "peninputimepluginjp.h"
-#include <ecom.h>
-#include <AknFepManagerInterface.h>
-#include <eikmenup.h>
-#include <avkon.hrh>
-#include <aknfepuiinterface.h>
-#include <aknfepuimenus.h>
-#include <featmgr.h>
-
-#include "peninputimepluginjpdebug.h"
-#include "pluginfepmanagerhwr.h"
-#include "pluginfepmanagervkb.h"
-#include "pluginfepmanagerbase.h"
-
-
-const TInt KInvalidImplId = 0;
-
-_LIT(KHwrImeName, "Japanese HWR");
-_LIT(KVkbImeName, "Japanese VKB");
-
-// Implementation of Class CPenInputImePluginJp
-
-// -----------------------------------------------------------------------------
-// RImplInfoPtrArray cleanup function
-// -----------------------------------------------------------------------------
-//
-void Cleanup( TAny* aAny )
-    {
-    RImplInfoPtrArray* implArray =
-        reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginJp* CPenInputImePluginJp::NewL(TAny* aInitParams)
-    {
-    CPenInputImePluginJp* self = new(ELeave)CPenInputImePluginJp(
-                                        static_cast<RPeninputServer*>(aInitParams));
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::NewLC
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginJp* CPenInputImePluginJp::NewLC(TAny* aInitParams)
-    {
-    CPenInputImePluginJp* self = new(ELeave) CPenInputImePluginJp(
-                                        static_cast<RPeninputServer*>(aInitParams));
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::~CPenInputImePluginJp
-// destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginJp::~CPenInputImePluginJp()
-    {
-    DeActivate();
-    iUiLayoutImpIdList.Close();
-    iAllUiManagers.ResetAndDestroy();
-    REComSession::FinalClose();//cleanup ecom
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginJp::GetInputMethodUiL(
-                                        MAknFepManagerUIInterface* aFepManager,
-                                        TLanguage aLanguage,
-                                        TInt      aMode,
-                                        const TDesC8& /*aData*/,
-                                        const TBool aIsSplitView)
-    {
-    iFepManager = aFepManager;
-    iLanguage = aLanguage;
-    CPluginFepManagerBase* fepmanager = NULL;
-
-    TUid layoutId;
-    TInt i;
-
-    switch(aMode)
-        {
-        case EPluginInputModeHwr:
-            layoutId.iUid = KHwrUiId;
-            fepmanager = GetHwrUiL();
-            break;
-        case EPluginInputModeVkb:
-            layoutId.iUid = KVkbUiId;
-            fepmanager = GetVkbUiL();
-            break;
-        default:
-            return NULL;
-        }
-
-    for(i = 0; i < iUiLayoutImpIdList.Count(); ++i)
-        {
-        if(iUiLayoutImpIdList[i] == layoutId.iUid )
-            {
-            break;
-            }
-        }
-
-    if( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = aMode;
-        TInt errCode = iPenInputServer->SetUiLayoutId(layoutId);
-        if( errCode == KErrNone )
-            {
-            fepmanager->OnInit();
-            return fepmanager;
-            }
-        }
-
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::GetInputMethodUiL
-// Create layout UI interface
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CPenInputImePluginJp::GetInputMethodUiL(
-                                    MAknFepManagerUIInterface* aFepManager,
-                                    TInt aLayoutId,
-                                    const TDesC8& /*aData*/)
-    {
-    iFepManager = aFepManager;
-    CPluginFepManagerBase* fepmanager = NULL;
-    TInt i;
-    TInt mode;
-
-    if( aLayoutId == KHwrUiId)
-        {
-        mode = EPluginInputModeHwr;
-        fepmanager = GetHwrUiL();
-        }
-    else if( aLayoutId == KVkbUiId)
-        {
-        mode = EPluginInputModeVkb;
-        fepmanager = GetVkbUiL();
-        }
-    else
-        {
-        return NULL;
-        }
-
-    for(i = 0; i < iUiLayoutImpIdList.Count(); ++i)
-        {
-        if(iUiLayoutImpIdList[i] == aLayoutId )
-            {
-            break;
-            }
-        }
-
-    if( i < iUiLayoutImpIdList.Count() )
-        {
-        iPenInputMode = mode;
-        iPenInputServer->SetUiLayoutId(TUid::Uid(aLayoutId));
-        fepmanager->OnInit();
-        return fepmanager;
-        }
-
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::Activate
-// Activate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginJp::Activate()
-    {
-    if(iPenInputServer)
-        {
-        iPenInputServer->ActivateLayout(ETrue);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::DeActivate
-// Deactivate current IME plugin.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginJp::DeActivate()
-    {
-    if (iPenInputServer && iPenInputServer->IsVisible())
-        {
-        iPenInputServer->ActivateLayout(EFalse);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::ImeImplId
-// Get current IME plugin implementation ID.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginJp::ImeImplId()
-    {
-    return KInputMethodImplementationId;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::LayoutUiImplId
-// Get current layout UI implementation id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginJp::LayoutUiImplId()
-    {
-    TInt id;
-    switch(iPenInputMode)
-        {
-        case EPluginInputModeHwr:
-            id = KHwrUiId;
-            break;
-        case EPluginInputModeVkb:
-            id = KVkbUiId;
-            break;
-        default:
-            id = KInvalidImplId;
-            break;
-        }
-    return id;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::SupportModes
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginJp::SupportModes(CPtiEngine* aPtiEngine,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const
-    {
-    TInt ret = 0;
-    TRAP_IGNORE( ret = SupportModesL( aPtiEngine, aSupportList ) );
-    return ret;
-    }
-    
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::SupportModesL
-// Get suppored layout UI modes(VKB/HWR).
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginJp::SupportModesL(CPtiEngine* /*aPtiEngine*/,
-                                             RArray<TImePlguinImplDetail>& aSupportList) const 
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-    TBool hwr = EFalse;
-    TBool vkb = EFalse;
-
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        if(infoArray[i]->ImplementationUid().iUid == KHwrUiId )
-            {
-            hwr = ETrue;
-            }
-        if(infoArray[i]->ImplementationUid().iUid == KVkbUiId
-            && FeatureManager::FeatureSupported(KFeatureIdVirtualKeyboardInput))
-            {
-            vkb = ETrue;
-            }
-        }
-
-    TImePlguinImplDetail detail;
-
-    detail.iImplementationId = KInputMethodImplementationId;
-    if( hwr )
-        {
-        detail.iMode = EPluginInputModeHwr;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KHwrImeName());
-        detail.iLanguage = ELangJapanese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangEnglish;
-        detail.iMeritValue = EImeMerit_NotUsed;
-        aSupportList.Append(detail);
-        }
-
-    if( vkb )
-        {
-        detail.iMode = EPluginInputModeVkb;
-        detail.iMeritValue = EImeMerit_Preferred;
-        detail.iDisplayName.Copy(KVkbImeName());
-        detail.iLanguage = ELangJapanese;
-        aSupportList.Append(detail);
-        detail.iLanguage = ELangEnglish;
-        detail.iMeritValue = EImeMerit_NotUsed;
-        aSupportList.Append(detail);
-        }
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray
-
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::CurrentMode
-// Get current layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPenInputImePluginJp::CurrentMode() const
-    {
-    return iPenInputMode;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::HandleServerEventL
-// Handle pen input server event..
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginJp::HandleServerEventL(TInt aEventId, const TDesC& aData)
-    {
-    TBool bHandled = EFalse;
-    switch( aEventId )
-        {
-        case ESignalLayoutICFLengthChanged:
-            GetCurrentUi()->RetrieveEditorMaxLength();
-            break;
-        case ESignalCaseMode:
-            {
-            GetCurrentUi()->UpdateCaseMode(*(TInt*)(aData.Ptr()));
-            }
-            break;
-        default:
-            break;
-        }
-
-    return bHandled;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::HandleMenuCommandL
-// Handle the menu command.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPenInputImePluginJp::HandleMenuCommandL(TInt aCommandId)
-    {
-    TBool ret = EFalse;
-    switch(aCommandId)
-        {
-        // not handle the following command ids.
-        case EPenInputJpCmdFullWidth:
-        case EPenInputJpCmdHalfWidth:
-            break;
-        case EPenInputJpCmdConversionOn:
-        case EPenInputJpCmdConversionOff:
-            break;
-        case EPenInputJpCmdPredictiveOn:
-        case EPenInputJpCmdPredictiveOff:
-            break;
-        case EPenInputJpCmdSaveWord:
-        case EPenInputJpCmdKutenCode:
-        default:
-            break;
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::DynInitMenuPaneL
-// Dynamiclly update menu items during it displays.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginJp::DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    TBool dimmmenu;
-    CPluginFepManagerBase* manager = GetCurrentUi();
-    if (manager)
-        {
-        dimmmenu = (manager->IsCharWidth())? ETrue: EFalse;
-        aMenuPane->SetItemDimmed(EPenInputJpCmdFullWidth, dimmmenu);
-        aMenuPane->SetItemDimmed(EPenInputJpCmdHalfWidth, !dimmmenu);
-        if (iPenInputMode == EPluginInputModeHwr)
-            {
-            dimmmenu = (manager->IsJapaneseHwrConversion())? ETrue: EFalse;
-            aMenuPane->SetItemDimmed(EPenInputJpCmdConversionOn, dimmmenu);
-            aMenuPane->SetItemDimmed(EPenInputJpCmdConversionOff, !dimmmenu);
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EPenInputJpCmdConversionOn, ETrue);
-            aMenuPane->SetItemDimmed(EPenInputJpCmdConversionOff, ETrue);
-            }
-        dimmmenu = (manager->IsJapanesePredictive())? ETrue: EFalse;
-        aMenuPane->SetItemDimmed(EPenInputJpCmdPredictiveOn, dimmmenu);
-        aMenuPane->SetItemDimmed(EPenInputJpCmdPredictiveOff, !dimmmenu);
-
-        aMenuPane->SetItemDimmed(EPenInputJpCmdSaveWord, EFalse);
-        aMenuPane->SetItemDimmed(EPenInputJpCmdKutenCode, EFalse);
-        }
-    aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::CPenInputImePluginJp
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPenInputImePluginJp::CPenInputImePluginJp(RPeninputServer* aHwrServer)
-: iPenInputServer(aHwrServer)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::ConstructL
-// 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginJp::ConstructL()
-    {
-    FindUiLayoutImplementationL();
-    //Append NULL to save HWR manager position
-    iAllUiManagers.Append(NULL);
-    //Append NULL to save VKB manager position
-    iAllUiManagers.Append(NULL);
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::FindUiLayoutImplementationL
-// Enumuate all layout UI ids.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPenInputImePluginJp::FindUiLayoutImplementationL()
-    {
-    RImplInfoPtrArray infoArray;
-    TUid id;
-    id.iUid = KHwrLayoutInterfaceId;
-
-    iUiLayoutImpIdList.Reset();
-    CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
-    REComSession::ListImplementationsL(id, infoArray);
-
-    for (TInt i = 0; i < infoArray.Count(); ++i)
-        {
-        iUiLayoutImpIdList.AppendL(infoArray[i]->ImplementationUid().iUid);
-        }
-
-    CleanupStack::PopAndDestroy(&infoArray); // infoArray
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::GetHwrUi
-// Get HWR UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase* CPenInputImePluginJp::GetHwrUiL()
-    {
-    if( !iAllUiManagers[KHwrUiIndex] )
-        {
-        iAllUiManagers[KHwrUiIndex] = CPluginFepManagerHwr::NewL(*this, iPenInputServer);
-        }
-
-    return iAllUiManagers[KHwrUiIndex];
-    }
-
-// -----------------------------------------------------------------------------
-// CPenInputImePluginJp::GetVkbUi
-// Get VKB UI interface.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase* CPenInputImePluginJp::GetVkbUiL()
-    {
-    if( !iAllUiManagers[KVkbUiIndex] )
-        {
-        iAllUiManagers[KVkbUiIndex] = CPluginFepManagerVkb::NewL(*this, iPenInputServer);
-        }
-
-    return iAllUiManagers[KVkbUiIndex];
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjpmain.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Implementation to E32Dll
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <e32base.h>
-
-/** DLL Entry point */
-#ifndef EKA2
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
-	{
-	return(KErrNone);
-	}
-#endif
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/peninputimepluginjpproxy.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Implementation to Proxy
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include <e32std.h>
-#include <implementationproxy.h>
-
-#include "peninputimepluginjp.h"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY(0x10282419,    CPenInputImePluginJp::NewL)
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-
-    return ImplementationTable;
-    }
-
-//End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagerbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,762 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Layout UI interface base class implementation
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <w32std.h>
-#include <s32mem.h> 
-#include <aknedsts.h>               //CAknEdwinState
-#include <centralrepository.h>
-
-#include "pluginfepmanagerbase.h"
-#include "peninputimepluginjp.h"
-#include <peninputclient.h>
-#include <aknfeppeninputenums.h>
-#include <AknFepInternalCRKeys.h>
-
-// Implementation of Class CPluginFepManagerBase
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::~CPluginFepManagerBase()
-    {
-    delete iRepository;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::OnInit
-// Initalize UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::OnInit()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::RetrieveEditorMaxLength
-// Explicitly get ICF max length from layout UI .
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::RetrieveEditorMaxLength()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::UpdateCaseMode
-// Update local copy of case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::UpdateCaseMode(TInt aCaseMode)
-    {
-    iLastCase = aCaseMode;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNumberModeKeyMappingL
-// Set layout UI current number mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNumberModeKeyMappingL(
-                                            TAknEditorNumericKeymap aAknEditorNumericKeymap)
-    {
-    SendCommandToServer(ECmdPenInputEditorNumericKeyMap, aAknEditorNumericKeymap);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleKeyL
-// Handle key event.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/)
-    {
-    return iHkbUi->HandleKeyL(aKey, aLength);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL(TInt aCommandId)
-    {
-    SendCommandToServer(aCommandId);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    switch(aCommandId)
-        {
-        case ECmdPenInputRange:
-            iHkbMode = aParam;
-            break;
-        case ECmdPenInputPermittedRange:
-            iLastCase = ECaseInvalide;
-            SetLayoutPermitedRanges(aParam);
-            break;
-        case ECmdPenInputEditorState:
-            SetLayoutRange(reinterpret_cast<CAknEdwinState*>(aParam));
-            break;
-        case ECmdPenInputSetWindowPos:
-            SetLayoutPosition(*reinterpret_cast<TRect*>(aParam));
-            break;
-        case ECmdPenInputCaseMode:
-            {
-            SendCommandToServer(ECmdPenInputCase, aParam);
-            iLastCase = aParam;
-            }
-            break;
-        case ECmdPenInputEditorCustomNumericKeyMap:
-            {
-            TDesC* res = (TDesC*)aParam;
-            TPtrC8 param;
-            param.Set((TUint8*)res->Ptr(), res->Size());
-            SendCommandToServer( aCommandId, param );
-            SetNumberModeKeyMappingL((TAknEditorNumericKeymap)EKeymapFromResource);
-            }
-            break;
-        case ECmdPenInputJapaneseSetting:
-            {
-            SaveCurrentInfo(aParam);
-            SendCommandToServer(aCommandId, aParam);
-            }
-            break;
-        case ECmdPenInputJapaneseSetSubRange:
-            {
-            iSubRange = aParam;
-            }
-            break;
-        case ECmdPenInputJapaneseGetModeOfSubRange:
-            {
-            TInt newMode = *((TInt*)aParam);
-            if(iSubRange == ERangeFullWidthEnglish)
-                {
-                newMode = ELatin;
-                }
-            else if( iSubRange == ERangeFullWidthNumeric )
-                {
-                newMode = ENumber;
-                }
-            else if( iSubRange == ERangeKatakana ||
-                     iSubRange == ERangeFullWidthKatakana )
-                {
-                newMode = EKatakana;
-                }
-
-            else if( iSubRange == ERangeHiraganaKanji )
-                {
-                newMode = EHiraganaKanji;
-                }
-            else if( iSubRange == ERangeHiraganaOnly )
-                {
-                newMode = EHiragana;
-                }
-            *((TInt*)aParam) = newMode;
-            }
-            break;
-        case ECmdPenInputSendEditorTextAndCurPos:
-            {
-            TFepInputContextFieldData* pIcfData = 
-                reinterpret_cast<TFepInputContextFieldData*>( aParam );
-
-            TInt dataSize = sizeof( TFepInputContextFieldData );
-            TInt textSize = pIcfData->iText.Size();
-
-            HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt));
-            TPtr8 bufPtr = buf->Des();
-
-            RDesWriteStream writeStream;
-            writeStream.Open(bufPtr);
-            CleanupClosePushL(writeStream);
-
-            writeStream.WriteInt32L(dataSize);
-            writeStream.WriteInt32L(textSize);
-
-            const TUint8* pData = reinterpret_cast<const TUint8*>( pIcfData );
-            writeStream.WriteL( pData, dataSize );
-                
-            const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
-            writeStream.WriteL( pText, textSize );
-            
-            writeStream.CommitL();
-
-            SendCommandToServer( aCommandId, bufPtr );
-
-            CleanupStack::PopAndDestroy(&writeStream);
-            CleanupStack::PopAndDestroy(buf);
-            }
-            break;
-        default:
-            SendCommandToServer(aCommandId, aParam);
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CloseUI
-// Close plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::CloseUI()
-    {
-    if (iPenInputServer->IsVisible())
-        {
-        iPenInputServer->ActivateLayout(EFalse);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ActivateUI
-// Activate plugin layout UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ActivateUI()
-    {
-    iPenInputServer->ActivateLayout(ETrue);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::EditorMaxLength
-// Get max text length of layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::EditorMaxLength()
-    {
-    return iMaxEditorLength;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::ResourceChanged
-// Handle screen size changed.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ResourceChanged(TInt aType)
-    {
-    iPenInputServer->ResourceChanged(aType);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetNextFepUI
-// Set underlining UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetNextFepUI(MAknFepManagerInterface* aNextUi)
-    {
-    iHkbUi = aNextUi;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SupportLanguage
-// Get support language in sepecfied mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::SupportLanguage(TInt /*aMode*/) const
-    {
-    return iLanguage;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetInputLanguageL
-// Set current language.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetInputLanguageL(TLanguage aLanguage)
-    {
-    iLanguage = aLanguage;
-    if( iLanguage == ELangJapanese )
-        {
-        SendCommandToServer(ECmdPenInputLanguage, (TInt)aLanguage);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetFepAwareEditorText
-// Set editor text and cursor information to layout UI ICF control.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetFepAwareEditorText(const TFepInputContextFieldData& aIcfData)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode, TInt aKeyboardType)
-#else
-void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, 
-                                     TBool aQwertyInputMode )
-#endif 
-    {
-    iHkbUi->SetMode(aMode, aPredictive, aQwertyInputMode);
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TBool CPluginFepManagerBase::IsValidFnKeyPress() const
-    {
-    return EFalse;
-    }
-    TBool CPluginFepManagerBase::IsValidLongChrKeyPress() const
-    {
-    return EFalse;
-    }
-#endif
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Set layout UI current case.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetCase(TCase aCase)
-    {
-    iHkbUi->SetCase(aCase);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetMode
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::ExpireMultitapTimer()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidNumericLongKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidNumericLongKeyPress(TInt /*aKey*/) const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::AddTextToUserDictionaryL
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::AddTextToUserDictionaryL(const TDesC& /*aText*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetFormatOfFepInlineText
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::GetFormatOfFepInlineText(
-                                TCharFormat& /*aFormat*/,
-                                TInt& /*aNumberOfCharactersWithSameFormat*/,
-                                TInt /*aPositionOfCharacter*/) const
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsValidShiftKeyPress
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsValidShiftKeyPress() const
-    {
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetEditorContext
-// Compatibile with HKB UI.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetEditorContext(TInt /*aContext*/)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetStarKeyFlag
-// Set the Star key flag.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetStarKeyFlag( TBool /*aSet*/ )
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::CPluginFepManagerBase
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerBase::CPluginFepManagerBase(CPenInputImePluginJp& aOwner,
-                                             RPeninputServer* aPenInputServer)
-    :iOwner(aOwner), iPenInputServer(aPenInputServer), iSubRange(ERangeInvalid)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::BaseConstructL
-// Symbian 2nd phase constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::BaseConstructL()
-    {
-    iRepository = CRepository::NewL(KCRUidAknFep);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPermitedRanges
-// Set layout permited ranges.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPermitedRanges(TInt aPermittedMode)
-    {
-    //not derived from edwin
-    if ( aPermittedMode == EAknEditorNumericInputMode )
-        {
-        iPermittedRange = ERangeNumber;
-        }
-    else if (aPermittedMode & EAknEditorTextInputMode)
-        {
-        //derived from edwin and EAknEditorTextInputMode
-        iPermittedRange = ERangeHiraganaKanji |
-                          ERangeKatakana |
-                          ERangeFullWidthKatakana |
-                          ERangeFullWidthEnglish |
-                          ERangeFullWidthNumeric |
-                          ERangeNumber |
-                          ERangeEnglish |
-                          ERangeSymbol;
-        }
-    else if (aPermittedMode & EAknEditorSecretAlphaInputMode )
-        {
-        //derived from EAknEditorSecretAlphaInputMode
-        iPermittedRange = ERangeNumber |
-                          ERangeEnglish |
-                          ERangeSymbol;
-        }
-    else
-        {
-        iPermittedRange = ERangeInvalid;
-        if (aPermittedMode & EAknEditorNumericInputMode )
-            {
-            iPermittedRange |= ERangeNumber | ERangeSymbol;
-            }
-        if (aPermittedMode & EAknEditorKatakanaInputMode )
-            {
-            iPermittedRange |= ERangeKatakana;
-            }
-        if (aPermittedMode & EAknEditorFullWidthTextInputMode )
-            {
-            iPermittedRange |= ERangeFullWidthEnglish;
-            }
-        if (aPermittedMode & EAknEditorFullWidthNumericInputMode )
-            {
-            iPermittedRange |= ERangeFullWidthNumeric;
-            }
-        if (aPermittedMode & EAknEditorFullWidthKatakanaInputMode )
-            {
-            iPermittedRange |= ERangeFullWidthKatakana;
-            }
-        if (aPermittedMode & EAknEditorHiraganaKanjiInputMode )
-            {
-            iPermittedRange |= ERangeHiraganaKanji;
-            }
-        if (aPermittedMode & EAknEditorHiraganaInputMode )
-            {
-            iPermittedRange |= ERangeHiraganaOnly;
-            }
-        if (aPermittedMode & EAknEditorHalfWidthTextInputMode )
-            {
-            iPermittedRange |= ERangeEnglish;
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutRange(const CAknEdwinState* aEditorState)
-    {
-    //calculate permitted ranges
-    if(aEditorState)
-        {
-        if( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly )
-            {
-            iPermittedRange &= (ERangeNumber |
-                                ERangeEnglish |
-                                ERangeSymbol);
-            }
-        }
-
-    SendCommandToServer(ECmdPenInputPermittedRange, iPermittedRange);
-
-    TInt priRange;
-    if( !aEditorState )
-        {
-        //if editor state is null,which indicates that
-        //the editor is not derived from edwin
-        priRange = ERangeNumber;
-        }
-    else
-        {
-        //if still not get, then set according to default input mode
-        switch(iHkbMode)
-            {
-            case ELatin:
-                priRange = (iCharWidth)? ERangeFullWidthEnglish: ERangeEnglish;
-                break;
-            case ENumber:
-                priRange = (iCharWidth)? ERangeFullWidthNumeric : ERangeNumber;
-                break;
-            case EHiraganaKanji:
-                priRange = ERangeHiraganaKanji;
-                break;
-            case EKatakana:
-                priRange = (iCharWidth)? ERangeFullWidthKatakana : ERangeKatakana;
-                break;
-            case EHiragana:
-                priRange = ERangeHiraganaOnly;
-                break;
-            default:
-                {
-                TInt defaultInputMode = aEditorState->DefaultInputMode();
-                switch(defaultInputMode)
-                    {
-                    case EAknEditorNumericInputMode:
-                        priRange = ERangeNumber ;
-                        break;
-                    case EAknEditorTextInputMode:
-                        {
-                        TLanguage editorLan = GetLocalLanguage(aEditorState);
-                        priRange = ERangeEnglish;
-
-                        if( editorLan == ELangTest)
-                            {
-                            editorLan = iLanguage;
-                            }
-                        if( editorLan == ELangJapanese )
-                            {
-                            //load last use range
-                            TInt lastUsedRange = LayoutLastUsedRange();
-                            if( lastUsedRange != ELangJapanese )
-                                {
-                                //invalid repository key value or first time use HWR,
-                                priRange = ERangeHiraganaKanji;
-                                }
-                            else
-                                {
-                                priRange = lastUsedRange;
-                                }
-                            }
-                        }
-                        break;
-                    default:
-                        priRange = ERangeEnglish ;
-                        break;
-                    }
-                }
-            }
-        }
-
-    SendCommandToServer(ECmdPenInputRange, priRange);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer(TInt aCommandId)
-    {
-    iPenInputServer->HandleCommand(aCommandId);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer(TInt aCommandId, TInt aParam)
-    {
-    TBuf8<sizeof(TInt)> buf;
-    buf.Append((TUint8*)&aParam,sizeof(TInt));
-    SendCommandToServer(aCommandId, buf);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SendCommandToServer
-// Send command to pen input server utility function.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SendCommandToServer(TInt aCommandId, const TDesC8& aParam)
-    {
-    iPenInputServer->HandleCommand(aCommandId, aParam);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::LayoutLastUsedRange
-// Get layout UI last used range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CPluginFepManagerBase::LayoutLastUsedRange()
-    {
-    TInt value = 0;
-    if( iRepository )
-        {
-        iRepository->Get(KAknFepLastUsedRange, value);
-        }
-
-    return value;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SetLayoutPosition
-// Set layout UI position.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SetLayoutPosition(const TRect& pParam)
-    {
-    TBuf8<sizeof(TRect)> buf;
-    buf.Append((TUint8*)&pParam, sizeof(pParam));
-
-    SendCommandToServer(ECmdPenInputSetWindowPos, buf);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::GetLocalLanguage
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TLanguage CPluginFepManagerBase::GetLocalLanguage(
-                const CAknEdwinState* aEditorState) const
-    {
-    TLanguage language = ELangTest;
-    // Check for a local language override
-    if (aEditorState)
-        {
-        TInt aknEditorFlags = aEditorState->Flags() ;
-        if (aknEditorFlags & EAknEditorFlagLatinInputModesOnly)
-            {
-            language = ELangEnglish;
-            }
-        else
-            {
-            language = aEditorState->LocalLanguage();
-            }
-        }
-    return language;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::SaveCurrentInfo
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerBase::SaveCurrentInfo(const TInt aParam)
-    {
-    iCharWidth = (aParam & EPenInputJapaneseSettingCharacterWidth)?
-                        ETrue : EFalse;
-    iPredictive = (aParam & EPenInputJapaneseSettingPredictive)?
-                        ETrue : EFalse;
-    iConversion = (aParam & EPenInputJapaneseSettingConversion)?
-                        ETrue : EFalse;
-
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsCharWidth
-// Check the character width.
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsCharWidth() const
-    {
-    return iCharWidth;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsJapanesePredictive
-// Check the Japanese predictive.
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsJapanesePredictive() const
-    {
-    return iPredictive;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerBase::IsJapaneseHwrConversion
-// Check the Japanese HWR conversion.
-// -----------------------------------------------------------------------------
-//
-TBool CPluginFepManagerBase::IsJapaneseHwrConversion() const
-    {
-    return iConversion;
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagerhwr.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/*
-* Copyright (c) 2002-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:            HWR layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "pluginfepmanagerhwr.h"
-#include "peninputimepluginjp.h"
-#include <aknfeppeninputenums.h>
-#include <aknedsts.h>               //CAknEdwinState
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr* CPluginFepManagerHwr::NewL(CPenInputImePluginJp& aOwner,
-                                                 RPeninputServer* aPenInputServer)
-    {
-    CPluginFepManagerHwr* self = new(ELeave)CPluginFepManagerHwr(aOwner, aPenInputServer);
-    CleanupStack::PushL(self);
-    self->BaseConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetNumberModeKeyMappingL
-// Set layout UI current number mode key mapping.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetNumberModeKeyMappingL(
-    TAknEditorNumericKeymap aAknEditorNumericKeymap )
-    {
-    iNumberKeyMapping = aAknEditorNumericKeymap;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::HandleCommandL
-// Handle command come from FEP.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::HandleCommandL(TInt aCommandId,TInt aParam)
-    {
-    if( aCommandId == ECmdPenInputSetWindowPos)
-        {
-        return;
-        }
-    CPluginFepManagerBase::HandleCommandL(aCommandId, aParam);
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::CPluginFepManagerHwr
-// C++ default constructor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerHwr::CPluginFepManagerHwr(CPenInputImePluginJp& aOwner,
-                                           RPeninputServer* aPenInputServer)
-    :CPluginFepManagerBase(aOwner, aPenInputServer)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerHwr::SetLayoutRange
-// Set layout primary range.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CPluginFepManagerHwr::SetLayoutRange(const CAknEdwinState* aEditorState)
-    {
-    CPluginFepManagerBase::SetLayoutRange(aEditorState);
-
-    //set number key mapping
-    if ( iPermittedRange == ERangeNumber)
-        {
-        SendCommandToServer( ECmdPenInputEditorNumericKeyMap,
-                             iNumberKeyMapping );
-        }
-    else
-        {
-        //for alphanumeric editor, always use EAknEditorAlphanumericNumberModeKeymap
-        SendCommandToServer( ECmdPenInputEditorNumericKeyMap,
-                             EAknEditorAlphanumericNumberModeKeymap );
-        }
-    }
-
- // End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagervkb.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2002-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:            VKB layout UI class implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "pluginfepmanagervkb.h"
-#include "peninputimepluginjp.h"
-#include "eikon.hrh"
-
-#include <aknedsts.h>               //CAknEdwinState
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb* CPluginFepManagerVkb::NewL(CPenInputImePluginJp& aOwner,
-                                                 RPeninputServer* aPenInputServer)
-    {
-    CPluginFepManagerVkb* self = new(ELeave)CPluginFepManagerVkb(aOwner, aPenInputServer);
-    CleanupStack::PushL(self);
-    self->BaseConstructL(); 
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CPluginFepManagerVkb::CPluginFepManagerVkb
-// constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CPluginFepManagerVkb::CPluginFepManagerVkb(CPenInputImePluginJp& aOwner,
-                                           RPeninputServer* aPenInputServer)
-    :CPluginFepManagerBase(aOwner, aPenInputServer)
-    {
-    }
-
-// End Of File
--- a/fep/aknfep/peninputplugins/peninputimepluginjp/srcdata/10282419.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
-* Copyright (c) 1028 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:            Resource definitions for project peninputimepluginjp
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "registryinfo.rh"
-
-// Declares info for two implementations
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x10282419;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x10207363;
-			implementations = 
-				{
-				// Info for CImplementation1
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = 0x10282419;
-					version_no = 1;
-					display_name = "Japanese Hwr input method plugin";
-					//supported language
-					default_data = "1||32||160";
-					//supported IME impl id
-					opaque_data= "32||160";
-					}
-				};
-			}
-		};
-	}
-
-// End Of File
--- a/fep/aknfep/resource/100056de.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 1000 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:           
-*        AknFep ecom resource file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include <eikon.rh>
-#include <ecom/registryinfo.rh>
-
-RESOURCE REGISTRY_INFO theInfo
-	{
-	dll_uid = 0x100056de;
- 	interfaces = 
-		{		
-		INTERFACE_INFO
-			{
-			interface_uid = 0x1020233F;		
-			implementations =
-				{
-				IMPLEMENTATION_INFO 
-					{
-					implementation_uid = 0x101FD65A;
-					version_no = 1;
-					display_name = "AknFEP";
-					}
-				};
-			}
-		};
-	}
-
-// End of file
--- a/fep/aknfep/resource/AknFep.rss	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1937 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*       Resource file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikon.rh>
-#include <avkon.rh>
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-#include <avkon.hrh>
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-
-#include "AknFepGlobalEnums.h"
-
-#include <avkon.rsg>
-#include <avkon.loc>
-#include <avkonsct.loc>
-
-#include <avkon.mbg>
-#include "AknFep.hrh"
-
-NAME AKFP
-
-RESOURCE RSS_SIGNATURE { }
-
-#define qtn_aknfep_text_case_character_set ".!?¿¡"<0xFF0E><0xFF01><0xFF1F><0x3002><0x3001>
-
-// Number mode star key mappings
-#define aknfep_number_mode_keymap_standard "*+pw"
-#define aknfep_number_mode_keymap_plain ""
-#define aknfep_number_mode_keymap_calculator "+-*/"
-#define aknfep_number_mode_keymap_converter "+-E"
-#define aknfep_number_mode_keymap_to_field "+"
-#define aknfep_number_mode_keymap_fixed_dialling "*+pw?"
-#define aknfep_number_mode_keymap_sat "*+"
-#define aknfep_number_mode_keymap_sat_hidden "*"
-
-#define qtn_aknfep_thai_sct_av1 <0x0e34>
-#define qtn_aknfep_thai_sct_av2 <0x0e31><0x0e36>
-#define qtn_aknfep_thai_sct_av3 <0x0e35><0x0e37>
-#define qtn_aknfep_thai_sct_bv1 <0x0e38>
-#define qtn_aknfep_thai_sct_bv2 <0x0e39>
-#define qtn_aknfep_thai_sct_tone <0x0e48><0x0e49><0x0e4a><0x0e4b>
-#define qtn_aknfep_thai_sct_bd <0x0e3a>
-#define qtn_aknfep_thai_sct_ad1 <0x0e4c><0x0e4d>
-#define qtn_aknfep_thai_sct_ad2 <0x0e47>
-#define qtn_aknfep_thai_sct_ad3 <0x0e4e>
-#define qtn_aknfep_thai_sct_non <0x0e2f><0x0e3f><0x0e46><0x0e4f>
-#define qtn_aknfep_thai_sct_non_thai_digit <0x0e50><0x0e51><0x0e52><0x0e53><0x0e54><0x0e55><0x0e56><0x0e57><0x0e58><0x0e59>
-#define qtn_aknfep_thai_sct_lv <0x0e40><0x0e41><0x0e42><0x0e43><0x0e44>
-#define qtn_aknfep_thai_sct_fv1 <0x0e30><0x0e32><0x0e33>
-#define qtn_aknfep_thai_sct_fv2 <0x0e45>
-#define qtn_aknfep_thai_sct_fv3 <0x0e24><0x0e26>
-#define qtn_aknfep_thai_sct_extra_zero_character <0x0030><0x0020><0x000a>
-
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_standard
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_standard;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_calculator
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_calculator;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_converter
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_converter;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_fixed_dialling
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_fixed_dialling;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_sat
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_sat;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_to_field
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_to_field;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_star_common
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_non qtn_aknfep_thai_sct_non_thai_digit qtn_sct_special_characters_lower  ;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_0_common
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_lv qtn_aknfep_thai_sct_fv1 qtn_aknfep_thai_sct_fv2 qtn_aknfep_thai_sct_fv3 qtn_aknfep_thai_sct_extra_zero_character;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_star_cons
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_av1 qtn_aknfep_thai_sct_av2 qtn_aknfep_thai_sct_av3 qtn_aknfep_thai_sct_bv1 qtn_aknfep_thai_sct_bv2 qtn_aknfep_thai_sct_tone qtn_aknfep_thai_sct_bd qtn_aknfep_thai_sct_ad1 qtn_aknfep_thai_sct_ad2 qtn_aknfep_thai_sct_ad3 qtn_aknfep_thai_sct_non qtn_aknfep_thai_sct_non_thai_digit qtn_sct_special_characters_lower ;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_0_cons
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars =  qtn_aknfep_thai_sct_lv qtn_aknfep_thai_sct_fv1 qtn_aknfep_thai_sct_fv2 qtn_aknfep_thai_sct_fv3 qtn_aknfep_thai_sct_extra_zero_character;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_star_av1_bv1
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_tone qtn_aknfep_thai_sct_ad1 qtn_aknfep_thai_sct_non qtn_aknfep_thai_sct_non_thai_digit qtn_sct_special_characters_lower ;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_0_av1_bv1
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_lv qtn_aknfep_thai_sct_fv1 qtn_aknfep_thai_sct_fv2 qtn_aknfep_thai_sct_fv3 qtn_aknfep_thai_sct_extra_zero_character;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_star_av2_bv2
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_tone qtn_aknfep_thai_sct_non qtn_aknfep_thai_sct_non_thai_digit qtn_sct_special_characters_lower ;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_0_av2_bv2
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_lv qtn_aknfep_thai_sct_fv1 qtn_aknfep_thai_sct_fv2 qtn_aknfep_thai_sct_fv3 qtn_aknfep_thai_sct_extra_zero_character;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_star_av3
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_tone qtn_aknfep_thai_sct_ad2 qtn_aknfep_thai_sct_non qtn_aknfep_thai_sct_non_thai_digit qtn_sct_special_characters_lower ;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_thai_0_av3
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = qtn_aknfep_thai_sct_lv qtn_aknfep_thai_sct_fv1 qtn_aknfep_thai_sct_fv2 qtn_aknfep_thai_sct_fv3 qtn_aknfep_thai_sct_extra_zero_character;
-            }
-        };
-    }
-
-//these are used by general settings...
-
-RESOURCE NUMBER_INT16 r_chinfep_chinese_input_modes_PRC
-    {
-    value = EPinyin | EStroke;
-    }
-
-RESOURCE NUMBER_INT16 r_chinfep_chinese_input_modes_HK
-    {
-    value = EStroke;
-    }
-
-RESOURCE NUMBER_INT16 r_chinfep_chinese_input_modes_Taiwan
-    {
-    value = EZhuyin;
-    }
-
-///
-
-
-RESOURCE DIALOG r_aknfep_help_text
-    {
-    flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
-    buttons = R_AVKON_SOFTKEYS_BACK;
-    items=
-        {
-        DLG_LINE
-            {
-            type = EAknCtPopupHeadingPane;
-            id = EAknMessageQueryHeaderId;
-            control = AVKON_HEADING
-                {
-                label = qtn_chi_heading_instr;
-                headinglayout = R_AVKON_WML_SIGN_QUERY_HEADING_PANE;
-                };
-            },
-        DLG_LINE
-            {
-            type = EAknCtMessageQuery;
-            id = EAknMessageQueryContentId;
-            control = AVKON_MESSAGE_QUERY
-                {
-                message = qtn_chi_input_help_instr;
-                };
-            }
-        };
-    }
-
-
-// ---------------------------------------------------------------------------
-// r_aknfep_text_kuten_invalid_error
-// This string is used for Kuten input for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_empty_cancel_empty
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;}
-        };
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-//----------------------------------------------------------------------------
-//r_aknfep_softkeys_ok_select_cancel
-//
-//----------------------------------------------------------------------------
-//
-
-RESOURCE CBA r_aknfep_softkeys_ok_select_cancel
-	{
-	buttons =
-		{
-		CBA_BUTTON {id=EAknSoftkeySelect;txt=text_softkey_select;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeySelect;txt=text_softkey_select;}
-		};
-	}
-RESOURCE CBA r_aknfep_softkeys_ok_cancel_select
-	{
-	buttons =
-		{
-		CBA_BUTTON {id=EAknSoftkeyOk;txt=text_softkey_ok;},
-        	CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        	CBA_BUTTON {id=EAknSoftkeySelect;txt=text_softkey_select;}
-		};
-	}
-#endif
-// ---------------------------------------------------------------------------
-// r_aknfepuictrljapanesekuten_query
-// This query dialog is used for Kuten input for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_aknfepuictrljapanesekuten_query
-    {
-    flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
-    buttons = r_aknfep_softkeys_empty_cancel_empty;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_DATA_QUERY
-                {
-                layout = EDataLayout;
-                label = qtn_japin_prmpt_kuten_code;
-                control = EDWIN
-                    {
-                    flags = EEikEdwinNoHorizScrolling;
-                    width = 5;  //  AKNTAQUERY_EDWIN_WIDTH;
-                    //lines = AKNTAQUERY_EDWIN_LINES;
-                    maxlength = 4;  // AKNTAQUERY_EDWIN_MAXLENGTH;
-                    allowed_input_modes=EAknEditorNumericInputMode;
-                    default_input_mode=EAknEditorNumericInputMode;
-                    special_character_table=0;
-                    avkon_flags = EAknEditorFlagNoLRNavigation | EAknEditorFlagSupressShiftMenu;
-                    // added to limit expanding in forms.
-                    // If you want full screen use 6 here
-                    max_view_height_in_lines = 5;   // AKNTAQUERY_EDWIN_LINES;
-                    // if you have the line above, you must have this.
-                    // It's calculable from LAF
-                    base_line_delta = 21;
-                    };
-                };
-            }
-        };
-    }
-
-STRUCT HASH_KEY_LOOP
-    {
-    STRUCT modes[];
-    }
-
-
-//
-// TEXT BUFFERS
-//
-RESOURCE LBUF r_aknfep_text_case_character_set
-    {
-    txt=qtn_aknfep_text_case_character_set;
-    }
-
-// User DB view option
-RESOURCE LBUF r_aknfep_options_user_db_dlg
-    {
-    txt = qtn_chi_chinese_user_db_management;
-    }
-
-RESOURCE LBUF r_aknfep_options_input_language
-    {
-    txt = text_pup_option_input_language;
-    }
-
-// Chinese input mode option
-RESOURCE LBUF r_aknfep_options_input_mode_chi
-    {
-    txt = qtn_chi_pup_option_input_method;
-    }
-
-// Chinese CangJie mode selection option
-RESOURCE LBUF r_aknfep_options_cangjie_mode
-    {
-    txt = qtn_chi_pup_option_cangjie_mode;
-    }
-
-
-RESOURCE LBUF r_aknfep_options_edit_submenu_title
-    {
-    txt = qtn_options_edit;
-    }
-
-
-RESOURCE LBUF r_aknfep_softkey_ccpu_cancel
-    {
-    txt = text_softkey_cancel;
-    }
-
-
-
-RESOURCE LBUF r_aknfep_softkey_ccpu_start
-    {
-    txt = text_softkey_start;
-    }
-
-
-RESOURCE LBUF r_aknfep_softkey_copy
-    {
-    txt = text_softkey_copy;
-    }
-
-
-RESOURCE LBUF r_aknfep_softkey_cut
-    {
-    txt = text_pup_option_cut;
-    }
-
-
-RESOURCE LBUF r_aknfep_options_edit_menu_copy_text
-    {
-    txt = qtn_editing_shift_menu_copy;
-    }
-
-
-RESOURCE LBUF r_aknfep_options_edit_menu_cut_text
-    {
-    txt = qtn_editing_shift_menu_cut;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_only_chinese_text
-    {
-    txt = qtn_chi_chinese_user_db_note_only_chinese;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_too_short_text
-    {
-    txt = qtn_chi_chinese_user_db_note_too_short;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_invalid_phrase_text
-    {
-    txt = qtn_chi_chinese_user_db_note_invalid_phrase;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_phrase_existed_text
-    {
-    txt = qtn_chi_chinese_user_db_note_already_in_db;  // change "qtn_chi_chinese_user_db_note_phrase_existed "to qtn_chi_chinese_user_db_note_already_in_db
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_not_existed_text
-    {
-    txt = qtn_chi_chinese_user_db_note_phrase_not_existed;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_note_db_have_no_space_text
-    {
-    txt = qtn_chi_chinese_user_db_note_db_have_no_space;
-    }
-
-RESOURCE LBUF r_aknfep_chinese_user_db_phrase_too_long_text
-    {
-    txt = qtn_chi_chinese_user_db_note_phrase_too_long;
-    }
-
-
-//
-// CBA SOFTKEYS
-//
-RESOURCE CBA r_aknfep_softkeys_empty_previous
-    {
-    buttons =
-        {
-        CBA_BUTTON {txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyPrevious; txt=text_softkey_previous;},
-        CBA_BUTTON {txt=text_softkey_empty;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_spell_previous
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeySpell; txt=text_softkey_spell;},
-        CBA_BUTTON {id=EAknFepSoftkeyPrevious; txt=text_softkey_previous;},
-        CBA_BUTTON {id=EAknFepSoftkeySpell; txt=text_softkey_spell;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_symbol_previous
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeySymbol; txt=text_softkey_symbol;},
-        CBA_BUTTON {id=EAknFepSoftkeyPrevious; txt=text_softkey_previous;},
-        CBA_BUTTON {id=EAknFepSoftkeySymbol; txt=text_softkey_symbol;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_spell_empty
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeySpell; txt=text_softkey_spell;},
-        CBA_BUTTON {txt=text_softkey_empty;},
-        CBA_BUTTON {txt=text_softkey_empty;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_empty_cancel_select
-// This CBA is used for Next word prediction popup for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_empty_cancel_select
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyCloseWindow;txt=qtn_japin_edit_predict_stopprediction;},
-        CBA_BUTTON {id=EAknFepSoftkeySelectCandidate;txt=qtn_msk_selectcandidate;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_convert_empty_select
-// This CBA is used for Prediction popup for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_convert_other_select
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeyConvert; txt=text_softkey_convert;},
-        CBA_BUTTON {id=EAknFepSoftkeyOtherModes; txt=qtn_japin_edit_othermodes;},
-        CBA_BUTTON {id=EAknFepSoftkeySelectCandidate;txt=qtn_msk_selectcandidate;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_predict_other_commit
-// This CBA is used for transitory input without showing candidate
-// and being available predictive input for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_predict_other_commit
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeyPredictiveOn; txt=qtn_japin_edit_predict_startprediction;},
-        CBA_BUTTON {id=EAknFepSoftkeyOtherModes; txt=qtn_japin_edit_othermodes;},
-        CBA_BUTTON {id=EAknFepSoftkeyCommit;txt=qtn_msk_commit;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_predict_other_commit
-// This CBA is used for transitory input without showing candidate
-// and being not available predictive input for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_empty_other_commit
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyOtherModes; txt=qtn_japin_edit_othermodes;},
-        CBA_BUTTON {id=EAknFepSoftkeyCommit;txt=qtn_msk_commit;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_empty_empty_commit
-// This CBA is used for Candidate popup for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_empty_empty_commit
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyCommit;txt=qtn_msk_commit;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_retroactive_half_width
-// This CBA is used for Retroactive popup for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_retroactive_half_width
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeyRetroActiveHalf; txt=qtn_japin_edit_half_width;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyCommit;txt=qtn_msk_commit;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_softkeys_retroactive_full_width
-// This CBA is used for Retroactive popup for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE CBA r_aknfep_softkeys_retroactive_full_width
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknFepSoftkeyRetroActiveFull; txt=qtn_japin_edit_full_width;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknFepSoftkeyCommit;txt=qtn_msk_commit;}
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_aknfep_text_kuten_invalid_error
-// This string is used for Kuten input for Japanese variant
-// ---------------------------------------------------------------------------
-//
-RESOURCE LBUF r_aknfep_text_kuten_invalid_error
-    {
-    txt = qtn_japin_text_kuten_code_invalid_error;
-    }
-
-RESOURCE HASH_KEY_LOOP r_hash_key_loop_all_input_modes
-    {
-    modes =
-        {
-        NUMBER_INT32
-            {
-            value = EHiraganaKanji;
-            },
-        NUMBER_INT32
-            {
-            value = EKatakana;
-            },
-        NUMBER_INT32
-            {
-            value = EPRCFind;
-            },
-        NUMBER_INT32
-            {
-            value = EPinyin;
-            },
-        NUMBER_INT32
-            {
-            value = EZhuyinFind;
-            },
-        NUMBER_INT32
-            {
-            value = EZhuyin;
-            },
-        NUMBER_INT32
-            {
-            value = EStrokeFind;
-            },
-        NUMBER_INT32
-            {
-            value = EStroke;
-            },
-        NUMBER_INT32
-            {
-            value = ECangJie;
-            },
-        NUMBER_INT32
-            {
-            value = EHangul;
-            },
-        NUMBER_INT32
-            {
-            value = ELatin;
-            },
-        NUMBER_INT32
-            {
-            value = ENumber;
-            },
-        NUMBER_INT32
-            {
-            value = EHindi;
-            },
-        NUMBER_INT32
-            {
-            value = ENativeNumber;
-            }   
-        };
-    }
-
-
-RESOURCE TBUF r_aknfep_number_mode_keymap_standard { buf = aknfep_number_mode_keymap_standard; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_plain { buf = aknfep_number_mode_keymap_plain; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_calculator { buf = aknfep_number_mode_keymap_calculator; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_converter { buf = aknfep_number_mode_keymap_converter; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_to_field { buf = aknfep_number_mode_keymap_to_field; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_fixed_dialling { buf = aknfep_number_mode_keymap_fixed_dialling; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_sat { buf = aknfep_number_mode_keymap_sat; }
-RESOURCE TBUF r_aknfep_number_mode_keymap_sat_hidden { buf = aknfep_number_mode_keymap_sat_hidden; }
-
-
-RESOURCE MENU_PANE r_aknfep_edit_submenu
-    {
-    items=
-        {
-    MENU_ITEM
-        {
-        command = EAknEditMenuCmdCopyText;
-        txt = qtn_editing_shift_menu_copy;
-        },
-    MENU_ITEM
-        {
-        command = EAknEditMenuCmdCutText;
-        txt = qtn_editing_shift_menu_cut;
-        },
-    MENU_ITEM
-        {
-        command = EEikCmdEditCopy;
-        txt = text_pup_option_copy;
-        },    
-    MENU_ITEM
-        {
-        command = EEikCmdEditCut;
-        txt = text_pup_option_cut;
-        },
-    MENU_ITEM
-        {
-        command = EEikCmdEditPaste;
-        txt = text_pup_option_paste;
-        }
-      };
-    }
-
-
-// For stylus ccpu-menu.
-RESOURCE LBUF r_aknfep_stylus_ccpu_menu_paste
-    {
-    txt = text_pup_option_paste;
-    }
-
-RESOURCE CBA r_aknfep_softkeys_finger
-    {
-    buttons = 
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyOk; txt=text_softkey_ok;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;}        
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_finger_option_previous
-    {
-    buttons = 
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknFepSoftkeyPrevious; txt=text_softkey_previous;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;}
-        };
-    }
-    
-RESOURCE CBA r_aknfep_softkeys_finger_spell_previous
-    {
-    buttons = 
-        {
-        CBA_BUTTON {id=EAknFepSoftkeySpell; txt=text_softkey_spell;},
-        CBA_BUTTON {id=EAknFepSoftkeyPrevious; txt=text_softkey_previous;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;}
-        };
-    }
-    
-RESOURCE CBA r_aknfep_softkeys_finger_ok_cancel
-    {
-    buttons = 
-        {
-        CBA_BUTTON {id=EAknSoftkeyOk; txt=text_softkey_ok;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;}
-        };
-    }    
-       
-RESOURCE CBA r_aknfep_softkeys_finger_cancel
-    {
-    buttons = 
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty; txt=text_softkey_empty;}
-        };
-    }     
-       
-RESOURCE TBUF r_aknfep_prompt_text
-    {
-    buf = text_t9_edit_query;
-    }   
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-RESOURCE TBUF r_aknfep_pred_input_settings_title
-    {
-    buf = qtn_pred_input_settings_title;
-    }
-    
-    
-RESOURCE TBUF r_aknfep_pred_options_input_options
-    {
-    buf = qtn_pred_options_input_options;
-    }
-
-//
-// CBA SOFTKEYS
-//
-RESOURCE CBA r_aknfep_softkeys_spell_cancel_select
-    {
-    buttons=
-        {
-        CBA_BUTTON {id=EAknFepSoftkeySpell; txt=text_softkey_spell;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeySelect; txt=text_softkey_select;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_options_back_change
-	{
-	buttons=
-	    {
-	    CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
-	    CBA_BUTTON {id=EAknSoftkeyBack; txt=text_softkey_back;},
-	    CBA_BUTTON {id=EAknSoftkeyChange; txt=qtn_msk_change;}
-	    };
-	}
-
-RESOURCE CBA r_aknfep_softkeys_options_back__context_options
-    {
-    buttons=
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyBack; txt=text_softkey_back;},
-        CBA_BUTTON {id=EAknSoftkeyContextOptions; txt=text_softkey_option;}
-        };
-    }
-
-// For Input Ooption Menu
-RESOURCE MENU_PANE r_aknfep_pred_input_options_submenu
-{
-items=
-    {
-   MENU_ITEM
-        {
-        command = EAknFepCmdPredActivate;
-        txt = qtn_pred_options_predictive_input_activate;
-        },
-   MENU_ITEM
-        {
-        command = EAknFepCmdPredDeactivate;
-        txt = qtn_pred_options_predictive_input_deactivate;
-        },
-#ifdef __USER_DICTIONARY_EDITING__ 
-   MENU_ITEM
-        {
-        command = EAknFepCmdPredEditUserDictionary;
-        txt = qtn_pred_options_user_dictionary;
-        },
-#endif //__USER_DICTIONARY_EDITING__ 
-    MENU_ITEM
-        {
-        command = EAknFepCmdPredSettings;
-        txt = qtn_pred_options_settings;
-        },
-   MENU_ITEM
-        {
-        command = EAknFepCmdPredInputLanguage;
-        txt = qtn_pred_options_input_language;
-        },
-    MENU_ITEM
-        {
-        command = EAknFepCmdPredHelp;
-        txt = qtn_pred_suboption_help;
-        }
-    };
-}
-
-
-// For Setting Dialog
-// ---------------------------------------------------------
-//   
-//   r_predictivesettingdialog_menubar
-//   Menubar for predictive setting dialog
-//
-// ---------------------------------------------------------
-//
-RESOURCE MENU_BAR r_predictivesettingdialog_menubar
-    {
-    titles =
-        {
-        MENU_TITLE 
-			{
-			menu_pane = r_predictivesettingdialog_menu;
-			}
-        };
-    }
-
-
-// ---------------------------------------------------------
-//   
-//   r_predictivesettingdialog_menu
-//   Menu for "Options"
-//
-// ---------------------------------------------------------
-//
-RESOURCE MENU_PANE r_predictivesettingdialog_menu
-    {
-    items = 
-        {
-        // added the new Options menu command here
-        MENU_ITEM 
-		    {
-			command = EAknFepCmdPredSettingChange;  
-			txt = qtn_options_change;
-			},
-		MENU_ITEM 
-		    {
-			command = EAknCmdHelp;  
-			txt = qtn_options_help;
-			},
-        MENU_ITEM 
-		    {
-			command = EAknCmdExit;   
-			txt = qtn_options_exit;
-			}
-        };
-    }
-
-
-	
-RESOURCE DIALOG r_predictivesetting_dialog
-{
-	flags   = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | 
-			  EEikDialogFlagWait | EEikDialogFlagCbaButtons;
-
-	//Buttons are Select and Back
-	buttons = r_aknfep_softkeys_options_back_change;
-	
-	items =
-	{
-		DLG_LINE
-		{
-			// This is the control type - its our own setting item list custom control 
-			type 	= 	EAknCtLastControlId;
-			
-			// This is the dialog id - any value can be used as there are no 
-			//		other controls on the dialog
-			id 		= 	12;
-			
-			itemflags	=	EEikDlgItemTakesEnterKey;
-			
-			// the control data is a setting item list 
-			control = AVKON_SETTING_ITEM_LIST 
-			{ 
-				
-				// These are the settings we want to edit 
-				items = 
-				{
-				AVKON_SETTING_ITEM
-		            {
-		            identifier = EAknFepCmdPredAutoComplSetting;
-					setting_page_resource = r_autowordcompl_page;
-		            associated_resource = r_autowordcompl_setting_texts;
-		            name = qtn_pred_word_completion;
-		            },
-				AVKON_SETTING_ITEM
-					{
-					identifier = EAknFepCmdPredAutoComplMultiSetting;
-					setting_page_resource = r_autowordcomplmulti_page;
-					name = qtn_pred_word_completion;
-					},
-				AVKON_SETTING_ITEM
-					{
-					identifier = EAknFepCmdPredTypingCorrectionSetting;
-					setting_page_resource = r_typingcorrection_page;
-					associated_resource = r_typingcorrection_page_texts;		// gives available options
-					name = qtn_pred_typing_correction;
-					},
-				AVKON_SETTING_ITEM
-					{
-					identifier = EAknFepCmdPredNumberCandidateSetting;
-					setting_page_resource = r_numbercandidates_page;
-					associated_resource = r_numbercandidates_setting_texts;
-					name = qtn_pred_number_candidates;
-					},
-			
-		        AVKON_SETTING_ITEM
-					{
-		            identifier = EAknFepCmdPredPrimaryCandidateSetting;
-					setting_page_resource = r_primarycandidate_page;
-		            associated_resource = r_primarycandidate_setting_texts;
-		            name = qtn_pred_primary_candidate;
-		            }
-				};
-			};
-		}
-	};	
-}
-// ---------------------------------------------------------
-//   
-// Settings Pages
-//
-// defines the AVKON_SETTING_PAGE structures referred to in 
-// setting_page_resource fields above.
-// 
-// ---------------------------------------------------------
-//   
-
-RESOURCE AVKON_SETTING_PAGE r_autowordcompl_page
-	{
-	label=qtn_pred_word_completion;
-	type = EAknCtPopupSettingList;
-	editor_resource_id = r_autowordcompl;
-	}
-
-RESOURCE AVKON_SETTING_PAGE r_autowordcomplmulti_page
-	{
-	label=qtn_pred_word_completion;
-	type = EAknCtPopupSettingList;
-	editor_resource_id = r_autowordcomplmulti;
-	softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__MARK;
-	}
-
-RESOURCE AVKON_SETTING_PAGE r_typingcorrection_page
-	{
-	label=qtn_pred_typing_correction;
-	type = EAknCtPopupSettingList;
-	editor_resource_id = r_typingcorrection;
-	}
-
-RESOURCE AVKON_SETTING_PAGE r_numbercandidates_page
-	{
-	label=qtn_pred_number_candidates;
-	type = EAknCtPopupSettingList;
-	editor_resource_id = r_numbercandidates;
-	}
-	
-RESOURCE AVKON_SETTING_PAGE r_primarycandidate_page
-	{
-	label=qtn_pred_primary_candidate;
-	type = EAknCtPopupSettingList;
-	editor_resource_id = r_primarycandidate;
-	}
-	
-
-// ---------------------------------------------------------
-//   
-// Editor Controls
-//
-// This section defines the controls referred to from the
-// editor_resource_id sections of the AVKON_SETTING_PAGE
-// resources above.
-// 
-// ---------------------------------------------------------
-//   	
-
-RESOURCE POPUP_SETTING_LIST r_autowordcompl
-	{
-	}
-
-RESOURCE POPUP_SETTING_LIST r_autowordcomplmulti
-	{
-	}
-
-RESOURCE POPUP_SETTING_LIST r_typingcorrection
-	{
-	}
-
-RESOURCE POPUP_SETTING_LIST r_numbercandidates
-	{
-	}
-	
-RESOURCE POPUP_SETTING_LIST r_primarycandidate
-	{
-	}
-
-// ---------------------------------------------------------
-//   
-// Second level structures used from settings pages
-// Defines - text strings to be used in display, 
-// and their mapping to enumerated values.
-// 
-// ---------------------------------------------------------
-// 
-
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_autowordcompl_setting_texts
-	{
-	setting_texts_resource = r_autowordcompl_settingitem_texts;
-	}
-
-RESOURCE ARRAY r_autowordcompl_settingitem_texts
-	{
-	items =
-	    {
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 1;
-	        text = qtn_pred_autocompl_on;
-	        },
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 0;
-	        text = qtn_pred_autocompl_off;
-	        }
-	    };
-	}
-	
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_autowordcomplmulti_setting_texts
-	{
-	setting_texts_resource = r_autowordcomplmulti_settingitem_texts;
-	popped_up_texts_resource = r_autowordcomplmulti_editor_texts;
-	}	
-
-RESOURCE ARRAY r_autowordcomplmulti_settingitem_texts
-	{
-	items =
-	    {
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 0;
-	        text = qtn_pred_setting_itut;
-	        },
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 1;
-	        text = qtn_pred_setting_qwerty;
-	        },
-        AVKON_ENUMERATED_TEXT
-	        {
-	        value = 2;
-	        text = qtn_pred_setting_half_qwerty;
-	        }
-	    };
-	}
-
-RESOURCE TBUF r_aknfep_pred_setting_itut
-    {
-    buf = qtn_pred_setting_itut;
-    }
-
-RESOURCE TBUF r_aknfep_pred_setting_qwerty
-    {
-    buf = qtn_pred_setting_qwerty;
-    }
-RESOURCE TBUF r_aknfep_pred_setting_half_qwerty
-    {
-    buf = qtn_pred_setting_half_qwerty;
-    } 
-RESOURCE ARRAY r_autowordcomplmulti_editor_texts
-	{
-	items = 
-		{
-		LBUF { txt = qtn_pred_setting_itut;},
-		LBUF { txt = qtn_pred_setting_qwerty;}
-		};
-	}
-	
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_typingcorrection_page_texts
-	{
-	setting_texts_resource = r_typingcorrection_item_texts;
-	popped_up_texts_resource = r_typingcorrection_editor_texts;
-	}
-	
-RESOURCE ARRAY r_typingcorrection_item_texts
-	{
-	items =
-	    {
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 2;
-	        text = qtn_pred_correction_high;
-	        },
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 1;
-	        text = qtn_pred_correction_medium;
-	        },
-		AVKON_ENUMERATED_TEXT
-	        {
-	        value = 0;
-	        text = qtn_pred_correction_off;
-	        }
-	    };
-	}
-
-RESOURCE ARRAY r_typingcorrection_editor_texts
-	{
-	items = 
-		{
-		LBUF { txt = qtn_pred_correction_high;},
-		LBUF { txt = qtn_pred_correction_medium;},
-		LBUF { txt = qtn_pred_correction_off;}
-		};
-	}
-
-	
-
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_numbercandidates_setting_texts
-	{
-	setting_texts_resource = r_numbercandidates_settingitem_texts;
-	}
-
-RESOURCE ARRAY r_numbercandidates_settingitem_texts
-	{
-	items =
-	    {
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 1;
-	        text = qtn_pred_number_cand_shown;
-	        },
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 0;
-	        text = qtn_pred_number_cand_not_shown;
-	        }
-	    };
-	}
-	
-	
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_primarycandidate_setting_texts
-	{
-	setting_texts_resource = r_primarycandidate_settingitem_texts;
-	}
-
-RESOURCE ARRAY r_primarycandidate_settingitem_texts
-	{
-	items =
-	    {
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 0;
-	        text = qtn_pred_primary_cand_suggested;
-	        },
-	    AVKON_ENUMERATED_TEXT
-	        {
-	        value = 1;
-	        text = qtn_pred_primary_cand_actually_entered;
-	        }
-	    };
-	}
-	
-		
-RESOURCE DIALOG r_predictivetextoff_confirmation_query
-	{
-	flags = EGeneralQueryFlags;
-	buttons = R_AVKON_SOFTKEYS_YES_NO;
-	items =
-		{
-		DLG_LINE
-			{
-			type = EAknCtQuery;
-			id = EGeneralQuery;
-			control = AVKON_CONFIRMATION_QUERY
-				{
-				layout = EConfirmationQueryLayout;
-				label = qtn_pred_turn_input_on_query;
-				};
-			}
-		};
-	}
-RESOURCE TBUF r_aknfep_pred_settings_closed
-    {
-    buf = qtn_pred_settings_closed;
-    }
-
-#ifdef __USER_DICTIONARY_EDITING__ 
-// For User Dictionary editing ->
-
-RESOURCE MENU_BAR r_udb_edit_options_menubar
-     {
-     titles =
-         {
-         MENU_TITLE { menu_pane = r_udb_edit_options_help_exit; },
-         MENU_TITLE { menu_pane = R_AVKON_MENUPANE_MARKABLE_LIST; },
-         MENU_TITLE { menu_pane = r_udb_edit_options_menupane; }
-         };
-     }
-
-RESOURCE MENU_PANE r_udb_edit_options_menupane
-    {
-    items=
-        {
-        MENU_ITEM
-            {
-            command = EAknFepPredDictionaryCmdEdit;
-            txt = qtn_pred_dictionary_option_edit;
-            },
-        MENU_ITEM
-            {
-            command=EAknFepPredDictionaryCmdAdd; 
-            txt=qtn_pred_dictionary_option_add;
-            },
-        MENU_ITEM
-            {
-            command=EAknFepPredDictionaryCmdDelete; 
-            txt=qtn_pred_dictionary_option_delete;
-            }
-        
-        };
-    }
-
-RESOURCE MENU_PANE r_udb_edit_options_help_exit
-    {
-    items=
-        {
-        MENU_ITEM 
-            {
-            command = EAknCmdHelp;  
-            txt = qtn_options_help;
-            },
-        MENU_ITEM 
-            {
-            command = EAknCmdExit;   
-            txt = qtn_options_exit;
-            }
-        };
-    }
-
-RESOURCE DIALOG r_user_dictionary_editing_dialog 
-    {
-    flags = EEikDialogFlagWait | EEikDialogFlagFillAppClientRect | EAknDialogMarkableList;
-    buttons = r_aknfep_softkeys_options_back__context_options; 
-    items = 
-        {
-        DLG_LINE
-            {
-            type = EAknCtSingleGraphicListBox;
-            id = ESelectionListControl;
-            itemflags = EEikDlgItemTakesEnterKey;
-            control = LISTBOX
-                {
-                flags = EAknListBoxMarkableList;
-                };                
-            },
-        DLG_LINE
-            {
-            itemflags = EEikDlgItemNonFocusing;
-            id = EFindControl;
-            type = EAknCtSelectionListFixedFind;
-            }
-        };
-    }
-
-RESOURCE DIALOG r_aknfep_pred_delete_confirmation_query
-    {
-    flags = EGeneralQueryFlags;
-    buttons = R_AVKON_SOFTKEYS_YES_NO;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_CONFIRMATION_QUERY
-                {
-                layout = EConfirmationQueryLayout;
-                };
-            }
-        };
-    }
-
-RESOURCE DIALOG r_aknfep_pred_user_dictionary_word_query
-    {
-    flags=EGeneralQueryFlags;
-    buttons=R_AVKON_SOFTKEYS_OK_CANCEL;
-    items=
-        {
-        DLG_LINE
-            {
-            type=EAknCtQuery;
-            id=EGeneralQuery;
-            control= AVKON_DATA_QUERY
-                {
-                    layout = EDataLayout;
-                    control=EDWIN
-                        {
-                        default_case = EAknEditorLowerCase; 
-                        allowed_case_modes = EAknEditorLowerCase | EAknEditorUpperCase;
-                        };
-                };
-            }
-        };
-    }
-
-RESOURCE TBUF r_aknfep_pred_userdict_editing_title
-    {
-    buf = qtn_pred_input_dictionary_editing_title;
-    }
-RESOURCE TBUF r_aknfep_pred_user_dictionary_heading_empty
-    {
-    buf = qtn_pred_dictionary_editing_heading_empty;
-    }
-RESOURCE TBUF r_aknfep_pred_user_dictionary_empty
-    {
-    buf = qtn_pred_dictionary_editing_empty;
-    }
-RESOURCE TBUF r_aknfep_pred_edit_query
-    {
-    buf = text_t9_edit_query;
-    }
-RESOURCE TBUF r_aknfep_pred_add_query
-    {
-    buf = text_t9_spell_query;
-    }
-RESOURCE TBUF r_aknfep_pred_delete_1_query
-    {
-    buf = qtn_pred_dictionary_option_confirm_1_deletion;
-    }
-RESOURCE TBUF r_aknfep_pred_delete_many_query
-    {
-    buf = qtn_pred_dictionary_option_confirm_deletions;
-    }
-RESOURCE TBUF r_aknfep_pred_msk_add_new
-    {
-    buf = qtn_msk_pred_add_new;
-    }
-RESOURCE TBUF r_aknfep_pred_msk_edit
-    {
-    buf = qtn_msk_edit;
-    }
-RESOURCE TBUF r_aknfep_pred_msk_context_options
-    { 
-    buf = text_softkey_option; 
-    }
-#endif //__USER_DICTIONARY_EDITING__
-
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-RESOURCE TBUF r_secondary_writing_lang_none
-    {
-    buf = qtn_set_secondary_writing_lang_none;
-    }
-
-RESOURCE TBUF r_input_language_settings_title
-    {
-    buf = qtn_set_title_settings_writing_language;
-    }
-RESOURCE AVKON_POPUP_SETTING_TEXTS r_language_setting_texts
-    {
-    setting_texts_resource = r_language_settingitem_texts;
-    }   
-
-RESOURCE ARRAY r_language_settingitem_texts
-    {
-    items =
-        {
-        AVKON_ENUMERATED_TEXT
-            {
-            value = 0;
-            text = qtn_set_secondary_writing_lang_none;
-            }
-        };
-    }
-RESOURCE DIALOG r_inputlanguage_dialog
-{
-    flags   = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect | 
-              EEikDialogFlagWait | EEikDialogFlagCbaButtons;
-
-    buttons = r_aknfep_softkeys_options_back_change;
-    
-    items =
-    {
-        DLG_LINE
-        {
-            // This is the control type - its our own setting item list custom control 
-            type    =   EAknCtLastControlId;
-            
-            // This is the dialog id - any value can be used as there are no 
-            //      other controls on the dialog
-            id      =   12;
-            
-            itemflags	=	EEikDlgItemTakesEnterKey;
-
-            // the control data is a setting item list 
-            control = AVKON_SETTING_ITEM_LIST 
-            { 
-                
-                // These are the settings we want to edit 
-                items = 
-                {
-                AVKON_SETTING_ITEM
-                    {
-                    identifier = EAknFepDualLanguageSettingDualInputPrimary;
-                    setting_page_resource = r_primary_input_language_setting_page;
-                    associated_resource = r_language_setting_texts;
-                    name = qtn_set_primary_writing_language;
-                    },
-                AVKON_SETTING_ITEM
-                    {
-                    identifier = EAknFepDualLanguageSettingDualInputSecondary;
-                    setting_page_resource = r_secondary_input_language_setting_page;
-                    associated_resource = r_language_setting_texts;
-                    name = qtn_set_secondary_writing_language;
-                    }
-                };
-            };
-        }
-    };  
-}
-
-RESOURCE POPUP_SETTING_LIST r_lang_editor
-    {
-    }
-
-RESOURCE AVKON_SETTING_PAGE r_primary_input_language_setting_page
-    {
-    // don't show setting number in setting page
-    number = EAknSettingPageNoOrdinalDisplayed;
-    label = qtn_set_primary_writing_language; //localised string for setting page label
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK; // softkeys for setting page
-    type = EAknCtPopupSettingList; // setting page type
-    editor_resource_id = r_lang_editor; // setting page editor
-    }
-
-RESOURCE AVKON_SETTING_PAGE r_secondary_input_language_setting_page
-    {
-    // don't show setting number in setting page
-    number = EAknSettingPageNoOrdinalDisplayed;
-    label = qtn_set_secondary_writing_language; //localised string for setting page label
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK; // softkeys for setting page
-    type = EAknCtPopupSettingList; // setting page type
-    editor_resource_id = r_lang_editor; // setting page editor
-    }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-// Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-// -----------------------------------------------------------------------------
-//
-//   r_aknfep_userdb_dlg_menubar
-//   Main menubar for use DB management dialog
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_aknfep_userdb_dlg_menubar
-    {
-    titles =
-        {
-        MENU_TITLE
-            {menu_pane = r_aknfep_userdb_dlg_menu;}
-        };
-    }
-
-// -----------------------------------------------------------------------------
-//
-//   r_aknfep_userdb_dlg_menu
-//   Menu for "Options in user DB management dialog"
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_aknfep_userdb_dlg_menu
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknCmdUserDBAdd;
-            txt = qtn_chi_chinese_user_db_options_new;// change "qtn_chi_chinese_user_db_options_add" to "qtn_chi_chinese_user_db_options_new";
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdUserDBEdit;
-            txt = qtn_chi_chinese_user_db_options_edit;
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdUserDBDelete;
-            txt = qtn_chi_chinese_user_db_delete;
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdMarkOrUnmark;
-            txt = qtn_options_list;
-            cascade = r_aknfep_mark_unmark_menupane;
-            }
-        };
-    }
-
-
-RESOURCE MENU_PANE r_aknfep_mark_unmark_menupane
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknCmdMark;
-            txt = qtn_options_list_mark_one;
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdUnmark;
-            txt = qtn_options_list_unmark_one;
-            },
-        MENU_ITEM
-            {
-            command = EAknMarkAll;
-            txt = qtn_options_list_mark_all;
-            },
-        MENU_ITEM
-            {
-            command = EAknUnmarkAll;
-            txt = qtn_options_list_unmark_all;
-            }
-        };
-    }
-
-// -----------------------------------------------------------------------------
-//
-// r_aknfep_listbox_data_query_dialog
-// Data query for add phrase.
-//
-// -----------------------------------------------------------------------------
-// 
-RESOURCE DIALOG r_aknfep_listbox_data_query_dialog
-    {
-    flags = EGeneralQueryFlags;
-    buttons = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_DATA_QUERY
-                {
-                layout = EDataLayout;
-//                label = STRING_r_listbox_add_item_dialog;
-                control = EDWIN
-                    {
-                    flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
-                    maxlength = 7;
-                    };
-                };
-            }
-        };
-    }
-
-// -----------------------------------------------------------------------------
-//
-// r_aknfep_listdlg_dialog
-// Dialog for user DB management
-//
-// -----------------------------------------------------------------------------
-// 
-RESOURCE DIALOG r_aknfep_listdlg_dialog
-    {
-    flags = EAknDialogSelectionList | EEikDialogFlagNotifyEsc;
-    buttons = r_aknfep_softkeys_list_options_exit_context;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtSingleGraphicListBox;
-            id = ESelectionListControl;
-            control= LISTBOX
-                {
-                flags = EAknListBoxMarkableList|EEikDialogFlagFillAppClientRect;
-                };
-            },
-        DLG_LINE
-            {
-            itemflags = EEikDlgItemNonFocusing;
-            id = EFindControl;
-            type = EAknCtSelectionListFixedFind;
-            }
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_list_options_exit_context
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit;},
-        CBA_BUTTON {id=EAknSoftkeyContextOptions; txt=text_softkey_option;}   
-        };
-    }
-
-// for context
-RESOURCE MENU_BAR r_aknfep_userdb_dlg_context_menubar
-    {
-    titles =
-        {
-        MENU_TITLE
-            {menu_pane = r_aknfep_userdb_dlg_context_menu;}
-        };
-    }
-
-RESOURCE MENU_PANE r_aknfep_userdb_dlg_context_menu
-    {
-    items =
-        {
-        MENU_ITEM
-            {
-            command = EAknCmdUserDBEdit;
-            txt = qtn_chi_chinese_user_db_options_edit;
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdUserDBDelete;
-            txt = qtn_chi_chinese_user_db_delete;
-            },
-        MENU_ITEM
-            {
-            command = EAknCmdMarkOrUnmark;
-            txt = qtn_options_list;
-            cascade = r_aknfep_mark_unmark_menupane;
-            }
-        };
-    }
-
-RESOURCE TBUF r_aknfep_delete_confirmation_text
-    {
-    buf = "Delete %N Phrase?";   //change "qtn_chi_chinese_user_db_query_delete_phrases" to "qtn_chi_chinese_user_db_query_delete_phrase"
-    } 
-
-RESOURCE TBUF r_aknfep_user_db_management_title
-    {
-    buf =qtn_chi_chinese_user_db_title; // change "qtn_chi_chinese_user_db_management_title" to "qtn_chi_chinese_user_db_title";
-    }
-
-RESOURCE TBUF r_aknfep_user_db_list_no_item_text
-    {
-    buf = qtn_chi_chinese_user_db_empty;
-    }
-
-RESOURCE TBUF r_aknfep_user_db_list_add_item_text
-    {
-    buf = qtn_chi_chinese_user_db_query_add; //change the "STRING_r_listbox_add_item_dialog" to " qtn_chi_chinese_user_db_query_add"
-    }
-
-RESOURCE TBUF r_aknfep_user_db_list_edit_item_text
-    {
-    buf = qtn_chi_chinese_user_db_options_edit;  //change the  "STRING_r_listbox_edit_item_dialog" to "qtn_chi_chinese_user_db_options_edit"
-    }
-     
-RESOURCE DIALOG r_aknfep_delete_query_dialog
-    {
-    flags = EGeneralQueryFlags;
-    buttons = R_AVKON_SOFTKEYS_YES_NO;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_CONFIRMATION_QUERY
-                {
-                layout = EConfirmationQueryLayout;
-                };
-            }
-        };
-    }
-
-//CBA add-add-exit
-RESOURCE CBA r_aknfep_softkeys_list_add_exit
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknCmdUserDBAdd;txt=qtn_chi_chinese_user_db_softkey_new;},// change "qtn_chi_chinese_user_db_options_add" to "qtn_chi_chinese_user_db_softkey_new" ;},
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit;},
-        CBA_BUTTON {id=EAknCmdUserDBAdd;txt=qtn_chi_chinese_user_db_softkey_new;} //change "qtn_chi_chinese_user_db_options_add" to "qtn_chi_chinese_user_db_softkey_new"
-        };
-    }
-
-//CBA options-mark/unmark-exit
-RESOURCE CBA r_aknfep_softkeys_list_options_exit_unmark
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions;txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit;},
-        CBA_BUTTON {id=EAknSoftkeyUnmark;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_list_options_exit_mark
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyOptions;txt=text_softkey_option;},
-        CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit;},
-        CBA_BUTTON {id=EAknSoftkeyMark;}
-        };
-    }
-
-RESOURCE DIALOG r_aknfep_wait_dialog
-    {
-    flags = EAknProgressNoteFlags;
-    buttons = R_AVKON_SOFTKEYS_EMPTY;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtNote;
-            id = EProgressNoteId;
-            control = AVKON_NOTE
-                {
-                layout = EProgressLayout;
-                singular_label = qtn_chi_chinese_user_db_note_deleting_phrases;
-                imagefile = "z:\\resource\apps\avkon2.mbm";
-                imageid = EMbmAvkonQgn_note_erased;
-                imagemask = EMbmAvkonQgn_note_erased_mask;
-                };
-            }
-        };
-    }
-
-//CBA Done-Done-Cancel
-RESOURCE CBA r_aknfep_softkeys_done_cancel_done
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyDone;txt=text_softkey_done;},
-        CBA_BUTTON {id=EAknSoftkeyCancel;txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeyDone;}
-        };
-    }
-
-RESOURCE DIALOG r_aknfep_quit_phrase_creation_query_dialog
-    {
-    flags = EGeneralQueryFlags;
-    buttons = R_AVKON_SOFTKEYS_YES_NO;
-    items =
-        {
-        DLG_LINE
-            {
-            type = EAknCtQuery;
-            id = EGeneralQuery;
-            control = AVKON_CONFIRMATION_QUERY
-                {
-                layout = EConfirmationQueryLayout;
-                };
-            }
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys__phrase_creation_empty_cancel_empty
-    {
-    buttons =
-        {
-        CBA_BUTTON {id=EAknSoftkeyEmpty;txt=text_softkey_empty;},
-        CBA_BUTTON {id=EAknSoftkeyCancel; txt=text_softkey_cancel;},
-        CBA_BUTTON {id=EAknSoftkeyEmpty;}
-        };
-    }
-
-RESOURCE CBA r_aknfep_softkeys_phrase_creation_select_cancel_select
-    {
-    buttons = 
-        { 
-        // This prevents EAknSoftkeySelect operating on a long keypress 
-        AVKON_CBA_BUTTON{id=EAknSoftkeySelect; longpressid=0; txt= text_softkey_select; }, 
-        CBA_BUTTON{id=EAknSoftkeyCancel; txt= text_softkey_cancel; }, 
-        AVKON_CBA_BUTTON{id=EAknSoftkeySelect; longpressid=0; txt= qtn_msk_select; } 
-        };
-    }
-    
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_plain
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_plain;
-            }
-        };
-    }
-
-RESOURCE SPECIAL_CHAR_TABLE r_aknfep_sct_numeric_mode_chars_sat_hidden
-    {
-    contents =
-        {
-        SCT_CHAR_SET
-            {
-            id = EAknSCTChiLatinInputModes;
-            chars = aknfep_number_mode_keymap_sat_hidden;
-            }
-        };
-    }
-     
-// End of file
--- a/fep/aknfep/rom/PeninputPluginKr.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Image description file for project PeninputPluginKr
-*
-*/
-
-#ifndef __PENINPUTPLUGINKR_IBY__
-#define __PENINPUTPLUGINKR_IBY__
-
-ECOM_PLUGIN(PeninputPluginKr.dll,E95A395D.rsc)
-data=DATAZ_\FEP_RESOURCES_DIR\PeninputPluginKrRes.r01 FEP_RESOURCES_DIR\PeninputPluginKrRes.r01
-data=DATAZ_\FEP_RESOURCES_DIR\PeninputPluginKrRes.r65 FEP_RESOURCES_DIR\PeninputPluginKrRes.r65
-data=ZSYSTEM\install\PeninputPluginKr_stub.sis    System\Install\PeninputPluginKr_stub.sis
-
-#endif // __PENINPUTPLUGINKR_IBY__
--- a/fep/aknfep/rom/aknfepResources.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2009 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 __AKNFEP_RESOURCES_IBY__
-#define __AKNFEP_RESOURCES_IBY__
-
-data=DATAZ_\FEP_RESOURCES_DIR\aknfep.rsc                                FEP_RESOURCES_DIR\aknfep.rsc
-
-#endif
\ No newline at end of file
--- a/fep/aknfep/rom/aknfep_variant.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*       IBY file for AknFep
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKNFEP_VARIANT_IBY__
-#define __AKNFEP_VARIANT_IBY__
-
-// ChinipFep Component
-ECOM_PLUGIN(avkonfep.dll,100056de.rsc)
-SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,aknfepuictrls)
-ECOM_PLUGIN(AknFepUiAvkonPlugin.dll,AknFepUiAvkonPlugin.rsc)
-
-#endif
-
-// End of file
--- a/fep/aknfep/rom/aknfepuiinterface.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       IBY file for AknFepUiInterface
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef __AKNFEPUIINTERFACE_IBY__
-#define __AKNFEPUIINTERFACE_IBY__
-
-file=ABI_DIR\BUILD_DIR\aknfepuiinterface.dll			System\Libs\aknfepuiinterface.dll
-
-#endif
-
-// End of file
--- a/fep/aknfep/rom/peninputimeplugincn_Variant.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Image description file for project peninputimeplugincn
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINCN_VARIANT_IBY
-#define PENINPUTIMEPLUGINCN_VARIANT_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-#include <bldvariant.hrh>
-
-#ifdef __PEN_SUPPORT
-#ifdef RD_SCALABLE_UI_V2 
-#ifdef __CHINESE
-
-ECOM_PLUGIN(peninputimeplugincn.dll,peninputimeplugincn.rsc)
-
-#endif // __CHINESE
-#endif // RD_SCALABLE_UI_V2
-#endif // __PEN_SUPPORT
-
-#endif // PENINPUTIMEPLUGINCN_VARIANT_IBY
--- a/fep/aknfep/rom/peninputimeplugingeneric.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Image description file for project peninputimeplugingeneric
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINGENERIC_IBY
-#define PENINPUTIMEPLUGINGENERIC_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-#include <bldvariant.hrh>
-
-#ifdef __PEN_SUPPORT
-#ifdef RD_SCALABLE_UI_V2 
-
-ECOM_PLUGIN(peninputimeplugingeneric.dll,peninputimeplugingeneric.rsc)
-
-#endif // RD_SCALABLE_UI_V2 
-#endif // __PEN_SUPPORT
-
-#endif // PENINPUTIMEPLUGINGENERIC_IBY
--- a/fep/aknfep/rom/peninputimepluginitut_Variant.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Image description file for project peninputimepluginitut
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINITUT_IBY
-#define PENINPUTIMEPLUGINITUT_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-#include <bldvariant.hrh>
-
-#ifdef __PEN_SUPPORT
-#ifdef RD_SCALABLE_UI_V2 
-
-ECOM_PLUGIN(peninputimepluginitut.dll,peninputimepluginitut.rsc)
-
-#endif // RD_SCALABLE_UI_V2 
-#endif // __PEN_SUPPORT
-
-#endif // PENINPUTIMEPLUGINITUT_IBY
--- a/fep/aknfep/rom/peninputimepluginjp_Variant.iby	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Image description file for project peninputimepluginjp
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifndef PENINPUTIMEPLUGINJP_VARIANT_IBY
-#define PENINPUTIMEPLUGINJP_VARIANT_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-#include <bldvariant.hrh>
-
-#ifdef __PEN_SUPPORT
-#ifdef RD_SCALABLE_UI_V2
-#ifdef __JAPANESE
-
-ECOM_PLUGIN(peninputimepluginjp.dll,peninputimepluginjp.rsc)
-
-#endif // __JAPANESE
-#endif // RD_SCALABLE_UI_V2
-#endif // __PEN_SUPPORT
-
-#endif // PENINPUTIMEPLUGINJP_VARIANT_IBY
--- a/fep/aknfep/src/AknFepCaseManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1062 +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:           
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepCaseManager.h"
-#include "AknFepPanic.h"
-#include "aknfeppeninputenums.h"
-
-#include <aknfep.rsg>
-#include <aknedsts.h>
-#include <barsread.h>
-#include <jplangutil.h>
-#include <AknPictographInterface.h>
-#include <AknPictographDrawerInterface.h>
-#include <featmgr.h>
-#include <PUAcodes.hrh>
-
-const TText KSpaceCharacter=' ';
-const TText KInvertedExclamationMarkCharacter = 0x00A1;
-const TText KInvertedQuestionMarkCharacter = 0x00BF;
-
-/* Teleca change begin, 18.08.2009 ssal */
-const TInt KSBase = 0xac00; // base address for hangul syllables
-const TInt KCBase = 0x3131; // base address for hangul compatibility jamo
-
-const TInt KLCount = 19; // count of L-jamos
-const TInt KVCount = 21; // count of V-jamos
-const TInt KTCount = 28; // count of T-jamos
-const TInt KNCount = KVCount * KTCount; // count of V&T-jamo combinations
-const TInt KSCount = KLCount * KNCount; // total count of hangul syllables
-
-// Conversion table for hangul compatibility jamo
-const TUint16 conversionTableFromCompatibilityJamoToJamo[] = {
-0x1100,
-0x1101,
-0x11AA,
-0x1102,
-0x11AC,
-0x11AD,
-0x1103,
-0x1104,
-0x1105,
-0x11B0,
-0x11B1,
-0x11B2,
-0x11B3,
-0x11B4,
-0x11B5,
-0x11B6,
-0x1106,
-0x1107,
-0x1108,
-0x11B9,
-0x1109,
-0x110A,
-0x110B,
-0x110C,
-0x110D,
-0x110E,
-0x110F,
-0x1110,
-0x1111,
-0x1112,
-0x1161,
-0x1162,
-0x1163,
-0x1164,
-0x1165,
-0x1166,
-0x1167,
-0x1168,
-0x1169,
-0x116A,
-0x116B,
-0x116C,
-0x116D,
-0x116E,
-0x116F,
-0x1170,
-0x1171,
-0x1172,
-0x1173,
-0x1174,
-0x1175,
-};
-
-#define KCCount (sizeof(conversionTableFromCompatibilityJamoToJamo) / sizeof(TUint16))
-/* Teleca change end, 18.08.2009 ssal */
-
-// 0x2029 is the paragraph seperator. When the user inputs a
-// new line character, 0x2029 is inserted.
-const TText KParagraphSeperator = 0x2029;
-// 0x000A is line feed character 
-const TText KLineFeed = 0x000A;
-
-//for chinese unicode ox4E00 to 0x9FA5
-const TText KChineseLowerUnicode = 0x4E00;
-const TText KChineseUpperUnicode = 0x9FA5;
-CAknFepCaseManager* CAknFepCaseManager::NewL(CAknFepManager& aFep)
-    {
-    CAknFepCaseManager* self = new (ELeave) CAknFepCaseManager(aFep);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-
-CAknFepCaseManager::~CAknFepCaseManager()
-    {
-    delete iPictoInterface;
-    }
-
-
-
-
-void CAknFepCaseManager::ConfigureCaseStateFromEditorState()
-    {
-    CAknEdwinState* editorState = iFep.EditorState();
-    if (!editorState)
-        {
-        return;
-        }
-        
- 	iCurrentCase = editorState->CurrentCase();   
-    iPreviousCase = editorState->CaseState().PreviousCase();    
-        
-    SetFixedCase(editorState->Flags() & EAknEditorFlagFixedCase);
-
-    iPreviousCase = iCurrentCase;
-
-  	if (CurrentEditorIsFixedCase())
-    	{    
-    	SetCurrentCase(editorState->DefaultCase()); 
-    	iPreviousCase = iCurrentCase; 
-    	__ASSERT_DEBUG(IsCasePermitted(iCurrentCase), 
-                     AknFepPanic(EAknFepPanicNonPermittedEditorMode));		   	
-    	} 
-    	
-    //determine it based on position 
-    UpdateCase(ENullNaviEvent);
-
-    // if still there is no current case set - use the default
-    if (!iCurrentCase)
-        {
-        SetCurrentCase(editorState->DefaultCase());
-        if (!IsCasePermitted(iCurrentCase))
-            {
-            SetCurrentCase(editorState->CurrentCase());
-            }
-        
-        iPreviousCase = iCurrentCase;
-        __ASSERT_DEBUG(IsCasePermitted(iCurrentCase), 
-                       AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-        }
-
-    // if the current is not allowed stay where we are
-    else if (!IsCasePermitted(iCurrentCase))
-        {
-        if (!iPreviousCase)
-            {
-            SetCurrentCase(editorState->DefaultCase());
-            iPreviousCase = iCurrentCase;
-            __ASSERT_DEBUG(IsCasePermitted(iCurrentCase), 
-                           AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-            }
-        else
-            {
-            if (IsCasePermitted(iPreviousCase))
-                {
-                SetCurrentCase(iPreviousCase);
-                }
-            else
-                {
-                SetCurrentCase(editorState->DefaultCase());
-                iPreviousCase = iCurrentCase;
-                __ASSERT_DEBUG(IsCasePermitted(iCurrentCase), 
-                               AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-                }    
-            }
-        }
-    }
-
-
-void CAknFepCaseManager::UpdateCase(TWesternNaviEvent aNaviEvent)
-    {
-    TBool applyCaseNeeded = ETrue;
-    if ( iFep.IsFlagSet(CAknFepManager::EFlagSupressAutoUpdate) )
-        {
-        return;
-        }
-    CAknEdwinState* editorState = iFep.EditorState();
-    if (!CurrentEditorIsFixedCase() && editorState 
-      && editorState->PermittedCases() & EAknEditorTextCase)
-        {
-        // lets figure out where the cursor will be when the case needs to be checked
-        TInt cursorPos = FindCursorPositionAtCaseCheck(aNaviEvent);
-        
-        if (!(cursorPos == 0 
-           && iFep.IsFlagSet(CAknFepManager::EFlagSupressAutoUpdateAtEditorStart) ))
-            {
-            TInt defaultCase = editorState->DefaultCase();
-            if ( cursorPos == 0 && 
-               (defaultCase == EAknEditorLowerCase || defaultCase == EAknEditorUpperCase ))
-                {
-                SetCurrentCase(defaultCase);
-                }
-            // UPPER CASE : If in upper case & inside sentence, stay in upper.
-            else if (!(iCurrentCase == EAknEditorUpperCase && 
-                       CapsLockRequired(cursorPos, iCurrentCase) && 
-                       aNaviEvent != EBackspaceEvent))
-                {
-                const TBool textCaseRequired = TextCaseRequired(cursorPos);
-                // UPPER CASE : If upper case & inside sentence & backspace event, stay in upper.
-                if (!(iCurrentCase == EAknEditorUpperCase && aNaviEvent == EBackspaceEvent &&
-                    !textCaseRequired && cursorPos != 0))
-                    {
-                    // TEXT CASE : set if at start of editor or following a full stop / text case character
-                    if (cursorPos == 0 || textCaseRequired)
-                        {
-                        TInt inputMode = iFep.InputMode();
-                        if (iFep.IsChineseInputLanguage() && 
-                        	inputMode != ELatin &&
-                        	iCurrentCase != EAknEditorLowerCase)
-                        {
-                        SetCurrentCase(iCurrentCase);
-                        }
-#ifdef RD_HINDI_PHONETIC_INPUT	
-                        
-	                    else if(iFep.IsIndicPhoneticInputLanguage())
-	                    	{
-	                    	if(CurrentCase() != EAknEditorUpperCase)
-	                    	    SetCurrentCase(EAknEditorLowerCase);	
-	                    	}
-#endif
-                        else
-                        {
-                        /* Teleca change begin, 27.08.2008 ssal 
-                        	original code:
-                        SetCurrentCase(EAknEditorTextCase);	*/
-                        
-                        if(iFep.IsKoreanInputLanguage() && inputMode == EHangul )
-                        	{
-                        	SetCurrentCase(EAknEditorLowerCase);	
-                        	}
-                        else
-                        	{
-                            SetCurrentCase(EAknEditorTextCase);
-                            }
-                        /* Teleca change end, 27.08.2008 ssal */
-                        }
-                        applyCaseNeeded = EFalse;
-                        }
-                    else // OTHERWISE LOWER
-                        {
-                        SetCurrentCase(EAknEditorLowerCase);
-                        applyCaseNeeded = EFalse;
-                        }
-                    }
-                }
-            }
-        else
-            {
-            iFep.ClearFlag(CAknFepManager::EFlagSupressAutoUpdateAtEditorStart);
-            }
-        }
-    if (applyCaseNeeded)
-        {
-        ApplyCase();
-        }
-    }
-
-
-void CAknFepCaseManager::ManualCaseUpdate()
-    {
-    if (!CurrentEditorIsFixedCase())
-        {
-        if (IsCasePermitted(iCurrentCase)) 
-            {
-            DoManualCaseUpdate();
-            iFep.ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);
-            }
-        }
-    }
-
-
-void CAknFepCaseManager::RevertCaseChange()
-    {
-    if (!CurrentEditorIsFixedCase())
-        {
-        if (IsCasePermitted(iPreviousCase)) 
-            {
-            SetCurrentCase(iPreviousCase); 
-            }
-        }
-    }
-
-
-void CAknFepCaseManager::SetCurrentCase(TInt aCase, TBool aOverrideNumericTest)
-    {
-    if ( ( iFep.InputMode() == ENumber || iFep.InputMode() == ENativeNumber ) && 
-        !aOverrideNumericTest)
-        {
-        if ( iFep.EditorState() && 
-            (iFep.EditorState()->NumericKeymap() == EAknEditorConverterNumberModeKeymap) )
-            {
-            // Converter number mode keymap for '*' key requires upper case 'E'.
-            iCurrentCase = EAknEditorUpperCase;
-            }
-        else
-            {
-            // Number mode keymappings for '*' -key uses lower case letters (pw).
-            iCurrentCase = EAknEditorLowerCase;
-            }
-        }
-    else
-        {
-        if ( aCase == ECaseInverseText )
-            {
-            iCurrentCase = ECaseUpper;
-            iInverseCase = ETrue;
-            }
-        else
-            {
-            iCurrentCase = aCase;
-            iInverseCase = EFalse;
-            }
-        }
-    ApplyCase();
-    }
-
-
-TInt CAknFepCaseManager::CurrentCase() const
-    {
-    return iCurrentCase;
-    }
-
-TBool CAknFepCaseManager::IsAbleChangeCase() const
-    {
-    TBool isable = ETrue;
-    
-    CAknEdwinState* editorState = iFep.EditorState();
-    if (editorState)
-    	{
-	    const TInt permittedCases = editorState->PermittedCases();
-	    
-	    if (permittedCases == EAknEditorUpperCase ||
-	        permittedCases == EAknEditorLowerCase )
-	        {
-	        isable = EFalse;
-	        }
-	    else if ((editorState->Flags() & EAknEditorFlagForceTransparentFepModes)
-	          && iFep.IsChineseInputLanguage())
-	        {
-	        isable = EFalse;
-	        }
-	    else if ( editorState->Flags() & EAknEditorFlagFixedCase )
-	        {
-	        isable = EFalse;
-	        }
-	    else if (!iFep.InputLanguageSupportsCaseChanges())
-	        {
-	        isable = EFalse;
-	        }
-    	}
-    else
-    	{
-    	isable = EFalse;
-    	}
-    return isable;
-    }
-
-CAknFepCaseManager::CAknFepCaseManager(CAknFepManager& aFep) :
-    iFep(aFep)
-    {
-    }
-
-
-void CAknFepCaseManager::ConstructL()
-    {
-    // Set text case character set from resource
-    TResourceReader reader;
-    CCoeEnv::Static()->CreateResourceReaderLC(reader, R_AKNFEP_TEXT_CASE_CHARACTER_SET);
-    iTextCaseCharacters=reader.ReadTPtrC();
-
-    // Create PictographInterface
-    CCoeControl* control = NULL;
-    MAknPictographAnimatorCallBack* callback = NULL;
-    iPictoInterface = CAknPictographInterface::NewL(*control,*callback);
-
-    CleanupStack::PopAndDestroy(); // reader*/
-    }
-
-
-TInt CAknFepCaseManager::FindCursorPositionAtCaseCheck(TWesternNaviEvent aNaviEvent)
-    {
-    TCursorSelection curCursSel;
-    iFep.FepAwareTextEditor()->GetCursorSelectionForFep(curCursSel);
-    
-    TInt docLength = iFep.FepAwareTextEditor()->DocumentLengthForFep();
-    TInt returnedPosition = -1;
-
-    TCursorSelection uncommittedText = iFep.UncommittedText();
-
-    switch (aNaviEvent)
-        {
-        case ENullNaviEvent:
-            if (iFep.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                returnedPosition = uncommittedText.HigherPos();
-                }
-            else
-                {
-                // In case of non-predictive mode, following condition
-                // check text is selceted mode or not?
-                // In selected mode, character always being inserted
-                // anchor position
-                if( curCursSel.Length() >0 )
-                    {
-                    returnedPosition = curCursSel.LowerPos();
-                    }
-                else
-                    {
-                    returnedPosition = curCursSel.HigherPos();
-                    }
-                }
-            break;
-        case ERightNaviEvent:
-            if (iFep.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                returnedPosition = uncommittedText.HigherPos();
-                }
-            else
-                {
-                if (curCursSel.Length())
-                    {
-                    returnedPosition = curCursSel.HigherPos();
-                    }
-                else
-                    {
-                    if (curCursSel.iCursorPos == docLength)
-                        {
-                        returnedPosition = 0;
-                        }
-                    else
-                        {
-                        returnedPosition = curCursSel.HigherPos() + 1;
-                        }
-                    }
-                }
-            break;
-        case ELeftNaviEvent:
-            if (iFep.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                returnedPosition = uncommittedText.LowerPos();
-                }
-            else
-                {
-                if (curCursSel.Length())
-                    {
-                    returnedPosition = curCursSel.LowerPos();
-                    }
-                else
-                    {
-                    if (curCursSel.iCursorPos == 0)
-                        {
-                        returnedPosition = docLength;
-                        }
-                    else
-                        {
-                        returnedPosition = curCursSel.LowerPos() - 1;
-                        }
-                    }
-                }
-            break;
-        case EBackspaceEvent:
-            if (iFep.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                returnedPosition = uncommittedText.HigherPos();
-                }
-            else
-                {
-                if (curCursSel.Length())
-                    {
-                    returnedPosition = curCursSel.LowerPos();
-                    }
-                else
-                    {
-                    returnedPosition = curCursSel.LowerPos() - 1;
-                    }
-                }
-            break;
-        default:
-            break;
-        }
-
-    if (returnedPosition < 0)
-        {
-        returnedPosition = 0;
-        }
-    else if (returnedPosition > docLength)
-        {
-        returnedPosition = docLength;
-        }
-    return returnedPosition;
-    }
-
-
-TBool CAknFepCaseManager::TextCaseRequired(TInt aCursorPos)
-    {
-    TBool textCaseRequired = EFalse;
-    TInt charPosToCheck = aCursorPos - 1;   
-    TChar ch = KSpaceCharacter;
-    TBuf<CAknFepManager::ESingleCharacter> editorText;
-    TInt nonEnterSpaceCharCount = 0;
-    
-    if (charPosToCheck >= 0) 
-        {
-        // Get the character just before the cursor.
-        iFep.FepAwareTextEditor()->GetEditorContentForFep(editorText,
-            charPosToCheck, CAknFepManager::ESingleCharacter);
-        ch = editorText[0];        
-        if ( ch == KInvertedQuestionMarkCharacter || ch == KInvertedExclamationMarkCharacter )
-            {
-            // Text case is required imediatelly after 'spanich' question and exclamation mark that begins a sentence.
-            textCaseRequired = ETrue;        
-            }
-        // for chinese uncode limit
-        if ( ch >= KChineseLowerUnicode && ch<= KChineseUpperUnicode)
-        	{
-        	textCaseRequired = ETrue; 
-        	}
-        
-        if( ( TUint )ch == KParagraphSeperator || ( TUint )ch == KLineFeed )
-            {
-            // When we have enter key, we need to decide the case after: 
-            // we reach some non space characters (OR)
-            // we reach the beginning of the editor
-            while (charPosToCheck > 0 && !textCaseRequired)
-                {
-                charPosToCheck--;
-                iFep.FepAwareTextEditor()->GetEditorContentForFep(editorText,
-                    charPosToCheck, CAknFepManager::ESingleCharacter);
-                ch = editorText[0];
-                
-                // IsSpace returns true for ParagraphSeperator.
-                if (!(ch.IsSpace() || ch == EKeyEnter) && nonEnterSpaceCharCount <= 1)
-                    {
-                    if (IsTextCaseCharacter(ch))
-                        {
-        	            textCaseRequired = ETrue;
-                        }
-                    break;
-                    }
-                else 
-                	{
-                	if(!( ( TUint )ch == KParagraphSeperator || ( TUint )ch == EKeyEnter || ( TUint )ch == KLineFeed ) )
-                		{
-                		// Incrementing the count if we have
-                		// IsSpace() returns True AND
-                		// the character is not a ParagraphSeparator or Enter or Line Feed
-                		nonEnterSpaceCharCount++;
-	                	}
-                	if (charPosToCheck <= 0 && !nonEnterSpaceCharCount)
-                    	{
-                    	//Reached the beginning of the Editor. Text case should be ON
-                    	textCaseRequired = ETrue;
-                    	}                    	
-                	}    	
-                }
-            charPosToCheck = aCursorPos - 1;
-            
-           	if (charPosToCheck <= 0 && !nonEnterSpaceCharCount)
-           	    {
-           	    // If Enter is pressed as the first character. Text case is ON
-                textCaseRequired = ETrue;
-                }                    	
-            
-        	}
-
-        /* Teleca change begin, 27.08.2008 ssal */	
-        if (IsKoreanCharacter(ch))
-        	{
-        	textCaseRequired = ETrue;       
-        	}
-        /* Teleca change end, 27.08.2008 ssal */
-        }
-
-
-    if (charPosToCheck > 0 && !textCaseRequired) 
-        {
-        if (iFep.IsFeatureSupportedJapanese())
-            {
-            // The character case is changed to text case when the left side
-            // character is Japanese character.
-            if (IsJapaneseCharacter(ch))
-                {
-                textCaseRequired = ETrue;
-                }
-            else if (ch.IsSpace() || ch == EKeyEnter ||
-                     ch == (TUint)KPuaCodeSpaceSymbol)
-                {
-                while (charPosToCheck > 0)
-                    {
-                    charPosToCheck--;
-                    // Get the character before the previous character.
-                    iFep.FepAwareTextEditor()->GetEditorContentForFep(editorText,
-                        charPosToCheck, CAknFepManager::ESingleCharacter);
-                    ch = editorText[0];
-                    if (!(ch.IsSpace() || ch == EKeyEnter || ch == (TUint)KPuaCodeSpaceSymbol))
-                        {
-                        if (IsTextCaseCharacter(ch))
-                            {
-                            // One space between the cursor and the punctuation character => text case needed
-                            textCaseRequired = ETrue;
-                            }
-                        break;
-                        }
-                    else if (charPosToCheck <= 0)
-                        {
-                        // reached the start of the editor => text case needed
-                        textCaseRequired = ETrue;
-                        }
-                    }
-                }
-            }
-        else
-            {
-            if ( charPosToCheck > 0 && !textCaseRequired && !nonEnterSpaceCharCount) 
-			    {        
-			    if ( ch.IsSpace() || ch == EKeyEnter || 
-			    	ch == ( TUint )KPuaCodeSpaceSymbol )
-			        {
-			        while ( charPosToCheck > 0 )
-			            {
-			            charPosToCheck--;
-			            
-			            // Get the character before the previous character.
-			            iFep.FepAwareTextEditor()->GetEditorContentForFep(editorText,
-			                charPosToCheck, CAknFepManager::ESingleCharacter);
-			                
-			            ch = editorText[0];
-			            
-			            // This condition is added to keep Text case ON when space is
-			            // entered after a "New line" character.
-			            if( ( TUint )ch == KParagraphSeperator )
-			            	{			            	
-			            	textCaseRequired = ETrue;
-			            	break;
-			            	}
-			            	
-			            if ( !( ch == EKeyEnter || 
-			            		ch == ( TUint )KPuaCodeSpaceSymbol ) )
-			                {
-			                if ( IsTextCaseCharacter( ch ) )
-			                    {			                    
-			                    textCaseRequired = ETrue;
-			                    }
-			                break;
-			                }
-			            else if ( charPosToCheck <= 0 )
-			                {
-			                // reached the start of the editor => text case needed
-			                textCaseRequired = ETrue;
-			                }
-			            }
-                    }
-                }
-            }
-        }
-    else if (charPosToCheck < 0)
-        {
-        // reached the start of the editor => text case needed
-        textCaseRequired = ETrue;
-        }
-    else    // if (charPosToCheck == 0)
-        {
-        if (!textCaseRequired && iFep.IsFeatureSupportedJapanese())
-            {
-            if (IsJapaneseCharacter(ch)
-             || ch.IsSpace()
-             || ch == EKeyEnter
-             || ch == (TUint)KPuaCodeSpaceSymbol)
-                {
-                // reached the start of the editor => text case needed
-                textCaseRequired = ETrue;
-                }
-            }
-        }
-
-    return textCaseRequired;
-    }
-
-
-TBool CAknFepCaseManager::CapsLockRequired(TInt aCursorPos, TInt aCurCase)
-    {
-    TBool capsLocked = iForceUpperCase;
-    TInt charPosToCheck = aCursorPos - 1;   
-    TChar ch = KSpaceCharacter;
-    TBuf<CAknFepManager::ESingleCharacter> editorText;
-    
-    // is the previous character alphabetical?
-    if (charPosToCheck >= 0) 
-        {
-        iFep.FepAwareTextEditor()->GetEditorContentForFep(editorText,
-            charPosToCheck, CAknFepManager::ESingleCharacter);
-        if( editorText.Length()>0 )
-            {
-            ch = editorText[0];
-            }
-            
-        if (IsAlpha(ch) ||
-            ((aCurCase == EAknEditorUpperCase || aCurCase == ECaseInverseText) && 
-             !TextCaseRequired(aCursorPos)))
-            {
-            // Caps lock (upper case mode) is kept up if we are currently in upper case mode
-            // and previous character is alpha character or for example full stop. 
-            // If the cursor and full stop is separated with space, text case is restored. 
-            capsLocked = ETrue;
-            }
-        }
-    
-    return capsLocked;
-    }
-
-
-void CAknFepCaseManager::DoManualCaseUpdate()
-    {
-    TBool applyCaseNeeded = ETrue;
-    iPreviousCase = iCurrentCase;
-    TCursorSelection currentSelection;
-    iFep.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelection);
-
-    switch (iCurrentCase)
-        {
-        case EAknEditorLowerCase:
-            if (CapsLockRequired(currentSelection.iCursorPos, iCurrentCase) 
-             && IsCasePermitted(EAknEditorUpperCase))
-                {
-                SetCurrentCase(EAknEditorUpperCase);
-                }
-            else if (!IsCasePermitted(EAknEditorTextCase) 
-#ifdef RD_HINDI_PHONETIC_INPUT	
-            
-            || iFep.IsIndicPhoneticInputLanguage()
-#endif            
-            )
-                {
-                if( IsCasePermitted(EAknEditorUpperCase) )
-                    SetCurrentCase(EAknEditorUpperCase);
-                }
-            else
-                {
-                SetCurrentCase(EAknEditorTextCase);
-                }
-            applyCaseNeeded = EFalse;
-            break;
-        case EAknEditorTextCase:
-             if (iForceUpperCase && IsCasePermitted(EAknEditorUpperCase))
-                {
-                SetCurrentCase(EAknEditorUpperCase);
-                applyCaseNeeded = EFalse;     
-                break;          
-                }
-        case EAknEditorUpperCase:
-            SetCurrentCase(EAknEditorLowerCase);
-            applyCaseNeeded = EFalse;
-            break;
-        default:
-            break;
-        }
-
-    if (!(IsCasePermitted(iCurrentCase)))
-        {
-        DoManualCaseUpdate();
-        }
-    else
-        {
-        if (applyCaseNeeded)
-            {
-            ApplyCase();
-            }
-        }
-    }
-
-
-void CAknFepCaseManager::ApplyCase()
-    {
-    // update engine...
-    switch (iCurrentCase)
-        {
-        case EAknEditorUpperCase: // fall through
-        case EAknEditorTextCase:
-            iFep.SetCase(EUpperCase);
-            break;
-        case EAknEditorLowerCase: // fall through
-        default:
-            iFep.SetCase(ELowerCase);
-            break;
-        }
-    if(iFep.EditorState())
-        {
-        iFep.EditorState()->SetCurrentCase(iCurrentCase);
-        }
-    iFep.UpdateIndicators();
-
-#ifdef RD_SCALABLE_UI_V2    
-    iFep.UpdateTouchCaseMode();
-#endif
-    }
-
-
-void CAknFepCaseManager::SetFixedCase(TBool aFixedCase)
-    {
-    iFixedCase = aFixedCase;
-    }
-
-
-TBool CAknFepCaseManager::CurrentEditorIsFixedCase() const
-    {
-    return iFixedCase;
-    }
-
-
-TBool CAknFepCaseManager::IsCasePermitted(TInt aCase) const
-    {
-    // if current is permitted or current is lower and text is permitted
-    CAknEdwinState* editorState = iFep.EditorState();
-    return ( editorState && ( !editorState->PermittedCases() || 
-           (aCase & editorState->PermittedCases() || 
-           (aCase == EAknEditorLowerCase && 
-           (EAknEditorTextCase & editorState->PermittedCases())))) );
-    }
-
-TBool CAknFepCaseManager::IsTextCaseCharacter(TChar aChar) const
-    {
-    TBool ret = EFalse;
-    if (iTextCaseCharacters.Locate(aChar)!=KErrNotFound)
-        {
-        ret = ETrue;
-        }
-    else if (JPLangUtil::IsKanji((TText)aChar)
-          || JPLangUtil::IsHiragana((TText)aChar)
-          || JPLangUtil::IsKatakana((TText) aChar))
-        {
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-TBool CAknFepCaseManager::IsAlpha(TChar aChar) const
-    {
-    TBool ret = EFalse;
-    TBool isPicto = EFalse;
-    
-    if (iPictoInterface && iPictoInterface->Interface())
-        {
-        isPicto = iPictoInterface->Interface()->IsPictograph((TText)aChar);
-        }
-    
-    if (!( JPLangUtil::IsHiragana((TText)aChar)
-        || JPLangUtil::IsKanji((TText)aChar)
-        || JPLangUtil::IsKatakana((TText)aChar)
-        /* Teleca change begin, 18.08.2009 ssal */
-        || IsKoreanCharacter(aChar)
-        /* Teleca change end, 18.08.2009 ssal */
-        || isPicto ))
-        {
-        TChar ch = aChar;
-        if (iFep.IsFeatureSupportedJapanese() && 
-            JPLangUtil::IsFullWidth((TText) ch))
-            {
-            TBuf<CAknFepManager::ESingleCharacter> fullChar;
-            TBuf<CAknFepManager::ESingleCharacter> halfChar;
-            fullChar.Append(ch);
-            if (JPLangUtil::ConvertFullToHalfWidth(fullChar, halfChar))
-                {
-                ch = halfChar[0];
-                ret = ch.IsAlpha();
-                }
-            }
-        else
-            {
-            ret = ch.IsAlpha();
-            }
-        }
-    return ret;
-    }
-
-TInt CAknFepCaseManager::PluginPermittedCases()
-    {
-	TInt allowedCases = ECaseInvalide;    
-    if ( !(iFep.EditorState()) )
-        {
-        return allowedCases;
-        }
-    
-    TInt editorCases = iFep.EditorState()->PermittedCases();
-    
-    if( editorCases == 0 )
-        {
-        allowedCases = ECaseUpper | ECaseLower | ECaseText | ECaseInverseText;    
-        }
-    else
-        {
-        allowedCases = editorCases;
-        
-        if( (editorCases & EAknEditorUpperCase) && 
-            (editorCases & EAknEditorTextCase) )
-            {
-            allowedCases |= ECaseInverseText;
-            }
-        }
-    
-    return allowedCases;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAknFepCaseManager::CapsLockRequired
-// 
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepCaseManager::CapsLockRequired(TInt aCurrentCase)
-    {
-  	TCursorSelection currentSelection;
-  	
-  	if (iFep.FepAwareTextEditor())
-  		{  		  	
-    	iFep.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelection);    
-    	return CapsLockRequired(currentSelection.iCursorPos, aCurrentCase);
-  		}
-  		
-	return EFalse;  		
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepCaseManager::IsJapaneseCharacter
-// Determines whether a character is one of Japanese characters
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepCaseManager::IsJapaneseCharacter(TChar aChar) const
-    {
-    TBool ret = EFalse;
-    // The character case is changed to text case when the left side
-    // character is Japanese character (Hiragana, Katakana, Kanji,
-    // Full-width Symbol).
-    if (JPLangUtil::IsKanji((TText)aChar)
-     || JPLangUtil::IsHiragana((TText)aChar)
-     || JPLangUtil::IsKatakana((TText)aChar))
-        {
-        // Hiragana, Katakana, Kanji
-        ret = ETrue;
-        }
-    else if (JPLangUtil::IsFullWidth((TText)aChar)
-     && aChar != KPuaCodeSpaceSymbol
-     && aChar != KPuaCodeLineFeedSymbol)
-        {
-        if (iFep.InputMode() == ELatin
-          && iFep.CharacterWidth() == EFullWidthChar)
-            {
-            TBuf<CAknFepManager::ESingleCharacter> fullChar;
-            TBuf<CAknFepManager::ESingleCharacter> halfChar;
-            fullChar.Append(aChar);
-            if (JPLangUtil::ConvertFullToHalfWidth(fullChar, halfChar))
-                {
-                TChar ch2 = halfChar[0];
-                if (!ch2.IsAlpha())
-                    {
-                    // Full width Symbol or Number
-                    ret = ETrue;
-                    }
-                }
-            else
-                {
-                // The character which isn't converted to half is
-                // special Japanese Symbols.
-                ret = ETrue;
-                }
-            }
-        else
-            {
-            ret = ETrue;
-            }
-        }
-    return ret;
-    }
-
-/* Teleca change begin, 18.08.2009 ssal */
-// -----------------------------------------------------------------------------
-// CAknFepCaseManager::IsKoreanCharacter
-// Determines whether a character is one of Korean characters
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepCaseManager::IsKoreanCharacter(TChar aChar) const
-    {  
-    if ( IsHangulSyllable( aChar) || IsHangulCompatibilityJamo( aChar ) )
-    	{
-    	return ETrue;
-    	}
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// Checks that is given character hangul syllable or not.
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepCaseManager::IsHangulSyllable( TChar aChar ) const
-    {
-    // Character is 'hangul syllable' 
-    // if it's numeric value is between KSBase and KSBase + KSCount.
-    TInt index = static_cast<TInt> ( aChar ) - KSBase;
-    if ( index < 0 || index >= KSCount )
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// Checks that is given character hangul syllable or not.
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepCaseManager::IsHangulCompatibilityJamo( TChar aChar ) const
-    {
-    // Character is 'hangul compatibility jamo' 
-    // if it's numeric value is between KCBase and KCBase + KCCount.
-    TInt index = static_cast<TInt> ( aChar ) - KCBase;
-    if ( index < 0 || index >= KCCount )
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-/* Teleca change end, 18.08.2009 ssal */    
-// End of file
--- a/fep/aknfep/src/AknFepFnKeyManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,621 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Provides CAknFepManager definition
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#ifdef _DEBUG
-#include <eikenv.h>
-#endif
-
-#include <fepbase.h>
-#include <avkon.hrh>
-#include <aknedsts.h>               //CAknEdwinState
-
-#include "AknFepFnKeyManager.h"
-#include "AknFepManager.h"
-#include <centralrepository.h>
-#include <AknFepInternalCRKeys.h>
-#include "PtiEngine.h"
-
-
-/*this part is removed 
-const   TUid    KPhoneUidAppPhone = { 0x100058B3 };
-const   TUid    KUidCalc = { 0x10005902 };
-const   TUid    KUidIdle = { 0x101fd64c };
-*/
-const   TStdScanCode stdFnKeyCode(EStdKeyRightFunc);    // Defines the std key code for Fn key
-
-////////////////////////////////////////////////////////////
-//   CAknFepFnKeyManager implementation
-//////////////////////////////////////////////////////////// 
-CAknFepFnKeyManager::CAknFepFnKeyManager( CAknFepManager& aFepMan, 
-                    CAknFepSharedDataInterface* aSharedDataInterface)
-:iFepMan( aFepMan ),
- iFnKeyState( EFnKeyNone ),
- iIsQwertyMode (EFalse),
- iSharedDataInterface(aSharedDataInterface),
- iShiftKeyPressed( EFalse )
-    {
-    iIsQwertyMode = iSharedDataInterface->QwertyInputMode();
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iWasPreviousModePredictive = iFepMan.WesternPredictive();
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#else   
-    iWasPreviousModePredictive = iSharedDataInterface->PredictiveTextOn();
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__     
-    // The CR key KAknFepFnKeyState is reset the Fn key state NONE
-    iSharedDataInterface->SetFnKeyState(0);
-    }
-
-CAknFepFnKeyManager* CAknFepFnKeyManager::NewL( CAknFepManager& aFepMan,
-                                            CAknFepSharedDataInterface* aSharedDataInterface)
-    {
-    CAknFepFnKeyManager* self = new(ELeave) CAknFepFnKeyManager( aFepMan,aSharedDataInterface );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepFnKeyManager::~CAknFepFnKeyManager()
-    {    
-    iFnKeyState=EFnKeyNone;
-    }
-    
-void CAknFepFnKeyManager::ConstructL()
-    {    
-    }
-
-void CAknFepFnKeyManager::SetQwertyInputMode(TBool aQwertyState)
-    {
-    iIsQwertyMode = aQwertyState;
-    }
-void CAknFepFnKeyManager::ClearFnKeyState()
-    {
-    iFnKeyState = EFnKeyNone;
-    iFepMan.UpdateIndicators();    
-    }
-
-CAknFepFnKeyManager::TFnKeyState CAknFepFnKeyManager::FnKeyState()
-    {
-    return iFnKeyState;
-    }
-
-void CAknFepFnKeyManager::SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState)
-    {
-    TPtiKeyboardType keyboardType = iFepMan.KeyboardLayout();
-    //This function is only supported for EFnKeyNext and half Qwerty keypad at the moment.
-    if(keyboardType == EPtiKeyboardHalfQwerty && EFnKeyNext == iFnKeyState &&
-        aState == EFnKeyNone)
-        {    
-        
-        //if(aState == EFnKeyNext && keyboardType == EPtiKeyboardHalfQwerty)
-        //	{
-        //	iFepMan.PtiEngine()->CancelTimerActivity();
-        //	}
-        iFnKeyState = aState;
-        iFepMan.SetCase( (TCase)iPreviousCase );
-        iFepMan.UpdateIndicators();
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT  
-    else if(keyboardType == EPtiKeyboardQwerty3x11 && EFnKeyNone == iFnKeyState &&
-        aState == EFnKeyLock)
-        {
-        UpdatePreviousCase();
-        iFnKeyState = aState;
-        iFepMan.SetCase(EFnKeyLowerCase);
-        iFepMan.UpdateIndicators();
-        }
-#endif // RD_INTELLIGENT_TEXT_INPUT 		
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__  
-#ifdef RD_INTELLIGENT_TEXT_INPUT  
-    //Half QWERTY state uses this to change from EFnKeyNext aFnKeyNone
- 	   else if ( iFnKeyState == EFnKeyNone && aState == EFnKeyNext )
-        {
-        // QWERTY long press implementation uses this function to set the Fn state.
-        UpdatePreviousCase();
-        iFnKeyState=EFnKeyNext;
-        }
-
-#endif // RD_INTELLIGENT_TEXT_INPUT  
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-     // TODO: above piece of code should be simplify.    
-     // Set the Fn Key state  
- 	 else
- 	    {
- 	    iFnKeyState = aState;    
- 	    }
-    }
-TKeyResponse CAknFepFnKeyManager::HandleFnKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType, 
-                                                     TCoeInputCapabilities aInputCapabilities ) 
-    {
-    
-    TKeyResponse keyResponse = EKeyWasNotConsumed;
-    TPtiKeyboardType keyboardType = iFepMan.KeyboardLayout();
-
-    if(!iIsQwertyMode)
-        {
-        return keyResponse;
-        }
-        
-  	if(!iFepMan.IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) && 
-      !iFepMan.IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress)
-      && iShiftKeyPressed )
-        {
-        iShiftKeyPressed = EFalse;
-        }
-                
-    TInt caseFromFep = iFepMan.GetCurrentCase();
-    
-    TBool lockLater = EFalse;    
-    if(  EEventKeyDown == aType )
-        {
-        if( stdFnKeyCode == aKeyEvent.iScanCode )
-    		{
-            iFepMan.PtiEngine()->CancelTimerActivity();
-    		if( iPreviousKeyWasFnKey )
-    			{
-    			lockLater	= ETrue;
-    			}
-    		iPreviousKeyWasFnKey = ETrue; 			
-    		}    
-    	else
-    		{
-    		iPreviousKeyWasFnKey = EFalse; 				
-    		}        
-        }
-    if(aKeyEvent.iRepeats && stdFnKeyCode != aKeyEvent.iScanCode &&
-            iFnKeyState == EFnKeyNext)
-        {
-        // To fix the bug : Long press of number at the begin of editor. Then enter any character. 
-        // The character is shown in upper case.
-        if (ELowerCase == caseFromFep)
-            {
-            iFepMan.SetCase( (TCase)caseFromFep );
-            }
-        // To Fix Error: Character is NOT entered as per the input mode
-        // when the character is entered after pressing Shift + Fn + Shift keys
-        else if(!(EStdKeyRightShift == aKeyEvent.iScanCode ||
-        		  EStdKeyLeftShift == aKeyEvent.iScanCode))
-	        {
-            iFepMan.SetCase( (TCase)iPreviousCase );	
-            }
-            
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT  
-         // For QWERTY Predictive ---->
-        if(iWasPreviousModePredictive)
-        	{
-        	// We usually end up here when using the long key press to enter Fn symbols
-			iFepMan.SetWesternPredictive(ETrue); 
-		   	iFepMan.TryChangeModeL(ELatin);               	
-        	}
-        // For QWERTY Predictive <----
-
-#endif // RD_INTELLIGENT_TEXT_INPUT  
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__    
-        iFnKeyState = EFnKeyNone;
-        iFepMan.UpdateIndicators();
-        }
-     
-    if( stdFnKeyCode == aKeyEvent.iScanCode )
-        {
-        // Consume the function key events.
-        keyResponse = EKeyWasConsumed;
-        }
-    if (iFepMan.IsHybridAplhaEditor())
-        keyResponse = EKeyWasNotConsumed;
- 
-    
-    // check for the case when in Half Qwerty and both shift and fn keys are
-    // pressed and fn key is released while shift is still down
-    if( EEventKeyUp == aType && 
-    	stdFnKeyCode == aKeyEvent.iScanCode &&
-    	iShiftKeyPressed &&
-    	EPtiKeyboardHalfQwerty == keyboardType )
-    	{
-    	ClearFnKeyState();
-    	}
-    	    
-    if( EStdKeyRightShift == aKeyEvent.iScanCode ||  EStdKeyLeftShift == aKeyEvent.iScanCode )
-        {
-        if( EEventKeyDown == aType ) 
-            {
-            iShiftKeyPressed = ETrue;
-            }
-        if( EEventKeyUp == aType )
-            {
-            iShiftKeyPressed = EFalse;
-            }
-        }
-        
-    // For Shift key handling.
-    // Shift Key should be ignored in locked state.
-     
-    if( ( EFnKeyNext == iFnKeyState ) 
-    && EEventKeyDown == aType &&
-    ( EStdKeyRightShift == aKeyEvent.iScanCode ||  EStdKeyLeftShift == aKeyEvent.iScanCode)) 
-        {
-        // Fnkey event+ shift key event. Change to FnKey Upper case
-        iFepMan.SetCase( EFnKeyUpperCase );
-        if( keyboardType == EPtiKeyboardHalfQwerty )
-            {
-            iFepMan.SetCase( EFnKeyLowerCase );
-            }
-        return EKeyWasNotConsumed;
-        }
-    //===================================================		
-	
-	// GQF clarification Fn+Shift
-	// If shift key is hold on, So fn key state should be EFnKeyNext
-	// So next text mode goes to function upper
-	if( aType == EEventKeyUp && iShiftKeyPressed &&  stdFnKeyCode == aKeyEvent.iScanCode)	
-		{
-		if( EFnKeyPressed == iFnKeyState)
-			{
-			iFepMan.PtiEngine()->CancelTimerActivity();
-			iFnKeyState=EFnKeyNext;
-			iFepMan.SetCase( EFnKeyUpperCase );				
-			}			
-        else if (EFnKeyPressedAgain == iFnKeyState )
-            {
-            CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyLock"));
-            iFnKeyState = EFnKeyLock;	                
-            UpdatePreviousCase();
-            iFepMan.SetCase( EFnKeyUpperCase );
-            }
-        else if(EFnKeyDown == iFnKeyState)
-            {
-            iFnKeyState = EFnKeyNone;
-            UpdatePreviousCase();
-            iFepMan.SetCase( EUpperCase );	
-            }
-		iFepMan.UpdateIndicators();
-		}
-	// Holding shift key, press key just after releasing fn key,
-	// Fn key state goes to EFnKeyNone mode.
-	if( aType == EEventKeyUp && iShiftKeyPressed && iFnKeyState==EFnKeyNext && stdFnKeyCode != aKeyEvent.iScanCode &&  !(EStdKeyRightShift == aKeyEvent.iScanCode ||  EStdKeyLeftShift == aKeyEvent.iScanCode))
-		{
-		iFnKeyState=EFnKeyNone;		
-		iFepMan.SetCase( EUpperCase );		
-		iFepMan.UpdateIndicators();
-		}
-		
-	//====================================================
-		
-    // Fnkey event+ shift key event -> when fn and shift key are kept pressed.
-    if( (iShiftKeyPressed && EFnKeyNone != iFnKeyState ) )
-        {
-        if( (EFnKeyPressed == iFnKeyState) &&
-        	(stdFnKeyCode != aKeyEvent.iScanCode) &&
-        	!( EStdKeyRightShift == aKeyEvent.iScanCode ||  EStdKeyLeftShift == aKeyEvent.iScanCode ))
-	        {
-     	   	CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyDown"));
-          	iFnKeyState=EFnKeyDown;	      	
-	        }
-        
-        // Thre is no Functin shift reverse mode
-        // So, In shift key press if fn key state is not none
-        // text case stte is function upper.
-        if( aType == EEventKeyDown && stdFnKeyCode == aKeyEvent.iScanCode)
-        	{
-        	if ( EFnKeyNext == iFnKeyState )
-        		{       	     	
-       	     	if(lockLater)
-       	     	    {
-       	     	    //CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyPressedAgain "));
-       	     	    iFnKeyState=EFnKeyPressedAgain;
-       	     	    } 					
-        		}
-        	else if ( EFnKeyLock == iFnKeyState )
-	        	{
-       	     	//CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyDown"));
-              	iFnKeyState=EFnKeyDown;
-	        	}
-        	}
-        iFepMan.SetCase( EFnKeyUpperCase );
-        if( keyboardType == EPtiKeyboardHalfQwerty )
-            {
-            iFepMan.SetCase( EFnKeyLowerCase );
-            }
-        iFepMan.UpdateIndicators();
-        return EKeyWasNotConsumed;
-        }
-
-    // Check the input mode of the currently focused editor (when available)
-    MCoeFepAwareTextEditor* fepAwareTextEditor = aInputCapabilities.FepAwareTextEditor();
-    
-    if ( fepAwareTextEditor && fepAwareTextEditor->Extension1() )
-        {
-        if( EAknEditorNumericInputMode == 
-            ( static_cast<CAknEdwinState*>( fepAwareTextEditor->Extension1()->State( KNullUid ) ) )->CurrentInputMode() )
-            // If number input mode is detected, handle it as number input
-            // capability with greatest available variation of letters
-            {
-            // Use EDialableCharacters since it provides most flexibility for number input
-            aInputCapabilities.SetCapabilities( TCoeInputCapabilities::EDialableCharacters );
-            }            
-        }
-        
-    if ( EFnKeyForced != iFnKeyState )
-        {
-        // Handling of Fn key events.
-        // If Fn key is held down while characters are typed, all following key 
-        // events are exchanged.
-        // If Fn key is only pressed (key down + key up, not held down), only
-        // the very next key event is exchanged.
-        // If the next key event after Fn key is another Fn key event, the 
-        // Fn lock mode is activated. Then all following key events are
-        // exchanged until the Fn key is pressed again.       
-         
-        if( EEventKeyDown == aType && stdFnKeyCode == aKeyEvent.iScanCode )
-            {
-            if ( EFnKeyNext == iFnKeyState )
-                {                
-                if(lockLater)
-            		{
-            		CEikonEnv::Static()->InfoMsg(_L("iFnKeyState=EFnKeyPressedAgain"));	
-            		iFnKeyState=EFnKeyPressedAgain;
-          			}
-              	else
-              	    {
-              	    iFnKeyState=EFnKeyPressed;
-              	    }		              			
-                }
-            else if ( EFnKeyLock == iFnKeyState )
-                {
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState=EFnKeyDown"));
-                iFnKeyState=EFnKeyDown;
-                }
-            //else 
-            // Sahoo
-            else if ( EFnKeyDown != iFnKeyState )
-                {
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState=EFnKeyPressed"));
-                iFnKeyState=EFnKeyPressed;
-                }
-            iFepMan.UpdateIndicators();    
-            return keyResponse;
-            }
-        // Sahoo            
-        if( EEventKeyDown == aType && EFnKeyPressed == iFnKeyState )
-            {
-            iFnKeyState=EFnKeyDown;
-            iFepMan.SetCase( EFnKeyLowerCase );
-            }
-#ifdef __WINS        
-        // NOTE: This following HACK is to ensure working in emulator environment,
-        // where Alt Gr key seems to send always two separate key events:
-        // EStdKeyRightFunc and EStdKeyLeftCtrl
-        if ( EStdKeyLeftCtrl == aKeyEvent.iScanCode )
-            {
-            return;
-            }
-        // HACK ends
-#endif
-        
-        if( EEventKeyUp == aType && stdFnKeyCode == aKeyEvent.iScanCode )
-            {
-            if ( EFnKeyPressedAgain == iFnKeyState )
-                {
-               	if(! iFepMan.IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-	               	{
-	                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyLock"));
-	                iFnKeyState = EFnKeyLock;
-		           	}
-               	else
-	               	{
-	                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyNext"));
-	                iFepMan.PtiEngine()->CancelTimerActivity();
-	                iFnKeyState = EFnKeyNext;               		
-	               	}
-                UpdatePreviousCase();
-                iFepMan.ClearFlag(CAknFepManager::EFlagQwertyShiftMode);             
-                iFepMan.SetCase( EFnKeyLowerCase );
-                }
-            else if ( EFnKeyPressed == iFnKeyState )
-                {
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyNext"));
-                iFepMan.PtiEngine()->CancelTimerActivity();
-                iFnKeyState = EFnKeyNext;
-                
-                UpdatePreviousCase();
-                
-                // After pressing shift key Press Fn key,
-                // So its goes to function upper mode
-                if( iFepMan.IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-                	iFepMan.SetCase( EFnKeyUpperCase );
-                else
-                    iFepMan.SetCase( EFnKeyLowerCase );
-                }
-            else
-                {
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyNone"));
-                
-                // For Shift key handling.
-                if( EFnKeyDown == iFnKeyState || EFnKeyNext == iFnKeyState )
-                    {
-                    iFepMan.SetCase( (TCase)iPreviousCase );
-                    }
-                iFnKeyState = EFnKeyNone;
-                }
-            if( EEventKeyUp == aType && iFnKeyState == EFnKeyNone )
-                {
-                // To fix the bug :Fn key lock. then type a number with short press at begin of 
-                // editor. Now press Fn key to go to Fn none state. 
-                // Press a character. The char is in upper case
-                if (ELowerCase == caseFromFep)
-		            {
-		            iFepMan.SetCase( (TCase)caseFromFep );
-		            }
-		        // To Fix Error: Character is NOT entered as per the input mode
-		        // when the character is entered after pressing Shift + Fn + Shift keys
-		        else if(!(EStdKeyRightShift == aKeyEvent.iScanCode ||
-		            	  EStdKeyLeftShift == aKeyEvent.iScanCode))
-		            {
-		            iFepMan.SetCase( (TCase)iPreviousCase );	
-		            }
-                }
-            iFepMan.UpdateIndicators();
-            return keyResponse;
-            }
-        }
-                
-    // Now detect the input mode for telephone and calculator apps
-/*    if ( aInputCapabilities.IsNone() )
-        {   // Idle and Calculator do not provide input capabilities at all.
-        if ( KPhoneUidAppPhone == aCurrentTopAppUid || KUidIdle == aCurrentTopAppUid )
-            {
-            aInputCapabilities.SetCapabilities( TCoeInputCapabilities::EDialableCharacters );
-            }
-        if ( aCurrentTopAppUid == KUidCalc )
-            {
-            aInputCapabilities.SetCapabilities( TCoeInputCapabilities::EWesternNumericReal );
-            }
-        }        
-*/        
-    // Now handle the automatic number mode
-    if ((iFnKeyState != EFnKeyForced) && 
-        ( aInputCapabilities.SupportsWesternNumericIntegerPositive() ||
-         aInputCapabilities.SupportsWesternNumericIntegerNegative() ||
-         aInputCapabilities.SupportsWesternNumericReal() ||
-         aInputCapabilities.SupportsDialableCharacters() )         
-       )
-        {
-        // If input mode is numeric, Fn key is automated (=forced)
-        iFnKeyState = EFnKeyForced;
-        
-        UpdatePreviousCase();
-        
-        iFepMan.SetCase( EFnKeyLowerCase );
-        iFepMan.UpdateIndicators();
-        //Forced input mode
-        // The CR key KAknFepFnKeyState set to Locked
-        iSharedDataInterface->SetFnKeyState(EFnKeyForced/*=6*/);        
-        CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyForced"));   
-        }
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-    //Reverse Fn Key mapping!
-    //Just one of the cases for Reverse Fn key mapping!
-    // There are manu more of these!
-    if((EFnKeyForced == iFnKeyState && aKeyEvent.iModifiers & EModifierRightFunc ) )
-    	{    	
-    	iFepMan.SetCase( (TCase)iPreviousCase );    	
-    	iFepMan.SetReverseFnkeyInputMode(ETrue);    	
-    	}
-    else if(iFepMan.IsReverseFnkeyInput())
-    	{
-    	iFepMan.SetReverseFnkeyInputMode(EFalse);           
-        iFepMan.SetCase(EFnKeyLowerCase);
-    	}
-#endif //__REVERSE_FN_KEY_SUPPORTED
-        
-    // If any of the following states apply, the key event should be exchanged.        
-    if ( EFnKeyPressed == iFnKeyState ||
-         EFnKeyDown == iFnKeyState ||
-         EFnKeyNext == iFnKeyState ||
-         EFnKeyPressedAgain == iFnKeyState ||
-         EFnKeyLock == iFnKeyState ||
-         EFnKeyForced == iFnKeyState )
-        {
-        // For telephone number editor key events for w, p and + must be accepted as is
-        if( aInputCapabilities.SupportsDialableCharacters() && ( 'W' == aKeyEvent.iScanCode ||
-                                                                 'P' == aKeyEvent.iScanCode ||
-                                                                 '+' == aKeyEvent.iScanCode ||
-                                                                 'w' == aKeyEvent.iCode ||
-                                                                 'p' == aKeyEvent.iCode ||
-                                                                 '+' == aKeyEvent.iCode) )
-            {
-            return keyResponse;
-            }
-            
-        if( EEventKeyUp == aType )
-            {
-            if ( EFnKeyPressed == iFnKeyState || EFnKeyPressedAgain == iFnKeyState )
-                {
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyDown"));
-                iFnKeyState = EFnKeyDown;                
-                UpdatePreviousCase();
-                
-                // Fn key hold on and press any key
-                if( iFepMan.IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-                	iFepMan.SetCase( EFnKeyUpperCase );
-                else
-                	iFepMan.SetCase( EFnKeyLowerCase );
-                }
-                
-             // Debasish MT error fixing
-            else if( EFnKeyNext == iFnKeyState && iFepMan.IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-	            {
-	            // keep the sate as it is
-	            UpdatePreviousCase();	
-	            iFepMan.SetCase( EFnKeyUpperCase );
-	            
-	            if( keyboardType == EPtiKeyboardHalfQwerty )
-                    {
-                    iFepMan.SetCase( EFnKeyLowerCase );
-                    }
-	            }
-            else if ( EFnKeyNext == iFnKeyState )
-                {
-                //This has to be done if the keyboard type is not half Qwerty
-                if(keyboardType == EPtiKeyboardHalfQwerty)
-                    return keyResponse;
-                CEikonEnv::Static()->InfoMsg(_L("iFnKeyState = EFnKeyNone"));
-                
-                // To fix the bug : At begin of editor, press Fn key. Now press a number.
-                // Now state is FnKeyNone. Type any char. The case is upper.
-                // For Shift key handling.
-                if( EFnKeyDown == iFnKeyState || EFnKeyNext == iFnKeyState )
-                    {
-		 			if (ELowerCase == caseFromFep)
-	            		{
-	            		iFepMan.SetCase( (TCase)caseFromFep );
-	            		}
-			        // To Fix Error: Character is NOT entered as per the input mode
-			        // when the character is entered after pressing Shift + Fn + Shift keys
-		 			else if(!(EStdKeyRightShift == aKeyEvent.iScanCode ||  
-		 						  EStdKeyLeftShift == aKeyEvent.iScanCode))
-	            		{
-	            		iFepMan.SetCase( (TCase)iPreviousCase );	
-	            		}
-                    }
-                 iFnKeyState = EFnKeyNone;
-                }
-            iFepMan.UpdateIndicators();
-            }                        
-        }
-
-    return keyResponse;
-    }
-  
-void CAknFepFnKeyManager::UpdatePreviousCase()
-    {
-    iPreviousCase = iFepMan.GetCurrentCase();
-    }
-// End of File
-
--- a/fep/aknfep/src/AknFepHashKeyManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1549 +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:           
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepHashKeyManager.h"
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-
-#include <aknedsts.h>
-#include <uikon.hrh>
-#include <coedef.h>
-
-#include <PtiEngine.h>
-
-//move to class definition
-#define EHashKeyTimeout 700000 // 0.7s
-
-CAknFepHashKeyManager* CAknFepHashKeyManager::NewL(CAknFepManager& aFepMan, 
-                                                   CAknFepCaseManager* aCaseMan)
-    {
-    CAknFepHashKeyManager* self = new(ELeave) CAknFepHashKeyManager(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-CAknFepHashKeyManager::~CAknFepHashKeyManager()
-    {
-    delete iHashKeyTimer;
-    }
-
-TKeyResponse CAknFepHashKeyManager::HandleKeyEventL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    switch (iHashKeyStyle)
-        {
-        case EHashKeyStyleWestern:
-            response = HandleKeyWesternL(aLength);
-            break;
-        case EHashKeyStyleChineseWithWestern:
-            response = HandleKeyWesternWithChineseL(aLength);
-            break;
-        case EHashKeyStyleJapanese:
-            response = HandleKeyJapaneseL(aLength);
-            break;
-        case EHashKeyStyleKoreanWithWestern:
-            response = HandleKeyWesternWithKoreanL(aLength);
-            break;
-    default:
-        break;
-        }
-    return response;
-    }
-
-void CAknFepHashKeyManager::SetMode(TInt aMode, TBool aWesternPredictive)
-    {
-    iMode = aMode;
-    iWesternPredictive = aWesternPredictive;
-    }
-
-void CAknFepHashKeyManager::SetHashKeyStyle(THashKeyStyle aHashKeyStyle)
-    {
-    iHashKeyStyle = aHashKeyStyle;
-    }
-
-void CAknFepHashKeyManager::CancelHashKeyTimer()
-    {
-    if (iHashKeyTimer->IsActive())
-        {
-        iHashKeyTimer->Cancel();
-        }
-    }
-
-CAknFepHashKeyManager::CAknFepHashKeyManager(CAknFepManager& aFepMan, CAknFepCaseManager* aCaseMan)
-    :iHashKeyStyle(EHashKeyStyleWestern),
-     iFepMan(aFepMan),
-     iCaseMan(aCaseMan)
-    {
-    iLanguageChangedOrChangeFromNumberMode = EFalse;
-    iIndicSelectionLoopIndex = -1; // Cannot use 'iFepMan.WesternPredictive(ELatin);' since FepMan is not completely constructed at the construction of this
-    }
-
-void CAknFepHashKeyManager::ConstructL()
-    {   
-    iHashKeyTimer = CPeriodic::NewL(CActive::EPriorityStandard);
-    }
-
-TInt CAknFepHashKeyManager::HashKeyTimerTimeoutCallback(TAny* aObj)
-    {
-    STATIC_CAST(CAknFepHashKeyManager*, aObj)->HashKeyTimerTimeout();
-    return KErrNone;
-    }
-
-void CAknFepHashKeyManager::HashKeyTimerTimeout()
-    {
-    iHashKeyTimer->Cancel();
-    }
-
-void CAknFepHashKeyManager::RevertPredictiveTextSettingChangeL()
-    {
-    if ( !iFepMan.InputLanguageSupportsCaseChanges() && iFepMan.EditorState()&&
-        !( iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9) )
-        {
-        // Reverts predictive text settings change made with short key press.
-        iFepMan.SetWesternPredictive( !iFepMan.WesternPredictive(ELatin) );
-        iFepMan.TryChangeModeL(ELatin);
-        }
-    }
-
-TKeyResponse CAknFepHashKeyManager::HandleKeyWesternL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    TBool phoneIdle = (iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor); 
-    if(phoneIdle)
-        {
-        return response;
-        }
-    iLastModeNumber = (iMode == ENumber || iMode == ENativeNumber);
-
-    if ( (iMode == ENumber || iMode == ENativeNumber) && !iFepMan.HashKeySelectionInUse())
-        {
-        if (aLength == ELongKeyPress)
-            {
-            // Clear the EExtendedFlagShortPressHashKey, only for non numeric only editors
-            // so as to indicate we are in a long press of hash key event.
-            // In case of numeric only editor, we should re-simulate hash and let application 
-            // handle it.
-
-            if ( !iFepMan.IsOnlyNumericPermitted() )
-                {
-                iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-
-                // Long press of hash key switches to alpha mode
-                // if it is permitted mode in the editor.
-                iFepMan.TryChangeToModeBeforeL();
-                ResetIndicHashKeyStateL();
-                }
-            response = EKeyWasConsumed;
-            }
-        else if (!iFepMan.IsExtendedFlagSet(CAknFepManager::EExtendedFlagShortPressHashKey))
-            {
-            // Set the flag to indicate its a short press of key event
-            iFepMan.SetExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-            response = EKeyWasConsumed;
-            }
-        else
-            {
-            // We are not suppose to be here. Just a fail safe check to guard us against
-            // erroneous situations.
-            
-            iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-            }
-        }
-    else
-        {
-        if ( aLength == EShortKeyPress )
-            {
-           	if (iFepMan.HashKeySelectionInUse())
-             	{
-            	// New style hash key loop when long hash-key press is used for text selection.												     			                	               	
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		        // To rip off suggested word completion when user wants to 
-		        // switch to number or multitap mode
-		        if(iFepMan.IsAutoCompleteOn())
-		        	{
-		            iFepMan.RemoveSuggestedCompletionL();	
-		            }
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-               	return HandleKeyWesternSelectionStyleL(aLength);  
-               	}
-               	
- 			if ( iLastModeNumber )
-            	{
-            	// The key should not be consumed in number mode? FEP Manager may
-            	// put special chars into the editor or the key  event 
-            	// is passed to the editor.
-
-	            // But now the event is consumed. Same happens also in 
-    	        // Chinese languages because # key is reserved for 
-        	    // other purpose.
-            	response = EKeyWasConsumed;
-           		 }               	
-            
-			if(IsIndicHashKeyStyleRequired())
-				{
-				return (SetIndicStateL());	
-				}
-            	// Traditional hash key loop
-            if ( iFepMan.InputLanguageSupportsCaseChanges() )
-                {
-                if (iHashKeyTimer->IsActive())
-                    {
-                    iHashKeyTimer->Cancel();
-                    iCaseMan->RevertCaseChange();
-                    // Toggle predictive setting.
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		         // To rip off suggested word completion when user wants to 
-		         // switch to number or multitap mode
-		        if(iFepMan.IsAutoCompleteOn())
-		        	{
-		            iFepMan.RemoveSuggestedCompletionL();	
-		            }
-
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-                    iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStataCommitPredictiveWord);
-                    iFepMan.SetWesternPredictive( !iFepMan.WesternPredictive(ELatin) );
-                    iFepMan.TryChangeModeL(ELatin);
-                    }
-                else
-                    {
-                    iCaseMan->ManualCaseUpdate();
-                    iHashKeyTimer->Start(EHashKeyTimeout, EHashKeyTimeout,
-                        TCallBack(HashKeyTimerTimeoutCallback, this));
-                    }
-                }
-            else // Case changes are not allowed.
-                {
-                if (iHashKeyTimer->IsActive())
-                    {
-                    iHashKeyTimer->Cancel();
-                    // Double press of hash key does not have functionality.
-                    }
-                else
-                    {
-                    // Toggle predictive setting.
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                    // AutoComplete - Fix - Begin
-                    if(iFepMan.IsAutoCompleteOn())
-		        	{
-		            iFepMan.RemoveSuggestedCompletionL();	
-		            }
-		            // AutoComplete - Fix - End
-
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-                    iFepMan.SetWesternPredictive( !iFepMan.WesternPredictive(ELatin) );
-                    iFepMan.TryChangeModeL(ELatin);
-                    iHashKeyTimer->Start(EHashKeyTimeout, EHashKeyTimeout,
-                        TCallBack(HashKeyTimerTimeoutCallback, this));
-                    }
-                }
-            response = EKeyWasConsumed;
-            }
-        else // Long key press of hash key
-            {
-            // Clear EExtendedFlagShortPressHashKey flag as soon as long press happens
-            iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-            
-            // Toggle number mode / alpha mode
-            if (iLastModeNumber && !IsIndicHashKeyStyleRequired() && 
-               !iFepMan.HashKeySelectionInUse())	// For Indic it is handled in SetIndicPreviousStateL()
-                {
-                // If short hash key press event is passed to the editor, it
-                // needs to be removed here from the editor.
-
-                iFepMan.TryChangeToModeBeforeL();
-                }
-            else
-                {
-                // Input mode is incremented.
-                if (!iFepMan.HashKeySelectionInUse())
-                	{
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                	// To rip off suggested word completion when user wants to switch to number mode
-                	if(iFepMan.IsAutoCompleteOn())
-                		{
-                		iFepMan.RemoveSuggestedCompletionL();	
-                		}
-
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-						if(IsIndicHashKeyStyleRequired())
-							{
-							SetIndicPreviousStateL();	
-							}					    	
-						else
-							{
-							RevertPredictiveTextSettingChangeL();			
-							}                	
-                        if( iFepMan.IsSupportNativeNumber())
-                            {
-                            iFepMan.TryChangeModeL( ENativeNumber );  
-                            }
-                        else
-                            {
-                            iFepMan.TryChangeModeL( ENumber );    
-                            }
-                	}
-				else if (!iFepMan.IsCcpuFlagSet(CAknFepManager::ECcpuStateEdwinInSelectionMode) &&
-				         iFepMan.OkToActivateSelectionMode())							
-					{											
-					// User wants to select and not to change mode, so cancel the mode change
-					// caused by initial hash key press.
-					if(iLastModeNumber && !IsIndicHashKeyStyleRequired())
-						{
-						iFepMan.TryChangeToModeBeforeL();		
-						}
-					else
-						{
-						SetPreviousSelectionStyleModeL();		
-						}
-					iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateHashDown |
-					                    CAknFepManager::ECcpuStateEdwinInSelectionMode |
-					                    CAknFepManager::ECcpuStateHashKeyDeleteDone );
-					 TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-        			// to enable copy/paste support on cba. We simulate via CCoeEnv
-        			// to avoid fep SimulateKeyEventL adding shift modifiers
-        			CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey);					
-					}                	
-                }            
-            response = EKeyWasConsumed;
-            }
-        }              
-    return response;
-    }
-
-
-TKeyResponse CAknFepHashKeyManager::HandleKeyWesternWithChineseL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    if ( iFepMan.IsOnlyNumericPermitted() )
-        {
-        if ( aLength == ELongKeyPress )
-            {
-            response = EKeyWasConsumed;
-            if ( iFepMan.HashKeySelectionInUse() )
-                {
-                TText prevCh = iFepMan.PreviousChar();
-                if (prevCh == '#')
-                    {
-                    iFepMan.RemovePreviousCharacterL();             
-                    }
-                }
-            
-    		iFepMan.SetCcpuFlag( CAknFepManager::ECcpuStateHashDown | 
-    		                    CAknFepManager::ECcpuStateEdwinInSelectionMode );
-    		TKeyEvent ccpuStart = { EKeyF21, EStdKeyF21, 0, 0 };
-    		// to enable copy/paste support on cba. We simulate via CCoeEnv
-    		// to avoid fep SimulateKeyEventL adding shift modifiers
-    		CCoeEnv::Static()->SimulateKeyEventL( ccpuStart, EEventKey );
-            }
-        //else let the FEP Man put special chars into the editor
-        }
-    else
-        {
-        if (aLength == EShortKeyPress)
-            {
-            if (iMode == ENumber || iMode == ENativeNumber)
-                {
-                iLastModeNumber = ETrue;
-                }
-            else
-                {
-                iLastModeNumber = EFalse;
-                }            
-            CAknEdwinState* editorState = iFepMan.EditorState();                    
-            TInt permittedCases = editorState->PermittedCases();
-            permittedCases = permittedCases == 0 ? 
-                EAknEditorLowerCase | EAknEditorUpperCase : permittedCases;
-            if ( iMode == ELatin && (permittedCases & EAknEditorTextCase))
-                {
-                // Latin case update is changed back to automatic if latin 
-                // text case is allowed and the case is changed manually from #-key.
-                iFepMan.ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                }
-            TInt currentCase = iCaseMan->CurrentCase();
-
-            // Is current latin case last available case.
-            TBool lastCase = ( ( !(permittedCases & EAknEditorTextCase) && 
-                  (( currentCase == EAknEditorLowerCase) ||
-                   ( currentCase == EAknEditorUpperCase && 
-                   !(permittedCases & EAknEditorLowerCase)) ) ||
-                ( editorState->Flags() & EAknEditorFlagFixedCase) ) ||
-                ( editorState->Flags() & EAknEditorFlagForceTransparentFepModes) );
-            
-            if (iMode == ELatin && 
-                !iFepMan.IsFlagSet(CAknFepManager::EFlagChangeInputMode) &&
-                !lastCase )
-                {
-                // Input mode is still Latin. Only case is updated.
-                if (permittedCases & EAknEditorTextCase) 
-                    {
-                    iCaseMan->ManualCaseUpdate();
-                    }
-                else
-                    {
-                    iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                    }
-
-                // Next time input mode is changed if any text is not entered before.
-                iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                }
-            else
-                {
-                // Input mode is incremented.
-                iFepMan.TryIncrementModeL(iMode);
-
-                iFepMan.ClearFlag(CAknFepManager::EFlagChangeInputMode);
-
-                if (iMode == ELatin) // New mode after Increment.
-                    {
-                    if (editorState->Flags() & EAknEditorFlagFixedCase) 
-                        {
-                        // Only one fixed case is available. Use it.
-                        iCaseMan->ConfigureCaseStateFromEditorState();
-                        iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                        }
-                    else if (editorState->Flags() & EAknEditorFlagForceTransparentFepModes) 
-                        {
-                        // Only lower case is used with find pane.
-                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                        iFepMan.SetFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                        iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                        }
-                    else if (permittedCases & EAknEditorTextCase)
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorTextCase);
-                        iCaseMan->UpdateCase(ENullNaviEvent);
-                        }
-                    else
-                        {
-                        if (permittedCases & EAknEditorUpperCase)
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                            if ( !(permittedCases & EAknEditorLowerCase))
-                                {
-                                // We need to move to next input mode since only upper case 
-                                // is permitted in Latin input mode.
-                                iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                                }
-                            }
-                        else
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                            iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                            }
-                        }
-                    }
-                }
-            }
-        else // Long keypress
-            {
-			if (!iFepMan.HashKeySelectionInUse())            
-				{							
-            	if (iLastModeNumber)
-                	{
-                	iFepMan.TryChangeToModeBeforeL();
-                	}
-            	else
-                	{
-                	if( iFepMan.IsSupportNativeNumber())
-                	    {
-                	    iFepMan.TryChangeModeL( ENativeNumber );
-                	    }
-                	else
-                	    {
-                	    iFepMan.TryChangeModeL(ENumber);
-                	    }
-                	}
-				}
-			else if (!iFepMan.IsCcpuFlagSet(CAknFepManager::ECcpuStateEdwinInSelectionMode) &&
-			         iFepMan.OkToActivateSelectionMode())							
-				{							
-				// User wants to select and not to change mode, so cancel the mode change
-				// caused by initial hash key press. 			
-				MPtiLanguage* lang = iFepMan.PtiEngine()->CurrentLanguage();
-				TInt inputLang = ELangTest;
-				if (lang)
-					{
-					inputLang = lang->LanguageCode();	
-					}
-				const TInt inputMode = iFepMan.InputMode();				
-				
-				if ((inputLang == ELangPrcChinese && inputMode == EPinyin) ||
-				    (inputLang == ELangTaiwanChinese && inputMode == EZhuyin) ||
-				    (inputLang == ELangHongKongChinese && inputMode == EStroke))												
-					{
-					// Hash key selection was initiated from number mode,
-					// return there.
-					iFepMan.TryChangeModeL(ENumber);						
-					}
-				else
-				    {
-			   		iFepMan.TryChangeToModeBeforeL();							
-					}
-				   			                
-				iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateHashDown | 
-				                    CAknFepManager::ECcpuStateEdwinInSelectionMode );
-				 TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-        		// to enable copy/paste support on cba. We simulate via CCoeEnv
-        		// to avoid fep SimulateKeyEventL adding shift modifiers
-        		CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey);					
-				}                		
-            }
-        response = EKeyWasConsumed;
-        }
-    return response;
-    }
-
-
-TKeyResponse CAknFepHashKeyManager::HandleKeyJapaneseL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    if (aLength == ELongKeyPress)
-        {
-        response = HandleLongKeypressJapaneseL();
-        }
-    else
-        {
-        response = HandleSortKeypressJapaneseL();
-        }
-    return response;
-    }
-
-TKeyResponse CAknFepHashKeyManager::HandleLongKeypressJapaneseL()
-    {
-    TKeyResponse response = EKeyWasConsumed;
-
-    if (iFepMan.IsOnlyNumericPermitted())
-        {
-        if (iFepMan.HashKeySelectionInUse())
-            {
-            TText prevCh = iFepMan.PreviousChar();
-            if (prevCh == '#')
-                {
-                iFepMan.RemovePreviousCharacterL();
-                }
-            }
-        }
-
-    if (iMode == EHiraganaKanji || iMode == ELatin)
-        {
-        // predictive input is turned on/off
-        // Commit string on transitory input
-        iFepMan.TryCloseUiL();
-
-        if(iWesternPredictive)
-            {
-            iFepMan.TryChangePredictiveInputModeL(EFalse);
-            }
-        else
-            {
-            iFepMan.TryChangePredictiveInputModeL(ETrue);
-            }
-        iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateChangeToPredictionMode);
-        }
-    else if (iMode == EHiragana)
-        {
-        // nothing to do
-        }
-    else
-        {
-        // Input mode is incremented.
-        iFepMan.TryIncrementModeL(iMode);
-        if ( iMode == ELatin )
-            {
-            if (iCaseMan->IsAbleChangeCase())
-                {
-                CAknEdwinState* editorState = iFepMan.EditorState();
-                TInt permittedCases = editorState->PermittedCases();
-                if (permittedCases & EAknEditorTextCase)
-                    {
-                    iCaseMan->SetCurrentCase(EAknEditorTextCase);
-                    iCaseMan->UpdateCase(ENullNaviEvent);
-                    }
-                else
-                    {
-                    if ( iFepMan.CaseBefore() )
-                        {
-                        iCaseMan->SetCurrentCase(iFepMan.CaseBefore());
-                        }
-                    else if (permittedCases & EAknEditorUpperCase)
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                        if ( !(permittedCases & EAknEditorLowerCase))
-                            {
-                            // We need to move to next input mode since only upper case 
-                            // is permitted in Latin input mode.
-                            iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                            }
-                        }
-                    else
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                        iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                        }
-                    }
-                }
-            }
-        iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateChangeToPredictionMode);
-        }
-
-    if (iFepMan.HashKeySelectionInUse()
-     && !iFepMan.IsCcpuFlagSet(CAknFepManager::ECcpuStateEdwinInSelectionMode)
-     && iFepMan.OkToActivateSelectionMode())
-        {
-        // User wants to select and not to change mode, so cancel the mode change
-        // caused by initial hash key press.
-        SetPreviousSelectionStyleModeL();
-
-        iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateHashDown | 
-                            CAknFepManager::ECcpuStateEdwinInSelectionMode );
-         TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-        // to enable copy/paste support on cba. We simulate via CCoeEnv
-        // to avoid fep SimulateKeyEventL adding shift modifiers
-        CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey);
-        }
-
-    return response;
-    }
-
-TKeyResponse CAknFepHashKeyManager::HandleSortKeypressJapaneseL()
-    {
-    TKeyResponse response = EKeyWasConsumed;
-    if (iFepMan.IsOnlyNumericPermitted())
-        {
-        response = EKeyWasNotConsumed;
-        }
-    else if (iMode == EHiragana)
-        {
-        response = EKeyWasConsumed;
-        }
-    else if (iFepMan.HashKeySelectionInUse()
-          && iPreviousSelection)
-        {
-        // User wants to select and not to change mode, so not change to input mode
-        response = EKeyWasConsumed;
-        iPreviousSelection = EFalse;
-        }
-    else
-        {
-        CancelHashKeyTimer();
-        if ( iMode == ELatin && iCaseMan->IsAbleChangeCase())
-            {
-            // Input mode is incremented.
-            iFepMan.TryIncrementModeL(iMode);
-            if (iFepMan.IsQwerty())
-                {
-                if ( iMode == ELatin )
-                    {
-                    iFepMan.TryIncrementModeL(ENumber);
-                    }
-                }
-            }
-        else if ( iMode == ELatin && !iCaseMan->IsAbleChangeCase() && iFepMan.IsQwerty())
-            {
-            // In Qwerty input and not be able to change case mode,
-            // Number mode must be skipped.
-            iFepMan.TryIncrementModeL(ENumber);
-            }
-        else
-            {
-            // Input mode is incremented.
-            iFepMan.TryIncrementModeL(iMode);
-            if ( iMode == ELatin )
-                {
-                if (iCaseMan->IsAbleChangeCase())
-                    {
-                    CAknEdwinState* editorState = iFepMan.EditorState();
-                    TInt permittedCases = editorState->PermittedCases();
-                    if (permittedCases & EAknEditorTextCase)
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorTextCase);
-                        iCaseMan->UpdateCase(ENullNaviEvent);
-                        }
-                    else
-                        {
-                        if ( iFepMan.CaseBefore() )
-                            {
-                            iCaseMan->SetCurrentCase(iFepMan.CaseBefore());
-                            }
-                        else if (permittedCases & EAknEditorUpperCase)
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                            if ( !(permittedCases & EAknEditorLowerCase))
-                                {
-                                // We need to move to next input mode since only upper case 
-                                // is permitted in Latin input mode.
-                                iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                                }
-                            }
-                        else
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                            iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-    return response;
-    }
-        
-                
-enum
-	{
-	EHashPredictionBit = 0x01,
-    EHashTextCaseBit   = 0x02,
-    EHashUpperCaseBit  = 0x04,
-    EHashLowerCaseBit  = 0x08,
-    EHashNumberModeBit = 0x10,    	    	    	
-    };
-        	
-enum
-	{
-	EHashLatinLowerMode = EHashLowerCaseBit,
-	EHashLatinUpperMode = EHashUpperCaseBit,
-	EHashLatinTextMode  = EHashTextCaseBit,
-	EHashPredLowerMode  = EHashLowerCaseBit | EHashPredictionBit,
-	EHashPredUpperMode  = EHashUpperCaseBit | EHashPredictionBit,
-	EHashPredTextMode   = EHashTextCaseBit | EHashPredictionBit		
-	};        	
-        	        
-enum
-	{
-	EHashIndicMultitapMode,
-	EHashIndicPredictiveMode,
-#ifdef RD_HINDI_PHONETIC_INPUT	
-	EHashIndicPhoneticLowerMode,
-	EHashIndicPhoneticUpperMode,
-#endif 	
-	EHashIndicLatinTextMode,
-	EHashIndicLatinLowerMode,
-	EHashIndicLatinUpperMode,
-	EHashNumberMode
-
-	};        
-// Here we enumerate possible mode sequences for selection style has key loop. 
-// Number mode is handled as a special case. This only consumes 24 bytes.  
-const TInt KNumModesInLoop = 4;  
-const TUint8 allHashKeyLoops[] = 
-	{
-	EHashLatinLowerMode, EHashLatinUpperMode, EHashPredLowerMode, EHashPredUpperMode, 
-	EHashLatinUpperMode, EHashLatinLowerMode, EHashPredUpperMode, EHashPredLowerMode, 
-	EHashLatinTextMode,  EHashLatinLowerMode, EHashPredTextMode,  EHashPredLowerMode,
-	EHashPredLowerMode, EHashPredUpperMode, EHashLatinLowerMode, EHashLatinUpperMode,
-	EHashPredUpperMode, EHashPredLowerMode, EHashLatinUpperMode, EHashLatinLowerMode,
-	EHashPredTextMode,  EHashPredLowerMode, EHashLatinTextMode,  EHashLatinLowerMode
-	};
-
-    
-TKeyResponse CAknFepHashKeyManager::HandleKeyWesternSelectionStyleL(TKeyPressLength aLength)    
-	{
-    TKeyResponse response = EKeyWasNotConsumed;
-	
-	if (aLength == EShortKeyPress)
-		{		
-		if (iFepMan.IsOnlyNumericPermitted()) 
-			{
-			if (!iFepMan.IsExtendedFlagSet(CAknFepManager::EExtendedFlagShortPressHashKey))
-			    {
-			    // Set the flag to indicate its a short press of key event
-			    iFepMan.SetExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-			    response = EKeyWasConsumed;
-			    }
-            else
-                {
-			    iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-			    }
-			return response;
-			}
-			
-		if(IsIndicHashKeyStyleRequired())
-			{
-			return (SetIndicStateL());	
-			}   			
-   			
-		if (!iSelectionLoop)
-			{
-			TInt index = 0;
-			if (iFepMan.WesternPredictive(ELatin))
-				{
-				index += (3 * KNumModesInLoop);
-				}
-				
-			switch (iCaseMan->CurrentCase())	
-				{
-				case EAknEditorUpperCase:
-					 index += KNumModesInLoop;
-					 break;				
-				case EAknEditorTextCase:
-					 index += (2 * KNumModesInLoop);
-					 break;		
-				default:
-				     break;						 							 
-				}				
-				
-			iSelectionLoop = &allHashKeyLoops[index];
-			
-			if (iMode == ENumber || iMode == ENativeNumber)				
-				{
-				iSelectionLoopIndex = -1;
-				}
-			}
-			
-		if (!iFepMan.InputLanguageSupportsCaseChanges())
-			{
-			// Jumping by 2 always ignores case change.
-			iSelectionLoopIndex += 2;			
-			}
-		else 
-			{
-			iSelectionLoopIndex++;
-			}
-			
-		if (iSelectionLoopIndex >= 0 && (iSelectionLoop[iSelectionLoopIndex] & EHashPredictionBit) != 0)
-			{			
-			MPtiLanguage* curLang = iFepMan.PtiEngine()->CurrentLanguage();
-			if(!iFepMan.InputLanguageSupportsCaseChanges())
-				{
-				MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-			    if(edit && edit->DocumentLengthForFep() > 0)
-			        {
-			        edit->GetCursorSelectionForFep(iPreviousIndicCursorPosition);
-			        }
-				
-				}
-			if ((curLang && curLang->HasInputMode(EPtiEnginePredictive) == EFalse) ||
-			    (iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9))			    			    			
-				{						
-				// If next one would be prediction, but prediction is not allowed,
-				// skip modes.
-				iSelectionLoopIndex += 2;				
-				}
-			}
-							
-		if (iSelectionLoopIndex >= KNumModesInLoop)
-			{
-			iSelectionLoopIndex = -1;
-			}
-			
-		SetSelectionStyleModeL();			
-					
-		response = EKeyWasConsumed;					
-		}
-			
-	return response;	
-	}
-
-
-void CAknFepHashKeyManager::SetPreviousSelectionStyleModeL()
-	{
-	if(IsIndicHashKeyStyleRequired())
-		{
-		SetIndicPreviousStateL();	
-		return;
-		}		
-	if (iFepMan.IsOnlyNumericPermitted() || !iSelectionLoop)
-		{
-        // iSelectionLoop is not used in Japanese variant,
-        // so, it keeps previous selection.
-        if (!iSelectionLoop)
-            {
-            iPreviousSelection = ETrue;
-            }
-		return;		
-		}
-		
-	if (!iFepMan.InputLanguageSupportsCaseChanges())
-		{
-		// Jumping by 2 always ignores case change.
-		iSelectionLoopIndex -= 2;			
-		if (iSelectionLoopIndex >= 0 && 
-	       (iSelectionLoop[iSelectionLoopIndex] & EHashPredictionBit) == 0 )
-			{
-		
-			MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-		    if(edit && edit->DocumentLengthForFep() > 0)
-		        {
-		        edit->SetCursorSelectionForFepL(iPreviousIndicCursorPosition);
-		        }
-			}
-		}
-	else 
-		{
-		iSelectionLoopIndex--;
-		}		
-		
-	if (iSelectionLoopIndex >= 0 && 
-	    (iSelectionLoop[iSelectionLoopIndex] & EHashPredictionBit) != 0 &&
-		(iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9))			
-		{
-		// If next one would be prediction, but prediction is not allowed,
-		// skip modes.
-		iSelectionLoopIndex -= 2;				
-		}
-		
-	if (iSelectionLoopIndex < -1)
-		{
-		// Jump over to the end of list
-		iSelectionLoopIndex = KNumModesInLoop - 1;	
-		}
-		
-	SetSelectionStyleModeL();		
-	}
-	
-	
-	
-void CAknFepHashKeyManager::SetSelectionStyleModeL()
-	{
-	TBool wasPredictive = iFepMan.WesternPredictive();
-	TBool willBePredictive = EFalse;
-	
-	if (iSelectionLoopIndex == -1)	
-		{
-		// Set number mode.
-		if( iFepMan.IsSupportNativeNumber())
-		    {
-		    iFepMan.TryChangeModeL( ENativeNumber );
-		    }
-		else
-		    {
-		    iFepMan.TryChangeModeL(ENumber);
-		    }
-		}
-	else
-		{		
-		willBePredictive = (iSelectionLoop[iSelectionLoopIndex] & EHashPredictionBit) != 0;		
-		iFepMan.SetWesternPredictive(willBePredictive);
-		if (iSelectionLoop[iSelectionLoopIndex] & EHashLowerCaseBit)	
-			{
-         	iCaseMan->SetCurrentCase(EAknEditorLowerCase, ETrue);			
-			}									
-		else if (iSelectionLoop[iSelectionLoopIndex] & EHashUpperCaseBit)			
-			{	
-			// Let case manager to decide whether we use text case or
-			// upper case.
-			CAknEdwinState* editorState = iFepMan.EditorState();
-    		TInt permittedCases = EAknEditorAllCaseModes;
-    		if(editorState)
-    			permittedCases = editorState->PermittedCases();
-    		if (!(permittedCases&EAknEditorTextCase ) || 
-              iCaseMan->CapsLockRequired(EAknEditorLowerCase))    		
-    			{    			    			
-	   	        iCaseMan->SetCurrentCase(EAknEditorUpperCase, ETrue);			    			    			
-    			}
-			else
-				{
-	       	    iCaseMan->SetCurrentCase(EAknEditorTextCase, ETrue);							
-				}    						
-			}
-		else
-			{
-       	    iCaseMan->SetCurrentCase(EAknEditorTextCase, ETrue);						
-			} 
-		iFepMan.SetFlag(CAknFepManager::EFlagSupressAutoUpdate);	
-		if (!(wasPredictive && willBePredictive))
-			{
-			// Do not do this if this is just case change inside predictive mode,
-			// otherwise active word will be committed.
-			iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStataCommitPredictiveWord);
-			iFepMan.TryChangeModeL(ELatin);  									
-			}
-		iFepMan.ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);		
-		}			
-	}
-void CAknFepHashKeyManager::UpdateCaseForIndicHashLoop()	
-	{
-	switch (iCaseMan->CurrentCase())	
-		{
-		case EAknEditorUpperCase:
-			 iIndicSelectionLoopIndex = EHashIndicLatinUpperMode;
-			 break;				
-		case EAknEditorTextCase:
-			 iIndicSelectionLoopIndex = EHashIndicLatinTextMode;
-			 break;	
-		case EAknEditorLowerCase:
-			 iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;
-			 break;	
-		default:
-		     break;						 							 
-		}	
-	}
-
-
-TBool CAknFepHashKeyManager::IsIndicHashKeyStyleRequired()
-	{
-	if(TAknFepUiIndicInputManager::IsIndicLangauge(iFepMan.GetInputLanguageFromSharedDataInterface())
-#ifdef RD_HINDI_PHONETIC_INPUT	
-	   || TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(
-             iFepMan.GetInputLanguageFromSharedDataInterface())
-#endif	   
-	   )
-		{
-		CAknEdwinState* editorState = iFepMan.EditorState();
-		if (editorState && !(editorState->Flags() & EAknEditorFlagLatinInputModesOnly))
-			{
-			return ETrue;
-			}
-		}
-	return EFalse;	
-	}
-
-
-TKeyResponse CAknFepHashKeyManager::SetIndicPreviousStateL()
-	{
-	TKeyResponse response = EKeyWasNotConsumed;
-	if (iFepMan.IsOnlyNumericPermitted()) 
-		{
-		return response;
-		}
-	switch(iIndicSelectionLoopIndex)
-		{
-		case EHashIndicMultitapMode:
-		case EHashIndicPredictiveMode:	// fall through
-				if(iLanguageChangedOrChangeFromNumberMode)
-    				{
-			 		if(iFepMan.HashKeySelectionInUse())
-    					{
-    					iIndicSelectionLoopIndex = EHashNumberMode;
-    					}
-    				else
-    					{
-						iFepMan.ChangeInputLanguageL(ELangEnglish);
-    					if(iIndicSelectionLoopIndex)	// if hindi predictive is on, turn off for english
-					 		{
-					 		iFepMan.SetWesternPredictive(EFalse);
-					 		iFepMan.TryChangeModeL(ELatin);		        	
-					 		}
-    					UpdateCaseForIndicHashLoop();
-    					}
-    				}
-    			else
-    				{
-				    // Reverts predictive text settings change made with short key press.
-					if(iIndicSelectionLoopIndex)	// Meaning predictive state	
-			    		{
-						iIndicSelectionLoopIndex = EHashIndicMultitapMode;	// change to multitap
-						MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-					    if(edit && edit->DocumentLengthForFep() > 0)
-					        {
-					        edit->SetCursorSelectionForFepL(iPreviousIndicCursorPosition);
-					        }
-			    		}
-			    	else
-			    		{
-						iIndicSelectionLoopIndex = EHashIndicPredictiveMode;	// change to predictive
-			    		}
-    				}
-			break;
-#ifdef RD_HINDI_PHONETIC_INPUT				
-		case EHashIndicPhoneticLowerMode:
-		case EHashIndicPhoneticUpperMode:
-			if(iFepMan.WasLastKeyPressAHashKey())
-	    		{
-            	iFepMan.ChangeInputLanguageL(ELangEnglish);
-	 		 	iFepMan.SetWesternPredictive(EFalse);
-	 		 	iFepMan.TryChangeModeL(ELatin);
-            	iLanguageChangedOrChangeFromNumberMode = ETrue;
-	    		iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;
-	    		}
-		    else
-		    	{
-		    	if(iIndicSelectionLoopIndex == EHashIndicPhoneticUpperMode)
-		    		{
-		    		iIndicSelectionLoopIndex = EHashIndicPhoneticLowerMode;		
-		    		}
-		    	else if(iIndicSelectionLoopIndex == EHashIndicPhoneticLowerMode)
-		    		{
-		    		iIndicSelectionLoopIndex = EHashIndicPhoneticUpperMode;				
-		    		}
-		    	}
-			break;
-#endif				
-		case EHashIndicLatinTextMode:	// Text Case
-		case EHashIndicLatinUpperMode: // Upper Case
-		case EHashIndicLatinLowerMode: // Lower Case
-			   	if(iLanguageChangedOrChangeFromNumberMode)
-	    			{
-		            iFepMan.ChangeInputLanguageL(iFepMan.GetInputLanguageFromSharedDataInterface());
-	    			iIndicSelectionLoopIndex = iIndicPredictiveState;	
-	    			}
-    			else
-	    			{
-					if (iIndicSelectionLoopIndex == EHashIndicLatinLowerMode)
-						{
-						iIndicSelectionLoopIndex = EHashIndicLatinUpperMode;
-						}
-					else
-						{
-						iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;	
-						}
-					iCaseMan->UpdateCase(ENullNaviEvent);
-		    	    if(iCaseMan->CurrentCase() == EAknEditorTextCase)	
-	                    {
-	                    iIndicSelectionLoopIndex = EHashIndicLatinTextMode;
-	                    }
-	                else
-	                    {
-	                    iCaseMan->RevertCaseChange();
-	                    } 	
-	    			}
-				break;
-	
-		case EHashNumberMode:
-			if(iFepMan.HashKeySelectionInUse())
-				{
-				iFepMan.ChangeInputLanguageL(ELangEnglish);
-		 		iFepMan.SetWesternPredictive(EFalse);
-		 		iFepMan.TryChangeModeL(ELatin);		        	
-				UpdateCaseForIndicHashLoop();		
-				}
-			break;		
-		}
-		SetIndicSelectionStateL();
-		return EKeyWasConsumed;	
-	}
-    
-void CAknFepHashKeyManager::ResetIndicHashKeyStateL()
-	{
-	if(IsIndicHashKeyStyleRequired())
-		{
-		TInt editorMode = iFepMan.EditorState()->CurrentInputMode();
-		if(editorMode == EAknEditorNumericInputMode)
-			{
-			 iIndicSelectionLoopIndex = EHashNumberMode;
-			}
-		else
-			{
-			MPtiLanguage* curLang = iFepMan.PtiEngine()->CurrentLanguage();
-			if(curLang && curLang->LanguageCode()!=ELangEnglish )
-				{
-#ifdef RD_HINDI_PHONETIC_INPUT					
-				if(iFepMan.IsIndicPhoneticInputLanguage())
-		    	 	{
-		    	 	if(iCaseMan->CurrentCase() == EAknEditorUpperCase)
-		    	 		iIndicSelectionLoopIndex = EHashIndicPhoneticUpperMode;
-		    	 	else
-		    	 		iIndicSelectionLoopIndex = EHashIndicPhoneticLowerMode;
-		    	 	}
-		    	 else
-	    	 		{
-#endif	    	 		
-    			iIndicPredictiveState = iIndicSelectionLoopIndex = iFepMan.WesternPredictive(ELatin);
-#ifdef RD_HINDI_PHONETIC_INPUT		    	 		
-	    	 		}	
-#endif	    	 		
-				}
-			else
-				{
-				UpdateCaseForIndicHashLoop();	
-				}		
-			}
-		}
-	}
-    
-TKeyResponse CAknFepHashKeyManager::SetIndicStateL()
-	{
-	TKeyResponse response = EKeyWasNotConsumed;
-	
-	if (iFepMan.IsOnlyNumericPermitted()) 
-		{
-		return response;
-		}
-	
-	iLanguageChangedOrChangeFromNumberMode = EFalse;
-    if(iIndicSelectionLoopIndex == -1)	
-    	{
-    	iIndicPredictiveState = iIndicSelectionLoopIndex = 
-        	    (iFepMan.WesternPredictive(ELatin) && 
-    	        (!( iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9)));
-    	// Cannot be done in constructor as FepMan is not completely initialized
-    	}
-	
-	switch(iIndicSelectionLoopIndex)
-		{
-		case EHashIndicMultitapMode:
-		case EHashIndicPredictiveMode:	//fall through
-		
-		    		iIndicPredictiveState = iIndicSelectionLoopIndex; // 0 for multitap and 1 for predictive	
-					if(iFepMan.WasLastKeyPressAHashKey() || 
-					    ( iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9))
-			    		{
-		            	//iFepMan.ChangeInputLanguageL(ELangEnglish);
-			 		 	iFepMan.SetWesternPredictive(EFalse);
-			 		 	iFepMan.TryChangeModeL(ELatin);
-		            	iLanguageChangedOrChangeFromNumberMode = ETrue;
-			    		iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;
-			    		iCaseMan->UpdateCase(ENullNaviEvent);
-			    	    if(iCaseMan->CurrentCase() == EAknEditorTextCase)	
-		                    {
-		                    iIndicSelectionLoopIndex = EHashIndicLatinTextMode;
-		                    }
-		                else
-		                    {
-		                        iCaseMan->RevertCaseChange();
-		                    }    
-			    		}
-				    else
-				    	{
-				    	if(iIndicSelectionLoopIndex)	// Meaning predictive state	
-				    		{
-							iIndicSelectionLoopIndex = EHashIndicMultitapMode;	// change to multitap
-				    		}
-				    	else
-				    		{
-							if(!( iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9))
-							    {
-							    iIndicSelectionLoopIndex = EHashIndicPredictiveMode;	// change to predictive
-							    MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-						        if(edit && edit->DocumentLengthForFep() > 0)
-						            {
-						            edit->GetCursorSelectionForFep(iPreviousIndicCursorPosition);
-						            }
-						        }
-				    		}		
-				    	}
-			break;
-#ifdef RD_HINDI_PHONETIC_INPUT				
-		case EHashIndicPhoneticLowerMode:
-		case EHashIndicPhoneticUpperMode:
-			if(iFepMan.WasLastKeyPressAHashKey())
-	    		{
-            	//iFepMan.ChangeInputLanguageL(ELangEnglish);
-	 		 	iFepMan.SetWesternPredictive(EFalse);
-	 		 	iFepMan.TryChangeModeL(ELatin);
-            	iLanguageChangedOrChangeFromNumberMode = ETrue;
-	    		iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;
-	    		}
-		    else
-		    	{
-		    	if(iIndicSelectionLoopIndex == EHashIndicPhoneticUpperMode)
-		    		{
-		    		iIndicSelectionLoopIndex = EHashIndicPhoneticLowerMode;		
-		    		}
-		    	else if(iIndicSelectionLoopIndex == EHashIndicPhoneticLowerMode)
-		    		{
-		    		iIndicSelectionLoopIndex = EHashIndicPhoneticUpperMode;				
-		    		}
-		    	}
-			break;
-#endif			
-		case EHashIndicLatinTextMode:	// Text Case
-		case EHashIndicLatinLowerMode: // Lower Case
-		case EHashIndicLatinUpperMode: // Upper Case
-				if(iFepMan.WasLastKeyPressAHashKey())
-					{
-					//iFepMan.ChangeInputLanguageL(iFepMan.GetInputLanguageFromSharedDataInterface());
-			        iLanguageChangedOrChangeFromNumberMode = ETrue;
-					if(iFepMan.HashKeySelectionInUse())
-						{
-						iIndicSelectionLoopIndex = EHashNumberMode;		// change to number
-						}
-					else
-						{
-#ifdef RD_HINDI_PHONETIC_INPUT						
-						if(TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(
-						      iFepMan.GetInputLanguageFromSharedDataInterface()))
-							{
-							iIndicSelectionLoopIndex = EHashIndicPhoneticLowerMode;	
-							}
-						else
-							{
-#endif							
-							iIndicSelectionLoopIndex = iIndicPredictiveState; // change to hindi [multitap or predictive based on previous setting]	
-#ifdef RD_HINDI_PHONETIC_INPUT	
-							}
-#endif							
-						}	
-					}
-				else
-					{
-					switch (iCaseMan->CurrentCase())	
-							{
-							case EAknEditorUpperCase:
-							case EAknEditorTextCase:	//fall through
-								 iIndicSelectionLoopIndex = EHashIndicLatinLowerMode;
-								 break;	
-							case EAknEditorLowerCase:
-								 iIndicSelectionLoopIndex = EHashIndicLatinUpperMode;
-								 break;	
-							default:
-							     break;						 							 
-							}	
-					}
-				break;
-	
-		case EHashNumberMode:
-			if(iFepMan.HashKeySelectionInUse())
-				{
-			    iLanguageChangedOrChangeFromNumberMode = ETrue;
-#ifdef RD_HINDI_PHONETIC_INPUT				    
-			    if(TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(
-			          iFepMan.GetInputLanguageFromSharedDataInterface()))
-			    	{
-			    	iIndicSelectionLoopIndex = EHashIndicPhoneticLowerMode;
-			    	iFepMan.TryChangeModeL(ELatin);	
-			    	}
-				else
-					{
-#endif 					
-					iIndicSelectionLoopIndex = iIndicPredictiveState; // change to hindi [multitap or predictive based on previous setting]
-#ifdef RD_HINDI_PHONETIC_INPUT	
-					}
-#endif			
-				}
-			break;
-			
-		default:
-				break;
-		}
-
-		SetIndicSelectionStateL();
-		return EKeyWasConsumed;	
-	}
-	
-	
-	
-	
-void CAknFepHashKeyManager::SetIndicSelectionStateL()
-	{
-	switch(iIndicSelectionLoopIndex)
-		{
-		
-		case EHashIndicMultitapMode:
-			{
-		 	 iFepMan.SetWesternPredictive(EFalse);
-		 	 iFepMan.TryChangeModeL(EHindi);
-			}
- 			 break;	
- 			 
-		case EHashIndicPredictiveMode:
-			 if(!( iFepMan.EditorState()->Flags() & EAknEditorFlagNoT9)) // make sure predictive is supported for editor
-			 	{
-			 	iFepMan.SetWesternPredictive(ETrue);
- 			 	iFepMan.TryChangeModeL(EHindi);
-			 	}
- 			 break;
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case EHashIndicPhoneticLowerMode: 
-			 iCaseMan->SetCurrentCase(EAknEditorLowerCase, ETrue);
-			break;
-			
- 		case EHashIndicPhoneticUpperMode:
-	  		 iCaseMan->SetCurrentCase(EAknEditorUpperCase, ETrue);
-	  		break;
-#endif	  			
-		case EHashIndicLatinTextMode:
-			 iCaseMan->SetCurrentCase(EAknEditorTextCase, ETrue);
-			 break;
-			 
-		case EHashIndicLatinUpperMode:
-			 iCaseMan->SetCurrentCase(EAknEditorUpperCase, ETrue);
-			 break;
-			 
-		case EHashIndicLatinLowerMode:
-			 iCaseMan->SetCurrentCase(EAknEditorLowerCase, ETrue);
-			 break;	
-	
-		case EHashNumberMode:
-		     if( iFepMan.IsSupportNativeNumber())
-		        {
-		        iFepMan.TryChangeModeL(ENativeNumber);
-		        }
-		     else
-		        {
-		        iFepMan.TryChangeModeL(ENumber);
-		        }
-			 break;
-		default:
-			 break;
-		}
-	}	
-
-void CAknFepHashKeyManager::ResetPreviousSelectionStyleMode()
-    {
-    iPreviousSelection = EFalse;
-    }
-#ifdef RD_HINDI_PHONETIC_INPUT	
-void CAknFepHashKeyManager::HandleSetIndicStateL()	
-	{
-	//calling SetIndicStateL only if currently it is in upper mode
-	if(iIndicSelectionLoopIndex == EHashIndicPhoneticUpperMode)
-	   SetIndicStateL();
-	}
-#endif
-
-TKeyResponse CAknFepHashKeyManager::HandleKeyWesternWithKoreanL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    
-    if(iMode == ELatin)
-    	{
-        iFepMan.SetWesternPredictive(EFalse);
-        }
-
-    if (iFepMan.IsOnlyNumericPermitted())
-        {
-        if (aLength == ELongKeyPress)
-            {
-		    TText prevCh = iFepMan.PreviousChar();
-		    if (prevCh == '#')
-		    	{
-				iFepMan.RemovePreviousCharacterL();		    	
-		    	}
-	
-            response = EKeyWasConsumed;
-            }
-        //else let the FEP Man put special chars into the editor
-        }
-    else
-        {
-        if (aLength == EShortKeyPress)
-            {
-		if (iMode == ENumber)
-    			{
-    			response = EKeyWasNotConsumed;
-    			return response; 
-				}   
-            }
-        else // Long keypress
-            {             
-  			if (iMode == ENumber)
-                {
-                iLastModeNumber = ETrue;
-               	
-               	TText prevCh = iFepMan.PreviousChar();
-		    	if (prevCh == '#')
-		    		{
-					iFepMan.RemovePreviousCharacterL();		    	
-		    		}                
-                }
-            else
-                {
-                iLastModeNumber = EFalse;
-                }
-                        
-            CAknEdwinState* editorState = iFepMan.EditorState();                    
-            TInt permittedCases = editorState->PermittedCases();
-            permittedCases = permittedCases == 0 ? 
-                EAknEditorLowerCase | EAknEditorUpperCase : permittedCases;
-            if ( iMode == ELatin && (permittedCases & EAknEditorTextCase))
-                {
-                // Latin case update is changed back to automatic if latin 
-                // text case is allowed and the case is changed manually from #-key.
-                iFepMan.ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                }
-            TInt currentCase = iCaseMan->CurrentCase();
-
-            // Is current latin case last available case.
-            TBool lastCase = ( ( !(permittedCases & EAknEditorTextCase) && 
-                  (( currentCase == EAknEditorLowerCase) ||
-                   ( currentCase == EAknEditorUpperCase && 
-                   !(permittedCases & EAknEditorLowerCase)) ) ||
-                ( editorState->Flags() & EAknEditorFlagFixedCase) ) ||
-                ( editorState->Flags() & EAknEditorFlagForceTransparentFepModes) );
-            
-            if (iMode == ELatin && 
-                !iFepMan.IsFlagSet(CAknFepManager::EFlagChangeInputMode) &&
-                !lastCase )
-                {
-                // Input mode is still Latin. Only case is updated.
-                if (permittedCases & EAknEditorTextCase) 
-                    {
-                    iCaseMan->ManualCaseUpdate();
-                    }
-                else
-                    {
-                    iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                    }
-
-                // Next time input mode is changed if any text is not entered before.
-                iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-                }
-            else
-                {
-                // Do not change mode, if text selection is ongoing. 
-                if(!iFepMan.IsCcpuFlagSet(CAknFepManager::ECcpuStateEdwinInSelectionMode))
-                	{ 
-	               	// Input mode is incremented.
-	               	iFepMan.TryIncrementModeL(iMode);
-
-
-	                iFepMan.ClearFlag(CAknFepManager::EFlagChangeInputMode);
-
-	                if (iMode == ELatin) // New mode after Increment.
-	                    {
-	                    if (editorState->Flags() & EAknEditorFlagFixedCase) 
-	                        {
-	                        // Only one fixed case is available. Use it.
-	                        iCaseMan->ConfigureCaseStateFromEditorState();
-	                        iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-	                        }
-	                    else if (editorState->Flags() & EAknEditorFlagForceTransparentFepModes) 
-	                        {
-	                        // Only lower case is used with find pane.
-	                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-	                        iFepMan.SetFlag(CAknFepManager::EFlagSupressAutoUpdate);
-	                        iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-	                        }
-	                    else if (permittedCases & EAknEditorTextCase)
-	                        {
-	                        iCaseMan->SetCurrentCase(EAknEditorTextCase);
-	                        iCaseMan->UpdateCase(ENullNaviEvent);
-	                        }
-	                    else
-	                        {
-	                        if (permittedCases & EAknEditorUpperCase)
-	                            {
-	                            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-	                            if ( !(permittedCases & EAknEditorLowerCase))
-	                                {
-	                                // We need to move to next input mode since only upper case 
-	                                // is permitted in Latin input mode.
-	                                iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-	                                }
-	                            }
-	                        else
-	                            {
-	                            iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-	                            iFepMan.SetFlag(CAknFepManager::EFlagChangeInputMode);
-	                            }
-	                        }
-	                    }
-                    }
-                }			
-            }
-        response = EKeyWasConsumed;
-        }
-    return response;
-    }
-// End of File
--- a/fep/aknfep/src/AknFepInlineTextDecorator.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// CAknFepInlineTextDecorator class
-//
-#include <aknenv.h>
-
-#include "AknFepInlineTextDecorator.h"
-#include "AknFepManager.h"
-
-#ifdef _DEBUG
-#include "AknFepPanic.h"
-#endif
-
-void CAknFepInlineTextDecorator::DecorateInlineText(
-	const TDesC& aInlineText,
-	TDes& aDecoratedText,
-	TInt& aPositionOfInsertionPointInInlineText,
-	TChar aPreviousCharacter,
-	TBool aRTLParagraph,
-    TBool aInputDirectionIsRTL)
-	{
-	DecorateNeutralCharacters(aInlineText, aDecoratedText, aPositionOfInsertionPointInInlineText, 
-                              aPreviousCharacter, aRTLParagraph, aInputDirectionIsRTL);
-	}
-
-/**
-* This routine performs a consolidation of directional markers in the region around text being committed.
-* It returns EFalse if no change has been made to the buffer.
-*/
-TBool CAknFepInlineTextDecorator::ResolveDecoratedText(
-	TDes& aDecoratedTextPlusSurroundings,
-	TCursorSelection aDecoratedTextSpan)
-	{
-	TBool needsResolving(EFalse); // Return value
-	
-    // Note that this is a copy of a part of the buffer and that aNewTextSpan is relative to this
-    // new buffer, not the whole text buffer.
-    // aNewTextSpan must fit within the descriptor; that is from 0 to length-1
-    // But remember that span is a span; indices refer to positions between characters. 0 is position just before 0
-    // 1 is a position between 0 and character 1.  
-    __ASSERT_DEBUG(aDecoratedTextSpan.LowerPos() >= 0, 
-                   AknFepPanic(EAknFepPanicCharPosOutOfRange) );
-    __ASSERT_DEBUG(aDecoratedTextSpan.HigherPos() <= aDecoratedTextPlusSurroundings.Length(), 
-                   AknFepPanic(EAknFepPanicCharPosOutOfRange) );
-    
-    // Examine the decorated text for real content
-    TBool cont = EFalse;
-	TInt ii = 0;
-	for (ii = aDecoratedTextSpan.LowerPos(); ii < aDecoratedTextSpan.HigherPos(); ii++)
-		{
-		if (!CharacterIsDirectionalMarker(aDecoratedTextPlusSurroundings[ii]))
-			cont = ETrue;
-		}
-	// if all we have entered are directional markers we want
-	// to keep them so do nothing and return
-	if (!cont)
-		return needsResolving; // Uses initialized value of return value. Please maintain.
-
-	ii = 0;
-	while (ii < aDecoratedTextPlusSurroundings.Length())
-		{
-		TChar prevCh = ENullChar;
-		if (ii > 0)
-			prevCh = aDecoratedTextPlusSurroundings[ii-1];
-		TChar ch = aDecoratedTextPlusSurroundings[ii];
-		TChar nextCh = ENullChar;
-		if (ii <  aDecoratedTextPlusSurroundings.Length()-1)
-			nextCh = aDecoratedTextPlusSurroundings[ii+1];
-
-		if (CharacterIsDirectionalMarker(ch))
-			{
-			// Remove a marker if :
-			//
-			// 1. previous character is strong and has the same directionality
-			// 2. next character is a marker of the same type (remove both)
-			// 3. next character is strong and has the same directionality
-			//
-			if (CharactersHaveSameStrongDirection(ch, prevCh))
-				{
-				aDecoratedTextPlusSurroundings.Delete(ii, ESingleCharacter);
-				ii--;
-				needsResolving = ETrue;
-				}
-			else if (CharacterIsDirectionalMarker(nextCh) && CharactersHaveSameStrongDirection(ch, nextCh))
-				{
-				aDecoratedTextPlusSurroundings.Delete(ii, ETwoCharacters);
-				ii--;
-				needsResolving = ETrue;
-				}
-			else if (CharactersHaveSameStrongDirection(ch, nextCh))
-				{
-				aDecoratedTextPlusSurroundings.Delete(ii, ESingleCharacter);
-				ii--;
-				needsResolving = ETrue;
-				}
-			}
-		ii++;
-		}
-    return needsResolving;
-	}
-
-
-TBool CAknFepInlineTextDecorator::CharacterIsDirectionalMarker(TChar aChar)
-	{
-	return (aChar == ELeftToRightMark || aChar == ERightToLeftMark);
-	}
-
-TBool CAknFepInlineTextDecorator::CharacterIsStrongLeftToRight(TChar aChar)
-	{
-	return (aChar.GetBdCategory() == TChar::ELeftToRight ||
-			   aChar == ELeftToRightMark);
-	}
-
-TBool CAknFepInlineTextDecorator::CharacterIsStrongRightToLeft(TChar aChar)
-	{
-	return ((aChar.GetBdCategory() == TChar::ERightToLeft) || 
-			(aChar.GetBdCategory() == TChar::ERightToLeftArabic) ||
-			aChar == ERightToLeftMark);
-	}
-
-TBool CAknFepInlineTextDecorator::CharactersHaveSameStrongDirection(TChar aCh1, TChar aCh2)
-	{
-	return ((CharacterIsStrongLeftToRight(aCh1) && CharacterIsStrongLeftToRight(aCh2)) ||
-				(CharacterIsStrongRightToLeft(aCh1) && CharacterIsStrongRightToLeft(aCh2)));
-	}
-
-TBool CAknFepInlineTextDecorator::CharacterIsWeaklyDirectional(TChar aChar)
-	{
-	return ((aChar.GetBdCategory() == TChar::EEuropeanNumber) ||
-			(aChar.GetBdCategory() == TChar::EEuropeanNumberSeparator) ||
-			(aChar.GetBdCategory() == TChar::EEuropeanNumberTerminator) ||
-			(aChar.GetBdCategory() == TChar::EArabicNumber) ||
-			(aChar.GetBdCategory() == TChar::ECommonNumberSeparator));
-	}
-
-TBool CAknFepInlineTextDecorator::CharacterIsSeparator(TChar aChar)
-	{
-	return ((aChar.GetBdCategory() == TChar::EParagraphSeparator) || 
-			(aChar.GetBdCategory() == TChar::ESegmentSeparator));
-	}
-
-TBool CAknFepInlineTextDecorator::CharacterIsNeutral(TChar aChar)
-	{
-	return ((aChar.GetBdCategory() == TChar::EWhitespace) || 
-			(aChar.GetBdCategory() == TChar::EOtherNeutral));
-	}
-
-void CAknFepInlineTextDecorator::DecorateNeutralCharacters(
-	const TDesC& aInlineText,
-	TDes& aDecoratedText,
-	TInt& aPositionOfInsertionPointInInlineText,
-	TChar aPreviousCharacter,
-	TBool aRTLParagraph,
-    TBool aInputDirectionIsRTL)
-	{
-
-	TChar curCh;
-	TChar prevCh = aPreviousCharacter;
-	TBuf<ESingleCharacter> insertBuf(ESingleCharacter);
-
-	for (TInt ii = 0; ii < aInlineText.Length(); ii++)
-		{
-		curCh = aInlineText[ii];
-		aDecoratedText.Append(curCh);
-
-		if (CharacterIsNeutral(curCh))
-			{
-			// mark the neutral character with appropriate direction markers if :
-			//
-			// 1. the input mode (lang) is opposed to the paragraph direction and 
-			//     previous character is not neutral
-			// 2. the input mode (lang) is opposed to the previous char direction
-			//     (=> charcater is entered inside existing block)
-			//
-			// Note that we need to increment the insertion point by 2 if the
-			// markers are inserted before it
-			//
-			if ((aInputDirectionIsRTL && !aRTLParagraph && !CharacterIsNeutral(prevCh)) ||
-				(aInputDirectionIsRTL &&  CharacterIsStrongLeftToRight(prevCh)))
-				{ // mark neutral with RLM
-				insertBuf[0]=ERightToLeftMark;
-				aDecoratedText.Insert(aDecoratedText.Length() -1, insertBuf);
-				aDecoratedText.Append(insertBuf);
-				
-				if (aPositionOfInsertionPointInInlineText > ii)
-					aPositionOfInsertionPointInInlineText+=ETwoCharacters;
-				}
-
-			else if ((!aInputDirectionIsRTL && aRTLParagraph && !CharacterIsNeutral(prevCh)) ||
-					 (!aInputDirectionIsRTL && CharacterIsStrongRightToLeft(prevCh)))
-				{ // mark neutral with LRM
-				insertBuf[0]=ELeftToRightMark;
-				aDecoratedText.Insert(aDecoratedText.Length() -1, insertBuf);
-				aDecoratedText.Append(insertBuf);
-				
-				if (aPositionOfInsertionPointInInlineText > ii)
-					aPositionOfInsertionPointInInlineText+=ETwoCharacters;
-				}
-			}
-		prevCh = curCh;
-		}
-	}
-
--- a/fep/aknfep/src/AknFepInputStateInitialChineseGenericHalfQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,456 +0,0 @@
-/*
-* Copyright (c) 2002 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 AknFepUiInputStateInitialChineseGenericHalfQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialChineseGenericHalfQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"         //FepMan flag
-
-#include <PtiEngine.h>
-#include <AknFepFnKeyManager.h>
-
-const TInt KFnMappedCharacters = 5;
-_LIT(KEmotionSmile, "\x003A\x0029");//:)
-_LIT(KEmotionLaugh, "\x003A\x0050");//:P
-_LIT(KEmotionSad, "\x003A\x0028");//:(
-_LIT(KSpace," "); 
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::TAknFepInputStateInitialChineseGenericHalfQwerty
-// the construt funtion 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateInitialChineseGenericHalfQwerty
-::TAknFepInputStateInitialChineseGenericHalfQwerty(MAknFepUIManagerStateInterface* aOwner, TInt /*aMode*/)
-    :TAknFepInputStateHalfQwerty(aOwner)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiTextCase caseMode = ptiengine->Case();
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-    ptiengine->SetCase(caseMode);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyL
-// handle key event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState = fepMan->FnKeyState();
-    if ( !fepMan->EditorHasFreeSpace() && fnKeyState )
-        {
-        return EFalse;
-        }
-    
-    if ( aKey == EPtiKeyQwerty0 )
-    	{
-    	aKey = EPtiKeyQwertySpace;
-    	}
-    
-    if (iData && (iData != aKey) && aKey != EStdKeyBackspace )
-        {
-        ptiengine->CancelTimerActivity();           
-        ptiengine->ClearCurrentWord();        
-        fepMan->ClearFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        iData = 0;
-        if ( fnKeyState == CAknFepFnKeyManager::EFnKeyNext )
-            {
-            fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-            fnKeyState = CAknFepFnKeyManager::EFnKeyNone;
-            }
-        }
-    
-    if( aKey == EStdKeyLeftFunc && !fnKeyState) //chr key
-        {
-        fepMan->LaunchSelectModeMenuL();
-        }
-    else if ( HandleEmotionKeyL( aKey, aLength ) )
-        {
-        return ETrue;
-        }
-    else if ( fnKeyState == CAknFepFnKeyManager::EFnKeyNone && (aKey
-        == EPtiKeyQwertyLeftShift || aKey == EStdKeyF21 ) )
-        {
-        return EFalse;
-        }
-    else if ( aKey == EStdKeyLeftArrow || aKey == EStdKeyRightArrow || aKey
-        == EStdKeyUpArrow || aKey == EStdKeyDownArrow || aKey
-        == EStdKeyBackspace )
-        {
-        if ( fepMan->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-            && fnKeyState )
-            {
-            return ETrue;
-            }
-        else
-            {
-            if ( fnKeyState == CAknFepFnKeyManager::EFnKeyNext )
-                {
-                fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-                }
-            return EFalse;
-            }
-        }
-    else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice1 || 
-        aKey == EStdKeyDevice2 )
-        {
-        return EFalse;
-        }
-    else if ( aLength == EShortKeyPress
-        && fepMan->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-        && aKey != EStdKeyLeftShift )
-        {
-        return ETrue;
-        }
-    else if ( ( IsCharacter( aKey ) && aLength == EShortKeyPress )
-        && !fepMan->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed )
-        && !fepMan->IsFlagSet( CAknFepManager::EFlagQwertyShiftMode )
-        && !fnKeyState )
-        {
-        ptiengine->ClearCurrentWord();
-        ptiengine->ResetToneMark();
-        if ( iOwner->IsValidChineseInputKeyQwerty( aKey ) )
-            {
-            if(iOwner->ChangeState(EEntry) == EEntry)
-                {
-                iOwner->FepMan()->SendUIActivatedNotification();
-                }
-            }
-        else if( aLength == EShortKeyPress )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return ETrue;
-            }
-        }
-    else if ( fepMan->IsFlagSet( CAknFepManager::EFlagQwertyShiftMode )
-        && fepMan->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-        {
-        ret = ETrue;
-        }
-    else if ( aKey == EPtiKeyQwertyApostrophe && aLength == ELongKeyPress )
-        {
-        ret = ETrue; 
-        }
-    else if (IsSCTKey(aKey))
-        {
-        HandleKeyByShiftOrCharPressedL(aKey,aLength);
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);        
-            }
-        ret = ETrue;
-        }
-    else if( aKey == EStdKeySpace )
-        {
-        if ( aLength == EShortKeyPress)
-            {
-            fepMan->StartInlineEditL();
-            fepMan->UpdateInlineEditL( KSpace, 0 );
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                }
-            }
-        else
-            {
-            TPtrC text;
-            TBuf<KFnMappedCharacters> allFnMappedCharacters;
-            ptiengine->MappingDataForKey( (TPtiKey)aKey,
-                allFnMappedCharacters, EPtiCaseFnLower );
-            text.Set( allFnMappedCharacters );
-            if ( text.Length() > 0 )
-                {
-                TBuf<1> chr;
-                chr.Append( text[0] );
-                fepMan->RemovePreviousCharacterL();
-                fepMan->NewCharacterL( chr );
-                fepMan->CommitInlineEditL();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    }
-                ptiengine->ClearCurrentWord();
-                iData = 0;
-                }
-            }
-        ret = ETrue;
-        }
-    else
-        {
-        ret = TAknFepInputStateHalfQwerty::HandleKeyL( aKey, aLength );
-        if ( fnKeyState == CAknFepFnKeyManager::EFnKeyNext && !IsMultitapkey( aKey ) )
-            {
-            fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-            }
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::IsSCTKey
-// to check whether the key is sct key 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::IsSCTKey(TInt aKey)
-    {
-    TBool response = EFalse;
-    switch (iOwner->FepMan()->InputMode())
-        {
-        case EPinyin:
-            break;
-        case EStroke:
-        case EZhuyin:
-            if (aKey == EPtiKeyQwertyQ ||aKey == EPtiKeyQwertyA ||aKey
-                    == EPtiKeyQwertyZ ||aKey == EPtiKeyQwertyO ||aKey
-                    == EPtiKeyQwertyL)
-                {
-                response = ETrue;
-                }
-            break;
-        case EStrokeFind:
-        case EZhuyinFind:
-            if (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ)
-                {
-                response = ETrue;
-                }
-            break;
-        }
-    if ( (/*aKey == EStdKeyFullStop || */aKey == EStdKeySpace )
-        && iOwner->FepMan()->FnKeyState() )
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::IsCharacter
-// to check whether the key stroke is a character key or not 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::IsCharacter(TInt aKey)
-    {
-    TBool response = EFalse;
-    switch (iOwner->FepMan()->InputMode())
-        {
-        case EPinyin:
-            if (( aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ ) ||
-            	( aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9 ) )
-                {
-                response = ETrue;
-                }
-            break;
-        case EStroke:
-        case EStrokeFind:
-            if ((aKey == EPtiKeyQwertyE ||aKey == EPtiKeyQwertyT ||aKey
-                    == EPtiKeyQwertyU ||aKey == EPtiKeyQwertyD ||aKey
-                    == EPtiKeyQwertyG ||aKey == EPtiKeyQwertyJ ) || 
-               (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty6))
-                {
-                response = ETrue;
-                }
-            break;
-        case EZhuyin:
-            if ( (aKey == EPtiKeyQwertyE ||aKey == EPtiKeyQwertyT ||aKey
-                    == EPtiKeyQwertyU ||aKey == EPtiKeyQwertyD ||aKey
-                    == EPtiKeyQwertyG ||aKey == EPtiKeyQwertyJ ||aKey
-                    == EPtiKeyQwertyC ||aKey == EPtiKeyQwertyB ||aKey
-                    == EPtiKeyQwertyM ||aKey == EPtiKeyQwertySpace ) ||
-                (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9))
-                {
-                response = ETrue;
-                }
-            break;
-        }
-    return response;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyByShiftOrCharPressedL
-// Handle the shift key envent 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyByShiftOrCharPressedL(
-    TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    TPtiTextCase caseMode = EPtiCaseLower;
-    TBool setfnstate = EFalse;
-    if (fepMan->IsOnlyNumericPermitted())
-        {
-        return ret;
-        }
-    TPtiTextCase shiftedCase = caseMode;
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)) 
-        {
-        shiftedCase = EPtiCaseUpper;
-        } 
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        shiftedCase = EPtiCaseChrLower;
-        }
-    if ( fepMan->FnKeyState() )
-        {
-        shiftedCase = EPtiCaseFnLower;
-        }
-    if ( aKey == EPtiKeyQwertyQ ||aKey == EPtiKeyQwertyA ||aKey
-        == EPtiKeyQwertyZ ||aKey == EPtiKeyQwertyO ||aKey == EPtiKeyQwertyL )
-        {
-        shiftedCase = EPtiCaseFnLower;
-        setfnstate = ETrue;
-        }
-    ptiengine->SetCase(shiftedCase);
-    TPtrC text;
-    text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-    if (text.Length())
-        {
-        if ( aLength == ELongKeyPress && !iOwner->FepMan()->FnKeyState() )
-            {
-            fepMan->RemovePreviousCharacterL();
-            }
-        TBuf<1> chr;            
-        for (TInt jj = 0; jj < text.Length(); jj++)
-            {
-            chr.Zero();
-            chr.Append( text[jj] );
-            fepMan->NewCharacterL( chr );
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                }
-            ptiengine->ClearCurrentWord();
-            }
-        ret = ETrue;
-        }
-    if(setfnstate && fepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNext )
-        {
-        ptiengine->SetCase(EPtiCaseLower); 
-        }    
-    
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();    
-    if(fnKeyState == CAknFepFnKeyManager::EFnKeyNext)
-        fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialChineseGenericHalfQwerty::HandleEmotionKeyL
-// Handle the emotion key envent 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::HandleEmotionKeyL( TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = EFalse;
-    TPtrC emotion;
-    if ( ( aKey != EPtiKeyQwerty7 &&
-         aKey != EPtiKeyQwerty8 &&
-         aKey != EPtiKeyQwerty9 ) ||
-         fepMan->FnKeyState())
-        {
-        return EFalse;
-        }
-    if ( EStroke == fepMan->InputMode() || EStrokeFind == fepMan->InputMode() )
-        {
-        if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-            return ETrue;
-            }
-        else
-            {
-            switch ( aKey )
-                {
-                case EPtiKeyQwerty7:
-                    emotion.Set( KEmotionSmile );
-                    ret = ETrue;
-                    break;
-                case EPtiKeyQwerty8:
-                    emotion.Set( KEmotionLaugh );
-                    ret = ETrue;
-                    break;
-                case EPtiKeyQwerty9:
-                    emotion.Set( KEmotionSad );
-                    ret = ETrue;
-                    break;
-                default:
-                    break;
-                }
-            }
-        }
-    if ( ret )
-        {
-        if ( aLength == EShortKeyPress)
-            {
-            fepMan->NewTextL(emotion);
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                }
-            }
-        else
-            {
-            for( TInt i=0; i<emotion.Length(); i++ )
-                {
-                fepMan->RemovePreviousCharacterL();
-                }
-            fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNext );
-            fepMan->PtiEngine()->SetCase( EPtiCaseFnLower );
-            return EFalse;
-            }
-        }
-    return ret;
-    }
-
-TBool TAknFepInputStateInitialChineseGenericHalfQwerty::IsMultitapkey( TInt aKey )
-    {
-    TBool ret = EFalse;
-    if ( aKey == EStdKeyLeftFunc || aKey == EPtiKeyQwertyLeftShift ||
-        aKey == EStdKeyFullStop )
-        {
-        ret = ETrue;
-        }
-    return ret;
-    }
-//end of the file
--- a/fep/aknfep/src/AknFepKeyCatcher.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,771 +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 CAknFepKeyCatcher methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikenv.h>
-#include <eikappui.h>               //iEikonEnv
-#include <e32keys.h>                //keys
-#include <uikon.hrh>                //keys
-
-#include "AknFepKeyCatcher.h"
-#include "AknFepManager.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-#include "AknFepPluginManager.h"
-#include <AknDef.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-#include <featmgr.h>                //FeatureManager
-#include <AvkonInternalCRKeys.h>
-
-LOCAL_C void FepObserverHandleCompletionOfTransactionL(MCoeFepObserver& aFepObserver)
-    {
-    aFepObserver.HandleCompletionOfTransactionL();
-    }
-
-CAknFepKeyCatcherInterface::~CAknFepKeyCatcherInterface()
-    {
-    }
-
-void CAknFepKeyCatcherInterface::HandleChangeInFocus()
-    {
-    }
-
-CAknFepKeyCatcher* CAknFepKeyCatcher::NewL(CAknFepManager& aFepMan)
-    {
-    CAknFepKeyCatcher* self=new(ELeave) CAknFepKeyCatcher(aFepMan);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-CAknFepKeyCatcher::~CAknFepKeyCatcher()
-    {
-    CloseWindow();
-    if(NULL != iEikonEnv->EikAppUi())
-        {
-        iEikonEnv->EikAppUi()->RemoveFromStack(this);
-#ifdef RD_SCALABLE_UI_V2
-        (CEikonEnv::Static())->RemoveMessageMonitorObserver(*this); 
-#endif //RD_SCALABLE_UI_V2
-        }
-    }
-
-TKeyResponse CAknFepKeyCatcher::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode)
-    {
-   
-#ifdef RD_SCALABLE_UI_V2     
-    if (aEventCode == EEventKeyUp && 
-        aKeyEvent.iScanCode == EStdKeyNo)
-        {
-        iFepMan.HandleEndKeyL();
-        }
-#endif //RD_SCALABLE_UI_V2 
-    // Temporary solution for Disable key tone when press key in Virtual ITUT
-    iFepMan.NeedDisableKeySound(aKeyEvent, aEventCode);
-    // sort out if we're doing long or short presses...
-    TKeyPressLength length = aKeyEvent.iRepeats ? ELongKeyPress : EShortKeyPress;
-    if (iKeyCatcherState == EAknFepStateNull)
-        {
-        if (aEventCode == EEventKeyUp && iLongPressedScanCode == aKeyEvent.iScanCode)
-            {
-            // An editor has lost focus during long key press (for example SCT popup 
-            // is shown during long keypress of star key).
-            // EFlagLongKeyPressHandled needs to be reseted also in this case.
-            ClearFlag(EFlagLongKeyPressHandled);
-            iLongPressedScanCode = 0;
-            }
-        if((aEventCode == EEventKeyDown) && (aKeyEvent.iScanCode==EStdKeyRightShift) 
-                && (iFepMan.KeyboardLayout()== EPtiKeyboard12Key) && !iFepMan.Japanese() 
-                &&  !iFepMan.IsChineseInputLanguage()  )
-            {
-            iFepMan.SetCcpuFlag(CAknFepManager::ECcpuStateShiftkeyWasPressedBeforeLosingFocus);
-            }
-        else if ((aEventCode == EEventKeyUp) && (aKeyEvent.iScanCode==EStdKeyRightShift) 
-                && (iFepMan.KeyboardLayout()== EPtiKeyboard12Key) 
-                && iFepMan.IsCcpuFlagSet(CAknFepManager::ECcpuStateShiftkeyWasPressedBeforeLosingFocus))
-            {
-            iFepMan.ClearCcpuFlag(CAknFepManager::ECcpuStateShiftkeyWasPressedBeforeLosingFocus);
-            }
-        
-        TInt keyCode = aKeyEvent.iCode;
-        if (keyCode == EKeyF19 || keyCode == EKeyF22 ||
-            keyCode == EKeyF23 || keyCode == EKeyF24 )
-            {
-            // Internal FEP key events that are simulated by FEP are always 
-            // also consumed by FEP. In this situation FEP has simulated the
-            // key event but the editor is unfocused right after.
-            return EKeyWasConsumed;
-            }
-        // FEP does not handle any keyevents if there are not any FEP aware editor focused, except shift key. 
-        // Notice that shift key is handled only if CAknFepKeyCatcher is constructed by focusing some editor.
-        
-        if (iFepMan.HashKeySelectionInUse())
-        	{        	
-        	// Hash key selection should work also with uneditable editors, therefore
-        	// we need to fake it as a shift key press here.
-	        if (aKeyEvent.iScanCode == EStdKeyHash)
-    	    	{
-    	    	if (aEventCode == EEventKeyUp)
-    	    		{		
-    	    		if (iFepMan.IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress))	   			    	    		
-    	    			{    	    			    	    		
-    	    			// We need to generate real shift up event for editor to
-    	    			// cancel ccpu-mode.
-		   				TKeyEvent ccpuStart = {0, EStdKeyLeftShift, 0, 0};
-    	 				CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);
-    	    			}
-    	    		else
-    	    			{
-    	    			// CCpu-mode was not yet activated. Just cancel the timer.
-    	    			iFepMan.CancelShiftKeyTimer();
-    	    			}		
-    	 			return EKeyWasNotConsumed;       	    		
-    	    		}
-				else if (aEventCode == EEventKeyDown)   	    		
-					{
-					return iFepMan.HandleShiftKeyEventL(aEventCode);        							
-					}
-        		}
-    	    }
-    	
-    	if( keyCode == EKeyEscape )
-    		{
-    		return iFepMan.HandleKeyEventL(keyCode, length);	
-    		}
-    		
-        if ((aKeyEvent.iScanCode==EStdKeyRightShift || aKeyEvent.iScanCode==EStdKeyLeftShift))
-            {
-            if (aEventCode == EEventKeyUp)
-                {
-                iFepMan.SetExtendedFlag(CAknFepManager::EExtendedFlagShiftReleasedOnPopup);
-                }
-            else
-                {
-                iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShiftReleasedOnPopup);
-                }
-            }
-        else
-            {
-            return EKeyWasNotConsumed;
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-     if(iKeyCatcherState != EAknFepStateNull)
-        {
-            if(iFepMan.IsFnKeyMapped() &&
-                (iFepMan.HandleFnKeyEventL( aKeyEvent, aEventCode ) == EKeyWasConsumed))
-            {
-            return EKeyWasConsumed;        
-            }
-
-        }
-#endif
-	
-     if ( aEventCode == EEventKeyUp && 
-          aKeyEvent.iScanCode == EStdKeyHash &&
-          iFepMan.IsExtendedFlagSet(CAknFepManager::EExtendedFlagShortPressHashKey) )
-         {
-         // We are here because of short press of has key. Since, we had consumed
-         // short press of hash key, we re-simulate is again, so that the respective
-         // application can handle it as per their need.
-         
-         TKeyEvent keyHash = {EPtiKeyHash, EStdKeyHash, 0, 0};
-         CCoeEnv::Static()->SimulateKeyEventL(keyHash, EEventKey);
-         iFepMan.ClearExtendedFlag(CAknFepManager::EExtendedFlagShortPressHashKey);
-         }
-    // Check for the Wireless Keyboard Modifier Flag.
-    const TUint KModifierExternalKeyboard = 0x00200000;
-    if ( aKeyEvent.iModifiers & KModifierExternalKeyboard )
-        {        
-        if ( iFepMan.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction |
-             CAknFepManager::EFlagInsideMultitapInlineEditingTransaction) ) 
-            {
-            if (iFepMan.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                // Remove any no matching word indicator.
-                iFepMan.TryRemoveNoMatchesIndicatorL();
-                }
-            // Ensure the CBA is in the default state.
-            iFepMan.UpdateCbaL(NULL);
-            // Close FEP UI, commit the inline edit and show the cursor.            
-            iFepMan.TryCloseUiL(); 
-            }        
-        // Allow the key through to the underlying control.
-        return EKeyWasNotConsumed;
-        }
-    
-    TKeyResponse retCode;
-	if (iFepMan.HandleCcpuModeKeyEventL(aKeyEvent, aEventCode,
-	                                   retCode, IsFlagSet(EFlagLongKeyPressHandled)))
-		{
-		return retCode;	
-		}
-
-#ifdef RD_SCALABLE_UI_V2
-    // Set text selection when tap arrow keys
-	if(iFepMan.HandleSelModeArrowKeyEventL(aKeyEvent, aEventCode, retCode))
-        {
-        return retCode;
-        }        
-#endif //RD_SCALABLE_UI_V2	
-
-    
-  
-    if ( ( aKeyEvent.iModifiers & EModifierCtrl
-#ifdef RD_INTELLIGENT_TEXT_INPUT     
-           || aKeyEvent.iScanCode==EStdKeyRightCtrl
-           || aKeyEvent.iScanCode==EStdKeyLeftCtrl
-#endif
-		 )
-        && aKeyEvent.iScanCode != EStdKeyBackspace  
-        && aKeyEvent.iScanCode != EStdKeyDelete )
-        {// Chinese qwerty increment input mode by Ctrl+Shift
-		return iFepMan.HandleQwertyControlKeyEventL(aKeyEvent, aEventCode);        
-        }
-
-    // handling hash key event in japanese input
-    if (iFepMan.IsFeatureSupportedJapanese()
-     && aKeyEvent.iScanCode==EStdKeyHash && !iFepMan.IsOnlyNumericPermitted())
-        {
-        return HandleHashKeyJapaneseL(aKeyEvent, aEventCode);
-        }
-    
-    // Let FepMan handle chr key
-    if (aKeyEvent.iScanCode==EStdKeyLeftFunc)
-        {
-        if (iFepMan.HandleQwertyChrKeyEventL(aEventCode))
-            {
-            return EKeyWasConsumed;
-            }
-        }
-    //let FepMan handle shifts
-    if ( aKeyEvent.iScanCode==EStdKeyRightShift || aKeyEvent.iScanCode
-            ==EStdKeyLeftShift )
-        {
-        // phrase creation
-        if ( iFepMan.IsPinyinPhraseCreation() )
-            {
-            return EKeyWasConsumed;
-            }
-        else
-            {
-            return iFepMan.HandleShiftKeyEventL( aEventCode );
-            }
-        }
-    
-    if (iFepMan.Japanese())
-        {
-        if ((aKeyEvent.iScanCode==EStdKeyDevice0) || (aKeyEvent.iScanCode==EStdKeyDevice1))
-            {
-            if (aEventCode != EEventKey)
-                {
-                return EKeyWasNotConsumed;
-                }
-            }
-        }
-
-    if (aEventCode==EEventKeyUp)
-        {
-        if ( iLongPressedScanCode == aKeyEvent.iScanCode )
-            {
-            ClearFlag(EFlagLongKeyPressHandled);
-            iLongPressedScanCode = 0;
-            }
-        
-        if ( (EStdKeyDelete == aKeyEvent.iScanCode || 
-              EStdKeyBackspace == aKeyEvent.iScanCode))  
-                {
-                iFepMan.SetLongClearAfterCloseUI(EFalse);               
-                }
-            
-        iFepMan.ClearFlag(CAknFepManager::EFlagCharacterAdded);
-        }
-
-
-    //let FepMan to try to handle Thai 0 key
-    TBool thai0Keyhandling = EFalse;
-
-    if (aKeyEvent.iScanCode==EPtiKey0 
-        && (!(aKeyEvent.iModifiers & EModifierSpecial)  // If the key is produced by hardware key
-          // In VKB and FSQ latin range 0 could be input with virtual keyboard
-          || (iFepMan.PluginInputMode() != EPluginInputModeFSQ  
-             && iFepMan.PluginInputMode() != EPluginInputModeVkb)))
-        {
-        if (iFepMan.HandleThai0KeyEvent(aEventCode, length, thai0Keyhandling) == EKeyWasConsumed)
-            {
-            return (EKeyWasConsumed); // Eats some key events to find out when o key goes up
-            }
-        if (thai0Keyhandling)
-            {
-            if(length == ELongKeyPress)
-                {
-                SetFlag(EFlagLongKeyPressHandled);
-                iLongPressedScanCode = aKeyEvent.iScanCode;
-                }
-            return (iFepMan.HandleKeyEventL(EPtiKey0, length));
-            }
-        }
-    TInt keyCode = aKeyEvent.iCode;
-    TKeyResponse response = EKeyWasNotConsumed;
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if ((aKeyEvent.iScanCode == EStdKeyNkpAsterisk ||aKeyEvent.iScanCode == EPtiKeyStar )&& iFepMan.KeyboardLayout() == EPtiKeyboard12Key)
-    	{
-    	//For Special Editors like Java numeric editor, EventKeyUp is allowed to flow through FEP.
-    	//All other events for Special Editor is not consumed by FEP.
-    	if(iFepMan.IsSpecialNumericEditor() && iFepMan.IsOnlyNumericPermitted() && aEventCode != EEventKeyUp)
-    		{
-    		return EKeyWasNotConsumed;
-    		}
-#ifdef FF_HOME_SCREEN_EASY_DIALING
-				// If Easy Dialing Feature in Phone Idle is turned on then,
-				// phoneIdleinEasyDialingNumericMode is set to True
-        TBool phoneIdleinEasyDialingNumericMode = EFalse;
-        phoneIdleinEasyDialingNumericMode = 
-        	(iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor) &&
-        	(iFepMan.InputMode() == ENumber || iFepMan.InputMode() == ENativeNumber);
-#endif           
-    	// For all Numeric Editors, only Event Key is allowed to flow through
-    	// When Easy Dialing is on, the editor in not numeric, even though in this scenario only Event key is allowed throug FEP
-    	if ( (iFepMan.IsOnlyNumericPermitted()
-#ifdef FF_HOME_SCREEN_EASY_DIALING    	
-    		 || phoneIdleinEasyDialingNumericMode 
-#endif    		 
-    		 )&& 
-    	     aEventCode != EEventKey)
-    		{
-    		return EKeyWasConsumed;
-    		}
-    	
-    	/* 
-    	For Long Key press:
-    		We only have Event Key, and FEP handles it for launching SCT.
-    	For short key presses:
-    		For Non numeric editors:
-    			EventDown and Eventkey:
-    				FEP consumes it - if FEP is in Inline edit or it can launch SCT. It is consumed by below check and does not flow further.
-    				Else, these events flow through FEP. Later decision is made to consume the event or not.
-    			EventUpKey:
-    				FEP consumes it - if FEP is in Inline edit or it can launch SCT. Desired functionality is achieved after flowing through FEP.
-    				Else, these events flow through FEP. Later decision is made to consume the event or not.
-    		For Numeric Editors:
-    			FEP handles EventKey for star key looping or launching sct. Other events does not reach here.
-    	*/
-    	if ( length != ELongKeyPress && 
-    	     aEventCode != EEventKeyUp && 
-    	     (
-    	      iFepMan.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) ||
-    	      !iFepMan.IsAbleToLaunchSCT() 
-    	     ) &&
-    	     (!iFepMan.IsOnlyNumericPermitted()
-#ifdef FF_HOME_SCREEN_EASY_DIALING    	
-    		  && !phoneIdleinEasyDialingNumericMode 
-#endif    		     	     
-    	     )
-    	   )
-    		{
-            return EKeyWasConsumed;
-    		}
-    	keyCode = EPtiKeyStar;
-    	}
-    else
-#endif
-    //only interested in EventKeys apart from for the shift key
-    if (aEventCode!=EEventKey)
-        {
-        // For Japanese, don't pass EEventKeyUp and EEventKeyDown
-        // event to application side if we are inputting Hiragana/Kanji.
-        if (iFepMan.Japanese() && iKeyCatcherState == EAknFepStateUIActive)
-            {
-            // arrow keys
-            if (aKeyEvent.iScanCode == EStdKeyDownArrow
-                  || aKeyEvent.iScanCode == EStdKeyRightArrow
-                  || aKeyEvent.iScanCode == EStdKeyLeftArrow
-                  || aKeyEvent.iScanCode == EStdKeyUpArrow)
-                {
-                return EKeyWasConsumed;
-                }
-            }
-
-        if ((iKeyCatcherState == EAknFepStateInitial)
-            && (aEventCode == EEventKeyUp) && (aKeyEvent.iScanCode == EStdKeyBackspace))
-            {
-            CCoeEnv::Static()->ForEachFepObserverCall(FepObserverHandleCompletionOfTransactionL);
-            }
-
-        return EKeyWasNotConsumed;  
-        }
-
-    //if we've done a long press, and we get repeats, don't pass it on to the fep man.
-
-    if (!(iFepMan.Japanese()&&
-          (aKeyEvent.iCode == EKeyLeftArrow
-        || aKeyEvent.iCode == EKeyRightArrow
-        || aKeyEvent.iCode == EKeyDownArrow
-        || aKeyEvent.iCode == EKeyUpArrow)))
-        {
-        if (!(aKeyEvent.iCode == EKeyPrevious || aKeyEvent.iCode == EKeyNext))
-            {                	
-            if (IsFlagSet(EFlagLongKeyPressHandled)&&(aKeyEvent.iRepeats))
-                {
-                return EKeyWasConsumed;         
-                }
-            }
-        }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    CAknFepFnKeyManager::TFnKeyState fnKeyStateBeforeKey = iFepMan.FnKeyState();
-
-	// the short key press was blocked, don't allow the long key press to go through
-	if ( IsFlagSet(EFlagBlockAllLongKeyPressEvents) && length == ELongKeyPress 
-								&& !IsNaviKey(aKeyEvent.iCode) )
-		{
-		return EKeyWasNotConsumed;
-		}
-	// if the editor has no free space	
-	// the key press is a valid one 
-	// (it is not for eg. a simulated key press for case change)
-	// we are not in between multitapping
-	// block the subsequent long key press also	
-	if ( length == EShortKeyPress && !iFepMan.EditorHasFreeSpace() 
-		&& iFepMan.PtiEngine()->IsValidKey((TPtiKey)aKeyEvent.iScanCode)   
-		&& !iFepMan.IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction) ) 
-    	{
-    	SetFlag(EFlagBlockAllLongKeyPressEvents); // block the subsequent long key press also
-    	return EKeyWasNotConsumed;
-    	}
-    else
-    	{
-    	ClearFlag(EFlagBlockAllLongKeyPressEvents);
-    	}	
-#endif // RD_INTELLIGENT_TEXT_INPUT 
-    if (iFepMan.HandleQwertyKeyEventL(aKeyEvent, response))
-        {
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ 
-		ClearFlag(EFlagBlockAllLongKeyPressEvents);	
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__    
-			TPtiKeyboardType keyboardType = iFepMan.KeyboardLayout();
-	        if( (length == ELongKeyPress) &&
-            (
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ 
-            iFepMan.LongPressNumberEntryOnQwerty()||
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__          
-            (keyboardType == EPtiKeyboardHalfQwerty)) &&
-            iFepMan.KeyMapsDifferentCharacterWithFn( (TPtiKey)aKeyEvent.iScanCode ) && 
-            fnKeyStateBeforeKey == CAknFepFnKeyManager::EFnKeyNone )
-            {
-            SetFlag(EFlagLongKeyPressHandled); // don't allow any more long presses to go through.
-            iLongPressedScanCode = aKeyEvent.iScanCode;
-            }
-#endif // RD_INTELLIGENT_TEXT_INPUT      
-        return response;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT		
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__ 
-        // key was not handled because there is no space in editor
-    else if( !iFepMan.EditorHasFreeSpace() && ( iFepMan.KeyboardLayout() != EPtiKeyboard12Key))
-    	{		
-    	SetFlag(EFlagBlockAllLongKeyPressEvents);
-    	}
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__          			
-#endif // RD_INTELLIGENT_TEXT_INPUT    
-	if (iFepMan.IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed))
-		{
-		// If shift (ie. edit-key) is pressed in itu-t mode, block all the numeric keys, 
-		// otherwise they will be routed to edwin and prodec unwanted character.
-		if ((aKeyEvent.iScanCode >= EPtiKey1 && aKeyEvent.iScanCode <= EPtiKey9) ||
-		    aKeyEvent.iScanCode == EPtiKey0 || aKeyEvent.iScanCode == EStdKeyFullStop )
-			{
-			return EKeyWasConsumed;
-			}		
-		}        
-		
-	if (iFepMan.IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-		{
-		if ((aKeyEvent.iScanCode >= EPtiKeyQwertyA && aKeyEvent.iScanCode <= EPtiKeyQwertyZ) ||
-		     aKeyEvent.iScanCode == EStdKeyFullStop )
-			{
-			return EKeyWasConsumed;
-			}		
-		}        
-        
-    // bulk of the selection.
-    switch(keyCode)
-        {
-    case EKeyLeftArrow: //fall through
-    case EKeyRightArrow:
-    case EKeyDownArrow:
-    case EKeyUpArrow:
-        response = iFepMan.HandleKeyEventL(keyCode, length);
-        break;
-    case EKeyCBA1:
-        {
-        TInt inputMode = iFepMan.InputMode();
-        if ( iKeyCatcherState == EAknFepStateUIActive && 
-            inputMode >= ECangJie && inputMode <= EStroke )
-            {
-            // Left softkey does not have functionality in Chinese input modes when 
-            // FEP UI is active.
-            // phrase creation
-            iFepMan.HandleKeyEventL( keyCode, length );
-            response = EKeyWasConsumed;
-            break;
-            }
-        }
-        //fall through
-    case EKeyOK:
-    case EKeyCBA2:
-    case EPtiKey0:
-    case EPtiKey1:
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-    case EPtiKeyStar:
-    case EPtiKeyHash:
-    case EKeyEscape:
-        if(length == ELongKeyPress)
-            {
-            SetFlag(EFlagLongKeyPressHandled); // don't allow any more long presses to go through.
-            iLongPressedScanCode = aKeyEvent.iScanCode;
-            }
-        //fall through
-    case EKeyBackspace:
-    case EKeyDelete:
-        
-        // This check is added to handle the case when user enters a consonant
-        // followed by a halant, follwed by digit using long key press.
-        // When backspace is done, first time, the digit gets deleted.
-        // Second time, only halant should be deleted. But since ZWS is
-        // present, the entire syllable gets deleted. Hence we forcefully
-        // remove the ZWS.
-        
-        if( keyCode == EKeyBackspace && 
-            iFepMan.PreviousChar( ETrue ) == ( ZERO_WIDTH_SPACE ) )
-            {
-            // Remove the Zero Width Space
-	    	iFepMan.RemovePreviousCharacterL();
-            }
-
-#ifdef RD_MARATHI
-		if( ( keyCode == EKeyBackspace ) && 
-			iFepMan.PreviousChar( ETrue ) == ( ZERO_WIDTH_JOINER ))
-			{
-			// Remove the Zero Width Joiner
-			iFepMan.RemovePreviousCharacterL();
-			}
-#endif // RD_MARATHI
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		if( keyCode == EKeyBackspace && 
-			( (aKeyEvent.iModifiers & EModifierLeftShift) ||
-			  (aKeyEvent.iModifiers & EModifierRightShift) ||
-			  (aKeyEvent.iModifiers & EModifierShift) ))
-			{
-			keyCode = EKeyDelete;
-			}
-#endif //RD_INTELLIGENT_TEXT_INPUT			
-        response = iFepMan.HandleKeyEventL(keyCode, length, aEventCode );
-        break;
-    case EKeyF19: // Fep simulated event to asynchronously update the case.
-    case EKeyF22:
-    case EKeyF23:
-    case EKeyF24:
-        response = iFepMan.HandleKeyEventL(keyCode, length);
-        break;
-    case EKeyPowerOff:
-    case EKeyPhoneEnd:
-    case EKeyApplication:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    		// To rip off suggested word completion when user press END / APPLICATION
-    			if(iFepMan.IsAutoCompleteOn())
-    			{
-    			iFepMan.RemoveSuggestedCompletionL();	
-    			}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		response = iFepMan.HandleKeyEventL(keyCode, length);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        break;
-    case EKeyPhoneSend:
-        // handling phone send key event in japanese input
-        if (iFepMan.IsFeatureSupportedJapanese())
-            {
-            if (iFepMan.Japanese() && iKeyCatcherState == EAknFepStateUIActive)
-                {
-                // Ensure the CBA is in the default state.
-                iFepMan.UpdateCbaL(NULL);
-                // Close FEP UI, commit the inline edit and show the cursor.            
-                iFepMan.TryCloseUiL();
-                }
-            }
-        break;
-    default:
-        break;
-        }
-   
-    return response;
-    }
-
-void CAknFepKeyCatcher::SetState(const enum TAknFepManagerState aState)
-    {
-    iKeyCatcherState=aState;
-    }
-
-CAknFepKeyCatcher::CAknFepKeyCatcher(CAknFepManager& aFepMan)
-    : iFepMan(aFepMan),
-      iKeyCatcherState(EAknFepStateNull)
-    {
-    }
-
-void CAknFepKeyCatcher::ConstructL()
-    {
-    // Set up fep key catching control - front window, null size, non-focusing
-    CreateWindowL();
-    SetFocusing(EFalse);    
-    RWindow& window=Window();
-    window.SetOrdinalPosition(0, ECoeWinPriorityFep);
-    TPoint fepControlPos(0, 0);
-    SetExtent(fepControlPos, TSize(0,0));               //null size
-    window.SetExtent(fepControlPos, TSize(0,0));
-    window.SetNonFading(ETrue);
-    if(NULL == iEikonEnv->EikAppUi())
-        {
-        User::Leave(KErrCancel);
-        }
-    iEikonEnv->EikAppUi()->AddToStackL(this, ECoeStackPriorityFep, 
-                                       ECoeStackFlagRefusesFocus|ECoeStackFlagSharable);
-#ifdef RD_SCALABLE_UI_V2
-    (CEikonEnv::Static())->AddMessageMonitorObserverL(*this); 
-#endif  //RD_SCALABLE_UI_V2
-    SetBlank();
-    }
-
-TKeyResponse CAknFepKeyCatcher::HandleHashKeyJapaneseL(const TKeyEvent& aKeyEvent, 
-                                                       TEventCode aEventCode)
-    {
-    // handling hash keypress event only
-    __ASSERT_DEBUG(aKeyEvent.iScanCode==EStdKeyHash, AknFepPanic(EAknFepPanicNotSupportKey));
-
-    // No handling case
-    if (aEventCode == EEventKeyDown
-     || iKeyCatcherState == EAknFepStateNull)
-        {
-        if (aEventCode == EEventKeyUp)
-            {
-            ClearFlag(EFlagLongKeyPressHandled);
-            }
-        return EKeyWasNotConsumed;
-        }
-    
-    // sort out if we're doing long or short presses...
-    TKeyPressLength length = aKeyEvent.iRepeats ? ELongKeyPress : EShortKeyPress;
-
-    // long keypress is handled once, after key event always is consumed.
-    if (aEventCode == EEventKey && IsFlagSet(EFlagLongKeyPressHandled) )
-        {
-        return EKeyWasConsumed;
-        }
-    
-    if (length == ELongKeyPress && !IsFlagSet(EFlagLongKeyPressHandled))
-        {
-        SetFlag(EFlagLongKeyPressHandled);
-        }
-    
-    // Always handling case
-    if (aEventCode != EEventKeyUp && IsFlagSet(EFlagLongKeyPressHandled)
-        || aEventCode == EEventKeyUp && !IsFlagSet(EFlagLongKeyPressHandled))
-        {
-        TKeyResponse response = iFepMan.HandleKeyEventL(EPtiKeyHash, length);
-        __ASSERT_DEBUG(response != EKeyWasNotConsumed, AknFepPanic(EAknFepPanicNotHandleHashKey));
-        }
-    else if (aEventCode == EEventKey
-          && iKeyCatcherState == EAknFepStateUIActive)
-        {
-        // Ensure the CBA is in the default state.
-        iFepMan.UpdateCbaL(NULL);
-        // Close FEP UI, commit the inline edit and show the cursor.
-        iFepMan.TryCloseUiL();
-        }
-
-    if (aEventCode == EEventKeyUp)
-        {
-        ClearFlag(EFlagLongKeyPressHandled);
-        }
-    
-    return EKeyWasConsumed;
-    }
-
-void CAknFepKeyCatcher::HandleResourceChange(TInt aType)
-    {
-    if(aType == KEikDynamicLayoutVariantSwitch)  //If the layout has been changed, notify fep manager
-        {
-        iFepMan.HandleResourceChange(aType);
-        }
-
-    CCoeControl::HandleResourceChange(aType);
-    }
-TBool CAknFepKeyCatcher::IsNaviKey(TUint aCode)
-	{
-	switch(aCode)
-		{
-			case EKeyBackspace:
-			case EKeyLeftArrow:
-			case EKeyRightArrow:
-			case EKeyUpArrow:
-			case EKeyDownArrow:
-			case EKeyDelete:
-				return ETrue;
-			default:
-				return EFalse;	
-		}
-	}
-#ifdef RD_SCALABLE_UI_V2
-
-void CAknFepKeyCatcher::MonitorWsMessage(const TWsEvent& aEvent)
-    {
-	switch (aEvent.Type())
-		{
-	    case EEventPointer:
-            TRAP_IGNORE(iFepMan.HandlePointerEventL(*aEvent.Pointer()));
-		    break;
-		default:
-		    break;
-		}
-    }
-
-#endif //RD_SCALABLE_UI_V2 
-
-// End of file
--- a/fep/aknfep/src/AknFepLanguageManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,466 +0,0 @@
-/*
-* Copyright (c) 2002-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:            Implementation of CAknFepLanguageManager class.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-#include "AknFepManager.h"                  // CAknFepManager
-#include "AknFepManagerInterface.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepUiInputStateBase.h"         // TAknFepInputStateBase
-#include "AknFepUiManagerBase.h"            // CAknFepUIManagerBase
-#include "AknFepUIManagerJapanese.h"        // CAknFepUIManagerJapanese
-#include "AknFepUiManagerWestern.h"         // CAknFepUIManagerWestern
-#include "AknFepUiManagerChinese.h"         // CAknFepUIManagerChinese
-#include "AknFepLanguageManager.h"          // this class
-
-#include "AknFepUiManagerKorean.h"        	// CAknFepUIManagerKorean
-#include <uikon.hrh>                        // TAknEditorNumericKeymap
-#include <AknUtils.h>
-
-#include <aknfeppeninputimeplugin.h>
-#include  "AknFepPluginManager.h"
-#include <peninputcmd.h>
-#include <peninputclient.h>
-
-void Cleanup( TAny* aAny )
-	{
-	RImplInfoPtrArray* implArray = 
-		reinterpret_cast< RImplInfoPtrArray*> ( aAny );
-	implArray->ResetAndDestroy();
-	implArray->Close();
-	}
-
-/**
- * CAknFepLanguageManager
- *
- */
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager()
-// first phase construction.
-// -----------------------------------------------------------------------------
-//
-CAknFepLanguageManager* CAknFepLanguageManager::NewL(MAknFepManagerUIInterface* aFepMan, 
-                                                     CAknFepCaseManager* aCaseMan)
-    {
-    CAknFepLanguageManager* self = new(ELeave) CAknFepLanguageManager(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); // self
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// ~CAknFepLanguageManager()
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepLanguageManager::~CAknFepLanguageManager()
-    {
-    if (iUiManArray)
-        {
-        iUiManArray->ResetAndDestroy();
-        }
-    delete iUiManArray;
-    delete iCurImePlugin;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::GetFepUI()
-// get ui manager object
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CAknFepLanguageManager::GetFepUI(TInt aMode, TWidthChar /*aCharacterWidth*/, TBool aPredictive)
-    {
-    MAknFepManagerInterface* uiMan = NULL;
-    switch (aMode)
-        {
-        case EPinyin:
-        case EZhuyin:
-        case EStroke:
-        case ECangJie:
-        case EZhuyinFind:
-        case EStrokeFind:
-            uiMan = iUiManArray->At(EUiManChinese);
-            break;
-        case ELatin:
-        case EHindi:
-            if (iInputLanguage == ELangJapanese)
-                {
-                uiMan = iUiManArray->At((aPredictive)? EUiManWestern : EUiManJapanese);
-                }
-        	else if(iInputLanguage == ELangKorean)
-        		{
-        		uiMan = iUiManArray->At(EUiManKorean);
-        		}
-            else
-                {
-                uiMan = iUiManArray->At(EUiManWestern);
-                }
-            break;
-        case ENumber:
-        case ENativeNumber:
-            if (iInputLanguage == ELangJapanese)
-                {
-                uiMan = iUiManArray->At(EUiManJapanese);
-                }
-            else if(iInputLanguage == ELangKorean)
-                {
-                uiMan = iUiManArray->At(EUiManKorean);
-                }
-            else
-                {
-                uiMan = iUiManArray->At(EUiManWestern);
-                }
-            break;
-        case EHiragana:
-        case EHiraganaKanji:
-        case EKatakana:
-            uiMan = iUiManArray->At(EUiManJapanese);
-            break;
-        case EHangul:
-        	uiMan = iUiManArray->At(EUiManKorean);
- 			break;
-        default:
-            AknFepPanic(EAknFepPanicNoUiManager);
-            break;
-        }
-    return uiMan;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::SetInputLanguageL()
-// Set new input language.
-// -----------------------------------------------------------------------------
-//
-void CAknFepLanguageManager::SetInputLanguageL(TInt aInputLanguage)
-    {
-    iInputLanguage = aInputLanguage;
-    MAknFepManagerInterface* uiManager = NULL;
-    TInt uiManagerId = UiManagerId();
-    uiManager = iUiManArray->At(uiManagerId);
-    
-    if ( !uiManager )
-        {
-        // Ui manager does not exist for this language yet. We create it.
-        ConstructUiManagerL();
-        uiManager = iUiManArray->At(uiManagerId);
-        }
-    
-    uiManager->SetInputLanguageL((TLanguage)iInputLanguage);
-    
-    if (uiManagerId != EUiManWestern)
-        {
-        // Western UI manager needs to know current input language also when 
-        // Chinese or Japanese Ui manager is used.
-        // Western UI manager needs to use English language if the 
-        // input language is Chinese or Japanese.
-        uiManager = iUiManArray->At(EUiManWestern);
-        if (uiManager)
-            {
-            uiManager->SetInputLanguageL((TLanguage)iInputLanguage);
-            }
-        }
-        
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager()
-// Constructor.
-// -----------------------------------------------------------------------------
-//
-CAknFepLanguageManager::CAknFepLanguageManager(MAknFepManagerUIInterface* aFepManager, 
-                                               CAknFepCaseManager* aCaseManager) 
-
-:iInputLanguage(ELangEnglish), 
- iFepManager(aFepManager), 
- iCaseManager(aCaseManager),
- iPluginManager(NULL)
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::ConstructL()
-// Second phase construction
-// -----------------------------------------------------------------------------
-//
-void CAknFepLanguageManager::ConstructL()
-    {
-    iUiManArray = new(ELeave)CArrayPtrFlat<MAknFepManagerInterface>(EUiManMax);
-
-    for ( TInt ii = 0; ii < EUiManMax; ii++)
-        {
-        iUiManArray->AppendL(NULL);
-        }
-
-    // Create UI manager for English language. English exists in all variants and
-    // it is default language in CAknFepLanguageManager.
-    ConstructUiManagerL();
-    }
-
-void CAknFepLanguageManager::ConstructUiManagerL()
-    {
-    MAknFepManagerInterface* uiMan = NULL;
-    TInt uiManagerId = UiManagerId();
-    iUiManArray->Delete(uiManagerId);
-    switch (uiManagerId)
-        {
-        case EUiManWestern:
-            uiMan = CAknFepUIManagerWestern::NewL(iFepManager, iCaseManager, 
-                                                 (TLanguage)iInputLanguage);
-            break;
-        case EUiManChinese:
-            uiMan = CAknFepUIManagerChinese::NewL(iFepManager, iCaseManager, 
-                                                 (TLanguage)iInputLanguage);
-            break;
-        case EUiManJapanese:
-            uiMan = CAknFepUIManagerJapanese::NewL(iFepManager, iCaseManager, 
-                                                  (TLanguage)iInputLanguage);
-            break;
-        case EUiManKorean:
-        	uiMan = CAknFepUIManagerKorean::NewL(iFepManager, iCaseManager, (TLanguage)iInputLanguage);
-        	break;
-        default:
-            AknFepPanic(EAknFepPanicNoUiManager);
-            break;
-        }
-    CleanupStack::PushL(uiMan);
-    iUiManArray->InsertL(uiManagerId, uiMan);
-    CleanupStack::Pop(); // uiMan
-    }
-
-TInt CAknFepLanguageManager::UiManagerId()
-    {
-    TInt uiManagerId = EUiManWestern;
-    switch (iInputLanguage)
-        {
-        case ELangPrcChinese:
-        case ELangHongKongChinese:
-        case ELangTaiwanChinese:
-            uiManagerId = EUiManChinese;
-            break;
-        case ELangJapanese:
-            uiManagerId = EUiManJapanese;
-            break;
-        case ELangKorean:
-        	uiManagerId = EUiManKorean;
-        	break;
-        default:
-            // Western UI manager is default.
-            // Thai, Arabic and Hebrew uses western UI manager.
-            break;
-        }
-    return uiManagerId;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::GetPluginInputFepUiL
-// Get plugin UI manager object.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CAknFepLanguageManager::GetPluginInputFepUiL(
-                                                      TPluginInputMode aPreferedMode,
-                                                      TInt aPenInputLang,
-                                                      TInt aDisplayLang,
-                                                      RPeninputServer* aPenServer)
-    {
-
-    RArray<TInt> implList;
-    CleanupClosePushL(implList);
-    
-    TPluginInputMode secondMode = EPluginInputModeItut;
-    TPluginInputMode curMode = aPreferedMode;
-    TInt language = aPenInputLang;
-
-    //pen input language and prefered mode
-    aPenServer->GetImePluginIdListL(aPenInputLang, curMode, implList);
-    
-    if( implList.Count() == 0 )
-        {
-        //pen input language and other modes
-        curMode = secondMode;
-        aPenServer->GetImePluginIdListL(aPenInputLang, curMode, implList);
-        }
-        
-    if( implList.Count() == 0 && aPenInputLang != aDisplayLang)
-        {
-        //display language and prefered modes
-        language = aDisplayLang;
-        curMode = aPreferedMode;
-        aPenServer->GetImePluginIdListL(aDisplayLang, curMode, implList);
-
-        if( implList.Count() == 0 )
-            {
-            //display language and other modes
-            curMode = secondMode;
-            aPenServer->GetImePluginIdListL(aDisplayLang, curMode, implList);
-            }
-        }
-        
-    CAknFepPenInputImePlugin* pIme = NULL;
-    MAknFepManagerInterface* pUi = NULL;
-    TInt i;
-    for(i = 0; i < implList.Count(); ++i)
-        {
-        pIme = ActivateImePlugin(implList[i], aPenServer);
-        if( pIme )
-            {
-            pUi = ActivateLayoutUiPluginL(pIme, language, curMode);
-            if( pUi )
-                {
-                iCurUiPlugIn = pUi;
-                if( iCurImePlugin != pIme )
-                    {
-                    //a new IME plugin created
-                    delete iCurImePlugin;
-                    iCurImePlugin = pIme;
-                    }
-                break;
-                }
-            else
-                {
-                //Fail create UI, delete IME plugin just created
-                 if( iCurImePlugin != pIme )
-                     {
-                     delete pIme;
-                     }
-                }
-            }        
-        }
-    
-    if( i == implList.Count() )
-        {
-        delete iCurImePlugin;
-        iCurImePlugin = NULL;
-        iCurUiPlugIn = NULL;
-        }
-    CleanupStack::PopAndDestroy(&implList);    
-    return iCurUiPlugIn;
-    }
-
-TBool  CAknFepLanguageManager::IsPluginInputAvaiable(TPluginInputMode aMode, 
-                                                     TInt aPenInputLang,
-                                                     RPeninputServer* aPenServer)
-    {
-    TBool bAvail = EFalse;
-    TRAP_IGNORE(bAvail = IsPluginInputAvaiableL(aMode, aPenInputLang, aPenServer));
-    return bAvail;
-    }
-
-TBool  CAknFepLanguageManager::IsPluginInputAvaiableL(TPluginInputMode aMode, 
-                                                     TInt aPenInputLang,
-                                                     RPeninputServer* aPenServer)
-    {
-    RArray<TInt> implList;
-    CleanupClosePushL(implList);
-    
-    aPenServer->GetImePluginIdListL(aPenInputLang, aMode, implList);    
-    TBool bAvail = implList.Count() != 0;
-    CleanupStack::PopAndDestroy(&implList);    
-    return bAvail;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::ActivateImePlugin
-// Activate IME plugin by implemenation.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepPenInputImePlugin* CAknFepLanguageManager::ActivateImePlugin(
-                                                 TInt aImeImplId, 
-                                                 RPeninputServer* aPenServer)
-    {
-    if(iCurImePlugin && iCurImePlugin->ImeImplId() == aImeImplId)
-        {
-        return iCurImePlugin;
-        }
-    else
-        {
-        TUid dtor_ID_Key;
-        CAknFepPenInputImePlugin* pIme = NULL;
-
-        TRAP_IGNORE(pIme = REINTERPRET_CAST(CAknFepPenInputImePlugin*, 
-              REComSession::CreateImplementationL(TUid::Uid(aImeImplId), dtor_ID_Key, aPenServer)));
-
-        if( pIme )
-            {
-            pIme->iDtor_ID_Key = dtor_ID_Key;           
-            }
-
-        return pIme;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::ActivateLayoutUiPluginL
-// Activate IME plugin's UI by mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-MAknFepManagerInterface* CAknFepLanguageManager::ActivateLayoutUiPluginL(
-                                                   CAknFepPenInputImePlugin* aImePlugin, 
-                                                   TInt aPenInputLang,
-                                                   TPluginInputMode aMode)
-    {
-    MAknFepManagerInterface* pUi = NULL;
-
-    if( aImePlugin )
-        {
-        pUi = aImePlugin -> GetInputMethodUiL(iFepManager,
-                                            (TLanguage)aPenInputLang, 
-                                            aMode,
-                                            KNullDesC8(),
-                                            iIsSplitView);
-        //set inputlanguage                                                             
-        if(pUi)
-            {
-            pUi->SetInputLanguageL((TLanguage)aPenInputLang);
-            //pUi->ActivateUI();
-            }
-        }
-    
-    return pUi;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepLanguageManager::SetSplitView
-// Activate IME plugin's UI by mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepLanguageManager::SetSplitView(TBool aIsSplitView)
-    {
-    iIsSplitView = aIsSplitView;
-    }
-
-// End of File  
--- a/fep/aknfep/src/AknFepManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20732 +0,0 @@
-/*
-* Copyright (c) 2002-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 CAknFepManager methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon/eikdefmacros.h>
-#endif
-#include "AknFepManager.h"
-#include "AknFepManagerInterface.h" // MAknFepManagerInterface
-#include "aknfepindicator.h"
-#include "AknFepPanic.h"
-#include "AknFepKeyCatcher.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepCaseManager.h"
-#include "AknFepHashKeyManager.h"
-#include "AknFepSharedDataInterface.h"
-#include "AknFepInlineTextDecorator.h"
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiManagerChinese.h"
-#include "AknFepUiManagerWestern.h"
-
-#include "AknFepPluginManager.h"
-#include "AknFepUiIndicInputManager.h"
-#include "AknFepUiIndicEnums.h"
-#include <AknFepUIStylusPopupMenu.h>
-#include "aknfepuispellinputpane.h"
-
-#include <bautils.h>
-#include <coeaui.h>                 //CCoeAppUi
-#include <aknedsts.h>               //CAknEdwinState
-#include <uikon.hrh>                //keys
-#include <aknenv.h>                 //CAknEnv
-#include <PtiEngine.h>              //CPtiEngine
-#include <AknJapaneseReading.h>     //CAknJapaneseReading
-#include <featmgr.h>                //FeatureManager
-#include <e32base.h>                //CPeriodic
-#include <PtiDefs.h>                //keys
-#include <fepipext.h>               //MCoeFepSpecificExtensions
-
-#include <aknsoundsystem.h>
-#include <avkon.rsg>
-#include <avkon.hrh>
-
-#include <tagma.h>
-#include <frmtview.h>
-#include <aknedformaccessor.h>
-
-#include <aknfep.rsg>
-#include <avkon.mbg>
-
-#include "aknconsts.h"
-#include <aknfeppeninputenums.h>
-#include <eikproc.h>                // User Dictionary
-#include <eikapp.h>                 // User Dictionary
-
-#include <StringLoader.h>
-
-#include <centralrepository.h>
-#include <AknFepInternalCRKeys.h>
-#include <settingsinternalcrkeys.h>
-#include <AknUtils.h>
-#include <AknCustomCursorSupport.h>
-#include <PtiKeyMappings.h>
-#include <aknfeppeninputimeplugin.h>
-#include <peninputcmd.h>
-
-#include <AknSettingCache.h>
-#include <aknextendedinputcapabilities.h>
-#include <AvkonInternalCRKeys.h>
-#include <hlplch.h>
-#include <aknfepdocumentnavigation.h>
-
-#include <eikcolib.h>
-#include <akntoolbar.h>
-
-#include <eikfrlbd.h>
-#include <eikccpu.h>
-#include <aknappui.h>
-#include <apgwgnam.h>
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include "AknFepUiWordPopupContent.h"
-#include "AknFepFnKeyManager.h"
-//#include <csxhelp/cp.hlp.hrh> 
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-#ifdef RD_TACTILE_FEEDBACK
-#include <touchfeedback.h>
-#endif //RD_TACTILE_FEEDBACK
-#include "AknFepThaiSCTSelector.h"
-
-//the follow 10 filse include for phrase creation
-#include <bamdesca.h>
-#include <eikspane.h> //CEikStatusPane 
-#include <akntitle.h> //CAknTitlePane 
-#include <akntoolbar.h> //CAknToolBar 
-#include <aknappui.h>
-#include "AknFep.hrh"
-#include "aknfepuserdbdlg.h"
-#include "aknfepzhuyinkeyhandler.h"
-#include "AknFepZhuyinAnalyser.h"
-#include "AknFepZhuyinAnalyserDb.h"
-
-#include <aknnavi.h> 
-#include <aknnavide.h> 
-
-#include <eikedwin.h>
-#include <aknCharMap.h>
-
-const TInt KSelectItemSize(10);
-_LIT(KAknFepResourceFileName, "z:\\resource\\fep\\aknfep.rsc");
-_LIT(KFEPPREDINPUT_HLP_INPUT, "PREDINPUT_HLP_INPUT"); // 
-
-#define text_to_field_mode_hash_key ';'
-#define iAvkonAppUi ((CAknAppUi*)CEikonEnv::Static()->EikAppUi())
-#define __SHIFT_KEY_LOOP
-
-// EAknEditorNativeKeysNumberModeKeymap is used for example in MFNE editors.
-#define EAknEditorNativeKeysNumberModeKeymap EAknEditorReservedInternalUseKeymap
-
-// UID of user dictionary application
-const TUid KUidUserDictApp = {0x101F8645};
-
-const TText KAknFEPLineFeedSymbol = 0x21B2;
-const TText KAknFEPMirroredLineFeedSymbol = 0x21B3;
-const TText KAknFEPZeroKey = 0x30;
-
-// inline text decoration potentially adds 2 directional markers for every "real" character. Buffer needs to be 3 x predictive engine bufsize
-const TInt KMaxInlineEditSize( 3 * CAknFepManager::EMaximumFepWordLength );
-
-// Maximum number of chunks to navigate throught attempting to get to the visual end of a selection.
-// Since chunks are arranged only within a line, this should be more than the number of chunks likely in
-// a single line of text
-const TInt KMaxChunkWalkIterations(20);
-
-// This command is is used for setting empty CBA.
-const TInt KNullCommandId = 0;
-
-_LIT_SECURE_ID(KPhoneSecureId, 0x100058b3);
-
-#ifdef RD_HINDI_PHONETIC_INPUT
-
-const TUint KQuestionMark = 0x003F;
-
-#endif
-
-// Ccpu key events. 
-/*As part of build warnings commenting this perticular code it might require when touch is enabled.
-const TKeyEvent KEditorCopyEvent = {3, 67, 161, 0};  // Ctrl + C
-const TKeyEvent KEditorCutEvent  = {24, 88, 161, 0}; // Ctrl + X
-*/
-
-const TInt KTouchInputPreviewOn = 1;
-const TInt KTouchInputPreviewOff = 0;
-
-#ifdef  RD_SCALABLE_UI_V2
-const TKeyEvent KAknCcpuCopyEvent = {EKeyF18, EEikCmdEditCopy, EModifierCtrl, 1};  // Copy event for AknCcpuSupport
-const TKeyEvent KAknCcpuCutEvent  = {EKeyF18, EEikCmdEditCut, EModifierCtrl, 1};   // Cut event for AknCcpuSupport
-
-const TInt KMaxMenuSize = 23;
-const TInt KEditorMenuPermitedSend[KMaxMenuSize] = 
-    {         
-    EJapanFepCmdModeHiragana,
-    EJapanFepCmdModeKatakana,
-    EJapanFepCmdEditModeAlpha,
-    EJapanFepCmdEditModeNumber,
-    EJapanFepCmdModeFullWidth,
-    EJapanFepCmdModeHalfWidth,
-    EChinFepCmdModePinyin,
-    EChinFepCmdModeZhuyin,
-    EChinFepCmdModeStroke,
-    EAknCmdT9PredictiveT9Off,
-    EAknCmdMultitapPredictiveT9On,
-    EJapanFepCmdMultitapPredictiveT9On,
-    EChinFepCmdModeZhuyinFind,
-    EChinFepCmdModeStrokeFind,
-    EAknCmdEditModeAlpha,
-    EAknCmdEditModeLatinText,
-    EChinFepCmdModeLatinUpper,
-    EChinFepCmdModeLatinLower,
-    EAknCmdEditModeNumber,
-    EChinFepCmdModeNumber,
-    EAknCmdEditModeArabicIndicNumber,
-    EAknCmdEditModeEasternArabicIndicNumber,
-    EAknCmdEditModeIndicNumber
-    };   
-     
-#endif // RD_SCALABLE_UI_V2 
-
-
-// Number modes used by Arabic or Hindi.
-enum TNonLatinNumberModes
-    { 
-    ENbrModeLatin,
-    ENbrModeArabic = 1,
-    ENbrModeIndic = 1
-    };
-
-// Number mode type
-enum TNonLatinNumberModeType
-    {
-    ENbrModeTypeArabic,
-    ENbrModeTypeIndic,
-    ENbrModeTypeEasternArabic //for Urdu & Farsi languages
-    };
-    
-// The passwd timeout is same as defined on CEikSecretEditor.
-const TInt KSyncPasswdTimeout = 1000000;
-
-#ifdef RD_SCALABLE_UI_V2
-TUid AppUidFromWndGroupId(TInt aWndGrpId);
-extern TUid GetCurAppUid();
-extern TBool IsGlobalNotesApp(TUid& aUid);
-TInt GetForegroundTaskAppWgId();
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-const TInt KWordToFocusInCandidateList = 1;
-#endif
-
-LOCAL_C TInt RemapVietnameseAccentedCharacter(TUint16 aChr);
-
-//
-// Class TTextDirectionalInfo
-//
-/**
-* The implementation inializes with well-defined "null" state
-*/
-CAknFepManager::TTextDirectionalInfo::TTextDirectionalInfo() : 
-iDirectionalStatus(EUnknown), iBlockEnvironment(EUndefined)
-    {}
-
-void CAknFepManager::TTextDirectionalInfo::SetDirectionFromChunk( 
-               const CTmTextLayout::TTmChunkDescription& aChunk )
-    {
-    if ( aChunk.iStart >= 0 ) // Condition for valid block. Does nothing otherwise
-        iDirectionalStatus = aChunk.iRightToLeft ? ERightToLeft : ELeftToRight;
-    }
-
-
-void TFepLanguageTranslation::ReadFromResource(TResourceReader& aReader)
-    {
-    iName.Set(aReader.ReadTPtrC());
-    iLanguageId = aReader.ReadInt16();
-    iCommandId = aReader.ReadInt16();
-    }
-
-
-CAknFepManager::CAknFepManager(CCoeEnv& aConeEnvironment)
-    :CCoeFep(aConeEnvironment),
-    iAsyncResouceChanged(EActivePriorityDefault),
-    iPreviousEditingState(EStateNone),
-    iInputCapabilities(TCoeInputCapabilities::ENone),
-    iModeBefore(ELatin),
-    #ifdef RD_INTELLIGENT_TEXT_INPUT
-    iKeyPressedDuringShift(EFalse),
-#endif
-    iCharWidth(EHalfWidthChar),
-    iAsyncOwnSimulateKey(EActivePriorityDefault),
-    iLongThai0Key(EFalse),
-    iEditCharsPtr(0,0),
-    iComposChrFlag(0),
-    iIsUserdbdlgActive(0),
-    iLongClearAfterCloseUI(EFalse),
-    // phrase creation
-    iPhraseCreation(0),
-    iPinyinPhraseCreation(0),
-    iEntryPhrase(0)
-    
-
-    {
-    }
-
-void CAknFepManager::ConstructL(const CCoeFepParameters& aFepParameters)
-    {
-    BaseConstructL(aFepParameters);
-    iUiInterface = CAknFepUIInterface::NewL();
-    iIndicator = iUiInterface->NewIndicatorL();
-    iPreviousIndicator = CAknEnv::Static()->SwapEditingStateIndicator(iIndicator);
-
-    // Set up resources
-    TFileName resourceName(KAknFepResourceFileName);
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    BaflUtils::NearestLanguageFile(coeEnv->FsSession(), resourceName);
-    iResId = coeEnv->AddResourceFileL(resourceName);
-
-    // Save Japanese Feature support to a member variable
-    iFeatureSupportedJapanese = FeatureManager::FeatureSupported(KFeatureIdJapanese);
-
-    iUiLanguage = User::Language();
-    
-    // Shared Data
-    iSharedDataInterface = CAknFepSharedDataInterface::NewL(this);
-
-    TInt previUiLanguage = iSharedDataInterface->PluginUILanguage();
-
-    if (iUiLanguage != previUiLanguage)
-        {
-        
-        // if UI language has changed we need to set text input language according to UI language
-        iSharedDataInterface->SetPluginUILanguage(iUiLanguage);
-        iSharedDataInterface->SetInputTextLanguage(0);  // signals that it needs to be updated
-        }
-
-    if (!iSharedDataInterface->InputMode()) //not initialised yet - first time device is switched on
-        {
-        switch (iUiLanguage)
-            {
-            case ELangPrcChinese:
-                iSharedDataInterface->SetInputMode(EPinyin);
-                break;
-            case ELangTaiwanChinese:
-                iSharedDataInterface->SetInputMode(EZhuyin);
-                break;
-            case ELangHongKongChinese:
-                iSharedDataInterface->SetInputMode(EStroke);
-                iSharedDataInterface->SetCangJieMode(ECangJieNormal);
-                break;
-            case ELangJapanese:
-                iSharedDataInterface->SetInputMode(EHiraganaKanji);
-                break;
-            case ELangKorean:
-                iSharedDataInterface->SetInputMode(EHangul);
-                break;
-            case ELangHindi:
-                iSharedDataInterface->SetInputMode(EHindi);
-                break;
-            default:
-                iSharedDataInterface->SetInputMode(ELatin);
-                break;
-            }
-        }
-
-    iUiInterface->SetFepMenuObserver(this);
-   
-    TInt inputLanguage = iSharedDataInterface->InputTextLanguage();
-
-    // A process instantiating Fep may miss ECapabilityWriteDeviceData capability, 
-    // which is needed for updating locale repository.
-    // A workaround is to delay change up to a process that has the capability
-    TSecurityInfo info;
-    info.Set(RProcess());
-
-    TBool hasCapability = info.iCaps.HasCapability(ECapabilityWriteDeviceData);
-    
-    if (!inputLanguage && hasCapability)
-        {
-        // set correct input language
-        inputLanguage = SubstituteSublanguageId(iUiLanguage);
-        
-        // If Ptiengine is not initialize, initialize it
-        if (!iPtiEngine)
-            {
-            iPtiEngine = CPtiEngine::NewL(ETrue);    
-            }         
-        // If still not found, default to english.
-        if (!iPtiEngine->GetLanguage(inputLanguage))
-            {
-            inputLanguage = ELangEnglish;   
-            }
-        
-        // Set the current input language
-        iSharedDataInterface->SetInputTextLanguage(inputLanguage);
-        
-        // update numeric input
-        if ( iUiLanguage == ELangArabic ) 
-            {
-            SetDefaultNumberMode( ENbrModeArabic, 
-                                  ENbrModeTypeArabic );
-            }            
-        else if ( ( iUiLanguage == ELangUrdu  ) || 
-                  ( iUiLanguage == ELangFarsi  ) )
-            {
-            SetDefaultNumberMode( ENbrModeArabic, 
-                                  ENbrModeTypeEasternArabic );
-            }
-		else if ( TAknFepUiIndicInputManager::IsScriptDevanagari( iUiLanguage ) )
-            {
-            SetDefaultNumberMode( ENbrModeLatin, 
-                                  ENbrModeTypeIndic );
-            }
-        else
-            {           
-            SetDefaultNumberMode( ENbrModeLatin, ENbrModeTypeArabic );
-            }
-        }
-        
-    iSctEditChars = HBufC::NewL( 10 );
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    	if(CCoeEnv::Static()->AppUi())
-				iExactWordPopupContent = iUiInterface->CreateWordPopupContentL();
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    // If the following line is uncommented, the FEP is fully constructed
-    // for all applications at application startup.
-    // ConstructFullyL();
-    iShiftKeypressMonitor = CPeriodic::NewL(CActive::EPriorityStandard);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iFnKeyManager = CAknFepFnKeyManager::NewL( *this,iSharedDataInterface );
-#endif
-    TRAPD(result,iKeyCatcher = CAknFepKeyCatcher::NewL(*this));
-    if(result == KErrNone)
-        {
-        iKeyCatcher->ActivateL();
-        }
-    // the follow 3 objects for phrase creation
-    iZhuyinKeyHandler = CZhuyinKeyHandler::NewL();
-    iZhuyinAnalyserDb = CZhuyinAnalyserDbFeed::NewL(EPinyinAnalyserTypeZhuyin);
-    iZhuyinAnalyser = CAknFepZhuyinAnalyser::NewL(iZhuyinAnalyserDb);
-    iAknFepThaiSCTSelector = CAknFepThaiSCTSelector::NewL();
-    iHybridAplphaChangedToAlphanumeric = EFalse;
-    iLastFocusedEditor = NULL;
-    iFepAwareDialogParentEditor = NULL;
-    }
-
-void CAknFepManager::ConstructFullyL()
-    {
-    if (!iPtiEngine)
-        {
-        iPtiEngine = CPtiEngine::NewL(ETrue);    
-        } 
-    
-    if ( !(iPtiEngine->GetLanguage(iSharedDataInterface->InputTextLanguage())) )
-        {
-        // If input language cenrep value is set to language unknown to PtiEngine,
-        // try to reset based on UI-language. 
-        TInt inputLang = SubstituteSublanguageId(iUiLanguage);
-        
-        // If still not found, default to english.
-        if (!iPtiEngine->GetLanguage(inputLang))
-            {
-            inputLang = ELangEnglish;   
-            }
-        iSharedDataInterface->SetInputTextLanguage(inputLang);      
-        }      
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-    if (iPtiEngine->GetLanguage(iSharedDataInterface->InputTextLanguageSecondary()) == NULL)
-        {
-        // If secondary input language is unknown to PtiEngine, set it to none
-        iSharedDataInterface->SetInputTextLanguageSecondary(0);
-        }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-        
-    if(NULL == iKeyCatcher)
-        {
-        iKeyCatcher = CAknFepKeyCatcher::NewL(*this);    
-        iKeyCatcher->ActivateL();
-        }
-    
-    iConcatenationTimer=CPeriodic::NewL(CActive::EPriorityStandard);
-    iPostEventCheck=CIdle::NewL(CActive::EPriorityStandard);
-    iChrKeypressMonitor = CPeriodic::NewL(CActive::EPriorityStandard);
-
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    TInt inputLanguage = iSharedDataInterface->InputTextLanguage();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-    TInt inputLanguageSecondary = iSharedDataInterface->InputTextLanguageSecondary();
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-    SetWesternPredictive(iSharedDataInterface->PredictiveTextOn());
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    iIsAutoCompleteOn = iSharedDataInterface->PredictiveTextAutoCompleteOn(); // AutoCompletion disabled by Default 
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iIsAutoCompleteOn = iSharedDataInterface->PredictiveTextAutoCompleteOn(); // AutoCompletion disabled by Default 
-    iTypingCorrectionLevel = iSharedDataInterface->PredictiveTextTypingCorrectionLevel();
-    iIsNumberCandidateShown = iSharedDataInterface->PredictiveTextNumberCandidateShown();
-    TInt primaryCandidateValue = iSharedDataInterface->PredictiveTextPrimaryCandidate();
-    if( primaryCandidateValue == 0)
-		iPrimaryCandidate = ETrue;
-	else if(primaryCandidateValue == 1)
-		iPrimaryCandidate = EFalse; 
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    iJapanesePredictive = iSharedDataInterface->PredictiveTextJapaneseOn();
-    iQwertyInputMode = iSharedDataInterface->QwertyInputMode();
-    iMultiTapTimer = iSharedDataInterface->MultiTapTimer();
-    iJapaneseQwertyFlags = iSharedDataInterface->JapaneseQwertyFlags();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(!iFnKeyManager)
-        {
-        iFnKeyManager = CAknFepFnKeyManager::NewL( *this,iSharedDataInterface );
-        }    
-#endif
-    iCaseMan = CAknFepCaseManager::NewL(*this);
-    iLangMan = CAknFepLanguageManager::NewL(this, iCaseMan);
-    iPtiEngine->ActivateLanguageL(inputLanguage);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-    iPtiEngine->SetSecondaryInputL(inputLanguageSecondary);
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-    iLangMan->SetInputLanguageL(inputLanguage);
-    SetInputLanguageCapabilities(inputLanguage);
-    iCurrentFepUI = iLangMan->GetFepUI(ELatin, iCharWidth, IsPredictive(ELatin));
-
-    iLastKeyPressedWasHashKey = EFalse;
-    iDeviceSupportsRtlLanguage = DeviceSupportsRTLLanguageL();
-
-    TResourceReader reader;
-    // get character from resource to represent an 'enter' character
-    coeEnv->CreateResourceReaderLC(reader, R_AVKON_SCT_SPACE_SYMBOL);
-    iSpaceCharacterCode = reader.ReadUint16();
-    coeEnv->CreateResourceReaderLC(reader, R_AVKON_SCT_FULLWIDTHSPACE_SYMBOL);
-    iFullWidthSpaceCharacterCode = reader.ReadUint16();
-    CleanupStack::PopAndDestroy(2); //reader
-
-    //initialise states
-    iMode = EAknEditorNullInputMode; //Force a sync of mode...
-    SyncStates(EAknFepStateNull);
-    ResetFlags();
-    ResetExtendedFlags();
-
-    ReadHashKeyLoopL();
-    iHashKeyMan = CAknFepHashKeyManager::NewL(*this, iCaseMan);
-    SetHashKeyStyle();
-    iInlineTextDecorator = new (ELeave) CAknFepInlineTextDecorator;
-    if (IsFeatureSupportedJapanese())
-        {
-        CAknJapaneseReading::CreateL(iPtiEngine);
-        }
-    // setting call back
-    TCallBack callback(DoSimulateKey, this);
-    iAsyncOwnSimulateKey.Set(callback);
-    
-    TCallBack resourcechangedcallback(HandleResourceChangedCallback,this);
-    iAsyncResouceChanged.Set(resourcechangedcallback);
-#ifdef RD_SCALABLE_UI_V2
-    iFepPluginManager = CAknFepPluginManager::NewL
-        ( *this, *iSharedDataInterface, *iLangMan, *iCaseMan);
-    iNotifyPlugin = ETrue;
-#endif //RD_SCALABLE_UI_V2
-
-    iFepFullyConstructed = ETrue;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iIsFnKeyMapped = IsFnKeyMappedL();
-    iKeyboardType = (TPtiKeyboardType)iSharedDataInterface->KeyboardLayout();
-#endif
-    }
-
-CAknFepManager::~CAknFepManager()
-    {
-#ifdef RD_PF_SEC_APPARC
-    delete iNullService;
-#else
-    //Embedding - removing created document
-    if ( iEmbedded )
-        {
-        CEikonEnv::Static()->Process()->DestroyDocument(iEmbedded); // User dictionary
-        iEmbedded = NULL;
-        }
-#endif
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        SetFlag(CAknFepManager::EFlagSupressAutoUpdate);
-        TRAPD(err, CommitInlineEditL())
-        if (err)
-            {
-            CleanUpFep();
-            }
-        }
-        
-    if ( EditorState() )
-        {
-        EditorState()->SetObserver(NULL);    
-        }        
-    if (iLastFocusedEditor)
-        {
-        iLastFocusedEditor->SetObserver(NULL);
-        iLastFocusedEditor = NULL;
-        } 
-    if (iFepAwareDialogParentEditor)
-        {
-        iFepAwareDialogParentEditor->SetObserver(NULL);
-        iFepAwareDialogParentEditor = NULL;
-        } 
-    
-    delete iSharedDataInterface;
-    MAknEditingStateIndicator* indicator = CAknEnv::Static()->EditingStateIndicator();
-    if (indicator == iIndicator)
-        {
-        CAknEnv::Static()->SwapEditingStateIndicator(NULL);
-        }
-
-        
-    delete iIndicator;
-    iIndicator = NULL;
-    CCoeEnv::Static()->DeleteResourceFile(iResId);
-
-    // Everything that is constructed in ConstructFullyL() method
-    // needs to be deleted in CommonDestroyFep() method.
-    CommonDestroyFep();
-
-	if (iUiInterface)
-	    iUiInterface->SetFepMenuObserver(NULL);
-
-    delete iPtiEngine;
-    delete iSctEditChars;
-
-#ifdef RD_SCALABLE_UI_V2
-    if ( FepAwareTextEditor() )
-        {
-    		UnregisterObserver();
-        }
-    delete iFepPluginManager;
-    delete iStylusCcpuMenu;        
-
-    delete iSpellInitText;        
-#endif // RD_SCALABLE_UI_V2
-    delete iUiInterface;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    delete iExactWordPopupContent;
-    iExactWordPopupContent = 0;
-    delete iCandidatePopup;
-    iCandidatePopup = 0;
-    delete iResourceString;
-    iResourceString = 0;
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    // the follow objects for phrase creation
-      delete iZhuyinKeyHandler;
-      delete iZhuyinAnalyser;
-    delete iAknFepThaiSCTSelector;
-    }
-
-void CAknFepManager::CommonDestroyFep()
-    {
-    iFepFullyConstructed = EFalse;
-
-    // This method is called both from destructor and CleanUpFep methods.
-    iAsyncOwnSimulateKey.Cancel();
-    iAsyncResouceChanged.Cancel();
-    delete iShiftKeypressMonitor;
-    iShiftKeypressMonitor = NULL;
-    delete iConcatenationTimer;
-    iConcatenationTimer = NULL;
-    delete iChrKeypressMonitor;
-    iChrKeypressMonitor = NULL;
-    delete iLangMan;
-    iLangMan = NULL;
-    iCurrentFepUI = NULL;
-    delete iKeyCatcher;
-    iKeyCatcher = NULL;
-
-    delete iPostEventCheck;
-    iPostEventCheck = NULL;
-    delete iHashKeyMan;
-    iHashKeyMan = NULL;
-    delete iCaseMan;
-    iCaseMan = NULL;
-    delete iInlineTextDecorator;
-    iInlineTextDecorator = NULL;
-    iHashKeyLoop.Close();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(iFnKeyManager)
-        {
-        delete iFnKeyManager;
-        iFnKeyManager = NULL;
-        }
-    if( iNumericResourceTimer )        
-        {
-        delete iNumericResourceTimer;
-        iNumericResourceTimer = NULL;    
-        }
-#endif
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::SetKeyboardLayout(TPtiKeyboardType aType)
-    {
-    	
-    if(iQwertyInputMode && iFnKeyManager 
-    		&& (iFnKeyManager->FnKeyState()== CAknFepFnKeyManager::EFnKeyLock
-		||iFnKeyManager->FnKeyState()== CAknFepFnKeyManager::EFnKeyNext)) 
-		{
-        	iMode = ENumber;
-		}
-	
-	if(iFnKeyManager)        
-		{
-		iFnKeyManager->ClearFnKeyState();
-		}
-    	
-    if(iPtiEngine)
-        {
-        iPtiEngine->SetKeyboardType(aType);
-        }    
-    iKeyboardType = aType;        
-    }
-
-TPtiKeyboardType CAknFepManager::KeyboardLayout() const
-    {
-    return iKeyboardType;
-    }
-#endif
-TBool CAknFepManager::TryCloseUiL()
-    {
-#ifdef RD_HINDI_PHONETIC_INPUT        
-    if ((iSharedDataInterface->InputTextLanguage() == KLangHindiPhonetic) && 
-         IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        ClearFlag(CAknFepManager::EFlagNoMatches);
-    	if (PreviousChar() == KQuestionMark)
-    		RemovePreviousCharacterL();
-    	}
-#endif    
-    if (iFepManState == EAknFepStateUIActive)
-        {
-        // In Japanese input,
-        // commit inline editing at only the western predictive mode.
-        if (!IsFeatureSupportedJapanese() || WesternPredictive())
-            {
-            if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-                {
-                TryRemoveNoMatchesIndicatorL();
-                UpdateCbaL(NULL);
-                }
-                
-             	
-
-//#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if ( iFepPluginManager && 
-             	(iFepPluginManager->PluginInputMode() == EPluginInputModeNone))
-            	{
-            	RemoveSuggestedAdvanceCompletionL();
-            	}            
-#endif // RD_INTELLIGENT_TEXT_INPUT              
-//#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-                
-#ifdef RD_SCALABLE_UI_V2 
-            
-            if ( iFepPluginManager != NULL && 
-                 iFepPluginManager->BeforeSpell() )
-                {
-                iFepPluginManager->SetBeforeSpell(EFalse);
-                }
-            else
-#endif  
-          
-                {
-                CommitInlineEditL();    
-                }
-            }
-        if (IsCcpuFlagSet(ECcpuStataCommitPredictiveWord))            
-            {
-            // Word commiting must be done after CommitInlineEditL call (because
-            // of Japanese ReadingTextL funtionality), hence the delayed commit here.
-            iPtiEngine->CommitCurrentWord();
-            ClearCcpuFlag(ECcpuStataCommitPredictiveWord);
-            }            
-        InternalFepUI()->CloseUI();
-        SyncStates(EAknFepStateInitial);
-        if (iMode == EPinyin || iMode == EZhuyin || iMode == EStroke || iMode == ECangJie)
-            {
-            SetCursorType(EActive);
-            if ( EditorState() )
-            	{
-            	EditorState()->SetFlags( EditorState()->Flags() & ~EAknEditorFlagChinesePopup );
-            	}            
-            }
-
-        // EFalse in case of latin input in Japanese variant
-        if (IsFeatureSupportedJapanese() 
-         && iMode == ELatin && !WesternPredictive())
-            {
-            return EFalse;
-            }
-
-        return ETrue;
-        }
-    else
-        {
-    	if (IsKoreanInputLanguage())
-        	{
-        	if (IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        		{
-        	   	CommitInlineEditL();
-        		PtiEngine()->ClearCurrentWord();
-        		}
-        	}
-    	
-        //in initial state characters should either:
-        //1. not be consumed by the FEP.
-        //2. be committed immediately by the Input State.
-        //3. be multitap chars, in which case they may need to be committed
-        // here. It is best to let the engine deal with this.
-        if ( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
-            {
-            InternalFepUI()->ExpireMultitapTimer();
-            }
-        return EFalse;
-        }
-    }
-
-void CAknFepManager::SendUIActivatedNotification()
-    {
-    SyncStates(EAknFepStateUIActive);
-    }
-
-void CAknFepManager::SendUIDeActivatedNotification()
-    {
-    SyncStates(EAknFepStateInitial);
-    }
-
-void CAknFepManager::PlaySound(TAvkonSystemSID aSound) const
-    {
-    if (SoundSystem())
-        {
-        SoundSystem()->PlaySound(aSound);
-        }
-    }
-    
-void CAknFepManager::SetLongClearAfterCloseUI(TBool aLongClear)
-    {
-    iLongClearAfterCloseUI = aLongClear;
-    }
-
-TKeyResponse CAknFepManager::HandleKeyEventL(TUint aCode, TKeyPressLength aLength,TEventCode aEventCode)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    TInt documentLength = -1;
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        documentLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-        }
-
-    if (iFepFullyConstructed && iConcatenationTimer->IsActive())
-        {
-        if (!( aCode == EKeyRightArrow ||
-             aCode == EKeyLeftArrow ||
-             aCode == EKeyUpArrow ||
-             aCode == EKeyDownArrow ))
-            {
-            iConcatenationTimer->Cancel();
-            }
-        }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    
-    if(iKeyBackSpaceHit && aCode != EKeyBackspace)
-    	iKeyBackSpaceHit = 0;
-    
-    if (aCode != EPtiKeyStar && iNumericResourceTimer)
-        {
-        // return with EKeyWasConsumed if any of the arrow keys are pressed with 
-        // iNumericResourceTimer is active
-        if(NumericResourceMultiTapTimerTimeoutL()&&
-           (aCode == EKeyRightArrow || aCode == EKeyLeftArrow || aCode == EKeyUpArrow || aCode ==EKeyDownArrow))
-            return EKeyWasConsumed;
-        }
-#endif
-
-
-
-    // This method is implemented independent of all modes, so it can be called by anyone, anywhere
-    if ( BidiCursorRequired() )
-        {
-        response = AttemptCursorFlipAtAmbiguousPointL( aCode );
-        if ( response == EKeyWasConsumed )
-            {
-            return response;
-            }
-        }
-
-    if ( aCode != EPtiKeyHash 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD
-#ifdef __SHIFT_KEY_LOOP		
-    		&& ( aCode != EPtiKeyQwertyLeftShift 
-    		|| EPtiKeyboardHalfQwerty != KeyboardLayout() )
-#endif //__SHIFT_KEY_LOOP
-#endif //__HALF_QWERTY_KEYPAD
-#endif //RD_INTELLIGENT_TEXT_INPUT   		
-    		)
-    
-        {
-        
-        SetLastPressedHashKeyStatus(EFalse);
-        
-        if(iHashKeyMan)
-            {
-            iHashKeyMan->CancelHashKeyTimer();
-            if (aCode != EKeyOK)
-                {
-                iHashKeyMan->ClearSelectionModeHashKeyLoop();
-                }
-            }
-        }
-    // Always commit the text before handling arrow keys
-    if (iMode == EHangul && IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-    	{
-    	if ( aCode == EKeyRightArrow ||
-             aCode == EKeyLeftArrow ||
-             aCode == EKeyUpArrow ||
-             aCode == EKeyDownArrow )
-    		{
-    		CommitInlineEditL();
-       		iPtiEngine->ClearCurrentWord();
-    		}
-        }
-    TBool isPassNext = IsFlagSet(EFlagPassNextKey);
-   
-    switch (aCode)
-        {
-        case EKeyEscape:
-
-#ifdef RD_SCALABLE_UI_V2     
-        if( iFepFullyConstructed && iFepPluginManager)
-            {
-            iFepPluginManager->ResetMenuState(EFalse);            
-            }
-#endif         
-            if (TryCloseUiL())
-                {
-                response = EKeyWasConsumed;
-                // phrase creation
-                PhraseCreation(EFalse);
-                // phrase creation
-                PinyinPhraseCreation(EFalse);
-                }
-            break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD
-#ifdef __SHIFT_KEY_LOOP
-        case EPtiKeyQwertyLeftShift:
-        if( EPtiKeyboardHalfQwerty == KeyboardLayout() )
-        	{
-			response = HandleHashKeyL(aLength);
-            (aLength == ELongKeyPress)? SetLastPressedHashKeyStatus(EFalse):SetLastPressedHashKeyStatus(ETrue);
-			}
-            break;			
-#endif //__SHIFT_KEY_LOOP       	
-#endif //__HALF_QWERTY_KEYPAD	
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        case EPtiKeyHash:
-            if(InputMode() == EHangul)
-            	{
-				if (aLength == EShortKeyPress)
-					{
-					FepUI()->HandleKeyL(aCode, aLength);
-					response = EKeyWasConsumed;
-					}
-				else
-					{
-               	 	//PhraseCreation(EFalse);
-            		response = HandleHashKeyL(aLength);
-            		(aLength == ELongKeyPress)? SetLastPressedHashKeyStatus(EFalse):
-                                        		SetLastPressedHashKeyStatus(ETrue);
-					}
-				}
-     	     else if (InputMode()!= EZhuyin)
-                {
-                if (IsPinyinPhraseCreation() )
-                    {
-                    ClearCcpuFlag( ECcpuStateHashDown );
-                    response = EKeyWasConsumed;
-                    }
-                else
-                    {
-                    response = HandleHashKeyL(aLength);
-                    (aLength == ELongKeyPress)
-                        ? SetLastPressedHashKeyStatus(EFalse)
-                            : SetLastPressedHashKeyStatus(ETrue);
-                    }
-                }
-            else
-                {
-                PhraseCreation(EFalse);
-                response = HandleHashKeyL(aLength);
-                (aLength == ELongKeyPress)
-                    ? SetLastPressedHashKeyStatus(EFalse)
-                        : SetLastPressedHashKeyStatus(ETrue);
-                }
-            break;
-        case EKeyCBA1:
-            if(Japanese())
-                {
-                if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                break;
-                }
-            // phrase creation the key CBA2 need to solve.
-            if ( IsEntryPhrase() )
-                {
-                if ( FepUI()->HandleKeyL( aCode, aLength ) )
-                    {
-                    response = EKeyWasConsumed;
-                    break;
-                    }
-                }
-
-            if (!WesternPredictive())
-                {
-                if (TryCloseUiL())
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                }            
-            break;
-        case EKeyCBA2:
-            if(Japanese())
-                {
-                if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                break;
-                }
-            if (!WesternPredictive())
-                {
-                if (TryCloseUiL())
-                    {
-                    // phrase creation the key CBA2 need to solve.
-                    PhraseCreation( EFalse );
-                    response = EKeyWasConsumed;
-                    }
-                }
-     		 else
-                {
-                if ( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
-                    {
-                    InternalFepUI()->ExpireMultitapTimer();
-                    }
-                }
-            // phrase creation the key CBA2 need to solve.
-            EntryPhrase( EFalse );
-            break;
-        case EPtiKeyStar:
-            if (IsFlagSet(EFlagPassNextKey))
-                {
-                ClearFlag(EFlagPassNextKey);
-                }
-            else if ( !IsFepAwareTextEditor() )
-                {
-                // The editor is MFNE or other non FEP aware text editor.
-                // Pass the key to the editor to handle.
-                response = EKeyWasNotConsumed;
-                }
-            else if (IsFlagSet(EFlagShiftKeyDepressed))
-                {
-                response = EKeyWasConsumed;
-                }
-            else 
-                {
-#ifdef RD_SCALABLE_UI_V2                
-                iStarKeyPressed = ETrue;
-#endif // RD_SCALABLE_UI_V2                    
-                if (FepUI()->HandleKeyL(aCode, aLength, aEventCode))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-#ifdef RD_SCALABLE_UI_V2                
-                iStarKeyPressed = EFalse;
-#endif // RD_SCALABLE_UI_V2                     
-                }
-            break;
-        case EKeyRightArrow:
-            if (TryHandleArrowRightEventL(documentLength))
-                {
-                response = EKeyWasConsumed;
-                break;
-                }
-            // fall through
-        case EKeyLeftArrow:
-            if (aCode == EKeyLeftArrow && TryHandleArrowLeftEventL(documentLength))
-                {
-                response = EKeyWasConsumed;
-                break;
-                }
-                
-            if (IsCcpuFlagSet(ECcpuStateCopy | ECcpuStateCut))    
-                {
-                response = EKeyWasNotConsumed;
-                break;
-                }            
-            else if (IsCcpuFlagSet(ECcpuStateStartCopy | ECcpuStateStartCut))    
-                {
-                TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response);                
-                break;
-                }               
-
-            if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese && iMode != ELatin)
-                {
-                if(FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                }
-            else
-                {
-                if (WesternPredictive())
-                    {
-                    response = HandleWesternPredictiveArrowKeyL(aCode, aLength);
-                    }
-                else
-                    {
-                    if (iFepManState == EAknFepStateUIActive)
-                        {
-                        FepUI()->HandleKeyL(aCode, aLength);
-                        response = EKeyWasConsumed;
-                        }
-                    else
-                        {
-                        /*
-						TCursorSelection currentEditorSelection(0,0);
-						if(iInputCapabilities.FepAwareTextEditor())
-							{
-							iInputCapabilities.FepAwareTextEditor()->
-								GetCursorSelectionForFep(currentEditorSelection);
-							}
-                        
-						if(!IsMfneEditor() &&
-								(PluginInputMode() == EPluginInputModeItut ||
-								 PluginInputMode() == EPluginInputModeFSQ)  &&
-								 currentEditorSelection.Length() != 0)
-							{
-							response = EKeyWasConsumed;
-							break;
-							}
-						*/
-
-                        response = HandleNaviEventOutsideInlineEditL(aCode, aLength);
-                        if (response == EKeyWasConsumed)
-                            {
-                            iCaseMan->UpdateCase(ENullNaviEvent);
-                            }
-                        else if (aCode == EKeyLeftArrow && !IsFlagSet(EFlagShiftKeyDepressed))
-                            {
-                            iCaseMan->UpdateCase(ELeftNaviEvent);
-                            }
-                        else if (!IsFlagSet(EFlagShiftKeyDepressed))
-                            {
-                            iCaseMan->UpdateCase(ERightNaviEvent);
-                            }
-                        }
-                    }
-                }
-            break;
-        case EKeyDownArrow:
-       	    if( iWesternPredictive && IsFlagSet(EFlagInsideInlineEditingTransaction) && 
-       	    	( EPtiKeyboard12Key == KeyboardLayout() ) && ( IsFlagSet(EFlagShiftKeyDepressed) ||
-       	    	  HashKeySelectionInUse()&& IsCcpuFlagSet(ECcpuStateHashDown) ) )
-            	{
- 				iPtiEngine->CommitCurrentWord();
-            	CommitInlineEditL();
-            	response = EKeyWasConsumed;
-            	break;
-            	}
-
-          if (TryHandleArrowDownEventL(documentLength) || IsFlagSet(EFlagNoMatches))
-                {
-                response = EKeyWasConsumed;
-                break;
-                }
-                
-        case EKeyUpArrow:
-            if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese && iMode != ELatin)
-                {
-                if ( (iAknEditorFlags & EAknEditorFlagNoLRNavigation) &&
-                    IsFlagSet(EFlagShiftKeyDepressed) )
-                    {
-                    // Up or down key is pressed during shift key press.
-                    ClearFlag(EFlagNoActionDuringShiftKeyPress);
-                    return EKeyWasNotConsumed;
-                    }
-
-                if(FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                else
-                    {
-                    TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response);
-                    }
-                }
-            else
-                {
-                if (iLanguageCapabilities.iInputLanguageCode == ELangThai &&
-                    iFepManState == EAknFepStateUIActive &&
-                    WesternPredictive() )
-                    {
-                    if (FepUI()->HandleKeyL(aCode, aLength))
-                        {
-                        ClearFlag(EFlagChangeInputMode);
-                        response = EKeyWasConsumed;
-                        }
-                    break;
-                    }
-                else if ( (iAknEditorFlags & EAknEditorFlagNoLRNavigation) &&
-                    IsFlagSet(EFlagShiftKeyDepressed) )
-                    {
-                    // Up or down key is pressed during shift key press.
-                    ClearFlag(EFlagNoActionDuringShiftKeyPress);
-                    return EKeyWasNotConsumed;
-                    }
-                if (WesternPredictive())
-                    {
-                    // For customizabal of Down/Up scroll keypress action.
-                    // If it need to custom it, the function of HandleKeyL returns EFalse.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    // Predictive QWERTY (XT9) changes ---->
-                    if ( IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-                        {
-                        TInt wordIndexToSelect = 0;
-                        
-                        if(iQwertyInputMode && EPtiKeyboardHalfQwerty != KeyboardLayout())
-                        	{
-                        	if(!iPrimaryCandidate)
-                            iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
-        							&wordIndexToSelect );
-                            
-                        	if( iQwertyInputMode 
-                        	    && ( iExactWordPopupContent->IsPopUpVisible() 
-                        	    	|| ( iFepPluginManager && iFepPluginManager->IsTooltipOpenOnFSQ() ) )
-                        	    && aCode == EKeyUpArrow )
-	                        	{
-		                        iExactWordPopupContent->HidePopUp();
-                            
-                                // When press up, if FSQ is opened, 
-                                // also need to check and close tooltip on it.
-		                        SendEventsToPluginManL( EPluginHideTooltip );
-		                                                                                    
-	                        	iPtiEngine->HandleCommandL( 
-                                           EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-	                        								 &wordIndexToSelect );
-	                        	iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate );
-	                        	/* Update the Candidate List in case of Exact Typing as best predicted word is 
-	                             selected from the tooltip to the editor */
-	                        	if(!iPrimaryCandidate)
-	                        	    iPtiEngine->HandleCommandL(EPtiCommandSetFlagToUpdateCandidates);
-	                        	    
-	                        	TPtrC selectedWord = iPtiEngine->CurrentWord();
-	                        	UpdateInlineEditL( selectedWord, selectedWord.Length() ); 
-	                        	response = EKeyWasConsumed;
-		                     
-	                        	}
-	                        else
-	                        	{
-		                        LaunchCandidatePopupListL( wordIndexToSelect );
-		                        response = EKeyWasConsumed;
-	                        	}
-                        	}
-                        else
-                        	{
-                        	if (!IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-                        	    {
-                        	    TInt lastCandidateIndex = iPtiEngine->NumberOfCandidates() -1;
-                           	    if( EPtiKeyboard12Key == KeyboardLayout() && ( IsFlagSet(EFlagShiftKeyDepressed) ||
-                           	    		  HashKeySelectionInUse()&& IsCcpuFlagSet(ECcpuStateHashDown) ) )
-    	                        	{
-    	                            if (response != EKeyWasConsumed)
-    	                                {
-    	                                response = HandleWesternPredictiveArrowKeyL(aCode, aLength);
-    	                                }
-    	                        	}
-                           	    else if(aCode == EKeyUpArrow && lastCandidateIndex >= 0)
-                        	        {
-                        	        // Get last word on list
-                        	        LaunchCandidatePopupListL( lastCandidateIndex );
-                        	        response = EKeyWasConsumed;
-                        	        }
-                        	    else
-                        	        {
-                        	        // Get next word on list (wrap around if at end)
-                        	        iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, 
-            							&wordIndexToSelect );
-                        	        wordIndexToSelect < lastCandidateIndex ? wordIndexToSelect++ : wordIndexToSelect = 0;
-                        	        LaunchCandidatePopupListL( wordIndexToSelect );
-                        	        response = EKeyWasConsumed;
-                        	        }                        	                        	    
-                        	    }
-                        	else
-                        	    response = EKeyWasConsumed;
-                        	}
-                        }
-                    else
-                        {                       
-	                    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                    if(iFepManState == EAknFepStateUIActive &&
-                        FepUI()->HandleKeyL(aCode, aLength))
-                        {
-                        response = EKeyWasConsumed;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-                        // When press up, if FSQ is opened, 
-                        // also need to check and close tooltip on it.
-                        SendEventsToPluginManL( EPluginHideTooltip );
-
-	                    // Predictive QWERTY (XT9) changes ---->
-	                    // Exact word popup is hidden when the exact word is selected
-	                    iExactWordPopupContent->HidePopUp();
-	                    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                        }
-                    // normal operation of  Down/Up scroll keypress action.
-                    if (response != EKeyWasConsumed)
-                        {
-                        response = HandleWesternPredictiveArrowKeyL(aCode, aLength);
-                        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                        } // Predictive QWERTY (XT9) changes
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                    }
-                else
-                    {
-                    if (iFepManState == EAknFepStateUIActive)
-                        {
-                        FepUI()->HandleKeyL(aCode, aLength);
-                        response = EKeyWasConsumed;
-                        }
-                    else
-                        {
-                        TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response);
-                        }
-                    }
-                }
-            break;
-        case EKeyBackspace:
-            if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese &&
-                !(iMode == ELatin || iMode == ENumber))
-                {
-                if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                }
-            else if (iLanguageCapabilities.iInputLanguageCode == ELangVietnamese)
-                {
-                TCursorSelection cursorSelection;
-                if ( !IsFepAwareTextEditor() )                                           
-                    {
-                    response = EKeyWasNotConsumed;
-                    }
-                else
-                    {
-                    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSelection); 
-                    if (cursorSelection.Length() != 0)      
-                        {
-                        response = EKeyWasNotConsumed;
-                        }
-#ifdef RD_SCALABLE_UI_V2
-                    else if ( !documentLength 
-                        && ( iFepPluginManager->PluginInputMode() == EPluginInputModeItut
-                        || iFepPluginManager->PluginInputMode() == EPluginInputModeVkb ) )
-                        {
-                        response = EKeyWasConsumed;
-                        }
-#endif   
-										else 
-                        {
-                        if (FepUI()->HandleKeyL(aCode, aLength))
-                            {
-                            response = EKeyWasConsumed;
-                            }
-                        else
-                            {
-                            if( WesternPredictive() )
-                                {
-                                // We need to start the autoconcatination timer
-                                SimulateKeyEventL(EKeyF24);
-                                }
-                            }
-                        }
-                    }
-                
-                }
-            else if (IsKoreanInputLanguage() && iMode == EHangul)
-                {
-                if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                }
-            else
-                {
-                if (iFepManState == EAknFepStateInitial)
-                    {
-#ifdef RD_SCALABLE_UI_V2
-                     if ( iFepPluginManager->PluginInputMode() == EPluginInputModeItut )
-                        {
-                        if ( iFepPluginManager->CurrentFepInputUI() && 
-                            FepUI()->HandleKeyL(aCode, aLength))
-                            {
-                            response = EKeyWasConsumed;
-                            break;
-                            }
-                        }
-                     if ( !documentLength 
-                        && ( iFepPluginManager->PluginInputMode() == EPluginInputModeItut
-                        || iFepPluginManager->PluginInputMode() == EPluginInputModeVkb ) )
-                        {
-                        response = EKeyWasConsumed;
-                        break;
-
-                        }
-#endif                        
-                    if (IsFlagSet(EFlagLineFeedCharacter))
-                        {
-                        // restore cursor visibility
-                        if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-                            {
-                            iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL(ETrue);        
-                            }
-                        
-                        iInputCapabilities.FepAwareTextEditor()->CancelFepInlineEdit();
-                        ClearFlag(EFlagInsideMultitapInlineEditingTransaction | 
-                                  EFlagInsideInlineEditingTransaction | 
-                                  EFlagLineFeedCharacter);
-                        response =  EKeyWasConsumed;
-                        }
-                    else
-                        {
-                        response = HandleNaviEventOutsideInlineEditL(aCode, aLength);
-                        if (WesternPredictive() && response == EKeyWasNotConsumed)
-                            {
-                            // if we're passing a backspace to the editor simulate any old keypress
-                            // to catch and check the state of play after the deletion
-                            SimulateKeyEventL(EKeyF24);
-                            }
-                        if (response == EKeyWasNotConsumed)
-                            {
-                            if(iMode == EZhuyinFind)
-                                {
-                                SetFlag(EFlagSupressAutoUpdate);
-                                }
-                            if (iLongClearAfterCloseUI &&
-                                aLength == ELongKeyPress)
-                                {
-                                response = EKeyWasConsumed;
-                                }
-
-                            iCaseMan->UpdateCase(EBackspaceEvent);
-                            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                        if(IsAutoCompleteOn())
-                            {
-                            TInt tailLength = 0;
-                            iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-                                                        &tailLength );
-                            if(tailLength > 0)
-                                {
-                                RemoveSuggestedAdvanceCompletionL();
-                                }
-                            }
-#endif
-                        }
-                    
-                    // Clear the star key flag.
-                    if( FepUI() )
-                        {
-                        FepUI()->SetStarKeyFlag( EFalse );
-                        }
-                    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                else if (IsAutoCompleteOn())
-                    {
-                    TInt tailLength = 0;
-                    iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-                                                &tailLength );
-                    if(tailLength > 0)
-                        {
-                        TryRemoveNoMatchesIndicatorL();
-                        RemoveSuggestedAdvanceCompletionL();
-                        SimulateKeyEventL(EKeyF19);
-                        UpdateCbaL(NULL);
-                        response=EKeyWasConsumed;
-                        }
-                    else if(FepUI()->HandleKeyL(aCode, aLength))
-                        {
-                        if( EPtiKeyboardHalfQwerty == KeyboardLayout()
-                        		&& iWesternPredictive
-                        		&& iCaseMan->CurrentCase() != EAknEditorUpperCase )
-                            {
-                        	ClearFlag(CAknFepManager::EFlagChangeInputMode);
-                            }
-                        iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-                        if(tailLength > 0)
-                            {
-                            RemoveSuggestedAdvanceCompletionL();
-                            }
-                        response = EKeyWasConsumed;
-                        }
-                    }
-                else if(FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                SendEventsToPluginManL( EPluginHideTooltip );
-                if(iExactWordPopupContent && iExactWordPopupContent->IsPopUpVisible())
-                    {
-                    iExactWordPopupContent->HidePopUp();
-                    }               
-#else
-                else if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }                
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                }
-            break;
-        case EKeyDelete:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-			if(IsAutoCompleteOn())
-				{
-				TInt tailLength = 0;
-				iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-												&tailLength );
-				if(tailLength > 0)
-					{
-					RemoveSuggestedAdvanceCompletionL();
-				    }
-				}
-
-            // When press delete key, if FSQ is opened, 
-            // also need to check and close tooltip on it.
-			SendEventsToPluginManL( EPluginHideTooltip );
-
-			if(iExactWordPopupContent && iExactWordPopupContent->IsPopUpVisible())
-				{
-		        iExactWordPopupContent->HidePopUp();
-				}
-        	if ( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
-            	{
-            	TryRemoveNoMatchesIndicatorL();
-            	UpdateCbaL(NULL);
-            	CommitInlineEditL();
-    	        } 
-#endif //RD_INTELLIGENT_TEXT_INPUT        
-        	break;            
-        case EKeyF19:  // Fep simulated event to asynchronously update the case.
-            iCaseMan->UpdateCase(ENullNaviEvent);
-            response=EKeyWasConsumed;
-            ClearExtendedFlag(EExtendedFlagOkKeyPressOnCandidatePopup );
-            break;
-        case EKeyF22:
-            if (WesternPredictive())
-                {
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                if (CursorInsideWord())
-                    {
-                    MoveCursorToEndOfWordL();
-                    }
-                if (iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep())
-                    {
-                    iCaseMan->UpdateCase(ENullNaviEvent);
-                    }
-                }
-            else if (iMode == ELatin)
-                {
-                iCaseMan->UpdateCase(ENullNaviEvent);
-                }
-            ClearCcpuFlag(ECcpuStateIgnoreStarUp);    
-            response=EKeyWasConsumed;
-            break;
-        case EKeyF23:
-            if (WesternPredictive())
-                {
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                if (CursorInsideWord())
-                    {
-                    MoveCursorToStartOfWordL();
-                    }
-                if (iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep())
-                    {
-                    iCaseMan->UpdateCase(ENullNaviEvent);
-                    }
-                }
-            else if (iMode == ELatin)
-                {
-                iCaseMan->UpdateCase(ENullNaviEvent);
-                }
-            ClearCcpuFlag(ECcpuStateIgnoreStarUp);    
-            response=EKeyWasConsumed;
-            break;
-        case EKeyF24:
-            if (WesternPredictive() && CursorInsideWord())
-                {
-                // word concatenation - start the timer; add concatenated word
-                // to UDB on timer expiry
-                iConcatenationTimer->Start(EWordConcatenationTimeout, EWordConcatenationTimeout,
-                    TCallBack(WordConcatenationTimerTimeoutCallback, this));
-                }
-            response=EKeyWasConsumed;
-            break;
-        case EPtiKey0: //fall through
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey5:
-        case EPtiKey6:
-        case EPtiKey7:
-        case EPtiKey8:
-        case EPtiKey9:
-            #ifdef RD_SCALABLE_UI_V2     
-                if ( aLength == ELongKeyPress && !isPassNext && (aCode == EPtiKey0) )
-                    {
-                    if( !IsQwerty() && 
-                        !IsFlagSet(CAknFepManager::EFlagPassNextKey)&&
-                        iFepPluginManager->PluginInputMode() != EPluginInputModeItut )
-                        {
-                        iFepPluginManager->ClosePluginInputModeL( ETrue );
-                        }
-                    }
-            #endif
-             if (IsFlagSet(EFlagLineFeedCharacter) && aCode != EPtiKey0)
-                {
-                // There is line feed character waiting. Pospone this event and handle
-                // line feed first.
-                CancelInlineEdit();
-                 if (!(iAknEditorFlags & EAknEditorFlagFindPane) || iQwertyInputMode)
-                 {
-                  SimulateKeyEventL(EKeyEnter);
-                  SimulateKeyEventL(EKeyF19); // Asyncronous case update    
-                 }
-                SimulateKeyEventL((TPtiKey)aCode);                  
-                ClearFlag(EFlagLineFeedCharacter);
-                return EKeyWasConsumed;                 
-                }                
-            if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese && iMode != ELatin)
-                {
-                if (EditorHasFreeSpace() || iFepManState == EAknFepStateUIActive)
-                    {
-                    if (FepUI()->HandleKeyL(aCode, aLength))
-                        {
-                        ClearFlag(EFlagChangeInputMode);
-                        response = EKeyWasConsumed;
-                        }
-                    // response is EKeyWasNotConsumed
-                    }
-                }
-            else
-                {
-                //pass extra key received when doing secret text edit
-                if (IsFlagSet(EFlagPassNextKey))
-                    {
-                    ClearFlag(EFlagPassNextKey);
-                    }
-                else if (IsFlagSet(EFlagShiftKeyDepressed) || IsCcpuFlagSet(ECcpuStateHashDown))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                    
-                // The key event is passed to the editor to handle in case of
-                // MFNE and other non FEP aware editors (response = EKeyWasNotConsumed).
-                else if ( IsFepAwareTextEditor() )
-                    {
-                    if ( ( iMode != ENumber && iMode != ENativeNumber ) ||
-                        ( ( iMode == ENumber || iMode == ENativeNumber )  && aLength == ELongKeyPress))
-                        {
-                        // Be default the key event is handled by FEP for FEP aware editors.
-                        response = EKeyWasConsumed;
-                        }
-
-                    // New character can be entered to the editor if there is
-                    // space left in the editor. Editor can be modified also
-                    // is the last character is multitapped or last character
-                    // in inline state is replaced with a digit.
-                    /*Hindi*/
-                    //This condition is added for Hindi language in case of multitapping of EKey1 to get 
-                    //a numeral value "1" because of a clasical case of Halant and ZWS getting added 
-                    //before numeral 1 which may affect incase of limited space in editor   
-                        
-                    if (( EditorHasFreeSpace()
-                        || (!WesternPredictive() && !EditorHasFreeSpace() && 
-                           (TAknFepUiIndicInputManager::IsIndicLangauge(
-                            TLanguage(iLanguageCapabilities.iInputLanguageCode)))) 
-                        || IsFlagSet(EFlagInsideMultitapInlineEditingTransaction)
-                        || (IsFlagSet(EFlagInsideInlineEditingTransaction) && aLength == ELongKeyPress)))
-                        {
-                        ClearFlag(EFlagEditorFull);
-
-                        if (aLength == ELongKeyPress && 
-                           (iMode != ELatin && iMode != ENumber && iMode != ENativeNumber && iMode != EStrokeFind && iMode != EHangul) &&
-                            FepUI()->IsValidNumericLongKeyPress(aCode))
-                            {
-                            if (iFepManState == EAknFepStateInitial) // Multitapping
-                                {
-#ifdef RD_SCALABLE_UI_V2
-                                 if (iFepFullyConstructed && 
-                                     iFepPluginManager->CurrentFepInputUI() )
-                                     {
-                                     if (iFepPluginManager->CurrentFepInputUI()->HandleKeyL(aCode, 
-                                                                                         aLength))
-                                         {
-                                         response = EKeyWasConsumed;
-                                         break;
-                                         }
-                                     }
-#endif        
-                                // Current multitabbed character is replaced with a number.
-                                TChar ch(aCode);
-                                TBuf<1> buf;
-                                buf.Append(ch);
-                                NewCharacterL(buf);
-                                CommitInlineEditL();
-                                iPtiEngine->ClearCurrentWord();
-                                }
-                            else
-                                {
-                                // Long number key press is given to the editor.
-                                TryCloseUiL();
-                                response = EKeyWasNotConsumed;
-                                }
-                            }
-                        else if (FepUI()->HandleKeyL(aCode, aLength))
-                            {
-        	            	if ( (iMode == EPinyin || iMode == EZhuyin || iMode == EStroke || iMode == ECangJie)
-        	            			&& iFepManState == EAknFepStateUIActive )
-        	            		{
-        	            		if ( EditorState() )
-        	            			{
-        	            			EditorState()->SetFlags( EditorState()->Flags() | EAknEditorFlagChinesePopup );
-        	            			}       	            		
-        	            		}
-                            ClearFlag(EFlagChangeInputMode);
-                            // for japanese variant
-                            if (IsFeatureSupportedJapanese()
-                             && iMode == ENumber)
-                                {
-                                response = EKeyWasConsumed;
-                                }
-                            }
-                        else
-                            {
-                            //By default, pass long keypress to an editor for inserting number.
-                            response = EKeyWasNotConsumed;
-                            //No need to handle long key press in dialer
-                            if ( RProcess().SecureId().iId != KPhoneSecureId )
-                                {
-
-                                if ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic )
-                                    {
-                                    SimulateKeyEventL( aCode + KLatinToArabicIndicDigitsDelta );
-                                    response = EKeyWasConsumed;
-                                    }
-                                else if( iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic )    
-                                    {
-                                    SimulateKeyEventL( aCode + KLatinToEasternArabicIndicDigitsDelta );
-                                    response = EKeyWasConsumed;
-                                    }
-                                /*Hindi*/    
-                                else if ( iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari 
-                                            || iPreviousEditingState == EDevanagariIndicNumeric )                           
-                                    {
-                                    
-                                    SimulateKeyEventL( aCode + KLatinToDevanagariDigitsDelta );
-                                    
-                                    response = EKeyWasConsumed;
-                                    }
-                                }
-                            }
-                        }
-                    }                   
-                }
-            break;
-        case EKeyOK:
-            {
-            if (iUiInterface->SoftkeysExist() && EditSubmenuInUse()) 
-                {                           
-                if (iUiInterface->SoftkeyCommandId(ELeftSoftkeyIndex) == EAknFepSoftkeyStartCopy)
-                    {                                     
-                    ProcessCommandL(EAknFepSoftkeyStartCopy);
-                    response = EKeyWasConsumed;             
-                    break;
-                    }
-                else if (iUiInterface->SoftkeyCommandId(ELeftSoftkeyIndex) == EAknFepSoftkeyStartCut)
-                    {
-                    ProcessCommandL(EAknFepSoftkeyStartCut);
-                    response = EKeyWasConsumed;             
-                    break;              
-                    }
-                else if (iUiInterface->SoftkeyCommandId(ELeftSoftkeyIndex) == EEikCmdEditCopy)
-                    {                                     
-                    ProcessCommandL(EEikCmdEditCopy);
-                    response = EKeyWasConsumed;             
-                    break;
-                    }
-                else if (iUiInterface->SoftkeyCommandId(ELeftSoftkeyIndex) == EEikCmdEditCut)
-                    {
-                    ProcessCommandL(EEikCmdEditCut);
-                    response = EKeyWasConsumed;             
-                    break;              
-                    }                                                                               
-                }
-            
-            if ( (iAknEditorFlags & EAknEditorFlagNoLRNavigation) &&
-                IsFlagSet(EFlagShiftKeyDepressed) )
-                {
-                // Selection key is pressed during shift key press.
-                ClearFlag(EFlagNoActionDuringShiftKeyPress);
-                return EKeyWasNotConsumed;
-                }
-            if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese && iMode != ELatin)
-                {
-                if (FepUI()->HandleKeyL(aCode, aLength))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                }
-            else
-                {
-                if (IsFlagSet(EFlagShiftKeyDepressed) && 
-                  !(iAknEditorFlags & EAknEditorFlagSupressShiftMenu))
-                    {
-                    response = EKeyWasConsumed;
-                    }
-                else if (iFepManState == EAknFepStateUIActive)
-                    {
-                    if (FepUI()->HandleKeyL(aCode, aLength))
-                        {
-                        response = EKeyWasConsumed;
-                        }
-                    }
-                else if (iMode == ELatin && !WesternPredictive() && 
-                         IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))                    
-                    {
-                    CommitInlineEditL();
-                    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-			    // Predictive QWERTY (XT9) changes ---->
-			    // Accept current candidate (including possible auto-completed part) and insert space after the word
-			    // if selection key pressed while inline editing (on Qwerty only!)
-			    // this is not the expected behavior for half qwerty
-			    
-				TBool isQwertyMode = iQwertyInputMode && 
-								!( EPtiKeyboardHalfQwerty == KeyboardLayout() );
-			    if ( response == EKeyWasNotConsumed && iWesternPredictive && isQwertyMode && 
-			         IsFlagSet(EFlagInsideInlineEditingTransaction) 
-			         // For addition of ITI features on FSQ. 
-			         // If FSQ is opened with ITI features activated, don't commit as HW's action
-			         && !( iFepPluginManager && iFepPluginManager->EnableITIOnFSQ() ) )
-			        {
-			        
-					// If the primary candidate setting is exact typing, The tooltip/bubble always shows the best prediction.
-				    // Word on the typing line is accepted into editor on selection key event..  
-					                  
-			        iPtiEngine->CommitCurrentWord();
-			        CommitInlineEditL();
-                    TryCloseUiL();
-                    if(!static_cast<TChar>(NextChar()).IsSpace())
-	                    {
-	                    SimulateKeyEventL(EKeySpace);
-	                    }
-                    else 
-	                	{
-						TCursorSelection sel;
-            			iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(sel);
-            			sel.iCursorPos++;
-            			sel.iAnchorPos++;
-            			iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);	                		
-	                	}    
-                    SimulateKeyEventL(EKeyF19); // asynchronous case update
-                
-			        response = EKeyWasConsumed;
-			        }
-			    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                }
-            }
-            break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        	case EKeyPhoneEnd:
-	        	{
-	        	// Suggested word should get committed in exact typing
-				if ( iWesternPredictive &&
-			    	 IsFlagSet(EFlagInsideInlineEditingTransaction) )
-			        {
-						
-					// If the primary candidate setting is exact typing, The tooltip/bubble always shows the best prediction.
-					// Word on the typing line is accepted into editor on end key event..
-						
-			        iPtiEngine->CommitCurrentWord();
-					CommitInlineEditL();
-	            	TryCloseUiL();
-	            	ClearFlag(CAknFepManager::EFlagNoMatches);
-	            	SimulateKeyEventL(EKeyF19); // asynchronous case update
-			        }
-	        	}
-			break;
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        default:
-            break;
-        }
-    SchedulePostEventCheckL(aCode);
-
-#ifdef RD_SCALABLE_UI_V2     
-    if ( !isPassNext )
-        {
-        SendEventsToPluginManL( EPluginKeyEvent, aCode );
-        }
-#endif
-        
-    return response;
-    }
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::HandleShiftHalfQwertyChineseL(TEventCode aEventCode)
-    {
-    if (aEventCode == EEventKeyDown)
-        {
-        ClearCcpuFlag(ECcpuStateCbaShown);		
-        SetFlag(EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress);
-        ClearFlag(EFlagNoActionDuringChrKeyPress);
-        SetFlag(EFlagQwertyShiftMode);
-        // Long press of shift key timer is activated.
-        iShiftKeypressMonitor->Start(EShiftKeyRepeatDelay,
-            EShiftKeyRepeatDelay, TCallBack(ResetShiftKeyMonitorCallback,
-                this) );
-        }
-    else if (aEventCode == EEventKeyUp)
-        {
-        ClearFlag(EFlagShiftKeyDepressed
-            |EFlagNoActionDuringShiftKeyPress);
-        ClearFlag(EFlagQwertyShiftMode);
-        iShiftKeypressMonitor->Cancel();
-
-        if ( (iKeyPressedDuringShift)|| IsFlagSet(EFlagLongShiftKeyPress) )
-            {
-            iKeyPressedDuringShift = EFalse;
-            ClearFlag( EFlagLongShiftKeyPress );
-            if ( iFnKeyManager->FnKeyState() )
-                {
-                iFnKeyManager->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-                }
-            UpdateIndicators();
-            }
-        else
-            {
-            CAknEdwinState* editorState = EditorState();
-            TInt permittedCases = editorState->PermittedCases();
-            permittedCases = permittedCases == 0 ?
-            EAknEditorLowerCase | EAknEditorUpperCase : permittedCases;
-
-            if (iMode == ELatin && (permittedCases & EAknEditorTextCase))
-                {
-                // Latin case update is changed back to automatic if latin 
-                // text case is allowed and the case is changed manually from #-key.
-                ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                }
-            TInt currentCase = iCaseMan->CurrentCase();
-
-            // Is current latin case last available case.
-            TBool lastCase = ( ( !(permittedCases & EAknEditorTextCase)
-                    && ((currentCase == EAknEditorLowerCase)
-                        || (currentCase == EAknEditorUpperCase
-                            && !(permittedCases
-                                & EAknEditorLowerCase)) )
-                    || (editorState->Flags() & EAknEditorFlagFixedCase) )
-                || (editorState->Flags()
-                    & EAknEditorFlagForceTransparentFepModes) );
-
-            if (iMode == ELatin
-                && !IsFlagSet(CAknFepManager::EFlagChangeInputMode)
-                && !lastCase)
-                {
-                if (iWesternPredictive)
-                    {
-                    // Input mode is still Latin. Only case is updated.
-                    if (permittedCases & EAknEditorTextCase)
-                        {
-                        iCaseMan->ManualCaseUpdate();
-                        }
-                    else
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                        }
-                    }
-                else
-                    {
-                    if(iCaseMan->CurrentCase() == EAknEditorUpperCase)
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                        }
-                    else
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                        }
-                    }
-
-                // Next time input mode is changed if any text is not entered before.
-                SetFlag(CAknFepManager::EFlagChangeInputMode);
-                }
-            else
-                {
-                // Input mode is incremented.
-                SetChangeModeByShiftAndSpace( EFalse );
-                TryIncrementChineseModeForQwertyL(iMode);
-
-                ClearFlag(CAknFepManager::EFlagChangeInputMode);
-
-                if ( iMode == ELatin && iWesternPredictive ) // New mode after Increment.
-
-                    {
-                    if (editorState->Flags() & EAknEditorFlagFixedCase)
-                        {
-                        // Only one fixed case is available. Use it.
-                        iCaseMan->ConfigureCaseStateFromEditorState();
-                        SetFlag(CAknFepManager::EFlagChangeInputMode);
-                        }
-                    else if (editorState->Flags()
-                        & EAknEditorFlagForceTransparentFepModes)
-                        {
-                        // Only lower case is used with find pane.
-                        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                        SetFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                        SetFlag(CAknFepManager::EFlagChangeInputMode);
-                        }
-                    else if (permittedCases & EAknEditorTextCase)
-                        {
-                        iCaseMan->SetCurrentCase(EAknEditorTextCase);
-                        iCaseMan->UpdateCase(ENullNaviEvent);
-                        }
-                    else
-                        {
-                        if (permittedCases & EAknEditorUpperCase)
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                            if ( !(permittedCases
-                                    & EAknEditorLowerCase))
-                                {
-                                // We need to move to next input mode since only upper case 
-                                // is permitted in Latin input mode.
-                                SetFlag(CAknFepManager::EFlagChangeInputMode);
-                                }
-                            }
-                        else
-                            {
-                            iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                            SetFlag(CAknFepManager::EFlagChangeInputMode);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-void CAknFepManager::HandleShiftQwertyChineseL(TEventCode aEventCode)
-    {
-    if ( IsFlagSet( EFlagQwertyChrKeyDepressed ) && 
-    	 !IsFeatureSupportedJapanese() && 
-    	 iCurrentFepUI->IsValidShiftKeyPress())
-    	{
-        ClearFlag(EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-        LaunchLanguagesPopupListL();
-        return;
-    	}
-    
-    TInt language = iSharedDataInterface->InputTextLanguage();
-
-    if (aEventCode == EEventKeyUp)
-        {
-        ClearCcpuFlag(ECcpuStateCbaShown);
-        if (FepUI())
-            {
-            FepUI()->HandleKeyL(EKeyLeftShift, EShortKeyPress);
-            }
-        TBool validShift = iCurrentFepUI->IsValidShiftKeyPress();
-                
-        if (IsFlagSet(EFlagLongShiftKeyPress) ||iKeyPressedDuringShift)
-            {
-            if (iKeyPressedDuringShift || IsFlagSet(EFlagQwertyShiftMode))
-                {
-                iShiftKeypressMonitor->Cancel();
-                iKeyPressedDuringShift = EFalse;
-                ClearFlag(EFlagQwertyShiftMode);
-                }
-            }
-        else
-            if (IsFlagSet(EFlagQwertyShiftMode))
-                {
-                if ( iMode != ELatin && validShift )
-                    {
-                    iModeBefore = iMode;
-                    TryChangeModeL(ELatin);
-                    ClearFlag( EFlagQwertyShiftMode );
-                    }
-                }
-            else
-                {
-                if (iMode == ELatin)
-                    {
-                    TBool isWsPr= EFalse;
-                    if (WesternPredictive())
-                        {
-                        SetWesternPredictive(EFalse);
-                        isWsPr = ETrue;
-                        }
-                    TInt Modetemp = iModeBefore;
-                    TInt sharedDataMode = iSharedDataInterface->InputMode();
-                    if (Modetemp == EStroke && 
-                    	iQwertyInputMode && 
-                    	sharedDataMode == ECangJie)
-                    	{
-                    	Modetemp = ECangJie;
-                    	}
-
-                    TryChangeModeL(Modetemp);
-                    if (isWsPr)
-                        {
-                        SetWesternPredictive(ETrue);
-                        }
-                    }
-                }
-
-        ClearFlag(EFlagShiftKeyDepressed);
-
-        if (IsFlagSet(EFlagLongShiftKeyPress)
-                && iMode == ELatin
-                && IsFlagSet(EFlagQwertyShiftMode))//latin shift ->abc
-            {
-            ClearFlag(EFlagQwertyShiftMode);
-            }
-
-        if (IsFlagSet(EFlagLongShiftKeyPress)) //long keypress up
-            {
-            ClearFlag(EFlagLongShiftKeyPress
-                    |EFlagNoActionDuringShiftKeyPress);
-            }
-        else // short keypress up
-            {
-            iShiftKeypressMonitor->Cancel();
-            }
-
-        ClearFlag(EFlagNoActionDuringChrKeyPress);
-        ClearFlag(EFlagNoActionDuringShiftKeyPress);
-        if ( validShift )
-            {
-            UpdateIndicators();
-            }
-        else
-            {
-            ClearFlag(EFlagQwertyShiftMode);
-            }
-        }
-    else
-        if (aEventCode == EEventKeyDown)
-            {
-
-            SetFlag(EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress);
-            ClearFlag(EFlagNoActionDuringChrKeyPress);
-
-            if (IsFlagSet(EFlagQwertyShiftMode))
-                {
-                ClearFlag(EFlagQwertyShiftMode);
-                }
-            else
-                {
-                SetFlag(EFlagQwertyShiftMode);
-                if ( iCurrentFepUI->IsValidShiftKeyPress() 
-                		|| iMode == ELatin )
-                    {
-                    UpdateIndicators();
-                    }
-   	            // If the iShiftKeypressMonitor is actived now, cancel it first.
-	              iShiftKeypressMonitor->Cancel();
-                // Long press of shift key timer is activated.
-                iShiftKeypressMonitor->Start(EShiftKeyRepeatDelay,
-                        EShiftKeyRepeatDelay, TCallBack(
-                                ResetShiftKeyMonitorCallback, this));
-                }
-            }
-    }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-TKeyResponse CAknFepManager::HandleShiftKeyEventL(TEventCode aEventCode)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	// GQF clarification 
-	// In case irrespective Fn/shift key Text case should not be changed.
-	// Like Shift +Fn + Shift should not toggle the text case of the editor.
-	// Only Consecutive press of shift key should change the text case
-	if( iQwertyInputMode && (EEventKeyDown== aEventCode) && EPtiKeyboardHalfQwerty != KeyboardLayout())
-		{
-		if( (iFnKeyManager->FnKeyState() == CAknFepFnKeyManager::EFnKeyNext) && 
-			IsFlagSet(EFlagQwertyShiftMode))
-			{
-			iFnKeyManager->ClearFnKeyState();
-			iPtiEngine->SetCase((TPtiTextCase)EPtiCaseLower);
-			ClearFlag(EFlagQwertyShiftMode);
-			}
-		}
-    TInt language = iSharedDataInterface->InputTextLanguage();
-#endif    
-    
-    if (iQwertyInputMode)
-        {
-        if ( !iInputCapabilities.FepAwareTextEditor() )
-            {
-            response = EKeyWasNotConsumed;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        else if (language == ELangTaiwanChinese||
-                    language == ELangHongKongChinese ||
-                    language == ELangPrcChinese)
-                {
-                if ( ( EPtiKeyboardHalfQwerty == KeyboardLayout() && FepUI() ) &&
-                        iPtiEngine &&
-                        ( EPtiCaseFnUpper == iPtiEngine->Case() || EPtiCaseFnLower == iPtiEngine->Case() ) &&
-                        ( aEventCode == EEventKeyDown || aEventCode == EEventKeyUp ) )
-                    {
-                    // Ignore the KeyUp event
-                    if( aEventCode == EEventKeyDown )
-                        {
-                        FepUI()->HandleKeyL( EPtiKeyQwertyLeftShift, 
-                                                     EShortKeyPress );
-                        }
-                    if( aEventCode == EEventKeyUp )
-                        {
-			            ClearCcpuFlag(ECcpuStateCbaShown);
-                        }						
-                    }
-                else
-                    {
-                    if ((iAknEditorFlags & EAknEditorFlagFindPane)&& (CAknFepFnKeyManager::EFnKeyNone ==FnKeyState()))
-                        {
-                        if (aEventCode == EEventKeyUp)
-                            {
-				            ClearCcpuFlag(ECcpuStateCbaShown);							
-                            if ( iKeyPressedDuringShift )
-                                {
-                                iKeyPressedDuringShift = EFalse;
-                                }
-                            else
-                                {
-                                TryIncrementModeChineseQwertyL( iMode );
-                                }
-                            ClearFlag( EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress );
-                            }
-                        else if(aEventCode == EEventKeyDown)
-                            {
-                            SetFlag(EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress);
-                            ClearFlag(EFlagNoActionDuringChrKeyPress);
-                            }
-                        return EKeyWasConsumed;
-                        }
-                    if (EPtiKeyboardHalfQwerty == KeyboardLayout())
-                        {
-                        HandleShiftHalfQwertyChineseL(aEventCode);
-                        }
-                    else
-                        {
-                        HandleShiftQwertyChineseL(aEventCode);
-                        }
-                    }
-                }
-#endif // ITI flag
-        else if (aEventCode == EEventKeyDown)
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD
-            if( ( EPtiKeyboardHalfQwerty == KeyboardLayout() && FepUI() ) &&
-                iPtiEngine && EditorHasFreeSpace())
-                {
-		if (IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-                            {
-                            iPtiEngine->CancelTimerActivity();
-                            }
-                if( EPtiCaseFnUpper == iPtiEngine->Case() || EPtiCaseFnLower == iPtiEngine->Case() )
-                    {
-                    FepUI()->HandleKeyL( EPtiKeyQwertyLeftShift, 
-                                                 EShortKeyPress );
-					iFnCharInsertedForShift = ETrue;                                                    
-                    }                 
-                }
-#endif // Half Qwerty flag
-#endif // ITI flag
-
-            // Shift key is pressed down.
-            SetFlag(EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress);
-            ClearFlag(EFlagNoActionDuringChrKeyPress);
-            if ( IsFlagSet(EFlagQwertyShiftMode) && IsFlagSet(EFlagNoActionDuringShiftKeyPress) )
-                {
-                ClearFlag(EFlagQwertyShiftMode | EFlagNoActionDuringShiftKeyPress);
-                // If long shift key press flag is set, then do not do manual case update.
-                if (!IsFlagSet(EFlagLongShiftKeyPress))
-                    {
-                    iCaseMan->ManualCaseUpdate();
-                    }
-                }
-            else
-                {
-                if (!(iCurrentFepUI->IsValidShiftKeyPress()))
-                    {
-                    return EKeyWasConsumed;
-                    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD                    
-                if(!iFnCharInsertedForShift)
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif //__HALF_QWERTY_KEYPAD                
-                	{
-                	SetFlag(EFlagQwertyShiftMode);
-                	}
-					
-                if(iShiftKeypressMonitor->IsActive())
-                	iShiftKeypressMonitor->Cancel();               	
-                // Long press of shift key timer is activated.
-                iShiftKeypressMonitor->Start(EShiftKeyRepeatDelay, EShiftKeyRepeatDelay, 
-                    TCallBack(ResetShiftKeyMonitorCallback, this));
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                // Shift kkey hack for GQF implementation. Need to check 
-                // if it has any side effect.  
-                if((iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyLock)
-                    && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyForced)
-                    && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyDown)
-                    && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNext))
-#endif
-                UpdateIndicators();
-                }
-            }
-        else if (aEventCode == EEventKeyUp)
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD            
-            if( ( EPtiKeyboardHalfQwerty == KeyboardLayout() && FepUI() ) &&
-                iPtiEngine )
-                {
-                ClearCcpuFlag(ECcpuStateHashDown
-                      | ECcpuStateHashKeyDeleteDone
-                      | ECcpuStateChangeToPredictionMode);
-                if (IsCcpuFlagSet(ECcpuStateEdwinInSelectionMode))
-                    {
-                    SetCcpuFlag(ECcpuStateSelectionEventPosted);
-                    ClearCcpuFlag(ECcpuStateEdwinInSelectionMode);
-                    SetFlag(EFlagLongShiftKeyPress);
-
-                    TKeyEvent ccpuStart = {0, EStdKeyLeftShift, 0, 0};
-                    CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);
-                    }
-                  if( CAknFepFnKeyManager::EFnKeyNone != FnKeyState())
-                      {
-                      ClearFlag(EFlagQwertyShiftMode);
-                      }
-                //  iFnCharInsertedForShift = EFalse;    
-                  }
-                
-#endif // Half Qwerty flag
-#endif // ITI flag
-
-            ClearFlag(EFlagShiftKeyDepressed);
-            ClearCcpuFlag(ECcpuStateCbaShown);
-            if ( !IsFlagSet(EFlagNoActionDuringShiftKeyPress) ||
-                (IsFlagSet(EFlagNoActionDuringShiftKeyPress) && IsFlagSet(EFlagLongShiftKeyPress)) )
-                {
-                ClearFlag(EFlagQwertyShiftMode);
-                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-#ifdef __HALF_QWERTY_KEYPAD				          
-            if( IsFlagSet(EFlagQwertyChrKeyDepressed) && IsFlagSet(EFlagNoActionDuringShiftKeyPress))
-                {
-#ifdef FF_DUAL_LANGUAGE_SUPPORT                    
-                 // Currently dual language feature would work correctly for ITUT and Half Qwerty products 
-				 // Hence the dual language settings should also be displayed only for ITUT and Halfqwerty products
-                if(iKeyboardType == EPtiKeyboardHalfQwerty )
-                    LaunchDualLanguageSettingDialogL();
-                else                     
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-                    LaunchLanguagesPopupListL();
-                ClearFlag(EFlagQwertyChrKeyDepressed|EFlagNoActionDuringChrKeyPress|EFlagNoActionDuringShiftKeyPress);                
-                }
-               
-#ifdef __SHIFT_KEY_LOOP                                
-            if( KeyboardLayout() == EPtiKeyboardHalfQwerty &&
-            // looping does not happen for long key press
-                !IsFlagSet(EFlagLongShiftKeyPress) &&     
-            // looping does not happen in functionized state                
-                iFnKeyManager->FnKeyState() == CAknFepFnKeyManager::EFnKeyNone &&
-            // looping happens only when no action 
-            // has happened when the shift key has been pressed     
-                 IsFlagSet(EFlagNoActionDuringShiftKeyPress) && !iFnCharInsertedForShift )
-                {
-                HandleKeyEventL( EStdKeyLeftShift, EShortKeyPress );
-                ClearFlag(EFlagQwertyShiftMode);
-                }
-        	iFnCharInsertedForShift = EFalse;        
-#endif //__SHIFT_KEY_LOOP       
-#endif //__HALF_QWERTY_KEYPAD      
-#endif //RD_INTELLIGENT_TEXT_INPUT   
-            if (IsFlagSet(EFlagLongShiftKeyPress))  //long keypress up
-                {
-                ClearFlag(EFlagLongShiftKeyPress);
-                }
-            else                                    // short keypress up
-                {
-                iShiftKeypressMonitor->Cancel();
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-#ifdef __HALF_QWERTY_KEYPAD               
-#ifdef __SHIFT_KEY_LOOP
-				// Cancel multitap timer
-                
-                if( iPtiEngine != NULL )
-                    {
-				    iPtiEngine->CancelTimerActivity();
-                    }
-#endif //__SHIFT_KEY_LOOP       
-#endif //__HALF_QWERTY_KEYPAD      
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                }
-            ClearFlag( EFlagNoActionDuringShiftKeyPress );
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Shift kkey hack for GQF implementation. Need to check 
-                // if it has any side effect.  
-            if((iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyLock)
-                && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyForced)
-                && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyDown)
-                &&(iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNext))
-#endif
-            UpdateIndicators();
-            }
-        }
-    else
-        {
-        if ( !iInputCapabilities.FepAwareTextEditor() && (!iCandidatePopup))
-            {
-            response = EKeyWasNotConsumed;
-            }        
-        else if (aEventCode == EEventKeyDown)
-            {
-            if (Japanese() && iInputCapabilities.FepAwareTextEditor())
-                {
-                if (!(iCurrentFepUI->IsValidShiftKeyPress()))
-                    {
-                    return EKeyWasConsumed;
-                    }
-                TryCloseUiL();
-                }
-            
-            // Shift key is pressed down but no any other key is pressed.
-            ClearCcpuFlag(ECcpuSupressEditMenuFromShiftUp);
-            SetFlag(EFlagShiftKeyDepressed | EFlagNoActionDuringShiftKeyPress);
-            if ( !(iAknEditorFlags & EAknEditorFlagNoLRNavigation))
-                {
-                // Cancel the timer first if active.
-                // EEventKeyUp is not sent always for shift key during debugging on emulator.
-                iShiftKeypressMonitor->Cancel();
-                // Long press of shift key timer is activated.
-                iShiftKeypressMonitor->Start(EShiftKeyRepeatDelay, EShiftKeyRepeatDelay,
-                    TCallBack(ResetShiftKeyMonitorCallback, this));
-                }
-            if ( IsFlagSet(EFlagInsideInlineEditingTransaction) &&
-                WesternPredictive() && iFepManState == EAknFepStateUIActive )
-                {
-                TryRemoveNoMatchesIndicatorL();
-                UpdateCbaL(NULL);
-                }
-            }
-        else if (aEventCode == EEventKeyUp)
-            {
-            ClearFlag(EFlagShiftKeyDepressed);
-            ClearCcpuFlag(ECcpuStateCbaShown);
-            if (IsFlagSet(EFlagLongShiftKeyPress))  //long keypress up
-                {
-                ClearFlag(EFlagLongShiftKeyPress | EFlagNoActionDuringShiftKeyPress);
-                // Shift long key press timer started, in between release of
-                // Shift key should cancel active long shift key timer. 
-                iShiftKeypressMonitor->Cancel();
-                if (!iInputCapabilities.FepAwareTextEditor())
-                    {
-                    TKeyEvent ccpuStart = {0, EStdKeyLeftShift, 0, 0};
-                    CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKeyUp);                    
-                    }
-                }
-            else                                    // short keypress up
-                {
-                iShiftKeypressMonitor->Cancel();
-                if (!(iAknEditorFlags & EAknEditorFlagSupressShiftMenu) &&
-                    IsFlagSet(EFlagNoActionDuringShiftKeyPress) && //iCurrentFepUI->IsValidShiftKeyPress() &&
-                    !IsCcpuFlagSet(ECcpuSupressEditMenuFromShiftUp))
-                    {
-                    // Shift key is released before any other key is pressed.
-                    // Edit menu is launched if it is allowed.
-                    ClearFlag(EFlagNoActionDuringShiftKeyPress);
-                    //Check if pointer event drag is not there before launch of edit menu.
-                    if( !IsExtendedFlagSet(EExtendedFlagPointerEventTypeEDrag))
-                      	{
-                    	LaunchSelectModeMenuL();
-                    	}
-                   
-                    if (iInputCapabilities.FepAwareTextEditor())
-                        {
-                        response = EKeyWasConsumed;    
-                        }
-                    }
-                }
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (aEventCode == EEventKeyUp && 
-        EPtiKeyboardQwerty4x10 == KeyboardLayout() && FepUI())
-	    {
-	    FepUI()->HandleKeyL(EKeyLeftShift, EShortKeyPress);
-	    }
-#endif	    
-    return response;
-    }
-
-TKeyResponse CAknFepManager::HandleThai0KeyEvent(TEventCode aEventCode, TKeyPressLength aLength, 
-                                                 TBool& aThai0KeyHandling)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    aThai0KeyHandling = EFalse;
-    if(iQwertyInputMode)
-        {
-        return response;    
-        }
-   
-    if ( iLanguageCapabilities.iInputLanguageCode == ELangThai && 
-         iMode != ENumber && iMode != ENativeNumber )
-        {
-        if (!IsPredictive())
-            {
-            if (aEventCode != EEventKeyUp)
-                {
-                response = EKeyWasConsumed;
-                if ( aLength == ELongKeyPress)
-                    {
-                    if (!iLongThai0Key)
-                        {
-                        iLongThai0Key = ETrue;
-                        response = EKeyWasNotConsumed; // 0 to editor
-                        aThai0KeyHandling = ETrue;
-                        }
-                    }
-                }
-
-            else if (aEventCode == EEventKeyUp)
-                {
-                if (iLongThai0Key)
-                    {
-                    iLongThai0Key = EFalse;
-                    response = EKeyWasConsumed;
-                    }
-                else
-                    {
-                    response = EKeyWasNotConsumed; // Show Thai 0 key SCT
-                    aThai0KeyHandling = ETrue;
-                    }
-                }
-            }
-        }
-    return response;
-    }
-
-TBool CAknFepManager::HandleQwertyChrKeyEventL(TEventCode aEventCode)
-    {
-    TBool response = EFalse;
-    if ( !iQwertyInputMode || !iInputCapabilities.FepAwareTextEditor() )
-        {
-        return response;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(IsFlagSet(EFlagShiftKeyDepressed))
-        {
-        iKeyPressedDuringShift = ETrue;
-        }
-#ifdef __HALF_QWERTY_KEYPAD
-    
-        if( (aEventCode == EEventKeyUp) )
-            {
-            ClearFlag(EFlagQwertyChrKeyDepressed);
-            }
-        // Handle shift for Half Qwerty seperately
-        if( ( EPtiKeyboardHalfQwerty == KeyboardLayout() && FepUI() ) &&
-            iPtiEngine /*&&             
-            ( aEventCode == EEventKeyDown || aEventCode == EEventKeyUp ) */ && !IsFlagSet(EFlagShiftKeyDepressed))
-            {		
-
-			if( HandleChrKeyForHalfQwertyL(aEventCode) )
-				{
-				return ETrue;
-				}							
-            }
-#endif // Half Qwerty flag 
-        // This part of code for error fixing.
-        // whenever fep is Fnupper state, press of "CHR" key
-        // always launch SCT table.
-        if( (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)&&
-            (IsFlagSet(EFlagQwertyShiftMode) || IsFlagSet(EFlagLongShiftKeyPress)))
-            {
-            ClearFlag(EFlagNoActionDuringShiftKeyPress | EFlagLongShiftKeyPress | EFlagShiftKeyDepressed | EFlagQwertyShiftMode);
-            iShiftKeypressMonitor->Cancel();  
-            SetFlag(EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-            return response;
-            }
-           
-
-#endif // ITI flag
-    if (aEventCode == EEventKeyDown)
-        {
-        SetFlag(EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-        response = EFalse;
-
-        if (IsFeatureSupportedJapanese() || 
-            ( IsChineseInputLanguage() 
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-            && KeyboardLayout() == EPtiKeyboardHalfQwerty
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            ) )
-            {
-            // start timer for Chr key long pressing
-            iChrKeypressMonitor->Start(EChrKeyRepeatDelay, EChrKeyRepeatDelay, 
-                TCallBack(HandleChrKeyMonitorCallback, this));
-            }
-        }
-    else if (aEventCode == EEventKeyUp)
-        {
-        if (iChrKeypressMonitor->IsActive())
-            {
-            iChrKeypressMonitor->Cancel();
-            }
-
-        if (IsFlagSet(EFlagShiftKeyDepressed) && IsFlagSet(EFlagNoActionDuringChrKeyPress)
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		 	||
-            IsFlagSet(EFlagQwertyShiftMode)
-#endif            	
-			)
-            {
-            ClearFlag(EFlagNoActionDuringShiftKeyPress | EFlagLongShiftKeyPress | 
-                      EFlagShiftKeyDepressed | EFlagQwertyShiftMode |EFlagQwertyChrKeyDepressed);
-            iShiftKeypressMonitor->Cancel();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            iKeyPressedDuringShift = EFalse;
-#endif                 
-            UpdateIndicators();
-            // In Japanese variant, the selecting input language is unnecessary.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if (EPtiKeyboardQwerty4x10 == KeyboardLayout() || EPtiKeyboardHalfQwerty == KeyboardLayout())
-                {
-            	if (!IsFeatureSupportedJapanese() && iCurrentFepUI->IsValidShiftKeyPress())
-	                {
-#ifdef FF_DUAL_LANGUAGE_SUPPORT	                
-					// Currently dual language feature would work correctly for ITUT and Half Qwerty products 
-	                // Hence the dual language settings should also be displayed only for ITUT and Halfqwerty products
-	                if(iKeyboardType == EPtiKeyboard12Key || iKeyboardType == EPtiKeyboardHalfQwerty )
-                        LaunchDualLanguageSettingDialogL();
-                    else                      
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-                    LaunchLanguagesPopupListL();
-	                }
-                }
-            else
-            	{
-#endif            	
-            if (!IsFeatureSupportedJapanese() && iCurrentFepUI->IsValidShiftKeyPress())
-                {
-                LaunchLanguagesPopupListL();
-	                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT	                
-                }
-#endif                
-            }
-        else if (IsFlagSet(EFlagNoActionDuringChrKeyPress))
-            {
-            // pass key to Chinese UI manager in Chinese qwerty input for sct table
-            if(IsChineseInputLanguage() && iMode != ELatin)
-                {
-                FepUI()->HandleKeyL(EStdKeyLeftFunc, EShortKeyPress);
-                ClearFlag( EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress );
-                }
-            else if (Japanese())
-                {
-                if (iMode != EHiragana)
-                    {
-                    // Commit characters
-#ifdef RD_INTELLIGENT_TEXT_INPUT                    
-                	// Set the iSupressCursorMoveToEndChrKeyPressed when cursor is in 
-					// between two words and SCT is launched
-                    iSupressCursorMoveToEndChrKeyPressed = ETrue;
-#endif //RD_INTELLIGENT_TEXT_INPUT                    
-                    HandleChangeInFocus();
-                    LaunchSpecialCharacterTableL();
-                    }
-                }
-            else if ( IsAbleToLaunchSCT() )
-                {                
-#ifdef RD_INTELLIGENT_TEXT_INPUT                
-               	// Set the iSupressCursorMoveToEndChrKeyPressed when cursor is in 
-				// between two words and SCT is launched
-                iSupressCursorMoveToEndChrKeyPressed = ETrue;
-#endif //RD_INTELLIGENT_TEXT_INPUT                
-                HandleChangeInFocus();
-                LaunchSpecialCharacterTableL();
-                }
-            else if(IsFlagSet(EFlagQwertyChrKeyDepressed))
-            	{
-					 ClearFlag(EFlagQwertyChrKeyDepressed);
-            	}
-            }
-        else
-            {
-            FepUI()->ExpireMultitapTimer();
-            ClearFlag(EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-            
-            response = ETrue;
-            } 
-        }
-    return response;
-    }
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD    
-TKeyResponse CAknFepManager::HandleChrKeyForHalfQwertyL( TEventCode aEventCode)
-	{
-	if ((IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction)) && !(EPtiCaseFnUpper == iPtiEngine->Case() || EPtiCaseFnLower == iPtiEngine->Case()))
-        {
-        iPtiEngine->CancelTimerActivity();
-        }
-	// in functionized mode the chr key is mapped to specific chars
-	// and should therefore be handled by the states
-	if ( EPtiCaseFnUpper == iPtiEngine->Case() || EPtiCaseFnLower == iPtiEngine->Case() || IsReverseFnkeyInput())
-		{		
-		if( aEventCode == EEventKeyDown && ( EditorHasFreeSpace() ||
-    		  IsFlagSet( EFlagInsideMultitapInlineEditingTransaction )))
-			{
-			FepUI()->HandleKeyL( EStdKeyLeftFunc, 
-										 EShortKeyPress );			
-			}
-		return EKeyWasConsumed;
-		}
-	// in non-functionized predictive mode,
-	// a long key press of the chr key should produce the SCT
-	// a short key press should produce the candidate list
-	if ( ( iWesternPredictive || IsChineseInputLanguage() ) /*&& 
-	   ( iMode != EPinyin && iMode != EStroke && iMode != EZhuyin )*/ )
-		{						
-		
-		if(!iChrKeypressMonitor->IsActive())
-			{
-			// this monitors long key presses of chr key
-			// the framework does not give us the iRepeats info 
-			// for chr key for some reason
-			iChrKeypressMonitor->Start(EHalfQwertyChrKeyRepeatDelay, EHalfQwertyChrKeyRepeatDelay, 
-                TCallBack(HandleChrKeyMonitorCallback, this));			
-			}
-
-		if( aEventCode != EEventKeyUp )
-			{
-			SetFlag( EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-			return EKeyWasConsumed;
-			}
-
-		if ( aEventCode == EEventKeyUp && IsFlagSet(EFlagNoActionDuringChrKeyPress) )
-			{
-			if(!iChrLongKeyPress )
-				{							
-				// if we have come here it's a short press
-				// the flag EFlagNoActionDuringChrKeyPress is cleared in the timer callback
-				if(!IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) || IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-					{
-					// when not in inline editing mode,
-					// chr key should produce the SCT
-					if ( !IsChineseInputLanguage() )
-						{
-						LaunchSpecialCharacterTableL();	
-						}
-					else
-						{
-						FepUI()->HandleKeyL( EStdKeyLeftFunc, 
-								 EShortKeyPress );
-						}
-					}				
-				ClearFlag( EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);			
-
-				iChrKeypressMonitor->Cancel();			
-
-				TInt wordToFocus = KWordToFocusInCandidateList;
-				TInt numberOfCandidates = iPtiEngine->NumberOfCandidates();
-				if (numberOfCandidates > 1)
-				{
-				wordToFocus = KWordToFocusInCandidateList;
-				}
-				LaunchCandidatePopupListL(wordToFocus);
-
-				return EKeyWasConsumed;
-				}
-			else 
-				{
-
-		    	
-		    	// Cancel the timer    	
-		    	iChrKeypressMonitor->Cancel();
-		    	
-		    	// commit the characters
-	        	HandleChangeInFocus();
-
-		    	// Clear the chr key depressed flag
-		    	ClearFlag( EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-		        // launch the special character table
-		        iChrLongKeyPress = EFalse;
-		        
-		        if ( IsAbleToLaunchSCT() )
-		            {
-		            LaunchSpecialCharacterTableL();
-		            }
-
-		        return EKeyWasConsumed;
-				}	
-			}
-		else
-			{
-			return EKeyWasNotConsumed;
-			}
-		}
-	return EKeyWasNotConsumed;
-	}			
-#endif //__HALF_QWERTY_KEYPAD 
-#endif //RD_INTELLIGENT_TEXT_INPUT				
-
-TKeyResponse CAknFepManager::HandleQwertyControlKeyEventL(const TKeyEvent& aKeyEvent, 
-                                                          TEventCode aEventCode)
-    {
-    TKeyResponse response = EKeyWasConsumed;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-     if (EPtiKeyboardQwerty4x10 == KeyboardLayout())
-     {
-     	if( iCurrentFepUI && !iCurrentFepUI->IsValidShiftKeyPress() && aEventCode == EEventKeyUp )
-     	{
-     	    FepUI()->HandleKeyL(EKeyLeftCtrl, EShortKeyPress);    
-     		return EKeyWasConsumed;
-     	}
-     }
-#endif     
-
-    // need to ignore [Ctrl] + the following simbol keys
-    // because FEP doesn't consume [Ctrl] combination keys.
-    if (Japanese() && aEventCode == EEventKey)
-        {
-        TBool comsume = EFalse;
-        switch (aKeyEvent.iScanCode)
-            {
-            case EStdKeyNkpPlus:
-            case EPtiKeyQwertyPlus:
-            case EPtiKeyQwertyMinus:
-            case EPtiKeyQwertyComma:
-            case EPtiKeyQwertySemicolon:
-            case EPtiKeyQwertyFullstop:
-            case EPtiKeyQwertyHash:
-            case EPtiKeyQwertySlash:
-            case EPtiKeyQwertyApostrophe:
-            case EPtiKeyQwertySpace:
-                comsume = ETrue;
-                break;
-            default:
-                break;
-            }
-        if (comsume)
-            {
-            return EKeyWasConsumed;
-            }
-        }
-
-#ifdef RD_SCALABLE_UI_V2
-    if (aKeyEvent.iModifiers & EModifierCtrl
-    && (aKeyEvent.iScanCode == EPtiKeyQwertyC || aKeyEvent.iScanCode == EPtiKeyQwertyV || 
-        aKeyEvent.iScanCode == EPtiKeyQwertyX))
-        {
-        SendEventsToPluginManL( EPluginSyncFepAwareText );
-        // Let copy / cut / paste events to flow through.
-        response = EKeyWasNotConsumed;
-        }          
-#endif         
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    // Ctrl combinations which affect the editor state, must commit the current inline edit.
-    // Otherwise the currently active inline word might be lost.
-    if ( iWesternPredictive && iQwertyInputMode && IsFlagSet(EFlagInsideInlineEditingTransaction) )
-        {
-        switch (aKeyEvent.iScanCode)
-            {
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-            case EStdKeyLeftArrow:
-            case EStdKeyRightArrow:
-            case EPtiKeyQwertyC:
-            case EPtiKeyQwertyV:
-            case EPtiKeyQwertyX:
-            case EPtiKeyQwertyA:
-                iPtiEngine->CommitCurrentWord();
-                TryCloseUiL();        
-                break;
-            default:
-                break;
-            }
-        }
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-    if (aEventCode != EEventKeyUp)
-        {
-        return EKeyWasNotConsumed;
-        }
-    
-    if(iQwertyInputMode)
-        {
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Query ptiEngine to know if the scancode maps to EPtiKeyQwertyC, 
-        // EPtiKeyQwertyV or EPtiKeyQwertyX.
-        // we should not always rely on scancode as products may change it, while
-        // still having the 'C', 'V' and 'X' mappings
-        
-        TBuf<32> mapData;              
-        iPtiEngine->MappingDataForKey((TPtiKey)aKeyEvent.iScanCode, mapData, EPtiCaseUpper); 
-        
-        if( mapData.Length() > 0 )    
-        	{
-        	if( mapData[0] == EPtiKeyQwertyC || mapData[0] == EPtiKeyQwertyV ||
-        	mapData[0] == EPtiKeyQwertyX )
-        		{
-        		// Let copy / cut / paste events to flow through.
-            	response = EKeyWasNotConsumed;
-        		}
-        	}
-#else     
-        if (aKeyEvent.iScanCode == EPtiKeyQwertyC || aKeyEvent.iScanCode == EPtiKeyQwertyV ||
-            aKeyEvent.iScanCode == EPtiKeyQwertyX)
-            {
-            // Let copy / cut / paste events to flow through.
-            response = EKeyWasNotConsumed;
-            }
-#endif
-            
-            
-        if (aKeyEvent.iScanCode == EStdKeyRightShift || aKeyEvent.iScanCode == EStdKeyLeftShift
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-			||
-            IsFlagSet(EFlagQwertyShiftMode)
-#endif //RD_INTELLIGENT_TEXT_INPUT
-			)
-            {
-            if(!iInputCapabilities.FepAwareTextEditor())
-                {
-                response = EKeyWasNotConsumed;
-                }
-            else
-                {
-                SendEventsToPluginManL( EPluginCloseMode, EFalse );
-                if ( iMode != ENumber && iMode!= ENativeNumber )
-                    {
-                    iModeBefore = iMode;
-                    }
-#ifdef RD_HINDI_PHONETIC_INPUT  
-                           
-                if(iSharedDataInterface->InputTextLanguage() == KLangHindiPhonetic)    
-                    {
-                    TryChangePhoneticModeL();   
-                    }
-                else
-                    {
-#endif                  
-                    if((!(IsOnlyNumericPermitted() || 
-                         (iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))) &&
-                       TAknFepUiIndicInputManager::IsIndicLangauge(
-                         (TLanguage)iSharedDataInterface->InputTextLanguage()))
-                        {
-                        if(iLanguageCapabilities.iInputLanguageCode == ELangEnglish)
-                            {
-                            ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-                            }
-                        else
-                            {
-                            ChangeInputLanguageL(ELangEnglish); 
-                            }   
-                        }
-                    else
-                        {
-                        TryIncrementModeChineseQwertyL(iMode);  
-                        }  
-#ifdef RD_HINDI_PHONETIC_INPUT        
-                    }   
-#endif
-                }
-            ClearFlag(EFlagShiftKeyDepressed);
-            if ( !IsFlagSet(EFlagNoActionDuringShiftKeyPress) ||
-                (IsFlagSet(EFlagNoActionDuringShiftKeyPress) && IsFlagSet(EFlagLongShiftKeyPress)) )
-                {
-                ClearFlag(EFlagQwertyShiftMode);
-                }
-            if (IsFlagSet(EFlagLongShiftKeyPress))  //long keypress up
-                {
-                ClearFlag(EFlagLongShiftKeyPress);
-                }
-            else                                    // short keypress up
-                {
-                iShiftKeypressMonitor->Cancel();
-                }
-            ClearFlag( EFlagNoActionDuringShiftKeyPress );
-            UpdateIndicators();
-            }
-        else if(aKeyEvent.iScanCode == EStdKeySpace) // switch between last used Chinese input mode and English
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Predictive QWERTY (XT9) changes ---->
-            // Toggle the predictive mode with ctrl+space
-            if ( (iPermittedInputModes & EAknEditorTextInputMode) &&
-                 !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-                 iMode == ELatin &&
-                 iLanguageCapabilities.iSupportsWesternQwertyPredictive )
-                {
-                if (iWesternPredictive)
-                    {
-                    //ProcessCommandL(EAknCmdT9PredictiveT9Off);
-                    SendEventsToPluginManL( EPluginCloseMode, EFalse );
-                    //HandleChangeInFocus();                    
-                    if (iMode != ELatin)
-                        {
-                        TryChangeModeL(ELatin);
-                        }
-                    else
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                        RemoveSuggestedAdvanceCompletionL();
-#endif // RD_INTELLIGENT_TEXT_INPUT
-                        CommitInlineEditL();
-                        }
-                    SetCcpuFlag(ECcpuStataCommitPredictiveWord);
-                    SetWesternPredictive(EFalse);
-                    HandleChangeInFocus();
-                    }
-                else
-                    {
-                    //ProcessCommandL(EAknCmdMultitapPredictiveT9On);
-                    SendEventsToPluginManL( EPluginCloseMode, EFalse );
-                    //HandleChangeInFocus();
-                    SetWesternPredictive(ETrue);
-                    TryCloseUiL();
-                    TryChangeModeL(ELatin);
-     				}              
-                // Reset the function key state,if predictive mode is cahnged.
-				if (iFnKeyManager)
-					{
-					iFnKeyManager->ClearFnKeyState();
-					}
-                }
-            else // Predictive QWERTY (XT9) changes <----
-                {
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            if(iMode != iModeBefore && iMode != ENumber && iMode != ENativeNumber )
-                {
-                TInt mode = iMode;
-                if(iMode != ELatin && iModeBefore != ELatin) // more than one Chinese input modes
-                    {
-                    TryChangeModeL(ELatin);
-                    }
-                else
-                    {
-                    TryChangeToModeBeforeL();
-                    }
-                iModeBefore = mode; // deposit previous input mode
-                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            } 
-#ifdef RD_INTELLIGENT_TEXT_INPUT //// Predictive QWERTY (XT9) changes: open the edit menu with Fn+space ---->
-        else if (aKeyEvent.iScanCode == EStdKeyLeftFunc)
-            {
-            LaunchSelectModeMenuL();
-            } // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        }       
-
-    if (IsCcpuFlagSet(ECcpuStatePosted))           
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Query ptiEngine to know if the scancode maps to EPtiKeyQwertyC, 
-        // EPtiKeyQwertyV or EPtiKeyQwertyX.
-        // we should not always rely on scancode as products may change it, while
-        // still having the 'C', 'V' and 'X' mappings
-        
-        TBuf<32> mapData;              
-        iPtiEngine->MappingDataForKey((TPtiKey)aKeyEvent.iScanCode, mapData, EPtiCaseUpper); 
-        
-        if( mapData.Length() > 0 )    
-        	{
-        	if( mapData[0] == EPtiKeyQwertyC || mapData[0] == EPtiKeyQwertyX )
-        		{
-	            // Let copy / cut events to flow through.
-	            response = EKeyWasNotConsumed;
-	            }
-        	}
-#else
-        if (aKeyEvent.iScanCode == EPtiKeyQwertyC || aKeyEvent.iScanCode == EPtiKeyQwertyX)          
-            {
-            // Let copy / cut events to flow through.
-            response = EKeyWasNotConsumed;
-            }        
-#endif   
-        ResetCcpuFlags();               
-        }
-
-
-//Removed as part of the fix STAA-7FXCTK 
-
-/*    if (EPtiKeyboardQwerty4x10 == KeyboardLayout())
-    	{
-    	FepUI()->HandleKeyL(EKeyLeftCtrl, EShortKeyPress);    
-   	}*/
-
-
-    return response;
-    }
-
-TBool CAknFepManager::HandleQwertyKeyEventL(const TKeyEvent& aKeyEvent, TKeyResponse& aResponse)
-    {
-    TBool keyHandled = EFalse;
-    aResponse = EKeyWasNotConsumed;
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-    if(iKeyBackSpaceHit && (EKeyBackspace != aKeyEvent.iCode || EStdKeyBackspace != aKeyEvent.iScanCode))
-        	iKeyBackSpaceHit = 0;
-        
-    if(IsMfneEditor())
-        {
-        // multi-field editors need the key event to be sent to them directly
-        // therefore not consuming it here
-        return EFalse;
-        }
-
-    if(IsFlagSet(EFlagShiftKeyDepressed))
-        {
-        iKeyPressedDuringShift = ETrue; 
-        }  
-  // This part of code for error fixing
-    // After short pressing of Fn/shift, if user press enter key, delete key
-    // it will reset the shift key and Fn key state.
-    if( EKeyEnter == aKeyEvent.iCode || EStdKeyEnter == aKeyEvent.iScanCode|| 
-        EKeyBackspace == aKeyEvent.iCode || EStdKeyBackspace == aKeyEvent.iScanCode)
-        {
-		// if the shift key is still depressed, 
-		// don't clear the qwerty shift mode
-        if(!IsFlagSet(EFlagShiftKeyDepressed))
-        	ClearFlag(EFlagQwertyShiftMode);     
-        if( iFnKeyManager->FnKeyState() == CAknFepFnKeyManager::EFnKeyNext )
-            {
-            iFnKeyManager->ClearFnKeyState();
-            }
-        }
-#endif    
-    
-    if ( iQwertyInputMode && 
-         ( EditorHasFreeSpace() || 
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__         
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-           KeyEventWillReplaceCharacter( aKeyEvent ) ||
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__         
-           ( Japanese() && iFepManState == EAknFepStateUIActive ) ) )
-        {
-        if (IsFlagSet(EFlagPassNextKey))
-            {
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__            
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Don't clear the pass next flag yet on the simulated "rollback key"
-            // used with secret editors, the actual key code to be entered to the
-            // editor will follow next.
-            if ( aKeyEvent.iCode != EKeyF20 )
-#endif // RD_INTELLIGENT_TEXT_INPUT          
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__          
-            ClearFlag(EFlagPassNextKey);
-            return ETrue;   
-            }        
-                 
-        TInt keyScanCode = aKeyEvent.iScanCode;
-#if defined(__WINS__)
-        if ( keyScanCode == EStdKeyNkpPlus )
-            {
-            // Workaround solution for the qwerty '+' key in emulator environment.
-            // I did not find a way how to to configure epoc_352x416_Qwerty.ini to send '+' keyevent.
-            keyScanCode = 0x2b;  // '+' key.
-            }
-#endif                 
-        TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TInt keyLayout =iSharedDataInterface->KeyboardLayout();
-        if (IsOnlyNumericPermitted() && phoneIdle &&                
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-            !iIsReverseFnkeyInput &&
-#endif
-            (keyLayout != EPtiKeyboardHalfQwerty ))                
-#else
-        if (IsOnlyNumericPermitted() && phoneIdle)                
-#endif
-            {
-            return ETrue;          
-            }
-        //if this SpecialNumeric editor, do not consume event.    
-        if (IsOnlyNumericPermitted() && IsSpecialNumericEditor())
-        	{
-        	return EFalse;
-        	}    
-      
-        
-#ifdef FF_HOME_SCREEN_EASY_DIALING
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        
-        // This piece of code part of error fixing
-        // The Fep will insert the char, if Phone application launch the
-        // Phone number acquire editor in idle mode
-        // Specially Fep does not maintain Fn key state for non Fepware editor.
-        // So, Intermediate state of FnKey like FnNext will not work
-        // Hold on Fn key modify the modifier of of key event.
-        const TBool fnDown = (aKeyEvent.iModifiers & EModifierRightFunc);        
-        if( phoneIdle && fnDown && iFnKeyManager )
-            {
-            iFnKeyManager->SetFnKeyState(CAknFepFnKeyManager::EFnKeyDown);
-            SetCase((TCase)EFnKeyLowerCase);
-            }
-#endif  // RD_INTELLIGENT_TEXT_INPUT
-#endif  // FF_HOME_SCREEN_EASY_DIALING
-        
-       
-        const TBool shifted = (aKeyEvent.iModifiers & (EModifierLeftShift | 
-                               EModifierRightShift | EModifierShift));
-        
-        // This is needed for forcing shif state if this is the first key press in
-        // phone idle.    
-        if (shifted && phoneIdle)                    
-            {
-            SetFlag(EFlagQwertyShiftMode);
-            }                           
-
-            
-        if (aKeyEvent.iRepeats == 1)
-            {
-            iKeyRepeat = ELongKeyPress;
-            }
-        else
-            {
-            iKeyRepeat = EShortKeyPress;
-            }
-                                  
-        if ( IsFlagSet(EFlagShiftKeyDepressed) &&
-            IsChineseInputLanguage() &&
-            keyScanCode == EPtiKeyQwertySpace) 
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            ClearFlag(EFlagQwertyShiftMode);
-            ClearFlag(EFlagLongShiftKeyPress);
-            SetChangeModeByShiftAndSpace( ETrue );
-            TryIncrementChineseModeForQwertyL(iMode);
-            keyHandled = ETrue;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		else
-            {
-	            if(iKeyRepeat == ELongKeyPress && iPtiEngine->CurrentWord().Length() == EMaximumFepWordLength)
-	            {
-	            	keyHandled = ETrue;
-	            }
-	            else
-	            {
-	            	keyHandled = FepUI()->HandleKeyL(keyScanCode, iKeyRepeat);     
-					if( EPtiKeyboardHalfQwerty == KeyboardLayout() 
-	            			&& iWesternPredictive
-	            			&& iCaseMan->CurrentCase() != EAknEditorUpperCase )
-	            		{
-	            		ClearFlag(CAknFepManager::EFlagChangeInputMode);
-	            		}
-	            	if ( keyHandled && iFepManState == EAknFepStateUIActive 
-	            			&& (iMode == EPinyin || iMode == EZhuyin || iMode == EStroke || iMode == ECangJie) )
-	            		{
-	            		if ( EditorState() )
-	            			{
-		            		EditorState()->SetFlags( EditorState()->Flags() | EAknEditorFlagChinesePopup );
-	            			}
-	            		}
-	            }
-            }
-#else
-        if (IsChineseInputLanguage() && keyScanCode == EStdKeyBackspace)
-            {
-            keyHandled = FepUI()->HandleKeyL(keyScanCode, iKeyRepeat);
-            }
-            else
-            {
-            keyHandled = FepUI()->HandleKeyL(keyScanCode, EShortKeyPress);      
-            }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        
-        if (keyHandled)
-            {
-            aResponse = EKeyWasConsumed;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Predictive QWERTY changes ---->
-            ShowExactWordPopupIfNecessaryL();
-            // Predictive QWERTY changes <----
-            }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-            // The indicators should be updated only if the key was handled. Otherwise
-            // the shift-copy-pasting will mess up the indicators.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TInt language = iSharedDataInterface->InputTextLanguage();
-    TBool IsChineseInput = language == ELangTaiwanChinese||
-                           language == ELangHongKongChinese ||
-                           language == ELangPrcChinese;
-#endif      
-       if ( !shifted  )
-            {           
-#ifdef RD_INTELLIGENT_TEXT_INPUT     
-            if(IsChineseInput && (iKeyboardType!= EPtiKeyboardHalfQwerty)) 
-                {
-                ClearFlag(EFlagQwertyShiftMode);
-                UpdateIndicators();      
-                }
-            else if( keyHandled )
-                {
-#endif                 
-                ClearFlag(EFlagQwertyShiftMode);
-                UpdateIndicators();
-                
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                }
-#endif
-            } 
-              
-#ifdef RD_SCALABLE_UI_V2
-    if ( ( (keyScanCode >= EPtiKeyQwertyA && keyScanCode <= EPtiKeyQwertyZ) ||
-         (keyScanCode >= EPtiKeyQwerty0 && keyScanCode <= EPtiKeyQwerty9) ||
-         (keyScanCode == EStdKeyEnter) ||
-         (keyScanCode == EPtiKeyQwertyPlus) ||
-         (keyScanCode == EPtiKeyQwertyMinus) ||
-         (keyScanCode == EPtiKeyQwertyComma) ||
-         (keyScanCode == EPtiKeyQwertySemicolon) ||
-         (keyScanCode == EPtiKeyQwertyFullstop)  ||
-         (keyScanCode == EPtiKeyQwertyHash)  ||
-         (keyScanCode == EPtiKeyQwertySlash) ||
-         (keyScanCode == EPtiKeyQwertyApostrophe) )
-         && !( iFepPluginManager && iFepPluginManager->EnableITIOnFSQ() ) )          
-        {
-        SendEventsToPluginManL( EPluginCloseMode, EFalse );
-        //iFepPluginManager->ClosePluginInputModeL(ETrue);
-        }
-    else if( keyHandled )
-        {
-        //for QWERTY, number only, the number is send to editor
-        //bypass FEP
-        SendEventsToPluginManL( EPluginSyncFepAwareText ); 
-        //iFepPluginManager->SyncFepAwareText();
-        }
-#endif
-        }
-        
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-
-        TInt lang = iSharedDataInterface->InputTextLanguage();
-
-        if(lang == ELangTaiwanChinese||
-           lang == ELangHongKongChinese ||
-           lang == ELangPrcChinese)    
-            {        
-            if( iPtiEngine->CurrentLanguage()->LanguageCode()== ELangEnglish 
-                && IsFlagSet(EFlagQwertyShiftMode)
-                && !IsFlagSet(EFlagLongShiftKeyPress))
-                {
-                ClearFlag(EFlagQwertyShiftMode); 
-                UpdateIndicators();  
-                }
-            }
-#endif // RD_INTELLIGENT_TEXT_INPUT  
-    iKeyRepeat = EShortKeyPress;        
-    return keyHandled;
-    }
-
-
-
-void CAknFepManager::CancelTransaction()
-    {
-    if (iInputCapabilities.FepAwareTextEditor() && IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        CancelInlineEdit();
-        }
-    }
-
-void CAknFepManager::IsOnHasChangedState()
-    {
-    }
-
-void CAknFepManager::OfferKeyEventL(TEventResponse& /*aEventResponse*/, 
-                                    const TKeyEvent& /*aKeyEvent*/, 
-                                    TEventCode /*aEventCode*/)
-    {
-    }
-
-void CAknFepManager::OfferPointerEventL(TEventResponse& /*aEventResponse*/, 
-                                        const TPointerEvent& /*aPointerEvent*/, 
-                                        const CCoeControl* /*aWindowOwningControl*/)
-    {
-    }
-
-void CAknFepManager::OfferPointerBufferReadyEventL(TEventResponse& /*aEventResponse*/, 
-                                                   const CCoeControl* /*aWindowOwningControl*/)
-    {
-    }
-
-TInt CAknFepManager::NumberOfAttributes() const
-    {
-    return 0;
-    }
-
-TUid CAknFepManager::AttributeAtIndex(TInt /*aIndex*/) const
-    {
-    return KNullUid;
-    }
-
-void CAknFepManager::WriteAttributeDataToStreamL(TUid /*aAttributeUid*/, RWriteStream& /*aStream*/) const
-    {
-    }
-
-void CAknFepManager::ReadAttributeDataFromStreamL(TUid /*aAttributeUid*/, RReadStream& /*aStream*/)
-    {
-    }
-
-void CAknFepManager::HandleGainingForeground()
-    {
-    if (iFepFullyConstructed)
-        {
-        ClearFlag(EFlagRemoveMatchesMenuItem);
-        ClearCcpuFlag(ECcpuStateHashDown | ECcpuStateSelectionEventPosted | 
-                      ECcpuStateEdwinInSelectionMode);
-        TRAPD(err, iPtiEngine->HandleCommandL(EPtiCommandReloadLearningInfo));
-        if (err != KErrNone)
-            {
-            CleanUpFep();
-            }
-        }
-
-#ifdef RD_SCALABLE_UI_V2        
-    CCoeControl* focusCtrl = static_cast<const CCoeAppUi*>(CCoeEnv::Static()->AppUi())->TopFocusedControl(); 
-    iGainForeground = ETrue;
-    /*if( iLoseForeAndGainFocus )
-        {
-        SendEventsToPluginManL( EPluginFocusChanged, iGainForeground );
-        }*/
-    if(focusCtrl && focusCtrl->IsFocused())
-        {
-        if(GetForegroundTaskAppWgId() == CCoeEnv::Static()->RootWin().Identifier())
-            //SendEventsToPluginManL( EPluginFocusChanged, iGainForeground );
-            TRAP_IGNORE(SendEventsToPluginManL( EPluginForegroundChanged, ETrue));            
-        }
-    else
-        {
-        if (iFepPluginManager) 
-            {
-            iFepPluginManager->HandleiDimGainForeground(ETrue);   
-            }            
-        }
-#endif // RD_SCALABLE_UI_V2        
-    }
-
-void CAknFepManager::HandleLosingForeground()
-    {
-    if (iFepFullyConstructed)
-        {
-        // Forget the shift state on FEP switch (i.e. when application goes to background)
-        ClearFlag(EFlagQwertyShiftMode | EFlagShiftKeyDepressed | 
-                  EFlagLongShiftKeyPress | EFlagNoActionDuringShiftKeyPress);
-        }	
-    if (Japanese())
-        {
-        TRAP_IGNORE(TryCloseUiL());
-        }
-    if (IsChineseInputLanguage())
-        {
-        TRAP_IGNORE(TryCloseUiL());
-        }
-        
-#ifdef RD_SCALABLE_UI_V2     
-    iGainForeground = EFalse;
-    //SendEventsToPluginManL( EPluginFocusChanged, iGainForeground );
-    TRAP_IGNORE(SendEventsToPluginManL( EPluginForegroundChanged, EFalse));            
-#endif // RD_SCALABLE_UI_V2    
-    }
-
-void CAknFepManager::HandleChangeInFocus()
-    {
-    TRAPD(err, HandleChangeInFocusL());
-    if (err != KErrNone)
-        {
-        CleanUpFep();
-        }
-    }
-
-void CAknFepManager::HandleDestructionOfFocusedItem()
-    {
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        iFocusedItemDestroy = ETrue;
-        if ( iFepManState == EAknFepStateUIActive )
-            {            
-            TRAP_IGNORE(SendEventsToPluginManL( EPluginFocusItemDestroy ));  
-            if (Japanese() && iAknEditorFlags & EAknEditorFlagFindPane)
-                {
-                // In case of Find pane while inputting japanese characters,
-                // No update or commit characters.
-                iPtiEngine->ClearCurrentWord();
-                }
-
-        #ifdef RD_SCALABLE_UI_V2
-            // For addition of ITI features on FSQ, 
-            // need to restore some values stored before opening FSQ
-            // When go into this section, 
-            // touch ui won't be closed by ClosePluginInputUiL,
-            // but need to restore fep state here            
-            if ( iFepPluginManager )
-            	{
-            	iFepPluginManager->ResetItiStateL();
-            	}
-        #endif
-            // Close UI
-            FepUI()->CloseUI();
-            }
-        else
-            {            
-            TRAP_IGNORE(SendEventsToPluginManL( EPluginFocusItemDestroy, ETrue ));  
-            }
-        iFocusedItemDestroy = EFalse;
-        }
-
-    if ( !(IsFlagSet(EFlagForegroundUIComponentVisible) ||
-        IsFlagSet(EFlagMenuPaneVisible)) )
-        {
-        iLanguageCapabilities.iNumericEditorDigitType = EDigitTypeUnknown;
-        //UpdateLocalDigitMode();
-        }
-    if(IsFlagSet(EFlagForegroundUIComponentVisible))
-        {
-        ClearFlag(EFlagForegroundUIComponentVisible);
-        }
-
-    ClearFlag( EFlagInsideInlineEditingTransaction |
-        EFlagInsideMultitapInlineEditingTransaction |
-        EFlagLineFeedCharacter | EFlagNoMatches );
-
-    iInputCapabilities = NULL;
-    }
-
-void CAknFepManager::HandleAknEdwinStateEventL(CAknEdwinState* aAknEdwinState, 
-                                               EAknEdwinStateEvent aEventType)
-    {
-    if(aEventType == EAknEdwinDestroy)
-    	{
-		// Reset the last focus editor when destroy it.
-        if ( aAknEdwinState == iLastFocusedEditor )
-            {
-            iLastFocusedEditor->SetObserver( NULL );
-            iLastFocusedEditor = NULL;
-            }
-        
-        // Whenever the editor is destroyed, we destroy all the UI components we launched
-        if(iFepAwareDialogParentEditor == NULL || 
-        		iFepAwareDialogParentEditor == aAknEdwinState)
-        	{
-            // EExtendedFlagEdwinEditorDestroyed flag is used to leave once the dialog is closed.
-            SetExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-            // Delete any candidate popup is launched
-            if(iCandidatePopup)
-                {
-                delete iCandidatePopup;
-                iCandidatePopup = NULL;
-                }        
-            // Delete anu UI components launched by Fep.
-            iUiInterface->DeleteDialogs();
-        	}
-    	}
-    if ( IsFepAwareTextEditor() )
-        {
-        CAknEdwinState* editorState = EditorState();
-        if ( editorState != aAknEdwinState || !iFepFullyConstructed )
-            {
-            // FEP state update is not needed because editor state of non-focused
-            // editor was changed.
-            return;
-            }
-
-        switch (aEventType)
-            {
-            case EAknEdwinStateInputModeUpdate:
-                {
-                TUint currentInputMode = editorState->CurrentInputMode();
-                if ( EditorModeFromFepMode(iMode) != currentInputMode )
-                    {
-                    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-                        {
-                        TryRemoveNoMatchesIndicatorL();
-                        }
-                    UpdateCbaL(NULL);
-                    TryCloseUiL();
-                    ConfigureFEPFromEditorStateL();
-                    }
-                }
-                break;
-            case EAknEdwinStateCaseModeUpdate:
-                {
-                TInt currentCaseMode = editorState->CurrentCase();
-                if ( currentCaseMode != iCaseMan->CurrentCase() )
-                    {
-                    iCaseMan->SetCurrentCase(currentCaseMode);
-                    }
-                }
-                break;
-            case EAknEdwinStateLocalLanguageUpdate:
-                {
-                TLanguage localLanguage = ELangTest;
-                if (GetLocalLanguage( localLanguage ) )
-                    {
-                    iLanguageCapabilities.iLocalInputLanguageInUse = ETrue;
-                    if ( localLanguage != iLanguageCapabilities.iInputLanguageCode )
-                        {
-                        ChangeInputLanguageL(localLanguage);
-                        }
-                    }
-                }
-                break;
-            case EAknEdwinStateFlagsUpdate:
-                {
-                TInt oldEditorFlags = iAknEditorFlags;
-                if(iAknEditorFlags != editorState->Flags())
-                    {
-                    iAknEditorFlags = editorState->Flags();
-                    UpdateLocalDigitMode();
-                    }
-                if ( iAknEditorFlags != oldEditorFlags )
-                    {
-                    if ( (iAknEditorFlags & EAknEditorFlagNoT9) != 
-                         (oldEditorFlags & EAknEditorFlagNoT9))
-                        {
-                        if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-                            {
-                            TryRemoveNoMatchesIndicatorL();
-                            }
-                        UpdateCbaL(NULL);
-                        TryCloseUiL();
-                        ConfigureFEPFromEditorStateL();
-                        }
-
-                    if ( (iAknEditorFlags & EAknEditorFlagNoEditIndicators) != 
-                         (oldEditorFlags & EAknEditorFlagNoEditIndicators))
-                        {
-                        // We only need to update indicators when EAknEditorFlagNoEditIndicators was modified.
-                        // Current Fep state is not lost.
-                        UpdateIndicators();
-                        }
-
-                    if ( (iAknEditorFlags & EAknEditorFlagFixedCase) != 
-                         (oldEditorFlags & EAknEditorFlagFixedCase))
-                        {
-                        // We only need to update EFlagSupressAutoUpdate flag when the
-                        // EAknEditorFlagFixedCase was modified.
-                        // Current Fep state is not lost.
-                        if (iAknEditorFlags & EAknEditorFlagFixedCase)
-                            {
-                            SetFlag(EFlagSupressAutoUpdate);
-                            }
-                        else
-                            {
-                            ClearFlag(EFlagSupressAutoUpdate);
-                            }
-                        }
-                    }
-                }
-                break;
-            case EAknEdwinStateEventStateUpdate:
-                {
-                // Feps state is reseted and new state is fetched completelly from editor state.
-                if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                    TryRemoveNoMatchesIndicatorL();
-                    }
-                UpdateCbaL(NULL);
-                TryCloseUiL();
-                ConfigureFEPFromEditorStateL();
-                }
-                break;           
-            case EAknSyncEdwinState:
-#ifdef RD_SCALABLE_UI_V2
-                 if ( !IsCcpuFlagSet(ECcpuStateIgnoreNextEdwinSyncEvent) && iFepPluginManager &&
-                     iFepPluginManager->PluginInputMode() == EPluginInputModeNone )
-#else
-                 if ( !IsCcpuFlagSet(ECcpuStateIgnoreNextEdwinSyncEvent) )
-#endif                     
-                     {
-                     HandleChangeInFocusL();                        
-                     }
-                 else
-                    {
-                    ClearCcpuFlag(ECcpuStateIgnoreNextEdwinSyncEvent);
-                    }
-                 break;  
-                 
-#ifdef RD_SCALABLE_UI_V2
-            case EAknActivatePenInputRequest:
-                SendEventsToPluginManL( EPluginEditorActivate );
-                break;
-            case EAknClosePenInputRequest:
-                if ( iFepPluginManager )
-                    {
-                    iFepPluginManager->ClosePluginInputModeL( EFalse );
-                    }
-                break;
-            case EAknEdwinStatePromptUpdate:
-                SendEventsToPluginManL( EPluginPromptChanged ); 
-                break;
-#endif // RD_SCALABLE_UI_V2                
-            case EAknCursorPositionChanged:
-#ifdef RD_SCALABLE_UI_V2  
-                SendEventsToPluginManL( EPluginSyncFepAwareText );   
-                HandleCopyCutStateL();    
-#endif
-                // whenever focus cahnged happen, internally
-                // editor treat cursorposition change.
-                // In between, if editor context not in inline edit state.
-                // Try to update the case editor gets the focus, and editor
-                // context come in inline state.                
-				//iCaseMan->UpdateCase(ENullNaviEvent);	
-                break;
-
-            default:
-                break;
-            }
-        }
-    }
-
-
-CAknExtendedInputCapabilities::TEditorType CAknFepManager::EditorType() const
-    {
-    MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-
-    if ( mop )
-        {
-        CAknExtendedInputCapabilities* extendedInputCapabilities = 
-        mop->MopGetObject( extendedInputCapabilities );
-
-        if ( extendedInputCapabilities && iInputCapabilities.FepAwareTextEditor() ) 
-            {
-            TInt type = extendedInputCapabilities->EditorType();                                     
-            return static_cast<CAknExtendedInputCapabilities::TEditorType>( type );
-            }
-        }
-        
-    return CAknExtendedInputCapabilities::EUndefined;
-    }
-
-TUint CAknFepManager::MIDPConstraint() const
-	{
-	TUint ConstraintValue=0xFFFFFFFF;
-	MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-	
-	if ( mop )
-		{
-		CAknExtendedInputCapabilities* extendedInputCapabilities = 
-        mop->MopGetObject( extendedInputCapabilities );
-		if ( extendedInputCapabilities && iInputCapabilities.FepAwareTextEditor() ) 
-			{
-			ConstraintValue = extendedInputCapabilities->MIDPConstrainst();
-			}
-		}
-		return ConstraintValue;
-	}
-    
-TBool CAknFepManager::IsSpecialNumericEditor()
-	{
-	TBool JavaNumericEditor = EFalse;
-	TUint ConstraintValue = MIDPConstraint();
-	if((ConstraintValue & ESplConstraintMask) == ESplNumeric ||
-	   (ConstraintValue & ESplConstraintMask) == ESplDecimal)
-		JavaNumericEditor = ETrue;
-	
-	return JavaNumericEditor;
-	
-	}
-#ifdef RD_SCALABLE_UI_V2
-void CAknFepManager::HandleInputCapabilitiesEventL( TInt aEvent, TAny* /*aParams*/ )
-    {
-    switch (aEvent)
-        {
-        case CAknExtendedInputCapabilities::MAknEventObserver::EActivatePenInputRequest:
-            SendEventsToPluginManL( EPluginEditorActivate );
-            break;
-        case CAknExtendedInputCapabilities::MAknEventObserver::EPointerEventReceived:
-
-/* 
-#ifdef RD_TACTILE_FEEDBACK
-            CAknExtendedInputCapabilities::
-                MAknEventObserver::TPointerEventReceivedParams* params = 
-                    static_cast<CAknExtendedInputCapabilities::
-                MAknEventObserver::TPointerEventReceivedParams*>(aParams);
-            if (params->iPointerEvent.iType == TPointerEvent::EButton1Down)            
-                {
-                
-                MTouchFeedback* feedback = MTouchFeedback::Instance();
-                if (feedback && iFepPluginManager && !iFepPluginManager->VKBIsOpened())
-                    {
-                    feedback->InstantFeedback( ETouchFeedbackBasic );
-                    }
-                }
-#endif // RD_TACTILE_FEEDBACK
-*/
-            if( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
-                {
-                if (IsFeatureSupportedJapanese())
-			        {
-			        TryCloseUiL();
-			        }
-			    else
-			        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT			        
-			        iPtiEngine->CommitCurrentWord();
-					CommitInlineEditL();
-			        TryCloseUiL();
-
-#else
-					CommitInlineEditL();
-#endif			        
-			        }
-                }
-            break;      
-        case CAknExtendedInputCapabilities::MAknEventObserver::EControlContentUpdatedInternally:
-            SendEventsToPluginManL( EPluginSyncFepAwareText, EPluginSyncAll );
-            break;
-        case CAknExtendedInputCapabilities::MAknEventObserver::EOpenStylusMenuCcpu:
-            // User has highlighted text and editor requests stylus ccpu popup menu
-            // to be displayed.        
-            LaunchStylusCcpuMenuL(iClickPoint);
-            break;
-        }    
-    }
-    
-void CAknFepManager::SubmitInlineTextL( const TDesC& aData )
-    {
-    if(TextIsValidInEditor(aData))
-    	{
-    	StartInlineEditL(aData);
-    	CommitInlineEditL();
-    	}
-    }
-    
-// for japanese  
-void CAknFepManager::NotifyJapaneseSetting()
-    {
-	TInt param = 0;
-    // Deleting direction ON(right side) / OFF(left side)
-    if (iSharedDataInterface->ClearDirection() == EClearDirectionRight)
-        {
-        param |= EPenInputJapaneseSettingDeletingDirection;
-        }
-    // Japanese predictive ON(predictive on) / OFF(predictive off)
-    if (iJapanesePredictive)
-        {
-        param |= EPenInputJapaneseSettingPredictive;
-        }
-    // Japanese HWR conversion ON / OFF
-    if (iSharedDataInterface->JapaneseHwrConversion() == EJapaneseConversionOn)
-        {
-        param |= EPenInputJapaneseSettingConversion;
-        }
-    // Japanese HWR conversion ON / OFF
-    if (iCharWidth == EFullWidthChar)
-        {
-        param |= EPenInputJapaneseSettingCharacterWidth;
-        }
-    // Japanese qwerty setting flag
-    TInt qwertflag = iSharedDataInterface->JapaneseQwertyFlags();
-    // Qwerty Comma
-    if (qwertflag & EJapQwertySettingComma)
-        {
-        param |= EPenInputJapaneseSettingQwertyComma;
-        }
-    // Qwerty Period
-    if (qwertflag & EJapQwertySettingPeriod)
-        {
-        param |= EPenInputJapaneseSettingQwertyPeriod;
-        }
-    // Qwerty Width Of Space
-    if (qwertflag & EJapQwertySettingSpaceFullWidth)
-        {
-        param |= EPenInputJapaneseSettingQwertyWidthOfSpace;
-        }
-    // Lunch SCT
-    if (IsAbleToLaunchSCT())
-        {
-        param |= EPenInputJapaneseSettingLunchSCT;
-        }
-#ifdef RD_SCALABLE_UI_V2
-    // Set Japanese setting
-    if(iFepPluginManager->CurrentPluginInputFepUI())    
-        {
-        TRAP_IGNORE(iFepPluginManager->CurrentPluginInputFepUI()->HandleCommandL(
-                                             ECmdPenInputJapaneseSetting, param));
-        }
-#endif //RD_SCALABLE_UI_V2    
-    }
-
-TBool CAknFepManager::FullyFepAwareTextEditor() const
-    {
-    if ( iInputCapabilities.FepAwareTextEditor() )
-        {
-        if ( EditorType() != CAknExtendedInputCapabilities::EMFNEBased )
-            {
-            return ETrue;
-            }
-        }
-        
-    return EFalse;
-    }
-
-TBool CAknFepManager::SemiFepAwareTextEditor( TBool aAtLeast ) const
-    {
-    if ( aAtLeast )
-        {
-        switch ( EditorType() )
-            {
-            case CAknExtendedInputCapabilities::EEdwinBased:
-            case CAknExtendedInputCapabilities::EMFNEBased:
-                return ETrue;
-                
-            default:
-                return EFalse;
-            }
-        }
-    else
-        {
-        return EditorType() == CAknExtendedInputCapabilities::EMFNEBased;
-        }
-    }
-    
-void CAknFepManager::ProcessEditorMenuCommand(TInt aCommand)
-    {
-    TRAP_IGNORE(ProcessCommandL(aCommand));    
-    }
-    
-TInt CAknFepManager::GetPermittedEditorMenu(TBool aOnlyCount)
-    {
-    TInt count = 0;
-    TRAP_IGNORE(count = GetPermittedEditorMenuL(aOnlyCount));
-    return count;
-    }
-
-TInt CAknFepManager::GetPermittedEditorMenuL(TBool aOnlyCount)
-    {
-    
-    CAknEdwinState* editorState = NULL;
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        editorState = EditorState();
-        }
-    
-    CAknFepUiInterfaceMenuBar* menuBar = NULL;
-
-	RPointerArray<CEikMenuPaneItem> editorMenuItemList;	
-    
-    CEikMenuPane* editorMenuPane = new (ELeave) CEikMenuPane((MEikMenuObserver*)(this));
-    editorMenuPane->SetItemArrayOwnedExternally(EFalse);
-    TResourceReader reader;
-    CCoeEnv::Static()->CreateResourceReaderLC(reader, R_AVKON_TOUCH_INDICATOR_EDIT_MODE_MENU);//
-        
-    const TInt menuCount=reader.ReadInt16();
-    for ( TInt ii=0; ii<menuCount; ++ii )
-        {
-        CEikMenuPaneItem* item = new(ELeave) CEikMenuPaneItem();
-        CleanupStack::PushL( item );
-        item->iData.iCommandId = reader.ReadInt32();
-        item->iData.iCascadeId = reader.ReadInt32();
-        item->iData.iFlags = reader.ReadInt32();
-        TPtrC txtptr = reader.ReadTPtrC();
-        item->SetScaleableTextL( txtptr );
-        TPtrC extratxtptr = reader.ReadTPtrC();
-        item->iData.iExtraText = extratxtptr;
-        TPtrC bitmapFile = reader.ReadTPtrC();
-        TInt bitmapId = reader.ReadInt16();
-        TInt bitmapMaskId = reader.ReadInt16();
-        CleanupStack::Pop(); // pop first, since additem pushes again
-        editorMenuPane->AddMenuItemL( item->iData );
-        editorMenuItemList.Append(item);
-        reader.ReadInt32(); // extension link
-        }
-        
-    CleanupStack::PopAndDestroy(); //reader 
-
-            
-    if (editorState)
-        {
-        menuBar = iUiInterface->EditorStateMenuBar(editorState);
-        }
-    
-    TInt count = 0;            
-    
-    if ( menuBar )
-        {
-        CAknFepUiInterfaceMenuPane* menuPane = menuBar->MenuPane();
-
-        CEikMenuPane* oldMenuPane = menuPane->GetMenuPane();
-   
-        menuPane->SetMenuPane(editorMenuPane);             
-             
-        DynInitTouchMenuPaneL(menuPane);
-        
-        menuPane->SetMenuPane(oldMenuPane);
-                
-
-        for (TInt ii = 0; ii < KMaxMenuSize; ii++)
-            {
-            CEikMenuPaneItem::SData& itemdata = 
-                        editorMenuPane->ItemData(KEditorMenuPermitedSend[ii]);
-            if ( !(itemdata.iFlags & EEikMenuItemDimmed ) )
-                {
-                count = count + 1;
-                iEditorCommandList[count] = itemdata.iCommandId; 
-                }
-            }
-        iEditorCommandList[0] = count;
-        if (!aOnlyCount && iFepPluginManager->CurrentPluginInputFepUI())
-            {
-            iFepPluginManager->CurrentPluginInputFepUI()->HandleCommandL(
-                        ECmdPenInputSendEditMenuData, reinterpret_cast<TInt>(iEditorCommandList));
-            }
-        
-        editorMenuItemList.ResetAndDestroy();
-        delete editorMenuPane;
-        editorMenuPane = NULL;
-        }
-    
-    return count;
-    }
-#endif // RD_SCALABLE_UI_V2
-
-void CAknFepManager::ExitPluginSpellModeByOk()
-    {
-    TRAP_IGNORE(ExitPluginSpellModeByOkL());
-    }
-
-void CAknFepManager::ExitPluginSpellModeByOkL()
-    {
-#ifdef RD_SCALABLE_UI_V2        		    
-    if (iFepPluginManager->IsSpellVisible())
-        {
-        HBufC* spell = iFepPluginManager->SpellTextInput();
-        
-        iFepPluginManager->SetITUTSpellingStateL(EFalse); 
-        iFepPluginManager->DestroySpellEditor();
-        
-        if (spell)
-            {
-            CleanupStack::PushL(spell);
-            TPtr text = spell->Des();
-            FepUI()->AddTextToUserDictionaryL(text);
-            InsertTextFromDialogL(text, iFepPluginManager->CursorSelection());
-            CleanupStack::PopAndDestroy(spell);
-            }
-        
-        UpdateCbaL(NULL); 
-        if (iFepPluginManager->CaseUpdatesSupressed())
-            {
-            SetFlag(EFlagSupressAutoUpdate);
-            }
-        else
-            {
-            ClearFlag(EFlagSupressAutoUpdate);
-            }
-        ClearFlag(EFlagSupressAutoUpdateAtEditorStart);
-        }
-#endif       		    
-    }
-
-void CAknFepManager::ExitPluginSpellModeByCancel()
-    {
-/*    
-#ifdef RD_SCALABLE_UI_V2
-    if (iFepPluginManager->IsSpellVisible())
-        {
-        iFepPluginManager->SetITUTSpellingStateL(EFalse); 
-        iFepPluginManager->DestroySpellEditor();
-        UpdateCbaL(NULL);
-        HandleChangeInFocus();
-        if (iFepPluginManager->CursorSelection().Length())
-            {
-            EditorState()->SetInlineEditSpan(iFepPluginManager->CursorSelection());
-            ConfigureFEPFromEditorStateL();
-            }
-        TransferFepStateToEditorL();
-
-        if (iFepPluginManager->CaseUpdatesSupressed())
-            {
-            SetFlag(EFlagSupressAutoUpdate);
-            }
-        else
-            {
-            ClearFlag(EFlagSupressAutoUpdate);
-            }
-        ClearFlag(EFlagSupressAutoUpdateAtEditorStart);
-        iFepPluginManager->SetBeforeSpell(ETrue);
-        }
-#endif
-*/
-#ifdef RD_SCALABLE_UI_V2
-    if (iFepPluginManager->IsSpellVisible())
-        {
-        TRAP_IGNORE(iFepPluginManager->SetITUTSpellingStateL(EFalse)); 
-        iFepPluginManager->DestroySpellEditor();
-
-        TRAP_IGNORE(UpdateCbaL(NULL)); 
-        if (iFepPluginManager->CaseUpdatesSupressed())
-            {
-            SetFlag(EFlagSupressAutoUpdate);
-            }
-        else
-            {
-            ClearFlag(EFlagSupressAutoUpdate);
-            }
-        ClearFlag(EFlagSupressAutoUpdateAtEditorStart);
-        }
-#endif       		
-    }
-
-void CAknFepManager::ProcessCommandL(TInt aCommandId)
-    {
-    //ProcessCommandL() is called before HandleChangeInFocus() for the editor to insert the
-    //number into, so have to force a call
-    
-    //Process pen input menu if avaliable
-#ifdef RD_SCALABLE_UI_V2
-
-     if (iFepPluginManager && 
-        (iFepPluginManager->PluginInputMode() == EPluginInputModeItut)) 
-       	{
-       	switch(aCommandId)
-       		{
-       		case EAknSoftkeyOptions:
-       		    {
-       		    LaunchSelectModeMenuL();
-       		    }
-       		    return;
-       		case EAknSoftkeyOk:
-       		    {
-                iFepPluginManager->ClosePluginInputModeL(ETrue);
-       		    }
-       		    return;
-       		default:
-       			{
-       			break;
-       			}
-       		}
-       	}
-
-    SendEventsToPluginManL( EPluginMenuCmd, aCommandId );
-
-#endif //RD_SCALABLE_UI_V2
-    MAknFepManagerInterface* currentFepUI=NULL;
-    switch (aCommandId)
-        {
-        // Edit mode menu commands
-        //The soft CBA event from touch screen. 
-        case EAknSoftkeyCancel:
-      //  case (TUint16)EAknSoftkeyCancel:
-        case EAknSoftkeySelect:
-     //   case (TUint16)EAknSoftkeySelect:
-        currentFepUI = FepUI();
-        if (currentFepUI)
-            currentFepUI->HandleCommandL( aCommandId );
-            break;
-        // --- commands for Japanese ---
-        case EJapanFepCmdModeHiragana:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EHiraganaKanji);
-            break;
-        case EJapanFepCmdModeKatakana:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EKatakana);
-            break;
-        case EAknCmdEditInsertPictograph:
-            SetStopProcessFocus(ETrue);            
-            HandleChangeInFocus();
-            LaunchPictographCharacterTableL();
-            SetStopProcessFocus(EFalse);            
-            break;
-        case EJapanFepCmdModeFullWidth:
-        case EPenInputJpCmdFullWidth:
-        case EJapanFepCmdModeHalfWidth:
-        case EPenInputJpCmdHalfWidth:
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            if (aCommandId == EJapanFepCmdModeFullWidth
-             || aCommandId == EPenInputJpCmdFullWidth)
-                {
-                iCharWidth = EFullWidthChar;
-                }
-            else
-                {
-                iCharWidth = EHalfWidthChar;
-                }
-            UpdateIndicators();
-            TryChangeModeL(iMode);
-#ifdef RD_SCALABLE_UI_V2
-            if (aCommandId == EPenInputJpCmdFullWidth
-             || aCommandId == EPenInputJpCmdHalfWidth)
-                {
-                // Re-open pen input window
-                SendEventsToPluginManL( EPluginActivate );  
-                }
-#endif //RD_SCALABLE_UI_V2
-            }
-            break;
-        case EJapanFepCmdModeUserDic:
-        case EPenInputJpCmdSaveWord:
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            // User dictionary
-#ifdef RD_PF_SEC_APPARC
-            // Launch settings app
-            if ( iNullService )
-                {
-                delete iNullService;
-                iNullService = NULL;
-                }
-            iNullService = CAknNullService::NewL( KUidUserDictApp, this );
-#else
-            CEikProcess* process = CEikonEnv::Static()->Process();
-            if (iEmbedded)
-                {
-                process->DestroyDocument(iEmbedded);
-                }
-#if (defined(SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1) || defined(__SERIES60_27__) || defined(__SERIES60_28__)) 
-            iEmbedded = process->AddNewDocumentL(_L("User Dictionary"), KUidUserDictApp);
-#else
-            iEmbedded = process->AddNewDocumentL(KUidUserDictApp);
-#endif
-            iEmbedded->NewDocumentL();
-            iEmbedded->EditL(NULL);
-#endif //RD_PF_SEC_APPARC
-            }
-            break;
-        case EPenInputJpCmdKutenCode:
-        case EJapanFepCmdModeKutenCodeInput:
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            LaunchKutenCodeQueryL();
-#ifdef RD_SCALABLE_UI_V2
-            if (aCommandId == EPenInputJpCmdKutenCode)
-                {
-                // Re-open pen input window
-                SendEventsToPluginManL( EPluginActivate );
-                }
-#endif //RD_SCALABLE_UI_V2
-            }
-            break;
-        case EAknCmdEditClearDirectionLeft:
-        case EAknCmdEditClearDirectionRight:
-            {
-            TInt value = EClearDirectionLeft;
-            if (aCommandId == EAknCmdEditClearDirectionRight)
-                {
-                value = EClearDirectionRight;
-                }
-            iSharedDataInterface->SetClearDirection(value);
-            }
-            break;
-        case EAknFepSoftkeyCloseWindow:
-            if(IsChineseInputLanguage())
-                {
-                TryCloseUiL();
-                }                        
-            if (iCcpuMode != ECcpuStateNone)
-                {
-                ResetCcpuFlags();
-
-                // reset select mode indicators
-                iIndicator->SetCopyMode(EFalse);
-                // update view                
-                iPreviousEditingState = EStateNone;
-                UpdateIndicators();
-
-                iUiInterface->DeleteSoftkeys();                              
-                break;
-                }
-        case EAknFepSoftkeyCommit:
-        case EAknFepSoftkeySelectCandidate:
-        case EAknFepSoftkeyConvert:
-        case EAknFepSoftkeyOtherModes:
-        case EAknFepSoftkeyRetroActiveHalf:
-        case EAknFepSoftkeyRetroActiveFull:
-            {
-            FepUI()->HandleCommandL(aCommandId);
-            }
-            break;
-        case EAknFepSoftkeyPredictiveOn:
-            {
-            iJapanesePredictive = ETrue;
-            iSharedDataInterface->SetJapanesePredictiveTextOn();
-            iHashKeyMan->SetMode(iMode, ETrue);
-            UpdateIndicators();
-            FepUI()->HandleCommandL(aCommandId);
-            }
-            break;
-        case EJapanFepCmdModePredictiveOn:
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            if (!iJapanesePredictive)
-                {
-                LaunchConfirmationNoteL(R_AVKON_JAPANESE_PREDICTIVE_ACTIVATED_NOTE);
-                }
-            iJapanesePredictive = ETrue;
-            TryChangeModeL(EHiraganaKanji);
-            iSharedDataInterface->SetJapanesePredictiveTextOn();
-            }
-            break;
-        case EJapanFepCmdModePredictiveOff:
-            {
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            if (iJapanesePredictive)
-                {
-                LaunchConfirmationNoteL(R_AVKON_JAPANESE_PREDICTIVE_DEACTIVATED_NOTE);
-                }
-            iJapanesePredictive = EFalse;
-            TryChangeModeL(EHiraganaKanji);
-            iSharedDataInterface->ResetJapanesePredictiveTextOn();
-            }
-            break;
-#ifdef RD_SCALABLE_UI_V2
-        case EPenInputJpCmdPredictiveOn:
-            {
-            iJapanesePredictive = ETrue;
-            iSharedDataInterface->SetJapanesePredictiveTextOn();
-            if (iFepPluginManager->PluginInputMode() == EPluginInputModeHwr)
-                {
-                iSharedDataInterface->SetJapaneseHwrConversion(EJapaneseConversionOn);
-                }
-            }
-            break;
-        case EPenInputJpCmdPredictiveOff:
-            {
-            iJapanesePredictive = EFalse;
-            iSharedDataInterface->ResetJapanesePredictiveTextOn();
-            }
-            break;
-        case EPenInputJpCmdConversionOn:
-            {
-            iSharedDataInterface->SetJapaneseHwrConversion(EJapaneseConversionOn);
-            }
-            break;
-        case EPenInputJpCmdConversionOff:
-            {
-            iSharedDataInterface->SetJapaneseHwrConversion(EJapaneseConversionOff);
-            }
-            break;
-#endif //RD_SCALABLE_UI_V2
-
-        // --- commands for Chinese ---
-        case EChinFepCmdModePinyin:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EPinyin);
-            break;
-        case EChinFepCmdModeZhuyin:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EZhuyin);
-            break;
-        case EChinFepCmdModeStroke:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EStroke);
-            break;
-        case EChinFepCmdModeCangJie:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(ECangJie);
-            break;
-        case EChinFepCmdModeCangJieOption:
-            // Launch CangJie option dialog
-            {
-            SetStopProcessFocus(ETrue);
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            TInt newMode = LaunchCangJieOptionDlgL();
-            SetStopProcessFocus(EFalse);
-            UpdateCangJieState( newMode );
-            }
-            break;
-        case EChinFepCmdModeLatinUpper:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(ELatinUpper);
-            // delete it for support auto update to text-case
-            //SetFlag(EFlagSupressAutoUpdate);
-            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-            break;
-        case EAknCmdEditModeKorean:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EHangul);
-            // delete it for support auto update to text-case
-            //SetFlag(EFlagSupressAutoUpdate);
-            iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-            break;
-        case EChinFepCmdModeLatinLower:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(ELatinLower);
-            // delete it for support auto update to text-case
-            //SetFlag(EFlagSupressAutoUpdate);
-            iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-            break;
-        case EAknCmdEditModeNumber:
-        case EJapanFepCmdEditModeNumber:
-        case EChinFepCmdModeNumber:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            if ( iLanguageCapabilities.iArabicIndicDigitsAllowed 
-                || iLanguageCapabilities.iEasternArabicIndicDigitsAllowed 
-                || iLanguageCapabilities.iIndicDigitsAllowed )
-                {
-                iLanguageCapabilities.iLocalDigitType = EDigitTypeWestern;
-                }
-            TryChangeModeL(ENumber);
-            break;
-        case EAknCmdEditModeArabicIndicNumber:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic;
-            TryChangeModeL(ENativeNumber);
-            break;
-            /*For Eastern Arabic Numeric*/
-        case EAknCmdEditModeEasternArabicIndicNumber:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            iLanguageCapabilities.iLocalDigitType = EDigitTypeEasternArabicIndic;
-            TryChangeModeL(ENativeNumber);
-            break;
-            /*for Hindi*/
-        case EAknCmdEditModeIndicNumber:
-            HandleChangeInFocus();
-            iLanguageCapabilities.iLocalDigitType = EDigitTypeDevanagari;
-            TryChangeModeL(ENativeNumber);
-            break;
-        case EChinFepCmdInstructions:
-            SetStopProcessFocus(ETrue);            
-            HandleChangeInFocus();
-            LaunchHelpTextQueryL();
-            SetStopProcessFocus(EFalse);            
-            break;
-        case EChinFepCmdModeZhuyinFind:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EZhuyinFind);
-            break;
-        case EChinFepCmdModeStrokeFind:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(EStrokeFind);
-            break;
-
-        // commands for western or common
-        case EJapanFepCmdMultitapPredictiveT9On:
-        case EAknCmdMultitapPredictiveT9On:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        case EAknFepCmdPredActivate:
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            SetStopProcessFocus(ETrue, EFalse);
-            HandleChangeInFocus();
-#ifdef RD_SCALABLE_UI_V2     
-        if( iFepFullyConstructed && iFepPluginManager)
-            {
-            iFepPluginManager->SetMenuState();            
-            }
-#endif
-            if ( !iWesternPredictive )
-                {
-                LaunchConfirmationNoteL(R_AVKON_T9_ACTIVATED_NOTE);
-                }
-            SetWesternPredictive(ETrue);
-            SetStopProcessFocus(EFalse);
-            TryChangeModeL(ELatin);
-            break;
-        case EAknCmdT9PredictiveT9Off:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        case EAknFepCmdPredDeactivate:
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        SetStopProcessFocus(ETrue, EFalse);
-            HandleChangeInFocus();
-#ifdef RD_SCALABLE_UI_V2     
-        if( iFepFullyConstructed && iFepPluginManager) 
-            {
-            iFepPluginManager->SetMenuState();            
-            }
-#endif   
-            if (iMode != ELatin)
-                {
-                TryChangeModeL(ELatin);
-                }
-            else
-                {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                RemoveSuggestedAdvanceCompletionL();
-#endif // RD_INTELLIGENT_TEXT_INPUT                	
-                CommitInlineEditL();
-                }
-			if ( iWesternPredictive )
-                {
-                LaunchConfirmationNoteL(R_AVKON_T9_DEACTIVATED_NOTE);
-                }
-            SetWesternPredictive(EFalse);
-            SetStopProcessFocus(EFalse);            
-            break;
-        case EAknCmdEditModeEnglish:
-        case EAknCmdEditModeAlpha:
-        case EJapanFepCmdEditModeAlpha:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();            
-            TryChangeModeL(ELatin);
-            iCaseMan->UpdateCase( ENullNaviEvent );
-            ClearFlag(EFlagSupressAutoUpdate);
-            break;
-        case EAknCmdEditModeLatinText:
-            SendEventsToPluginManL( EPluginCloseMode, EFalse );
-            HandleChangeInFocus();
-            TryChangeModeL(ELatinText);
-            ClearFlag(EFlagSupressAutoUpdate);
-            iCaseMan->SetCurrentCase(EAknEditorTextCase);
-            break;
-        case EAknCmdEditInsertSymbol:
-        case EAknCmdEditInsertSymbolJp:
-        case EAknFepSoftkeySymbol:
-        case EAknCmdEditInsertSmiley:
-            SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-#ifdef RD_SCALABLE_UI_V2            
-     if (iFepPluginManager && 
-        (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
-         iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
-         iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)) 
-        {
-        iFepPluginManager->SetMenuState();     
-        }
-
-#endif //RD_SCALABLE_UI_V2             
-            SetStopProcessFocus(ETrue, EFalse);
-            HandleChangeInFocus();
-            if (aCommandId == EAknFepSoftkeySymbol)
-                {               
-                SetCcpuFlag(ECcpuStateCbaSymbol);
-                }
-            // Show Thai specific SCT with Thai vowels and tonemarks
-            if ( (iLanguageCapabilities.iInputLanguageCode == ELangThai ) &&
-                 (iMode!=ENumber && iMode != ENativeNumber ) )
-                {
-#ifdef RD_INTELLIGENT_TEXT_INPUT                 	
-                // if itut call Thai multitap HandleCommandL to Launch SCT	
-                if(!iQwertyInputMode)
-                    {
-#endif                    	
-                    TInt resourceId = 0;
-                    if (iAknFepThaiSCTSelector)
-                         {
-                        resourceId = iAknFepThaiSCTSelector->ThaiSCRResourceId(PreviousChar(),EPtiKeyStar);
-                        }
-                    LaunchSpecialCharacterTableL(resourceId, 
-                                                 aCommandId==EAknCmdEditInsertSymbol, 
-                                                 aCommandId==EAknCmdEditInsertSmiley);
-#ifdef RD_INTELLIGENT_TEXT_INPUT                 	                    
-                    }
-                else
-                    {
-                    CAknFepUIManagerWestern* westernUIManager = static_cast<CAknFepUIManagerWestern*>(FepUI());
-                    LaunchSpecialCharacterTableL(westernUIManager->ThaiSCTResourceId(static_cast<TChar>(PreviousChar()),EPtiKeyStar),
-                                                 aCommandId==EAknCmdEditInsertSymbol, 
-                                                 aCommandId==EAknCmdEditInsertSmiley);                    
-                    }
-#endif                    
-                }
-            else
-            {
-                LaunchSpecialCharacterTableL(0, 
-                                             aCommandId==EAknCmdEditInsertSymbol, 
-                                             aCommandId==EAknCmdEditInsertSmiley);
-            }
-            SetStopProcessFocus(EFalse);
-            ClearCcpuFlag(ECcpuStateCbaSymbol);
-            break;
-        case EAknFepSoftkeyPrevious:
-            FepUI()->HandleCommandL(aCommandId);
-            break;
-        case EAknFepSoftkeySpell:
-            LaunchEditWordQueryL();
-            break;
-        case EAknCmdT9PredictiveInsertWord:
-            SetStopProcessFocus(ETrue);
-            HandleChangeInFocus();
-            LaunchInsertWordQueryL(KNullDesC, TCursorSelection(0,0));
-            SetStopProcessFocus(EFalse);
-#ifdef RD_SCALABLE_UI_V2     
-        if( iFepFullyConstructed && iFepPluginManager)
-            {
-            iFepPluginManager->ResetMenuState();            
-            }
-#endif             
-            break;
-        case EAknCmdT9PredictiveEditWord:
-            SetStopProcessFocus(ETrue);
-            HandleChangeInFocus();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                RemoveSuggestedAdvanceCompletionL();
-#endif // RD_INTELLIGENT_TEXT_INPUT   
-            LaunchEditWordQueryL();
-            SetStopProcessFocus(EFalse);
-#ifdef RD_SCALABLE_UI_V2     
-            if( iFepFullyConstructed && iFepPluginManager )
-                {
-                iFepPluginManager->ResetMenuState();            
-                }
-#endif 
-            break;
-        case EAknCmdT9PredictiveMatches:
-            SetStopProcessFocus(ETrue,EFalse);
-            LaunchMatchesPopupListL();
-            SetStopProcessFocus(EFalse);
-            break;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        case EAknCmdPredictiveAutoWord:
-             if ( !iIsAutoCompleteOn )
-                {
-                SetStopProcessFocus(ETrue);
-                LaunchConfirmationNoteL(R_AVKON_PREDICTIVE_AUTOCOMPLETION_ACTIVATED_NOTE);
-                SetStopProcessFocus(EFalse);
-                }
-             iIsAutoCompleteOn = ETrue;      
-         	 iSharedDataInterface->SetPredictiveTextAutoCompleteOn();  			                 	 
-#ifdef  RD_SCALABLE_UI_V2       	 
-            if(iFepPluginManager->PluginInputMode() == EPluginInputModeItut)
-                {
-                SendEventsToPluginManL( EPluginCloseMode, EFalse );
-                HandleChangeInFocus();
-                }
-#endif
-	 		 UpdateIndicators();
-        	 break;
-        case EAknCmdPredictiveNormal:
-             if ( iIsAutoCompleteOn )
-                {
-                SetStopProcessFocus(ETrue);
-                LaunchConfirmationNoteL(R_AVKON_PREDICTIVE_AUTOCOMPLETION_DEACTIVATED_NOTE);
-                SetStopProcessFocus(EFalse);
-                }
-         	 iIsAutoCompleteOn = EFalse;
-         	 iSharedDataInterface->ResetPredictiveTextAutoCompleteOn();        	 
-        	 UpdateIndicators();
-        	 break;
-#endif
-        case EAknCmdInputLanguage:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        case EAknFepCmdPredInputLanguage:
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            SetStopProcessFocus(ETrue, EFalse);
-            HandleChangeInFocus();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT 
-            	// Currently dual language feature would work correctly for ITUT and Half Qwerty products 
-                // Hence the dual language settings should also be displayed only for ITUT and Halfqwerty products
-                if(iKeyboardType == EPtiKeyboard12Key || iKeyboardType == EPtiKeyboardHalfQwerty )
-                    LaunchDualLanguageSettingDialogL();
-                else 
-					{ 
-					LaunchLanguagesPopupListL(aCommandId == EAknCmdInputLanguage);		            
-		            iStopProcessFocus = EFalse; 
-					}             
-#else // FF_DUAL_LANGUAGE_SUPPORT
-            LaunchLanguagesPopupListL(aCommandId == EAknCmdInputLanguage);
-            //HandleChangeInFocus();
-            iStopProcessFocus = EFalse;
-#endif // FF_DUAL_LANGUAGE_SUPPORT
-#else            
-            LaunchLanguagesPopupListL(aCommandId == EAknCmdInputLanguage);
-            HandleChangeInFocus();
-            iStopProcessFocus = EFalse;
-#endif
-            break;
-        case EAknEditMenuCmdCutText:
-             StartCcpuModeL(EFalse);
-             if (WesternPredictive())
-                {                
-                // Remove underlining from predicted word when focus is re-gained.
-                SetCcpuFlag(ECcpuStateUncommitWhenFocused);                 
-                }                                     
-             SetCcpuFlag(ECcpuStateIgnoreNextFocusChange);                            
-             SetCcpuFlag(ECcpuStateEdwinInSelectionMode);                       
-             break;            
-        case EAknEditMenuCmdCopyText:                               
-             StartCcpuModeL(ETrue);
-             if (WesternPredictive())
-                {                
-                // Remove underlining from predicted word when focus is re-gained.
-                SetCcpuFlag(ECcpuStateUncommitWhenFocused);                 
-                }                        
-             SetCcpuFlag(ECcpuStateIgnoreNextFocusChange);               
-             SetCcpuFlag(ECcpuStateEdwinInSelectionMode);                
-             break;
-        case EAknFepSoftkeyStartCopy:
-        case EAknFepSoftkeyStartCut:        
-             {
-             ResetCcpuFlags();
-             if (aCommandId == EAknFepSoftkeyStartCopy)
-                {
-                SetCcpuFlag(ECcpuStateCopy);                
-                }
-             else
-                {
-                SetCcpuFlag(ECcpuStateCut);
-                }
-                
-             __ASSERT_DEBUG(iUiInterface->SoftkeysExist(),
-                            AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));
-                 
-            TBool update = UpdateCBALabelL(ELeftSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY);
-            update |= UpdateCBALabelL(ERightSoftkeyIndex, EAknFepSoftkeyCloseWindow, 
-                                      R_AKNFEP_SOFTKEY_CCPU_CANCEL);
-            update |= UpdateCBALabelL( EMiddleSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY ); 
-            if (update)
-                {
-                iUiInterface->DrawSoftkeysNow();
-                }                           
-             }
-             break;   
-        case EEikCmdEditCopy:
-        case EEikCmdEditCut:
-            {
-#ifdef RD_SCALABLE_UI_V2            
-     if (iFepPluginManager && 
-        (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
-         iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
-         iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)) 
-        {
-        iFepPluginManager->SetMenuState(EFalse);     
-        }
-
-#endif //RD_SCALABLE_UI_V2             
-            SetStopProcessFocus(ETrue, EFalse);
-            HandleCopyCutEventL(aCommandId);
-            SetStopProcessFocus(EFalse);            
-            }
-            break;
-        case EEikCmdEditPaste:
-           	{
-           	// We have a hindi character in clipboard which can form ligature with the existing text
-           	// if pasted. While the input language is English, the cursor aligmment check would not happen.
-           	// When selecting Options->Paste, the Fep context at this point is for the menu.
-           	// iInputCapabilities for editor context is retrived from CCoeEnv and is restored back
-           	// after doing the operation, else FepAwareTextEditor will be true in menu context.
-           	if ( (!BidiCursorRequired()) && (!WesternPredictive()) )
-           		{
-	        	TCoeInputCapabilities origInputCapabilities = iInputCapabilities;
-	        
-	        	CCoeEnv* coeEnv = CCoeEnv::Static();
-	        	iInputCapabilities = static_cast<const CCoeAppUi*>(coeEnv->AppUi())->InputCapabilities();
-        	
-        		if( !(iInputCapabilities.SupportsSecretText()) )		        
-		        	{
-		    	    DoCursorDirectionCheckL();
-			        }	
-    	       	iInputCapabilities = origInputCapabilities;
-	           	}
-           	}     
-        	break;
-            
-        case EAknCmdEditMenuSctSelected:
-            {
-            SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-            HandleChangeInFocus();  // to re-establish contact with editor
-
-            TBuf<ESingleCharacter> charAsDesc(ESingleCharacter);
-            for ( TInt ii = 0; ii < iSctEditChars->Length(); ii++)
-                {
-                charAsDesc[0]=(TText) (*iSctEditChars)[ii];
-                if (charAsDesc[0] == TText(0x000A) // 0x000A is line feed
-                 || charAsDesc[0] == CEditableText::EParagraphDelimiter) 
-                    {
-                    // This is line feed character. Post it to editor and let it decide
-                    // if it is valid.
-                    if (!(iAknEditorFlags & EAknEditorFlagFindPane) && iSctEditChars->Length() == 1)                              
-                        {
-                        SimulateKeyEventL(EKeyEnter);
-                        SimulateKeyEventL(EKeyF19); // Asyncronous case update                                                                                  
-                        }
-                    }                                                        
-                else
-                    {
-                    if (CharIsValidInEditor(charAsDesc[0]))
-                    {
-                    TCursorSelection cursorSelection(0,0);
-                    if ((iAknEditorFlags & EAknEditorFlagMTAutoOverwrite) && 
-                                    iMode == ELatin && !WesternPredictive())
-                        {
-                        TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-                        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                        if (iUncommittedText.iCursorPos < edSize && iUncommittedText.Length() == 0)
-                            {
-                            cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1, 
-                                                               iUncommittedText.iAnchorPos);
-                            }
-                        }
-                        
-                    if (EditorHasFreeSpace())
-                        {
-                        InsertTextFromDialogL(charAsDesc, cursorSelection);
-                        }
-                                           
-                    }
-                  } 
-                 
-                }
-            } 
-            break;
-        case EAknCmdTaskSwapper:
-            SendEventsToPluginManL( EPluginFaseSwap, ETrue );
-            break;
-            
-        case EAknCmdEditMenuClose:
-            {
-            // Handle destruction of menu
-            StopDisplayingMenuBar();     
-            }            
-        break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Predictive QWERTY (XT9) changes ---->
-         case EAknFepCmdPredMatches:
-         {
-         	HandleChangeInFocus();  // to re-establish contact with editor
-	        // Focus current active word in list ---->
-	        TInt wordToFocus;
-	        iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, &wordToFocus );
-	        iSListLaunchedFromMenu = ETrue;
-	        TKeyEvent candLaunch = {EKeyDownArrow, EStdKeyDownArrow, 0, 0};
-			CEikonEnv::Static()->WsSession().SimulateKeyEvent(candLaunch);
-	        //LaunchCandidatePopupListL( wordToFocus );
-	       }
-	        break;
-        case EAknFepCmdPredSettings:
-        	LaunchPredictiveSettingDialogL();
-        	break;
-        /*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.
-	    This is For Insert Word Functionality*/	
-        case EAknEditMenuCmdInsertWord:
-        	HandleChangeInFocus();
-            LaunchInsertWordQueryL(KNullDesC, TCursorSelection(0,0));
-        	break;
-#ifdef __USER_DICTIONARY_EDITING__ 
-        case EAknFepCmdPredEditUserDictionary:
-            if ( IsAutoCompleteOn() )
-                {
-                HandleChangeInFocus();
-                RemoveSuggestedAdvanceCompletionL();
-                }
-            UiInterface()->LaunchUserDictEditDialogL();
-            break;
-#endif //__USER_DICTIONARY_EDITING__ 
-        
-        case EAknFepCmdPredHelp:
-	        // Help ID:PREDINPUT_HLP_INPUT
-			{					
-            const TInt KArrayGranularity = 3;
-            CArrayFix<TCoeHelpContext>* contexts =
-                    new (ELeave) CArrayFixFlat<TCoeHelpContext>( KArrayGranularity );
-	    	CleanupStack::PushL ( contexts );
-	    	TUid appuid = { 0x100058EC };
-	    	contexts->AppendL( TCoeHelpContext( appuid, KFEPPREDINPUT_HLP_INPUT ) );
-	    	CleanupStack::Pop( contexts );
-	    	HlpLauncher::LaunchHelpApplicationL( CEikonEnv::Static()->WsSession(), contexts );			
-			}
-	        break;
-       // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        // add for phrase creation user db view.
-        case EAknCmdUserDBDlg:
-            {
-            HandleChangeInFocus();
-            LaunchUserDBDlgL();
-           }            
-        break;
-        case EPenInputCmdPreviewOn:
-            {
-            iSharedDataInterface->SetFepShowVkbPreviewStatus(KTouchInputPreviewOn);
-            SendEventsToPluginManL(EPluginPreview, KTouchInputPreviewOn);  
-            }
-        break;
-        case EPenInputCmdPreviewOff:
-            {
-            iSharedDataInterface->SetFepShowVkbPreviewStatus(KTouchInputPreviewOff);
-            SendEventsToPluginManL(EPluginPreview, KTouchInputPreviewOff);    
-            }
-        break;
-        case EPenInputCmdRecognitionWithDictionary:
-            {
-            SetStopProcessFocus(ETrue);
-            HandleChangeInFocus();
-            LaunchRecognitionWithDictionaryPopupListL();
-            HandleChangeInFocus();
-            iStopProcessFocus = EFalse;
-            }
-        break;
-        default:
-            break;
-        }
-        
-        
-    StopDisplayingMenuBar();
-    }
-
-void CAknFepManager::SetEmphasis(CBase* /*aMenuControl*/,TBool aEmphasis)
-    {
-    if (aEmphasis)
-        { // opening main menu pane
-        SetFlag(EFlagMenuPaneVisible);
-        if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-            {
-            SetFlag(EFlagInlineEditInBackground);
-            }
-        }
-    else
-        {
-		// The pointer to be cleared when the callback is received on leaving the focus from the menu pane.
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-        iOptionsMenuBar = NULL;
-#endif
-        ClearFlag(EFlagMenuPaneVisible | EFlagRemoveMatchesMenuItem | EFlagInlineEditInBackground);
-        }
-    }
-
-void CAknFepManager::DynInitMenuBarL(TInt aResourceId, CAknFepUiInterfaceMenuBar* aMenuBar)
-    {
-    if (iFepFullyConstructed && IsFlagSet(EFlagLaunchEditMenu))
-        {
-        aMenuBar->ReplaceAllMenuPanes(R_AVKON_EDIT_MODE_MENU);
-        }
-        
-#ifdef RD_SCALABLE_UI_V2        
-    if (iFepFullyConstructed &&
-        aResourceId == R_AVKON_PENINPUT_OPTION_MENU_BAR)
-        {
-        aMenuBar->ReplaceAllMenuPanes(R_AVKON_TOUCH_TOUCHINPUT_MENU);
-        }
-#endif //RD_SCALABLE_UI_V2        
-        
-    }
-
-#ifdef RD_SCALABLE_UI_V2
-void CAknFepManager::DynInitTouchMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    if ( !iFepFullyConstructed )
-        {
-        return;
-        }
-
-
-    if (iFepManState != EAknFepStateNull &&
-        iInputCapabilities.FepAwareTextEditor() &&
-        !(iAknEditorFlags & EAknEditorFlagFindPane))
-        {
-        // 'Input language' menu item on option menu isn't supported in Japanese variant.
-        if (!IsFeatureSupportedJapanese())
-            {
-            // Insert 'Input language' item to incoming menu if editor is active on screen and
-            // menu contains 'Help' or 'Exit' item.
-            if (!IsOnlyNumericPermitted())
-                {
-                TInt helpIndex;
-                if (aMenuPane->MenuItemExists(EAknCmdHelp, helpIndex) ||
-                    aMenuPane->MenuItemExists(EAknCmdExit, helpIndex))
-                    {
-                    AddInputLanguageItemL(aMenuPane, helpIndex);
-                    }
-                }
-            }
-        }
-
-    TInt index;
-    if(aMenuPane->MenuItemExists(EAknCmdEditItemPlaceHolder, index))
-	    {
-		aMenuPane->DeleteMenuItem(EAknCmdEditItemPlaceHolder);	   
-	    }
-
-    ClearFlag(EFlagLaunchEditMenu);
-            
-    DimInputmodeTouchMenuItems(aMenuPane);
-    }
-#endif //RD_SCALABLE_UI_V2
-void CAknFepManager::DynInitMenuPaneL(TInt aResourceId, CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    if ( !iFepFullyConstructed )
-        {
-        return;
-        }
-
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-    CAknEdwinState* editorState = NULL;
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        editorState = EditorState();
-        }
-
-    if (editorState)
-        {
-        iOptionsMenuBar = iUiInterface->EditorStateMenuBar(editorState);
-        }
-#endif    
-    
-    SetCcpuFlag(ECcpuStateIgnoreNextEdwinSyncEvent);
-
-    if (iFepManState != EAknFepStateNull &&
-        iInputCapabilities.FepAwareTextEditor() &&
-        !(iAknEditorFlags & EAknEditorFlagFindPane))
-        {
-        // 'Input language' menu item on option menu isn't supported in Japanese variant.
-        if (!IsFeatureSupportedJapanese())
-            {
-            // Insert 'Input language' item to incoming menu if editor is active on screen and
-            // menu contains 'Help' or 'Exit' item.
-            //Also, no need for writing language/ITI options in telephony's dialer
-            if ( (RProcess().SecureId().iId != KPhoneSecureId) && !IsOnlyNumericPermitted() )
-                {
-#ifdef RD_INTELLIGENT_TEXT_INPUT                
-                //This method gets called multiple times - first before the help and exit
-                //commands are populated and finally after these items are added.
-                //So if we have already added the input options menu and/or writing language menu,
-                //remove it. It will get added again to the correct place with the below code.
-                //No need to handle following menu types here.
-                if ( !( R_AVKON_EDIT_MODE_MENU == aResourceId || 
-                        R_AKNFEP_PRED_INPUT_OPTIONS_SUBMENU == aResourceId ||
-                        R_AVKON_PREDICTIVE_TEXT_MENU_T9 == aResourceId ||
-                        R_AVKON_INPUT_MODE_SUB_MENU == aResourceId ||
-                        R_AKNFEP_EDIT_SUBMENU == aResourceId ||
-                        R_AVKON_TOUCH_TOUCHINPUT_MENU == aResourceId ) 
-                // Add this condition for adding "input options" into the option menu of FSQ.
-                        || ( R_AVKON_TOUCH_TOUCHINPUT_MENU == aResourceId
-                             && iFepPluginManager
-                             && iFepPluginManager->IsSupportITIOnFSQ() )
-                        )                        
-                    {
-                    FindAndRemoveInputOptionsMenuItemL( aMenuPane );
-                    FindAndRemoveEditSubMenuItemL (aMenuPane);
-                    AddInputOptionsMenuItemL( aMenuPane );
-                    }                                	        	
-#else
-                TInt helpIndex;
-		if ( aMenuPane->MenuItemExists(EAknCmdHelp, helpIndex) ||
-                     aMenuPane->MenuItemExists(EAknCmdExit, helpIndex) )
-                    {
-                    AddInputLanguageItemL(aMenuPane, helpIndex);
-                    }
-                       	
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                }
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if ( IsChineseInputLanguage() && 
-                ( iKeyboardType == EPtiKeyboardQwerty4x10 ||
-                iKeyboardType == EPtiKeyboardQwerty3x11 ) )
-            {
-            // the follow added for phrase creation
-            TInt iptlanguage;
-            if ( !iIsUserdbdlgActive )
-                {
-                aMenuPane->MenuItemExists( EAknCmdInputLanguage, iptlanguage );
-                AddUserDBDlgItemL( aMenuPane, iptlanguage );
-                }
-            }
-#endif
-
-        if (!(aResourceId == R_AVKON_EDIT_MODE_MENU ||
-            aResourceId == R_AVKON_TOUCH_TOUCHINPUT_MENU ||
-            aResourceId == R_AVKON_TOUCH_INDICATOR_EDIT_MODE_MENU))
-            {
-            AddEditSubmenuL(aMenuPane);
-            }
-        }
-		
-		//HWR Hindi, Training application is not available,
-        //Disable Menu option
-        if(aResourceId == R_AVKON_TOUCH_TOUCHINPUT_MENU && 
-        	iLanguageCapabilities.iInputLanguageCode == ELangHindi)
-        	{
-        	aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);
-        	}
-    TInt index;
-    if(aMenuPane->MenuItemExists(EAknCmdEditItemPlaceHolder, index))
-	    {
-		aMenuPane->DeleteMenuItem(EAknCmdEditItemPlaceHolder);	   
-	    }
-#ifdef RD_SCALABLE_UI_V2
-    TInt oldPermitModes = -1;
-    if (R_AVKON_TOUCH_TOUCHINPUT_MENU == aResourceId )
-        {
-        oldPermitModes = iPermittedInputModes;
-        
-        if( iFepPluginManager != NULL )
-            {
-            iPermittedInputModes = iFepPluginManager->PreviousPermitMode();
-            }
-        }
-
-    iFepPluginManager->InitMenuPaneL( iRememberEditorState, aMenuPane, aResourceId );
-    if (oldPermitModes != -1)
-        {
-        iPermittedInputModes = oldPermitModes;    
-        }
-#endif //  RD_SCALABLE_UI_V2      
-    switch (aResourceId)
-        {
-        case R_AVKON_TOUCHINPUT_PREVIEW:
-            {
-            InitPreviewMenuPane(aMenuPane);     
-            } 
-        break;
-        case R_AVKON_EDIT_MODE_MENU:
-        case R_AVKON_TOUCH_INDICATOR_EDIT_MODE_MENU:
-            {
-            ClearFlag(EFlagLaunchEditMenu);
-            
-   		  //call comes here when edit key or '*' is pressed and displays avkon edit menu            
-		  //moving only the essential condition checks in EditSubmenuInUse() here
-		  //no need of checking iSharedDataInterface->EditSubmenuInUse() because for devices with edit key
-		  //this would return 0 and would not populate CUT and COPY option
-
-        	TBool tempFlag = ETrue;
-	        if ( ( ( RProcess().SecureId().iId == KPhoneSecureId ) && (iQwertyInputMode) ) ||
-	             ( ExtendedInputCapabilities() & 
-                 CAknExtendedInputCapabilities::EForceEditSubmenuStatusFlagOff)
-	        	  
-	           )
-	        	{
-	        	tempFlag = EFalse;         		
-	        	}
-
-            if (tempFlag)
-                {
-                TInt posit(0);
-                    
-                if (!(iAknEditorFlags & EAknEditorFlagFindPane) &&
-                	iInputCapabilities.FepAwareTextEditor() &&
-                    aMenuPane->MenuItemExists(EEikCmdEditCut, posit) &&
-                    !IsOnlyNumericPermitted() 
-                    )
-                    { 
-                    if (iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep() > 0 )
-                    	{
-						if (iRememberEditorState && iRememberEditorState->CcpuState() &&
-							!iRememberEditorState->CcpuState()->CcpuCanCopy()&& 
-							PluginInputMode() != EPluginInputModeItut )                      
-							{                                                       
-							TBuf<KMaxFileName> titleStr;
-							StringLoader::Load(titleStr, R_AKNFEP_OPTIONS_EDIT_MENU_CUT_TEXT);                          
-																
-							CAknFepUiInterfaceMenuPane::SItemData itemData;
-						
-							itemData.iCommandId = EAknEditMenuCmdCutText;
-							itemData.iCascadeId = 0;                        
-							if (titleStr.Length())
-								{
-								itemData.iText.Copy(titleStr.Mid(1, titleStr.Length() - 1));                                                
-								}
-							itemData.iFlags = 0;                        
-							aMenuPane->InsertMenuItemL(itemData, posit);            
-											
-							titleStr.Zero();                                            
-							itemData.iText.Zero();
-							StringLoader::Load(titleStr, R_AKNFEP_OPTIONS_EDIT_MENU_COPY_TEXT);
-							
-							itemData.iCommandId = EAknEditMenuCmdCopyText;                      
-							if (titleStr.Length())
-								{
-								itemData.iText.Copy(titleStr.Mid(1, titleStr.Length() - 1));                                                
-								}
-							aMenuPane->InsertMenuItemL(itemData, posit);                                                    
-							}
-						else //Hack for browser in case there are some text already selected
-							{
-							 if (iRememberEditorState && iRememberEditorState->CcpuState() )
-								 {
-								  if(iRememberEditorState->CcpuState()->CcpuCanPaste())
-									  aMenuPane->SetItemDimmed(EEikCmdEditPaste,EFalse);
-								  if(iRememberEditorState->CcpuState()->CcpuCanCopy())
-									  aMenuPane->SetItemDimmed(EEikCmdEditCopy,EFalse);
-								  if(iRememberEditorState->CcpuState()->CcpuCanCut())
-									  aMenuPane->SetItemDimmed(EEikCmdEditCut,EFalse);
-								 }
-							 }
-                    	}
-                    //if the document size is 0 and there are items in clipboard then dislay Paste item
-                    if ( iRememberEditorState && iRememberEditorState->CcpuState() &&
-                         iRememberEditorState->CcpuState()->CcpuCanPaste())
-                        aMenuPane->SetItemDimmed(EEikCmdEditPaste,EFalse);
-                    
-                    } 
-                
-                }                       
-            
-            DimInputmodeMenuItems(aMenuPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            //Is this an edit menu launched for a western language?
-            if ( R_AVKON_EDIT_MODE_MENU == aResourceId && !IsChineseInputLanguage() 
-                    && ELangJapanese != iLanguageCapabilities.iInputLanguageCode )
-                {
-                //If this is edit menu (launched from '*' or edit key) and predictive input is allowed,
-                    //we need to remove "Input language" and add "Input options" menu item. 
-                if (!IsOnlyNumericPermitted() && IsLanguageSupportPrediction() && !(iAknEditorFlags & EAknEditorFlagNoT9))
-                    {
-                    TInt menuitemPos(0);
-                    if(aMenuPane->MenuItemExists(EAknCmdEditInsertSmiley,menuitemPos)) // insert after smiley if exist
-                        {
-                        AddPredictiveModeEditMenuL(aMenuPane,menuitemPos+1);
-                        }
-                    else if(aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol,menuitemPos)) // insert after smybol if exist
-                        {
-                        AddPredictiveModeEditMenuL(aMenuPane,menuitemPos+1);
-                        }
-                    }
-                }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-            }
-            break;
-                        
-        case R_AVKON_PREDICTIVE_TEXT_MENU_T9:
-            {
-            if (iMode != ELatin)
-                {
-                aMenuPane->SetItemDimmed(EAknCmdT9PredictiveInsertWord, ETrue);
-                }
-            if (!IsFlagSet(EFlagInlineEditInBackground))
-                {
-                aMenuPane->SetItemDimmed(EAknCmdT9PredictiveMatches, ETrue);
-                aMenuPane->SetItemDimmed(EAknCmdT9PredictiveEditWord, ETrue);
-                }
-            else if (IsFlagSet(EFlagRemoveMatchesMenuItem))
-                {
-                aMenuPane->SetItemDimmed(EAknCmdT9PredictiveMatches, ETrue);
-                }
-            break;
-            }
-        case R_AVKON_INPUT_MODE_SUB_MENU:
-            {
-            if (IsChineseInputLanguage())
-                {
-                DoChineseSubMenu(aMenuPane);
-                }
-            break;
-        case R_AKNFEP_EDIT_SUBMENU:
-            DisableEditSubmenuItems(aMenuPane);
-            break;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Predictive QWERTY (XT9) changes ---->
-        case R_AKNFEP_PRED_INPUT_OPTIONS_SUBMENU:
-        	{
-            	// This part of code fixing TSW Errors :STAA-7GZE5W
-            	//									   :STAA-7GZEBX 
-            	// "Edit word" option is not available under edit menu in ITU-T mode.
-            	// "Insert word" Should not be available QWERTY mode.
-            //TSW: AKSS-7P87XG
-            //TSW: AKSS-7P88Wf	
-          	if (IsKoreanInputLanguage() || 
-                    iPtiEngine->CurrentLanguage()->LanguageCode() == ELangPrcChinese || 
-                    iPtiEngine->CurrentLanguage()->LanguageCode() == ELangTaiwanChinese || 
-                    iPtiEngine->CurrentLanguage()->LanguageCode() == ELangHongKongChinese  )
-          		{
-          		// No text prediction for korean.
-          		aMenuPane->SetItemDimmed(EAknFepCmdPredActivate, ETrue );
-          		aMenuPane->SetItemDimmed(EAknFepCmdPredDeactivate,ETrue );
-                aMenuPane->SetItemDimmed( EAknFepCmdPredSettings, ETrue );
-          		}
-          	else 
-                {
-                aMenuPane->SetItemDimmed( EAknFepCmdPredSettings, EFalse );
-                if(iSharedDataInterface->PredictiveTextOn())
-                    {
-                    aMenuPane->SetItemDimmed( EAknFepCmdPredActivate, ETrue );					
-                    }
-                else
-                    {
-                    aMenuPane->SetItemDimmed(EAknFepCmdPredDeactivate,ETrue ); 
-                    }	
-                }
-        	} 
-          break;
-            
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        default:
-            break;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	/*
-    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-    "Matches" and "insert word" options are not available under Edit Menu.
-    This is To make visible/invisible the Insert Word in Optios menu & Edit Menu*/
-    iIsLastResourceEditMenu = aResourceId;
-#endif  
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::FindAndRemoveInputOptionsMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane )
-    {
-    //Logic : 
-    //Loop through each item in menu pane and check if the data
-    //CEikMenuPaneItem::SData::iCascadeId == R_AKNFEP_PRED_INPUT_OPTIONS_SUBMENU
-    //or if CEikMenuPaneItem::SData::iCommandId == EAknCmdInputLanguage
-    //If so, delete that item.
-    TInt numOfMenuItems = aMenuPane->NumberOfItemsInPane();
-    CEikMenuPane* menuPane = aMenuPane->GetMenuPane();
-    for (TInt index(0); index < numOfMenuItems ; ++index )
-        {
-        CEikMenuPaneItem::SData itemData = menuPane->ItemDataByIndexL( index );
-        if ( itemData.iCascadeId == R_AKNFEP_PRED_INPUT_OPTIONS_SUBMENU ||
-             itemData.iCommandId == EAknCmdInputLanguage ||
-             itemData.iCascadeId == R_AVKON_INPUT_MODE_SUB_MENU ||
-           ( IsChineseInputLanguage() && iSharedDataInterface->QwertyInputMode() && 
-             itemData.iCommandId == EChinFepCmdModeCangJieOption ) )
-            { 
-            menuPane->DeleteBetweenMenuItems( index, index );
-            //Assumption - there can only be one such item in the menu pane
-            //Hence we can return without going through the remaining items
-            numOfMenuItems = aMenuPane->NumberOfItemsInPane();
-            index--;
-            }
-        }
-    }
-
-void CAknFepManager::FindAndRemoveEditSubMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane )
-    {
-    //Logic : 
-    //Loop through each item in menu pane and check if the data
-    //CEikMenuPaneItem::SData::iCascadeId == R_AKNFEP_EDIT_SUBMENU
-    //If so, delete that item.
-    TInt numOfMenuItems = aMenuPane->NumberOfItemsInPane();
-    CEikMenuPane* menuPane = aMenuPane->GetMenuPane();
-    for (TInt index(0); index < numOfMenuItems ; ++index )
-        {
-        CEikMenuPaneItem::SData itemData = menuPane->ItemDataByIndexL( index );
-        if ( itemData.iCascadeId == R_AKNFEP_EDIT_SUBMENU )
-            {
-            menuPane->DeleteBetweenMenuItems( index, index );
-            //Assumption - there can only be one such item in the menu pane
-            //Hence we can return without going through the remaining items
-            return;
-            }
-        }
-    }
-
-void CAknFepManager::AddInputOptionsMenuItemL( CAknFepUiInterfaceMenuPane* aMenuPane )
-    {
-    //Logic:
-    //Appropriate location is :
-    //  if Avkon Help command exists, then immediately above it
-    //  else if Avkon Exit command exists, then immediately above it
-    //  else if there are 3 or more items in the Options menu, then 3rd from last
-    //  else it is the last item. 
-    TInt posToInsertItem( 0 );
-    //MenuItemExists() will return the index of the item in 2nd parameter
-    //But if item is not found, it is returning the total number of items.
-    if ( ( aMenuPane->MenuItemExists(EAknCmdHelp, posToInsertItem) ) ||
-         ( aMenuPane->MenuItemExists(EAknCmdExit, posToInsertItem) ) )
-        {
-        //do nothing - we already have posToInsertItem with required value 
-        }
-    else 
-        {
-        TInt numOfMenuItems = aMenuPane->NumberOfItemsInPane();
-        if ( numOfMenuItems > 2 )
-            {
-            //We should add the new item as third from last, after ignoring
-            //any dimmed items in the menu pane
-            TInt numOfUnDimmedItems(0);
-            //loop from bottom for better performance 
-            for (TInt index(numOfMenuItems-1); index >= 0 ; --index )
-                {
-                CEikMenuPaneItem::SData itemData = aMenuPane->GetMenuPane()->ItemDataByIndexL( index );
-                if ( !(itemData.iFlags & EEikMenuItemDimmed) )
-                    {
-                    ++numOfUnDimmedItems;
-                    }
-                if ( numOfUnDimmedItems == 2 )
-                    {
-                    //We have our position - save it and break from this loop
-                    if ( index > 1 )
-                        {
-                        posToInsertItem = index;
-                        }
-                    else 
-                        {
-                        //There are two or less items on this menu that will be displayed
-                        //Hence, push ITI options to the end of the list:
-                        posToInsertItem = numOfMenuItems;
-                        }
-                    break;
-                    }
-                }
-            }
-        else 
-            {
-            posToInsertItem = numOfMenuItems;
-            }
-        }
-    //Now we have the position at which we need to insert the menu item. 
-    if (
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-    iQwertyInputMode &&
-#endif   		
-    IsLanguageSupportPrediction() && !(iAknEditorFlags & EAknEditorFlagNoT9))
-        {
-        AddPredictiveModeOptionsL(aMenuPane, posToInsertItem);
-        }
-    else
-        {
-        AddInputLanguageItemL(aMenuPane, posToInsertItem);
-        }
-    }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-
-
-void CAknFepManager::AddEditSubmenuL(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    // Adds edit-submenu to options menu when required contidions are met.
-    // Edit-submenu is added if:
-    //  1. There is active editor on screen
-    //  2. Editor contains text or there is text in clipboard.
-    //  3. Editor is not in Find Pane.
-    //
-    // Since menu will have focus, we also need to remeber certain values
-    // to be able to access undelying editor attributes.
-    
-    CAknEdwinState* editorState = EditorState();
-    iEditorCcpuStatus = 0;        
-    if (editorState && editorState->CcpuState())
-        {
-        iEditorCcpuStatus = EditorCcpuStatus(editorState);    
-        }
-    else
-        {
-        // The editor doesn't have ccpu-capability, doen't display the menu.
-        return; 
-        }            
-    TInt index;
-    if (aMenuPane->MenuItemExists(EAknCmdEditTextMenu, index))
-        {
-        return;    
-        }
-        
-    iRememberLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();      
-    
-    if (iRememberLength > 0 || (iEditorCcpuStatus & ECcpuStatusFlagCanPaste))
-        {
-		if (aMenuPane->MenuItemExists(EAknCmdEditItemPlaceHolder, index) ||
-				aMenuPane->MenuItemExists(EAknCmdInputLanguage, index) ||
-		    aMenuPane->MenuItemExists(EAknCmdHelp, index) || 
-            aMenuPane->MenuItemExists(EAknCmdExit, index))  
-            {
-            TBuf<KMaxFileName> titleStr;
-            StringLoader::Load(titleStr, R_AKNFEP_OPTIONS_EDIT_SUBMENU_TITLE);          
-        
-            CAknFepUiInterfaceMenuPane::SItemData mData;
-                            
-            mData.iCommandId = EAknCmdEditTextMenu;
-            mData.iCascadeId = R_AKNFEP_EDIT_SUBMENU;  
-            mData.iFlags = 0;
-            mData.iText.Copy(titleStr.Mid(1, titleStr.Length() - 1).Left(
-               CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-                            
-            aMenuPane->InsertMenuItemL(mData, index);  
-
- 			if(aMenuPane->MenuItemExists(EAknCmdEditItemPlaceHolder, index))
-    			{
-    			    aMenuPane->DeleteMenuItem(EAknCmdEditItemPlaceHolder);
-    			   
-    			}
-            // Remember editor state, because there is no access to it while
-            // menu is on screen.
-            iRememberEditorState = editorState;              
-            }                                           
-        }               
-    }
-
-    
-void CAknFepManager::DisableEditSubmenuItems(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    aMenuPane->SetItemDimmed(EAknEditMenuCmdCopyText, ETrue); 
-    aMenuPane->SetItemDimmed(EEikCmdEditCopy, ETrue);
-    aMenuPane->SetItemDimmed(EAknEditMenuCmdCutText, ETrue);  
-    aMenuPane->SetItemDimmed(EEikCmdEditCut, ETrue);
-    aMenuPane->SetItemDimmed(EEikCmdEditPaste, ETrue);                                          
-    
-    if (iRememberLength > 0)
-        {           
-        if (iEditorCcpuStatus & ECcpuStatusFlagCanCopy)
-            {
-            aMenuPane->SetItemDimmed(EEikCmdEditCopy, EFalse);              
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EAknEditMenuCmdCopyText, EFalse);                                      
-            }   
-                        
-        if (iEditorCcpuStatus & ECcpuStatusFlagCanCut)
-            {
-            aMenuPane->SetItemDimmed(EEikCmdEditCut, EFalse);               
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EAknEditMenuCmdCutText, EFalse);                                   
-            }               
-        }
-                        
-    if (iEditorCcpuStatus & ECcpuStatusFlagCanPaste)            
-        {
-        aMenuPane->SetItemDimmed(EEikCmdEditPaste, EFalse);             
-        }   
-    }
-    
-
-void CAknFepManager::StartCcpuModeL(TBool aCopyMode)
-    {
-    ResetCcpuFlags();
-    if (!iUiInterface->SoftkeysExist())
-        {
-        iUiInterface->CreateSoftkeys(R_AVKON_SOFTKEYS_EMPTY, this);
-        }
-        
-    TBool update = EFalse;
-    if (aCopyMode)
-        {
-        SetCcpuFlag(ECcpuStateStartCopy);
-        update = UpdateCBALabelL(ELeftSoftkeyIndex, EAknFepSoftkeyStartCopy, 
-                                 R_AKNFEP_SOFTKEY_CCPU_START);      
-        update |= UpdateCBALabelL( EMiddleSoftkeyIndex, EAknFepSoftkeyStartCopy, 
-                                   R_AVKON_SOFTKEY_SELECT_TEXT ); 
-        }
-    else
-        {
-        SetCcpuFlag(ECcpuStateStartCut);
-        update = UpdateCBALabelL(ELeftSoftkeyIndex, EAknFepSoftkeyStartCut, 
-                                 R_AKNFEP_SOFTKEY_CCPU_START);               
-        update |= UpdateCBALabelL( EMiddleSoftkeyIndex, EAknFepSoftkeyStartCut, 
-                                   R_AVKON_SOFTKEY_SELECT_TEXT ); 
-        }
-        
-    update |= UpdateCBALabelL(ERightSoftkeyIndex, EAknFepSoftkeyCloseWindow,
-                              R_AKNFEP_SOFTKEY_CCPU_CANCEL);
-        
-    if (update)
-        {
-        iUiInterface->DrawSoftkeysNow();
-        }           
-
-    iIndicator->SetCopyMode(ETrue);
-    UpdateIndicators(); // updates status of indicators
-    }
-
-
-TBool CAknFepManager::OkToActivateSelectionMode() const
-    {
-    if (iFepManState != EAknFepStateNull && 
-        iInputCapabilities.FepAwareTextEditor() &&
-        !(iAknEditorFlags & EAknEditorFlagFindPane))
-        {               
-        return ETrue;       
-        }
-    
-    return EFalse;  
-    }
-
-
-TBool CAknFepManager::HandleCcpuModeKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode,
-                                             TKeyResponse& aRetCode, TBool aLongPressFlag)
-    {
-    TKeyPressLength length = aKeyEvent.iRepeats ? ELongKeyPress : EShortKeyPress;
-    TBool indicLang = TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(
-                                     iLanguageCapabilities.iInputLanguageCode))
-#ifdef RD_HINDI_PHONETIC_INPUT
-    || TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(TLanguage(
-                                     iLanguageCapabilities.iInputLanguageCode))
-#endif
-    ;
-    if(aKeyEvent.iCode == EKeyEscape)
-        return EFalse;
-    if (aEventCode == EEventKey && aKeyEvent.iCode == '*')
-        {
-        iStarScan = aKeyEvent.iScanCode;
-        }
-
-    if ((aKeyEvent.iScanCode == EStdKeyDevice0)
-     || (aKeyEvent.iScanCode == EStdKeyDevice1))
-        {
-        if (HashKeySelectionInUse()
-         && IsCcpuFlagSet(ECcpuStateHashDown))
-            {
-            if (IsCcpuFlagSet(ECcpuStateChangeToPredictionMode))
-                {
-                ClearCcpuFlag(ECcpuStateChangeToPredictionMode);
-                if (iModeBefore == ELatin
-                 || iModeBefore == EHiraganaKanji)
-                    {
-                    TBool preFlag = IsPredictive();
-                    TryChangePredictiveInputModeL(!preFlag);
-                    }
-                else
-                    {
-                    TryChangeToModeBeforeL();
-                    }
-                }
-            }
-        // Always let sofkeys fall through.
-        return EFalse;      
-        }
-                
-    if (IsCcpuFlagSet(ECcpuStateSelectionEventPosted))
-        {
-        ClearCcpuFlag(ECcpuStateSelectionEventPosted);
-        return EFalse;  
-        }       
-                        
-    if (HashKeySelectionInUse())
-        {       
-        if (aKeyEvent.iScanCode == EStdKeyHash && aEventCode == EEventKeyDown
-            && iInputCapabilities.FepAwareTextEditor())
-            {
-            SetCcpuFlag(ECcpuStateHashDown);
-            iHashKeyMan->ResetPreviousSelectionStyleMode();
-            return EFalse;
-            }
-            
-        if (!IsOnlyNumericPermitted())
-            {
-            if (IsFeatureSupportedJapanese())
-                {
-                if (FepUI()->IsValidShiftKeyPress()
-                 && aKeyEvent.iScanCode == iStarScan
-                 && !iQwertyInputMode
-                 && !(iMode == EKatakana && iFepManState == EAknFepStateUIActive))
-                    {
-                    if ( aEventCode == EEventKeyUp && !aLongPressFlag
-                     && !(iMode == ELatin && WesternPredictive()
-                          && iFepManState == EAknFepStateUIActive))
-                        {
-                        if (!IsCcpuFlagSet(ECcpuStateIgnoreStarUp))
-                            {
-                            LaunchSpecialCharacterTableL();
-                            }
-                        return EFalse;
-                        }
-                    else if ( aEventCode == EEventKey
-                           && !aLongPressFlag
-                           && length == ELongKeyPress )
-                        {
-                        LaunchSelectModeMenuL();
-                        aRetCode = EKeyWasConsumed;
-                        return ETrue;
-                        }
-                    }
-                }
-            else
-                {
-                if ((aKeyEvent.iScanCode == iStarScan && aEventCode == EEventKeyUp &&
-                    !aLongPressFlag && !iQwertyInputMode) &&
-                (!indicLang || WesternPredictive() || (iMode == ENumber || iMode == ENativeNumber) ))
-                {
-                // Disables *-key on korean multitapping mode
-                if(IsKoreanInputLanguage() && iMode == EHangul)
-                	{
-                	SetCcpuFlag(ECcpuStateIgnoreStarUp);	
-                	}
-				
-                if (!IsCcpuFlagSet(ECcpuStateIgnoreStarUp))
-                    {
-#ifdef RD_SCALABLE_UI_V2                    
-                    if (iFepPluginManager->CurrentFepInputUI())
-                        {
-                        if (iFepPluginManager->CurrentFepInputUI()->HandleKeyL(EStdKeyNull, EShortKeyPress))
-                            {
-                            return EFalse;
-                            }
-                        }
-#endif                        
-                    LaunchSelectModeMenuL();
-                    aRetCode = EKeyWasConsumed;
-                    return ETrue;
-                    }
-                return EFalse;
-                }
-            else if((aKeyEvent.iScanCode == iStarScan && aEventCode == EEventKey
-                && !aLongPressFlag && !iQwertyInputMode)
-                && (indicLang)
-                && (! WesternPredictive())
-                && (length == ELongKeyPress)
-                && (iMode != ENumber && iMode != ENativeNumber ))            
-                {
-                    LaunchSelectModeMenuL();
-                    return EFalse;
-                    }
-                }
-            }
-        }
-        
-    if (IsCcpuFlagSet(ECcpuStateHashDown))
-        {
-        if (aEventCode == EEventKey)
-            {                   
-            if (aKeyEvent.iScanCode == EStdKeyDownArrow
-                || aKeyEvent.iScanCode == EStdKeyRightArrow
-                || aKeyEvent.iScanCode == EStdKeyLeftArrow
-                || aKeyEvent.iScanCode == EStdKeyUpArrow)
-                {
-				if (IsFlagSet(EFlagInsideInlineEditingTransaction) && iMode == EHangul) 
-					{
-					CommitInlineEditL();
-       				iPtiEngine->ClearCurrentWord();
-					}
-										
-                if ((IsCcpuFlagSet(ECcpuStateStartCopy)) ||
-                    (IsCcpuFlagSet(ECcpuStateStartCut)))
-                    {
-                    aRetCode = EKeyWasConsumed;             
-                    return ETrue;   
-                    }
-                
-                if (!IsCcpuFlagSet(ECcpuStateEdwinInSelectionMode))
-                    {
-                    // User wants to select and not to change mode, so cancel the mode change
-                    // caused by initial hash key press.                                    
-                    if(!(iAknEditorFlags & EAknEditorFlagFindPane))
-                        {                               
-                        iHashKeyMan->SetPreviousSelectionStyleModeL();                                                   
-                        SetCcpuFlag(ECcpuStateEdwinInSelectionMode);
-                        TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-                        // to enable copy/paste support on cba. We simulate via CCoeEnv
-                        // to avoid fep SimulateKeyEventL adding shift modifiers
-                        CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey); 
-                        }
-                    }
-
-                // If prediction is changed while pressing hash-key,
-                // it go back previous prediction state.
-                if (IsCcpuFlagSet(ECcpuStateChangeToPredictionMode))
-                    {
-                    ClearCcpuFlag(ECcpuStateChangeToPredictionMode);
-                    if (iModeBefore == ELatin
-                     || iModeBefore == EHiraganaKanji)
-                        {
-                        TBool preFlag = IsPredictive();
-                        TryChangePredictiveInputModeL(!preFlag);
-                        }
-                    else
-                        {
-                        TryChangeToModeBeforeL();
-                        }
-                    }
-                    
-                if (WesternPredictive() && IsFlagSet(EFlagInsideInlineEditingTransaction))                    
-                    {      
-                    // This will commit inline edit if it is active for predictive mode.                              
-                    return EFalse;
-                    }
-
-                aRetCode = EKeyWasNotConsumed;
-                return ETrue;
-                }
-            else if (aKeyEvent.iScanCode == EStdKeyBackspace)   
-                {                               
-                if (!(aKeyEvent.iModifiers & EStdKeyLeftShift))
-                    {                                   
-                    // Simulate edit key + clear key functionality via hash key in no-edit-key device.              
-                    TKeyEvent ccpuStart = {127, EStdKeyBackspace, EStdKeyLeftShift, 0};
-                    CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);                    
-                    
-                    aRetCode = EKeyWasConsumed;             
-                    return ETrue;                                       
-                    }
-                else if (!IsCcpuFlagSet(ECcpuStateHashKeyDeleteDone))
-                    {
-                    // Hash key + clear key was pressed, but hash key was released before
-                    // changing to selection mode. Need to return to previous mode, because
-                    // user didn't want to change input mode.                       
-                    iHashKeyMan->SetPreviousSelectionStyleModeL();
-                    SetCcpuFlag(ECcpuStateHashKeyDeleteDone);
-                    }
-
-                // If prediction is changed while pressing hash-key,
-                // it go back previous prediction state.
-                if (IsCcpuFlagSet(ECcpuStateChangeToPredictionMode))
-                    {
-                    ClearCcpuFlag(ECcpuStateChangeToPredictionMode);
-                    if (iModeBefore == ELatin
-                     || iModeBefore == EHiraganaKanji)
-                        {
-                        TBool preFlag = IsPredictive();
-                        TryChangePredictiveInputModeL(!preFlag);
-                        }
-                    else
-                        {
-                        TryChangeToModeBeforeL();
-                        }
-                    }
-
-                }
-            }
-        else if (aKeyEvent.iScanCode == EStdKeyHash && aEventCode == EEventKeyUp)
-            {
-            ClearCcpuFlag(ECcpuStateHashDown
-                          | ECcpuStateHashKeyDeleteDone
-                          | ECcpuStateChangeToPredictionMode);
-            if (IsCcpuFlagSet(ECcpuStateEdwinInSelectionMode))
-                {
-                SetCcpuFlag(ECcpuStateSelectionEventPosted);
-                ClearCcpuFlag(ECcpuStateEdwinInSelectionMode);
-                SetFlag(EFlagLongShiftKeyPress);
-
-                TKeyEvent ccpuStart = {0, EStdKeyLeftShift, 0, 0};
-                CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);
-                }
-
-            return EFalse;
-            }
-        } 
-    
-    if (IsCcpuFlagSet(ECcpuStateStartCopy | ECcpuStateStartCut))    
-        {
-        if (aKeyEvent.iScanCode == EStdKeyDevice3 && aEventCode == EEventKey)
-            {
-            aRetCode = EKeyWasConsumed;                         
-            if (IsCcpuFlagSet(ECcpuStateStartCopy))
-                {
-                ProcessCommandL(EAknFepSoftkeyStartCopy);
-                }
-            else
-                {
-                ProcessCommandL(EAknFepSoftkeyStartCut);                
-                }                   
-            return ETrue;               
-            }       
-        else if (aKeyEvent.iScanCode < EStdKeyLeftArrow ||
-                 aKeyEvent.iScanCode > EStdKeyDownArrow) 
-            {       
-            aRetCode = EKeyWasConsumed;             
-            return ETrue;   
-            }
-        }       
-    else if (IsCcpuFlagSet(ECcpuStateCopy | ECcpuStateCut))
-        {       
-        if ((aKeyEvent.iScanCode >= EStdKeyLeftArrow) && (aKeyEvent.iScanCode <= EStdKeyDownArrow)) 
-            {   
-            if (!(aKeyEvent.iModifiers & EModifierShift))
-                {
-                TKeyEvent ccpuStart = aKeyEvent;
-                ccpuStart.iModifiers |= EModifierShift;
-                ccpuStart.iModifiers |= EModifierRightShift;
-                CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);        
-                
-                aRetCode = EKeyWasConsumed;
-                return ETrue;                                                                                                       
-                }  
-            else
-                {
-                aRetCode = EKeyWasNotConsumed;              
-                return ETrue;
-                }               
-            }
-        
-        TCursorSelection cursorSelection;
-        if( iInputCapabilities.FepAwareTextEditor() )
-        	{
-			iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSelection); 
-			if( (aEventCode ==  EEventKeyUp) && (cursorSelection.Length() == 0) 
-				&& ((aKeyEvent.iScanCode ==  EStdKeyBackspace) || (aKeyEvent.iCode ==  EKeyBackspace)
-				|| (aKeyEvent.iScanCode ==  EStdKeyDelete) || (aKeyEvent.iCode ==  EKeyDelete))) 
-				{
-				ClearCcpuFlag(ECcpuStateButton);
-				}
-			}
-        if (aKeyEvent.iScanCode != EStdKeyBackspace && aKeyEvent.iCode != EKeyOK)   
-            {                           
-            aRetCode = EKeyWasConsumed;
-            return ETrue;                                                       
-            }
-        else
-            {
-            if (iInputCapabilities.FepAwareTextEditor())            
-                {
-                TCursorSelection cursorSelection;                               
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSelection); 
-                if (cursorSelection.Length() == 0)      
-                    {
-                    aRetCode = EKeyWasConsumed;
-                    return ETrue;                                                                           
-                    }
-                else if (aKeyEvent.iScanCode == EStdKeyBackspace)
-                    {
-                    // Selection will be removed, handle cba button state accordingly                    
-                    if (iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep() ==
-                        cursorSelection.Length())
-                        {
-                        // Whole text was selected and will be removed. Cancel the ccpu mode.
-                        ProcessCommandL(EAknFepSoftkeyCloseWindow);
-                        }
-                    else    
-                        {
-                        // Part of the text will be removed. Set Cba-buttons to initial ccpu-mode status.                        
-                        __ASSERT_DEBUG(iUiInterface->SoftkeysExist(),
-                                    AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));
-                 
-                        TBool update = UpdateCBALabelL(ELeftSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY);
-                        update |= UpdateCBALabelL(ERightSoftkeyIndex, EAknFepSoftkeyCloseWindow, R_AKNFEP_SOFTKEY_CCPU_CANCEL);
-                        update |= UpdateCBALabelL( EMiddleSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY ); 
-                        if (update)
-                            {
-                            iUiInterface->DrawSoftkeysNow();
-                            }                                                                     
-                        }
-                    }                    
-                }
-            }                                   
-        }
-        
-    return EFalse;  
-    }
-    
-    
-
-void CAknFepManager::AddInputLanguageItemL(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex)
-    {
-    CAknFepUiInterfaceMenuPane::SItemData mData;
-    
-    TBuf<KMaxFileName> langStr;
-    TInt Inputlangindex;
-    if(!aMenuPane->MenuItemExists(EAknCmdInputLanguage, Inputlangindex))
-	    {    
-    StringLoader::Load(langStr, R_AKNFEP_OPTIONS_INPUT_LANGUAGE);
-    
-    mData.iCommandId = EAknCmdInputLanguage;
-    mData.iCascadeId = 0;  
-    mData.iFlags = 0;
-    mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-    
-    aMenuPane->InsertMenuItemL(mData, aIndex); 
-	    }
-    
-    // Chinese input mode switching from the option menu
-    if (IsChineseInputLanguage() && iSharedDataInterface->QwertyInputMode())
-        {
-        // Add Chinese language items
-        langStr.Zero();
-        
-        StringLoader::Load(langStr, R_AKNFEP_OPTIONS_INPUT_MODE_CHI);
-        
-        mData.iCommandId = EAknCmdInputMethod;
-        mData.iCascadeId = R_AVKON_INPUT_MODE_SUB_MENU;
-        mData.iFlags = 0;
-        mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-        
-        aMenuPane->InsertMenuItemL(mData, ++aIndex);
-        
-        // Check if the current engine has CangJie feature or not, if not
-        // then CangJie mode becomes invisible, similar impl in IsInputModeAvailable
-        // and DoChineseSubMenu        
-        TBool isCangJieSupported = EFalse;
-        MPtiCoreInfo* ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineNormalCangjieQwerty);
-        if ( ptiCoreInfo )
-            {
-            isCangJieSupported = ptiCoreInfo->CapsBits() & ESupportCangjieInput;
-            }
-        
-        // Add Hong Kong CangJie option, option available only in HK variant and qwerty mode
-        if ( iLanguageCapabilities.iInputLanguageCode == 
-             ELangHongKongChinese && isCangJieSupported )
-            {
-            langStr.Zero();
-            
-            StringLoader::Load(langStr, R_AKNFEP_OPTIONS_CANGJIE_MODE);
-            
-            mData.iCommandId = EChinFepCmdModeCangJieOption;
-            mData.iCascadeId = 0;
-            mData.iFlags = 0;
-            mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-            
-            aMenuPane->InsertMenuItemL(mData, ++aIndex);          
-            }
-        }
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-void CAknFepManager::AddPredictiveModeOptionsL(CAknFepUiInterfaceMenuPane* aMenuPane, 
-                                               TInt aIndex ) const
-    {
-    CAknFepUiInterfaceMenuPane::SItemData mData;
-    
-    HBufC* inputMenuStr = StringLoader::LoadLC(R_AKNFEP_PRED_OPTIONS_INPUT_OPTIONS);
-    
-    mData.iCommandId = 0;
-    mData.iCascadeId = R_AKNFEP_PRED_INPUT_OPTIONS_SUBMENU;  
-    mData.iFlags = 0;
-    mData.iText.Copy(inputMenuStr->Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-    
-    CleanupStack::PopAndDestroy(inputMenuStr);
-    
-    aMenuPane->InsertMenuItemL(mData, aIndex);
-       
-    // Chinese input mode switching from the option menu
-    if (IsChineseInputLanguage() && iSharedDataInterface->QwertyInputMode())
-        {
-        // Add Chinese language items
-        TBuf<KMaxFileName> langStr;
-        
-        langStr.Zero();
-        
-        StringLoader::Load(langStr, R_AKNFEP_OPTIONS_INPUT_MODE_CHI);
-        
-        mData.iCommandId = EAknCmdInputMethod;
-        mData.iCascadeId = R_AVKON_INPUT_MODE_SUB_MENU;
-        mData.iFlags = 0;
-        mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-        
-        aMenuPane->InsertMenuItemL(mData, ++aIndex);
-        
-        // Check if the current engine has CangJie feature or not, if not
-        // then CangJie mode becomes invisible, similar impl in IsInputModeAvailable
-        // and DoChineseSubMenu        
-        TBool isCangJieSupported = EFalse;
-        MPtiCoreInfo* ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineNormalCangjieQwerty);
-        if ( ptiCoreInfo != NULL)
-            {
-            isCangJieSupported = ptiCoreInfo->CapsBits() & ESupportCangjieInput;
-            }
-#ifdef __HALF_QWERTY_KEYPAD
-        isCangJieSupported = isCangJieSupported && (iKeyboardType != EPtiKeyboardHalfQwerty);
-#endif //__HALF_QWERTY_KEYPAD
-        
-        // Add Hong Kong CangJie option, option available only in HK variant and qwerty mode
-        if ( iLanguageCapabilities.iInputLanguageCode == ELangHongKongChinese && isCangJieSupported )
-            {
-            langStr.Zero();
-            
-            StringLoader::Load(langStr, R_AKNFEP_OPTIONS_CANGJIE_MODE);
-            
-            mData.iCommandId = EChinFepCmdModeCangJieOption;
-            mData.iCascadeId = 0;
-            mData.iFlags = 0;
-            mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-            
-            aMenuPane->InsertMenuItemL(mData, ++aIndex);          
-            }
-        }
-    }
-
-void CAknFepManager::AddPredictiveModeEditMenuL(CAknFepUiInterfaceMenuPane* aMenuPane, 
-                                                TInt aIndex ) const
-	{
-	// Remove Predictive Edit menu option if XT9 options are there --->
-	aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, ETrue);
-    aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, ETrue);
-	// Remove Predictive Edit menu option if XT9 options are there <---
-	//if current writing language supports prediction then display input options settings --> 
-    //if current writing language does not supports prediction then display only input language 
-    //option to modify the writing language, when user wants to modify when edit query is launched. <--
-     TBool isLanguagugeSupportsPrediction = EFalse;
-     switch(iKeyboardType)
-     {
-		 case EPtiKeyboardHalfQwerty:
-#ifdef __HALF_QWERTY_KEYPAD		 
-		 		isLanguagugeSupportsPrediction = (iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive); 
-#endif   //__HALF_QWERTY_KEYPAD
-		    break;
-     case EPtiKeyboardQwerty4x12:
-     case EPtiKeyboardQwerty4x10:  
-     case EPtiKeyboardQwerty3x11:
-     case EPtiKeyboardCustomQwerty:
-		 		isLanguagugeSupportsPrediction = (iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternQwertyPredictive);
-		    break;
-     case EPtiKeyboardNone:
-     case EPtiKeyboard12Key:
-		 		isLanguagugeSupportsPrediction = (!iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternPredictive);
-		    break;
-		 default:
-		 		isLanguagugeSupportsPrediction = (!iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternPredictive);
-		    break;    
-		 }
-     if (isLanguagugeSupportsPrediction && !(iAknEditorFlags & EAknEditorFlagNoT9))
-         {
-         aMenuPane->SetItemDimmed(EAknCmdInputLanguage, ETrue);           
-         AddPredictiveModeOptionsL(aMenuPane, aIndex);
-         }
-	}
-// Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::DoChineseSubMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    // ZhuyinFind & StrokeFind ONLY available for FindEditors
-    if (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)
-        {
-        if (iMode == EZhuyinFind)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyinFind, ETrue);
-            }
-        
-        if (iMode == EStrokeFind)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeStrokeFind, ETrue);
-            }        
-        }
-    else
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyinFind, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeStrokeFind, ETrue);
-        }
-    
-    // Customize menu item for Chinese mainland
-    if (iLanguageCapabilities.iInputLanguageCode == ELangPrcChinese)
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModeCangJie, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyin, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyinFind, ETrue);
-        
-        if (iMode == EPinyin)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModePinyin, ETrue);
-            }
-        else if (iMode == EStroke)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeStroke, ETrue);
-            }
-        else if (iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-            }
-        else
-            return;
-        }
-    // Customize menu item for HongKong
-    else if (iLanguageCapabilities.iInputLanguageCode == ELangHongKongChinese)
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModePinyin, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyin, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyinFind, ETrue);     
-        
-        TBool isCangJieSupported = EFalse;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if ( EPtiKeyboardQwerty3x11 == KeyboardLayout() )
-        	{
-        	isCangJieSupported = ETrue;
-        	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT      
-#ifdef __HALF_QWERTY_KEYPAD
-        isCangJieSupported = isCangJieSupported && (iKeyboardType != EPtiKeyboardHalfQwerty);
-#endif //__HALF_QWERTY_KEYPAD
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        
-        // CangJie is only for qwerty mode
-        if ( !iSharedDataInterface->QwertyInputMode() || !isCangJieSupported )
-            aMenuPane->SetItemDimmed(EChinFepCmdModeCangJie, ETrue);
-        
-        if (iMode == EStroke)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeStroke, ETrue);              
-            }
-        else if (iMode == ECangJie)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeCangJie, ETrue);
-            }
-        else if (iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-            }
-        else
-            return;                
-        }
-    // Customize menu item for TaiWan
-    else if (iLanguageCapabilities.iInputLanguageCode == ELangTaiwanChinese)
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModePinyin, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeCangJie, ETrue);
-        
-        if (iMode == EStroke)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeStroke, ETrue);
-            }
-        else if (iMode == EZhuyin)
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyin, ETrue);
-            }
-        else if (iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-            }
-        else
-            return;                 
-        }
-    else
-        return;    
-    }
-#ifdef RD_SCALABLE_UI_V2
-       
-void CAknFepManager::DoWesternTouchMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    const TInt inputLanguage = iLanguageCapabilities.iInputLanguageCode;
-    // if mode is already hangul or language is not korean dim korean mode menu item
-    TInt index;
-        
-    if( iMode == EHangul || inputLanguage != ELangKorean || !(IsModePermitted(EHangul)))
-        {
-        if ( aMenuPane->MenuItemExists( EAknCmdEditModeKorean, index) )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeKorean, ETrue);
-            }
-        }
-    else
-        {
-        if ( aMenuPane->MenuItemExists( EAknCmdEditModeKorean, index ) )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeKorean, EFalse);
-            }
-        }
-    // remove Chinese specific items from menu
-    aMenuPane->SetItemDimmed(EAknCmdEditModeAlpha, ETrue);    
-    
-    if (aMenuPane->MenuItemExists(EJapanFepCmdModeUserDic, index))
-        {
-        aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);
-        }
-
-    // T9 stuff
-    if (WesternPredictive())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, EFalse);
-        if(iPtiEngine->CurrentLanguage()->HasInputMode(EPtiEngineWordCompletion))
-        	{
-        	// Disable Autoword Completion feature for Touch Input
-        	#ifndef RD_SCALABLE_UI_V2  
-        	aMenuPane->SetItemDimmed(EAknCmdPredictiveModeCascade, EFalse);	
-        	#endif // RD_SCALABLE_UI_V2
-        	}
-        	
-        if (aMenuPane->MenuItemExists(EAknCmdT9PredictiveT9Off, index)) 
-            {
-            aMenuPane->SetItemDimmed(EAknCmdT9PredictiveT9Off, EFalse);
-            }          	
-        }
-    else
-        {
-        if ( (iPermittedInputModes & EAknEditorTextInputMode) &&
-            !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-            iMode == ELatin &&
-            !IsKoreanInputLanguage() &&
-            iLanguageCapabilities.iSupportsWesternPredictive)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, EFalse);
-            }
-        }
-
-    if (  ( iMode == ENumber || iMode == ENativeNumber ) &&
-        (iPermittedInputModes & (EAknEditorTextInputMode | EAknEditorSecretAlphaInputMode)) )
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeAlpha, EFalse); 
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        if( iMode == EHangul || inputLanguage == ELangKorean)
-            {
-            TInt index;
-            if ( aMenuPane->MenuItemExists( EAknCmdEditModeKorean, index ) )
-                {
-                aMenuPane->SetItemDimmed(EAknCmdEditModeKorean, EFalse);
-                }
-            }
-        }
-
-    if ( IsModePermitted(ENumber) )
-        {
-        if (( iMode != ENumber ||
-            iMode == ENumber && iLanguageCapabilities.iArabicIndicDigitsAllowed &&
-            !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            (iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic)) 
-            || ( iMode != ENumber ||
-            iMode == ENumber && iLanguageCapabilities.iEasternArabicIndicDigitsAllowed &&
-            !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            (iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic))
-            ||( iMode != ENumber ||
-            iMode == ENumber && iLanguageCapabilities.iIndicDigitsAllowed &&
-            !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            (iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari)) &&
-            (!(iPermittedInputModes==EAknEditorNumericInputMode))) // hide the menu if number editor
-            
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeNumber, EFalse);
-            }
-        }
-    //modified by zhangfeiyan, fix bug SKIN-7LABJ3
-    if ( IsModePermitted( ENativeNumber ) )
-        {
-       if ( iLanguageCapabilities.iArabicIndicDigitsAllowed &&
-            !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            iMode != ENativeNumber )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeArabicIndicNumber, EFalse);
-            }
-        else if ( iLanguageCapabilities.iEasternArabicIndicDigitsAllowed &&
-            !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            iMode != ENativeNumber )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeEasternArabicIndicNumber, EFalse);
-            }   
-        else if( iLanguageCapabilities.iIndicDigitsAllowed && 
-            !( iAknEditorFlags & EAknEditorFlagLatinInputModesOnly ) &&       
-
-            iMode != ENativeNumber )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeIndicNumber, EFalse);   
-            }
-        }
-
-    if (IsAbleToLaunchSCT())
-        {
-        if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)) 
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, EFalse);
-            }
-        }
-
-    if ( iMode != ENumber && iMode != ENativeNumber && 
-         iPtiEngine->NumberOfLanguages() > 1 &&
-        !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdInputLanguage, EFalse);
-        }
-        
-    if (iPermittedInputModes == EAknEditorNumericInputMode)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        }
-    else if ( (iMode == ELatin || iMode == ENumber || iMode == ENativeNumber ) &&
-        (iPermittedInputModes & EAknEditorSecretAlphaInputMode) &&
-        !(iPermittedInputModes & EAknEditorTextInputMode))
-        {
-        // Text case mode is not available in secret editors.
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        }
-        
-    if (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        }   
-        
-    if (iCaseMan->CurrentCase() == EAknEditorUpperCase)
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);   
-        }
-    else if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);   
-        }
-        
-    aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);    
-    
-    if (!(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) 
-    && iFepPluginManager->IsNonLatinLanguage(TLanguage(iSharedDataInterface->InputTextLanguage())))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        }             
-    if( iMode == EHangul )
-        {
-        //aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, EFalse);
-        //aMenuPane->SetItemDimmed(EAknCmdEditModeAlpha, EFalse);
-        
-        aMenuPane->SetItemDimmed(EAknCmdEditModeEnglish, EFalse);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        
-        }
-    else
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeEnglish, ETrue);
-        }
-    }    
-
-void CAknFepManager::DoChineseTouchMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    TInt index;
-    if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)
-        && aMenuPane->MenuItemExists(EJapanFepCmdModeUserDic, index)) 
-        {
-        aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);    
-        }
-
-    if (WesternPredictive())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, EFalse);
-        if(iPtiEngine->CurrentLanguage()->HasInputMode(EPtiEngineWordCompletion))
-        	{
-        	// Disable Autoword Completion feature for Touch Input
-        	#ifndef RD_SCALABLE_UI_V2  
-        	aMenuPane->SetItemDimmed(EAknCmdPredictiveModeCascade, EFalse);	
-        	#endif // RD_SCALABLE_UI_V2
-        	}
-        	
-        if (aMenuPane->MenuItemExists(EAknCmdT9PredictiveT9Off, index)) 
-            {
-            aMenuPane->SetItemDimmed(EAknCmdT9PredictiveT9Off, EFalse);
-            }             	
-        }
-    else
-        {
-        if ( (iPermittedInputModes & EAknEditorTextInputMode) &&
-            !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-            iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, EFalse);
-            }
-        }
-    if (IsAbleToLaunchSCT() &&
-        aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, EFalse);
-        }
-    if( (iFepPluginManager && (iFepPluginManager->PluginInputMode() != EPluginInputModeItut ) ) 
-            && aMenuPane->MenuItemExists(EChinFepCmdInstructions, index) )  
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdInstructions, ETrue);
-        }
-    else if ( !(iPermittedInputModes == EAknEditorNumericInputMode ||
-        iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) )
-        {
-        if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)) 
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdInstructions, EFalse);
-            }
-        }
-
-    if ( iMode != ENumber && iPtiEngine->NumberOfLanguages() > 1  &&
-        !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdInputLanguage, EFalse);
-        }
-
-    if (iPermittedInputModes == EAknEditorNumericInputMode)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        }
-    else if ( (iMode == ELatin || iMode == ENumber) &&
-        (iPermittedInputModes & EAknEditorSecretAlphaInputMode) &&
-        !(iPermittedInputModes & EAknEditorTextInputMode))
-        {
-        // Text case mode is not available in secret editors.
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        }
-    if (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        }
-
-    if ( IsModePermitted(ENumber) && iMode != ENumber )
-        {
-        //aMenuPane->SetItemDimmed(EChinFepCmdModeNumber, EFalse);  // original statement
-        aMenuPane->SetItemDimmed(EAknCmdEditModeNumber, EFalse);
-        // end modifying
-        }
-    }
-TBool CAknFepManager::IsChineseInputMode( TInt aMode )
-    {
-    return aMode == EPRCFind || aMode == ECangJie || aMode == EZhuyinFind
-           || aMode == EStrokeFind || aMode == EPinyin || aMode == EZhuyin
-           || aMode == EStroke;    
-    }
-
-#endif //RD_SCALABLE_UI_V2
-void CAknFepManager::DoWesternMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    // remove Chinese specific items from menu
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-    aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-    const TInt inputLanguage = iLanguageCapabilities.iInputLanguageCode;
-    
-    
-    TInt pos=-1;
-    
-    if( aMenuPane->MenuItemExists( EAknCmdEditModeKorean, pos ) )
-        {
-        // if mode is already hangul or language is not korean dim korean mode menu item
-        if( iMode == EHangul || inputLanguage != ELangKorean || !(IsModePermitted(EHangul)))
-            {
-            
-            aMenuPane->SetItemDimmed(EAknCmdEditModeKorean, ETrue);
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeKorean, EFalse);
-            }
-        }
-    
-    TInt index;
-    
-    if (aMenuPane->MenuItemExists(EJapanFepCmdModeUserDic, index))
-        {
-        aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);
-        }
-
-    // T9 stuff
-    if (WesternPredictive())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, EFalse);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        if(iPtiEngine->CurrentLanguage()->HasInputMode(EPtiEngineWordCompletion))
-        	{
-        	// Disable Autoword Completion feature for Touch Input
-        	#ifndef RD_SCALABLE_UI_V2  
-        	aMenuPane->SetItemDimmed(EAknCmdPredictiveModeCascade, EFalse);	
-        	#endif // RD_SCALABLE_UI_V2
-        	}
-#endif  //RD_INTELLIGENT_TEXT_INPUT 
-        }
-    else
-        {
-        if ( (iPermittedInputModes & EAknEditorTextInputMode) &&
-            !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-            iMode == ELatin &&
-			!IsKoreanInputLanguage() &&
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // Predictive QWERTY (XT9) changes ---->
-            ((
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            iLanguageCapabilities.iSupportsWesternPredictive && !IsKoreanInputLanguage()
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-			&& !iQwertyInputMode) ||
-			(iLanguageCapabilities.iSupportsWesternQwertyPredictive && iQwertyInputMode)
-			)
-            // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-           )
-            {
-            aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, EFalse);
-            }
-        }
-
-    if ( ( iMode == ENumber || iMode == ENativeNumber ) && 
-        (iPermittedInputModes & (EAknEditorTextInputMode | EAknEditorSecretAlphaInputMode)) )
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeAlpha, EFalse);
-        }
-
-    if ( IsModePermitted(ENumber) )
-        {
-        if ( iMode != ENumber ) // hide the menu if number editor
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeNumber, EFalse);
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Predictive QWERTY (XT9) changes ---->
-        // There's no need for numeric mode when full qwerty keyboard is in use (like in MAXI)
-        if (iQwertyInputMode)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeNumber, ETrue);
-            }
-        // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        }
-        
-    if ( IsModePermitted(ENativeNumber) && iMode != ENativeNumber)
-        {
-        if ( iLanguageCapabilities.iArabicIndicDigitsAllowed ) // hide the menu if number editor)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeArabicIndicNumber, EFalse);
-            }
-        else if ( iLanguageCapabilities.iEasternArabicIndicDigitsAllowed ) // hide the menu if number editor)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeEasternArabicIndicNumber, EFalse);
-            }    
-        else if( iLanguageCapabilities.iIndicDigitsAllowed ) // hide the menu if number editor)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeIndicNumber, EFalse);   
-            }
-        }
-
-    if (IsAbleToLaunchSCT())
-        {
-        if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)) 
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, EFalse);
-            }
-        }
-    TInt writtingLanguage = 0;
-    if ( iMode != ENumber && iMode != ENativeNumber && iPtiEngine->NumberOfLanguages() > 1 &&
-        !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly)
-        && aMenuPane->MenuItemExists( EAknCmdInputLanguage, writtingLanguage ) )
-        {
-        aMenuPane->SetItemDimmed(EAknCmdInputLanguage, EFalse);
-        }
-    }
-
-void CAknFepManager::DoChineseMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    TInt index;
-    if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)
-       && aMenuPane->MenuItemExists(EJapanFepCmdModeUserDic, index)) 
-        {
-        aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);    
-        }
-
-    if (WesternPredictive())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, EFalse);
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        if(iPtiEngine->CurrentLanguage()->HasInputMode(EPtiEngineWordCompletion))
-        	{
-        	// Disable Autoword Completion feature for Touch Input
-        	#ifndef RD_SCALABLE_UI_V2  
-        	aMenuPane->SetItemDimmed(EAknCmdPredictiveModeCascade, EFalse);	
-        	#endif // RD_SCALABLE_UI_V2
-        	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        }
-    else
-        {
-        if ( (iPermittedInputModes & EAknEditorTextInputMode) &&
-            !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-            iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, EFalse);
-            }
-        }
-    if (IsAbleToLaunchSCT() &&
-        aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, EFalse);
-        }
-    if( iQwertyInputMode && aMenuPane->MenuItemExists(EChinFepCmdInstructions, index) )
-        {
-        aMenuPane->SetItemDimmed(EChinFepCmdInstructions, ETrue);
-        }
-    else if ( !(iPermittedInputModes == EAknEditorNumericInputMode ||
-        iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) )
-        {
-        if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index)
-            && aMenuPane->MenuItemExists(EChinFepCmdInstructions, index)) 
-            {
-            aMenuPane->SetItemDimmed(EChinFepCmdInstructions, EFalse);
-            }
-        }
-
-    if ( (!IsOnlyNumericPermitted()) && iPtiEngine->NumberOfLanguages() > 1  &&
-        !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdInputLanguage, EFalse);
-        // the follow added for phrase creation
-        TInt iptlanguage;
-        if ( !iIsUserdbdlgActive 
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-        && EPtiKeyboardHalfQwerty != KeyboardLayout() 
-#endif
-        && IsChineseInputLanguage() )
-            {
-            aMenuPane->MenuItemExists( EAknCmdInputLanguage, iptlanguage );
-            MPtiLanguage* ptilang = iPtiEngine->CurrentLanguage();
-            TInt inputLanguage = (ptilang)? ptilang->LanguageCode() : 0;          
-            if (iQwertyInputMode && (inputLanguage == ELangPrcChinese ||
-            	inputLanguage == ELangHongKongChinese ||
-            	inputLanguage == ELangTaiwanChinese))
-            	{
-            	TRAP_IGNORE(AddUserDBDlgItemL( aMenuPane, iptlanguage ));
-            	}
-            }
-        }
-
-    if (iPermittedInputModes == EAknEditorNumericInputMode)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-        }
-    else if ( (iMode == ELatin || iMode == ENumber) &&
-        (iPermittedInputModes & EAknEditorSecretAlphaInputMode) &&
-        !(iPermittedInputModes & EAknEditorTextInputMode))
-        {
-        // Text case mode is not available in secret editors.
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        }
-    if (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-        aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-        }
-
-    if ( IsModePermitted(ENumber) && iMode != ENumber )
-        {
-        //aMenuPane->SetItemDimmed(EChinFepCmdModeNumber, EFalse);  // original statement
-        aMenuPane->SetItemDimmed(EAknCmdEditModeNumber, EFalse);
-        // end modifying
-        }
-    }
-
-void CAknFepManager::DoJapaneseMenu(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    // remove Chinese specific items from menu
-    TInt index;
-    if (aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index))
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, ETrue);
-        }
-        
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue);
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);
-    aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);
-
-    if (IsAbleToLaunchSCT()
-     && !iSharedDataInterface->QwertyInputMode())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbolJp, EFalse);
-        }
-
-    if (IsAbleToLaunchPCT()
-     && !iSharedDataInterface->QwertyInputMode())
-        {
-        aMenuPane->SetItemDimmed(EAknCmdEditInsertPictograph, EFalse);
-        }
-
-    if (!(iPermittedInputModes & EAknEditorHiraganaKanjiInputMode) &&
-        aMenuPane->MenuItemExists(EJapanFepCmdModeUserDic, index)
-        )
-        {
-        aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);
-        }
-
-    if (iPermittedInputModes == (EAknEditorSecretAlphaInputMode | EAknEditorNumericInputMode))
-        {
-        if (iMode == ELatin)
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdEditModeNumber, EFalse);
-            }
-        else if (iMode == ENumber)
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdEditModeAlpha, EFalse);
-            }
-        }
-    else
-        {
-        // If the fep is running on the Janapnse User Dictionary Application,
-        // "User Dictionary" in editting options menu is hidden.
-        if (CEikonEnv::Static()->EikAppUi()->Application())
-            {
-            if (CEikonEnv::Static()->EikAppUi()->Application()->AppDllUid() == KUidUserDictApp)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeUserDic, ETrue);
-                }
-            }
-
-        if (iPermittedInputModes & EAknEditorHiraganaKanjiInputMode)
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdModeKutenCodeInput, EFalse);
-            }
-
-        TInt value = iSharedDataInterface->ClearDirection();
-        if (value == EClearDirectionRight)
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditClearDirectionLeft, EFalse);
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditClearDirectionRight, EFalse);
-            }
-
-        if (!iSharedDataInterface->QwertyInputMode())
-            {
-            if (IsPredictive(ELatin))
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdPredictiveTextCascade, EFalse);
-                }
-            else if ((iPermittedInputModes & EAknEditorHalfWidthTextInputMode)
-                  && !(iAknEditorFlags & EAknEditorFlagNoT9))
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdMultitapPredictiveT9On, EFalse);
-                }
-            }
-
-        if (IsPredictive(EHiraganaKanji))
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdModePredictiveOff, EFalse);
-            }
-        else if((iPermittedInputModes & EAknEditorHiraganaKanjiInputMode)
-             && !(iAknEditorFlags & EAknEditorFlagNoT9))
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdModePredictiveOn, EFalse);
-            }
-
-        if (iMode != EHiraganaKanji && iPermittedInputModes & EAknEditorHiraganaKanjiInputMode)
-            {
-            aMenuPane->SetItemDimmed(EJapanFepCmdModeHiragana, EFalse);
-            }
-
-        if (iCharWidth == EHalfWidthChar)
-            {
-            if (iPermittedInputModes & EAknEditorKatakanaInputMode && iMode != EKatakana)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeKatakana, EFalse);
-                }
-
-            if (iMode != ELatin && (iPermittedInputModes & EAknEditorHalfWidthTextInputMode
-                || iPermittedInputModes & EAknEditorSecretAlphaInputMode))
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdEditModeAlpha, EFalse);
-                }
-
-            if (iMode != ENumber
-             && iPermittedInputModes & EAknEditorNumericInputMode
-             && !iSharedDataInterface->QwertyInputMode())
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdEditModeNumber, EFalse);
-                }
-
-            if (iMode == EKatakana && iPermittedInputModes & EAknEditorFullWidthKatakanaInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeFullWidth, EFalse);
-                }
-
-            if (iMode == ELatin && !iWesternPredictive 
-             && iPermittedInputModes & EAknEditorFullWidthTextInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeFullWidth, EFalse);
-                }
-
-            if (iMode == ENumber
-             && iPermittedInputModes & EAknEditorFullWidthNumericInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeFullWidth, EFalse);
-                }
-            }
-        else // Full width Character
-            {
-            if (iMode != EKatakana && iPermittedInputModes & EAknEditorFullWidthKatakanaInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeKatakana, EFalse);
-                }
-
-            if (iMode != ELatin && iPermittedInputModes & EAknEditorFullWidthTextInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdEditModeAlpha, EFalse);
-                }
-
-            if (iMode != ENumber
-             && iPermittedInputModes & EAknEditorFullWidthNumericInputMode
-             && !iSharedDataInterface->QwertyInputMode())
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdEditModeNumber, EFalse);
-                }
-
-            if (iMode == EKatakana && iPermittedInputModes & EAknEditorKatakanaInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeHalfWidth, EFalse);
-                }
-
-            if (iMode == ELatin && iPermittedInputModes & EAknEditorFullWidthTextInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeHalfWidth, EFalse);
-                }
-
-            if (iMode == ENumber
-             && iPermittedInputModes & EAknEditorFullWidthNumericInputMode)
-                {
-                aMenuPane->SetItemDimmed(EJapanFepCmdModeHalfWidth, EFalse);
-                }
-            }
-        }
-    }
-
-void CAknFepManager::HandlePointerEventInInlineTextL(TPointerEvent::TType /*aType*/, TUint /*aModifiers*/, TInt /*aPositionInInlineText*/)
-    {
-    }
-
-void CAknFepManager::GetFormatOfFepInlineText(TCharFormat& aFormat, 
-                                              TInt& aNumberOfCharactersWithSameFormat, 
-                                              TInt aPositionOfCharacter) const
-    {
-    if ( FepUI() )
-        {
-        FepUI()->GetFormatOfFepInlineText(aFormat, aNumberOfCharactersWithSameFormat, 
-                                          aPositionOfCharacter);
-        }
-    }
-
-void CAknFepManager::NumberModeChangeGSNotification()
-	{
-	iLanguageCapabilities.iNumericEditorDigitType = EDigitTypeUnknown;
-	UpdateNumericEditorDigitType();	
-	UpdateLocalDigitMode();
-	}
-
-void CAknFepManager::HandleChangeInFocusL()
-    {
-    // Closing SCT has done focus change, so here just reset the flag.
-#ifdef RD_SCALABLE_UI_V2	
-    if(iDisalbleFocusChangeForSCT)
-    {
-    iDisalbleFocusChangeForSCT = EFalse;
-    return;
-    }
-#endif
-
-    //The CCPU flag ECcpuStateShiftkeyWasPressedBeforeLosingFocus suggests that the candidate list was closed
-    //with a long key press of shift key. If so then, FEP needs to set the EFlagShiftKeyDepressed for the CCPU mode to work 
-    //correctly. The state of the shift state is copied to local variable isToSetShiftKeyStateDown because as a function of change
-    //of focus the FEP clears all the CCPU flags which would reset ECcpuStateShiftkeyWasPressedBeforeLosingFocus also.
-    TBool isToSetShiftKeyStateDown = IsCcpuFlagSet(ECcpuStateShiftkeyWasPressedBeforeLosingFocus);
-    if (!Japanese() || iFepManState != EAknFepStateUIActive)
-        {
-        if (IsCcpuFlagSet(ECcpuStateIgnoreNextFocusChange))
-            {
-            // The focus event was caused by menu selection, don't clear all ccpu flags.
-            ClearCcpuFlag(ECcpuStateIgnoreNextFocusChange);
-            }
-        else
-            {
-            if((HashKeySelectionInUse() && IsCcpuFlagSet(ECcpuStateHashDown) 
-             && IsCcpuFlagSet(ECcpuStateEdwinInSelectionMode)))
-                {
-                ClearCcpuFlag(ECcpuStateHashDown);              
-                SetCcpuFlag(ECcpuStateSelectionEventPosted);
-                ClearCcpuFlag(ECcpuStateEdwinInSelectionMode);
-                SetFlag(EFlagLongShiftKeyPress);                
-                TKeyEvent ccpuStart = {0, EStdKeyLeftShift, 0, 0};
-                CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKeyUp);                                       
-                }   
-            else
-                {
-                TBool isToSupressCursorMove = IsCcpuFlagSet(ECcpuStateSupressCursorMoveToEnd);
-                TBool isCommitPredictiveWord = IsCcpuFlagSet(ECcpuStataCommitPredictiveWord);
-                CancelCcpuMode();               
-                if(isToSupressCursorMove)
-                    SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-                if(isCommitPredictiveWord)
-                    SetCcpuFlag(ECcpuStataCommitPredictiveWord);                
-                }    
-            
-            }
-        SetCcpuFlag(ECcpuSupressEditMenuFromShiftUp);        
-        iPreviousEditingState = EStateNone;
-        iEditIndicatorAtLastUpdate = NULL;
-        ClearFlag( EFlagBidiCursorIsInitialized );
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-// removing the no match indicator is not necessary for ITI 
-        if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-            {
-            TryRemoveNoMatchesIndicatorL();
-            }
-#endif             
-        UpdateCbaL(NULL);
-                    
-        if (iFepFullyConstructed)
-            {
-            SetCcpuFlag(ECcpuStateLosingFocus); // CommitInlineEditL needs to now we're losing focus (for cursor handling):           
-            CancelAllTimerActivity();
-            FepUI()->ExpireMultitapTimer();
-            ClearCcpuFlag(ECcpuStateLosingFocus); // Cleared right away to make sure nothing else is affected.              
-            }
-        // Forget shift key and chr key press if application or UI component is
-        // changed during shiftkey press.
-        ClearFlag(EFlagQwertyChrKeyDepressed);
-        //If candidate list was closed by long keypress of shift key, set the flag EFlagShiftKeyDepressed for CCPU mode
-        //to work correctly once it re-focuses on the editor.
-        if(isToSetShiftKeyStateDown)
-            {
-            SetFlag(EFlagShiftKeyDepressed);
-            ClearCcpuFlag(ECcpuStateShiftkeyWasPressedBeforeLosingFocus);
-            }
-        else
-            {
-            ClearFlag(EFlagShiftKeyDepressed);
-            }
-        if ( iFepFullyConstructed && IsFepAwareTextEditor() )
-            {
-            //save state of old item
-            TransferFepStateToEditorL();
-
-            if ( WesternPredictive() )
-                {                                            
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                // To rip off suggested word completion when there is a change in focus
-                if(IsAutoCompleteOn())
-                	{
-                	RemoveSuggestedCompletionL();
-
-                	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                SetCcpuFlag(ECcpuStateLosingFocus);    // CommitInlineEditL needs to now we're losing focus (for cursor handling):                
-                CommitInlineEditL(); 
-                ClearCcpuFlag(ECcpuStateLosingFocus);  // Cleared right away to make sure nothing else is affected.                              
-                }
-            else
-                {
-                TryCloseUiL();
-                }
-                                 
-            iRememberLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-            if (iLastFocusedEditor && !IsExtendedFlagSet(EExtendedFlagFepAwareDialogLaunched))
-                {
-                iLastFocusedEditor->SetObserver(NULL);
-                iLastFocusedEditor = NULL;
-                }            
-			// When editor launches a non-fep aware dialog, then we
-			// should not set the observer to Null. Because if the dialog is 
-			// destroyed we will not know and the dialog will remain orphaned.                                     
-			// Also we need to know the fep editor pointer.
-            iLastFocusedEditor = EditorState();        
-            iEditorCcpuStatus = EditorCcpuStatus(iLastFocusedEditor); 
-            //iLastFocusedEditor->SetObserver(NULL);    
-#ifdef RD_SCALABLE_UI_V2            
-            UnregisterObserver();
-#endif // RD_SCALABLE_UI_V2 
-            }
-
-        if (iPermittedInputModes & EAknEditorSecretAlphaInputMode &&
-            !(iPermittedInputModes & EAknEditorTextInputMode))
-            {
-            // For password editors.                
-            ClearFlag(EFlagSupressAutoUpdate);
-            } 
-
-        // Losing focus is over, from this point on we are gaining focus.
-        ClearCcpuFlag(ECcpuStateLosingFocus);   
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if(iFnKeyManager)
-                iFnKeyManager->ClearFnKeyState();
-                
-        if(iResourceString)
-          {
-          delete iResourceString;
-          iResourceString = NULL;
-          }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-        
-        // get input capabilities from newly focused item
-        CCoeEnv* coeEnv = CCoeEnv::Static();
-        iInputCapabilities = static_cast<const CCoeAppUi*>(coeEnv->AppUi())->InputCapabilities();
-        SetQwertyModeToInputcapbility();
-        if ( IsFepAwareTextEditor() )
-            {
-            // Now at the launch of non-fep aware dialogs we do not set the editor observer to NULL,
-            // and retain the editor pointer in iLastFocusedEditor. 
-            // So in case the editor is back in focus, we set iLastFocusedEditor to NULL
-            // and set the editor observer again.
-            
-			// At launch of fep aware dialog on a fep aware editor say spell query launched on messaging editor,
-            // we have the flag EExtendedFlagFepAwareDialogLaunched set. 
-			// So in this scenario we retain the observer for both the editor as we need to close the spell query
-            // on close of messaging editor. 
-            // Specific scenario is explained, the same is applicable for all general scenarios, for any
-            // fep aware dialog launched on any other fep aware editor.
-            if (iLastFocusedEditor && !IsExtendedFlagSet(EExtendedFlagFepAwareDialogLaunched))
-                {
-                iLastFocusedEditor->SetObserver(NULL);
-                iLastFocusedEditor = NULL;
-                }
-            if( EditorState() )
-                {
-            	EditorState()->SetObserver(this);
-                }
-            ConfigureFEPFromEditorStateL();
-#ifdef RD_INTELLIGENT_TEXT_INPUT	
-			if( PtiEngine() )
-				{
-	            if(!IsAutoCompleteOn())
-	                {
-					TInt tailLength = 0;
-		            TRAP_IGNORE( PtiEngine()->HandleCommandL( 
-									EPtiCommandGetAutoCompletionTailLength,
-									&tailLength ));	
-					if(tailLength)
-						{					
-						RemoveSuggestedAdvanceCompletionL();
-						}
-	                }	
-				}
-#endif
-            if (!iWesternPredictive && iMode == ELatin)
-                {
-                // It is possible to cause situation (by ill-acting client
-                // app) where focus handling goes out of sync and there actually
-                // is uncomitted inline edit operation going on in to-be-focused
-                // editor. Multitapping mode doesn't like that, so we make sure here
-                // that it won't happen.
-                CancelInlineEdit();                         
-                }             
-            AdjustCursorTypeForCurrentPosition();
-            
-            if (IsCcpuFlagSet(ECcpuStateUncommitWhenFocused))
-                {
-                // One of the ccpu editing options mode was started from
-                // options menu. If there is active predictive word it
-                // needs to be deactivated.
-                ClearCcpuFlag(ECcpuStateUncommitWhenFocused);               
-                DeactivatePredicitveWordAndMoveCursorL();                        
-                }
-#ifdef RD_SCALABLE_UI_V2                   
-            RegisterObserver();
-#endif // RD_SCALABLE_UI_V2            		
-            }
-        else // no FepAwareTextEditor
-            {
-#ifdef RD_SCALABLE_UI_V2
-            // register to receive TInputCapabilitiesEvent events
-            if ( SemiFepAwareTextEditor() )
-                {
-                RegisterObserver();
-                TLanguage localLanguage = ELangTest;
-                if (GetLocalLanguage( localLanguage ) )
-                    {
-                    iLanguageCapabilities.iLocalInputLanguageInUse = ETrue;
-                    if ( localLanguage != iLanguageCapabilities.iInputLanguageCode )
-                        {
-                        ChangeInputLanguageL(localLanguage);
-                        }
-                    }
-                else if (iLanguageCapabilities.iLocalInputLanguageInUse)
-                    {
-                    iLanguageCapabilities.iLocalInputLanguageInUse = EFalse;
-                    ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-                    }
-
-                if (IsFlagSet(EFlagNewSharedDataInputLanguage) )
-                    {
-                    //Global mode or input language has been changed in general settings
-                    if ( !iLanguageCapabilities.iLocalInputLanguageInUse)
-                        {
-                        ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-                        }
-                    ClearFlag(EFlagNewSharedDataInputLanguage);
-                    }
-                }
-#endif // RD_SCALABLE_UI_V2
-            // Check for non Edwin derived editors (eg mfne, tel no editor etc)
-            if (iInputCapabilities.SupportsWesternNumericIntegerPositive() || 
-                iInputCapabilities.SupportsWesternNumericIntegerNegative() || 
-                iInputCapabilities.SupportsWesternNumericReal() )
-                {
-                SyncStates(EAknFepStateInitial);
-                iPermittedInputModes = EAknEditorNumericInputMode;
-                iAknEditorNumericKeymap = EAknEditorNativeKeysNumberModeKeymap;
-                iAknEditorFlags = 0;
-                iCharWidth = EHalfWidthChar;
-                UpdateNumericEditorDigitType();
-                
-                if ( IsMfneEditor() ) 
-                    {
-                    UpdateLocalDigitMode();
-                    }
-                
-                if( IsInputModeAvailable(ENativeNumber) &&
-                    ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-                      iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-                      iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-                    {
-                    TryChangeModeL( ENativeNumber );
-                    }
-                else
-                    {
-                    TryChangeModeL( ENumber );
-                    }
-                }
-            else //we don't have a valid editor
-                {
-                SyncStates(EAknFepStateNull);
-                
-                // Reset the qwerty shift case mode when we do not have a valis editor.
-                ClearFlag(IsFlagSet( EFlagQwertyShiftMode ));
-                if (!IsFlagSet(EFlagForegroundUIComponentVisible | EFlagMenuPaneVisible) &&
-                    iIndicator)
-                    {
-                    iIndicator->SetState(EStateNone);
-                    iHybridAplphaChangedToAlphanumeric = EFalse; 
-                    }
-                ClearFlag(EFlagForegroundUIComponentVisible);
-                iPermittedInputModes = EAknEditorNullInputMode;
-                
-#ifdef RD_SCALABLE_UI_V2                
-                RegisterObserver();               
-#endif // RD_SCALABLE_UI_V2                      
-                }            
-            }
-        }
-    else if (Japanese() && iFepManState == EAknFepStateUIActive)
-        {
-        if (iInputCapabilities.FepAwareTextEditor())
-            {
-            TryCloseUiL();
-            }
-        }
-    
-#ifdef RD_SCALABLE_UI_V2
-        {
-        /*
-        if( iGainForeground )
-            {
-            iLoseForeAndGainFocus = EFalse;
-            }
-        else
-            {
-            iLoseForeAndGainFocus = ETrue;
-            }
-        SendEventsToPluginManL( EPluginFocusChanged, iGainForeground );
-        */
-        CCoeControl* focusCtrl = static_cast<const CCoeAppUi*>(CCoeEnv::Static()->AppUi())->TopFocusedControl();         
-       CAknAppUi* aui = static_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi());
-       TBool bForeGround = aui->IsForeground();
-       if(iGainForeground && ! bForeGround)
-        {
-        iGainForeground = EFalse;
-        }
-        
-        if(iGainForeground && iNotifyPlugin)
-            {            
-            SendEventsToPluginManL( EPluginFocusChanged, 
-                                    iGainForeground && focusCtrl!=0 && focusCtrl->IsFocused());        
-            }
-        }
-#endif // RD_SCALABLE_UI_V2
-        if( PtiEngine() && FepAwareTextEditor() )
-            {
-            if( FepAwareTextEditor()->DocumentLengthForFep() == 0 &&
-                IsFlagSet(EFlagInsideInlineEditingTransaction)&&
-                iFepManState == EAknFepStateUIActive )
-              {
-              PtiEngine()->ClearCurrentWord();                
-              TryCloseUiL();                
-              }
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    ShowExactWordPopupIfNecessaryL();
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    }
-
-void CAknFepManager::CleanUpFep()
-    {
-    if (iFepFullyConstructed)
-        {
-        CancelAllTimerActivity();
-        iInputCapabilities.FepAwareTextEditor()->CancelFepInlineEdit();
-        }
-    else
-        {
-        CommonDestroyFep();
-        }
-    }
-
-#ifdef RD_SCALABLE_UI_V2
-void CAknFepManager::UnregisterObserver()
-    {
-
-		MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-    
-    	if ( mop )
-    		{
-    		CAknExtendedInputCapabilities* extendedInputCapabilities = 
-    		mop->MopGetObject( extendedInputCapabilities );
-
-    		if ( extendedInputCapabilities ) 
-    			{
-    			extendedInputCapabilities->UnregisterObserver( this );
-    			}
-    		}
-    }
-
-void CAknFepManager::RegisterObserver()
-    {
-
-	MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-
-	if ( mop )
-		{
-		CAknExtendedInputCapabilities* extendedInputCapabilities = 
-		mop->MopGetObject( extendedInputCapabilities );
-
-		if ( extendedInputCapabilities ) 
-			{
-			extendedInputCapabilities->RegisterObserver( this );
-			}
-		}
-    }    
- 
-#endif // RD_SCALABLE_UI_V2    
-    
-void CAknFepManager::SimulateKeyEventL(TUint aKeyCode, TBool aActiveObj)
-    {
-    if (aActiveObj)
-        {
-        iSimulateKey = aKeyCode;
-        iAsyncOwnSimulateKey.CallBack();
-        }
-    else
-        {
-        CArrayFix<TUint>* simCharArray = new(ELeave) CArrayFixFlat<TUint>(1);
-        CleanupStack::PushL(simCharArray);
-        simCharArray->AppendL(aKeyCode);
-        SimulateKeyEventsL(simCharArray->Array());
-        CleanupStack::PopAndDestroy(); // simCharArray
-        }
-    }
-
-TInt CAknFepManager::ResetShiftKeyMonitorCallback(TAny* aObj)
-    {
-    TRAPD(err, static_cast<CAknFepManager*>(aObj)->ResetShiftKeyMonitorL());
-    if (err)
-        {
-        static_cast<CAknFepManager*>(aObj)->CleanUpFep();
-        return KErrDied;
-        }
-    return KErrNone;
-    }
-
-void CAknFepManager::ResetShiftKeyMonitorL()
-    {
-    TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor); 
-    if(phoneIdle)
-    	{
-    	iShiftKeypressMonitor->Cancel();
-    	return;
-    	}
-    
-    SetFlag(EFlagLongShiftKeyPress);
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Copy-paste with shift+SKs is always available on ITU-T. On QWERTY,
-    // it's available if activated in the Central Repository.
-    if ( (!iQwertyInputMode || iSharedDataInterface->ShiftCopyPastingOnQwerty()) && 
-         !(iAknEditorFlags & EAknEditorFlagFindPane) )
-#endif // RD_INTELLIGENT_TEXT_INPUT        
-#else    
-    if (!iQwertyInputMode && !(iAknEditorFlags & EAknEditorFlagFindPane))
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-        {
-        if (HashKeySelectionInUse() && IsCcpuFlagSet(ECcpuStateHashDown)) 
-            {
-            SetCcpuFlag(ECcpuStateEdwinInSelectionMode);
-            iHashKeyMan->SetPreviousSelectionStyleModeL();
-            }
-    	if(iCandidatePopup)
-    		{	// if candidate list is launched and then a long key press of shift key is done, destroy the candidate list first
-				iCandidatePopup->AttemptExitL(EFalse);
-				HandleChangeInFocusL();
-    		}
-        if(!IsCcpuFlagSet(ECcpuStateCbaShown))
-			{       
-	        TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-    	    // to enable copy/paste support on cba. We simulate via CCoeEnv
-        	// to avoid fep SimulateKeyEventL adding shift modifiers
-	        CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey);
-			SetCcpuFlag(ECcpuStateCbaShown);
-			}
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-#ifdef __HALF_QWERTY_KEYPAD   
-	// we should not enter the copy-paste mode in find pane editors
-    if( EPtiKeyboardHalfQwerty == KeyboardLayout() && !(iAknEditorFlags & EAknEditorFlagFindPane))
-        {
-        CAknFepFnKeyManager::TFnKeyState fnState = FnKeyState();
-        
-        if( CAknFepFnKeyManager::EFnKeyNone != fnState 
-        		|| iFnCharInsertedForShift )
-            {
-            TText prevCh = PreviousChar();
-            if (prevCh == '#' || prevCh == '/')
-                {
-                RemovePreviousCharacterL();             
-                }
-            // reset the fn state if it is FnNext
-            if( fnState == CAknFepFnKeyManager::EFnKeyNext )
-                {
-                SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-                }
-            }
-        SetCcpuFlag( CAknFepManager::ECcpuStateEdwinInSelectionMode );
-        if(!IsCcpuFlagSet(ECcpuStateCbaShown))
-            {		
-	        TKeyEvent ccpuStart = {EKeyF21, EStdKeyF21, 0, 0};
-         
-    	    // to enable copy/paste support on cba. We simulate via CCoeEnv
-        	// to avoid fep SimulateKeyEventL adding shift modifiers
-        	CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, EEventKey);    
-            SetCcpuFlag(ECcpuStateCbaShown); 			                                      
-			}
-        }  
-#endif //__HALF_QWERTY_KEYPAD
-		          
-#endif//RD_INTELLIGENT_TEXT_INPUT        
-    iShiftKeypressMonitor->Cancel();
-    }
-
-void CAknFepManager::CancelAllTimerActivity()
-    {
-    if (iShiftKeypressMonitor->IsActive())
-        {
-        iShiftKeypressMonitor->Cancel();
-        }
-    if (iConcatenationTimer->IsActive())
-        {
-        iConcatenationTimer->Cancel();
-        }
-    if (iChrKeypressMonitor->IsActive())
-        {
-        iChrKeypressMonitor->Cancel();
-        }
-    if (iPostEventCheck->IsActive())
-        {
-        iPostEventCheck->Cancel();
-        }
-    if ( iHashKeyMan )
-        {
-        iHashKeyMan->CancelHashKeyTimer();
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    if( iNumericResourceTimer )
-        {
-        TRAP_IGNORE( NumericResourceMultiTapTimerTimeoutL());
-        }
-#endif
-    }
-
-TBool CAknFepManager::IsModePermitted(TInt aMode, TWidthChar aWidth) const
-    {
-    if (aWidth == ENoneWidthChar)
-        {
-        aWidth = iCharWidth;
-        }
-
-    TBool isModePermitted = ETrue;
-    const TInt inputLanguage = iLanguageCapabilities.iInputLanguageCode;    
-    
-    if ( aMode == ENativeNumber && !IsInputModeAvailable( aMode ) )
-        {
-        if ( inputLanguage == ELangThai && iFepPluginManager && 
-               iFepPluginManager->PluginInputMode() != EPluginInputModeItut &&
-               !iQwertyInputMode)
-               {
-               return ETrue;
-               }        
-        return EFalse;
-        }
-    
-    TUint editorMode = EditorMode(aMode, aWidth);
-
-    //Support Boxcn default Chinese inputmode when defaul inputmode is Cangjie Hongkong
-    //only if Chinese input is permitted in the editor
-    if (!( (iVariantPermittedModes | ELatinText | ELatinUpper | ELatinLower | EHiragana) & aMode) )
-        {
-        //the mode is never valid in this variant
-        isModePermitted = EFalse;
-        }
-    else if( aMode == ECangJie && !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-		{
-		if (iQwertyInputMode || iFepPluginManager->PluginInputMode() == EPluginInputModeVkb
-				|| iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ)
-			{
-			isModePermitted = ETrue;
-			}
-		else
-			{
-			isModePermitted = EFalse;
-			}
-		}
-    else if (!(iPermittedInputModes & editorMode))
-        {
-        isModePermitted = EFalse;
-        }
-    else if (((aMode == EPinyin) || (aMode == EZhuyin) || (aMode == EStroke) || (aMode == ECangJie)
-        ||   (aMode == EHiraganaKanji) || (aMode == EKatakana)
-        || (((aMode == ELatin) || (aMode == ENumber) || iMode == ENativeNumber ) && (iCharWidth == EFullWidthChar)))
-        && (iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-        {
-        //the editor does not allow Chinese modes
-        isModePermitted = EFalse;
-        }
-    else if (((aMode == EStrokeFind) || (aMode == EZhuyinFind))
-        && (!(iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)))
-        {
-        //StrokeFind and ZhuyinFind modes are only valid in a chinese find pane
-        isModePermitted = EFalse;
-        }
-    else
-        {
-        TUint editorsWhichAllowThisMode;
-        if (aMode == ENumber || aMode == ENativeNumber )
-            {
-            //The FEP's ENumber mode has a direct mapping to EAknEditorNumericInputMode
-            // or EAknEditorFullWidthNumericInputMode
-            editorsWhichAllowThisMode = EAknEditorNumericInputMode;
-            if (aWidth == EFullWidthChar)
-                {
-                editorsWhichAllowThisMode = EAknEditorFullWidthNumericInputMode;
-                }
-            }
-        else if (aMode == EHiragana)
-            {
-            editorsWhichAllowThisMode = EAknEditorHiraganaInputMode;
-            }
-        else if (aMode == EKatakana || (aMode == ELatin && aWidth == EFullWidthChar))
-            {
-            editorsWhichAllowThisMode = EditorMode(aMode, aWidth);
-            }
-        else if (aMode == EHiraganaKanji)
-            {
-            // HiraganaKanji mode allows all input mode.
-            editorsWhichAllowThisMode = EAknEditorAllInputModes;
-            }
-        else if (aMode == EHangul)
-            {
-            editorsWhichAllowThisMode =(EAknEditorTextInputMode | EAknEditorSecretAlphaInputMode | EAknEditorHalfWidthTextInputMode);     
-            }          
-        else
-            {
-            //if the editor allows Text Input or Secret Alpha Mode,
-            //we infer that Chinese Modes are valid
-            editorsWhichAllowThisMode =(EAknEditorTextInputMode | 
-                                        EAknEditorSecretAlphaInputMode | 
-                                        EAknEditorHalfWidthTextInputMode);
-            }
-        isModePermitted = iPermittedInputModes & editorsWhichAllowThisMode;
-        }
-
-    return isModePermitted;
-    }
-
-TInt CAknFepManager::SyncStates(TAknFepManagerState aState)
-    {
-    TInt ret = KErrNone;
-    
-    if (!iFepFullyConstructed)
-        {
-        if (aState == EAknFepStateNull)
-            {
-            return KErrNone;
-            }
-                       
-        TRAP(ret, ConstructFullyL());
-        }
-    if (iFepFullyConstructed)
-        {
-        iFepManState = aState;
-        iKeyCatcher->SetState(aState);
-        }
-   
-    return ret;    
-    }
-
-TUint CAknFepManager::EditorMode(TInt aMode, TWidthChar aWidth) const
-    {
-    TInt editorMode = 0;
-    switch(aMode)
-        {
-        case EPinyin:
-        case EZhuyin:
-        case EStroke:
-        case ECangJie:
-        case EPRCFind:
-        case EZhuyinFind:
-        case EStrokeFind:
-        case EHangul:
-            {
-            editorMode = EAknEditorTextInputMode;
-            }
-            break;
-        case EHindi:
-        case ELatin:
-        case ELatinText:
-        case ELatinUpper:
-        case ELatinLower:
-            {
-            if (iPermittedInputModes & EAknEditorTextInputMode)
-                {
-                 editorMode = EAknEditorTextInputMode;
-                }
-            else if (iPermittedInputModes & EAknEditorHalfWidthTextInputMode)
-                {
-                if (IsFeatureSupportedJapanese())
-                    {
-                    editorMode = EAknEditorHalfWidthTextInputMode;
-                    }
-                else
-                    {
-                    editorMode = EAknEditorTextInputMode;
-                    }
-                }
-            else
-                {
-                editorMode = EAknEditorSecretAlphaInputMode;
-                }
-            if (aWidth == EFullWidthChar)
-                {
-                editorMode = EAknEditorFullWidthTextInputMode;
-                }
-            }
-            break;
-        case EHiragana:
-            {
-            editorMode = EAknEditorHiraganaInputMode;
-            }
-            break;
-        case EHiraganaKanji:
-            {
-            editorMode = EAknEditorHiraganaKanjiInputMode;
-            }
-            break;
-        case EKatakana:
-            {
-            editorMode = EAknEditorKatakanaInputMode;
-            if (aWidth == EFullWidthChar)
-                {
-                editorMode = EAknEditorFullWidthKatakanaInputMode;
-                }
-            }
-            break;
-        case ENumber:
-        case ENativeNumber:
-            {
-            editorMode = EAknEditorNumericInputMode;
-            if (aWidth == EFullWidthChar)
-                {
-                editorMode = EAknEditorFullWidthNumericInputMode;
-                }
-            }
-            break;
-        default:
-            break;
-        }
-
-    return editorMode;
-    }
-
-void CAknFepManager::LaunchPenSupportMenuL()
-    {
-    if (HashKeySelectionInUse() && IsCcpuFlagSet(ECcpuStateHashDown))
-        {
-        return;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	if(iCandidatePopup)        
-		{
-		iCandidatePopup->AttemptExitL(EFalse);
-		HandleChangeInFocusL();
-		}
-#endif		
-    
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        TryRemoveNoMatchesIndicatorL();
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.
-	    When we launch Edit Menu.the word which in Inline Editing in the BackGorund 
-	    Should not Commit*/        
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        CommitInlineEditL();
-#endif
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.
-	    This Flag is useful for deciding whether "Matches" Menu Item can Visible 
-	    or not*/
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        SetFlag(EFlagInlineEditInBackground);
-#endif
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.*/
-#ifndef RD_INTELLIGENT_TEXT_INPUT        
-        ClearFlag(EFlagInsideInlineEditingTransaction);
-#endif        
-        }
-    
-    CAknEdwinState* editorState = NULL;
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        editorState = EditorState();
-        }
-    
-    iEditMenuBar = NULL;
-    if (editorState)
-        {
-        iEditMenuBar = iUiInterface->EditorStateMenuBar(editorState);
-        }
-    
-    if (iEditMenuBar && 
-        !iEditMenuBar->IsDisplayed())
-        {
-        
-        iPenSupportMenu = ETrue;
-       // SetFlag(EFlagLaunchEditMenu);
-        CAknFepUiInterfaceMenuPane* menuPane = iEditMenuBar->MenuPane();
-        
-        CEikMenuPane* oldMenuPane = menuPane->GetMenuPane();        
-        if (!oldMenuPane)
-            {
-            menuPane = NULL;    
-            }
-        
-        iRememberEditorState = EditorState();
-  
-        iEditMenuBar->SetMenuType(CAknFepUiInterfaceMenuBar::EMenuEdit);        
-        // It is unnecessary to add ROW SCT in Editting option menu.
-        iEditMenuBar->TryDisplayMenuBarL();
-        if (menuPane && menuPane->NumberOfItemsInPane() == 0)
-            {
-            // Edit menu do not contain any items.
-            iEditMenuBar->StopDisplayingMenuBar();
-            }
-        else
-            {
-            //adjust menu position to the front of dialog to
-            //avoid input capability is wrongly got
-            CCoeEnv* coeEnv = CCoeEnv::Static();
-            CCoeAppUi* appUi = (CCoeAppUi*)(coeEnv->AppUi());
-            if( appUi->IsDisplayingDialog() )
-                {
-                iEditMenuBar->RemoveFromStack();
-                iEditMenuBar->AddToStackL(ECoeStackPriorityDialog + 1, ECoeStackFlagStandard);                              
-                }
-            }
-            
-        iEditMenuBar->SetMenuType(CAknFepUiInterfaceMenuBar::EMenuOptions);
-        }
-        iPenSupportMenu = EFalse;
-    }
-
-void CAknFepManager::LaunchSelectModeMenuL()
-    {
-    if (HashKeySelectionInUse() && IsCcpuFlagSet(ECcpuStateHashDown))
-        {
-        return;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	if(iCandidatePopup)        
-		{
-		iCandidatePopup->AttemptExitL(EFalse);
-		HandleChangeInFocusL();
-		}
-#endif		
-    
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        TryRemoveNoMatchesIndicatorL();
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.
-	    When we launch Edit Menu.the word which in Inline Editing in the BackGorund 
-	    Should not Commit*/        
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        CommitInlineEditL();
-#endif
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.
-	    This Flag is useful for deciding whether "Matches" Menu Item can Visible 
-	    or not*/
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        SetFlag(EFlagInlineEditInBackground);
-#endif
-		/*
-	    This code is the part of fixing TSW Error ID: BSAN-7G58DB :  Edit Menu : 
-	    "Matches" and "insert word" options are not available under Edit Menu.*/
-#ifndef RD_INTELLIGENT_TEXT_INPUT        
-        ClearFlag(EFlagInsideInlineEditingTransaction);
-#endif        
-        }
-    
-    CAknEdwinState* editorState = NULL;
-    if (iInputCapabilities.FepAwareTextEditor())
-        {
-        editorState = EditorState();
-        }
-    
-    iEditMenuBar = NULL;
-    if (editorState)
-        {
-        iEditMenuBar = iUiInterface->EditorStateMenuBar(editorState);
-        }
-    
-    if (iEditMenuBar && 
-        !iEditMenuBar->IsDisplayed())
-        {
-       // SetFlag(EFlagLaunchEditMenu);
-        CAknFepUiInterfaceMenuPane* menuPane = iEditMenuBar->MenuPane();
-        CEikMenuPane* oldMenuPane = menuPane->GetMenuPane();        
-        if (!oldMenuPane)
-            {
-            menuPane = NULL;    
-            }        
-         if(menuPane)
-        	SetFlag(EFlagLaunchEditMenu);
-        
-        iRememberEditorState = EditorState();
-        
-        // It is unnecessary to add ROW SCT in Editting option menu.
-        if (!IsFeatureSupportedJapanese())
-            {
-            iEditCharsPtr.Copy(KNullDesC);
-            iEditCharsPtr.Set( iSctEditChars->Des() );
-            
-            // get the SCT resource id from editor default settings
-            TInt currentEditorSCTResId = GetCurrentEditorSCTResId();
-            TInt charResourceId = ENoCharacters;
-            if ( currentEditorSCTResId == EDefaultNumericCharMapResId)
-                {
-                charResourceId = NumericModeSCTResourceId();
-                if ( charResourceId != ENoCharacters && IsAbleToLaunchSCT()&& 
-                        EditorType() != CAknExtendedInputCapabilities::EEikSecretEditorBased)
-                    {
-                    
-                    if( menuPane != NULL )
-                        {
-                        menuPane->ConstructMenuSctRowL( iEditCharsPtr, charResourceId );
-                        }
-                    }
-                else
-                    {
-                    currentEditorSCTResId = charResourceId;
-                    }   
-                }
-            else
-                {
-                TInt sctChars = EAknSCTChiChineseInputModes;
-                if (iCharWidth == EFullWidthChar)
-                    {
-                    sctChars = EAknSCTFullCase;
-                    }
-                else
-                    {
-                    if (iMode == ELatin)
-                        {
-                        if ( FeatureManager::FeatureSupported(KFeatureIdChinese) )
-                            {
-                            sctChars = EAknSCTChiLatinInputModes;
-                            }
-                        else
-                            {
-                            if (iQwertyInputMode)
-                                {
-                                sctChars = EAknSCTQwerty;
-                                }
-                            else
-                                {
-                                sctChars = EAknSCTUpperCase;
-                                if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-                                    {
-                                    sctChars = EAknSCTLowerCase;
-                                    }
-                                }
-                            }
-                        }
-                    else if (iMode == ENumber || iMode == ENativeNumber)
-                        {
-                        sctChars = EAknSCTNumeric;
-                        if ( ((iAknEditorFlags & EAknEditorFlagUseSCTNumericCharmap) ||
-                            (iAknEditorNumericKeymap == EAknEditorAlphanumericNumberModeKeymap)) &&
-                            !IsOnlyHalfWidthCharacterPermitted() )
-                            {
-                            sctChars = EAknSCTLowerCase;
-                            }
-                        }
-                    //delete for phrase creation
-//                    else if (iMode == EStroke && iFepManState == EAknFepStateUIActive)
-//                    	{
-//                    	return;
-//                    	}
-                    else if (iMode == EHiraganaKanji)
-                        {
-                        sctChars = EAknSCTFullCase;
-                        }
-                    else if(iMode == EKatakana)
-                        {
-                        sctChars = EAknSCTHalfCase;
-                        }
-                    }
-                    
-                if (!(ExtendedInputCapabilities() & CAknExtendedInputCapabilities::EDisableSCT))                    
-                    {
-                    if( menuPane && (EditorType() != CAknExtendedInputCapabilities::EEikSecretEditorBased))
-                        {
-                        if(IsAbleToLaunchSmiley())
-                            {
-                            sctChars |= EAknCharMapEmotionUse;
-                            }
-                        
-                        menuPane->ConstructMenuSctRowFromDialogL( sctChars, iEditCharsPtr, 
-                                                                  currentEditorSCTResId );                    
-                        }
-                    }
-                }
-            }
-            iEditMenuBar->SetMenuType(CAknFepUiInterfaceMenuBar::EMenuEdit);
-            iFepPluginManager->SetMenuState( ETrue ); 
-            iEditMenuBar->TryDisplayMenuBarL();
-            if (menuPane && menuPane->NumberOfItemsInPane() == 0)
-                {
-                // Edit menu do not contain any items.
-                iEditMenuBar->StopDisplayingMenuBar();
-                iFepPluginManager->ResetMenuState( ETrue );
-                }
-            else
-                {
-                //adjust menu position to the front of dialog to
-                //avoid input capability is wrongly got
-                CCoeEnv* coeEnv = CCoeEnv::Static();
-                CCoeAppUi* appUi = (CCoeAppUi*)(coeEnv->AppUi());
-                if( appUi->IsDisplayingDialog() )
-                    {
-                    iEditMenuBar->RemoveFromStack();
-                    // Set the MenuBar not focused, the later add to stack operation could unfocus other control correctly
-                    iEditMenuBar->SetFocus(EFalse);
-                    iEditMenuBar->AddToStackL(ECoeStackPriorityDialog + 1, ECoeStackFlagStandard);                              
-                    }
-                }
-                
-            iEditMenuBar->SetMenuType(CAknFepUiInterfaceMenuBar::EMenuOptions);
-        }
-    }
-
-void CAknFepManager::LaunchMatchesPopupListL()
-    {
-    TInt noOfMatches = iPtiEngine->NumberOfCandidates();
-    if (noOfMatches > 1)    // 1 => only current match available, 0 => not in inline edit
-        {
-        // Create a list to pass to the dialog
-        CDesCArrayFlat* matchesList=new(ELeave)CDesCArrayFlat(1);
-        CleanupStack::PushL(matchesList);
-        iPtiEngine->GetCandidateListL(*matchesList);
-        TBuf<EMaximumFepWordLength> matchListDesc;
-        TInt matchListItemCount = matchesList->MdcaCount();
-        TInt currentIndex = ResolveCurrentCandidateListIndex(matchesList);      
-        for ( TInt ii=0; ii < matchListItemCount ; ii++)
-            {   
-            matchListDesc = matchesList->MdcaPoint(ii);
-            TChar tempChar = matchListDesc[0];
-            if(tempChar.IsDigit())
-                {
-                AknTextUtils::ConvertDigitsTo(matchListDesc,iLanguageCapabilities.iLocalDigitType);
-                matchesList->Delete(ii);
-                matchesList->InsertL(ii,matchListDesc);
-                }
-            }
-
-        // add 'Spell' to the bottom of the list
-        TResourceReader reader;
-        CCoeEnv* coeEnv = CCoeEnv::Static();
-        coeEnv->CreateResourceReaderLC(reader, R_AVKON_T9_MATCHES_QUERY_SPELL_ITEM);
-        matchesList->AppendL(reader.ReadTPtrC());
-        CleanupStack::PopAndDestroy(); // reader
-
-        TInt index = 0;
-        SetFlag(EFlagForegroundUIComponentVisible);
-
-        TUid fepUid = CCoeEnv::Static()->FepUid();
-        ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-        // Fire up the dialog
-        TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_MATCHES_QUERY, index, 
-                                                          currentIndex, matchesList, NULL);
-        PrepareFepAfterDialogExitL(fepUid);
-        if(returnValue == EAknSoftkeyOk)
-            {// Selected item 'index' from the matches array
-            HandleChangeInFocusL();
-            TBuf<EMaximumFepWordLength> newText;
-            // Get current match from editor and show it as a default text in 'insert word' query.
-            iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(newText, 
-                             iUncommittedText.iAnchorPos, iUncommittedText.Length());
-            
-            if (index==noOfMatches) // => 'spell' item at the bottom of the list
-                {
-                LaunchInsertWordQueryL(newText, iUncommittedText);
-                #ifdef RD_SCALABLE_UI_V2
-                if( iFepFullyConstructed && iFepPluginManager )
-                    {
-                    iFepPluginManager->ResetMenuState();
-                    }
-                #endif
-                }
-            else
-                { // insert word at index into text
-                TBuf<EMaximumFepWordLength> modifiedMatch;                
-                modifiedMatch.Copy(matchesList->MdcaPoint(index));
-                TChar first(newText[0]);
-                if (first.IsUpper())
-                    {
-                    TChar converted(modifiedMatch[0]);
-                    converted.UpperCase();
-                    modifiedMatch[0] = converted;
-                    }
-                InsertTextFromDialogL(modifiedMatch, iUncommittedText);
-                }
-            }
-        CleanupStack::PopAndDestroy(); // matchesList
-        }
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-void CAknFepManager::LaunchCandidatePopupListL( TInt aFocusedIndex )
-    {
-    iKeyBackSpaceHit = 1;
-    //CPtiEngine* ptiEngine = iPtiEngine;
-    
-    // Addition for ITI features on FSQ.
-    // Before open candidate list, if FSQ is opened, 
-    // also need to check and close tooltip on it.
-    SendEventsToPluginManL( EPluginHideTooltip );
-    
-    // Before open candidate list, if touch ui is opened, 
-    // also need to close touch ui firstly.
-    if ( iFepPluginManager->PluginInputMode() != EPluginInputModeNone )
-        {
-        iFepPluginManager->ClosePluginInputUiL( ETrue );
-        }              
-
-    iExactWordPopupContent->HidePopUp();
-        
-    TBool isShiftKeyDepressedAfterCandidateListLaunched = EFalse;
-    // Retrieve active index for QWERTY keypad when Best Prediction is Set
-    TInt activeIndex = KErrNotFound;
-                
-    if(iPrimaryCandidate && IsQwerty() && ( KeyboardLayout() != EPtiKeyboardHalfQwerty))
-        {           
-        iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, &activeIndex );        
-        }
-            
-    TInt noOfMatches = iPtiEngine->NumberOfCandidates();
-    if (noOfMatches > 0)
-        {
-        //! The compact candidate popup that opens with when arrow down pressed while inline editing
-        //MAknFepCandidatePopup *candidatePopup;
-        
-        //Predictive QWERTY (XT9) changes for new Architecture ---->
-        iCandidatePopup = UiInterface()->NewCandidatePopupL(*this);
-        //Predictive QWERTY (XT9) changes for new Architecture <----
-            
-        // Determine the place where to spawn the candidate popup.
-        TPoint  inlineEditorTl;
-        TPoint  inlineEditorBr;
-        TInt    height;
-        TInt    ascent;
-        TInt    documentOffset = iPtiEngine->CurrentWord().Length();
-        
-        //  Popup Position was not right for RTL ---->
-        if(iLanguageCapabilities.iRightToLeftLanguage)
-        	documentOffset = 0;
-        //  Popup Position was not right for RTL <----
-        GetScreenCoordinatesL(inlineEditorTl, height, ascent, documentOffset);
-        
-        inlineEditorTl.iY -= height;
-        GetScreenCoordinatesL(inlineEditorBr, height, ascent);
-        
-        // Focus next word in list ---->
-        // To fix the bug STAA-7GYDB6, Candidate list opens with the highlight on 3rd candidate when Exact typing is use.
-        // Show the popup.
-        TInt selectedIdx = aFocusedIndex;
-        TKeyEvent lastKeyEvent;
-        
-        if(selectedIdx == KErrNotFound)
-            {
-            if (noOfMatches > 1)
-                {
-                selectedIdx = KWordToFocusInCandidateList;
-                }
-            // Focus next word in list <----
-            if(iSListLaunchedFromMenu)
-                {
-                iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, &selectedIdx );
-                iSListLaunchedFromMenu = EFalse;
-                }
-            }
-        TUid fepUid = CCoeEnv::Static()->FepUid();
-        ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-        TInt popupCmd = iCandidatePopup->ExecutePopupL( TRect(inlineEditorTl, inlineEditorBr),
-                                                        selectedIdx, lastKeyEvent, iLanguageCapabilities.iRightToLeftLanguage,
-                                                        (TInt)KeyboardLayout() );
-        PrepareFepAfterDialogExitL(fepUid);      
-        
-        if((lastKeyEvent.iScanCode == EStdKeyDevice3 ) || 
-        		((lastKeyEvent.iScanCode == KAknFEPZeroKey)&& ((KeyboardLayout()== EPtiKeyboard12Key)||(KeyboardLayout()==EPtiKeyboardHalfQwerty))) 
-        		|| lastKeyEvent.iCode == EKeySpace )
-        	{
-        	SetExtendedFlag(EExtendedFlagOkKeyPressOnCandidatePopup);
-        	}
-       
-     
-        TBool needToExecute(EFalse);        
-        //The candidate list was closed by long key press of shift key
-        isShiftKeyDepressedAfterCandidateListLaunched = IsFlagSet(EFlagShiftKeyDepressed) && (KeyboardLayout()== EPtiKeyboard12Key);
-        if (popupCmd != EAknSoftkeyCancel)
-            {
-            HandleChangeInFocusL();
-                              
-            if (popupCmd == EAknFepSoftkeySpell)
-                {                               
-                // For QWERTY Input Mode
-                if (iQwertyInputMode && EPtiKeyboardHalfQwerty != iKeyboardType) 
-                    {   
-                    TInt activeIdx = KErrNotFound;
-                    TInt secondaryIdx = KErrNotFound;
-                                    
-                    iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, 
-                                                &activeIdx );
-                    iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
-                                                &secondaryIdx );
-                    
-                    if(activeIdx != secondaryIdx)
-                        {                        
-                        iPtiEngine->HandleCommandL( 
-                                 EPtiCommandUserActionSetCurrentIndexOfCandidates, &secondaryIdx );                         
-                        }
-                    else
-                        {
-                        secondaryIdx = 0;
-                        iPtiEngine->HandleCommandL( 
-                                 EPtiCommandUserActionSetCurrentIndexOfCandidates, &secondaryIdx );  
-                        }
-                    TPtrC selectedWord = iPtiEngine->CurrentWord();
-                    if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                        {
-                        StartInlineEditingWithSelectedWord(selectedWord);
-                        }
-                    UpdateInlineEditL( selectedWord, selectedWord.Length() );
-                        
-                    } 
-                // For ITUT Keypad, remove autocompletion part before launching Query Dialog
-                else
-                    {
-                    RemoveSuggestedAdvanceCompletionL();
-                    }
-                
-                // delete the candidate popup before launching the edit word dialog
-                // as the candidate list has already been closed.
-                if(iCandidatePopup)
-                    {
-                    delete iCandidatePopup;
-                    iCandidatePopup = NULL;
-                    }
-                
-                LaunchEditWordQueryL(); 
-                }           
-            
-            // Close with space or selection key: Commit and add space or move cursor ahead one
-            // character if next character already is space
-            else if ( ( lastKeyEvent.iScanCode == EStdKeyDevice3 || lastKeyEvent.iScanCode == KAknFEPZeroKey )
-            		 && ( KeyboardLayout() == EPtiKeyboard12Key || KeyboardLayout() == EPtiKeyboardHalfQwerty ) )
-                {
-                iPtiEngine->HandleCommandL( EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-                                            &selectedIdx ); 
-                TPtrC selectedWord = iPtiEngine->CurrentWord();
-                if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                     StartInlineEditingWithSelectedWord(selectedWord);
-                    }
-                UpdateInlineEditL( selectedWord, selectedWord.Length() );
-                iPtiEngine->CommitCurrentWord();
-                CommitInlineEditL();
-				#ifdef RD_INTELLIGENT_TEXT_INPUT    
-				    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-				#endif    
-
-                AddOneSpaceOrMoveCursorL();
-                }
-            // Close with right arrow commits the word, does not add space
-            else if ( lastKeyEvent.iScanCode == EStdKeyRightArrow )
-            	{
-                // Change of UI Spec
-                /*
-                 * The following codde change is a part of bug fix for improper 
-                 * behavior of right arrow key when the candidate list is open. The
-                 * right arrow key according to the UI specs should not the selected 
-                 * candicdate and cursor should be end of the word.
-                 */
-                iPtiEngine->HandleCommandL( EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-                                            &selectedIdx );               
-                TPtrC selectedWord = iPtiEngine->CurrentWord();
-                if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                     StartInlineEditingWithSelectedWord(selectedWord);
-                    }
-                UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-                iPtiEngine->CommitCurrentWord();
-                CommitInlineEditL();
-                #ifdef RD_INTELLIGENT_TEXT_INPUT    
-				    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-				#endif  
-
-                SimulateKeyEventL(EKeyF19);
-                }
-            else if(popupCmd == EAknSoftkeyOk)
-                {
-                iPtiEngine->HandleCommandL( EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-                                            &selectedIdx ); 
-                TPtrC selectedWord = iPtiEngine->CurrentWord();
-                if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                     StartInlineEditingWithSelectedWord(selectedWord);
-                    }
-                UpdateInlineEditL( selectedWord, selectedWord.Length() );
-                iPtiEngine->CommitCurrentWord();
-                CommitInlineEditL();
-                AddOneSpaceOrMoveCursorL();
-                }
-            else
-                {
-                iPtiEngine->HandleCommandL( EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-                                            &selectedIdx ); 
-                TPtrC selectedWord = iPtiEngine->CurrentWord();
-                if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                     StartInlineEditingWithSelectedWord(selectedWord);
-                    }
-                UpdateInlineEditL( selectedWord, selectedWord.Length() );
-                needToExecute = ETrue;
-                }
-            }
-        else if (popupCmd == EAknSoftkeyCancel && iPrimaryCandidate && IsQwerty() 
-				             && ( KeyboardLayout() != EPtiKeyboardHalfQwerty ) )
-            {
-            iPtiEngine->HandleCommandL( EPtiCommandUserActionSetIndexOfActiveCandidate, &activeIndex );             
-            iKeyBackSpaceHit = 0;
-            }            
-		else if(lastKeyEvent.iCode == EKeyPhoneEnd )
-			{
-			HandleChangeInFocusL();
-			CCoeEnv::Static()->SimulateKeyEventL( lastKeyEvent, EEventKey );
-			}		
-	    else if (popupCmd == EAknSoftkeyCancel && IsQwerty() && ( KeyboardLayout() != EPtiKeyboardHalfQwerty ) ) 
-           iKeyBackSpaceHit = 0;
-		
-        // If the dialog is not closed by pressing softkeys, escape, or right arrow
-        // then the pressed key is handled also by Fep. This way the user can keep typing when the popup is open.
-      
-        //=============== Error fixing and simplify the condition ==========================================
-        // The following piece of code should be excuted, if focus word
-        // in the candidate list is accept, otherwise word sholud remain as it is.
-        // If user does not accept the word,popupCmd always be EAknSoftkeyCancel.
-        // Insetead of earlier lengthy condition, makes it simple.
-           
-        if( needToExecute )
-           {
-            const TBool shifted = (lastKeyEvent.iModifiers & (EModifierLeftShift | 
-                                   EModifierRightShift | EModifierShift));
-            const TBool chrDown = (lastKeyEvent.iModifiers & (EModifierLeftFunc));                       
-            
-            const TBool fnDown = (lastKeyEvent.iModifiers & (EModifierRightFunc));                       
-            if(fnDown  ) 
-                iFnKeyManager->SetFnKeyState(CAknFepFnKeyManager::EFnKeyDown)  ;     
-
-         	if (shifted)
-          		{
-          		SetFlag(EFlagQwertyShiftMode|EFlagNoActionDuringShiftKeyPress);
-          		}
-            else
-                {
-                ClearFlag(EFlagQwertyShiftMode|EFlagNoActionDuringShiftKeyPress);
-                }
-            
-            if (chrDown)
-                {
-                SetFlag(EFlagQwertyChrKeyDepressed|EFlagNoActionDuringChrKeyPress);
-                }
-            else
-                {
-                ClearFlag(EFlagQwertyChrKeyDepressed|EFlagNoActionDuringChrKeyPress);
-                }
-            if ( lastKeyEvent.iScanCode == EStdKeyDevice3 )
-                {
-                CCoeEnv::Static()->SimulateKeyEventL( lastKeyEvent, EEventKey );
-                }
-            if (! ( lastKeyEvent.iScanCode == EStdKeyDevice3 || 
-                    lastKeyEvent.iScanCode == EStdKeyRightArrow ) )
-                {
-                /*
-                 * The following code change is a part of bug fix for improper 
-                 * behavior of any keypress when the candidate list is open. The
-                 * keypress according to the UI specs should lock the selected 
-                 * candidate to editor and the inserted letter is appended to it. 
-                 */                
-                iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate);
-                TPtrC selectedWord = iPtiEngine->CurrentWord();
-                if(!IsFlagSet(EFlagInsideInlineEditingTransaction))
-                    {
-                     StartInlineEditingWithSelectedWord(selectedWord);
-                    }
-                UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-                // For QWERTY input mode, scanCode is used
-			#ifdef __HALF_QWERTY_KEYPAD
-                if( KeyboardLayout() == EPtiKeyboardHalfQwerty)
-                    {
-                    iHalfQwertyLastKeyEvent = lastKeyEvent;
-                    iAsyncOwnSimulateKey.CallBack();                    
-                    }
-                else 
-			#endif //__HALF_QWERTY_KEYPAD
-                if (iQwertyInputMode)
-                    {
-                    CCoeEnv::Static()->SimulateKeyEventL( lastKeyEvent, EEventKey );
-                    }
-                // For ITUT input Mode, keyCode is used
-                else
-                    {
-                    SimulateKeyEventL( lastKeyEvent.iCode);
-                    }
-                }
-            }
-            
-        ShowExactWordPopupIfNecessaryL();
-        if(iCandidatePopup)
-            {
-            delete iCandidatePopup;
-            iCandidatePopup = NULL;
-            }
-        }
-    //The flag ECcpuStateShiftkeyWasPressedBeforeLosingFocus suggests that the candidate list was closed with a 
-    //long key press of edit key (shift key). There are multiple calls to HandleChangedInFocusL() one manually and the other  through
-    //CONE focus change notifier. We want the flag to be set for CONE's focus handler.
-    if(isShiftKeyDepressedAfterCandidateListLaunched)
-        {
-        SetCcpuFlag(ECcpuStateShiftkeyWasPressedBeforeLosingFocus);
-        }
-    }
-void CAknFepManager::StartInlineEditingWithSelectedWord(TDesC& aTextToUncommit)
-    {
-    if(iConcatenationTimer->IsActive())
-    	iConcatenationTimer->Cancel();
-	
-    TInt docLenFep=iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-                if (iUncommittedText.iCursorPos>docLenFep)
-                    iUncommittedText.iCursorPos=docLenFep;
-                if (iUncommittedText.iAnchorPos>docLenFep)
-                    iUncommittedText.iAnchorPos=docLenFep;
-                        // Activates western predictive UI to an inline editing state.
-                FepUI()->ActivateUI();
-                SyncStates(EAknFepStateUIActive);
-                  // Predictive QWERTY (XT9) changes <----
-                TRAP_IGNORE(StartInlineEditL(iUncommittedText, aTextToUncommit,
-                        aTextToUncommit.Length(), EFalse));
-
-    }
-void CAknFepManager::ShowExactWordPopupIfNecessaryL()
-    {
-    iExactWordPopupContent->HidePopUp();
-    
-    // Before open tooltip,  
-    // also need to check and close tooltip on it.
-    SendEventsToPluginManL( EPluginHideTooltip );
-    
-    if ( iWesternPredictive && iQwertyInputMode 
-    	 && IsFlagSet( EFlagInsideInlineEditingTransaction ) 
-    	 && (EPtiKeyboardHalfQwerty != KeyboardLayout()))
-        {
-        // In the proactive mode this popup is used to show the exact input if it differs from the
-        // default candidate shown inline.
-        // In the reactive mode it is used to show the best guess candidate if it differs from the
-        // exact word shown inline.
-        
-        TInt activeIdx = KErrNotFound;
-        TInt secondaryIdx = KErrNotFound;
-                     
-        iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, &activeIdx );
-        iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
-        							&secondaryIdx );
-        
-        TBool popupBelowInline = EFalse; // ETrue -> popup is above inline editor                                                                   
-                
-       if(iKeyBackSpaceHit)
-    	    secondaryIdx = activeIdx;
-
-        if ( activeIdx  != secondaryIdx )
-            {
-            popupBelowInline = EFalse;
-            
-            CDesCArray* candidates = new (ELeave) CDesCArrayFlat(16);
-            CleanupStack::PushL(candidates);
-            GetCandidatesL(*candidates, activeIdx);
-            
-            // There is a possibility that the secondary index of the candidate changes
-            iPtiEngine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
-                                        &secondaryIdx );
-            // In case the active index and the secondary index is same, then we do not need to display the
-            // popup
-            if ( activeIdx  == secondaryIdx )
-                {
-                CleanupStack::PopAndDestroy(candidates);
-                return;
-                }
-            
-            TPtrC secondaryWord = (*candidates)[secondaryIdx];
-            iExactWordPopupContent->SetTextL( secondaryWord );
-            iExactWordPopupContent->SetArrowDirection( MAknFepUiWordPopupContent::EUpwards );
-            CleanupStack::PopAndDestroy(candidates);
-
-            // Open FSQ tooltip if FSQ is opened
-     	    SendEventsToPluginManL( EPluginShowTooltip, secondaryIdx );
-
-          
-            // For addtion of ITI features on FSQ.
-            // Showing tooltip on avkon editor and FSQ ICF editor at same time probably 
-            // cause flicker problem. Add this condition to ensure not to show tooltip on
-            // avkon editor when it is being displayed on FSQ.
-            if ( iFepPluginManager && !( iFepPluginManager->IsTooltipOpenOnFSQ() ) )
-                {
-                TPoint  popupTopRight;
-                TInt    height;
-                TInt    ascent;
-                TInt    documentOffset = iPtiEngine->CurrentWord().Length();
-                
-                GetScreenCoordinatesL(popupTopRight, height, ascent, documentOffset);
-
-                iExactWordPopupContent->UpdateContentSize();
-
-                TBool rightToLeftLang = IsRightToLeftParagraph( DocPos() );
-                if ( !rightToLeftLang )
-                    {
-                    popupTopRight.iX += iExactWordPopupContent->Size().iWidth;       
-                    }
-                    
-                if ( popupBelowInline )
-                    {
-                    popupTopRight.iY += ascent / 2;                                   
-                    }
-                else
-                    {
-                    popupTopRight.iY -= height + iExactWordPopupContent->Size().iHeight;
-                    }
-                    
-                iExactWordPopupContent->SetPosition( popupTopRight );
-                iExactWordPopupContent->ShowPopUp();         
-                }                
-            }  
-        }
-		else if(iWesternPredictive 
-    	 && IsFlagSet( EFlagInsideInlineEditingTransaction ) 
-    	 && IsFlagSet(CAknFepManager::EFlagNoMatches)) 
-    	{
-    	UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-    	}
-    }
-
-void CAknFepManager::LaunchPredictiveSettingDialogL()
-	{
-#ifdef RD_SCALABLE_UI_V2	
-    // Addtion of ITI features on FSQ.
-    if ( iFepPluginManager 
-         && iFepPluginManager->IsSupportITIOnFSQ() )
-        {
-        // Hide touch input ui firstly,
-        // otherwise, touch ui can hide status pane.        
-        // Let CAknFepPluginManager know this setting dialog will be opened.
-        iFepPluginManager->ITISettingDialogOpen( ETrue );
-        iFepPluginManager->ClosePluginInputUiL( ETrue );
-        SendEventsToPluginManL( ELostForeground );
-        }
-#endif // RD_SCALABLE_UI_V2
-
-	// Hide fixed toolbar just before launching predictive settings dialog
-	CEikAppUiFactory * appUiFactory = NULL;
-	appUiFactory = static_cast<CEikAppUiFactory*>(CEikonEnv::Static()->AppUiFactory());
-	
-	CAknToolbar * fixedToolbar = NULL;
-	if(appUiFactory)
-	    fixedToolbar = appUiFactory->CurrentFixedToolbar();
-	
-	// If fixedtoolbar is not there in the current editor, we don't need to hide it before launching settings dialog 
-	// and unhide it after settings dialog is done.
-	if( fixedToolbar && !( fixedToolbar->IsShown() && fixedToolbar->CountComponentControls()>0 ) )
-	    fixedToolbar = NULL;
-	
-	if(fixedToolbar)
-		{
-	  fixedToolbar->SetDimmed(ETrue);
-	  fixedToolbar->DrawDeferred();
-	  }
-    TUid fepUid = CCoeEnv::Static()->FepUid();
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-	UiInterface()->LaunchPredictiveSettingDialogL(R_PREDICTIVESETTING_DIALOG,
-												  R_PREDICTIVESETTINGDIALOG_MENUBAR,
-												  R_PREDICTIVETEXTOFF_CONFIRMATION_QUERY,
-												  R_AKNFEP_PRED_INPUT_SETTINGS_TITLE);
-    PrepareFepAfterDialogExitL(fepUid);	
-#ifdef RD_SCALABLE_UI_V2	
-    // // Addtion of ITI features on FSQ.    
-    if ( iFepPluginManager 
-         && iFepPluginManager->IsSupportITIOnFSQ() )
-        {        
-        // Let CAknFepPluginManager know this setting dialog will be opened.
-        iFepPluginManager->ITISettingDialogOpen( EFalse );        
-        }
-#endif // RD_SCALABLE_UI_V2
-
-	// Enables fixed toolbar after predictive settings dialog is closed
-	if(fixedToolbar)
-		{
-	  fixedToolbar->SetDimmed(EFalse);
-	  fixedToolbar->DrawDeferred();
-	  }
-	}
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-void CAknFepManager::LaunchWritingLanguageSettingDialogL()
-    {
-    TUid fepUid = CCoeEnv::Static()->FepUid();
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-    UiInterface()->LaunchWritingLanguageSettingDialogL(R_INPUTLANGUAGE_DIALOG, R_PREDICTIVESETTINGDIALOG_MENUBAR, R_INPUT_LANGUAGE_SETTINGS_TITLE);
-    PrepareFepAfterDialogExitL(fepUid);	
-	}
-
-void  CAknFepManager:: LaunchDualLanguageSettingDialogL()
-    {
-    /* In Chinese language variant,if there are more than one languages supporting dual language feature,
-    display writing language setting view in which Primary and Secondary Languages can be selected from the list.
-    
-    In Chinese language variant,if there is only one language supporting dual language feature, 
-    no need to display the Writing language view which contains Primary and Secondary Language. 
-    Instead we can display the Writing language list directly to the user;from which the user can select the writing language*/
-
-    if( FeatureManager::FeatureSupported( KFeatureIdChinese ) || FeatureManager::FeatureSupported( KFeatureIdJapanese ))
-        {                        
-        CArrayFixFlat<TInt>* languages = new( ELeave )CArrayFixFlat<TInt>( ELanguageArrayGranularity );
-        CleanupStack::PushL( languages );
-        iPtiEngine->GetAvailableLanguagesL( languages );
-        
-        TInt count = languages->Count();   
-        TInt noLangSupportWesternPred = count;
-        for (TInt index = 0; index < count; index++)
-            {      
-            TInt langCode = languages->At(index);            
-            
-            if (langCode == ELangTaiwanChinese ||
-               langCode == ELangHongKongChinese ||
-               langCode == ELangPrcChinese ||
-               langCode == ELangJapanese ||
-               langCode == ELangKorean )
-                {
-                noLangSupportWesternPred--;
-                }            
-            }                         
-        CleanupStack::PopAndDestroy(languages);    
-        
-        if( noLangSupportWesternPred > 1 )
-            {             
-            SetFlag(CAknFepManager::EFlagNewSharedDataInputMode);
-            LaunchWritingLanguageSettingDialogL();            
-            if(IsFlagSet(CAknFepManager::EFlagNewSharedDataInputLanguage))
-                {
-                ClearFlag(CAknFepManager::EFlagNewSharedDataInputLanguage);
-                HandleChangeInFocusL();
-                ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-                }
-            }
-        else
-            LaunchLanguagesPopupListL();                                                
-        }   
-    else
-        {
-        LaunchWritingLanguageSettingDialogL();        
-        if(IsFlagSet(CAknFepManager::EFlagNewSharedDataInputLanguage))
-            {
-            ClearFlag(CAknFepManager::EFlagNewSharedDataInputLanguage);
-            HandleChangeInFocusL();
-            ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-            }
-        } 
-        
-    }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-// Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::LaunchInsertWordQueryL(const TDesC& aInitialText, 
-                                            TCursorSelection aTextSpanToReplace)
-    {
-    TInt recourceId;
-    if(EditorState()->Flags() & EAknEditorFlagEnablePartialScreen)
-        {
-        recourceId = R_AVKON_INSERT_WORD_FS_QUERY;
-        }
-    else
-        {
-        recourceId = R_AVKON_INSERT_WORD_QUERY;
-        }
-    LaunchFepQueryDialogL(recourceId, aInitialText, aTextSpanToReplace);
-    }
-
-void CAknFepManager::LaunchEditWordQueryL()
-    {
-
-    TBuf<EMaximumFepWordLength> newText;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-	if(IsAutoCompleteOn())
-  		{
-        RemoveSuggestedCompletionL();
-        }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(newText, 
-                                                                    iUncommittedText.iAnchorPos, 
-                                                                    iUncommittedText.Length());
-
-    TInt recourceId;
-    if(EditorState()->Flags() & EAknEditorFlagEnablePartialScreen)
-        {
-        recourceId = R_AVKON_INSERT_WORD_FS_QUERY;
-        }
-    else
-        {
-        recourceId = R_AVKON_INSERT_WORD_QUERY;
-        }
-    LaunchFepQueryDialogL(recourceId, newText, iUncommittedText);
-    }
-
-void CAknFepManager::LaunchFepQueryDialogL(TInt aResourceId, const TDesC& aInitialText, 
-                                           TCursorSelection aTextSpanToReplace)
-    {
-    HBufC* textBuf = HBufC::NewLC(EQueryBufferLength);  // buffer for inserted text
-    TPtr text = textBuf->Des();
-
-    if (aInitialText.Length() <= EQueryBufferLength)
-        text.Copy(aInitialText);
-    else // truncate the incoming text to EQueryBufferLength before copying
-        {
-        TPtrC truncatedText = aInitialText.Left(EQueryBufferLength);
-        text.Copy(truncatedText);
-        }
-
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        TryRemoveNoMatchesIndicatorL();
-        CommitInlineEditL();
-        }
-    UpdateCbaL(NULL);
-
-    TInt underlyingCase = iCaseMan->CurrentCase();
-    TBool isCaseUpdatesSupressed = IsFlagSet(EFlagSupressAutoUpdateAtEditorStart);
-
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    if (aInitialText.Length())
-        {
-        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-        if (aInitialText.Length() == 1)
-            {
-            if (STATIC_CAST(TChar, aInitialText[0]).IsUpper())
-                iCaseMan->SetCurrentCase(EAknEditorTextCase);
-            }
-        else // length of initial text > 1
-            {
-            if (STATIC_CAST(TChar, aInitialText[0]).IsUpper())
-                {
-                if (STATIC_CAST(TChar, aInitialText[1]).IsLower())
-                    iCaseMan->SetCurrentCase(EAknEditorTextCase);
-                else // 2nd character is upper case
-                    iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                }
-            }
-        }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-
-    if (iCaseMan->CurrentCase() == EAknEditorLowerCase 
-     || iCaseMan->CurrentCase() == EAknEditorUpperCase)
-        {
-        SetFlag(EFlagSupressAutoUpdateAtEditorStart);
-        }
-
-    TransferFepStateToEditorL();
-
-    SetFlag(EFlagForegroundUIComponentVisible);
-    
-    TInt textQueryEditorFlag = 0;
-    if ((aResourceId == R_AVKON_INSERT_WORD_QUERY ||
-         aResourceId == R_AVKON_EDIT_WORD_QUERY ) &&
-        IsChineseInputLanguage())
-    	{
-	    textQueryEditorFlag = EAknEditorFlagLatinInputModesOnly;
-    	}
-#ifdef RD_SCALABLE_UI_V2     
-    if (iFepFullyConstructed && 
-        iFepPluginManager->PluginInputMode() == EPluginInputModeItut && 
-        !(EditorState()->Flags() & EAknEditorFlagEnablePartialScreen))
-        {
-        iFepPluginManager->SpellText(textBuf);
-        iFepPluginManager->DisplaySpellEditor(textQueryEditorFlag, aInitialText, 
-                                              TCursorSelection(aInitialText.Length(), 0));
-
-        delete iSpellInitText;
-        iSpellInitText = NULL;
-	    iSpellInitText = aInitialText.AllocL();
-	    iSpellInitCurSel = aTextSpanToReplace;
-
-        iFepPluginManager->SetCaseUpdatesSupressed(isCaseUpdatesSupressed);
-        iFepPluginManager->SetITUTSpellingStateL(ETrue);    
-        iFepPluginManager->SetCursorSelection(aTextSpanToReplace);
-        CleanupStack::PopAndDestroy();
-        
-        return;
-        }
-#endif    
-    
-    if(iFepPluginManager)
-        {
-        iFepPluginManager->SetInEditWordQueryFlag(ETrue);
-        }
-
-    PrepareFepForFepAwareDialogLaunch();
-    TUid fepUid = CCoeEnv::Static()->FepUid();
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-    TInt id = iUiInterface->TextQueryDialogL(text, *EditorState(), 
-                                             textQueryEditorFlag, aResourceId);
-    PrepareFepAfterFepAwareDialogExitL(fepUid);        
-    PrepareFepAfterDialogExitL(fepUid);
-
-    if(iFepPluginManager)
-        {
-        iFepPluginManager->SetInEditWordQueryFlag(EFalse);
-        }                                             
-    if (id == EAknSoftkeyOk)
-        {
-        // Insert the character into the edwin.
-        InsertTextFromDialogL(text, aTextSpanToReplace);
-        // Add the word to the user dictionary (except for single character)  after it has been added to the editor.
-        // FepUI of the main editor is used. Different FepUI is used in multitap
-        // query and predictive mode 'main' editor at least in Japanese variant.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if(text.Length() > 1)
-            FepUI()->AddTextToUserDictionaryL(text);
-#else
-        FepUI()->AddTextToUserDictionaryL(text); 
-#endif // RD_INTELLIGENT_TEXT_INPUT
-
-        }
-    else // restore original case and inline text
-        {
-        HandleChangeInFocus();
-        if (aTextSpanToReplace.Length())
-            {
-            EditorState()->SetInlineEditSpan(aTextSpanToReplace);
-            ConfigureFEPFromEditorStateL();
-            }
-        iCaseMan->SetCurrentCase(underlyingCase);
-        TransferFepStateToEditorL();
-        }
-
-    if (isCaseUpdatesSupressed)
-        {
-        SetFlag(EFlagSupressAutoUpdate);
-        }
-    else
-        {
-        ClearFlag(EFlagSupressAutoUpdate);
-        }
-    ClearFlag(EFlagSupressAutoUpdateAtEditorStart);
-    CleanupStack::PopAndDestroy(); // text
-    }
-
-void CAknFepManager::InsertTextFromDialogL(const TDesC& aTextFromDialog, 
-                                           TCursorSelection aExtentOfTextToReplace)
-    {
-    SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-    // ensure we're back on the correct editor
- 
-#ifdef RD_SCALABLE_UI_V2   
-    iNotifyPlugin = EFalse; // not really focus change
-    HandleChangeInFocus();
-    iNotifyPlugin = ETrue;
-#else
-    HandleChangeInFocus();
-#endif    
-    // need to commit if the editor was previously performing an inline edit
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        CommitInlineEditL();
-
-    TInt addedTextLength=0;
-
-    TCursorSelection currentSelection;
-// In case input capabilities goes null leaving with an error code and allowing application to handle..
-    if (NULL == iInputCapabilities.FepAwareTextEditor())
-        User::Leave(KErrCorrupt);
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelection);
-    // Prepare for the edit
-    TInt docLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-    TInt maxLength = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-
-    if (aExtentOfTextToReplace.Length())
-        {
-        if (currentSelection.Length())
-            // Want to 'cancel' the selection so move cursor & anchor to the end of
-            // the selection and then to the end of the current word
-            {
-            TInt endOfSelection=currentSelection.HigherPos();
-            iUncommittedText.SetSelection(endOfSelection, endOfSelection);
-            if (CursorInsideWord())
-                MoveCursorToEndOfWordL();
-            }
-        iUncommittedText = aExtentOfTextToReplace;
-        iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-        addedTextLength = aTextFromDialog.Length();
-        if (maxLength != 0)
-            {
-            addedTextLength = Min(addedTextLength,
-                (maxLength - docLength + iUncommittedText.Length()));
-            }
-        }
-    else
-        {
-        addedTextLength = aTextFromDialog.Length();
-
-        //maxLength of 0 means the editor has no limit
-        if (maxLength != 0)
-            {
-            addedTextLength = Min(addedTextLength,
-                                  (maxLength - docLength + currentSelection.Length()));
-            }
-        if (currentSelection.Length())
-            {
-            iUncommittedText.SetSelection(currentSelection.HigherPos(), 
-                                          currentSelection.LowerPos());
-            iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-            }
-        else // do this in order for editor to get the correct number of chars to format from GetFormatOfFepInlineText()
-            iUncommittedText.iCursorPos+=addedTextLength;
-        }
-    // if necessary trim text to fit into available space in the editor & perform the edit
-    TPtrC textToEditor = aTextFromDialog.Left(addedTextLength);
-
-    StartInlineEditL(textToEditor);
-    CommitInlineEditL();
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-#endif    
-
-    EditorState()->SetInlineEditSpan(iUncommittedText);
-    }
-
-void CAknFepManager::LaunchKutenCodeQueryL()
-    {
-    TInt code;
-    TUid fepUid = CCoeEnv::Static()->FepUid();
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-    UiInterface()->JapaneseKutenQueryDialogL(R_AKNFEPUICTRLJAPANESEKUTEN_QUERY, code, 0);
-
-    PrepareFepAfterDialogExitL(fepUid);
-
-    HandleChangeInFocus();  // to re-establish contact with editor under KutenCode Query
-
-    if (code > 0 && EditorHasFreeSpace())
-        {
-        TBuf<ESingleCharacter> text;
-        text.Append((TText)code);
-        SetFlag(EFlagInsideInlineEditingTransaction);
-        iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(text, ESingleCharacter, 
-                                                                     ETrue, NULL, *this, *this);
-        CommitInlineEditL();
-        }
-    }
-
-TInt CAknFepManager::NumericModeSCTResourceId() const
-    {
-    TInt charMapResId = EDefaultNumericCharMapResId;
-    TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);            
-    
-    if( phoneIdle )
-        {
-        charMapResId=R_AKNFEP_SCT_NUMERIC_MODE_CHARS_STANDARD;
-        return charMapResId;
-        }
-
-    switch (iAknEditorNumericKeymap)
-        {
-        case EAknEditorStandardNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_STANDARD;
-            break;
-        case EAknEditorCalculatorNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_CALCULATOR;
-            break;
-        case EAknEditorConverterNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_CONVERTER;
-            break;
-        case EAknEditorFixedDiallingNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_FIXED_DIALLING;
-            break;
-        case EAknEditorSATNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_SAT;
-            break;
-        case EAknEditorToFieldNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_TO_FIELD;
-            break;
-        case EAknEditorPlainNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN;
-            break;
-        case EAknEditorNativeKeysNumberModeKeymap:
-            //currently this is not in use
-            break;
-        case EAknEditorSATHiddenNumberModeKeymap:
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_SAT_HIDDEN;
-            break;
-        default:
-            //We reach here because there is no valid SCT resource ID set
-            //by the current editor. So best we can do now is set the 
-            //default mode for numeric editors.
-            charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_STANDARD;
-            break;
-        }
-    if(IsHybridAplhaEditor() && !IsHybridAlphaModeChangedtoAplhanumeric())
-        {
-        charMapResId = R_AKNFEP_SCT_NUMERIC_MODE_CHARS_STANDARD;
-        }
-    return charMapResId;
-    }
-
-
-TBool CAknFepManager::HashKeyModeChangeBlockedInSearchField() const
-    {
-    if ((iAknEditorFlags & EAknEditorFlagFindPane) && 
-         iSharedDataInterface->HashKeySelectionInUse() &&                
-         !IsChineseInputLanguage() &&
-         !IsKoreanInputLanguage() &&
-         iLanguageCapabilities.iInputLanguageCode != ELangVietnamese &&
-         !FeatureManager::FeatureSupported(KFeatureIdJapanese))
-         {
-         if (iMode == ELatin || iMode == ENumber || iMode == ENativeNumber )
-            {
-            return ETrue;               
-            }                               
-         }
-             
-    return EFalse;         
-    }
-
-    
-TKeyResponse CAknFepManager::HandleHashKeyL(TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    if (IsFlagSet(EFlagPassNextKey))
-        {
-        ClearFlag(EFlagPassNextKey);
-        }
-    else if (IsFlagSet(EFlagShiftKeyDepressed))
-        {
-        response = EKeyWasConsumed;
-        }
-    else if (HashKeyModeChangeBlockedInSearchField())      
-        {
-        // Do not allow case changes for latin languages in search field
-        // if hash key selection is active.
-        response = EKeyWasConsumed;
-        }
-    else
-        {
-        if ( IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) )
-            {
-#ifdef RD_HINDI_PHONETIC_INPUT	                    
-		if(iSharedDataInterface->InputTextLanguage() != KLangHindiPhonetic)    
-#endif            
-            FepUI()->ExpireMultitapTimer();
-            // For Japanese, send backspace key event in case hash key
-            // is pressed while secret text input.
-           if (IsFeatureSupportedJapanese())
-                {
-                if (iInputCapabilities.SupportsSecretText())
-                    {
-                    SimulateKeyEventL(EKeyF20);          //backspace
-                    }
-                }
-#ifdef RD_HINDI_PHONETIC_INPUT	                    
-		if(iSharedDataInterface->InputTextLanguage() != KLangHindiPhonetic)    
-#endif            
-                ClearFlag(EFlagInsideMultitapInlineEditingTransaction);
-            iCaseMan->UpdateCase(ENullNaviEvent);
-            }
-        if (aLength == EShortKeyPress)
-            {
-            if ( iMode != ENumber && iMode != ENativeNumber )
-                {
-                iModeBefore = iMode;
-                if (iModeBefore == ELatin)
-                    {
-                    iCaseBefore = iCaseMan->CurrentCase();
-                    }
-                }
-            }
-
-       // always keep previous input mode for Japanese input
-       if (IsFeatureSupportedJapanese())
-            {
-            iModeBefore = iMode;
-            if (iModeBefore == ELatin)
-                {
-                iCaseBefore = iCaseMan->CurrentCase();
-                }
-            }
-       if (iMode == EHangul && aLength == ELongKeyPress)
-       		{       
-       		if (IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                TPtrC text = iPtiEngine->CurrentWord();
-                if (text.Length() > 0)
-            		{
-            		CancelInlineEdit();
-            		StartInlineEditL();
-            		UpdateInlineEditL(iPtiEngine->PreviousCandidate(), iPtiEngine->PreviousCandidate().Length());
-            		CommitInlineEditL();
-            		}
-            	else
-            		{
-            		CancelInlineEdit();          		
-            		}
-            	iPtiEngine->ClearCurrentWord();
-                }
-       		}
-		
-        response = iHashKeyMan->HandleKeyEventL(aLength);
-        if (response == EKeyWasNotConsumed)
-            {
-            switch (iAknEditorNumericKeymap)
-                {
-            case EAknEditorStandardNumberModeKeymap: //fall through
-            case EAknEditorFixedDiallingNumberModeKeymap:
-            case EAknEditorSATNumberModeKeymap:
-            case EAknEditorSATHiddenNumberModeKeymap:
-            case EAknEditorAlphanumericNumberModeKeymap:
-                if (!EditorHasFreeSpace())
-                    {
-                    response=EKeyWasConsumed;
-                    }
-                break;
-            case EAknEditorCalculatorNumberModeKeymap: //fall through
-            case EAknEditorConverterNumberModeKeymap:
-                SimulateKeyEventL(CurrentDecimalSeparator());
-                if (EditorHasFreeSpace())
-                    {
-                    SetFlag(EFlagCharacterAdded);
-                    }
-                response=EKeyWasConsumed;
-                break;
-            case EAknEditorToFieldNumberModeKeymap:
-                SimulateKeyEventL(text_to_field_mode_hash_key);
-                if (EditorHasFreeSpace())
-                    {
-                    SetFlag(EFlagCharacterAdded);
-                    }
-                response=EKeyWasConsumed;
-                break;
-            case EAknEditorPlainNumberModeKeymap:
-                response=EKeyWasConsumed;
-                break;
-            case EAknEditorNativeKeysNumberModeKeymap:
-                break;
-            default:
-                break;
-                }
-            }
-        }
-    return response;
-    }
-
-TInt CAknFepManager::EditorNumericKeymap() const
-    {
-    return iAknEditorNumericKeymap;
-    }
-
-
-TBool CAknFepManager::HashKeySelectionInUse() const
-    {       
-	if (ExtendedInputCapabilities() 
-    & CAknExtendedInputCapabilities::EForceHashKeySelectionStatusFlagOff)
-	    {
-	    return EFalse;
-	    }
-        
-    return iSharedDataInterface->HashKeySelectionInUse();           
-    }     
-  
-
-TBool CAknFepManager::EditSubmenuInUse() const
-	{
-	if (RProcess().SecureId().iId == KPhoneSecureId)
-		{
-		if (iQwertyInputMode)
-			{
-			return EFalse;				
-			}
-		} 
-			
-	if (ExtendedInputCapabilities() & CAknExtendedInputCapabilities::EForceEditSubmenuStatusFlagOff)
-	    {
-	    return EFalse;
-	    }			
-			
-	return iSharedDataInterface->EditSubmenuInUse();			
-	} 
-
-
-void CAknFepManager::DimEditMenuModeItems(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    // current item
-    DimMenuItem(aMenuPane, iMode);
-
-    // dim menu items for Chinese input modes that aren't valid in the current editor
-    // or the device subvariant
-    for (TInt mode = KFirstMode; mode <= KLastMode; mode = mode << 1)
-        {
-        if (!IsModePermitted(mode))
-            {
-            DimMenuItem(aMenuPane, mode);
-            }
-        }
-    
-    if (IsAbleToLaunchSmiley())
-        {
-        TInt index;
-        if (aMenuPane->MenuItemExists(EAknCmdEditInsertSmiley, index))
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditInsertSmiley, EFalse);
-            }
-        }        
-    }
-
-void CAknFepManager::DimMenuItem(CAknFepUiInterfaceMenuPane* aMenuPane, TInt aMode)
-    {
-    TInt dimmedMenuItem = 0;
-    switch (aMode)
-        {
-        case EPinyin:
-            dimmedMenuItem = EChinFepCmdModePinyin;
-            break;
-        case EZhuyin:
-            dimmedMenuItem = EChinFepCmdModeZhuyin;
-            break;
-        case EStroke:
-            dimmedMenuItem = EChinFepCmdModeStroke;
-            break;
-        case ECangJie:
-            dimmedMenuItem = EChinFepCmdModeCangJie;
-            break;
-        case EZhuyinFind:
-            dimmedMenuItem = EChinFepCmdModeZhuyinFind;
-            break;
-        case EStrokeFind:
-            dimmedMenuItem = EChinFepCmdModeStrokeFind;
-            break;
-        case ELatin:
-            if ( iLanguageCapabilities.iInputLanguageCode != ELangJapanese)
-                {
-                // According Katja's info, dim the current case item in the 
-                // indicator menu.
-                if ( iCaseMan->CurrentCase() == EAknEditorUpperCase )
-                    {
-                    dimmedMenuItem = EChinFepCmdModeLatinUpper;
-                    }
-                else if(iCaseMan->CurrentCase() == EAknEditorLowerCase)
-                    {
-                    dimmedMenuItem = EChinFepCmdModeLatinLower;
-                    }
-                else if(iCaseMan->CurrentCase() == EAknEditorTextCase)
-                    {
-                    dimmedMenuItem = EAknCmdEditModeLatinText;
-                    }
-                }
-            break;
-        case ENativeNumber:
-            {
-            aMenuPane->SetItemDimmed(EAknCmdEditModeArabicIndicNumber, ETrue);
-            aMenuPane->SetItemDimmed(EAknCmdEditModeEasternArabicIndicNumber, ETrue);
-            aMenuPane->SetItemDimmed(EAknCmdEditModeIndicNumber, ETrue);
-            }
-            break;
-        default:
-            break;
-        }
-    TInt index;
-    if (dimmedMenuItem && aMenuPane->MenuItemExists(dimmedMenuItem, index))
-        {
-        aMenuPane->SetItemDimmed(dimmedMenuItem, ETrue);
-        }
-    }
-
-void CAknFepManager::LaunchConfirmationNoteL(TInt aResourceId)
-    {
-    SetFlag(EFlagForegroundUIComponentVisible);
-	iUiInterface->LaunchConfirmationNoteL(aResourceId);
-    }
-
-void CAknFepManager::NewCharacterL(const TDesC& aChar)
-    {
-    if ( aChar.Length() == 0 )
-    	{
-    	return;
-    	}
-    TChar ch = aChar[0];
-
-    TBool validNewCandidate = CharIsValidInEditor(ch);
-    // Check if the character is valid for the editor.
-    if ( !validNewCandidate )
-        {
-        TChar firstNewCandidate = ch;
-        TBool goneThroughAllCandidates(EFalse);
-        TPtrC8 sequence = iPtiEngine->CurrentInputSequence();
-
-        if ( sequence.Length() )
-            {
-            TPtiKey key = (TPtiKey)sequence[0];
-                        
-            TBuf<20> mapData;              
-            iPtiEngine->MappingDataForKey(key, mapData, iPtiEngine->Case()); 
-            // If the character was not coming from ptiengine mappings, fail instantly.              
-            if (mapData.Locate(firstNewCandidate) != KErrNotFound)
-                {                
-                // If there is an ivalid character in chr-loop, try to jump to next valid one.
-                for (TInt jj = 0; jj < mapData.Length(); jj++)
-                    {
-                    TPtrC text = iPtiEngine->AppendKeyPress(key);
-				    if ( text.Length() == 0 )
-				    	{
-				    	continue;
-				    	}
-                    ch = text[0];
-                    goneThroughAllCandidates = (ch == firstNewCandidate);                    
-                    validNewCandidate = CharIsValidInEditor(ch);
-                    if (validNewCandidate || goneThroughAllCandidates)
-                        {
-                        break;
-                        }                                        
-                    }
-                }            
-            }
-        }
-    if (!validNewCandidate)
-        {
-        // No valid characters at all.
-        CancelInlineEdit();
-        return;
-        }
-
-    if ( (ch == KAknFEPLineFeedSymbol ||
-          ch == KAknFEPMirroredLineFeedSymbol) &&
-        (EditorHasFreeSpace() || IsFlagSet(EFlagLastCharacterInEditor)))
-        {
-        SetFlag(EFlagLineFeedCharacter);
-        }
-    else
-        {
-        ClearFlag(EFlagLineFeedCharacter);
-        }
-        
-    if ( (ch == EKeySpace) &&
-        (EditorHasFreeSpace() || IsFlagSet(EFlagLastCharacterInEditor)))
-        {
-        SetFlag(EFlagSpaceCharacter);
-        }
-    else
-        {
-        ClearFlag(EFlagSpaceCharacter);
-        }
-
-
-    if (iInputCapabilities.SupportsSecretText())
-        {
-        if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-            {
-            SimulateKeyEventL(EKeyF20); // to delete previous char in secret text editor
-            }
-        //we receive an extra key press if we simulate a key that is also a device key
-        if (ch.IsDigit() || TUint(ch) == EStarKeyUnicodeValue || TUint(ch) == EHashKeyUnicodeValue)
-            {
-            SetFlag(EFlagPassNextKey);
-            }
-        if ( ch.IsDigit() && iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic )
-            {
-            ClearFlag(EFlagPassNextKey);
-            SimulateKeyEventL(ch + (TChar)KLatinToArabicIndicDigitsDelta ); 
-            }
-        else if ( ch.IsDigit() 
-               && iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic )
-            {
-            ClearFlag(EFlagPassNextKey);
-            if(iLanguageCapabilities.iInputLanguageCode == ELangUrdu 
-            || iLanguageCapabilities.iInputLanguageCode == ELangFarsi)
-                {
-                SimulateKeyEventL(ch + (TChar)KLatinToEasternArabicIndicDigitsDelta );  
-                }
-            }    
-        else if ( ch.IsDigit() && iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari )
-            {
-            ClearFlag(EFlagPassNextKey);
-            SimulateKeyEventL(ch + (TChar)KLatinToDevanagariDigitsDelta);
-            }
-        else
-            {
-            SimulateKeyEventL(ch);
-            }
-        SetFlag(EFlagInsideMultitapInlineEditingTransaction | EFlagInsideInlineEditingTransaction);
-        }
-    else if (EditorHasFreeSpace() || IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-        {
-        TBuf<1> buf;
-        if ( ch.IsDigit() && iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic )
-            {
-            buf.Append( ch + (TChar)KLatinToArabicIndicDigitsDelta );   
-            }
-        else if ( ch.IsDigit() 
-               && iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic )
-            {
-            if(iLanguageCapabilities.iInputLanguageCode == ELangUrdu 
-            || iLanguageCapabilities.iInputLanguageCode == ELangFarsi)
-                {
-                buf.Append( ch + (TChar)KLatinToEasternArabicIndicDigitsDelta );                    
-                }
-            }    
-        else if ( ch.IsDigit() && iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari )
-            {
-            buf.Append( ch + (TChar)KLatinToDevanagariDigitsDelta );    
-            }
-        else
-            {
-            buf.Append( ch );
-            }
-
-        if (iFepManState == EAknFepStateInitial) //multitapping
-            {
-            if (!IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-                {
-                TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                if (iAknEditorFlags & EAknEditorFlagMTAutoOverwrite && iMode == ELatin 
-                    && !WesternPredictive()
-                    && iUncommittedText.iCursorPos < edSize 
-                    && iUncommittedText.Length() == 0)
-                    {
-                    // If the cursor is at the beginning or in the middle of the text,
-                    // existing characters are replaced with new ones in latin multitap input.
-                    iUncommittedText.iCursorPos++;
-                    StartInlineEditL(iUncommittedText, buf, ESingleCharacter, EFalse);
-                    SetFlag(EFlagInsideMultitapInlineEditingTransaction);
-                    UpdateInlineEditL(buf, ESingleCharacter);
-                    }
-                else
-                    {
-                    StartInlineEditL(buf);
-                    SetFlag(EFlagInsideMultitapInlineEditingTransaction);
-                    }
-                }
-            else
-                {
-                UpdateInlineEditL(buf, ESingleCharacter);
-                }
-
-            if(!EditorHasFreeSpace())
-                {
-                SetFlag(EFlagLastCharacterInEditor);
-                }
-            }
-        else
-            {
-            iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(buf, ESingleCharacter, 
-                                                                        ETrue, NULL, *this, *this);
-            }
-        SetFlag(EFlagInsideInlineEditingTransaction);
-        }
-    }
-
-void CAknFepManager::NewTextL(const TDesC& aText)
-    {
-    ClearFlag(EFlagLineFeedCharacter);
-    TBool unlimit = EFalse;
-    TInt freeSpace = EditorFreeSpace(unlimit);
-
-    if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) ||
-        unlimit || freeSpace > 0 ) //
-        {
-        if( unlimit || freeSpace > aText.Length() )
-            {
-            iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(aText, aText.Length(), ETrue, 
-                                                                                 NULL, *this, *this);
-            }
-        else  
-            {
-            iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(aText.Left(freeSpace), freeSpace, ETrue, 
-                                                                                 NULL, *this, *this);
-            }
-        
-        SetFlag(EFlagInsideInlineEditingTransaction);
-        }
-    }
-
-
-void CAknFepManager::NewCharacterSequenceL(const TDesC& aText, TIndicInputResponse aResponse)
-    {
-    TChar zws((ZERO_WIDTH_SPACE));
-    TChar virama((TAknFepUiIndicInputManager::Virama(TLanguage(
-                    iLanguageCapabilities.iInputLanguageCode))));
-    TBool ret = ETrue;
-	TBuf<CAknFepManager::EMaximumFepWordLength> buf;
-    buf.Zero();
-    TBool isTextLayoutPresent = (AknFepDocumentNavigation() || TextLayout()) ? ETrue : EFalse;
-    switch( aResponse )
-        {
-        case EIndicInputResponseNone:
-            {
-            NewCharacterL(aText);
-            }
-            break;
-        case EIndicInputResponseNumber:
-            {
-            NewCharacterL(aText);
-            CommitInlineEditL();
-            }
-            break;
-        case EIndicInputResponseZWSandCharacter:
-            {
-            if (! iInputCapabilities.SupportsSecretText() && isTextLayoutPresent)
-                {
-                buf.Append(zws);
-                NewCharacterL(buf);
-                CommitInlineEditL();
-                }
-            NewCharacterL(aText);           
-            }
-            break;
-        case EIndicInputResponseInsertZWS:
-            {
-            buf.Append(virama);
-            if(isTextLayoutPresent)
-                buf.Append(zws);
-            ret = EFalse;           
-            }
-            break;
-        case EIndicInputResponseInsertZWSandLigature:
-            {
-            buf.Append(virama);
-            if(isTextLayoutPresent)
-                buf.Append(zws);
-            if ( iInputCapabilities.SupportsSecretText() )
-                {
-                buf.Append(aText);  
-                }
-            ret = EFalse;           
-            }
-            break;
-
-        case EIndicInputResponseInsertRepha:
-            {
-            MCoeFepAwareTextEditor* fepAwareTextEditor = 
-                iInputCapabilities.FepAwareTextEditor();
-
-            if( fepAwareTextEditor )
-                {
-                TInt nextCharPos = 0;
-                TCursorSelection curSel;
-            
-                fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-                
-                // Insert Repha before the desired syllable.
-                TBool leftFlag = GetNextVisualLeftCharacter( nextCharPos );
-                if( leftFlag )
-                    {
-                    curSel.iCursorPos = nextCharPos;
-                    curSel.iAnchorPos = nextCharPos;
-                    
-                    fepAwareTextEditor->SetCursorSelectionForFepL( curSel );
-                                                
-                    TAknFepUiIndicInputManager::GetRepha( buf, 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) );
-
-                    ret = EFalse;
-                    }
-                }
-            break;
-            }
-
-        case EIndicInputResponseInsertRakar:
-            {
-            TAknFepUiIndicInputManager::GetRakar( buf, 
-                TLanguage( iLanguageCapabilities.iInputLanguageCode ) );
-            ret = EFalse;
-            }
-            break;
-#ifdef RD_HINDI_PHONETIC_INPUT      
-    	case EIndicInputResponsePhoneticMultitapText:
-    		{
-    		buf.Append(aText);
-			ret = EFalse;	
-    		}
-    		break;
-        case EIndicInputResponsePhoneticQwertyText:
-            {
-            buf.Append(aText);
-            ret = EFalse;   
-            }
-            break;
-#endif          
-
-        case EIndicInputResponseInsertDirectLigature:
-            {
-            // In key-0, the new line character preceeds the Ksha.
-            // First clear the new line flag.
-            ClearFlag( EFlagLineFeedCharacter );
-            
-            buf.Append( aText );
-            ret = EFalse;
-            }
-            break;
-
-        case EIndicInputResponseInsertViramaZWSandDirectLigature:
-            {
-            // This case handles the insertion of Virama when star key
-            // is pressed.
-
-            // In key-0, the new line character preceeds the Ksha.
-            // First clear the new line flag.
-            ClearFlag( EFlagLineFeedCharacter );
-
-            buf.Append(virama);
-            if(isTextLayoutPresent)
-                buf.Append(zws);
-            if ( iInputCapabilities.SupportsSecretText() )
-                {
-                buf.Append(aText);  
-                }
-            ret = EFalse;
-            }
-            break;
-
-        case EIndicInputResponseZWSandDirectLigature:
-            {
-            if (! iInputCapabilities.SupportsSecretText() && isTextLayoutPresent)
-                {
-                buf.Append(zws);
-                NewCharacterL(buf);
-                CommitInlineEditL();
-                }
-            buf.Zero();
-            buf.Append( aText );
-            ret = EFalse;
-            }
-            break;
-
-#ifdef RD_MARATHI
-		case EIndicInputResponseInsertEyeLashRa:
-			{
-			TAknFepUiIndicInputManager::GetEyeLashRa( buf, 
-				(TLanguage)iLanguageCapabilities.iInputLanguageCode );
-			ret = EFalse;
-    		}
-			break;
-
-		case EIndicInputResponseInsertChandraA:
-			{
-			TAknFepUiIndicInputManager::GetChandraA( buf );
-			ret = EFalse;
-			}
-			break;
-#endif // RD_MARATHI
-
-        default:
-            break;
-        }
-        
-    if(ret)
-        return;
-    
-    if ( iInputCapabilities.SupportsSecretText() )
-        {
-        if ( IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) )
-            {
-            SimulateKeyEventL(EKeyF20); // to delete previous char in secret text editor
-            }
-        for( TInt counter=0; counter<buf.Length(); counter++ )
-            {
-            if( (buf[counter] != ZERO_WIDTH_SPACE) )
-                SimulateKeyEventL(buf[counter]);    
-            }
-        SetFlag(EFlagInsideMultitapInlineEditingTransaction | EFlagInsideInlineEditingTransaction);
-        }
-    else if ( EditorHasFreeSpace() || IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) )
-        {
-        if ( iFepManState == EAknFepStateInitial ) //multitapping
-            {
-            if ( !IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) )
-                {
-                TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                if (iAknEditorFlags & EAknEditorFlagMTAutoOverwrite && iMode == ELatin 
-                    && !WesternPredictive()
-                    && iUncommittedText.iCursorPos < edSize 
-                    && iUncommittedText.Length() == 0)
-                    {
-                    // If the cursor is at the beginning or in the middle of the text,
-                    // existing characters are replaced with new ones in latin multitap input.
-                    iUncommittedText.iCursorPos++;
-                    StartInlineEditL(iUncommittedText, buf, ESingleCharacter, EFalse);
-                    }
-                else
-                    {
-                    StartInlineEditL();
-                    }
-                SetFlag(EFlagInsideMultitapInlineEditingTransaction);
-                }
-            UpdateInlineEditL(buf, buf.Length());
-
-            if( !EditorHasFreeSpace() )
-                {
-                SetFlag(EFlagLastCharacterInEditor);
-                }
-            }
-        SetFlag(EFlagInsideInlineEditingTransaction);
-
-        // Check if text needs to be committed   		
-        if( ( TAknFepUiIndicInputManager::IsToCommitCharSeq( aResponse ) ) )
-            {
-            CommitInlineEditL();    
-            }
-        if( aResponse == EIndicInputResponseInsertZWSandLigature )
-            {
-            NewCharacterL(aText);   
-            }    
-        else if( aResponse == EIndicInputResponseInsertViramaZWSandDirectLigature )
-            {
-            // Doing this here because we first commit the virama 
-            // and ZWS and keep the ligature in the inline buffer.
-            NewLigatureL( aText );
-            }
-        }
-    }
-
-void CAknFepManager::CommitInlineEditL()
-    {   
-    if ( !IsFlagSet( CAknFepManager::EFlagInsideInlineEditingTransaction ) )
-        {
-        return;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Before commit inline, check and close 
-    // tooltip on FSQ first.
-    SendEventsToPluginManL( EPluginHideTooltip );
-
-    // Predictive QWERTY (XT9) changes ---->
-    // Exact word popup is hidden when the inline editor is closed
-    iExactWordPopupContent->HidePopUp();
-    // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if (iInputCapabilities.FepAwareTextEditor())
-			{
-	    if  (IsFlagSet(EFlagLineFeedCharacter))
-	        {
-	        if (iInputCapabilities.SupportsSecretText())
-	            {
-	            SimulateKeyEventL(EKeyF20); // backspace to delete previous char in secret text editor
-	            SimulateKeyEventL(EKeyEnter);
-	            SimulateKeyEventL(EKeyF19); // Asyncronous case update
-	            }
-	        else
-	            {
-	            __ASSERT_DEBUG(iInputCapabilities.FepAwareTextEditor(),
-	                           AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));
-	            iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL(ETrue);
-	            iInputCapabilities.FepAwareTextEditor()->CancelFepInlineEdit();
-	            
-	            // Multitapping enter event is not posted for find pane.
-	            // It would never accept it anyway but the event causes problems in gallery's find.
-	            // Allow real enter from qwerty keyboard though.
-	            if (!(iAknEditorFlags & EAknEditorFlagFindPane) || iQwertyInputMode)
-	                {                
-	                SimulateKeyEventL(EKeyEnter);
-	                SimulateKeyEventL(EKeyF19); // Asyncronous case update
-	                }            
-	            }
-	        }
-	    else if (IsFlagSet(EFlagSpaceCharacter | EFlagFullWidthSpaceCharacter))
-	        {
-	        TBuf<ESingleCharacter> charAsDesc(ESingleCharacter);
-	
-	        if (IsFlagSet(EFlagSpaceCharacter))
-	            {
-	            charAsDesc[0] = TText(0x0020);      // 0x0020 is space
-	            }
-	        else
-	            {
-	            charAsDesc[0] = TText(0x3000);      // 0x3000 is full-width space
-	            }
-	
-	        if (iInputCapabilities.SupportsSecretText())
-	            {
-	            SimulateKeyEventL(EKeyF20); // backspace to delete previous char in secret text editor
-	            SimulateKeyEventL(charAsDesc[0]);
-	            SimulateKeyEventL(EKeyF19); // Asyncronous case update
-	            }
-	        else
-	            {
-	            iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(charAsDesc, 1);
-	            iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL(ETrue);
-	            CCoeEnv* coeEnv = CCoeEnv::Static();
-	            iInputCapabilities.FepAwareTextEditor()->CommitFepInlineEditL(*coeEnv);
-	            iCaseMan->UpdateCase(ENullNaviEvent);
-	            if (!EditorHasFreeSpace())
-	                {
-	                SetFlag(EFlagEditorFull);
-	                }
-	            else
-	            	{
-	            	ClearFlag(EFlagEditorFull);
-	            	}
-	            }
-	        }
-	    else if (IsFlagSet(EFlagInsideInlineEditingTransaction) 
-	         && !iInputCapabilities.SupportsSecretText())
-	        {
-	        // Chinese languages seem not to support this
-	        if ( !IsChineseInputLanguage() &&
-	            (iUncommittedText.Length() == 0 || 
-	                    (
-	#ifdef RD_INTELLIGENT_TEXT_INPUT
-	                    !IsAutoCompleteOn() &&
-	#endif //RD_INTELLIGENT_TEXT_INPUT                    
-	                    !EditorSupportsNeutralProtection()
-	                    ) 
-	            )
-	           )
-	                    
-	            { // empty insertions need no resolution.
-	            /*Hindi*/
-	            if( (TAknFepUiIndicInputManager :: IsIndicLangauge(
-	                      TLanguage(iLanguageCapabilities.iInputLanguageCode))) 
-	#ifdef RD_HINDI_PHONETIC_INPUT
-	                || ( TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(
-	                      TLanguage(iLanguageCapabilities.iInputLanguageCode)) )
-	#endif
-	            )
-	                {
-	                // NOTE! Need to get cursor visibility information from some where.
-	                CommitInlineEditWithoutResolutionL( *(iInputCapabilities.FepAwareTextEditor()), 
-	                                                    ETrue, EFalse); 
-	                }
-	            else
-	                {
-	                // NOTE! Need to get cursor visibility information from some where.
-	                CommitInlineEditWithoutResolutionL( *(iInputCapabilities.FepAwareTextEditor()), 
-	                                                    ETrue);
-	                }
-	            }
-	        else
-	            {
-	
-	            //note secret text editors do not use the MCoeFepAwareTextEditor interface,
-	            //we only need to clear the flags to 'commit' a character
-	
-	            __ASSERT_DEBUG(iInputCapabilities.FepAwareTextEditor(),
-	                           AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));
-	            CCoeEnv* coeEnv = CCoeEnv::Static();
-	
-	            TBool showCursor = ETrue;
-	            if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) ||
-	                IsCcpuFlagSet(ECcpuStateLosingFocus))
-	                {
-	                showCursor = EFalse;
-	                }
-                else
-                    {
-                    if(IsKoreanInputLanguage( ) && IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                        {
-                        showCursor = EFalse;
-                        }
-                    }
-
-	            iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL(showCursor);
-	            ClearFlag(EFlagInsideInlineEditingTransaction);
-	            iInputCapabilities.FepAwareTextEditor()->CommitFepInlineEditL(*coeEnv);
-	
-	            // Arabic & Hebrew required functionality added ---->
-	            if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction)) // Condition added for AknFep.
-	                {
-	                // 3 * as each original character can potentially take 2 markers
-	                HBufC* decoratedTextBuf = HBufC::NewLC(KMaxInlineEditSize + 2); // +2 to accommodate previous and next charcaters
-	                TPtr decoratedText = decoratedTextBuf->Des();
-	                // Resolve in a slightly wider range than the new text. Attempt to expand 1 character in each direction
-	                TCursorSelection resolveSpan(iUncommittedText.HigherPos(), 
-	                                             iUncommittedText.LowerPos());
-	                TInt decCursor = 0;
-	
-	                // Gets the CPlainText object from the focused editor if it exists.
-	                CPlainText* plainText = PlainText();
-	                TBool containsTextField = EFalse;
-	                if (resolveSpan.iAnchorPos > 0)
-	                    {
-	                    if (plainText)
-	                        {
-	                        // Check if surrounding document position contains text field.
-	                        containsTextField = plainText->FindFields(resolveSpan.iAnchorPos - 1);
-	                        }
-	                    TBuf<ESingleCharacter> chDes;
-	                    iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep( chDes, 
-	                                              resolveSpan.iAnchorPos - 1, ESingleCharacter);
-	                    if ( chDes.Length() != 0 && chDes[0] != CEditableText::EPictureCharacter && !containsTextField)
-	                        {
-	                        // Resolve span is not extended if surrounding character is picture character or it
-	                        // contains text field. Text field data would be lost when FEP replaces existing editor
-	                        // content with new text buffer content that does not have text field data.
-	                        // ResolveDecoratedText() call does not handle these special cases which can has some 
-	                        // effects to Arabic & Hebrew text rendering.
-	                        resolveSpan.iAnchorPos--;
-	                        }
-	                    }
-	                if (resolveSpan.iCursorPos < 
-	                    iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep())
-	                    {
-	                    containsTextField = EFalse;
-	                    if (plainText)
-	                        {
-	                        // Check if surrounding document position contains text fields.
-	                        containsTextField = plainText->FindFields(resolveSpan.iCursorPos);
-	                        }
-	                    TBuf<ESingleCharacter> chDes;
-	                    iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep( chDes, 
-	                                                  resolveSpan.iCursorPos, ESingleCharacter);
-	                    if ( chDes.Length() != 0 && chDes[0] != CEditableText::EPictureCharacter && !containsTextField)
-	                        {
-	                        // Resolve span is not extended if surrounding character is picture character or it
-	                        // contains text field. Text field data would be lost when FEP replaces existing editor
-	                        // content with new text buffer content that does not have text field data.
-	                        // ResolveDecoratedText() call does not handle these special cases which can has some 
-	                        // effect to Arabic & Hebrew text rendering.
-	                        resolveSpan.iCursorPos++;
-	                        decCursor++;
-	                        }
-	                    }
-	
-	                // resolveSpan has been widened. Now go get the text for that span.
-	                iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(decoratedText, 
-	                                                 resolveSpan.iAnchorPos, resolveSpan.Length());
-	
-	                if ( decoratedText.Length() != resolveSpan.Length() )
-	                    {
-	                    // This assert checks is we have failed to retrieve enough text.  Should not happen
-	                    // __ASSERT_DEBUG( decoratedText.Length() == resolveSpan.Length(),  Panic(EEikPanicT9CharPosOutOfRange) );
-	                    // Abondon the resolution.
-	
-	                    iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL( ETrue );
-	                    }
-	                else
-	                    {
-	                    TInt lowerOffset = iUncommittedText.LowerPos() - resolveSpan.LowerPos();
-	
-	                    TBool needsResolving = iInlineTextDecorator->ResolveDecoratedText(decoratedText,
-	                        TCursorSelection(lowerOffset, lowerOffset + iUncommittedText.Length()));
-	
-	                    if ( needsResolving )
-	                        {                      
-	                        TBool setToTrue=EFalse;
-	                        iInputCapabilities.FepAwareTextEditor()->Extension1()->StartFepInlineEditL(
-	                            setToTrue,
-	                            resolveSpan,
-	                            decoratedText,
-	                            decoratedText.Length() - decCursor,
-	                            EFalse,
-	                            0, // MFormCustomDrawer*
-	                            *this,
-	                            *this);
-	
-	                        iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL( ETrue );
-	                        if (IsFeatureSupportedJapanese())
-	                            {
-	                            // need to call clear buffer of PtiEngine for Japanese varint
-	                            // before calling second CommitFepInlineEditL().
-	                            // because the committed string is set as reading string twice
-	                            iPtiEngine->ClearCurrentWord();
-	                            }
-	                        iInputCapabilities.FepAwareTextEditor()->CommitFepInlineEditL(*coeEnv);
-	                        }
-	                    else
-	                        {
-	                        // Go directly via CTextView because the normal way via the FepAwareEditor can only be called
-	                        // during an inline edit.
-	                        // Line cursor is made invisible here.  There is no line cursor in S60 LAF, even though there is
-	                        // an Edwin flag which govern this.  See CEikEdwin::SetCursorVisibilityL(TBool)
-	                        // Cursor is not set if this CommitInlineEditL call was prompted when losing focus.
-	                        MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-	                        if ( (docNavi || TextView()) && !IsCcpuFlagSet(ECcpuStateLosingFocus) )
-	                        	{
-	                        	if (docNavi)
-	                        		{
-		                            docNavi->SetCursorVisibilityL( TCursor::EFCursorInvisible, 
-	                                                             TCursor::EFCursorFlashing );
-	                        		}
-	                        	else 
-	                        		{
-		                            TextView()->SetCursorVisibilityL( TCursor::EFCursorInvisible, 
-	                                                                TCursor::EFCursorFlashing );
-	                        		}
-	                        	}
-	                        }
-	                    }
-	                // iMatchState=EWordMatchFirst;
-	
-	                CleanupStack::PopAndDestroy(); // decoratedTextBuf
-	                }
-	            if (iInputCapabilities.FepAwareTextEditor())
-	                {
-	                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);   
-	                }
-	            
-	            iCaseMan->UpdateCase(ENullNaviEvent);
-	            // <---- Arabic & Hebrew required functionality added
-	            if (!EditorHasFreeSpace())
-	                {
-	                SetFlag(EFlagEditorFull);
-	                }
-	            else
-	            	{
-	            	ClearFlag(EFlagEditorFull);
-	            	}
-	            }
-	        }
-	    else if (IsFlagSet(EFlagInsideInlineEditingTransaction) 
-	          && iInputCapabilities.SupportsSecretText())
-	        {
-	        CCoeEnv* coeEnv = CCoeEnv::Static();
-	        iInputCapabilities.FepAwareTextEditor()->CommitFepInlineEditL(*coeEnv);
-	        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-	        
-	        if (iQwertyInputMode)
-	            {
-	            // Case may need to updated automatically in case of qwerty secret text editor
-	            // beause of the sticky shift feature.
-	            if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-	                {
-	                SetCase(ELowerCase);            
-	                }
-	            else
-	                {
-	                SetCase(EUpperCase);                        
-	                }               
-	            UpdateIndicators();         
-	            }
-	        }
-			}
-    
-//    SendEventsToPluginManL( EPluginSyncFepAwareText, EPluginSyncUpdatedText );
-      
-    ClearFlag(EFlagInsideMultitapInlineEditingTransaction | EFlagInsideInlineEditingTransaction |
-        EFlagLineFeedCharacter | EFlagLastCharacterInEditor | EFlagSpaceCharacter |
-        EFlagFullWidthSpaceCharacter);
-        
-    // No-edit_key devices: Inline editing ending, allow edit-menu again.    
-    ClearCcpuFlag(ECcpuStateIgnoreStarUp | ECcpuStateNewPredictiveWord);        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iUncommittedText.iCursorPos=0;
-    iUncommittedText.iAnchorPos=0;
-#endif 
-    if (!iInputCapabilities.FepAwareTextEditor())
-        {
-        // In case while updating the inline edit, 3rd party app removes the focus out of editor before the transaction
-        // completes, we return with an error.
-        User::Leave(KErrCorrupt);
-        }
-
-    }
-
-void CAknFepManager::CommitInlineEditL(const TDesC& aText, TInt aUncommitedTextChange)
-    {
-    if (iMode == EHiraganaKanji)
-        {
-        // When there is not enough editing space to enter the selected candidate,
-        // the error tone is played.
-        if ((iFreeSpaceOfEditor > 0) && (iFreeSpaceOfEditor < aText.Length()))
-            {
-            PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-
-    //maxLength of 0 means the editor has no limit
-    TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-    if ( maxEdSize != 0 && iFreeSpaceOfEditor < aText.Length())
-        {
-        TPtrC charbuf = aText.Left(iFreeSpaceOfEditor);
-        TInt uncommitedTextChange = charbuf.Length();
-        UpdateInlineEditL(charbuf, uncommitedTextChange);
-        }
-    else
-        {
-        UpdateInlineEditL(aText, aUncommitedTextChange);
-        }
-
-    ClearFlag(EFlagInsideMultitapInlineEditingTransaction);
-    CommitInlineEditL();
-    }
-
-void CAknFepManager::CancelInlineEdit()
-    {
-    if( !EditorState()->CurrentInlineEditSpan().Length() )
-    	{
-    	ClearFlag(EFlagInsideInlineEditingTransaction);
-    	if(IsFlagSet(CAknFepManager::EFlagNoMatches))
-    		{
-    		ClearFlag(CAknFepManager::EFlagNoMatches); 
-    		}
-    	}
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        TRAP_IGNORE(TryRemoveNoMatchesIndicatorL());
-
-        if (iInputCapabilities.SupportsSecretText())
-            {
-            TRAP_IGNORE(SimulateKeyEventL(EKeyF20)); // backspace to delete previous char in secret text editor
-            }
-        else if (IsFeatureSupportedJapanese()
-              && iFepManState == EAknFepStateUIActive)
-            {
-            FepUI()->CloseUI();
-            FepUI()->ExpireMultitapTimer();
-            iPtiEngine->ClearCurrentWord();
-            SyncStates(EAknFepStateInitial);
-            }
-        }
-
-    iUncommittedText.iCursorPos=0;
-    
-    iUncommittedText.iAnchorPos=0;
-    
-    iInputCapabilities.FepAwareTextEditor()->CancelFepInlineEdit();
-    ClearFlag(EFlagInsideMultitapInlineEditingTransaction | EFlagInsideInlineEditingTransaction 
-              | EFlagLineFeedCharacter | EFlagSpaceCharacter | EFlagFullWidthSpaceCharacter);
-    ClearCcpuFlag(ECcpuStateNewPredictiveWord);    
-    }
-
-void CAknFepManager::GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine, TInt& aHeight, 
-                                           TInt& aAscent, TInt aDocumentOffset)
-    {
-    TCursorSelection cursorSelection;
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSelection);
-    TInt documentPosition = cursorSelection.LowerPos()  - aDocumentOffset;
-    if (documentPosition < 0)
-        documentPosition = 0;
-    iInputCapabilities.FepAwareTextEditor()->GetScreenCoordinatesForFepL(aLeftSideOfBaseLine, 
-                                                          aHeight, aAscent, documentPosition);
-    }
-
-void CAknFepManager::GetScreenCoordinatesL(TPoint& aLeftSideOfBaseLine, 
-                                           TInt& aHeight, TInt& aAscent)
-    {
-    TCursorSelection cursorSelection;
-    MCoeFepAwareTextEditor* fepAwareTextEditor = iInputCapabilities.FepAwareTextEditor();
-
-    fepAwareTextEditor->GetCursorSelectionForFep(cursorSelection);
-    fepAwareTextEditor->GetScreenCoordinatesForFepL(aLeftSideOfBaseLine, aHeight, aAscent, 
-                                                    cursorSelection.LowerPos());
-    }
-
-TBool CAknFepManager::EditorHasFreeSpace( TInt aRequiredNumberOfCharacter ) const
-    {
-    TBool unlimit = EFalse;
-    TInt freeSpace = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	if(WesternPredictive())
-	    {
-	    freeSpace = EditorFreeSpaceForAutoWordCompletion(unlimit);	
-	    }
-	else
-		{
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    	freeSpace = EditorFreeSpace(unlimit);			
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if( unlimit || freeSpace > aRequiredNumberOfCharacter )
-        {
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-TBool CAknFepManager::IsEditorHasFreeSpace() const
-    {
-    TBool unlimit = EFalse;
-    TInt freeSpace = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	if(WesternPredictive())
-	    {
-	    freeSpace = EditorFreeSpaceForAutoWordCompletion(unlimit);	
-	    }
-	else
-		{
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    	freeSpace = EditorFreeSpace(unlimit);			
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if( unlimit || freeSpace > 0 )
-        {
-        return ETrue;
-        }
-    return EFalse;
-    }
-    
-TInt CAknFepManager::EditorFreeSpace(TBool& aUnlimit, 
-    TBool isToCountUncommittedTextLength /*= EFalse */) const
-    {
-    aUnlimit = EFalse;
-
-    if (!iInputCapabilities.FepAwareTextEditor())
-        {
-        //no handle to MCoeFepAwareTextEditor in non Edwin derived editors
-        return 0;
-        }
-
-    //maxLength of 0 means the editor has no limit
-    TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-    TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-    TCursorSelection currentSelection;
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelection);
-
-    aUnlimit = (maxEdSize == 0 || ((iAknEditorFlags & EAknEditorFlagMTAutoOverwrite) &&
-                                   (currentSelection.iCursorPos >= 0 && 
-                                    currentSelection.iCursorPos < maxEdSize) ));
-    if(aUnlimit)
-        {
-        return 0;
-        }
-    else
-        {
-        if( isToCountUncommittedTextLength )
-            {
-            return ( maxEdSize - edSize + 
-                currentSelection.Length() + UncommittedText().Length() );
-            }
-        return (maxEdSize - edSize + currentSelection.Length());
-        }
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepManager::EditorFreeSpaceForAutoWordCompletion(TBool& aUnlimit, 
-    TBool /* isToCountUncommittedTextLength = EFalse*/ ) const
-    {
-    aUnlimit = EFalse;
-
-    if (!iInputCapabilities.FepAwareTextEditor())
-        {
-        //no handle to MCoeFepAwareTextEditor in non Edwin derived editors
-        return 0;
-        }
-
-    //maxLength of 0 means the editor has no limit
-    TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-    TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-    TInt keySequenceLength = iPtiEngine->CurrentInputSequence().Length();
-    TCursorSelection currentSelectionOrUncommitted;    
-	iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelectionOrUncommitted);
-
-    aUnlimit = (maxEdSize == 0 || ((iAknEditorFlags & EAknEditorFlagMTAutoOverwrite) &&
-                                   (currentSelectionOrUncommitted.iCursorPos >= 0 && 
-                                    currentSelectionOrUncommitted.iCursorPos < maxEdSize) ));
-    if(aUnlimit)
-        {
-        return 0;
-        }
-    else
-        {
-
-        if ( !iQwertyInputMode )
-            {
-            return ( maxEdSize - edSize + currentSelectionOrUncommitted.Length() );
-            }
-        else
-            {
-            // In the predictive QWERTY mode, the keySequenceLength doesn't necessarily have anything
-            // to do with the amount of characters on screen. At least entering accented characters with
-            // Chr-multitapping will increase the key sequence length although number of characters 
-            // doesn't change (this is either bug or feature of ZiCore). Ask the auto-completion
-            // length directly from PtiEngine instead of trying to calculate it on our own.
-            TInt tailLength = 0;
-            TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength ));
-            if( tailLength < 0 )
-             {
-             tailLength = 0;
-             }
-            return (maxEdSize - edSize + currentSelectionOrUncommitted.Length() + tailLength);
-            }
-        }
-    }
-#endif
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT  
-
-TInt CAknFepManager::DocumentLength() const
-    {
-    TInt ret = 0;
-    if ( iInputCapabilities.FepAwareTextEditor() )
-        {
-        ret = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-        }
-    return ret;
-    }
-    
-TBool CAknFepManager::KeyEventWillReplaceCharacter( const TKeyEvent& aKeyEvent )
-    {
-    // The function is currently used only in QWERTY mode. It might not work correctly
-    // with ITU-T input.
-    TBool ret = EFalse;
-    if ( IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) )
-        {
-        // Multitapping
-        ret = ETrue;
-        }
-    else if ( aKeyEvent.iRepeats &&
-              LongPressNumberEntryOnQwerty() &&
-              FnKeyState() == CAknFepFnKeyManager::EFnKeyNone &&
-              KeyMapsDifferentCharacterWithFn( (TPtiKey)aKeyEvent.iScanCode ) )
-        {
-        // QWERTY key long press producing another charcter
-        ret = ETrue;
-        }
-    return ret;    
-    }
-#endif
-#endif
-TChar CAknFepManager::CurrentDecimalSeparator() const
-    {
-    TLocale tLoc;
-    return tLoc.DecimalSeparator();
-    }
-
-void CAknFepManager::ConfigureFEPFromEditorStateL()
-    {
-    User::LeaveIfError(SyncStates(EAknFepStateInitial));
-
-    CAknEdwinState* editorState = EditorState();
-    TInt editorMode = editorState->CurrentInputMode();
-    TInt sharedDataMode = iSharedDataInterface->InputMode();
-    TBool latinCaseSet = EFalse;
-    iPermittedInputModes = editorState->PermittedInputModes();
-    TInt defaultInputMode = editorState->DefaultInputMode();
-    if(iAknEditorFlags != editorState->Flags())
-        {
-        iAknEditorFlags = editorState->Flags();
-        UpdateLocalDigitMode();
-        }
-    iAknEditorNumericKeymap = editorState->NumericKeymap();
-
-    TLanguage localLanguage = ELangTest;
-    if (GetLocalLanguage( localLanguage ) )
-        {
-        iLanguageCapabilities.iLocalInputLanguageInUse = ETrue;
-        if ( localLanguage != iLanguageCapabilities.iInputLanguageCode )
-            {
-            ChangeInputLanguageL(localLanguage);
-            }
-        }
-    else if (iLanguageCapabilities.iLocalInputLanguageInUse)
-        {
-        ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-        iLanguageCapabilities.iLocalInputLanguageInUse = EFalse;
-        ClearFlag(EFlagNewSharedDataInputMode);
-		}
-
-    if (IsFlagSet(EFlagNewSharedDataInputLanguage) )
-        {
-        //Global mode or input language has been changed in general settings
-        if ( !iLanguageCapabilities.iLocalInputLanguageInUse)
-            {
-            ChangeInputLanguageL(iSharedDataInterface->InputTextLanguage());
-            }
-        ClearFlag(EFlagNewSharedDataInputLanguage);
-        }
-
-    if (IsFeatureSupportedJapanese())
-        {
-        // set Japanese predicitve ON/OFF
-        if (iAknEditorFlags & EAknEditorFlagNoT9)
-            {
-            iJapanesePredictive = EFalse;
-            }
-        else
-            {
-            // Is it supported Japanese predictive input
-            if (HasJapanesePredictionInputMode())
-                {
-                iJapanesePredictive = iSharedDataInterface->PredictiveTextJapaneseOn();
-                }
-            else
-                {
-                // if Predictive Japanese input isn't supported in PtiEngine, set to OFF.
-                iJapanesePredictive = EFalse;
-                iSharedDataInterface->ResetJapanesePredictiveTextOn();
-                }
-            }
-
-        // In Japanese variant, EAknEditorTextInputMode of allow input mode
-        // means all input mode.
-        if (iPermittedInputModes & EAknEditorTextInputMode)
-            {
-            iPermittedInputModes |= (EAknEditorKatakanaInputMode |
-                                    EAknEditorHalfWidthTextInputMode |
-                                    EAknEditorFullWidthTextInputMode |
-                                    EAknEditorFullWidthNumericInputMode |
-                                    EAknEditorFullWidthKatakanaInputMode |
-                                    EAknEditorHiraganaKanjiInputMode |
-                                    EAknEditorHiraganaInputMode);
-            }
-
-        if (iAknEditorFlags & EAknEditorFlagLatinInputModesOnly)
-            {
-            if (iPermittedInputModes == EAknEditorNumericInputMode)
-                {
-                iPermittedInputModes = EAknEditorNumericInputMode;
-                }
-            else if (iPermittedInputModes & EAknEditorNumericInputMode)
-                {
-                iPermittedInputModes = (EAknEditorHalfWidthTextInputMode 
-                                      | EAknEditorNumericInputMode);
-                }
-            else
-                {
-                iPermittedInputModes = EAknEditorHalfWidthTextInputMode;
-                }
-            }
-
-        if (editorMode)
-            {
-            editorMode = ConfigureFepModeFromEditorMode(editorMode);
-            }
-        else // for new editors
-            {
-            iCharWidth = EHalfWidthChar;
-            sharedDataMode = EHiraganaKanji;
-            // First input mode is changed to Latin from Hiragana/Kanji
-            // if display language is English.
-            TInt dispLang = iSharedDataInterface->DisplayLanguage();
-            // ELangTest means Automatic as display language in GS
-            if (dispLang == ELangTest)
-                {
-                // UiLanguage isn't Japanese, Latin is set.
-                if (iUiLanguage != ELangJapanese)
-                    {
-                    sharedDataMode = ELatin;
-                    }
-                }
-            else if (dispLang != ELangJapanese)
-                {
-                // Display language isn't Japanese, Latin is set.
-                sharedDataMode = ELatin;
-                }
-
-            if (!(iPermittedInputModes & EAknEditorHiraganaKanjiInputMode))
-                {
-                if (IsOnlyFullWidthCharacterPermitted())
-                    {
-                    iCharWidth = EFullWidthChar;
-                    }
-                else if (IsOnlyHalfWidthCharacterPermitted())
-                    {
-                    iCharWidth = EHalfWidthChar;
-                    }
-
-                if (iPermittedInputModes & (EAknEditorKatakanaInputMode |
-                                        EAknEditorFullWidthKatakanaInputMode))
-                    {
-                    // In case setting Latin as above, Latin is used preferentially.
-                    if (sharedDataMode == ELatin
-                     && (iPermittedInputModes & 
-                           (EAknEditorHalfWidthTextInputMode | EAknEditorFullWidthTextInputMode)))
-                        {
-                        sharedDataMode = ELatin;
-                        }
-                    else
-                        {
-                        sharedDataMode = EKatakana;
-                        }
-                    }
-                else if (iPermittedInputModes & (EAknEditorHalfWidthTextInputMode |
-                                             EAknEditorFullWidthTextInputMode))
-                    {
-                    sharedDataMode = ELatin;
-                    }
-                else if (iPermittedInputModes & (EAknEditorNumericInputMode |
-                                                 EAknEditorFullWidthNumericInputMode))
-                    {
-                    sharedDataMode = ENumber;
-                    }
-                // First input mode is changed to latin from katakana
-                // if display language is English.
-                if (!(dispLang == ELangTest || dispLang == ELangJapanese))
-                    {
-                    if ((iPermittedInputModes &  EAknEditorKatakanaInputMode) &&
-                        (iPermittedInputModes & EAknEditorHalfWidthTextInputMode))
-                        {
-                        sharedDataMode = ELatin;
-                        }
-
-                    if ((iPermittedInputModes &  EAknEditorKatakanaInputMode) &&
-                        (iPermittedInputModes & EAknEditorFullWidthTextInputMode))
-                        {
-                        sharedDataMode = ELatin;
-                        }
-                    }
-                }
-            }
-        }
-    else // for other variants (western or chinese)
-        {
-        if (!(iPermittedInputModes & (EAknEditorTextInputMode | EAknEditorNumericInputMode 
-            | EAknEditorSecretAlphaInputMode)))
-            {
-            // Any latin input mode is not permitted by the editor.
-            // For compatibility permitted japanese input modes are checked and
-            // corresponding latin input modes are allowed.
-            if ( iPermittedInputModes & (EAknEditorKatakanaInputMode |
-                                    EAknEditorHalfWidthTextInputMode |
-                                    EAknEditorFullWidthTextInputMode |
-                                    EAknEditorFullWidthKatakanaInputMode |
-                                    EAknEditorHiraganaKanjiInputMode |
-                                    EAknEditorHiraganaInputMode))
-                {
-                iPermittedInputModes |= EAknEditorTextInputMode;
-                }
-            if ( iPermittedInputModes & EAknEditorFullWidthNumericInputMode )
-                {
-                iPermittedInputModes |= EAknEditorNumericInputMode;
-                }
-
-            if ( !(defaultInputMode & (EAknEditorTextInputMode | EAknEditorNumericInputMode)))
-                {
-                if (defaultInputMode & (EAknEditorKatakanaInputMode |
-                                    EAknEditorHalfWidthTextInputMode|
-                                    EAknEditorFullWidthTextInputMode |
-                                    EAknEditorFullWidthKatakanaInputMode |
-                                    EAknEditorHiraganaKanjiInputMode |
-                                    EAknEditorHiraganaInputMode))
-                    {
-                    defaultInputMode = EAknEditorTextInputMode;
-                    }
-                else if (defaultInputMode & EAknEditorFullWidthNumericInputMode)
-                    {
-                    defaultInputMode = EAknEditorNumericInputMode;
-                    }
-                }
-            }
-        }
-
-    // object provider items
-    iEditMenuBar = NULL;
-    editorState->SetMenu();
-    editorState->SetCba();
-
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-    iOptionsMenuBar = NULL;
-#endif    
-
-    SetWesternPredictive(iSharedDataInterface->PredictiveTextOn());
-    //check that we don't have a Chinese find mode saved to an editor that is
-    //not a Chinese find pane
-    __ASSERT_DEBUG( !((editorMode == EZhuyinFind || editorMode == EStrokeFind) &&
-        !(iAknEditorFlags & EAknEditorFlagForceTransparentFepModes))
-        , AknFepPanic(EAknFepPanicFindModeSavedToNonFindEditor));
-
-    ReadHashKeyLoopL();
-
-    UpdateNumericEditorDigitType();
-    if ( IsMfneEditor() ) 
-        {
-        UpdateLocalDigitMode();
-        }
-    
-    if (editorMode) //should be an editor that has been used before
-        {
-        if (IsFlagSet(EFlagNewSharedDataInputMode) && (IsModePermitted(sharedDataMode)) && !IsKoreanInputLanguage()
-                && (!(iAknEditorFlags & EAknEditorFlagForceTransparentFepModes)))
-            {
-            
-                {
-                //change to global mode, except in Find Pane, where we ignore
-                //GS setting
-                TryChangeModeL(sharedDataMode);
-                ClearFlag(EFlagNewSharedDataInputMode);
-                latinCaseSet = sharedDataMode & (ELatinUpper | ELatinLower);
-                if (sharedDataMode == ELatinText)
-                    {
-                    editorState->SetFlags( editorState->Flags() & ~EFlagSupressAutoUpdate );
-                    }
-                }
-            }
-
-        // Next two cases are apps/UI intitialinsg their editors in the
-        // with the modes defined in uikon.hrh, change these to an appropriate
-        // FEP mode
-        else if (editorMode == EAknEditorNumericInputMode)
-            {
-            iCharWidth = EHalfWidthChar;
-            if ( (iMode == ENumber || iMode == ENativeNumber) && 
-                 IsModePermitted(iMode))
-                {
-                TryChangeModeL( iMode );
-                }
-            else if ( IsInputModeAvailable(ENativeNumber) &&
-                 ( iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic || 
-                   iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ||
-                   iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ) )
-                {
-                TryChangeModeL( ENativeNumber );
-                }
-            else
-                {
-                TryChangeModeL( ENumber );
-                }
-            }
-        else if (editorMode == EAknEditorSecretAlphaInputMode)
-            {
-            //this is safe default as it is currently allowed in all FEPs
-            SetWesternPredictive(EFalse);
-            TryChangeModeL(ELatin);
-            }
-        else if (editorMode == EAknEditorTextInputMode)
-            {        
-            if (IsKoreanInputLanguage())
-            	{
-                if(iMode == EHangul || iMode == ENumber || iMode == EAknEditorNullInputMode )
-            		{
-            		SetWesternPredictive(EFalse);
-         			TryChangeModeL(EHangul);
-            		}
-            	else
-            		{
-            		TryChangeModeL(ELatin);
-            		}
-            	}
-            else
-            	{
-            	//this is safe default as it is currently allowed in all FEPs
-            	TryChangeModeL(ELatin); 
-            	}
-            }
-        else if (!iStrokeUsedInQWERTY)
-        	{
-        	if (editorMode == EStroke && sharedDataMode == ECangJie)
-        		{
-        		TryChangeModeL(sharedDataMode);
-        		}
-        	else
-        		{
-        		TryChangeModeL(editorMode);
-        		}
-        	}
-        else  //normal case, use locally stored mode
-            {
-            if (editorMode == ECangJie && sharedDataMode == ECangJie && iQwertyInputMode)
-            	{
-            	TryChangeModeL(EStroke);
-            	}
-            else
-            	{
-            	TryChangeModeL(editorMode);
-            	}
-            }
-        }
-    else if ((iAknEditorFlags & EAknEditorFlagForceTransparentFepModes) 
-              && !IsFeatureSupportedJapanese())  //new find pane
-        {
-        // the default chinese find mode is the first mode in the hash key loop, except PrcChinese
-        if( iLanguageCapabilities.iInputLanguageCode == ELangPrcChinese)
-            {
-            // Fix bug EHST-6DBFUJ: Default searching language shall be ELatin
-            // Changed from EPinyin to ELatin here
-            TryChangeModeL(ELatin);
-            }
-        else
-            {
-            TryChangeModeL(iHashKeyLoop[0]); 
-            }
-        }
-    else    //new editor
-        {
-        if (defaultInputMode == EAknEditorNumericInputMode)
-            {
-            //numeric mode is not saved to/retreived from shared data
-            iCharWidth = EHalfWidthChar;
-            
-            if( IsInputModeAvailable(ENativeNumber) && 
-                ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-                {
-                TryChangeModeL( ENativeNumber );
-                }
-            else
-                {
-                TryChangeModeL( ENumber );
-                }
-            }
-        else if ((defaultInputMode == EAknEditorTextInputMode) &&
-                 ((iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) ||
-                 (iAknEditorFlags & EAknEditorFlagNoT9)))
-            {
-            //Chinese Modes or Western Predictive mode not allowed.
-            //See if we are ok going to the current shared data mode,
-            //otherwise go for a safe default
-            if (TryChangeModeL(sharedDataMode))
-                {
-                latinCaseSet = sharedDataMode & (ELatinUpper | ELatinLower);
-                }
-            else
-                {
-                TryChangeModeL(ELatin);
-                }
-            }
-        else if (defaultInputMode == EAknEditorHalfWidthTextInputMode)
-            {
-            iCharWidth = EHalfWidthChar;
-            TryChangeModeL(ELatin);
-            }
-        else if (defaultInputMode == EAknEditorHiraganaInputMode)
-            {
-            TryChangeModeL(EHiragana);
-            }
-        else if (  iLanguageCapabilities.iInputLanguageCode == ELangJapanese
-              && (defaultInputMode == EAknEditorKatakanaInputMode
-              || defaultInputMode == EAknEditorFullWidthKatakanaInputMode))
-            {
-            iCharWidth = (defaultInputMode == EAknEditorKatakanaInputMode)?
-                                EHalfWidthChar : EFullWidthChar;
-            TryChangeModeL(EKatakana);
-            }
-        else if (defaultInputMode == EAknEditorFullWidthTextInputMode)
-            {
-            iCharWidth = EFullWidthChar;
-            TryChangeModeL(ELatin);
-            }
-        else if (defaultInputMode == EAknEditorFullWidthNumericInputMode)
-            {
-            iCharWidth = EFullWidthChar;
-            if( IsInputModeAvailable(ENativeNumber) && 
-                ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-                {
-                TryChangeModeL( ENativeNumber );
-                }
-            else
-                {
-                TryChangeModeL( ENumber );
-                }
-            }
-        else if (defaultInputMode == EAknEditorTextInputMode 
-            && iLanguageCapabilities.iInputLanguageCode == ELangHindi )
-            {
-            TryChangeModeL( EHindi );
-            }
-        else // Default input mode is EAknEditorTextInputMode
-            {
-            // Check possibility move this section on else if
-            if (IsKoreanInputLanguage())
-            	{
-            	TryChangeModeL(EHangul);
-            	}
-            else if (TryChangeModeL(sharedDataMode))
-                {
-                latinCaseSet = sharedDataMode & (ELatinUpper | ELatinLower);
-                }
-            else
-                {
-                TryChangeModeL(ELatin);
-                }
-                
-            }
-        }
-
-    if (!iMode)
-        {
-        // If mode change wasn't successful, try latin mode as fallback.
-        TryChangeModeL(ELatin);             
-        }
-
-    // if also fallback fails, panic.
-    __ASSERT_DEBUG(iMode, AknFepPanic(EAknFepPanicNoPermittedEditorModesAvailable));
-
-    if (iCaseMan && !latinCaseSet)
-        {
-        iCaseMan->ConfigureCaseStateFromEditorState();
-        if ( (editorState->Flags() & EFlagSupressAutoUpdate) ||
-            editorMode == EAknEditorSecretAlphaInputMode )
-            {
-            SetFlag(EFlagSupressAutoUpdate);
-            }
-        else
-            {
-            ClearFlag(EFlagSupressAutoUpdate);
-            }
-        }
-    if ((iAknEditorFlags & EAknEditorFlagForceTransparentFepModes) &&
-        IsChineseInputLanguage() && iCaseMan != NULL )
-        {
-        SetFlag(EFlagSupressAutoUpdate);
-        iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-        }
-
-    UpdateEditorContext();
-
-    // Check if this editor was previously inline editing
-    if ( WesternPredictive() && editorState->CurrentInlineEditSpan().Length())
-        { // restore the fep to an inline editing state
-        iUncommittedText = editorState->CurrentInlineEditSpan();
-        TInt docLenFep=iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-        if (iUncommittedText.iCursorPos>docLenFep)
-            iUncommittedText.iCursorPos=docLenFep;
-        if (iUncommittedText.iAnchorPos>docLenFep)
-            iUncommittedText.iAnchorPos=docLenFep;
-
-        TBuf<EMaximumFepWordLength> textToUncommit;
-        iInputCapabilities.FepAwareTextEditor()->
-            GetEditorContentForFep(textToUncommit, iUncommittedText.iAnchorPos, 
-                                   Min(iUncommittedText.Length(), EMaximumFepWordLength));
-
-        // Activates western predictive UI to an inline editing state.
-        FepUI()->ActivateUI();
-        SyncStates(EAknFepStateUIActive);
-        TInt err = iPtiEngine->SetCurrentWord(textToUncommit);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Predictive QWERTY (XT9) changes (TEST) ---->
-        // The PtiXt9Core may choose to ignore the SetCurrentInputSequence() call.
-        // Make sure our text buffer is in sync with the one in PtiEngine.
-        if(KErrNone != err)
-        	textToUncommit = iPtiEngine->CurrentWord();
-        TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-        if((maxEdSize > 0) && (iUncommittedText.iAnchorPos + textToUncommit.Length() > maxEdSize))
-        {
-        	textToUncommit.SetLength(maxEdSize - iUncommittedText.iAnchorPos);
-        	iUncommittedText.iCursorPos = maxEdSize;
-        }	
-        // Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        StartInlineEditL(iUncommittedText, textToUncommit, textToUncommit.Length(), EFalse);
-       
-        // Make sure editor character case in sync
-        if( iUncommittedText.iAnchorPos == 0 )
-        	iCaseMan->UpdateCase(ENullNaviEvent);
-        
-        }
-
-    if (editorState != iPreviousEditorState)
-        {
-        // we have changed editor, time to update local digits mode
-        UpdateLocalDigitMode(); 
-        iPreviousEditorState = editorState;
-        }
-
-    if(IsExtendedFlagSet(EExtendedFlagShiftReleasedOnPopup) && !(iAknEditorFlags & EAknEditorFlagFindPane) )
-        {
-        // If in FEP context, shift is released on a non fep aware dialog
-        // like "text copied to clipboard", then release the shift 
-        // when the editor comes in focus by simulating shift up event.
-        ClearExtendedFlag(EExtendedFlagShiftReleasedOnPopup);
-        TKeyEvent shiftUp = {0, EStdKeyLeftShift, 0, 0};
-        CCoeEnv::Static()->SimulateKeyEventL(shiftUp, EEventKeyUp);     
-        }
-    else if (IsFlagSet(EFlagLongShiftKeyPress) && !(iAknEditorFlags & EAknEditorFlagFindPane))
-        {
-        // Find pane editor does not require any shift simulation
-        
-        // After the "text copied" note and if the shift key was not released
-        // then simulate shift down event.
-        TKeyEvent shiftDown = {0, EStdKeyLeftShift, 0, 0};
-        CCoeEnv::Static()->SimulateKeyEventL(shiftDown, EEventKeyDown);      
-        if((!iCandidatePopup) && (KeyboardLayout() != EPtiKeyboard12Key ))
-        ResetShiftKeyMonitorL();
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TransferFepStateToEditorL(EFalse); // ensure editor has up to date state
-#else
-    TransferFepStateToEditorL(); // ensure editor has up to date state
-#endif   
-    
-    iHashKeyMan->ResetIndicHashKeyStateL();
-    ClearExtendedFlag(EExtendedFlagShortPressHashKey);
-    }
-
-TInt CAknFepManager::ConfigureFepModeFromEditorMode(TInt aEditorMode)
-    {
-    TInt fepMode(aEditorMode);
-
-    switch (aEditorMode)
-        {
-        case EAknEditorNumericInputMode:
-            if( IsInputModeAvailable(ENativeNumber) && 
-                ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-                {
-                fepMode = ENativeNumber;
-                }
-            else
-                {
-                fepMode = ENumber;
-                }
-            iCharWidth = EHalfWidthChar;
-            break;
-        case EAknEditorSecretAlphaInputMode:
-        case EAknEditorTextInputMode:
-        case EAknEditorHalfWidthTextInputMode:
-            fepMode = ELatin;
-            iCharWidth = EHalfWidthChar;
-            break;
-        case EAknEditorKatakanaInputMode:
-            fepMode = EKatakana;
-            iCharWidth = EHalfWidthChar;
-            break;
-        case EAknEditorFullWidthTextInputMode:
-            fepMode = ELatin;
-            iCharWidth = EFullWidthChar;
-            break;
-        case EAknEditorFullWidthKatakanaInputMode:
-            fepMode = EKatakana;
-            iCharWidth = EFullWidthChar;
-            break;
-        case EAknEditorFullWidthNumericInputMode:
-            if( IsInputModeAvailable(ENativeNumber) && 
-                ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-                  iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-                {
-                fepMode = ENativeNumber;
-                }
-            else
-                {
-                fepMode = ENumber;
-                }
-            iCharWidth = EFullWidthChar;
-            break;
-        case EAknEditorHiraganaKanjiInputMode:
-            fepMode = EHiraganaKanji;
-            break;
-        case EAknEditorHiraganaInputMode:
-            fepMode = EHiragana;
-            break;
-        default:
-            break;
-        }
-    return fepMode;
-    }
-
-void CAknFepManager::LaunchHelpTextQueryL()
-    {
-    TUid fepUid = CCoeEnv::Static()->FepUid();  
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-    iUiInterface->LaunchHelpTextQueryL(R_AKNFEP_HELP_TEXT);
-    PrepareFepAfterDialogExitL(fepUid);
-    }
-
-void CAknFepManager::UpdateEditorContext() const
-    {
-    if(EditingStateIndicator())
-        {
-        iUiInterface->UpdateEditorContext(*EditingStateIndicator(), *FepUI());
-        }
-    }
-
-TBool CAknFepManager::TextIsValidInEditor(const TDesC& aText)
-    {
-    TBool ret = ETrue;
-    TUint length = aText.Length();
-    TCoeInputCapabilities::MCoeFepSpecificExtensions* ipCapExt = 
-                           iInputCapabilities.FepSpecificExtensions(TUid::Uid(EAknFepUid));
-    if (ipCapExt)
-        {
-        while(length--)
-            {
-            if (!ipCapExt->IsValidCharacter(aText[length]))
-                {
-                ret = EFalse;
-                }
-            }
-        }
-    return ret;
-    }
-
-TBool CAknFepManager::CharIsValidInEditor(TChar aChar)
-    {
-    TBool ret = ETrue;
-    TCoeInputCapabilities::MCoeFepSpecificExtensions* ipCapExt = 
-                           iInputCapabilities.FepSpecificExtensions(TUid::Uid(EAknFepUid));
-    if (ipCapExt)
-        {
-        if (!ipCapExt->IsValidCharacter(aChar))
-            {
-            ret = EFalse;
-            }
-        }
-    return ret;
-    }
-
-void CAknFepManager::SetCursorType(TChineseFepCursorType aType)
-    {
-    TBool setToTrue = ETrue;
-    TTextCursor newCursor;
-
-    newCursor.iType=TTextCursor::ETypeRectangle;
-    if (aType == EPassive)
-        {
-        newCursor.iType=TTextCursor::ETypeHollowRectangle;
-        }
-    if ( IsFepAwareTextEditor() )
-        {
-        iInputCapabilities.FepAwareTextEditor()->Extension1()->SetCursorType(setToTrue, newCursor);
-        }
-    }
-
-MAknEditingStateIndicator* CAknFepManager::EditingStateIndicator() const
-    {
-    MAknEditingStateIndicator* indicator = NULL;
-
-    // First ask indicator from controls owning the editor.
-    // For example CAknQueryControl and CAknSearchField implement
-    // their own indicators.
-
-    MObjectProvider* objectProvider = NULL;
-
-    // First try through CAknEdwinState object.
-    // It exists with CEikEdwin-derived editors.
-    
-		MCoeFepAwareTextEditor* editor = NULL;
-		MCoeFepAwareTextEditor_Extension1* ext1 = NULL;
-		CAknEdwinState* state = NULL;
-
-    editor = iInputCapabilities.FepAwareTextEditor();
-    
-    if(editor)
-    	ext1 = editor->Extension1() ;
-    if(ext1)
-      state = (CAknEdwinState*)ext1->State( KNullUid ) ;
-      
-    if ( IsFepAwareTextEditor() && ( editor  ) && ( ext1) && ( state ))
-        {
-        objectProvider = state->ObjectProvider();
-        }
-
-    // If not found, try to get object provider from input capabilities.
-    // It is set there with CEikMfne-derived editors.
-
-    if ( !objectProvider )
-        {
-        objectProvider = iInputCapabilities.ObjectProvider();
-        }
-
-    if ( objectProvider )
-        {
-        indicator = objectProvider->MopGetObject( indicator );
-        }
-
-    // If no indicator was supplied, get one from CAknEnv.
-    // By default, this one is FEP's own indicator.
-
-    if ( !indicator )
-        {
-        indicator = CAknEnv::Static()->EditingStateIndicator();
-        if (indicator != iIndicator)
-            {
-            CAknEnv::Static()->SwapEditingStateIndicator(iIndicator);
-            indicator = iIndicator;
-            }
-        }
-
-    return indicator;
-    }
-
-TBool CAknFepManager::TryHandleArrowRightEventL(TInt aDokumentLength)
-    {
-    TBool ret = EFalse;
-    TBool thai = (iLanguageCapabilities.iInputLanguageCode == ELangThai);
-    if (  iInputCapabilities.FepAwareTextEditor() &&
-          (iSharedDataInterface->SpaceWithScrollRight() || thai ) &&
-          (!(iAknEditorFlags & EAknEditorFlagNoLRNavigation)) &&
-          iFepManState == EAknFepStateInitial &&
-          (!IsFlagSet(EFlagInsideInlineEditingTransaction) ) &&
-          (!IsFlagSet(EFlagShiftKeyDepressed)) &&
-          iMode != EHiragana )          //  Not supported in only Hiragana input mode
-        {
-        TInt cursorPos = DocPos().iPos;
-        TCursorSelection cursorSel;
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSel);
-        if (( cursorPos == aDokumentLength)
-            && !cursorSel.Length()
-            && (IsFeatureSupportedJapanese() || (PreviousChar() != 0x0020)) )
-            {
-            // set to half-width space or full-width space by current input mode.
-            //    0x0020 is unicode for half-width space
-            //    0x3000 is unicode for full-width space
-            TUint code(0);
-            switch (iMode)
-                {
-                case EHiraganaKanji:
-                    code = 0x3000;
-                    break;
-                case ELatin:
-                    code = (!WesternPredictive() && iCharWidth == EFullWidthChar)?
-                            0x3000 : 0x0020;
-                    break;
-                case EHiragana:
-                    // Not supported in only Hiragana input mode
-                    break;
-                case EHangul:
-                	code = 0x0020;
-                	break;
-                case ENumber:
-                case ENativeNumber:
-                case EKatakana:
-                default:
-                    code = (iCharWidth == EFullWidthChar)? 0x3000 : 0x0020;
-                    break;
-                }
-            if (code)
-                {
-                SimulateKeyEventL(code); // add a space
-                SimulateKeyEventL(EKeyF19); // Asyncronous case update
-                ret = ETrue;
-                }
-            }
-        }
-    return ret;
-    }
-
-TBool CAknFepManager::TryHandleArrowLeftEventL(TInt aDokumentLength)
-    {
-    TBool ret = EFalse;
-    if (iInputCapabilities.FepAwareTextEditor() &&
-        iSharedDataInterface->SpaceWithScrollRight() &&
-        (!(iAknEditorFlags & EAknEditorFlagNoLRNavigation)) &&
-        iFepManState == EAknFepStateInitial &&
-        (!IsFlagSet(EFlagInsideInlineEditingTransaction) ) &&
-        (!IsFlagSet(EFlagShiftKeyDepressed)) &&
-        iMode != EHiragana )          //  Not supported in only Hiragana input mode
-        {
-        TInt cursorPos = DocPos().iPos;
-        TCursorSelection cursorSel;
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSel);
-        TText previousChar = PreviousChar();
-        if (( cursorPos == aDokumentLength)
-            && !cursorSel.Length()
-            && (IsFeatureSupportedJapanese()
-            && (previousChar == 0x3000 || previousChar == 0x0020) )) // full width or half-width space.
-            {
-            SimulateKeyEventL(EKeyBackspace);
-            SimulateKeyEventL(EKeyF19); // Asyncronous case update
-            ret = ETrue;
-            }
-        }
-    return ret;
-    }
-
-TBool CAknFepManager::TryHandleArrowDownEventL(TInt aDokumentLength)
-    {
-    TBool ret = EFalse;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    if ( iWesternPredictive &&
-         IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) && !(iAknEditorFlags & EAknEditorFlagNoT9) 
-         && !IsFlagSet(EFlagInsideMultitapInlineEditingTransaction) && !IsFlagSet(EFlagNoMatches))
-        {
-        LaunchCandidatePopupListL();
-        ret = ETrue;
-        }
-    // Predictive QWERTY (XT9) changes <----
-    else 
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if  ( ( iAknEditorFlags & EAknEditorFlagAllowEntersWithScrollDown ) &&
-          iInputCapabilities.FepAwareTextEditor() &&
-          ( iSharedDataInterface->EntersWithScrollDown() ) &&
-          iFepManState == EAknFepStateInitial &&
-          !IsFlagSet(EFlagInsideInlineEditingTransaction) &&
-          !IsFlagSet(EFlagShiftKeyDepressed) )
-        {
-        TInt cursorPos = DocPos().iPos;
-        TCursorSelection cursorSel;
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(cursorSel);
-        if ( cursorPos == aDokumentLength &&
-            !cursorSel.Length() )
-            {
-            SimulateKeyEventL(EKeyEnter); // add line feed
-            SimulateKeyEventL(EKeyF19); // Asyncronous case update
-            ret = ETrue;
-            }
-        }
-    return ret;
-    }
-
-TUint CAknFepManager::EditorModeFromFepMode(TInt aFepMode)
-    {
-    TUint editorMode(aFepMode);
-    switch (aFepMode)
-        {
-        case ELatin:
-            if (iPermittedInputModes & EAknEditorTextInputMode)
-                {
-                editorMode = EAknEditorTextInputMode;
-                if (IsFeatureSupportedJapanese())
-                    {
-                    if (iCharWidth == EHalfWidthChar 
-                    && (iPermittedInputModes & EAknEditorHalfWidthTextInputMode))
-                        {
-                        editorMode = EAknEditorHalfWidthTextInputMode;
-                        }
-                    else if (iCharWidth == EFullWidthChar 
-                         && (iPermittedInputModes & EAknEditorFullWidthTextInputMode))
-                        {
-                        editorMode = EAknEditorFullWidthTextInputMode;
-                        }
-                    }
-                }
-            else if (iPermittedInputModes & EAknEditorHalfWidthTextInputMode)
-                {
-                editorMode = EAknEditorTextInputMode;
-                if (IsFeatureSupportedJapanese())
-                    {
-                    editorMode = EAknEditorHalfWidthTextInputMode;
-                    if (iCharWidth == EFullWidthChar 
-                     &&(iPermittedInputModes & EAknEditorFullWidthTextInputMode))
-                        {
-                        editorMode = EAknEditorFullWidthTextInputMode;
-                        }
-                    }
-                }
-            else if (iPermittedInputModes & EAknEditorFullWidthTextInputMode)
-                {
-                editorMode = EAknEditorTextInputMode;
-                if (IsFeatureSupportedJapanese())
-                    {
-                    editorMode = EAknEditorFullWidthTextInputMode;
-                    }
-                }
-            else
-                {
-                editorMode = EAknEditorSecretAlphaInputMode;
-                }
-            break;
-        case ENumber:
-        case ENativeNumber:
-            editorMode = EAknEditorNumericInputMode;
-            if (iCharWidth == EFullWidthChar 
-            && (iPermittedInputModes & EAknEditorFullWidthNumericInputMode))
-                {
-                editorMode = EAknEditorFullWidthNumericInputMode;
-                }
-            break;
-    	case EHangul: 
-       		editorMode = EAknEditorTextInputMode;       	
-       		break;
-        default:
-            if (IsFeatureSupportedJapanese())
-                {
-                editorMode = EditorMode(aFepMode, iCharWidth);
-                }
-            break;
-        }
-    return editorMode;
-    }
-
-CAknKeySoundSystem* CAknFepManager::SoundSystem() const
-    {
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    if (coeEnv->AppUi())
-        {
-        return iAvkonAppUiBase->KeySounds();
-        }
-    return NULL;
-    }
-
-void CAknFepManager::SetHashKeyStyle()
-    {
-    CAknFepHashKeyManager::THashKeyStyle style = CAknFepHashKeyManager::EHashKeyStyleWestern;
-
-    switch (iLanguageCapabilities.iInputLanguageCode)
-        {
-        case ELangPrcChinese:
-        case ELangHongKongChinese:
-        case ELangTaiwanChinese:
-            style = CAknFepHashKeyManager::EHashKeyStyleChineseWithWestern;
-            break;
-        case ELangJapanese:
-            style = CAknFepHashKeyManager::EHashKeyStyleJapanese;
-            break;
-        case ELangKorean:
-        	style = CAknFepHashKeyManager::EHashKeyStyleKoreanWithWestern;
-        	break;
-        default:
-            break;
-        }
-
-    iHashKeyMan->SetHashKeyStyle( style );
-    }
-
-void CAknFepManager::ReadHashKeyLoopL()
-    {
-    iHashKeyLoop.Reset();
-
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    TResourceReader reader;
-    coeEnv->CreateResourceReaderLC(reader, R_HASH_KEY_LOOP_ALL_INPUT_MODES);
-
-    iVariantPermittedModes = 0;
-    const TInt count = reader.ReadInt16();
-    for (TInt ii=0; ii<count; ii++)
-        {
-        TInt mode = reader.ReadInt32();
-        if ( IsInputModeAvailable(mode) )
-            {
-            if ( mode == EPRCFind)
-                {
-                mode = ELatin;
-                }
-            iHashKeyLoop.Append(mode);
-            iVariantPermittedModes |= mode;
-            }
-        }
-    CleanupStack::PopAndDestroy(); //reader
-    }
-
-TBool CAknFepManager::IsValidInLineCharacter(TChar aCharacter) const
-    {
-    TBool validInlineCharacter = ETrue;
-    TChar::TCategory category = aCharacter.GetCategory();
-    TChar::TBdCategory bdCategory = aCharacter.GetBdCategory();
-    switch (iLanguageCapabilities.iInputLanguageCode)
-        {
-        case ELangArabic:
-            {
-            // Needs more specific category
-            validInlineCharacter = ( (category & TChar::ELetterOtherGroup) &&
-                (bdCategory == TChar::ERightToLeftArabic) );
-            break;
-            }
-        case ELangHebrew:
-            {
-            // Needs more specific category
-            validInlineCharacter = ( (category & TChar::ELetterOtherGroup) &&
-                (bdCategory == TChar::ERightToLeft) );
-            break;
-            }
-        case ELangFarsi:
-        case ELangUrdu:
-            {
-            // Needs more specific category
-            validInlineCharacter = ( (category & TChar::ELetterOtherGroup) &&
-                (bdCategory == TChar::ERightToLeftArabic) );
-            break;
-            }
-            /*Hindi*/            
-        case ELangHindi:
-#ifdef RD_MARATHI
-			/* Same for Marathi */
-        case ELangMarathi:
-#endif
-            {
-            // Needs more specific category
-            validInlineCharacter = IsValidInlineIndicCharacter(aCharacter);
-            
-            break;
-            }
-        case ELangVietnamese:
-            {
-            validInlineCharacter = (aCharacter.IsAlpha() &&
-                                    !((category & TChar::ELetterOtherGroup))) ||
-                                    ((category == TChar::EMarkGroup) && 
-                                    (bdCategory == TChar::ENonSpacingMark));
-            break;
-            }
-        case ELangThai:
-            {
-            validInlineCharacter = (!(aCharacter.IsSpace() || (aCharacter == 0x2029))) &&
-                                   ((aCharacter.IsAlpha() && 
-                                    !(category & TChar::ELetterOtherGroup)) ||
-                                   ((category & TChar::EMarkGroup) && 
-                                    (bdCategory == TChar::ENonSpacingMark)) ||
-                                   ((category & TChar::ELetterModifierGroup) && 
-                                    (bdCategory == TChar::ELeftToRight)) ||
-                                   ((category & TChar::ESeparatorGroup ) && 
-                                    (bdCategory == TChar::EWhitespace))||
-                                   ((category & TChar::EMcCategory) && 
-                                    (bdCategory == TChar::ELeftToRight)));
-            break;                                    
-            }
-        case ELangTaiwanChinese:
-        case ELangHongKongChinese:
-        case ELangPrcChinese:
-        case ELangEnglish:
-            {                           
-#ifdef RD_INTELLIGENT_TEXT_INPUT   
-            // for qwerty special characters should not break the word
-            if( iQwertyInputMode && ( KeyboardLayout() !=EPtiKeyboardHalfQwerty ))
-                {
-                validInlineCharacter = (!( aCharacter.IsSpace() || (aCharacter == 0x2029) || 
-                                        ( aCharacter.IsAlpha() && 
-                                         (category & TChar::ELetterOtherGroup))||
-                                        ((category & TChar::EMarkGroup) && 
-                                         (bdCategory == TChar::ENonSpacingMark)) ||
-                        				((category & TChar::ELetterModifierGroup) && 
-                        		 		 (bdCategory == TChar::ELeftToRight)) ||
-                        				((category & TChar::ESeparatorGroup ) && 
-                        		 		 (bdCategory == TChar::EWhitespace))));
-                }            
-            else                
-#endif      // whereas for ITUT and Half Qwerty they should
-                {
-                validInlineCharacter = ( aCharacter.IsAlpha() && !(category & TChar::ELetterOtherGroup) );
-                }            
-            break;
-            }
-        default:
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT            
-			// for qwerty special characters should not break the word
-			
-			if( iQwertyInputMode && ( KeyboardLayout() !=EPtiKeyboardHalfQwerty ) )
-				{
-				validInlineCharacter = (!(aCharacter.IsSpace() || (aCharacter == 0x2029)));	
-				}
-			else	            
-#endif		// whereas for ITUT and Half Qwerty they should
-				{
-				validInlineCharacter = ( aCharacter.IsAlpha() && !(category & TChar::ELetterOtherGroup) );
-				}
-			
-
-            break;
-            }
-        }
-	
-	TUint16 key = 0;
-	if(validInlineCharacter)
-		{
-		validInlineCharacter = EFalse;
-        ConvertCharToKey(aCharacter, key);
-		if(0 != key)
-			{
-			validInlineCharacter = ETrue;
-			}
-		}
-		
-    return validInlineCharacter;
-    }
-TBool CAknFepManager::IsValidInlineIndicCharacter(TChar aCharacter) const
-    {
-    TBool validInlineCharacter = ETrue;
-    TChar::TCategory category = aCharacter.GetCategory();
-    TChar::TBdCategory bdCategory = aCharacter.GetBdCategory();
-    
-    if(!((category == TChar::EPoCategory) || aCharacter == 0x0950 || aCharacter == 0x093D))
-        {
-        validInlineCharacter = ((( (category & TChar::ELetterOtherGroup) 
-                                      && (bdCategory == TChar::ELeftToRight) )
-                                  ||( (category & TChar::EMcCategory) 
-                                      && (bdCategory == TChar::ELeftToRight) )
-                                  ||( (category & TChar::EMarkGroup) 
-                                      && (bdCategory == TChar::ENonSpacingMark)) )
-                                 &&( ! ( aCharacter.IsAlpha() 
-                                      && !(category & TChar::ELetterOtherGroup) )));
-        }
-    else 
-        {
-        validInlineCharacter = EFalse;
-        }
-    return  validInlineCharacter;
-    }
-
-TInt CAknFepManager::WordConcatenationTimerTimeoutCallback(TAny* aObj)
-    {
-    TRAPD(err, static_cast<CAknFepManager*>(aObj)->WordConcatenationTimerTimeoutL());
-    if (err)
-        {
-        static_cast<CAknFepManager*>(aObj)->CleanUpFep();
-        return KErrNoMemory;
-        }
-    return KErrNone;
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    
-TBool CAknFepManager::IsHybridAplhaEditor() const
-    {
-    TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EHybridAlphaNumericEditor);
-    return phoneIdle;
-    }
-
-TBool CAknFepManager::IsHybridAlphaModeChangedtoAplhanumeric() const
-    {
-    return iHybridAplphaChangedToAlphanumeric;
-    }
-
-TBool CAknFepManager::IsPhoneNumberEditor() const
-    {
-    TBool phoneEditor = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);
-    return phoneEditor;
-    }
-CAknFepFnKeyManager::TFnKeyState CAknFepManager::FnKeyState()
-    {
-    return iFnKeyManager->FnKeyState();
-    }
-void CAknFepManager::SetFnKeyState(CAknFepFnKeyManager::TFnKeyState aState)
-    {
-    iFnKeyManager->SetFnKeyState(aState);
-    }
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-TBool CAknFepManager::IsReverseFnkeyInput()
-    {
-    return iIsReverseFnkeyInput;
-    }
-void CAknFepManager::SetReverseFnkeyInputMode(TBool iIsOn)
-	{
-	iIsReverseFnkeyInput = iIsOn;
-	}
-TBool CAknFepManager::IsValidCharInNumericEditorL( TChar aChar ) const
-    {
-    if(!EditorState())
-        {
-    	return EFalse;    	
-        }
-    TBool validChar = EFalse;
-    if( aChar.IsDigit() )
-        {
-        return ETrue;
-        }
-    TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);            
-    if( (phoneIdle || (IsHybridAplhaEditor() && !IsHybridAlphaModeChangedtoAplhanumeric()))
-	 	&& aChar == '#')    
-    	{
-    	return ETrue;
-    	}
-	if( aChar == '.' && EAknEditorConverterNumberModeKeymap == iAknEditorNumericKeymap)
-        {
-        return ETrue;
-        }	
-    if( IsAllowedKeymappingForNumberMode(aChar) )
-    	{
-    	return ETrue;
-    	}
-    	
-    TInt resourceSCTId = EditorState()->SpecialCharacterTableResourceId();  
-    // No SCT table use default SCT
-    if( resourceSCTId == KErrNotFound || !resourceSCTId || 
-            (IsHybridAplhaEditor()&& !IsHybridAlphaModeChangedtoAplhanumeric()))
-        {
-        resourceSCTId = NumericModeSCTResourceId();
-        }   
-    
-    if( resourceSCTId )
-        {
-        TResourceReader reader;
-        CEikonEnv::Static()->CreateResourceReaderLC(reader,resourceSCTId);
-        reader.ReadInt32(); // skip sct id    
-        TPtrC chars=reader.ReadTPtrC(); // read special char        
-        validChar = ( chars.Locate(aChar)>=0 );                      
-        CleanupStack::PopAndDestroy();
-        }
-    return validChar;
-    
-    }
-TInt CAknFepManager::GetNumericSCTResID()
-    {
-    if(!EditorState())
-      	{
-        return NumericModeSCTResourceId();
-    	  }
-    TInt resourceSCTId = EditorState()->SpecialCharacterTableResourceId();
-    if(resourceSCTId == KErrNotFound || !resourceSCTId )
-        {
-        resourceSCTId = NumericModeSCTResourceId();
-        }
-    return resourceSCTId;
-    }
-
-TBool CAknFepManager::IsValidCharForNumericInFnReverseL(TInt aKey, TPtiTextCase aCase) 
-    {
-    if(!EditorState())
-        {
-    	return EFalse;    	
-        }
-    TBuf<32> keyMaps;
-    iPtiEngine->MappingDataForKey( (TPtiKey)aKey, keyMaps, aCase);  
-    
-    TBool validKey(EFalse);   
-    if( keyMaps.Length()<= 0 )
-        {
-        return validKey;
-        }
-    TChar chr =keyMaps[0];
-    if( chr.IsDigit() )
-        {
-        return ETrue;
-        }
-
-    TInt resourceSCTId = EditorState()->SpecialCharacterTableResourceId();  
-    // No SCT table use default SCT
-    if( resourceSCTId == KErrNotFound || !resourceSCTId )
-        {
-        resourceSCTId = NumericModeSCTResourceId();
-        }   
-    
-    if( resourceSCTId )
-        {
-        TResourceReader reader;
-        CEikonEnv::Static()->CreateResourceReaderLC(reader,resourceSCTId);
-        reader.ReadInt32(); // skip sct id    
-        TPtrC chars=reader.ReadTPtrC(); // read special char
-        
-        validKey = (chars.Locate(chr)>=0 );
-        if(chr.IsAlpha())
-            {
-            chr.UpperCase();
-            validKey |= (chars.Locate(chr)>=0 ) ;
-            }                 
-            
-        CleanupStack::PopAndDestroy();
-        }
-         
-    return validKey;
-    
-    }
-#endif //__REVERSE_FN_KEY_SUPPORTED
-void CAknFepManager::AddOneSpaceOrMoveCursorL()
-	{
-	if(static_cast<TChar>(NextChar()).IsSpace())
-		{
-		TCursorSelection sel;
-		iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(sel);
-		sel.iCursorPos++;
-		sel.iAnchorPos++;
-		iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);	                		
-		}
-	else if(IsEditorHasFreeSpace())
-    	{
-        SimulateKeyEventL(EKeySpace);
-    	}
-	SimulateKeyEventL(EKeyF19);
-	}
-#endif
-TBool CAknFepManager::IsOnlyNumericPermitted() const
-    {
-    if (IsFeatureSupportedJapanese())
-        {
-        return !(iPermittedInputModes & ~(EAknEditorNumericInputMode 
-               | EAknEditorFullWidthNumericInputMode) );
-        }
-    else
-        {
-        // Only non-japanese modes are considered.
-        return !( iPermittedInputModes & 
-                  (EAknEditorTextInputMode | EAknEditorSecretAlphaInputMode) );
-        }
-    }
-
-void CAknFepManager::TryIncrementModeL(TInt aCurrentMode)
-    {
-    //check that we are currently in the correct mode
-    __ASSERT_DEBUG(IsModePermitted(iMode),
-                   AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-    __ASSERT_DEBUG(iInputCapabilities.FepAwareTextEditor(),
-                   AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));
-
-    const TInt lastModePos = iHashKeyLoop.Count()-1 ;
-    const TInt currentModePos = iHashKeyLoop.Find(aCurrentMode);
-    TInt newModePos = currentModePos;
-
-    __ASSERT_DEBUG(currentModePos != KErrNotFound ,
-                   AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    do  {
-        if (newModePos == lastModePos)
-            {
-            //we've got to the end of the hash key loop, go back to the beginning
-            newModePos = 0;
-            }
-        else
-            {
-            newModePos++;
-            }
-
-        if (TryChangeModeL(iHashKeyLoop[newModePos]))
-            {
-            return; //succeeded to move to next available mode
-            }
-        }
-        while (newModePos != currentModePos);
-    }
-
-void CAknFepManager::TryIncrementModeChineseQwertyL(TInt aCurrentMode)
-    {
-    __ASSERT_DEBUG(IsModePermitted(aCurrentMode),AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    const TInt lastModePos = iHashKeyLoop.Count() - 1 ;
-    const TInt currentModePos = iHashKeyLoop.Find(aCurrentMode);
-    TInt newModePos = currentModePos;
-
-    __ASSERT_DEBUG(currentModePos != KErrNotFound ,
-                   AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    do  
-        {
-        if (newModePos == lastModePos)
-            {
-            //we've got to the end of the hash key loop, go back to the beginning
-            newModePos = 0;
-            }
-        else
-            {
-            newModePos++;
-            }
-        }while(iHashKeyLoop[newModePos] == ENumber && !IsOnlyNumericPermitted()); // no number mode in Chinese qwerty input, except those editors which only support number
-            
-    SendEventsToPluginManL( EPluginCloseMode, EFalse );
-    if(TryChangeModeL(iHashKeyLoop[newModePos]))
-        {
-        return; //succeeded to move to next available mode
-        }
-    }
-
-void CAknFepManager::TryIncrementChineseModeForQwertyL( TInt aCurrentMode )
-    {
-    __ASSERT_DEBUG(IsModePermitted(aCurrentMode),AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    const TInt lastModePos = iHashKeyLoop.Count() - 1;
-    const TInt currentModePos = iHashKeyLoop.Find( aCurrentMode );
-    TInt newModePos = currentModePos;
-
-    __ASSERT_DEBUG(currentModePos != KErrNotFound ,
-        AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    do
-        {
-        if ( newModePos == lastModePos )
-            {
-            //we've got to the end of the hash key loop, go back to the beginning
-            newModePos = 0;
-            }
-        else
-            {
-            newModePos++;
-            }
-        }
-    while ( (iHashKeyLoop[newModePos] == ENumber
-        && !IsOnlyNumericPermitted()) || (iHashKeyLoop[newModePos] == ELatin
-        && IsChangeModeByShiftAndSpace() ) ); // no number mode and latin in Chinese qwerty input, except those editors which only support number
-
-    SendEventsToPluginManL( EPluginCloseMode, EFalse );
-    if ( TryChangeModeL( iHashKeyLoop[newModePos] ) )
-        {
-        return; //succeeded to move to next available mode
-        }
-    }
-
-void CAknFepManager::TryChangeToSharedDataModeL()
-    {
-    TInt sharedDataMode = iSharedDataInterface->InputMode();
-    TryChangeModeL(sharedDataMode);
-    }
-
-void CAknFepManager::TryChangeToModeBeforeL()
-    {
-    if (TryChangeModeL(iModeBefore))
-        {
-        if (iModeBefore==ELatin)
-            {
-            if ( iCaseBefore )
-                {
-                iCaseMan->SetCurrentCase(iCaseBefore);
-                }
-            else
-                {
-                iCaseMan->UpdateCase(ENullNaviEvent);
-                }
-            }
-        }
-    }
-
-#ifdef RD_HINDI_PHONETIC_INPUT    
-
-TBool CAknFepManager::IsIndicPhoneticInputLanguage() const
-    {
-    MPtiLanguage* ptilang = iPtiEngine->CurrentLanguage();
-    TInt currentPtiLang = (ptilang)? ptilang->LanguageCode() : 0;
-    return (TAknFepUiIndicInputManager::IsIndicPhoneticLanguage(TLanguage(currentPtiLang)));
-    }
-
-void CAknFepManager::TryChangePhoneticModeL()
-    {
-    MPtiLanguage* ptilang = iPtiEngine->CurrentLanguage();
-    TInt currentPtiLang = (ptilang)? ptilang->LanguageCode() : 0;
-    TInt lang = 0;
-    
-    (TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(TLanguage(currentPtiLang)))? 
-    lang = ELangEnglish : lang = iLanguageCapabilities.iInputLanguageCode;
-    
-    iPtiEngine->ActivateLanguageL(lang);
-    iLangMan->SetInputLanguageL(lang);
-    InternalFepUI()->SetMode(iMode, EFalse, iQwertyInputMode);  
-    iCaseMan->UpdateCase(ENullNaviEvent);
-    UpdateIndicators();
-    CommitInlineEditL();
-    }
-    
-TInt CAknFepManager::SetPhoneticIndicator(TLanguage aInputLanguage)
-    {
-    TInt newState = 0;
-    TInt currentCase = iCaseMan->CurrentCase();
-
-    switch(aInputLanguage)
-        {
-        case KLangHindiPhonetic: 
-            if(currentCase == EAknEditorUpperCase)  
-                {
-                newState = EIndicatorStateHindiPhoneticUpper;   
-                }
-            else
-                {
-                newState = EIndicatorStateHindiPhoneticLower;   
-                }
-        break;
-        default:
-        break;
-        }
-    return newState;        
-    }
-#endif
-TBool CAknFepManager::TryChangeModeL(TInt aMode)
-    {
-    CAknEdwinState* editorState = EditorState();
-    TInt sharedDataMode = iSharedDataInterface->InputMode();
-
-    if (aMode == EStroke && iQwertyInputMode && sharedDataMode == ECangJie)
-    	{
-    	iEditorStateStrokeUsed = editorState;
-    	iStrokeUsedInQWERTY = ETrue;
-    	}
-    else if (iEditorStateStrokeUsed == editorState)
-    	{
-    	iStrokeUsedInQWERTY = EFalse;
-    	}
-    
-    if (aMode == ECangJie && !iQwertyInputMode && 
-    		(iFepPluginManager->PluginInputMode() != EPluginInputModeVkb
-			|| iFepPluginManager->PluginInputMode() != EPluginInputModeFSQ))
-        {
-        aMode = EStroke;
-        }
-    
-    if (aMode == ELatinText ||aMode == ELatinUpper || aMode == ELatinLower)
-        {
-        if (TryChangeModeL(ELatin))
-            {
-            if ( !(iAknEditorFlags & EAknEditorFlagFixedCase) )
-                {
-                if (aMode == ELatinText)
-                    {
-                    ClearFlag(EFlagSupressAutoUpdate);
-                    }
-                else if (aMode == ELatinUpper)
-                    {
-                    //Modify for allow text case after entering a dot and space
-                    ClearFlag(EFlagSupressAutoUpdate);
-                    //Modify for allow text case after entering a dot and space
-                    iCaseMan->SetCurrentCase(EAknEditorUpperCase);
-                    }
-                else //lower
-                    {
-                    //Modify for allow text case after entering a dot and space
-                    ClearFlag(EFlagSupressAutoUpdate);
-                    //Modify for allow text case after entering a dot and space
-                    iCaseMan->SetCurrentCase(EAknEditorLowerCase);
-                    }
-                UpdateIndicators();
-                }
-            return ETrue;
-            }
-        return EFalse;
-        }
-
-    if ( iQwertyInputMode && ( aMode == ENumber || aMode == ENativeNumber ) && 
-         !IsOnlyNumericPermitted() 
-         // Add this condition to exclude all touch inputmethods. 
-         // When change to number range on touch inputmethods, fn key state can't be locked.          
-         && iFepPluginManager 
-         && iFepPluginManager->PluginInputMode() == EPluginInputModeNone )
-        {
-        if (TryChangeModeL(ELatin))
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            // If editor should be launched in FnLock state, because in case of QWERTY keypad
-            // Current numeric mode converted to alphanumeric mode.
-            if( iFnKeyManager )
-                {
-                iFnKeyManager->SetFnKeyState(CAknFepFnKeyManager::EFnKeyLock);
-                SetCase((TCase)EFnKeyLowerCase);
-                }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-            return ETrue;
-            }
-        }
-
-    if (IsModePermitted(aMode))
-        {
-        if (aMode == ELatin)
-            {
-            if (iAknEditorFlags & EAknEditorFlagNoT9)
-                {
-                SetWesternPredictive(EFalse);
-                }
-
-            if (iAknEditorFlags & EAknEditorFlagFixedCase)
-                {
-                iCaseMan->ConfigureCaseStateFromEditorState();
-                }
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        if (!iQwertyInputMode && WesternPredictive() && iFepManState == EAknFepStateUIActive)
-#else
-        if (WesternPredictive() && iFepManState == EAknFepStateUIActive)
-#endif            
-            {
-            TryRemoveNoMatchesIndicatorL();
-            UpdateCbaL(NULL);
-            }
-        TryCloseUiL();
-
-        // getting a new ui manager object corresponded in aMode.
-        MAknFepManagerInterface* fepUI = iLangMan->GetFepUI(aMode, iCharWidth, 
-                                                            IsPredictive(aMode));
-        // getting the currect language id from ptiengine.
-        MPtiLanguage* ptilang = iPtiEngine->CurrentLanguage();
-        TInt currentPtiLang = (ptilang)? ptilang->LanguageCode() : 0;
-        // getting the supported language id in current ui manager.
-        TInt currentUiLang = fepUI->SupportLanguage(aMode);
-
-        // changing language id both ptiengine and ui manager
-        // 1. check the currect ui manager for input mode
-        // 2. check the current ptiengine and ui manager
-        if (iCurrentFepUI != fepUI
-         || currentPtiLang != currentUiLang)
-            {
-            iCurrentFepUI = fepUI;
-            TInt err = iPtiEngine->ActivateLanguageL(currentUiLang);
-            if (err != KErrNone)
-                {
-#ifdef _DEBUG
-                RDebug::Print(_L("ActivateLanguageL error return code=[%d] language id=[%d]"),
-                                err, iLanguageCapabilities.iInputLanguageCode);
-#endif
-                ChangeInputLanguageL(ELangEnglish);
-                return ETrue;
-                }
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-        // Change secondary input
-        iPtiEngine->SetSecondaryInputL(iSharedDataInterface->InputTextLanguageSecondary());
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-
-//#ifndef RD_INTELLIGENT_TEXT_INPUT 
-            TBuf<50> mapData;
-            //Init Data
-            for (TInt i = 0; i < 50; i++)
-                {
-                mapData.Append(0);
-                }
-
-            //Backup original input mode
-            TPtiEngineInputMode oriMode = iPtiEngine->InputMode();
-            
-            //Change current input mode, since MappingDataForKey I/F only worked
-            //when in EPtiEngineMultitapping mode
-            iPtiEngine->SetInputMode(EPtiEngineMultitapping);
-            iPtiEngine->MappingDataForKey(EPtiKey1, mapData, iPtiEngine->Case());
-            
-            //Restore
-            iPtiEngine->SetInputMode(oriMode);
-
-            //Get first three symbols
-			if(mapData.Length() > 0)
-				{
-	        	iSymbolData.iSymbol1 = mapData[0];
-	            
-				if (mapData.Length() > 1)
-	            	iSymbolData.iSymbol2 = mapData[1];
-	        	if (mapData.Length() > 2)
-	        		iSymbolData.iSymbol3 = mapData[2];
-				}
-            
-            //Write data to stream
-            if (iFepPluginManager && iFepPluginManager->CurrentPluginInputFepUI())
-                {
-                iFepPluginManager->CurrentPluginInputFepUI()->HandleCommandL(
-                            ECmdPenInputSymbolOfHardKeyOne, reinterpret_cast<TInt>(&iSymbolData));
-                }
-//#endif                
-        iMode = aMode;
-        
-#ifdef RD_SCALABLE_UI_V2 
-        if ( IsChineseInputMode( aMode ) )
-            {
-            iLastChineseInputMode = aMode;
-            }        
-#endif // RD_SCALABLE_UI_V2
-        if(iMode == ENumber || iMode == ENativeNumber )
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-            ClearFlag(CAknFepManager::EFlagNewSharedDataInputLanguage);
-            ClearFlag(CAknFepManager::EFlagNewSharedDataInputMode);
-#endif //  RD_INTELLIGENT_TEXT_INPUT  
-            InternalFepUI()->SetNumberModeKeyMappingL(iAknEditorNumericKeymap);
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT            
-        InternalFepUI()->SetMode(iMode, IsPredictive(), iQwertyInputMode, KeyboardLayout());
-#else
-        InternalFepUI()->SetMode(iMode, IsPredictive(), iQwertyInputMode);
-#endif        
-        iHashKeyMan->SetMode(iMode, IsPredictive());
-        // ensure editor is aware of new fep mode
-        if ( IsFepAwareTextEditor() )
-            {
-            EditorState()->SetCurrentInputMode(EditorModeFromFepMode(aMode));
-            iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-            AdjustCursorTypeForCurrentPosition();
-            }
-
-        // when cursor is in between two words and SCT is launched and
-        // cancel key is pressed, dont move the cursor at the end of
-        // second word.     
-         if (WesternPredictive(aMode) && !iUncommittedText.Length()
-            && CursorInsideWord() && !IsCcpuFlagSet(ECcpuStateSupressCursorMoveToEnd)
-#ifdef RD_INTELLIGENT_TEXT_INPUT            
-            && (!iSupressCursorMoveToEndChrKeyPressed)
-#endif //RD_INTELLIGENT_TEXT_INPUT       
-            )
-            {
-            MoveCursorToEndOfWordL();
-            }
-        else
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT              
-            iSupressCursorMoveToEndChrKeyPressed = EFalse;
-#endif //RD_INTELLIGENT_TEXT_INPUT             
-            ClearCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-            }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Ensure that autocompletion state is updated
-        if (WesternPredictive())
-        	{
-        	SetAutoCompletionState(iSharedDataInterface->PredictiveTextAutoCompleteOn());
-        	}
-#endif
-        // Set multitap timer to PtiEngine for Japanese variant only
-        if (IsFeatureSupportedJapanese())
-            {
-            TInt timeout = (iInputCapabilities.SupportsSecretText())? 
-            					KSyncPasswdTimeout : iMultiTapTimer;
-            iPtiEngine->HandleCommandL(EPtiCommandSetMultitapTimer, &timeout);
-            iPtiEngine->HandleCommandL(EPtiCommandSetJapaneseQwertyFlags, &iJapaneseQwertyFlags);
-            TInt clear = iSharedDataInterface->ClearDirection();
-            iPtiEngine->HandleCommandL(EPtiCommandSetClearFunction, &clear);
-            // Send PtiEngine the command whether Pictograph is allowed in Candidate list
-            TInt allow = IsAbleToLaunchPCT();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-            iPtiEngine->HandleCommandL(EPtiCommandAllowPictographCandidate, &allow);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            }
-
-        UpdateIndicators(); // moved to bottom to avoid extra indicator updates
-
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-void CAknFepManager::ChangeInputLanguageL(TInt aInputLanguage)
-    {
-    	if(iLangMan)
-    	{
-    	iLangMan->SetInputLanguageL(aInputLanguage);
-
-    	SetInputLanguageCapabilities(aInputLanguage);
-
-    	ReadHashKeyLoopL();
-		// we need to make sure that we commit the word to ptiengine, 
-		// so that the word gets added to the UWD 
-    	SetCcpuFlag(ECcpuStataCommitPredictiveWord);
-    	// Addition for ITI on FSQ
-    	// When FSQ is opened with the ITI-supported input language, 
-    	// if switch to another language which doesn't support ITI, such as Korean,
-    	// need to restore the previous configuration on FEP
-        if ( iFepPluginManager )
-        	{    	
-        	iFepPluginManager->ResetItiStateL();
-        	}    	
-    	if ( !TryChangeModeL(NewInputModeAfterLanguageChange()) )
-	        {
-	        if ( !TryChangeModeL(ELatin) )
-	            {
-	            // If the editor does not support text input mode, we try number mode.
-	            if( IsInputModeAvailable(ENativeNumber) && 
-	                ( iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic ||
-	                  iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic ||
-	                  iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari ) )
-	                {
-	                TryChangeModeL(ENativeNumber);;
-	                }
-	            else
-	                {
-	                TryChangeModeL(ENumber);
-	                }
-	            }
-	        }
-  
-        if (!iLanguageCapabilities.iLocalInputLanguageInUse)
-        	{
-        	switch (iSharedDataInterface->InputTextLanguage())
-            	{
-            	case ELangPrcChinese:
-            		{
-            		iSharedDataInterface->SetInputMode(EPinyin);
-            		SetFlag(EFlagNewSharedDataInputMode);
-            		break;            		
-            		}
-            	case ELangTaiwanChinese:
-            		{
-            	    iSharedDataInterface->SetInputMode(EZhuyin);
-            	    SetFlag(EFlagNewSharedDataInputMode);
-            	    break;
-            		}
-            	case ELangHongKongChinese:
-            		{
-            	    iSharedDataInterface->SetInputMode(EStroke);
-            	    iSharedDataInterface->SetCangJieMode(ECangJieNormal);
-            	    SetFlag(EFlagNewSharedDataInputMode);
-            	    break;
-            		}
-            	default:
-            		break;
-            	}
-            }
-
-    	SetHashKeyStyle();
-    	UpdateEditorContext();
-  		}
-    //add notify to phrase creation udbmanagement view
-    
-    if(iUserdbdlg)
-	    {
-	    iUserdbdlg->OnChangeLanguageL( aInputLanguage );	
-	    if ( aInputLanguage != ELangPrcChinese &&
-	        	 aInputLanguage != ELangTaiwanChinese &&
-	        	 aInputLanguage != ELangHongKongChinese )
-	    	{
-	    	iUserdbdlg = NULL;
-	    	}
-	    }
-    }
-
-void CAknFepManager::RemovePreviousCharacterL()
-    {
-    if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-        {
-        CommitInlineEditL();
-        }
-
-    // Set cursor span on previous character
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-    if (iUncommittedText.iAnchorPos > 0)
-        {
-        iUncommittedText.iAnchorPos--;
-        }
-    
-
-    // get text to replace
-    TBuf<ESingleCharacter> charToReplace;
-    iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(charToReplace, 
-                                                                    iUncommittedText.iAnchorPos, 
-                                                                    ESingleCharacter);
-
-    // delete the character with an inline edit
-    StartInlineEditL(iUncommittedText, charToReplace, ESingleCharacter, EFalse);
-    UpdateInlineEditL(KNullDesC, 0);
-    CommitInlineEditL();
-    }
-
-void CAknFepManager::RemoveZWSCharacterL( TBool aIsViramaInputted, 
-                                            TBool aIsInMultitappingHalant, 
-                                            TBool aIsCharModifier, 
-                                            TBool aIsLigaturePresent /*= EFalse*/)
-    {
-    CTextLayout* textLayout = TextLayout();
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if(!textLayout && !docNavi)
-        return;
-
-    if( aIsLigaturePresent )
-        {
-        TTmDocPosSpec pos = DocPos();
-        TTmPosInfo2 info;
-        TTmLineInfo lineInfo;
-        if (docNavi)
-        	{
-        	docNavi->FindDocPos(pos, info, lineInfo);
-        	}
-        else
-        	{
-        	textLayout->TagmaTextLayout().FindDocPos(pos, info, lineInfo);      
-        	}
-
-        if( IsZWSCharacterPresent( ETrue ) )
-            {
-            TInt commitPoint = pos.iPos - 2;
-            if( IsFlagSet( EFlagInsideInlineEditingTransaction ) )
-                {
-                CommitInlineEditL();
-                }
-
-            TCursorSelection sel( commitPoint, commitPoint );
-            iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);
-            }
-        }
-    else
-        {
-        if ( IsFlagSet(EFlagInsideInlineEditingTransaction) && IsZWSCharacterPresent())
-            {
-            CommitInlineEditL();
-            }
-        }
-
-    TTmDocPosSpec pos = DocPos();
-    pos.iType = TTmDocPosSpec::ETrailing;
-    TTmPosInfo2 info;
-    TTmLineInfo lineInfo;
-    if ( ! iInputCapabilities.SupportsSecretText() )
-        {
-        if (docNavi)
-        	{
-        	docNavi->FindDocPos(pos, info, lineInfo);
-        	}
-        else
-        	{
-        	textLayout->TagmaTextLayout().FindDocPos(pos, info, lineInfo);
-        	}
-        TBuf<2> previousCharacter;
-        TBuf<1> zwsPrevChar;
-        previousCharacter.FillZ();
-        zwsPrevChar.FillZ();
-        TBool found = EFalse;
-
-        TCursorSelection curSel;
-        if ( IsFepAwareTextEditor() )
-            {
-            iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel);
-            TInt lowerpos = curSel.LowerPos();
-            if( lowerpos > 0)
-                {
-                if(lowerpos > 1)
-                iInputCapabilities.FepAwareTextEditor()->
-                    GetEditorContentForFep(previousCharacter, lowerpos - 2, 2);
-                else
-                iInputCapabilities.FepAwareTextEditor()->
-                    GetEditorContentForFep(previousCharacter, lowerpos - 1, 1);
-                    
-                if( lowerpos > 1 )
-                    {
-                    if(previousCharacter[1] == ZERO_WIDTH_SPACE)
-                        {
-                        zwsPrevChar.Append(previousCharacter[1]);
-                        if( aIsInMultitappingHalant )
-                            {
-                            curSel.iAnchorPos = lowerpos - 2;
-                            }
-                        else
-                            {
-                            curSel.iAnchorPos = lowerpos - 1;
-                            }
-                        found = ETrue;      
-                        }
-                    else if( previousCharacter[0] == ZERO_WIDTH_SPACE )
-                        {
-                        zwsPrevChar.Append(previousCharacter[0]);
-                        curSel.iAnchorPos = lowerpos - 2;
-                        curSel.iCursorPos = lowerpos - 1;                       
-                        found = ETrue;
-                        }   
-                    }
-                else
-                    {
-                    if(previousCharacter[0] == ZERO_WIDTH_SPACE)
-                        {
-                        zwsPrevChar.Append(previousCharacter[0]);
-                        if( aIsInMultitappingHalant )
-                            {
-                            curSel.iAnchorPos = lowerpos - 2;
-                            }
-                        else
-                            {
-                            curSel.iAnchorPos = lowerpos - 1;
-                            }
-                        found = ETrue;    
-                        }   
-                    }    
-                
-                }
-            }
-        if( found )
-            {
-            StartInlineEditL(curSel, zwsPrevChar, ESingleCharacter, ETrue);
-            UpdateInlineEditL(KNullDesC, 0);
-            CommitInlineEditL();    
-            if ( !aIsInMultitappingHalant && ! iInputCapabilities.SupportsSecretText() )
-                {
-                if ( aIsViramaInputted )
-                    {
-                    TTmDocPosSpec pos = DocPos();
-                    TTmPosInfo2 infotemp;
-                    if (docNavi)
-                    	{
-                    	docNavi->FindDocPos(pos, info, lineInfo);      
-                    	}
-                    else
-                    	{
-                    	textLayout->TagmaTextLayout().FindDocPos(pos, info, lineInfo);      
-                    	}
-                    if(NextChar() && TAknFepUiIndicInputManager::IsCharBaseConsonant(NextChar(), 
-                                           TLanguage(iLanguageCapabilities.iInputLanguageCode)))
-	                    {
-	                    TInt nextPos;                  
-	                    if (docNavi)
-	                    	{
-	                    	nextPos = docNavi->FindNextPos(pos.iPos);
-	                    	}
-	                    else
-	                    	{
-		                    nextPos = textLayout->TagmaTextLayout().FindNextPos(pos.iPos);                 
-	                    	}
-	                    info.iDocPos.iPos  = nextPos;   
-	                    }
-                    else if((TAknFepUiIndicInputManager::IsCharAnVowel(NextChar(), 
-                             TLanguage(iLanguageCapabilities.iInputLanguageCode)))
-                         &&(aIsCharModifier && TAknFepUiIndicInputManager::IsCharVirama(
-                             PreviousChar(), TLanguage(iLanguageCapabilities.iInputLanguageCode))))
-                        {
-                        bool posFound;
-		                if (docNavi)
-		                	{
-		                	posFound = docNavi->GetNextVisualCursorPos(pos, infotemp, EFalse);      
-		                	}
-		                else
-		                	{
-		                	posFound = textLayout->TagmaTextLayout().GetNextVisualCursorPos(pos, 
-                                                                                      infotemp, 
-                                                                                      EFalse);      
-		                	}
-                        
-                    	if (posFound)
-                            {
-                            info.iDocPos.iPos = infotemp.iDocPos.iPos;
-                            }
-                        }
-                    TCursorSelection sel(info.iDocPos.iPos ,info.iDocPos.iPos );
-                    iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);    
-                    }
-                else
-                    {
-                    TCursorSelection sel(info.iDocPos.iPos - 1,info.iDocPos.iPos - 1);
-                    iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);        
-                    }   
-                
-                SendEventsToPluginManL( EPluginSyncFepAwareText );
-                }
-            }
-        }
-    }
-
-void  CAknFepManager::TryChangePredictiveInputModeL(TBool aFlag)
-    {
-    if(Japanese() && iMode != ELatin)
-        {
-        if(aFlag)
-            {
-            if (!(iAknEditorFlags & EAknEditorFlagNoT9)
-               && HasJapanesePredictionInputMode())
-                {
-                iJapanesePredictive = aFlag;
-                iSharedDataInterface->SetJapanesePredictiveTextOn();
-                }
-            }
-        else
-            {
-            iJapanesePredictive = aFlag;
-            iSharedDataInterface->ResetJapanesePredictiveTextOn();
-            }
-        }
-    else
-        {
-        SetWesternPredictive(aFlag);
-        }
-    TryChangeModeL(iMode);
-    }
-
-MCoeFepAwareTextEditor* CAknFepManager::FepAwareTextEditor() const
-    {
-    return iInputCapabilities.FepAwareTextEditor();
-    }
-
-TBool CAknFepManager::IsFepAwareTextEditor() const
-    {
-#ifdef RD_SCALABLE_UI_V2   
-    return FullyFepAwareTextEditor();
-#else
-		return ( iInputCapabilities.FepAwareTextEditor() ? ETrue : EFalse );
-#endif    
-    }
-    
-TCursorSelection CAknFepManager::UncommittedText() const
-    {
-    return iUncommittedText;
-    }
-
-void CAknFepManager::SetCase(TCase aCase)
-    {
-    // For QWERTY only keypad, extended input state like FnLock is applicable.
-    // In case of ITU-T keypad, this flag should not be part of editor flag.
-    // In case of numeric only editor Only FnReverse state is valid and editor will be on EFnReverse
-    // State if FnKey is hold on state.
-    
-    //TODO: In case of other functionized input state like (FnNext), it should be stored in editor
-    
-#ifdef  RD_INTELLIGENT_TEXT_INPUT
-    if(EditorState())
-        {
-        if( iFnKeyManager &&  ( iFnKeyManager->FnKeyState()== CAknFepFnKeyManager::EFnKeyLock ) )
-            {
-            EditorState()->SetFlags( EditorState()->Flags() | EAknEditorFlagFnLock );
-            }
-        else
-            {
-            EditorState()->SetFlags( EditorState()->Flags() & ~EAknEditorFlagFnLock );       
-            }
-        }
-#endif
-
-    InternalFepUI()->SetCase(aCase);
-    }
-
-CAknEdwinState* CAknFepManager::EditorState() const
-    {
-    if ( IsFepAwareTextEditor() )
-        {
-        MCoeFepAwareTextEditor* fepAvareTextEditor = iInputCapabilities.FepAwareTextEditor();
-        
-        if ( fepAvareTextEditor && fepAvareTextEditor->Extension1() )
-            {
-            return static_cast<CAknEdwinState*>( fepAvareTextEditor->Extension1()->State( KNullUid ) );
-            }
-        }
-    return NULL;
-    }
-
- void CAknFepManager::SetPredictiveIndicatorState(TAknEditingState& aState)
-	{
-	
-	TInt currentCase = iCaseMan->CurrentCase();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    if(iIsAutoCompleteOn && iLanguageCapabilities.iInputLanguageCode != ELangThai)
-    	{
-       	if (iLanguageCapabilities.iInputLanguageCode == ELangArabic)
-        	aState=EAutoCompleteArabic;
-       	
-       	else if (iLanguageCapabilities.iInputLanguageCode == ELangHebrew)
-           		 aState=EAutoCompleteHebrew;
-       	
-        else if (iLanguageCapabilities.iInputLanguageCode == ELangFarsi ||
-            	 iLanguageCapabilities.iInputLanguageCode == ELangUrdu)
-            	 aState=EAutoCompleteFarsiAndUrdu;
-             	/*Hindi*/
-        else if ( (iLanguageCapabilities.iInputLanguageCode == ELangHindi) || (iLanguageCapabilities.iInputLanguageCode == ELangMarathi))
-        		  aState = EAutoCompleteHindi;
-        
-        else if(iLanguageCapabilities.iInputLanguageCode == ELangVietnamese)
-            	{
-            	switch (currentCase)
-                	{
-                	case EAknEditorUpperCase:
-                    	aState =  EAutoCompleteUpperVietnamese;
-                    	break;
-                	case EAknEditorLowerCase:
-                    	aState =  EAutoCompleteLowerVietnamese;
-                    	break;
-                    case EAknEditorTextCase:
-                        aState = EAutoCompleteShiftedVietnamese;
-                        break;
-                    default:
-                        break;
-                    }    
-                }
-        else
-                {
-                switch (currentCase)
-                    {
-                    case EAknEditorUpperCase:
-                        aState =  EAutoCompleteUpper;
-                        break;
-                    case EAknEditorLowerCase:
-                        aState =  EAutoCompleteLower;
-                        break;
-                    case EAknEditorTextCase:
-                        aState = EAutoCompleteShifted;
-                        break;
-                    default:
-                        break;
-                    }
-                }
-            
-    	}
-    else
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		if(iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-			{
-			aState = EFnKeyPressed;
-			if(iFnKeyManager->FnKeyState() == CAknFepFnKeyManager::EFnKeyLock)
-	            aState = EFnKeyLocked;    
-			}
-        else
-#endif
-        {
-    	if (iLanguageCapabilities.iInputLanguageCode == ELangArabic)
-      	 	 aState = ET9Arabic;
-    	
-   		else if (iLanguageCapabilities.iInputLanguageCode == ELangHebrew)
-        	     aState = ET9Hebrew;
-   		
-    	else if (iLanguageCapabilities.iInputLanguageCode == ELangFarsi ||
-        	     iLanguageCapabilities.iInputLanguageCode == ELangUrdu)
-        		 aState = ET9FarsiAndUrdu;
-        		 
-    	else if (iLanguageCapabilities.iInputLanguageCode == ELangThai)
-        		 aState = ET9Thai;
-    	
-    	/*Hindi*/
-#ifdef RD_MARATHI
-                        /*Marathi*/
-                        else if ( iLanguageCapabilities.iInputLanguageCode == ELangMarathi )
-                        	aState = EIndicatorStatePredictiveMarathi;
-#endif // RD_MARATHI
-    	
-    	else if(iLanguageCapabilities.iInputLanguageCode == ELangVietnamese)
-        	{
-        	switch (currentCase)
-            	{
-            	case EAknEditorUpperCase:
-                	aState =  ET9UpperVietnamese;
-                	break;
-            	case EAknEditorLowerCase:
-                	aState =  ET9LowerVietnamese;
-                	break;
-                case EAknEditorTextCase:
-                    aState = ET9ShiftedVietnamese;
-                    break;
-                default:
-                    break;
-                }    
-            }
-        
-        else if(iLanguageCapabilities.iInputLanguageCode == ELangGreek)
-            {
-            switch (currentCase)
-                {
-                case EAknEditorUpperCase:
-                    aState =  ET9UpperGreek;
-                    break;
-                case EAknEditorLowerCase:
-                    aState =  ET9LowerGreek;
-                    break;
-                case EAknEditorTextCase:
-                    aState = ET9ShiftedGreek;
-                    break;
-                default:
-                    break;
-                }    
-            }
-        
-        //Cyrillic alphabet is used for Russian, Bulgarian and 
-        //Ukranian languages
-        else if(iLanguageCapabilities.iInputLanguageCode == ELangRussian ||
-                iLanguageCapabilities.iInputLanguageCode == ELangBulgarian ||
-                iLanguageCapabilities.iInputLanguageCode == ELangUkrainian )
-            {
-            switch (currentCase)
-                {
-                case EAknEditorUpperCase:
-                    aState =  ET9UpperCyrillic;
-                    break;
-                case EAknEditorLowerCase:
-                    aState =  ET9LowerCyrillic;
-                    break;
-                case EAknEditorTextCase:
-                    aState = ET9ShiftedCyrillic;
-                    break;
-                default:
-                    break;
-                }    
-            }
-        else
-            {
-            switch (currentCase)
-                {
-                case EAknEditorUpperCase:
-                    aState = ET9Upper;
-                    break;
-                case EAknEditorLowerCase:
-                    aState = ET9Lower;
-                    break;
-                case EAknEditorTextCase:
-                    aState = ET9Shifted;
-                    break;
-                default:
-                    break;
-                }
-            }
-        
-    	}
-	}
-void CAknFepManager::UpdateIndicators()
-    { 
-    if(ELongKeyPress == iKeyRepeat)
-        return;	
-	// If it is fepware editor update the Indicators
-	// otherwise not need excute remainig part of code.
-	if( !iInputCapabilities.FepAwareTextEditor() || !iFepFullyConstructed ) 
-		{
-        //Ensure, If no idicator is require, make indicator state None 
-        if (!IsFlagSet(EFlagForegroundUIComponentVisible | EFlagMenuPaneVisible))
-            iIndicator->SetState(EStateNone);
-		return;
-		}
-
-    TAknEditingState newState = EStateNone;
-    MPtiLanguage* ptiLang = PtiEngine()->CurrentLanguage();    
-    MAknEditingStateIndicator* editingStateIndicator = EditingStateIndicator();
-
-    TBool findPaneIndicator(
-        iAknEditorFlags & EAknEditorFlagNoEditIndicators &&
-        iAknEditorFlags & EAknEditorFlagForceTransparentFepModes &&
-        editingStateIndicator != (MAknEditingStateIndicator*)iIndicator );
-
-#ifdef RD_SCALABLE_UI_V2
-    TBool fingerItutIndicator = ( iFepPluginManager && 
-                                  iFepPluginManager->PluginInputMode() == EPluginInputModeItut );
-#else
-    TBool fingerItutIndicator = EFalse;
-    
-#endif
-    if ( IsHybridAplhaEditor() && !iHybridAplphaChangedToAlphanumeric )
-            {
-            newState = EHybridModeLatin;
-            }    
-    else if (!(iAknEditorFlags & EAknEditorFlagNoEditIndicators) 
-        || findPaneIndicator || fingerItutIndicator)
-        {
-        
-#ifdef RD_SCALABLE_UI_V2
-        if ( ( IsFlagSet(EFlagQwertyShiftMode)  || IsFlagSet(EFlagLongShiftKeyPress)) &&
-             ((iFepPluginManager && iFepPluginManager->PluginInputMode() == EPluginInputModeVkb) ||
-        #ifndef RD_INTELLIGENT_TEXT_INPUT
-			      iQwertyInputMode
-      	#else	       								
-		           ( iQwertyInputMode && (IsFlagSet(EFlagQwertyShiftMode) ||IsFlagSet(EFlagLongShiftKeyPress))
-		           && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNext)
-		           && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyLock)
-		           && (iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyForced)
-		           )
-		#endif
-             ))
-#else
-        if ( iQwertyInputMode && IsFlagSet(EFlagQwertyShiftMode))
-    
-#endif        
-            {
-            newState = EQwertyShift;
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-			// To keep the shift key indicator in         
-            // Check if fn/shift both key are pressed 
-            if((iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone) &&
-            	(IsFlagSet(EFlagQwertyShiftMode) || IsFlagSet(EFlagLongShiftKeyPress)))
-	            {
-	            newState = EFnKeyPressed;	
-	            }
-#endif            
-            
-            }
-        else
-            {
-            switch (iMode)
-                {
-                case EHiraganaKanji:
-                    if (IsPredictive())
-                        {
-                        newState = EIndicatorStateJapanesePredictive;
-                        }
-                    else
-                        {
-                        newState = EIndicatorStateHiraganaKanji;
-                        }
-                    break;
-                case EKatakana:
-                    if (iCharWidth == EHalfWidthChar)
-                        {
-                        newState = EIndicatorStateHalfKatakana;
-                        }
-                    else if (iCharWidth == EFullWidthChar)
-                        {
-                        newState = EIndicatorStateFullKatakana;
-                        }
-                    break;
-                case EHiragana:
-                    {
-                    newState = EIndicatorStateHiragana;
-                    }
-                    break;
-                case EPinyin:
-                    if (ptiLang->HasInputMode(EPtiEnginePinyinByPhrase))
-                        {
-                        newState = EIndicatorStatePinyinPhrase;
-                        }                        
-                    else
-                        {
-                        newState = EIndicatorStatePinyin;
-                        }                        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    if ( iFnKeyManager->FnKeyState()
-                        == CAknFepFnKeyManager::EFnKeyLock )
-                        newState = EFnKeyLocked;
-                    else if ( iFnKeyManager->FnKeyState()
-                        != CAknFepFnKeyManager::EFnKeyNone )
-                        newState = EFnKeyPressed;
-#endif
-                    break;
-                case EZhuyin:
-                    if (ptiLang->HasInputMode(EPtiEngineZhuyinByPhrase))
-                        {
-                        newState = EIndicatorStateZhuyinPhrase;
-                        }                        
-                    else
-                        {
-                        newState = EIndicatorStateZhuyin;
-                        }                        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    if ( iFnKeyManager->FnKeyState()
-                        == CAknFepFnKeyManager::EFnKeyLock )
-                        newState = EFnKeyLocked;
-                    else if ( iFnKeyManager->FnKeyState()
-                        != CAknFepFnKeyManager::EFnKeyNone )
-                        newState = EFnKeyPressed;
-#endif
-                    break;
-                case EStroke:
-                    {
-                    TBool flag = ptiLang->HasInputMode(EPtiEngineStrokeByPhrase);
-                    if (iLanguageCapabilities.iInputLanguageCode == ELangPrcChinese)
-                        {
-                        if (flag)
-                            {
-                            newState = EIndicatorStateStrokePhrase;
-                            }                            
-                        else
-                            {
-                            newState = EIndicatorStateStroke;
-                            }                            
-                        }
-                    else
-                        {
-                        if (flag)
-                            {
-                            newState = EIndicatorStateStrokeTradPhrase;
-                            }                            
-                        else
-                            {
-                            newState = EIndicatorStateStrokeTrad;
-                            }                            
-                        }
-                        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    if ( iFnKeyManager->FnKeyState()
-                        == CAknFepFnKeyManager::EFnKeyLock )
-                        newState = EFnKeyLocked;
-                    else if ( iFnKeyManager->FnKeyState()
-                        != CAknFepFnKeyManager::EFnKeyNone )
-                        newState = EFnKeyPressed;
-#endif
-                    break;
-                case ECangJie:
-                    newState = EIndicatorStateCangJie;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    if ( iFnKeyManager->FnKeyState()
-                        == CAknFepFnKeyManager::EFnKeyLock )
-                        newState = EFnKeyLocked;
-                    else if ( iFnKeyManager->FnKeyState()
-                        != CAknFepFnKeyManager::EFnKeyNone )
-                        newState = EFnKeyPressed;
-#endif
-                    break;
-                case EZhuyinFind:
-                    newState = EIndicatorStateZhuyinFind;
-                    break;
-                case EStrokeFind:
-                    newState = EIndicatorStateStrokeFind;
-                    break;
-                case ENumber:
-                    {
-                    newState = ENumeric;
-                    //iLanguageCapabilities.iLocalDigitType = EDigitTypeWestern;
-                    }
-                    break;
-                case ENativeNumber:
-                    {
-                    UpdateNumberIndicator( newState );
-                    }
-                    break;
-                case EHangul:
-                	{
-                	newState = EIndicatorStateHangul;            	              	
-                	}
-                	break;
-                case ELatin:
-                    {
-                    UpdateLatinIndicator( newState );
-                    }
-                    break;
-                case EHindi:
-                    {
-                    UpdateHindiIndicator( newState );
-                    }
-                    break;
-                default:
-                    break;
-           }
-        }
-    }
-
-    if ( iFepPluginManager && iFepPluginManager->PluginInputMode() == EPluginInputModeVkb )
-        {
-        newState = iFepPluginManager->VKBIndicatorState( newState );
-        }
-
-    // Update indicators only if the state has been changed, or if the indicator has swapped
-    if ((iPreviousEditingState != newState) || (editingStateIndicator != iEditIndicatorAtLastUpdate))
-        {
-        if (editingStateIndicator)
-            {
-            // because current avkon have not find chinese phrase indicator,
-            // so change back to no-phrase
-           if (findPaneIndicator || iAknEditorFlags & EAknEditorFlagFindPane )
-                {
-                switch(newState)
-                    {
-                    case EIndicatorStateStrokePhrase:
-                        {
-                        newState = EIndicatorStateStroke; 
-                        }
-                    break;
-                    case EIndicatorStateStrokeTradPhrase:
-                        {
-                        newState = EIndicatorStateStrokeTrad; 
-                        }
-                    break;
-                    case EIndicatorStatePinyinPhrase:
-                        {
-                        newState = EIndicatorStatePinyin; 
-                        }
-                    break;
-                    case EIndicatorStateZhuyinPhrase:
-                        {
-                        newState = EIndicatorStateZhuyin; 
-                        }
-                    break;
-                    default:
-                        {
-                        break;
-                        }
-                    }
-                }
-           // Add This condition for Fixing EYYE-7HHBWW: Phonebook, ReTe, PF52.50_2008_wk32: 
-           // Navigation bar disappears after tapping find pane and then returning back to Names list view.
-           if (!(editingStateIndicator == (MAknEditingStateIndicator*)iIndicator &&
-               ( iFepPluginManager && iFepPluginManager->PluginInputMode() == EPluginInputModeItut ) &&
-               IsFindPaneEditor()))
-               {
-               editingStateIndicator->SetState(newState);
-               }
-
-            // Ensure that no indicator is shown in navi pane when other
-            // indicator is changed in use.
-            if ( editingStateIndicator != (MAknEditingStateIndicator*)iIndicator &&
-                 iPreviousEditingState == EStateNone &&
-                 (!IsFlagSet(EFlagForegroundUIComponentVisible | EFlagMenuPaneVisible)) )
-
-                {
-                iIndicator->SetState( EStateNone );
-                }
-
-            iPreviousEditingState = newState;
-            iEditIndicatorAtLastUpdate=editingStateIndicator;
-            }
-        }
-    }
-
-void CAknFepManager::UpdateNumberIndicator( TAknEditingState& aNewState )
-    {
-    
- // chnage for AIYR-6L7DGU; This problrm persist in all variants. 
- // The fix is made only for Hindi
-    UpdateNumericEditorDigitType();
-    TBool supportsWesternNumericIntegerOrReal =
-        ( iInputCapabilities.SupportsWesternNumericIntegerPositive() ||
-        iInputCapabilities.SupportsWesternNumericIntegerNegative() ||
-        iInputCapabilities.SupportsWesternNumericReal() );
-
-#ifdef RD_SCALABLE_UI_V2                        
-        iFepPluginManager->SetPluginNativeRange( ETrue );
-#endif // RD_SCALABLE_UI_V2 
-        // In usual case digit mode is Arabic-Indic digits if local digit mode is
-        // Arabic-Indic and current input language is Arabic.
-        if ( (!supportsWesternNumericIntegerOrReal &&
-            iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic /* &&
-            iLanguageCapabilities.iInputLanguageCode == ELangArabic*/
-            )
-            ||
-            // But digit mode is Arabic-Indic digit in MFNE and real number
-            // editors if UI language is Arabic and global digit setting is
-            // Arabic-Indic digits.
-            ( !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            iLanguageCapabilities.iNumericEditorDigitType == EDigitTypeArabicIndic && // AknTextUtils::DigitModeQuery(AknTextUtils::EDigitModeShownToUser) &&
-            supportsWesternNumericIntegerOrReal &&
-            iUiLanguage == ELangArabic
-            )
-            )
-            {
-            aNewState=EArabicIndicNumeric;
-                        
-            }
-        else if ( (!supportsWesternNumericIntegerOrReal &&
-            iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic /* &&
-            iLanguageCapabilities.iInputLanguageCode == ELangUrdu,Farasi*/
-            )
-            ||
-            // But digit mode is Arabic-Indic digit in MFNE and real number
-            // editors if UI language is Arabic and global digit setting is
-            // Arabic-Indic digits.
-            ( !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-            iLanguageCapabilities.iNumericEditorDigitType == EDigitTypeEasternArabicIndic && // AknTextUtils::DigitModeQuery(AknTextUtils::EDigitModeShownToUser) &&
-            supportsWesternNumericIntegerOrReal &&
-            (iUiLanguage == ELangUrdu || iUiLanguage == ELangFarsi)))
-            {
-            aNewState=EArabicIndicNumeric;                            
-            }    
-        /* Devanagari Scripts */
-        else if ( (!supportsWesternNumericIntegerOrReal &&
-                iLanguageCapabilities.iLocalDigitType == EDigitTypeDevanagari //&&
-                //iLanguageCapabilities.iInputLanguageCode == ELangHindi
-                )
-                ||
-                ( !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) &&
-                iLanguageCapabilities.iNumericEditorDigitType == EDigitTypeDevanagari && // AknTextUtils::DigitModeQuery(AknTextUtils::EDigitModeShownToUser) &&
-                supportsWesternNumericIntegerOrReal &&
-                TAknFepUiIndicInputManager::IsScriptDevanagari( iUiLanguage )
-                )
-                )
-            {
-            aNewState= EDevanagariIndicNumeric;                            
-            }
-        else
-        {
-        if ( iLanguageCapabilities.iInputLanguageCode == ELangArabic )
-            {
-            //iLanguageCapabilities.iLocalDigitType = EDigitTypeArabicIndic;
-            aNewState=EArabicIndicNumeric;
-            }
-        else if ( iLanguageCapabilities.iInputLanguageCode == ELangFarsi 
-               || iLanguageCapabilities.iInputLanguageCode == ELangUrdu )
-            {
-            //iLanguageCapabilities.iLocalDigitType = EDigitTypeEasternArabicIndic;
-            aNewState=EArabicIndicNumeric;
-            }    
-        else if ( iLanguageCapabilities.iInputLanguageCode == ELangHindi )
-            {
-            //iLanguageCapabilities.iLocalDigitType = EDigitTypeDevanagari;
-            aNewState= EDevanagariIndicNumeric;
-            }
-        }
-    }
-    
-void CAknFepManager::UpdateLatinIndicator( TAknEditingState& aNewState )
-    {  
-    if (IsPredictive())
-        {
-        //AutoComplete - Begin
-        SetPredictiveIndicatorState( aNewState );
-        //AutoComplete - End
-
-        return;           
-        }
-
-    TInt currentCase = iCaseMan->CurrentCase();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	if(iFnKeyManager->FnKeyState() == CAknFepFnKeyManager::EFnKeyLock)
-		aNewState = EFnKeyLocked;
-    else if(iFnKeyManager->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-		aNewState = EFnKeyPressed;
-	else    
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		{
-#ifdef RD_SCALABLE_UI_V2                        
-    if( iFepPluginManager &&
-        ( !iFepPluginManager->SyncWithPluginRange() || iFepPluginManager->PluginNativeRange() ) )
-        {
-        iFepPluginManager->SetPluginNativeRange( ETrue );
-#endif // RD_SCALABLE_UI_V2 
-        switch ( iLanguageCapabilities.iInputLanguageCode )
-            {
-            case ELangArabic:
-                {
-                aNewState=EMultitapArabic; 
-                }
-                return;
-            case ELangHebrew:
-                {
-                aNewState=EMultitapHebrew;                              
-                }
-                return;
-            case ELangFarsi:
-            case ELangUrdu:
-                {
-                aNewState=EMultitapFarsiAndUrdu;                                 
-                }
-                return;
-            case ELangThai:
-                {
-                aNewState = EMultitapThai;                               
-                }
-                return;
-                
-#ifdef RD_MARATHI
-            case ELangMarathi:
-                {
-                aNewState = EIndicatorStateMultitapMarathi;                                
-                }
-            	return;
-#endif // RD_MARATHI
-
-#ifdef RD_HINDI_PHONETIC_INPUT  
-            case KLangHindiPhonetic:
-                {                            
-                TInt currentPtiLang = (ptiLang)? ptiLang->LanguageCode() : 0;
-                
-                if(TAknFepUiIndicInputManager::IsIndicPhoneticLanguage(TLanguage(currentPtiLang)))
-                    {
-                    aNewState = TAknEditingState(SetPhoneticIndicator(TLanguage(currentPtiLang)));
-                    }
-                else
-                    {
-                     switch ( currentCase )
-                        {
-                        case EAknEditorUpperCase:
-                            aNewState=EMultitapUpper;
-                            if (iCharWidth == EFullWidthChar)
-                                {
-                                aNewState=EIndicatorStateFullLatinUpper;
-                                }
-                            break;
-                        case EAknEditorLowerCase:
-                            aNewState=EMultitapLower;
-                            if (iCharWidth == EFullWidthChar)
-                                {
-                                aNewState=EIndicatorStateFullLatinLower;
-                                }
-                            break;
-                        case EAknEditorTextCase:
-                            aNewState=EMultitapShifted;
-                            if (iCharWidth == EFullWidthChar)
-                                {
-                                aNewState=EIndicatorStateFullLatinText;
-                                }
-                            break;
-                        default:
-                            break;
-                        }
-                    }       
-                
-                }
-            return;
-#endif
-            case ELangVietnamese:
-                {                          
-                switch (currentCase)
-                    {
-                    case EAknEditorUpperCase:
-                        aNewState =  EMultitapUpperVietnamese;
-                        break;
-                    case EAknEditorLowerCase:
-                        aNewState =  EMultitapLowerVietnamese;
-                        break;
-                    case EAknEditorTextCase:
-                        aNewState = EMultitapShiftedVietnamese;
-                        break;
-                    default:
-                        break;
-                    }
-				return;	  
-                }
-                
-            case ELangGreek:
-                {
-                switch (currentCase)
-                    {
-                    case EAknEditorUpperCase:
-                        aNewState =  EMultitapUpperGreek;
-                        break;
-                    case EAknEditorLowerCase:
-                        aNewState =  EMultitapLowerGreek;
-                        break;
-                    case EAknEditorTextCase:
-                        aNewState = EMultitapShiftedGreek;
-                        break;
-                    default:
-                        break;
-                    }
-				return;  
-                }
-            
-            //Cyrillic alphabet is used for Russian, Bulgarian and 
-            //Ukranian languages. So fall through for all these languages -
-            case ELangRussian:
-            case ELangBulgarian:
-            case ELangUkrainian:
-                {
-                switch (currentCase)
-                    {
-                    case EAknEditorUpperCase:
-                        aNewState =  EMultitapUpperCyrillic;
-                        break;
-                    case EAknEditorLowerCase:
-                        aNewState =  EMultitapLowerCyrillic;
-                        break;
-                    case EAknEditorTextCase:
-                        aNewState = EMultitapShiftedCyrillic;
-                        break;
-                    default:
-                        break;
-                    } 
-				return; 
-                }
-            }
-#ifdef RD_SCALABLE_UI_V2     
-        }
-        // if plugin is not native range
-    
-    if(iFepPluginManager && iLanguageCapabilities.iInputLanguageCode != ELangRussian &&
-       iLanguageCapabilities.iInputLanguageCode != ELangBulgarian &&
-       iLanguageCapabilities.iInputLanguageCode != ELangUkrainian &&
-       iLanguageCapabilities.iInputLanguageCode != ELangGreek )
-        {
-        iFepPluginManager->SetPluginNativeRange( EFalse );
-        }
-    
-#endif // RD_SCALABLE_UI_V2                                 
-		}
-#ifdef RD_INTELLIGENT_TEXT_INPUT		
-	if(FnKeyState() == CAknFepFnKeyManager::EFnKeyNone)
-#endif //RD_INTELLIGENT_TEXT_INPUT		
-	    {
-        switch (currentCase)
-        {
-        case EAknEditorUpperCase:
-            aNewState=EMultitapUpper;
-            if (iCharWidth == EFullWidthChar)
-                {
-                aNewState=EIndicatorStateFullLatinUpper;
-                }
-            break;
-        case EAknEditorLowerCase:
-            aNewState=EMultitapLower;
-            if (iCharWidth == EFullWidthChar)
-                {
-                aNewState=EIndicatorStateFullLatinLower;
-                }
-            break;
-        case EAknEditorTextCase:
-            aNewState=EMultitapShifted;
-            if (iCharWidth == EFullWidthChar)
-                {
-                aNewState=EIndicatorStateFullLatinText;
-                }
-            break;
-        default:
-            break;
-        }
-        }
-    }
-void CAknFepManager::UpdateHindiIndicator( TAknEditingState& aNewState )
-    {
-    if ( IsPredictive() )
-        {
-        if( iIsAutoCompleteOn )
-            aNewState = EAutoCompleteHindi; 
-        else
-            aNewState = EIndicatorStatePredictiveHindi;
-        }
-    else
-        {
-        aNewState = EIndicatorStateMultitapHindi;
-        }
-    }
-TBool CAknFepManager::GetIndicatorImgID(TInt& aIndicatorImgID, TInt& aIndicatorTextID)
-    {
-    if (iPreviousEditingState == EStateNone)
-        {
-        UpdateIndicators();
-        if (iPreviousEditingState == EStateNone)
-            {
-            return EFalse;    
-            }
-        }
- 
-	TBool predictiveMode = QueryPredictiveState(iPreviousEditingState);
-	TBool predictiveAutoCompleteMode = EFalse;
-	if(!predictiveMode)
-		{
-		predictiveAutoCompleteMode = QueryPredictiveAutoCompleteState(iPreviousEditingState);		
-		}
-    
-    if (predictiveMode)
-        {
-        aIndicatorImgID = EAknNaviPaneEditorIndicatorT9;
-        }
-    else if (predictiveAutoCompleteMode)
-        {
-        aIndicatorImgID = EAknNaviPaneEditorIndicatorAutoComplete;   
-        }
-    else 
-        {
-        aIndicatorImgID = EAknNaviPaneEditorIndicatorQuery;
-        }
-   
-    aIndicatorTextID = EvaluateState(iPreviousEditingState);
-    
-    return ETrue;
-    }
-    
-TInt CAknFepManager::EvaluateState(const TAknEditingState aState)
-{
-	TInt result = 0;
-	switch(aState)
-	{
-		case EArabicIndicNumeric:
-  			 result = EAknNaviPaneEditorIndicatorArabicIndicNumberCase;
-  			 break;
-  			 
-		case ET9Thai:
-		case EMultitapThai:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteThai:
-#endif
-			result = EAknNaviPaneEditorIndicatorThai;
-			break;				
-			
-		case EIndicatorStatePredictiveHindi:
-		case EIndicatorStateMultitapHindi:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteHindi:
-#endif
-#ifdef RD_MARATHI
-		case EIndicatorStateMultitapMarathi:
-		case EIndicatorStatePredictiveMarathi:
-#endif // RD_MARATHI
-			result = EAknNaviPaneEditorIndicatorDevanagariCase;
-			break;	
-			
-		case ET9Arabic:
-		case EMultitapArabic:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteArabic:
-#endif
-			result = EAknNaviPaneEditorIndicatorArabicCase;
-			break;	
-
-		case ET9Hebrew:
-		case EMultitapHebrew:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteHebrew:
-#endif
-			result = EAknNaviPaneEditorIndicatorHebrewCase;
-			break;	
-			
-		case ET9FarsiAndUrdu:
-		case EMultitapFarsiAndUrdu:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteFarsiAndUrdu:
-#endif
-			result = EAknNaviPaneEditorIndicatorFarsiAndUrduCase;
-			break;					
-
-
-		case ET9Upper:
-		case EMultitapUpper:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteUpper:
-#endif
-			result = EAknNaviPaneEditorIndicatorUpperCase;	
-			break;
-
-		case ET9Lower:
-		case EMultitapLower:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteLower:
-#endif
-			result = EAknNaviPaneEditorIndicatorLowerCase;	
-			break;
-
-		case ET9Shifted:
-		case EMultitapShifted:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteShifted:
-#endif
-			result = EAknNaviPaneEditorIndicatorTextCase;	
-			break;
-			
-		case ENumeric:
-			result = EAknNaviPaneEditorIndicatorNumberCase;	
-			break;		
-  			 
-  			 	
-		case EIndicatorStatePinyin:
-			result = EAknNaviPaneEditorIndicatorPinyin;
-			break;
-		case EIndicatorStatePinyinPhrase:
-			result = EAknNaviPaneEditorIndicatorPinyinPhrase;
-			break;
-			
-		case EIndicatorStateZhuyin:
-			 result = EAknNaviPaneEditorIndicatorZhuyin;
-			break;
-		case EIndicatorStateZhuyinPhrase:
-			 result = EAknNaviPaneEditorIndicatorZhuyinPhrase;
-			break;
-
-		case EIndicatorStateZhuyinFind:
-			result = EAknNaviPaneEditorIndicatorZhuyinFind;
-			break;
-
-		case EDevanagariIndicNumeric :
-			result = EAknNaviPaneEditorIndicatorDevanagariIndicNumberCase;
-			break;
-		
-		case EIndicatorStateHiraganaKanji:
-		case EIndicatorStateJapanesePredictive:
-			result = EAknNaviPaneEditorIndicatorJapaneseHiraganaKanji;
-			break;
-
-		case EIndicatorStateFullKatakana:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullKatakana;
-			break;
-
-		case EIndicatorStateHalfKatakana:
-			result = EAknNaviPaneEditorIndicatorJapaneseHalfKatakana;
-			break;
-
-		case EIndicatorStateFullLatinText:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullTextAlphabet;
-			break;
-
-		case EIndicatorStateFullLatinUpper:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullUpperAlphabet;
-			break; 
-
-		case EIndicatorStateFullLatinLower:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullLowerAlphabet;
-			break;
-
-		case EIndicatorStateFullNumeric:
-			result = EAknNaviPaneEditorIndicatorJapaneseFullNumeric;
-			break;
-
-		case EIndicatorStateHiragana:
-			result = EAknNaviPaneEditorIndicatorJapaneseHiragana;
-			break;
-
-		case EIndicatorStateStroke:
-			result = EAknNaviPaneEditorIndicatorStroke;
-			break;
-		case EIndicatorStateStrokePhrase:
-			result = EAknNaviPaneEditorIndicatorStrokePhrase;
-			break;
-
-		case EIndicatorStateStrokeTrad:
-			result = EAknNaviPaneEditorIndicatorStrokeTrad;
-			break;
-		case EIndicatorStateStrokeTradPhrase:
-			result = EAknNaviPaneEditorIndicatorStrokeTradPhrase;
-			break;
-
-		case EQwertyShift:
-			result = EAknNaviPaneEditorIndicatorQwertyShift;
-			break;
-
-		case EIndicatorStateStrokeFind:
-			result = EAknNaviPaneEditorIndicatorStrokeFind;
-			break;
-
-		case EIndicatorStateCangJie:
-			result = EAknNaviPaneEditorIndicatorCangJie;
-			break;
-		
-		case ET9UpperVietnamese:
-		case EMultitapUpperVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteUpperVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseUpperCase;
-			break;			
-			
-		case ET9LowerVietnamese:
-		case EMultitapLowerVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteLowerVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseLowerCase;
-			break;	
-			
-		case ET9ShiftedVietnamese:
-		case EMultitapShiftedVietnamese:
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-		case EAutoCompleteShiftedVietnamese:
-#endif
-			result = EAknNaviPaneEditorIndicatorVietnameseTextCase;
-			break;
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case EIndicatorStateHindiPhoneticUpper:
-			result = EAknNaviPaneEditorIndicatorDevanagariPhoneticUpperCase;
-			break;
-		case EIndicatorStateHindiPhoneticLower:
-			result = EAknNaviPaneEditorIndicatorDevanagariPhoneticLowerCase;
-			break;
-#endif
-        case ET9UpperGreek:
-        case EMultitapUpperGreek:
-            result = EAknNaviPaneEditorIndicatorGreekUpperCase;
-            break;
-            
-        case ET9LowerGreek:
-        case EMultitapLowerGreek:
-            result = EAknNaviPaneEditorIndicatorGreekLowerCase;
-            break;
-        
-        case ET9ShiftedGreek:
-        case EMultitapShiftedGreek:
-            result = EAknNaviPaneEditorIndicatorGreekTextCase;
-            break;
-            
-        case ET9UpperCyrillic:
-        case EMultitapUpperCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicUpperCase;
-            break;
-            
-        case ET9LowerCyrillic:
-        case EMultitapLowerCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicLowerCase;
-            break;
-        
-        case ET9ShiftedCyrillic:
-        case EMultitapShiftedCyrillic:
-            result = EAknNaviPaneEditorIndicatorCyrillicTextCase;
-            break;
-            
-        case EHybridModeLatin:
-            result = EAknNaviPaneEditorIndicatorHybridLatin;
-            break;
-        case EIndicatorStateHangul:
-            result = EAknNaviPaneEditorIndicatorKoreanHangul;
-            break;
-        
-	}
-	return result;
-
-}    
-
-TBool CAknFepManager::IsAbleToLaunchSCT() const
-    {
-    TBool ableToLaunchSCT = ETrue;
-
-    if (ExtendedInputCapabilities() & CAknExtendedInputCapabilities::EDisableSCT && 
-        PluginInputMode() == EPluginInputModeNone )
-        {
-        // The editor doesn't allow SCT.
-        return EFalse;
-        }
-
-    if (iMode == ENumber || iMode == ENativeNumber)
-        {
-        if (iPermittedInputModes == EAknEditorNumericInputMode || !NumericModeSCTResourceId()) 
-            {
-            // SCT is not launched if the number mode is the only input mode or
-            // if there is not keymap resource for the current numeric keymap mode.
-            ableToLaunchSCT = EFalse;
-            }
-        if (iAknEditorFlags & EAknEditorFlagUseSCTNumericCharmap ||
-            ( (iAknEditorNumericKeymap == EAknEditorAlphanumericNumberModeKeymap) &&
-              (iPermittedInputModes != EAknEditorNumericInputMode) ))
-            {
-            // SCT is launched in the number mode if requested by editor flag
-            // EAknEditorFlagUseSCTNumericCharmap or if also text input modes are
-            // allowed and the keymap is EAknEditorAlphanumericNumberModeKeymap.
-            ableToLaunchSCT = ETrue;
-            }
-        }
-    if (!(EditorHasFreeSpace() && EditorState() 
-        && EditorState()->SpecialCharacterTableResourceId()))
-        {
-        ableToLaunchSCT = EFalse;
-        }
-
-    return ableToLaunchSCT;
-    }
-
-TBool CAknFepManager::QueryPredictiveState(const TAknEditingState aState)
- { 
-    return  (( aState == EIndicatorStatePinyin) ||
-             ( aState == EIndicatorStatePinyinPhrase) ||
-             ( aState == EIndicatorStateZhuyin) ||
-             ( aState == EIndicatorStateZhuyinPhrase) ||
-             ( aState == EIndicatorStateZhuyinFind) ||
-             ( aState == EIndicatorStateStrokeFind) ||
-             ( aState == EIndicatorStateStroke) || 
-             ( aState == EIndicatorStateStrokePhrase) ||
-			 ( aState == EIndicatorStateCangJie) ||
-             ( aState == EIndicatorStateStrokeTrad) || 
-             ( aState == EIndicatorStateStrokeTradPhrase) ||
-             ( aState == ET9Upper) ||
-             ( aState == ET9Shifted) ||
-             ( aState == ET9Lower) ||
-             ( aState == ET9Arabic) ||
-             ( aState == ET9Hebrew) ||
-             ( aState == ET9FarsiAndUrdu) ||
-             ( aState == ET9Thai) ||
-             ( aState == EIndicatorStatePredictiveHindi) ||
-#ifdef RD_MARATHI
-             ( aState == EIndicatorStatePredictiveMarathi) ||
-#endif // RD_MARATHI
-             ( aState == EIndicatorStateJapanesePredictive) ||
-             ( aState == ET9UpperVietnamese) ||
-             ( aState == ET9LowerVietnamese) ||
-             ( aState == ET9ShiftedVietnamese) ||
-             ( aState == ET9UpperGreek) ||
-             ( aState == ET9LowerGreek) ||
-             ( aState == ET9ShiftedGreek) ||
-             ( aState == ET9UpperCyrillic) ||
-             ( aState == ET9LowerCyrillic) ||
-             ( aState == ET9ShiftedCyrillic) );  
- }
-
- TBool CAknFepManager::QueryPredictiveAutoCompleteState(TAknEditingState aState)
- {
- 	 	        
-    return (( aState == EAutoCompleteUpper ) ||  
-     		( aState == EAutoCompleteShifted )  ||
-     		( aState == EAutoCompleteLower ) || 
-     		( aState == EAutoCompleteHindi ) ||
-     		( aState == EAutoCompleteArabic ) ||
-     		( aState == EAutoCompleteHebrew ) ||
-     		( aState == EAutoCompleteFarsiAndUrdu ) ||
-     		( aState == EAutoCompleteThai ) ||
-     		( aState == EAutoCompleteUpperVietnamese ) ||
-     		( aState == EAutoCompleteLowerVietnamese ) ||
-     		( aState == EAutoCompleteShiftedVietnamese ));
- }
-
-void CAknFepManager::LaunchSpecialCharacterTableL(TInt aResourceId, TBool aLaunchedByTouchWin, TBool aSmileyFirst)
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    // Set the iSupressCursorMoveToEndChrKeyPressed when cursor is in 
-	// between two words and SCT is launched
-    iSupressCursorMoveToEndChrKeyPressed = ETrue;
-#endif //RD_INTELLIGENT_TEXT_INPUT    
-#ifdef RD_SCALABLE_UI_V2
-    if ( iStarKeyPressed && iFepPluginManager && 
-         iFepPluginManager->PluginInputMode() == EPluginInputModeItut )
-            {
-            aLaunchedByTouchWin = ETrue;
-            }
-    iCancelPopupInQwerty = aLaunchedByTouchWin;
-#endif //RD_SCALABLE_UI_V2
-    DoLaunchSctAndPctL(aResourceId, aSmileyFirst ? EShowSmileyFirst : EShowSctFirst );
-#ifdef RD_SCALABLE_UI_V2
-    iCancelPopupInQwerty = EFalse;
-#endif //RD_SCALABLE_UI_V2    
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    iSupressCursorMoveToEndChrKeyPressed = ETrue;  
-#endif //RD_INTELLIGENT_TEXT_INPUT     
-    }
-
-TBool CAknFepManager::IsAbleToLaunchPCT() const
-    {
-    TBool isAbleToLaunch = EFalse;
-    if (FeatureManager::FeatureSupported(KFeatureIdJapanesePicto)
-     && (iAknEditorFlags & EAknEditorFlagEnablePictographInput))
-        {
-        isAbleToLaunch = ETrue;
-        }
-    return isAbleToLaunch;
-    }
-
-TBool CAknFepManager::IsAbleToLaunchSmiley() const
-    {
-    TBool ableToLaunchSmiley(EFalse);
-    
-    CAknEdwinState* edwinState = EditorState();
-    if(edwinState)
-        {
-        CAknEdwinFormAccessor* formAccessor = edwinState->FormAccessor();
-        if(formAccessor)
-            {
-            CEikEdwin *edwin = static_cast<CEikEdwin*>(formAccessor->FormClientControl());
-            if(edwin)
-                {
-                ableToLaunchSmiley = ((edwin->UserFlags()&CEikEdwin::EAvkonEnableSmileySupport) != 0);
-                }
-            }
-        }
-
-    return ableToLaunchSmiley;
-    }
-
-TInt CAknFepManager::GetCurrentEditorSCTResId() const
-    {
-    if(!EditorState())
-        {
-    	return NumericModeSCTResourceId();    	
-        }
-    TInt currentEditorSCTResId = EditorState()->SpecialCharacterTableResourceId();
-    if ( FeatureManager::FeatureSupported(KFeatureIdChinese) )
-        {        
-        if (currentEditorSCTResId == R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG)
-            {
-            if (iMode == EZhuyin)
-            	{
-            	currentEditorSCTResId = 
-                                  R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_FOR_ZHUYIN_SYMBOL_INPUT;
-        	    }
-            else
-            	{
-            	currentEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_CHINESE;
-        	    }        
-            }
-        }
-    if (currentEditorSCTResId == EDefaultSCTResourceId) // -1 forces the default in SCT resource definition
-        {
-        if (iAknEditorFlags & EAknEditorFlagLatinInputModesOnly)
-            {
-            currentEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY;
-            }        
-        else	
-            {        		        	
-            // only ITU-T and when Bopomofo symbol input mode is supported, we use new sct table
-            TInt supportSCTToneMarks = EFalse;
-            MPtiCoreInfo* ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineZhuyin);
-            
-            if(ptiCoreInfo)
-                {
-                supportSCTToneMarks = ptiCoreInfo->CapsBits() & ESupportSCTToneMarks;
-                }
-            
-            ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineZhuyinByPhrase);
-            if(ptiCoreInfo)    
-                {
-                supportSCTToneMarks = supportSCTToneMarks || 
-                                      (ptiCoreInfo->CapsBits() & ESupportSCTToneMarks);
-                }
-            
-            if(!iQwertyInputMode && (iMode == EZhuyin) && supportSCTToneMarks)
-                {
-                currentEditorSCTResId = 
-                                  R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_FOR_ZHUYIN_SYMBOL_INPUT;
-                }
-            else
-                {
-                if ( FeatureManager::FeatureSupported(KFeatureIdChinese) )
-                    {    
-                    currentEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_CHINESE;
-                    }
-                else
-                    {                    
-                    currentEditorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG;
-                    }
-                }
-            }
-        }  
-    return currentEditorSCTResId;         
-    }
-
-void CAknFepManager::LaunchPictographCharacterTableL()
-    {
-    DoLaunchSctAndPctL(NULL, EShowPctFirst);
-    }
-
-
-void CAknFepManager::UpdateInlineEditL(const TDesC& aNewInlineText, 
-                                       TInt aPositionOfInsertionPointInInlineText)
-    {
-    if ( ! IsFlagSet ( EFlagInsideInlineEditingTransaction ) )
-        {
-        return;
-        }
-    // Japanese implementation needs to be merged with functionality of other languages. Now they are separate.
-    if (iLanguageCapabilities.iInputLanguageCode == ELangJapanese)
-        {
-        iUncommittedText.iCursorPos = iUncommittedText.iAnchorPos + 
-                                      aPositionOfInsertionPointInInlineText;
-
-        if (aNewInlineText.Length() == 1)
-            {
-            if (aNewInlineText[0] == KAknFEPLineFeedSymbol ||
-                aNewInlineText[0] == KAknFEPMirroredLineFeedSymbol)
-                {
-                SetFlag(EFlagLineFeedCharacter);
-                ClearFlag(EFlagSpaceCharacter | EFlagFullWidthSpaceCharacter);
-                }
-            else if (aNewInlineText[0] == iSpaceCharacterCode)
-                {
-                SetFlag(EFlagSpaceCharacter);
-                ClearFlag(EFlagLineFeedCharacter | EFlagFullWidthSpaceCharacter);
-                }
-            else if (aNewInlineText[0] == iFullWidthSpaceCharacterCode)
-                {
-                SetFlag(EFlagFullWidthSpaceCharacter);
-                ClearFlag(EFlagLineFeedCharacter | EFlagSpaceCharacter);
-                }
-            else
-                {
-                ClearFlag(EFlagLineFeedCharacter 
-                          | EFlagSpaceCharacter 
-                          | EFlagFullWidthSpaceCharacter);
-                }
-            if (iInputCapabilities.SupportsSecretText())
-                {
-                TBuf<1> buf;
-                buf.Append(aNewInlineText[0]);
-                NewCharacterL(buf);
-                }
-            else
-                {
-                SetFlag(EFlagInsideMultitapInlineEditingTransaction);
-                iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(aNewInlineText, 
-                                                  aPositionOfInsertionPointInInlineText);
-                }
-            }
-        else
-            {
-            ClearFlag(EFlagLineFeedCharacter | EFlagSpaceCharacter | EFlagFullWidthSpaceCharacter);
-            iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(aNewInlineText, 
-                                                   aPositionOfInsertionPointInInlineText);
-            }
-#ifdef _DEBUG
-        RDebug::Print(_L("UpdateInlineEditL text=[%S] len=[%d] CurPos=[%d] AncPos=[%d] change=[%d]"),
-            &aNewInlineText, iUncommittedText.Length(),
-            iUncommittedText.iCursorPos, iUncommittedText.iAnchorPos,
-            aPositionOfInsertionPointInInlineText);
-#endif
-        }
-    else
-        {
-        	TInt curPos = iUncommittedText.iAnchorPos + aNewInlineText.Length();
-        	
-        	TInt deltaCur = curPos - iUncommittedText.iCursorPos;
-        	
-        	TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-        	
-        	TInt docLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-        	
-        	HBufC* newInlineText=NULL;
-	        	
-        	TBool syncLater = ETrue;
-			// we have to restrict to a length that is permissible in the editor
-        	// this situation comes when we select the max length condition is reached 
-        	// in the editor and we navigate to one of the words in the middle 
-        	// and select a longer word from the candidate list        	
-        	
-
-        	if( (maxEdSize > 0) && ( deltaCur > 0 ) 
-        							&& (( docLength + deltaCur) > maxEdSize ) )
-        	{
-        		newInlineText= aNewInlineText.Left( aNewInlineText.Length() - (docLength + deltaCur - maxEdSize )).AllocLC();
-        		aPositionOfInsertionPointInInlineText=newInlineText->Length();
-        	}
-        	else if((maxEdSize > 0) && (curPos > maxEdSize))
-        	{
-        		newInlineText= aNewInlineText.Left(maxEdSize - iUncommittedText.iAnchorPos).AllocLC();
-        		aPositionOfInsertionPointInInlineText=newInlineText->Length();
-        	}        	
-        	else
-        	{
-        		newInlineText=aNewInlineText.AllocLC();
-        		syncLater = EFalse;        	
-        	} 
-	// The Below code changes are made to sync iTextBuffer and the last word in the editor.When the 
-	// cursor position reaches more than the max length of editor, tail length is modified according 
-	// to truncated last word and Autocompletion bit length (Element count) value to display last 
-	// word in the editor properly. 			       	        	        	
-    #ifdef RD_INTELLIGENT_TEXT_INPUT        	 	
-			if(syncLater)
-        	    {       	    
-    	        TBuf<CAknFepManager::EMaximumFepWordLength> currentText = iPtiEngine->CurrentWord();
-    	        currentText.SetLength(newInlineText->Length());        	        
-    	        iPtiEngine->HandleCommandL( EPtiCommandSetCursorCrossedMaxLength );
-    	        iPtiEngine->SetCurrentWord(currentText); 
-    	        TransferFepStateToEditorL();
-    	        iPtiEngine->HandleCommandL( EPtiCommandResetCursorCrossedMaxLength );
-        	    }
-	#endif 	
-        	// CleanupStack::PushL(TCleanupItem(ClearFepStateOnLeave,this));
-        	iUncommittedText.iCursorPos = iUncommittedText.iAnchorPos + aPositionOfInsertionPointInInlineText;
-
-		HBufC* decoratedInlineEdit = HBufC::NewLC(aNewInlineText.Length()*3);
-		TPtr bufferPtr(decoratedInlineEdit->Des());
-
-        if ( EditorSupportsNeutralProtection() )
-            {
-        		if ( newInlineText->Length() > 0 )
-                {
-                iInlineTextDecorator->DecorateInlineText(
-        			newInlineText->Des(),
-                    bufferPtr,
-                    aPositionOfInsertionPointInInlineText,
-                    static_cast<TChar>(PreviousChar()),
-                    IsRightToLeftParagraph(DocPos() ),
-                    ( CurrentInputDirectionality() == TBidiText::ERightToLeft ) );
-                }
-
-            // Because the length of the new inline edit may bear no relation to the old inline edit,
-            // the passed desired position of the cursor (which is hidden in S60 anyway) in the new
-            // inline edit is restricted to its Length(). The input value of parameter
-            // aPositionOfInsertionPointInInlineText is ignored, and its modified value
-            // from the DecorateInlineText routine is also ignored.
-            
-			aPositionOfInsertionPointInInlineText = decoratedInlineEdit->Length();
-
-            iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(
-                bufferPtr, aPositionOfInsertionPointInInlineText);
-            	
-            iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-            iUncommittedText.iAnchorPos-=decoratedInlineEdit->Length();
-        	}
-
-        	else
-        	{
-        		// Even without the issue of decoration, the length of the new inline edit may bear no
-        		// relation to the old inline edit. It is always set to length (the end) of the new inline edit
-        		aPositionOfInsertionPointInInlineText = newInlineText->Length();
-
-        		iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(
-        			newInlineText->Des(), aPositionOfInsertionPointInInlineText);
-
-        		// This is needed here too because we should not insist that the new text is the same length
-        		// as the old, and so the iUncommitted text should be reset.
-        		iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-        		iUncommittedText.iAnchorPos-=newInlineText->Length();
-        	}       
-
-        	
-        CleanupStack::PopAndDestroy(decoratedInlineEdit);  
-        SendEventsToPluginManL( EPluginSyncFepAwareText, EPluginSyncUpdatedText );
-        CleanupStack::PopAndDestroy(newInlineText);
-        //Send info to engine to set EPtiXt9FlagAutoCompletionSetOnToOff flag as false 
-        TInt value = 0;
-        TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandAutoCompletionOnToOff,&value));			
-        }  
-    }
-
-void CAknFepManager::StartInlineEditL()
-    {
-    if(iConcatenationTimer->IsActive())
-    	iConcatenationTimer->Cancel();
-	
-    //currently western only, would need to sort out flags if this were to be used
-    //in multitap modes
-    switch (iMode)
-        {
-        case ELatin:
-        case EKatakana:
-        case EHiragana:
-            iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(KNullDesC, 0, EFalse, 
-                                                                         NULL, *this, *this);
-            iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-            break;
-        default:
-            iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(KNullDesC, 0, EFalse, 
-                                                                         NULL, *this, *this);
-            break;
-        }
-#ifdef _DEBUG
-    RDebug::Print(_L("StartInlineEditL len=[%d] CurPos=[%d] AncPos=[%d]"),
-        iUncommittedText.Length(),
-        iUncommittedText.iCursorPos, iUncommittedText.iAnchorPos );
-#endif
-
-    // have to calculate the number of free space on current EDITOR after StartFepInlineEditL().
-    TInt maxEdSize = iInputCapabilities.FepAwareTextEditor()->DocumentMaximumLengthForFep();
-    TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-    iFreeSpaceOfEditor = maxEdSize - edSize;
-
-    SetFlag(EFlagInsideInlineEditingTransaction);
-    }
-
-void CAknFepManager::StartInlineEditL(const TDesC& aText)
-    {
-    if(iConcatenationTimer->IsActive())
-    	iConcatenationTimer->Cancel();
-	
-    TInt textLength = aText.Length();
-
-    // CleanupStack::PushL(TCleanupItem(ClearFepStateOnLeave,this));
-    
-	HBufC* decoratedInlineEdit = HBufC::NewLC(aText.Length()*3);
-	TPtr bufferPtr(decoratedInlineEdit->Des());
-
-    // decorate the inline edit
-    if( aText.Length() > 0 && EditorSupportsNeutralProtection() )
-        {
-        iInlineTextDecorator->DecorateInlineText(
-            aText,
-            bufferPtr,
-            textLength, // aPositionOfInsertionPointInInlineText,
-            static_cast<TChar>(PreviousChar()),
-            IsRightToLeftParagraph( DocPos() ),
-            ( CurrentInputDirectionality() == TBidiText::ERightToLeft ) );
-        }
-    else
-        {
-
-        bufferPtr.Copy(aText);
-        }
-    
-    // Before starting editor inline, we cancel editor inline if by any chance editor ends up in inline edit and fep does not
-        TBool phoneIdle = (EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor); 
-        
-        if(phoneIdle)
-            {
-            iInputCapabilities.FepAwareTextEditor()->CancelFepInlineEdit();
-            }
-    
-    // operates at the current insertion point or selection
-    iInputCapabilities.FepAwareTextEditor()->StartFepInlineEditL(
-
-        bufferPtr,
-        textLength, // aPositionOfInsertionPointInInlineText,
-        EFalse,  // Cursor visibility
-        0, // MFormCustomDrawer*
-        *this,
-        *this);
-
-    // CleanupStack::Pop(); // cleanupitem for FEP state.
-
-    if (!iInputCapabilities.FepAwareTextEditor())
-        {
-        // In case while starting the inline edit, 3rd party app removes the focus out of editor before the transaction
-        // completes, we return with an error.
-        User::Leave(KErrCorrupt);
-        }
-    // cursor span needs to be updated following potential modification
-    // of the inline edit content before it was started
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-	iUncommittedText.iAnchorPos-=decoratedInlineEdit->Length();
-	CleanupStack::PopAndDestroy(decoratedInlineEdit);
-
-    SetFlag(EFlagInsideInlineEditingTransaction);
-    }
-
-void CAknFepManager::StartInlineEditL(TCursorSelection aCursorSelection, 
-                                      const TDesC& aInitialInlineText, 
-                                      TInt aPositionOfInsertionPointInInlineText, 
-                                      TBool aCursorVisibility)
-    {
-    	
-		if(iConcatenationTimer->IsActive())
-    	iConcatenationTimer->Cancel();
-	
-    TBool setToTrue=EFalse;
-
-    // setToTrue parameter forces use of selection hiding inline edit editor API -
-    // this method also sets the cursor selection to the second parameter
-    // CleanupStack::PushL(TCleanupItem(ClearFepStateOnLeave,this));
-    iInputCapabilities.FepAwareTextEditor()->Extension1()->StartFepInlineEditL(
-        setToTrue,
-        aCursorSelection,
-        aInitialInlineText,
-        aPositionOfInsertionPointInInlineText,
-        aCursorVisibility,
-        0, // MFormCustomDrawer* ?
-        *this,
-        *this);
-    // CleanupStack::Pop(); // cleanupitem for FEP state.
-    SetFlag(EFlagInsideInlineEditingTransaction);
-    //This will suppress Edit submenu from poping up
-    SetCcpuFlag(ECcpuStateIgnoreStarUp);
-    }
-
-TBool CAknFepManager::CloseUiIfWordDeletedL()
-    {
-    if (iUncommittedText.Length()==0)
-        {
-        // word has been totally deleted
-        ClearFlag(EFlagCompoundWord);
-        TryCloseUiL();
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-TBool CAknFepManager::TryGetTextToUncommitL(TDes& aText, TInt aCode, TBool& aComsumeKey)
-    {
-    TWesternNaviEvent naviEvent = ENullNaviEvent;
-    if (aCode == EKeyLeftArrow)
-        {
-        naviEvent = ELeftNaviEvent;
-        }
-    else if (aCode == EKeyRightArrow)
-        {
-        naviEvent = ERightNaviEvent;
-        }
-    else if (aCode == EKeyBackspace)
-        {
-        naviEvent = EBackspaceEvent;
-        }
-
-    TInt nextCharPos = 0;  // Character ordinal in logical memory (0 - n-1)
-    TBool hindibackspace = 0 ;  
-    TBool nextPositionFound = EFalse;
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-    if ( naviEvent == ERightNaviEvent )
-        {
-        nextPositionFound = GetNextVisualRightCharacter( nextCharPos );
-        if( (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) || 
-                (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai))
-            {
-            FindStartOfWord(nextCharPos);   
-                        
-            if(nextCharPos < iUncommittedText.LowerPos())
-                {
-                nextCharPos = iUncommittedText.LowerPos();
-                }
-            }
-        }
-    else if ( naviEvent == ELeftNaviEvent )
-        {
-        nextPositionFound = GetNextVisualLeftCharacter( nextCharPos );
-        if( nextPositionFound && (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) ||
-                (nextPositionFound && (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai)))
-            {
-            FindEndOfWord(nextCharPos);
-            if(nextCharPos > iUncommittedText.HigherPos())
-                {
-                nextCharPos = iUncommittedText.HigherPos();
-                }
-            }
-            
-        }
-    else if ( naviEvent == EBackspaceEvent )
-        {
-        if (iLanguageCapabilities.iRightToLeftLanguage)
-            {
-            nextPositionFound = GetNextVisualRightCharacter( nextCharPos );
-            }
-        else
-            {
-            if( (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) ||
-                    (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai))
-                {
-                TCursorSelection curSel;
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel);
-                nextCharPos = curSel.iCursorPos;        
-                hindibackspace = ETrue;
-                }
-            else
-                {
-            nextPositionFound = GetNextVisualLeftCharacter( nextCharPos );
-                }   
-            }
-        }
-
-    if ( !nextPositionFound && !hindibackspace )
-        {
-        aComsumeKey = EFalse;
-        return EFalse;
-        }
-
-    TInt anchorPos = 0;
-    TInt cursorPos = 0;
-    TTmDocPosSpec pos = DocPos();
-    CTmTextLayout::TTmChunkDescription leftChunk;
-    CTmTextLayout::TTmChunkDescription rightChunk;
-    FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-    if (( naviEvent == ELeftNaviEvent && leftChunk.iRightToLeft ) ||
-        ( naviEvent == ERightNaviEvent && !rightChunk.iRightToLeft ))
-        {
-        anchorPos = nextCharPos;
-        cursorPos = nextCharPos;
-        FindEndOfWord(cursorPos);
-        }
-    else
-        {
-        if( (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) ||
-                (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai))
-            {
-            cursorPos = nextCharPos;
-            }
-        else
-            {
-            cursorPos = nextCharPos + 1;    
-            }
-        anchorPos = nextCharPos;
-        FindStartOfWord(anchorPos);
-        }
-        
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-	TCursorSelection curSel;
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel);
-    // if selection happens dont consume the event pass it to editor
-    if((naviEvent == EBackspaceEvent)
-            && (!IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-            && (curSel.iAnchorPos != curSel.iCursorPos))
-        {
-        aComsumeKey = EFalse;
-        return EFalse;
-        }
-#endif
-
-    iUncommittedText.SetSelection(cursorPos, anchorPos);
-
-    if (iUncommittedText.Length() <= EMaximumFepWordLength)
-        {
-        iInputCapabilities.FepAwareTextEditor()->
-            GetEditorContentForFep(aText, iUncommittedText.iAnchorPos, iUncommittedText.Length());
-        aComsumeKey = ETrue;
-        return ETrue;
-        }
-    else
-        {
-        if (naviEvent == EBackspaceEvent)
-            {
-            // delete the last character
-            cursorPos--;
-            iUncommittedText.SetSelection(cursorPos, cursorPos);
-            aComsumeKey = EFalse;
-            }
-        else
-            {
-            TInt newCursorPosition= (pos.iPos == cursorPos) ? anchorPos : cursorPos;
-            iUncommittedText.SetSelection(newCursorPosition, newCursorPosition);
-            iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-            aComsumeKey = ETrue;
-            }
-        // The word is longer than EMaximumFepWordLength. Ui is deactivated.
-        TryCloseUiL();
-        return EFalse;
-        }
-    }
-
-
-TBool CAknFepManager::TryGetTextToUncommitL(TDes& aText, TBool& aComsumeKey)
-    {
-    TInt nextCharRightPos = 0;  // Character ordinal in logical memory (0 - n-1)
-    TInt nextCharLeftPos = 0; 
-    TBool nextRightPosFound = EFalse;
-    TBool nextLeftPosFound = EFalse;
-    
-    nextRightPosFound = GetNextVisualRightCharacter( nextCharRightPos );
-    if( (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) || 
-            (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai))
-        {
-        FindStartOfWord(nextCharRightPos);   
-                    
-        if(nextCharRightPos < iUncommittedText.LowerPos())
-            {
-            nextCharRightPos = iUncommittedText.LowerPos();
-            }
-        }
-    
-    
-    nextLeftPosFound = GetNextVisualLeftCharacter( nextCharLeftPos );
-    if( nextLeftPosFound && (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) ||
-            (nextLeftPosFound && (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai)))
-        {
-        FindEndOfWord(nextCharLeftPos);
-        if(nextCharLeftPos > iUncommittedText.HigherPos())
-            {
-            nextCharLeftPos = iUncommittedText.HigherPos();
-            }
-        }
-            
-
-
-
-    if ( !nextRightPosFound && !nextLeftPosFound )
-        {
-        aComsumeKey = EFalse;
-        return EFalse;
-        }
-
-    TInt anchorPos = 0;
-    TInt cursorPos = 0;
-
-    
-    
-    TTmDocPosSpec pos = DocPos();
-    CTmTextLayout::TTmChunkDescription leftChunk;
-    CTmTextLayout::TTmChunkDescription rightChunk;
-    FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-    /*
-    if( (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode))) ||
-            (TLanguage(iLanguageCapabilities.iInputLanguageCode) == ELangThai))
-        {
-        cursorPos = pos.iPos;
-        }
-    else
-        {
-        cursorPos = pos.iPos + 1;    
-        }
-    */
-    
-    anchorPos = pos.iPos;
-    cursorPos = pos.iPos;
-    FindEndOfWord(cursorPos);          
-    FindStartOfWord(anchorPos);
-    
-    
-    if(cursorPos == pos.iPos || anchorPos == pos.iPos)
-        {
-        iUncommittedText.SetSelection(pos.iPos, pos.iPos);
-        aComsumeKey = ETrue;
-        return EFalse;
-        }
-    else
-        {
-        iUncommittedText.SetSelection(cursorPos, anchorPos);
-        }  
-    
-    if (iUncommittedText.Length() <= EMaximumFepWordLength)
-        {
-        iInputCapabilities.FepAwareTextEditor()->
-            GetEditorContentForFep(aText, iUncommittedText.iAnchorPos, iUncommittedText.Length());
-        aComsumeKey = ETrue;
-        return ETrue;
-        }
-    else
-        {
-        /*
-        TInt newCursorPosition= (pos.iPos == cursorPos) ? anchorPos : cursorPos;
-        iUncommittedText.SetSelection(newCursorPosition, newCursorPosition);
-        iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-        */
-        aComsumeKey = ETrue;
-        // The word is longer than EMaximumFepWordLength. Ui is deactivated.
-        TryCloseUiL();
-        return EFalse;
-        }
-    }
-
-void CAknFepManager::UpdateCbaL(TInt aResourceId)
-    {
-    if ( !IsFepAwareTextEditor() )
-        {
-        return;
-        }
-
-    if (IsCcpuFlagSet(ECcpuStateStartCopy | ECcpuStateCopy | ECcpuStateStartCut | ECcpuStateCut))
-        {
-        return;
-        }
-    
-    //For bug ESSG-7RXC96
-    if((iAknEditorFlags & EAknEditorFlagFindPane)&& IsChineseInputLanguage()&& aResourceId != NULL)
-        {
-        return;
-        }
-
-	iUiInterface->UpdateSoftkeysL(aResourceId, EditorState(), this, 
-                                iSharedDataInterface->InputMode());
-    }
-
-
-TBool CAknFepManager::TryRemoveNoMatchesIndicatorL()
-    {
-    __ASSERT_DEBUG(IsFlagSet(EFlagInsideInlineEditingTransaction), 
-                   AknFepPanic(EAknFepPanicNotInsideInlineEdit));
-
-    if (IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        ClearFlag(CAknFepManager::EFlagNoMatches); 
-        TBuf<EMaximumFepWordLength> newText;
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(newText, 
-                                                                      iUncommittedText.iAnchorPos,
-                                                                      iUncommittedText.Length());
-        iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL(newText, 
-                                                                      iUncommittedText.Length());
-        SendEventsToPluginManL( EPluginSyncFepAwareText );
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-TBool CAknFepManager::IsMoreGoodWordsComing(TInt aNewWordLength) const
-    {
-    return (aNewWordLength == iUncommittedText.Length() + 1);
-    }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-TBool CAknFepManager::IsMoreGoodAutoCompleteWordsComing(TInt aInputMode,TInt aPreviousWordLength, 
-                                                        TInt aNewWordLength) const
-	{
-	return ((aInputMode == EPtiEngineWordCompletion) && (aPreviousWordLength != aNewWordLength ));	
-	}
-#endif
-
-void CAknFepManager::TryStartCompoundWord()
-    {
-    // check if this word constitutes a 'compound' word
-    // i.e. is either adjacent char is an alphabetic characeter
-    TBuf<ESingleCharacter> ch;
-    // check the previous character
-    if(iUncommittedText.iAnchorPos>0)
-        {
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(ch, 
-                                                                     iUncommittedText.iAnchorPos-1,
-                                                                     ESingleCharacter);
-        if (ch.Length()>0 && STATIC_CAST(TChar, IsValidInLineCharacter(ch[0])))
-            {
-            SetFlag(EFlagCompoundWord);
-            }
-        }
-
-    // check the next character
-    TInt edSize = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-    if (!IsFlagSet(EFlagCompoundWord) && iUncommittedText.iAnchorPos < edSize)
-        {
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(ch, 
-                                                                     iUncommittedText.iAnchorPos,
-                                                                     ESingleCharacter);
-        if (ch.Length()>0 && STATIC_CAST(TChar, IsValidInLineCharacter(ch[0])))
-            {
-            SetFlag(EFlagCompoundWord);
-            }
-        }
-    }
-
-void CAknFepManager::AddCompoundWordToUdbL()
-    {
-    __ASSERT_DEBUG(WesternPredictive() , AknFepPanic(EAknFepPanicNonPermittedEditorMode));
-
-    HBufC* compoundWordBuf = 
-                   HBufC::NewLC(iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep()); // buffer for text
-    TPtr compoundWord=compoundWordBuf->Des();
-
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-
-    // reset cursor span on word
-    FindStartOfWord(iUncommittedText.iAnchorPos);
-    FindEndOfWord(iUncommittedText.iCursorPos);
-
-    iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(compoundWord, 
-                                                                    iUncommittedText.iAnchorPos, 
-                                                                    iUncommittedText.Length());
-    FepUI()->AddTextToUserDictionaryL(compoundWord);
-    CleanupStack::PopAndDestroy();  // compoundWordBuf
-    }
-
-void CAknFepManager::SetWesternPredictive( const TBool aWesternPredictive )
-    {
-    const TInt previousValue = iWesternPredictive;
-    iWesternPredictive = aWesternPredictive && !(iAknEditorFlags & EAknEditorFlagNoT9) &&
-    // Predictive QWERTY (XT9) changes ---->
-        (   
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        (
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		iLanguageCapabilities.iSupportsWesternPredictive 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        && !iQwertyInputMode)
-         || (iLanguageCapabilities.iSupportsWesternQwertyPredictive && iQwertyInputMode) 
-#ifdef __HALF_QWERTY_KEYPAD
-         || (iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive && iQwertyInputMode) 
-#endif //__HALF_QWERTY_KEYPAD
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		);
-    // Predictive QWERTY (XT9) changes <----
-    if ( (previousValue != iWesternPredictive) && !(iAknEditorFlags & EAknEditorFlagNoT9) )
-        {
-        if (iWesternPredictive)
-            {
-            iSharedDataInterface->SetPredictiveTextOn();
-            }
-        else
-            {
-            iSharedDataInterface->ResetPredictiveTextOn();
-            }
-        }
-    }
-
-void CAknFepManager::SetWesternAutoComplete( const TBool aWesternAutoComplete )
-    {
-    const TInt previousValue = iIsAutoCompleteOn;
-    iIsAutoCompleteOn = aWesternAutoComplete && !(iAknEditorFlags & EAknEditorFlagNoT9);
-    if ( (previousValue != iIsAutoCompleteOn) && !(iAknEditorFlags & EAknEditorFlagNoT9) )
-        {
-        if (iIsAutoCompleteOn)
-            {
-            iSharedDataInterface->SetPredictiveTextAutoCompleteOn();
-            }
-        else
-            {
-            iSharedDataInterface->ResetPredictiveTextAutoCompleteOn();
-            }
-        }
-    }
-
-void CAknFepManager::SetJapanesePredictive(const TBool aJapanesePredictive)
-    {
-    if (iJapanesePredictive != aJapanesePredictive)
-        {
-        iJapanesePredictive = aJapanesePredictive;
-        }
-    if (iJapanesePredictive & iSharedDataInterface->PredictiveTextJapaneseOn()
-     || !iJapanesePredictive & !iSharedDataInterface->PredictiveTextJapaneseOn())
-        {
-        if(iJapanesePredictive)
-            {
-            iSharedDataInterface->SetJapanesePredictiveTextOn();
-            }
-        else
-            {
-            iSharedDataInterface->ResetJapanesePredictiveTextOn();
-            }
-        }
-    }
-
-void CAknFepManager::SetQwertyMode(const TBool aQwertyInputMode)
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if( aQwertyInputMode && iFepPluginManager && 
-        iSharedDataInterface->PluginInputMode() != EPluginInputModeNone
-        // Add this condition for addtion of ITI features on FSQ.
-        // iSharedDataInterface->QwertyInputMode() == 1, means that 
-        // hw keyboard is slided, then need to close touch inputmethods.
-        && iSharedDataInterface->QwertyInputMode() )
-        {
-        iFepPluginManager->ResetMenuState(EFalse);        
-        ExitPluginSpellModeByCancel();
-        TRAP_IGNORE(iFepPluginManager->ClosePluginInputModeL( ETrue ));
-        if ( iCancelPopupInQwerty )
-            {
-            TRAP_IGNORE( SimulateKeyEventL( EKeyCBA2 ) );
-            }
-        }
-    SetQwertyModeToInputcapbility();
-#endif//RD_SCALABLE_UI_V2
-    if (!COMPARE_BOOLS(aQwertyInputMode, iQwertyInputMode))
-        {
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        if(IsAutoCompleteOn())
-        	{
-            TRAP_IGNORE(RemoveSuggestedCompletionL());
-            }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        iQwertyInputMode = aQwertyInputMode;
-        if (!iQwertyInputMode)
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            SetTypingCorrectionLevel(EPtiErrorCorrectionLevelHigh);
-            SetNumberCandidateState(ETrue); // ETrue
-            SetPrimaryCandidate(EFalse); // Best prediction
-#endif            
-            ClearFlag(EFlagQwertyShiftMode | EFlagNoActionDuringChrKeyPress);
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        else
-	        {
-	        iSharedDataInterface->HandlePredictiveTextNumberCandidateSettingChange();
-	        iSharedDataInterface->HandlePredictiveTextTypingCorrectionLevelChange();
-	        iSharedDataInterface->HandlePredictiveTextPrimaryCandidateChange();	
-	        }
-#endif        
-
-        if ( iFepManState != EAknFepStateNull && IsFepAwareTextEditor() )
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-			   // In case of layout remove the auto completion part
-			   // Before transfer fep state to editor state.        
-               if(IsAutoCompleteOn())
-            	{
-#ifdef RD_SCALABLE_UI_V2            	
-                if( iFepPluginManager 
-                        && iFepPluginManager->IsSupportITIOnFSQ()
-                        && !iQwertyInputMode )
-                    {
-                    TRAP_IGNORE( iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate ) );
-                    }
-                else
-#endif //RD_SCALABLE_UI_V2                	
-                    {
-                    TInt tailLength = 0;
-                    TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength ));
-                    if(tailLength > 0)
-                        {
-                        TRAP_IGNORE(
-                            {
-                            RemoveSuggestedAdvanceCompletionL();
-                            iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate );
-                            });                       
-                        }
-                    }
-            	}
-#endif 
-            if ( !iFocusedItemDestroy )
-            	{            	
-                TRAP_IGNORE(
-                    {
-                    TransferFepStateToEditorL();
-                    TryCloseUiL();
-                    ConfigureFEPFromEditorStateL();
-                    });                
-            	}            
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(iFnKeyManager)
-        iFnKeyManager->SetQwertyInputMode(aQwertyInputMode);
-#endif
-    }
-
-TBool CAknFepManager::WesternPredictive(TInt aMode) const
-    {
-    TInt mode = iMode;
-    if ( aMode )
-        {
-        mode = aMode;
-        }
-    return (mode == ELatin && iWesternPredictive &&
-    // Predictive QWERTY (XT9) changes ---->
-      
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        ((
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		iLanguageCapabilities.iSupportsWesternPredictive 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        && !iQwertyInputMode)
-         || (iLanguageCapabilities.iSupportsWesternQwertyPredictive && iQwertyInputMode)
-#ifdef __HALF_QWERTY_KEYPAD
-		|| (iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive && iQwertyInputMode)
-#endif //__HALF_QWERTY_KEYPAD
-		)
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		);
-    // Predictive QWERTY (XT9) changes <----
-    }
-
-TBool CAknFepManager::IsPredictive(TInt aMode) const
-    {
-    TBool isPredictive = EFalse;
-    TInt mode = iMode;
-    if ( aMode )
-        {
-        mode = aMode;
-        }
-    if (mode == EHiraganaKanji )
-        {
-        if ((iPermittedInputModes & EAknEditorHiraganaKanjiInputMode)
-         && iJapanesePredictive
-         && !(iAknEditorFlags & EAknEditorFlagNoT9)
-         && HasJapanesePredictionInputMode())
-            {
-            isPredictive = ETrue;
-            // Japanese predictive input is available on both Qwerty and not Qwerty
-            return isPredictive;
-            }
-        }
-    else if (mode == ELatin)
-        {
-        if ((iPermittedInputModes & (EAknEditorTextInputMode | EAknEditorHalfWidthTextInputMode))
-          && !(iAknEditorFlags & EAknEditorFlagNoT9)
-          && iWesternPredictive && 
-          (iLanguageCapabilities.iSupportsWesternPredictive
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-           ||iLanguageCapabilities.iSupportsWesternQwertyPredictive 
-#ifdef __HALF_QWERTY_KEYPAD           
-           ||iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive
-#endif //__HALF_QWERTY_KEYPAD           
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		)) // Predictive QWERTY (XT9) changes
-            {
-            isPredictive = ETrue;
-            }
-        }
-#ifdef RD_SCALABLE_UI_V2
-	#ifdef RD_INTELLIGENT_TEXT_INPUT
-	    return isPredictive; //&& (iFepPluginManager->PluginInputMode() == EPluginInputModeNone);
-	#else
-	    return isPredictive && !iQwertyInputMode 
-             && ((iFepPluginManager->PluginInputMode() == EPluginInputModeItut) 
-	    			|| (iFepPluginManager->PluginInputMode() == EPluginInputModeNone));
-	#endif //RD_INTELLIGENT_TEXT_INPUT
-#else
-	#ifdef RD_INTELLIGENT_TEXT_INPUT
-	    return isPredictive;
-	#else
-	    return isPredictive && !iQwertyInputMode;
-	#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif //RD_SCALABLE_UI_V2
-    }
-
-TBool CAknFepManager::Japanese() const
-    {
-    TBool rtn = EFalse;
-    switch (iMode)
-        {
-        case EHiraganaKanji:
-        case EKatakana:
-        case EHiragana:
-            rtn = ETrue;
-            break;
-        case ELatin:
-            if ((!WesternPredictive()) && iCharWidth == EFullWidthChar)
-                {
-                rtn = ETrue;
-                }
-            break;
-        case ENumber:
-            if (iCharWidth == EFullWidthChar)
-                {
-                rtn = ETrue;
-                }
-            break;
-        default:
-            break;
-        }
-    return rtn;
-    }
-
-TBool CAknFepManager::IsOnlyFullWidthCharacterPermitted() const
-    {
-    CAknEdwinState* editorState = EditorState();
-    TUint permittedInputModes = editorState->PermittedInputModes();
-    TUint fullWidthPermitted = (EAknEditorFullWidthTextInputMode
-                              | EAknEditorFullWidthNumericInputMode
-                              | EAknEditorFullWidthKatakanaInputMode);
-    TUint fullWidthNotPermitted = ~fullWidthPermitted;
-    TBool isfullchar = ETrue;
-    if (permittedInputModes & fullWidthNotPermitted)
-        {
-        isfullchar = EFalse;
-        }
-
-    if (!(permittedInputModes & fullWidthPermitted))
-        {
-        isfullchar = EFalse;
-        }
-
-    return isfullchar;
-    }
-
-TBool CAknFepManager::IsOnlyHalfWidthCharacterPermitted() const
-    {
-    CAknEdwinState* editorState = EditorState();
-    TUint permittedInputModes;
-    if( editorState )
-        {
-        permittedInputModes= editorState->PermittedInputModes();
-        }
-    else
-        {
-        permittedInputModes = EAknEditorNumericInputMode;
-        }
-    TUint halfWidthNotPermitted = (EAknEditorFullWidthTextInputMode
-                                 | EAknEditorFullWidthNumericInputMode
-                                 | EAknEditorFullWidthKatakanaInputMode
-                                 | EAknEditorHiraganaKanjiInputMode
-                                 | EAknEditorHiraganaInputMode);
-
-    TUint halfWidthPermitted  = ~halfWidthNotPermitted;
-    TBool ishalfchar = ETrue;
-    if (permittedInputModes & halfWidthNotPermitted)
-        {
-        ishalfchar = EFalse;
-        }
-
-    if (!(permittedInputModes & halfWidthPermitted))
-        {
-        ishalfchar = EFalse;
-        }
-    if (permittedInputModes & EAknEditorTextInputMode)
-        {
-        ishalfchar = EFalse;
-        }
-    if (editorState && (editorState->Flags() & EAknEditorFlagLatinInputModesOnly))
-        {
-        ishalfchar = ETrue;
-        }
-    return ishalfchar;
-    }
-
-TBool CAknFepManager::IsHalfAndFullKatakanaPermitted() const
-    {
-    CAknEdwinState* editorState = EditorState();
-    TUint permittedInputModes = editorState->PermittedInputModes();
-    TUint katakanaInputMode = (EAknEditorKatakanaInputMode
-                              | EAknEditorFullWidthKatakanaInputMode);
-    TBool iskatakana = EFalse;
-    if ((permittedInputModes & katakanaInputMode) == katakanaInputMode)
-        {
-        iskatakana = ETrue;
-        }
-    return iskatakana;
-    }
-
-TBool CAknFepManager::IsHalfAndFullLatinPermitted() const
-    {
-    CAknEdwinState* editorState = EditorState();
-    TUint permittedInputModes = editorState->PermittedInputModes();
-    TUint latinInputMode = (EAknEditorHalfWidthTextInputMode
-                              | EAknEditorFullWidthTextInputMode);
-    TBool islatin = EFalse;
-
-    if ((permittedInputModes & latinInputMode) == latinInputMode)
-        {
-        islatin = ETrue;
-        }
-    return islatin;
-    }
-
-TBool CAknFepManager::IsHalfAndFullNumberPermitted() const
-    {
-    CAknEdwinState* editorState = EditorState();
-    TUint permittedInputModes = editorState->PermittedInputModes();
-    TUint numInputMode = (EAknEditorNumericInputMode
-                              | EAknEditorFullWidthNumericInputMode);
-    TBool isnum = EFalse;
-    if ((permittedInputModes & numInputMode) == numInputMode)
-        {
-        isnum = ETrue;
-        }
-
-    return isnum;
-    }
-
-TWidthChar CAknFepManager::CharacterWidth() const
-    {
-    return iCharWidth;
-    }
-
-CPtiEngine* CAknFepManager::PtiEngine() const
-    {
-    return iPtiEngine;
-    }
-
-void CAknFepManager::SetInlineEditingCursorVisibilityL(TBool aCursorVisibility)
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if ( SemiFepAwareTextEditor( ETrue ) )
-#else
-    if (iInputCapabilities.FepAwareTextEditor())
-#endif // RD_SCALABLE_UI_V2
-        {
-        iInputCapabilities.FepAwareTextEditor()->SetInlineEditingCursorVisibilityL(aCursorVisibility);
-        }
-    }
-
-TInt CAknFepManager::InputMode() const
-    {
-    return iMode;
-    }
-    
-TInt CAknFepManager::CangJieMode() const
-    {
-    TInt shareMode = iSharedDataInterface->CangJieMode();
-    TInt cangjieMode = shareMode + EPtiEngineNormalCangjieQwerty;
-    return cangjieMode;
-    }    
-
-TBool CAknFepManager::InputLanguageSupportsCaseChanges() const
-    {
-    return iLanguageCapabilities.iSupportsCase;
-    }
-
-TBool CAknFepManager::IsAbleScrollLatinPredictive() const
-    {
-    return iSharedDataInterface->ScrollLatinPredictiveCandidates();
-    }
-
-TText CAknFepManager::PreviousChar( TBool /*aContextSensitive*/ )
-    {
-    TBuf<ESingleCharacter> previousCharacter(ESingleCharacter);
-    previousCharacter.FillZ();
-
-    TCursorSelection curSel;
-    if ( IsFepAwareTextEditor() )
-        {
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel);
-        TInt lowerpos = curSel.LowerPos();
-        if(lowerpos > 0)
-            {
-            iInputCapabilities.FepAwareTextEditor()->
-                GetEditorContentForFep(previousCharacter, lowerpos-1, ESingleCharacter);
-            if (previousCharacter.Length())
-                return previousCharacter[0];
-            }
-        }
-    return NULL;
-    }
-
-TBool CAknFepManager::IsZWSCharacterPresent( TBool aLigaturePresent /* = EFalse*/ )
-    {
-    TBuf<3> previousCharacter;
-    previousCharacter.Zero();
-    TBool found = EFalse;
-    previousCharacter.FillZ();
-
-    TCursorSelection curSel;
-    if ( IsFepAwareTextEditor() )
-        {
-        MCoeFepAwareTextEditor* fepAwareTextEditor = 
-            iInputCapabilities.FepAwareTextEditor();
-        fepAwareTextEditor->GetCursorSelectionForFep(curSel);
-        TInt lowerpos = curSel.LowerPos();
-        if( lowerpos > 1 )
-            {
-            if( aLigaturePresent && lowerpos > 3 )
-                {
-                fepAwareTextEditor->
-                    GetEditorContentForFep(previousCharacter, 
-                                            lowerpos - 4, 2);
-                }
-            else
-                {
-                fepAwareTextEditor->
-                    GetEditorContentForFep(previousCharacter, 
-                                            lowerpos - 2, 2);
-                }
-            if( previousCharacter[0] == ZERO_WIDTH_SPACE
-                     || previousCharacter[1] == ZERO_WIDTH_SPACE )
-                {
-                found = ETrue;
-                }   
-            }
-        }
-    return found;
-    }
-
-TText CAknFepManager::NextChar()    
-    {
-    TBuf<ESingleCharacter> nextCharacter(ESingleCharacter);
-    nextCharacter.FillZ();
-
-    TCursorSelection curSel;
-    if ( IsFepAwareTextEditor() )
-        {
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(curSel);
-        TInt higherpos = curSel.HigherPos();
-        TInt maxLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-        if ( higherpos >= 0 && higherpos <= maxLength && maxLength >= 1 ) 
-            {
-            iInputCapabilities.FepAwareTextEditor()->
-                GetEditorContentForFep(nextCharacter, higherpos, ESingleCharacter);
-            if( nextCharacter.Length() )    
-                return nextCharacter[0];
-            }
-        }
-    return NULL;    
-    }
-    
-void CAknFepManager::FindStartOfWord(TInt& aAnchorPos) const
-    {
-    TBuf<ESingleCharacter> characterBuffer;
-    FOREVER
-        {
-        if (aAnchorPos<=0)
-            {
-            break; // start of editor
-            }
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(characterBuffer, 
-                                                                        aAnchorPos-1, 
-                                                                        ESingleCharacter);
-        if (!IsValidInLineCharacter(characterBuffer[0]))
-            {
-            break;
-            }
-        aAnchorPos--;
-        }
-    }
-
-void CAknFepManager::FindEndOfWord(TInt& aCursorPos) const
-    {
-    TBuf<ESingleCharacter> characterBuffer;
-    FOREVER
-        {
-        if (aCursorPos>=iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep())
-            {
-            break; // end of editor
-            }
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(characterBuffer, 
-                                                                        aCursorPos, 
-                                                                        ESingleCharacter);
-        if (!IsValidInLineCharacter(characterBuffer[0]))
-            {
-            break;
-            }
-        aCursorPos++;
-        }
-    }
-
-TBool CAknFepManager::CursorInsideWord()
-    {
-    TBuf<ESingleCharacter> characterBuffer;
-    TBool insideWord=ETrue;
-
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-    TInt cursorPos=iUncommittedText.iCursorPos;
-
-    if (cursorPos)
-        {
-        // check character before cursor
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(characterBuffer, 
-                                                                        cursorPos-1, 
-                                                                        ESingleCharacter);
-        if (characterBuffer.Length())
-			{
-            if (!IsValidInLineCharacter(characterBuffer[0]))
-                {
-                insideWord=EFalse;
-                }
-			}	
-        }
-    else // at start of editor
-        {
-        insideWord=EFalse;
-        }
-
-    if (insideWord && cursorPos<iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep())
-        {
-        // put character after cursor into buffer
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(characterBuffer, cursorPos,
-                                                                        ESingleCharacter);
-        if (characterBuffer.Length())
-			{
-            if (!IsValidInLineCharacter(characterBuffer[0]))
-                {
-                insideWord=EFalse;
-                }
-			}	
-        }
-    else // at end of editor
-        {
-        insideWord=EFalse;
-        }
-
-    return insideWord;
-    }
-
-void CAknFepManager::MoveCursorToStartOfWordL()
-    {
-    TInt anchorPos=iUncommittedText.iAnchorPos;
-    FindStartOfWord(anchorPos);
-    iUncommittedText.SetSelection(anchorPos, anchorPos);
-    iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-    }
-
-void CAknFepManager::MoveCursorToEndOfWordL()
-    {
-    TInt cursorPos=iUncommittedText.iCursorPos;
-    
-    if(!IsExtendedFlagSet(EExtendedFlagOkKeyPressOnCandidatePopup))    
-    	FindEndOfWord(cursorPos);
-    iUncommittedText.SetSelection(cursorPos, cursorPos);
-    iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-    }
-
-TKeyResponse CAknFepManager::HandleNaviEventOutsideInlineEditL(TUint aCode, 
-                                                               TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    if (TryHandleCommonArrowAndBackspaceFunctionalityL(aCode, response))
-        {
-        return response;
-        }
-    if (WesternPredictive())
-        {
-        response = HandlePredictiveNaviEventOutsideInlineEditL(aCode, aLength);
-        }
-
-    return response;
-    }
-
-TKeyResponse CAknFepManager::HandleWesternPredictiveArrowKeyL(TInt aCode, TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-    
-    if (IsFlagSet(EFlagLineFeedCharacter))
-        {
-        // This event will stop the multitapping timer for enter chr.
-        // just return.
-        return EKeyWasConsumed;                
-        }
-
-	TCursorSelection selection;
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(selection);
-    if(!IsMfneEditor() &&
-         ( iFepPluginManager->PluginInputMode() == EPluginInputModeItut) &&
-         selection.Length() > 0)
-        {
-        // If open virtual ITUT and highlight some chars
-        return EKeyWasConsumed;
-        }        
-    if (aCode == EKeyUpArrow || aCode == EKeyDownArrow)
-        {
-        ClearFlag(EFlagCompoundWord);
-        if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-            {
-            // moving out of an inline edit
-            TryRemoveNoMatchesIndicatorL();
-            UpdateCbaL(NULL);
-            // To rip off suggested word completion when user presses UP / DOWN arrow keys
-            if(IsAutoCompleteOn())
-           		{
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-           		
-           		RemoveSuggestedCompletionL();
-           		
-#else
-           		TInt tailLength = 0;
-           		iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-										&tailLength );
-           		if(tailLength > 0)
-           			{
-           			RemoveSuggestedAdvanceCompletionL();
-           			return EKeyWasConsumed;
-           			}
-#endif          	
-            	}
-            if (IsFlagSet(EFlagShiftKeyDepressed) || IsCcpuFlagSet(ECcpuStateHashDown))
-                {
-                CommitInlineEditL();
-                TryCloseUiL();
-                SimulateKeyEventL(EKeyF19);  // Asyncronous case update
-                // pass to editor for text selection.
-                response=EKeyWasNotConsumed;
-                }
-            }
-		if ((iInputCapabilities.FepAwareTextEditor() && !TryHandleTextSelectedNaviEventL(aCode, response)) && !IsFlagSet(EFlagShiftKeyDepressed))
-            {
-            if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-                {
-                ClearFlag(CAknFepManager::EFlagNoMatches);
-                TryRemoveNoMatchesIndicatorL();
-                CommitInlineEditL();
-                }
-            UpdateCbaL(NULL);
-
-            // simulate a designated key event to catch and check if we're inside a word
-            if (aCode == EKeyDownArrow)
-                {
-                SimulateKeyEventL(EKeyF22);
-                }
-            else
-                {
-                SimulateKeyEventL(EKeyF23);
-                }
-            // pass to editor for text selection.
-            response=EKeyWasNotConsumed;
-            }
-        else if (IsFlagSet(EFlagShiftKeyDepressed) || IsCcpuFlagSet(ECcpuStateHashDown))
-            {
-            // Need to update case indicator if text selection is made upwards.
-            SimulateKeyEventL(EKeyF19);
-            }
-        }
-    else // right or left
-        {
-        if (IsFlagSet(EFlagInsideInlineEditingTransaction))
-            {
-            // moving out of an inline edit
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                if(IsAutoCompleteOn())
-                	{
-                	if((aCode == EKeyLeftArrow && 
-                	    		CurrentInputDirectionality() == TBidiText::ELeftToRight) || 
-                	    (aCode == EKeyRightArrow && 
-                	    		CurrentInputDirectionality() == TBidiText::ERightToLeft))
-                		{
-                		RemoveSuggestedCompletionL();	
-                		}
-                	}
-#else
-            if(IsAutoCompleteOn())
-            	{
-                TInt tailLength = 0;
-            	iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-            	// In case the inline editing is ongoing and there is a word completion
-                // currently shown, the first backwards tap will remove the suggested 
-                // completion. 
-                if(tailLength > 0)
-	                {
-	                if (((CurrentInputDirectionality()==TBidiText::ERightToLeft) && aCode == EKeyLeftArrow) 
-	                	|| ((CurrentInputDirectionality()==TBidiText::ELeftToRight) && aCode == EKeyRightArrow ))
-	                    {
-					    iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate);
-					    TPtrC selectedWord = iPtiEngine->CurrentWord();
-                        UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-                        iPtiEngine->CommitCurrentWord();
-                        TryCloseUiL();
-                        // Asyncronous case update after the editor has handled the key
-                		SimulateKeyEventL(EKeyF19); 
-	                    response=EKeyWasConsumed;
-	                    }
-	                else if(((CurrentInputDirectionality()== TBidiText::ERightToLeft ) && aCode == EKeyRightArrow) 
-	                	|| ((CurrentInputDirectionality()== TBidiText::ELeftToRight) && aCode == EKeyLeftArrow )) 
-		                {
-	                    RemoveSuggestedAdvanceCompletionL();
-	                    response=EKeyWasConsumed;
-		                } 
-			           return response;   	
-	                }
-	                else if (!IsQwerty())
-		                {
-		                iPtiEngine->CommitCurrentWord();
-		                }
-				
-            	}
-#endif // RD_INTELLIGENT_TEXT_INPUT
-            TryRemoveNoMatchesIndicatorL();
-            UpdateCbaL(NULL);
-            if (IsFlagSet(EFlagShiftKeyDepressed) || IsCcpuFlagSet(ECcpuStateHashDown))
-                {
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                 if(IsAutoCompleteOn()) // To rip off suggested completion when shift key is pressed 
-                 	{
-                 	RemoveSuggestedCompletionL();
-                	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-                CommitInlineEditL();
-                TryCloseUiL();
-                SimulateKeyEventL(EKeyF19);  // Asyncronous case update
-                // pass to editor for text selection.
-                response=EKeyWasNotConsumed;
-                }
-            else
-                {
-                TWesternNaviEvent naviEvent = ELeftNaviEvent;
-                if (aCode == EKeyRightArrow)
-                    {
-                    naviEvent = ERightNaviEvent;
-                    }
-                // Find the visual left/right end of the current word
-                TTmDocPosSpec pos;
-                GetAvkonDefinedVisualLimitsOfSelection(
-                    iUncommittedText, naviEvent, pos, NULL );
-
-                if (IsCcpuFlagSet(ECcpuStateNewPredictiveWord))
-                    {
-                    // This is new predictive word which is being committed with arrow
-                    // key. Force ::TryCloseUiL to commit PtiEngie word to keep
-                    // frequency information in sync.
-                    SetCcpuFlag(ECcpuStataCommitPredictiveWord);
-                    }
-
-                TryCloseUiL();
-
-                // Position should be dis-ambiguated based on last navigation and direction of blocks.
-                AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( pos, naviEvent );
-
-                SetCursorPositionL( pos );
-                if (CursorInsideWord() && naviEvent == ERightNaviEvent)
-                {
-                    MoveCursorToEndOfWordL();
-                }
-
-                iCaseMan->UpdateCase(ENullNaviEvent);
-                response=EKeyWasConsumed;
-                }
-            }
-        else
-            {
-#ifndef RD_INTELLIGENT_TEXT_INPUT            
-            if ( iLanguageCapabilities.iInputLanguageCode == ELangThai ) // Without this, t9 goes inside words
-                {                               // That is not allowed in Thai
-                response = EKeyWasNotConsumed;
-                }
-            else
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            response = HandleNaviEventOutsideInlineEditL(aCode, aLength);
-            if (response == EKeyWasNotConsumed)
-                {
-                // moving over a space
-                if (aCode == EKeyLeftArrow && !IsFlagSet(EFlagShiftKeyDepressed))
-                    {
-                    iCaseMan->UpdateCase(ELeftNaviEvent);
-                    }
-                else if (!IsFlagSet(EFlagShiftKeyDepressed)) // EKeyRightArrow
-                    {
-                    iCaseMan->UpdateCase(ERightNaviEvent);
-                    }
-                }
-            else
-                iCaseMan->UpdateCase(ENullNaviEvent);
-            }
-        }
-    return response;
-    }
-
-TBool CAknFepManager::TryHandleTextSelectedNaviEventL(TInt aCode, TKeyResponse& response)
-    {
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-
-    if (!IsFlagSet(EFlagShiftKeyDepressed) && iUncommittedText.Length())
-        {
-        if (aCode == EKeyBackspace)
-            {
-            iCaseMan->UpdateCase(EBackspaceEvent);
-            response = EKeyWasNotConsumed;
-            }
-        else
-            {
-            TInt newCursorPos = iUncommittedText.HigherPos(); //default, right or down
-            if (aCode == EKeyLeftArrow || aCode == EKeyUpArrow)
-                {
-                newCursorPos = iUncommittedText.LowerPos();
-                }
-            iUncommittedText.SetSelection(newCursorPos, newCursorPos);
-            iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-
-            if (WesternPredictive())
-                {
-                if (CursorInsideWord())
-                    {
-                    if (aCode == EKeyLeftArrow || aCode == EKeyUpArrow)
-                        {
-                        MoveCursorToStartOfWordL();
-                        }
-                    else //right or down
-                        {
-                        MoveCursorToEndOfWordL();
-                        }
-                    }
-                iCaseMan->UpdateCase(ENullNaviEvent);
-                }
-            response = EKeyWasConsumed;
-            }
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-TBool CAknFepManager::TryHandleCommonArrowAndBackspaceFunctionalityL(TInt aCode, 
-                                                                     TKeyResponse& aResponse)
-    {
-    TBool keyHandled = ETrue;
-    if ( !IsFepAwareTextEditor() )
-        {
-        aResponse=EKeyWasNotConsumed;
-        return keyHandled;
-        }
-#ifdef RD_HINDI_PHONETIC_INPUT        
-	if(iLanguageCapabilities.iInputLanguageCode == KLangHindiPhonetic)
-		{
-		if (aCode == EKeyBackspace)
-        	{
-        	CommitInlineEditL();
-        	FepUI()->HandleKeyL(aCode, EShortKeyPress);
-        	}
-		if(IsFlagSet(CAknFepManager::EFlagNoMatches)) 
-			{
-			if(PreviousChar() == 0x003F && aCode != EKeyBackspace)
-				{
-				RemovePreviousCharacterL();		
-				}
-			ClearFlag(CAknFepManager::EFlagNoMatches);
-			FepUI()->ExpireMultitapTimer();
-			}
-		iPtiEngine->HandleCommandL(EPtiCommandBreakSyllable, NULL );
-		}
-#endif		
-    if (IsFlagSet(EFlagInsideMultitapInlineEditingTransaction))
-        {
-        FepUI()->ExpireMultitapTimer();
-
-        if (aCode == EKeyBackspace)
-            {
-            aResponse = EKeyWasNotConsumed; // let editor handle the move
-            }
-        else
-            {
-            aResponse = EKeyWasConsumed;
-            }
-        }
-    else
-        {
-        //selecting text
-        if (IsFlagSet(EFlagShiftKeyDepressed) || IsCcpuFlagSet(ECcpuStateCopy | ECcpuStateCut))
-            {
-            if (iShiftKeypressMonitor->IsActive())
-                {
-                ResetShiftKeyMonitorL();    //don't want edit menu
-                }
-            ClearFlag(EFlagQwertyShiftMode);
-            SimulateKeyEventL(EKeyF19);  // Asyncronous case update
-            aResponse = EKeyWasNotConsumed;
-            return keyHandled;
-            }
-
-        TCursorSelection currentEditorSelection;
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(currentEditorSelection);
-
-        TWesternNaviEvent naviEvent = ENullNaviEvent;
-
-        // Translate key code to internal navi-event
-        switch( aCode )
-            {
-            case EKeyUpArrow:
-                naviEvent = EUpNaviEvent;
-                break;
-            case EKeyDownArrow:
-                naviEvent = EDownNaviEvent;
-                break;
-            case EKeyRightArrow:
-                naviEvent = ERightNaviEvent;
-                break;
-            case EKeyLeftArrow:
-                naviEvent = ELeftNaviEvent;
-                break;
-            default: // just leave it as NULL
-                break;
-            }
-
-        if (currentEditorSelection.Length())
-            {
-            // we have text selected - set cursor to start/end of current selection
-            TTmDocPosSpec newPos;
-            aResponse = NavigateFromSelectionL( currentEditorSelection, naviEvent, newPos );
-            if ( aCode != EKeyBackspace && WesternPredictive() )
-                {
-                if (CursorInsideWord())
-                    {
-                    TBool rightToleftParagraph = IsRightToLeftParagraph(newPos);
-                    if ( (rightToleftParagraph && naviEvent == ELeftNaviEvent) ||
-                         (!rightToleftParagraph && naviEvent == ERightNaviEvent) )
-                        {
-                        MoveCursorToEndOfWordL();
-                        }
-                    else
-                        {
-                        MoveCursorToStartOfWordL();
-                        }
-                    }
-
-                }
-            }
-        else if (!(EditorState()->Flags() & EAknEditorFlagNoLRNavigation))
-            {
-            if ((naviEvent != ENullNaviEvent) && HandleLoopingInNaviEventL(naviEvent))
-                {
-                aResponse=EKeyWasConsumed;
-                }
-            else
-                {
-                if (iMode == ELatin)
-                    {
-                    // normal operation of Down/Up scroll keypress action.
-                    switch( aCode )
-                        {
-                        case EKeyUpArrow:
-                        case EKeyDownArrow:
-                            SimulateKeyEventL(EKeyF22);
-                            break;
-                        case EKeyRightArrow:
-                        case EKeyLeftArrow:
-                            {
-                            /*Hindi*/
-                            if( (TAknFepUiIndicInputManager :: IsIndicLangauge(
-                                      TLanguage(iLanguageCapabilities.iInputLanguageCode))) 
-                                 && IsZWSCharacterPresent() )
-                                {
-                                RemoveZWSCharacterL(EKeyLeftArrow); 
-                                }
-                            }
-                            break;
-                        default: // nothing
-                            break;
-                        }
-                    }
-                keyHandled = EFalse;
-                }
-            }
-        }
-
-    return keyHandled;
-    }
-
-/**
-* Routine handled navigation and also backspace events at "beginning" of document
-*
-*/
-TBool CAknFepManager::HandleLoopingInNaviEventL(TWesternNaviEvent aNaviEvent)
-    {
-    TBool looping = EFalse;
-    TBool eventHandled = EFalse;
-    TTmDocPosSpec newCursorPos;
-
-    // This routine may handle Left, Right and Backspace and nothing else
-    // Note that Up and Down cannot do any sort of document looping in FEP
-    if ( aNaviEvent != ELeftNaviEvent
-        && aNaviEvent != ERightNaviEvent
-        && aNaviEvent != EBackspaceEvent )
-        return eventHandled; // not consumed
-
-    TTmDocPosSpec pos = DocPos();
-    TBool rightToLeftParagraph = IsRightToLeftParagraph(pos);
-
-    TWesternNaviEvent incrementingNaviEvent = 
-                                          rightToLeftParagraph ? ELeftNaviEvent : ERightNaviEvent;
-    TWesternNaviEvent decrementingNaviEvent = 
-                                          rightToLeftParagraph ? ERightNaviEvent : ELeftNaviEvent;
-
-    if (aNaviEvent == decrementingNaviEvent)
-        {
-        // Abandon early if we are not in the first line.
-        if ( InFirstLineAndFormatted( pos ) )
-            {
-            TTmDocPosSpec startPos;
-            GetVisualDocStart( startPos );
-             if( AtVisualStart( pos, startPos ) )
-                {
-                TTmDocPosSpec endPos;
-                if ( !GetVisualDocEnd( endPos ) )
-                    {
-                    // End of document is not formatted. Value returned is just pos at DocLength.
-                    // So actually move the cursor there (this is guranteed to format the last line)
-                    // and the end End position is found a 2nd time.
-                    newCursorPos = endPos;
-                    SetCursorPositionL( newCursorPos );
-                    GetVisualDocEnd( endPos );
-                    }
-                newCursorPos = endPos;
-                looping = ETrue;
-                }
-            }
-        }
-    else if (aNaviEvent == incrementingNaviEvent )
-        {
-        if ( InLastLineAndFormatted( pos ) )
-            {
-            TTmDocPosSpec endPos;
-            GetVisualDocEnd( endPos );
-            if( AtVisualEnd( pos, endPos, 
-                             iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep() ) )
-                {
-                TTmDocPosSpec startPos;
-                if ( !GetVisualDocStart( startPos ) )
-                    {
-                    // Document was not formatted at docPos(0).  So actually move the cursor
-                    // to that line at least, and then ask for the start pos again.
-                    newCursorPos = startPos;
-                    SetCursorPositionL( newCursorPos );
-                    GetVisualDocStart( startPos );
-                    }
-                newCursorPos = startPos;
-                looping = ETrue;
-                }
-            }
-        }
-    else if ( aNaviEvent == EBackspaceEvent )
-        {
-        // Deletion is always logical, so the condition is simply to test the logical pos.
-        if ( pos.iPos ==0 )
-            {
-            eventHandled = ETrue;
-            }
-        }
-
-    if (looping)
-        {
-        // This takes language issues into account, adjusting the cursor position:
-        AdjustPosSpecForInputLanguageAfterDocumentLoop( newCursorPos, aNaviEvent, 
-                                                        (aNaviEvent == incrementingNaviEvent) );
-        SetCursorPositionL( newCursorPos );
-        eventHandled = ETrue;
-        }
-    return eventHandled;
-    }
-
-void CAknFepManager::TransferFepStateToEditorL( TBool aFnLockSync )
-    {
-    // If editor in Fnlock state, need to set actual input mode
-    // because, in case of qwerty keypad alphanumeric editor there is no numeric mode
-    // numeric mode handle as FnLock
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-   if( aFnLockSync && iQwertyInputMode && iFnKeyManager && iFnKeyManager->FnKeyState()==CAknFepFnKeyManager::EFnKeyLock)
-        {
-        EditorState()->SetCurrentInputMode(EditorModeFromFepMode(ENumber));
-        // Indicator should not be reset, if menu is displaying from editor.
-        if(!IsFlagSet(EFlagForegroundUIComponentVisible | EFlagMenuPaneVisible))
-            iFnKeyManager->ClearFnKeyState(); 
-        }
-    else
-        {
-#endif
-        EditorState()->SetCurrentInputMode(EditorModeFromFepMode(iMode));
-        
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        }
-   if(iFnKeyManager && iFnKeyManager->FnKeyState()!=CAknFepFnKeyManager::EFnKeyLock)
-       iFnKeyManager->ClearFnKeyState();       
-
-#endif
-
-    
-    if ((iMode == ELatin && iWesternPredictive &&
-        IsFlagSet(EFlagInsideInlineEditingTransaction)) 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        ||(IsLanguageSupportPrediction() && IsFlagSet(EFlagInsideInlineEditingTransaction))
-#endif //RD_INTELLIGENT_TEXT_INPUT
-		)
-        {
-        EditorState()->SetInlineEditSpan(iUncommittedText);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if (IsFlagSet(CAknFepManager::EFlagNoMatches))
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        TryRemoveNoMatchesIndicatorL();
-        UpdateCbaL(NULL);
-        }
-    else
-        {
-        EditorState()->SetInlineEditSpan(TCursorSelection(0,0));
-        }
-    EditorState()->SetCurrentCaseWithNoInitialisation(iCaseMan->CurrentCase());
-    if ( IsFlagSet( EFlagSupressAutoUpdate ) )
-        {
-        EditorState()->SetFlags( EditorState()->Flags() | EFlagSupressAutoUpdate );
-        }
-    else
-        {
-        EditorState()->SetFlags( EditorState()->Flags() & ~EFlagSupressAutoUpdate );
-        }
-    SetQwertyModeToInputcapbility();
-    }
-
-MAknFepManagerInterface* CAknFepManager::FepUI() const
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if ( iFepFullyConstructed && ( iFepPluginManager->PluginInputMode() != EPluginInputModeNone ) )
-        {
-        if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut)
-            {
-            return iFepPluginManager->CurrentFepInputUI() ?
-                iFepPluginManager->CurrentFepInputUI() : iCurrentFepUI;
-            }
-        if ( iFepPluginManager->EnableITIOnFSQ() )
-            {
-            return iCurrentFepUI;
-            }
-        return iFepPluginManager->CurrentPluginInputFepUI();
-        }
-#endif        
-    return iCurrentFepUI;
-    }
-
-void CAknFepManager::LaunchLanguagesPopupListL(TBool aLaunchedByTouchWin)
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if( iFepPluginManager->PluginInputMode() != EPluginInputModeNone &&
-        iFepPluginManager->PluginInputMode() != EPluginInputModeItut
-        // Add this condition for correction of dim features on FSQ
-        && iFepPluginManager->PluginInputMode() != EPluginInputModeFSQ )
-        {
-        iFepPluginManager->LaunchPenInputLanguageSelectionL(aLaunchedByTouchWin);
-        return;
-        }
-#endif //RD_SCALABLE_UI_V2
-       
-    CArrayFixFlat<TInt>* languages = 
-        new( ELeave )CArrayFixFlat<TInt>( ELanguageArrayGranularity );
-    CleanupStack::PushL( languages );
-    iPtiEngine->GetAvailableLanguagesL( languages );
-
-    // Create a list of languages for the dialog
-    CDesCArrayFlat* languagesList = 
-        new( ELeave )CDesCArrayFlat( ELanguageArrayGranularity );
-    CleanupStack::PushL( languagesList );
-
-    // Item format should be "<icon_index>\t<item_text>"
-    _LIT( KIconIndexSelected,    "0\t" );
-    _LIT( KIconIndexNotSelected, "\t" );// No icon
-    
-    MPtiLanguage* lang = NULL;
-    TInt  currentLanguage = iSharedDataInterface->InputTextLanguage();
-    TInt selectedLanguageIndex = 0;
-    
-    for (TInt ii=0; ii < languages->Count(); ii++)
-        {
-        lang = iPtiEngine->GetLanguage( ( *languages )[ii] );
-        if (!lang)
-            {
-            User::Leave( KErrCorrupt );
-            }
-        // Buffer should contain both tabulator string and localized name:
-        HBufC* langStrBuf = HBufC::NewL( lang->LocalizedName().Length() + 3 );
-        CleanupStack::PushL( langStrBuf );
-        
-        TPtr langStrPtr = langStrBuf->Des();
-
-        // If language is current language - use selected icon in lbx:
-        if( lang->LanguageCode() == currentLanguage )
-            {
-            langStrPtr.Append( KIconIndexSelected );
-            selectedLanguageIndex = ii;
-            }
-        else
-            {
-            langStrPtr.Append( KIconIndexNotSelected );    
-            }
-        langStrPtr.Append( lang->LocalizedName() );
-        languagesList->AppendL( langStrPtr );
-        CleanupStack::PopAndDestroy( langStrBuf );
-        }
-
-    // Add icons to the listbox:
-    CArrayPtr<CGulIcon>* icons = new( ELeave ) CArrayPtrFlat<CGulIcon>(10);
-    CleanupStack::PushL( icons );
-    LoadIconL( icons, EMbmAvkonQgn_prop_sub_current, 
-               EMbmAvkonQgn_prop_sub_current_mask );
-
-    TInt index = 0;
-    SetFlag( EFlagForegroundUIComponentVisible );
-    CleanupStack::Pop( icons );	// iUiInterface->LaunchListPopupL takes ownership immediately
-#ifdef RD_SCALABLE_UI_V2 
-    /* tp teleca fix 17.9.2009 to IKIM-7VK8GG*/
-    /*if( iFepFullyConstructed && iFepPluginManager)
-            {
-            iFepPluginManager->SetMenuState();            
-            }*/
-    // tp teleca fix end
-#endif              
-    // Fire up the dialog
-#ifdef RD_SCALABLE_UI_V2
-    iCancelPopupInQwerty = aLaunchedByTouchWin;
-#endif //RD_SCALABLE_UI_V2
-    TUid fepUid = CCoeEnv::Static()->FepUid();
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-    TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_LANGUAGES_QUERY, index, 
-                                                      selectedLanguageIndex, languagesList, icons);
-#ifdef RD_SCALABLE_UI_V2
-    iCancelPopupInQwerty = EFalse;
-#endif //RD_SCALABLE_UI_V2    
-    PrepareFepAfterDialogExitL(fepUid);
-    CleanupStack::PopAndDestroy( languagesList );
-
-    if(returnValue == EAknSoftkeyOk)
-        {
-        // Selected item index from the languages array
-        HandleChangeInFocusL();
-
-        // The user has changed language and the local language is not used any more.
-        iLanguageCapabilities.iLocalInputLanguageInUse = EFalse;
-        if (EditorState())
-            {
-            EditorState()->SetLocalLanguage( ELangTest );
-            }
-
-        TBool westernPredictiveInUse = WesternPredictive();
-
-// Truncate autocompletion portion on change of writing language
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-		RemoveSuggestedAdvanceCompletionL();
-#endif // RD_INTELLIGENT_TEXT_INPUT   
-        //Hindi Change Bug Fix
-        iSharedDataInterface->SetInputTextLanguage(languages->At(index));
-        CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange);
-        ChangeInputLanguageL(languages->At(index));           
-        SetFlag( EFlagNewSharedDataInputLanguage | EFlagNewSharedDataInputMode );
-	  	// This pice of code TSW Fute error fixing.
-        // Display the confirmation msg if the dictionary is not available for
-        // Current language.
-#ifdef RD_INTELLIGENT_TEXT_INPUT         
-        // Display the confirmation msg only for Western languages
-        if (!IsChineseInputLanguage())
-        	{
-	        if (!IsLanguageSupportPrediction())
-	        	{
-	        	LaunchConfirmationNoteL(R_AVKON_T9_NOTE_NO_AVAILABLE);
-	        	}     
-        	}
-#endif
-        
-          
-        }
-    CleanupStack::PopAndDestroy( languages );
-    }
-
-void CAknFepManager::LaunchRecognitionWithDictionaryPopupListL()
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if( iFepPluginManager && (iFepPluginManager->PluginInputMode() == EPluginInputModeHwr) )
-        {
-        iFepPluginManager->LaunchPenInputRecognitionWithDictionarySelectionL();
-        return;
-        }
-#endif //RD_SCALABLE_UI_V2
-    }
-
-void CAknFepManager::LoadIconL( CArrayPtr<CGulIcon>* aIcons, 
-                                TInt aBitmapId, 
-                                TInt aMaskId )
-    {
-    CGulIcon* icon = CGulIcon::NewLC();
-    CFbsBitmap* bitmap = 0;
-    CFbsBitmap* mask = 0;
-    AknIconUtils::CreateIconL(  bitmap, mask, KAvkonBitmapFile, aBitmapId, aMaskId );
-    icon->SetBitmap( bitmap );
-    icon->SetMask( mask );
-    aIcons->AppendL( icon );
-    CleanupStack::Pop( icon );
-    }
-
-
-TBool CAknFepManager::IsInputModeAvailable(TInt aMode) const
-    {
-    TBool isAvailable = ETrue;
-    const TInt inputLanguage = iLanguageCapabilities.iInputLanguageCode;
-    switch (aMode)
-        {
-        case ELatin:
-            isAvailable = !( ( inputLanguage == ELangPrcChinese ) &&
-                (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes));
-            break;
-        case EPinyin:
-            isAvailable = ( inputLanguage == ELangPrcChinese );
-            break;
-        case EStroke:
-            isAvailable = ( inputLanguage == ELangPrcChinese || 
-                inputLanguage == ELangHongKongChinese || 
-                inputLanguage == ELangTaiwanChinese);
-            break;
-        case ECangJie:
-            {
-            isAvailable = ( ( inputLanguage == ELangHongKongChinese ) &&
-                          iQwertyInputMode );
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD            
-            isAvailable = isAvailable && (EPtiKeyboardHalfQwerty != KeyboardLayout()); 
-#endif //__HALF_QWERTY_KEYPAD
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            }
-            
-            break;
-        case EZhuyin:
-            isAvailable = ( inputLanguage == ELangTaiwanChinese );
-            break;
-        case EPRCFind:
-            isAvailable = ( ( inputLanguage == ELangPrcChinese ) &&
-                (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes));
-            break;
-        case EZhuyinFind:
-            isAvailable = ( ( inputLanguage == ELangTaiwanChinese ) &&
-                (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes));
-            break;
-        case EStrokeFind:
-            isAvailable = ( ( inputLanguage == ELangHongKongChinese ) &&
-                (iAknEditorFlags & EAknEditorFlagForceTransparentFepModes));
-            break;
-        case EHiraganaKanji:
-            isAvailable = (inputLanguage == ELangJapanese);
-            break;
-        case EKatakana:
-            isAvailable = (inputLanguage == ELangJapanese );
-            break;
-        case EHindi:
-            isAvailable = (inputLanguage == ELangHindi );
-            break;
-        case EHangul:
-            isAvailable = (inputLanguage == ELangKorean );
-            break;
-        case ENativeNumber:
-            isAvailable = (inputLanguage == ELangHindi 
-                || inputLanguage == ELangArabic 
-                || inputLanguage == ELangUrdu
-                || inputLanguage == ELangFarsi/*
-                || ( inputLanguage == ELangThai && iFepPluginManager && 
-                     iFepPluginManager->PluginInputMode() != EPluginInputModeItut &&
-                     iFepPluginManager->PluginInputMode() != EPluginInputModeNone)*/ );
-        default:
-            break;
-        }
-    return isAvailable;
-    }
-
-TInt CAknFepManager::NewInputModeAfterLanguageChange() const
-    {
-    TInt inputMode = 0;
-    switch (iLanguageCapabilities.iInputLanguageCode)
-        {
-        case ELangPrcChinese:
-            if ( iAknEditorFlags & EAknEditorFlagForceTransparentFepModes )
-                {
-                inputMode = ELatin; // EPRCFind from hashkey loop
-                }
-            else
-                {
-                inputMode = EPinyin;
-                }
-            break;
-        case ELangHongKongChinese:
-            if ( iAknEditorFlags & EAknEditorFlagForceTransparentFepModes )
-                {
-                inputMode = EStrokeFind;
-                }
-            else
-                {
-                TInt sharedDataMode = iSharedDataInterface->InputMode();
-	            if (iQwertyInputMode && 
-	            	sharedDataMode == ECangJie)
-	            	{
-	            	inputMode = ECangJie;
-	            	}
-	            else
-	            	{
-	            	inputMode = EStroke;
-	            	}
-                }
-            break;
-        case ELangTaiwanChinese:
-            if ( iAknEditorFlags & EAknEditorFlagForceTransparentFepModes )
-                {
-                inputMode = EZhuyinFind;
-                }
-            else
-                {
-                inputMode = EZhuyin;
-                }
-            break;
-        case ELangJapanese:
-            inputMode = EHiraganaKanji;
-            break;
-        case ELangKorean:
-            inputMode = EHangul;
-            break;
-        default:
-            inputMode = ELatin;
-            break;
-        }
-    return inputMode;
-    }
-
-void CAknFepManager::SetInputLanguageCapabilities(const TInt aInputLanguage)
-    {
-    iLanguageCapabilities.iInputLanguageCode = aInputLanguage;
-
-    if ( aInputLanguage == ELangArabic || aInputLanguage == ELangHebrew || 
-         aInputLanguage == ELangFarsi  || aInputLanguage == ELangUrdu )
-        {
-        iLanguageCapabilities.iSupportsCase = EFalse;
-        iLanguageCapabilities.iRightToLeftLanguage = ETrue;
-        SetCursorTypeForInputDirection(EFalse);
-        }
-    else
-        {
-        /*Hindi*/
-        if ( aInputLanguage == ELangThai 
-        || (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(aInputLanguage)))
-        ) 
-            {
-            iLanguageCapabilities.iSupportsCase = EFalse;
-            }
-        else
-            {
-            iLanguageCapabilities.iSupportsCase = ETrue;
-            }
-        iLanguageCapabilities.iRightToLeftLanguage = EFalse;
-        SetCursorTypeForInputDirection(ETrue);
-        }
-
-    TLanguage uiLanguage = User::Language();
-    iLanguageCapabilities.iArabicIndicDigitsAllowed = 
-             ( aInputLanguage == ELangArabic || uiLanguage == ELangArabic);
-    iLanguageCapabilities.iEasternArabicIndicDigitsAllowed = ( 
-        ( aInputLanguage == ELangUrdu || uiLanguage == ELangUrdu ) ||
-        ( aInputLanguage == ELangFarsi|| uiLanguage == ELangFarsi ) );
-    /*Hindi*/
-    iLanguageCapabilities.iIndicDigitsAllowed =  
-             ( (TAknFepUiIndicInputManager :: IsIndicDigitsSupported(TLanguage(aInputLanguage))) );
-    UpdateLocalDigitMode();
-
-    MAknFepManagerInterface* fepUI = iLangMan->GetFepUI(ELatin, iCharWidth, ETrue);
-    MPtiLanguage* ptiLanguage = iPtiEngine->GetLanguage(fepUI->SupportLanguage(ELatin));
-    if (ptiLanguage) // can be NULL in some uncommon situations, see TAVN-6SWB4Z
-        {
-        iLanguageCapabilities.iSupportsWesternPredictive = 
-                                           ptiLanguage->HasInputMode(EPtiEnginePredictive);
-        // tp teleca change Korean lang does not support predictive
-        // and we want to disable predictive even with local editors
-        if(/*IsKoreanInputLanguage()*/GetInputLanguageFromSharedDataInterface() == ELangKorean )
-            {
-            iLanguageCapabilities.iSupportsWesternPredictive = EFalse;
-            }
-        
-        
-        // tp teleca change end
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // Predictive QWERTY (XT9) changes ---->
-        iLanguageCapabilities.iSupportsWesternQwertyPredictive = 
-                                           ptiLanguage->HasInputMode(EPtiEngineQwertyPredictive );
-        if ( GetInputLanguageFromSharedDataInterface() == ELangKorean )
-            {
-            iLanguageCapabilities.iSupportsWesternQwertyPredictive = EFalse;            
-            }
-        
-        // Predictive QWERTY (XT9) changes <----
-#ifdef __HALF_QWERTY_KEYPAD
-		iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive = ptiLanguage->HasInputMode(EPtiEngineHalfQwertyPredictive );
-#endif         
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        }
-
-    if (!iLanguageCapabilities.iSupportsWesternPredictive 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        && !iLanguageCapabilities.iSupportsWesternQwertyPredictive 
-        // Predictive QWERTY changes
-#ifdef __HALF_QWERTY_KEYPAD
-		&& !iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive 
-#endif //__HALF_QWERTY_KEYPAD        
-#endif //RD_INTELLIGENT_TEXT_INPUT
-        ) // Predictive QWERTY changes
-        {
-        SetWesternPredictive(EFalse);
-        }
-    }
-
-TInt CAknFepManager::SubstituteSublanguageId(const TInt aUiLanguage) const
-    {
-    return DefaultInputLanguageFromUILanguage(aUiLanguage);
-    }
-
-TTmDocPosSpec CAknFepManager::DocPos()
-    {
-    TTmDocPosSpec docPos = TTmDocPosSpec();
-    TTmDocPos rawDocPos;
-    TBool gotPos = EFalse;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-        docNavi->GetDocPos(rawDocPos);
-        gotPos = ETrue;
-    	}
-    else
-    	{
-	    CTextView* textView = TextView();
-	    if (textView)
-	        {
-	        TextView()->GetCursorPos(rawDocPos);
-	        gotPos = ETrue;
-	        }
-    	}
-    if (gotPos)
-    	{
-        docPos.iPos = rawDocPos.iPos;
-        TTmDocPosSpec::TType docPosType = 
-                      rawDocPos.iLeadingEdge ? TTmDocPosSpec::ELeading : TTmDocPosSpec::ETrailing;
-        docPos.iType = docPosType;
-        }
-    return docPos;
-    }
-
-/**
-* This method needs EditorState() to exist
-*
-*/
-CTextView* CAknFepManager::TextView() const
-    {
-    if (EditorState())
-        {
-        CAknEdwinFormAccessor* formAccessor = EditorState()->FormAccessor();
-        if (formAccessor)
-            {
-            return formAccessor->GetTextView();
-            }
-        }
-    return NULL;
-    }
-
-CTextLayout* CAknFepManager::TextLayout() const
-    {
-    if( EditorState() )
-        {
-        CAknEdwinFormAccessor* formAccessor = EditorState()->FormAccessor();
-        if (formAccessor)
-            {
-            return formAccessor->GetTextLayout();
-            }
-        }
-    return NULL;
-    }
-    
-CPlainText* CAknFepManager::PlainText() const
-    {
-    return iUiInterface->PlainText(EditorState());
-    }
-
-/**
-* Checks if the paragraph containing aPos is Right to left.
-* This routine will return nonsense if
-*   - TextLayout() does not return a pointer
-*   - the position passed is not in the formatted region
-*
-* Note, the return value from FindDocPos is thrown away
-*/
-TBool CAknFepManager::IsRightToLeftParagraph(TTmDocPosSpec aPos) const
-    {
-    TTmPosInfo2 posInfo;
-    TTmLineInfo lineInfo;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	docNavi->FindDocPos(aPos, posInfo, lineInfo);
-    	}
-	else
-		{
-	    CTextLayout* textLayout = TextLayout();
-	    if (textLayout)
-	        {
-	        textLayout->TagmaTextLayout().FindDocPos(aPos, posInfo, lineInfo);
-	        }
-		}
-		
-    return lineInfo.iFlags & TTmLineInfo::EParRightToLeft;
-    }
-
-
-void CAknFepManager::FindAdjacentChunks(const TTmDocPosSpec& aPos,
-                                        CTmTextLayout::TTmChunkDescription& aLeft, 
-                                        CTmTextLayout::TTmChunkDescription& aRight) const
-    {
-    aLeft.iStart = -1;
-    aLeft.iEnd = -1;
-    aLeft.iRightToLeft = EFalse;
-    aRight.iStart = -1;
-    aRight.iEnd = -1;
-    aRight.iRightToLeft = EFalse;
-
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	docNavi->FindAdjacentChunks(aPos, aLeft, aRight);
-    	}
-    else
-    	{
-    CTextLayout* textLayout = TextLayout();
-    if (textLayout)
-        {
-        textLayout->TagmaTextLayout().FindAdjacentChunks(aPos, aLeft, aRight);
-        }
-    	}
-    }
-
-
-TBool CAknFepManager::GetNextVisualRightCharacter( TInt& aPosition )
-    {
-    TTmDocPosSpec pos = DocPos();
-    TTmPosInfo2 info;
-    TBool nextPositionFound = EFalse;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	nextPositionFound = docNavi->GetNextVisualCursorPos(pos, info, EFalse);
-    	}
-    else
-    	{
-	    CTextLayout* textLayout = TextLayout();
-	    if (textLayout)
-	        {
-	        nextPositionFound = textLayout->TagmaTextLayout().GetNextVisualCursorPos(pos, 
-                                                                                   info, 
-                                                                                   EFalse);
-	        }
-        }
-    if (nextPositionFound)
-        {
-        aPosition = info.iDocPos.iPos;
-
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-        FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-        if ( !rightChunk.iRightToLeft )
-            {
-            aPosition -= 1;
-            }
-        }
-    return nextPositionFound;
-    }
-
-TBool CAknFepManager::GetNextVisualLeftCharacter( TInt& aPosition )
-    {
-    TTmDocPosSpec pos = DocPos();
-    TTmPosInfo2 info;
-    TBool nextPositionFound = EFalse;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	nextPositionFound = docNavi->GetNextVisualCursorPos(pos, info, ETrue);
-    	}
-    else
-    	{
-	    CTextLayout* textLayout = TextLayout();
-	    if (textLayout)
-	        {
-	        nextPositionFound = TextLayout()->TagmaTextLayout().GetNextVisualCursorPos(pos, 
-                                                                                     info, 
-                                                                                     ETrue);
-	        }
-        }
-    if (nextPositionFound)
-        {
-        aPosition = info.iDocPos.iPos;
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-        FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-        if ( leftChunk.iRightToLeft )
-            {
-            aPosition -= 1;
-            }
-        if (iLanguageCapabilities.iInputLanguageCode == ELangVietnamese)
-            {
-            aPosition = pos.iPos -1;
-            }
-        }
-    return nextPositionFound;
-    }
-
-void CAknFepManager::FindVisualRightOfWord(TInt& aPosition)
-    {
-    TTmDocPosSpec pos = DocPos();
-    CTmTextLayout::TTmChunkDescription leftChunk;
-    CTmTextLayout::TTmChunkDescription rightChunk;
-    FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-    if ( rightChunk.iRightToLeft )
-        {
-        FindStartOfWord(aPosition);
-        }
-    else
-        {
-        FindEndOfWord(aPosition);
-        }
-    }
-
-void CAknFepManager::FindVisualLeftOfWord(TInt& aPosition)
-    {
-    TTmDocPosSpec pos = DocPos();
-    CTmTextLayout::TTmChunkDescription leftChunk;
-    CTmTextLayout::TTmChunkDescription rightChunk;
-    FindAdjacentChunks(pos, leftChunk, rightChunk);
-
-    if ( leftChunk.iRightToLeft)
-        {
-        FindEndOfWord(aPosition);
-        }
-    else
-        {
-        FindStartOfWord(aPosition);
-        }
-    }
-
-
-
-TBool CAknFepManager::GetVisualDocStart( TTmDocPosSpec& aPos) const
-    {
-    // Set up the initial try as leading to the first logical character
-    // It is a requirement that this position is at least in the first line
-    TTmDocPosSpec pos(0, TTmDocPosSpec::ELeading);
-
-    // Need to record if we are in aleft to right paragraph or not
-    TBool leftToRightParagraph = !IsRightToLeftParagraph(pos);
-
-    TBool success(EFalse);
-    CTextLayout* textLayout = TextLayout();
-    TTmDocPosSpec docPos;
-    if (AknFepDocumentNavigation() || textLayout)
-        {
-//      This was written because Tagma's LineExtreme() method did not seem to work
-        success = GetAknFepLineExtreme( pos, !leftToRightParagraph, docPos );
-        }
-
-    if (success)
-        aPos = docPos;
-    else // Possible cleanup; action for when there is insufficient information
-        {
-        aPos.iPos = 0;
-        aPos.iType = TTmDocPosSpec::ELeading;
-        }
-
-    return success;
-    }
-
-TBool CAknFepManager::GetVisualDocEnd( TTmDocPosSpec& aPos) const
-    {
-    TInt docLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-
-    // Set up the initial try as trailing after the last logical character
-    // It is a requirement that this position is at least in the last line
-    TTmDocPosSpec pos(docLength, TTmDocPosSpec::ETrailing);
-
-    // Need to record if we are in a left to right paragraph or not
-    TBool leftToRightParagraph = !IsRightToLeftParagraph(pos);
-
-    TBool success(EFalse);
-    CTextLayout* textLayout = TextLayout();
-    TTmDocPosSpec docPos;
-    if (AknFepDocumentNavigation() || textLayout)
-        {
-        // This was written because Tagma's LineExtreme() method did not seem to work
-        success = GetAknFepLineExtreme( pos, leftToRightParagraph, docPos );
-        }
-
-    if (success)
-        aPos = docPos;
-    else // Possible cleanup; action for when there is insufficient information
-        {
-        aPos.iPos = docLength;
-        aPos.iType = TTmDocPosSpec::ETrailing;
-        }
-    return success;
-    }
-
-
-TBool CAknFepManager::GetAknFepLineExtreme( const TTmDocPosSpec& aPos, TBool aToRight,
-        TTmDocPosSpec& aExtreme) const
-    {
-    TBool success(EFalse);
-
-    TTmPosInfo2 posInfo;
-    TTmLineInfo lineInfo;
-    TBool found = EFalse;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	found = docNavi->FindDocPos(aPos, posInfo, lineInfo);
-    	}
-    else
-    	{
-	    CTextLayout* textLayout = TextLayout();
-	    if ( textLayout )
-	        {
-	        found = textLayout->TagmaTextLayout().FindDocPos(aPos, posInfo, lineInfo);
-	        }
-    	}
-
-    if ( found )
-        {
-        // Make a selection of the line info.  Cursor first, Anchar 2nd:
-        TCursorSelection theWholeLine( lineInfo.iEnd-1, lineInfo.iStart );
-
-        TWesternNaviEvent event;
-        if ( aToRight )
-            event = ERightNaviEvent;
-        else
-            event = ELeftNaviEvent;
-
-        GetAvkonDefinedVisualLimitsOfSelection( theWholeLine, event, aExtreme, NULL );
-        success = ETrue;
-        }
-
-    return success;
-    }
-
-
-/**
-* This routine analyses a selection (Does not have to be a real selection, but the datastructure
-* is used as input) to find its visual start or end, according to the passed parameter
-* The algo used is:
-* - First find the top line of the selection.
-* - Then find the bottom line of the selection.
-* - Look at the two lines' directionality (from the paragraph they belong to) and decide what the overall
-* directionality of the selection is.  Thus right/left can be translated to increment/decrement.
-* (Note that Up is always decrement; down is always increment). So that allows the key actions to be
-* correctly grouped, and allows it to be determined which keys act from the top or the bottom line
-* (Decrement always acts from the top line; Increment always acts from the bottom line)
-*
-* - When the keys are handled, the action is again translated back to right/left according to the key-
-* grouping and whether you are acting from the top line or from the bottom line.  Eg, decrement in RTL
-* line is visually to the Right.
-* - the appropriate "ExtremePos" API is called passing in the position on the line in which we are acting
-*
-*/
-void CAknFepManager::GetAvkonDefinedVisualLimitsOfSelection(
-    const TCursorSelection& aSelection,
-    TWesternNaviEvent aEvent,
-    TTmDocPosSpec& aLimitPos,
-    TWesternNaviEvent* aEffectiveRightOrLeftEvent ) const
-    {
-    // in case an irrelvant event is sent, initialize aLimitPos to something safe
-    aLimitPos.iPos = 0;
-    aLimitPos.iType = TTmDocPosSpec::ELeading;
-
-    TTmDocPosSpec lowLogicalPos( aSelection.LowerPos(), TTmDocPosSpec::ELeading );
-    TTmDocPosSpec highLogicalPos( aSelection.HigherPos(), TTmDocPosSpec::ETrailing );
-
-    // this records what the resulting Right/left direction (for optional return)
-    TWesternNaviEvent effectiveEvent = aEvent;
-
-    // Get line and paragraph of the lower limit of the selection:
-    TTmPosInfo2 posInfo;
-    TTmLineInfo lineInfo;
-    TBool lowIsRightToLeft;
-    TBool highIsRightToLeft;
-    TBool layoutExists = EFalse;
-    
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	docNavi->FindDocPos(lowLogicalPos, posInfo, lineInfo);
-        lowIsRightToLeft = lineInfo.iFlags & TTmLineInfo::EParRightToLeft;
-    	docNavi->FindDocPos(highLogicalPos, posInfo, lineInfo);
-        highIsRightToLeft = lineInfo.iFlags & TTmLineInfo::EParRightToLeft;
-        layoutExists = ETrue;
-    	}
-    else
-    	{
-	    CTextLayout* textLayout = TextLayout();
-	    if (textLayout)
-	        {
-	        textLayout->TagmaTextLayout().FindDocPos(lowLogicalPos, posInfo, lineInfo);
-	        lowIsRightToLeft = lineInfo.iFlags & TTmLineInfo::EParRightToLeft;
-	        textLayout->TagmaTextLayout().FindDocPos(highLogicalPos, posInfo, lineInfo);
-	        highIsRightToLeft = lineInfo.iFlags & TTmLineInfo::EParRightToLeft;
-	        layoutExists = ETrue;
-	        }
-    	}
-        
-    if (layoutExists)
-    	{
-        // Decide on the net directionality. This if looks a bit laboured, but it
-        // exhibits the Averell policy.
-        TBool netDirectionIsRightToLeft(EFalse);
-        if ( lowIsRightToLeft == highIsRightToLeft )
-            netDirectionIsRightToLeft = lowIsRightToLeft;
-        else
-            netDirectionIsRightToLeft = lowIsRightToLeft;// ambiguous - Take first paragraph
-
-        if ( netDirectionIsRightToLeft )
-            switch ( aEvent )
-            {
-            case ELeftNaviEvent:
-            case EDownNaviEvent:
-                effectiveEvent = ELeftNaviEvent;
-                aLimitPos = LeftVisualExtremePos( highLogicalPos, lowLogicalPos.iPos, 
-                                                  highLogicalPos.iPos );
-                break;
-            case ERightNaviEvent:
-            case EUpNaviEvent:
-                effectiveEvent = ERightNaviEvent;
-                aLimitPos = RightVisualExtremePos(lowLogicalPos, lowLogicalPos.iPos, 
-                                                  highLogicalPos.iPos );
-                break;
-            default:
-            // No action. Only the events above are handled.
-                break;
-            }
-        else
-            switch (aEvent)
-            {
-            case ELeftNaviEvent:
-            case EUpNaviEvent:
-                effectiveEvent = ELeftNaviEvent;
-                aLimitPos = LeftVisualExtremePos( lowLogicalPos, lowLogicalPos.iPos, 
-                                                  highLogicalPos.iPos);
-                break;
-            case ERightNaviEvent:
-            case EDownNaviEvent:
-                effectiveEvent = ERightNaviEvent;
-                aLimitPos = RightVisualExtremePos( highLogicalPos, lowLogicalPos.iPos, 
-                                                   highLogicalPos.iPos );
-                break;
-            default:
-            // No action. Only the events above are handled.
-                break;
-            }
-        }
-
-    else
-        {
-        // No text layout: Left or Up naviEvent gives low end; Right or down give high end
-        switch ( aEvent )
-            {
-            case ELeftNaviEvent:
-            case EUpNaviEvent:
-                effectiveEvent = ELeftNaviEvent;
-                aLimitPos = lowLogicalPos;
-                break;
-            case ERightNaviEvent:
-            case EDownNaviEvent:
-                effectiveEvent = ERightNaviEvent;
-                aLimitPos = highLogicalPos;
-                break;
-            default:
-            // No action. Only the events above are handled.
-                break;
-            }
-        }
-    // return the effective direction (Right or Left)
-    if ( aEffectiveRightOrLeftEvent )
-        *aEffectiveRightOrLeftEvent = effectiveEvent;
-
-    }
-
-
-TTmDocPosSpec CAknFepManager::LeftVisualExtremePos( const TTmDocPosSpec& aStartPos, 
-                                                    TInt aMinPos, TInt aMaxPos ) const
-    {
-    // Start at start and find adjacent left chunks repeatedly until we find no more chunks, or our max or min
-    // is within a chunk
-    TTmDocPosSpec currentPos = aStartPos;
-    CTextLayout* textLayout = TextLayout();
-    if (AknFepDocumentNavigation() || textLayout)
-        {
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-
-        TInt iterations(0);
-        TBool endFound(EFalse);
-
-        while( !endFound && iterations < KMaxChunkWalkIterations )
-            {
-            iterations++;
-            FindAdjacentChunks(currentPos, leftChunk, rightChunk);
-            // Try to move to left end of left chunk
-            endFound = LeftEndOfChunkWithinRange( leftChunk, aMinPos, aMaxPos, currentPos );
-            }
-        }
-    return currentPos;
-    }
-
-TTmDocPosSpec CAknFepManager::RightVisualExtremePos( const TTmDocPosSpec& aStartPos, 
-                                                     TInt aMinPos, TInt aMaxPos ) const
-    {
-    // Start at start and find adjacent right chunks repeatedly until we find no more chunks, or our max or min
-    // is within a chunk
-    TTmDocPosSpec currentPos = aStartPos;
-    CTextLayout* textLayout = TextLayout();
-    if (AknFepDocumentNavigation() || textLayout)
-        {
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-
-        TInt iterations(0);
-        TBool endFound(EFalse);
-
-        while( !endFound && iterations < KMaxChunkWalkIterations )
-            {
-            iterations++;
-            FindAdjacentChunks(currentPos, leftChunk, rightChunk);
-            // Try to move to left end of left chunk
-            endFound = RightEndOfChunkWithinRange( rightChunk, aMinPos, aMaxPos, currentPos );
-            }
-        }
-    return currentPos;
-    }
-
-TBool CAknFepManager::LeftEndOfChunkWithinRange( const CTmTextLayout::TTmChunkDescription& aChunk,
-                                         TInt aMinPos, TInt aMaxPos, TTmDocPosSpec& aNewPos) const
-    {
-    TBool constrained = EFalse;
-    TInt leftEnd;
-    if ( !ChunkIsValid( aChunk ) )
-        {
-        constrained = ETrue; // leave the aNewPos as it is
-        }
-    else if ( aChunk.iStart >= iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep() )
-        {
-        constrained = ETrue; // That chunk was a ficticious one:
-        }
-    else if ( aChunk.iEnd <= aMinPos || aChunk.iStart >= aMaxPos )
-        {
-        constrained = ETrue; // That chunk found does not actually overlap with valid range. Don't go there
-        }
-    else
-        {
-        if ( aChunk.iRightToLeft )
-            {
-            leftEnd =  aChunk.iEnd;
-            if ( leftEnd >= aMaxPos )
-                {
-                constrained = ETrue;
-                aNewPos.iPos = aMaxPos;
-                }
-            else
-                {
-                aNewPos.iPos = leftEnd;
-                }
-            aNewPos.iType = TTmDocPosSpec::ETrailing;
-            }
-        else
-            {
-            leftEnd = aChunk.iStart;
-            if ( leftEnd <= aMinPos )
-                {
-                constrained = ETrue;
-                aNewPos.iPos = aMinPos;
-                }
-            else
-                {
-                aNewPos.iPos = leftEnd;
-                }
-            aNewPos.iType = TTmDocPosSpec::ELeading;
-            }
-        }
-    return constrained;
-    }
-
-TBool CAknFepManager::RightEndOfChunkWithinRange( const CTmTextLayout::TTmChunkDescription& aChunk,
-                                         TInt aMinPos, TInt aMaxPos, TTmDocPosSpec& aNewPos) const
-    {
-    TBool constrained = EFalse;
-    TInt rightEnd;
-    if ( !ChunkIsValid( aChunk ) )
-        {
-        constrained = ETrue; // leave the aNewPos as it is
-        }
-    else if ( aChunk.iStart >= iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep() )
-        {
-        constrained = ETrue; // That chunk was a ficticious one:
-        }
-    else if ( aChunk.iEnd <= aMinPos || aChunk.iStart >= aMaxPos )
-        {
-        constrained = ETrue; // That chunk found does not actually overlap with valid range. Don't go there
-        }
-    else
-        {
-        if ( aChunk.iRightToLeft )
-            {
-            rightEnd =  aChunk.iStart;
-            if ( rightEnd <= aMinPos )
-                {
-                constrained = ETrue;
-                aNewPos.iPos = aMinPos;
-                }
-            else
-                {
-                aNewPos.iPos = rightEnd;
-                }
-            aNewPos.iType = TTmDocPosSpec::ELeading;
-            }
-        else
-            {
-            rightEnd = aChunk.iEnd;
-            if ( rightEnd >= aMaxPos )
-                {
-                constrained = ETrue;
-                aNewPos.iPos = aMaxPos;
-                }
-            else
-                {
-                aNewPos.iPos = rightEnd;
-                }
-            aNewPos.iType = TTmDocPosSpec::ETrailing;
-            }
-        }
-    return constrained;
-    }
-
-/**
-* This method handles the attachment to the chunk being navigated toward.
-* Should only be used for Right and Left navigation.
-* The actual direction of that chunk does not need to be looked at. Even if
-* is the same direction as the one being moved from, you still attach to it, as it may not
-* be logically contiguous.
-*/
-void CAknFepManager::AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( TTmDocPosSpec& aPos, 
-                                                              TWesternNaviEvent aEvent ) const
-    {
-
-    CTmTextLayout::TTmChunkDescription leftChunk;
-    CTmTextLayout::TTmChunkDescription rightChunk;
-    FindAdjacentChunks(aPos, leftChunk, rightChunk);
-
-    TBool inputDirectionIsRTL = ( CurrentInputDirectionality() == TBidiText::ERightToLeft );
-
-    switch (aEvent)
-        {
-        case ELeftNaviEvent:
-            {
-            // Do not attach to the left chunk if its directionality is not the same as aDirection
-            if ( ChunkIsValid( leftChunk ) )
-                if ( COMPARE_BOOLS(inputDirectionIsRTL, leftChunk.iRightToLeft) )
-                    AttachToLeftChunk( aPos, leftChunk );
-            break;
-            }
-        case ERightNaviEvent:
-            {
-            if ( ChunkIsValid( rightChunk ) )
-                if ( COMPARE_BOOLS(inputDirectionIsRTL, rightChunk.iRightToLeft) )
-                    AttachToRightChunk( aPos, rightChunk );
-            break;
-            }
-        default:
-            break;
-        }
-
-    }
-
-
-void CAknFepManager::AttachToRightChunk( TTmDocPosSpec& aPos, 
-                                         const CTmTextLayout::TTmChunkDescription& aRightChunk )
-    {
-    if ( aRightChunk.iRightToLeft )
-        {
-        aPos.iPos = aRightChunk.iEnd;
-        aPos.iType = TTmDocPosSpec::ETrailing;
-        }
-    else
-        {
-        aPos.iPos = aRightChunk.iStart;
-        aPos.iType = TTmDocPosSpec::ELeading;
-        }
-    }
-
-void CAknFepManager::AttachToLeftChunk( TTmDocPosSpec& aPos, 
-                                        const CTmTextLayout::TTmChunkDescription& aLeftChunk )
-    {
-    if ( aLeftChunk.iRightToLeft )
-        {
-        aPos.iPos = aLeftChunk.iStart;
-        aPos.iType = TTmDocPosSpec::ELeading;
-        }
-    else
-        {
-        aPos.iPos = aLeftChunk.iEnd;
-        aPos.iType = TTmDocPosSpec::ETrailing;
-        }
-    }
-
-/**
-* This routine ensures that the cursor position is not attached to a chunk of opposite direction.
-* For end of document, the normal routine can be used.
-* For the start, usually do nothing, but there is the possibility of forcing position 0/Trailing, when
-* the edge chunk and the input directionality are opposite.
-*/
-void CAknFepManager::AdjustPosSpecForInputLanguageAfterDocumentLoop( TTmDocPosSpec& aPos, 
-                                     TWesternNaviEvent /*aNaviEvent*/, TBool aLoopToTop ) const
-    {
-
-    // Looping based on a Left event should adjust the cursor position as if that point had
-    // been reached by navigation to that same visual position outwards from the body
-    // Define this as the effective navigation that has just happened:
-    TWesternNaviEvent effectiveEvent(ELeftNaviEvent);
-
-    // Rule for this effective navigation is
-    // move to top of document : if paradirection is LTR then treat it as a LEFT navi
-    // move to top of document : if paradirection is RTL then treat it as RIGHT navi
-    // move to bottom of document : if paradirection is LTR then treat is as RIGHT navi
-    // move to bottom of document : if paradirection is RTL then treat as LEFT navi
-    // However, NOTE that decrementing events leads to looping to the END! (and vice versa)
-    TBool newParaIsRTL = IsRightToLeftParagraph(aPos);
-    if ( aLoopToTop && newParaIsRTL ) // move to top; RTL
-        effectiveEvent = ERightNaviEvent;
-    else if ( !aLoopToTop && !newParaIsRTL ) // move to bottom; LTR
-        effectiveEvent = ERightNaviEvent;
-
-    if ( aLoopToTop )
-        {
-        //  There is no ficticious block of the paragraph direction at -1 to 0.  So we have to
-        // behave as if there is one:
-        //
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-        CTmTextLayout::TTmChunkDescription& edgeChunk = leftChunk;
-
-        FindAdjacentChunks(aPos, leftChunk, rightChunk);
-
-        // Get input language direction
-        TBool inputDirectionIsRTL = ( CurrentInputDirectionality() == TBidiText::ERightToLeft );
-        if ( effectiveEvent == ELeftNaviEvent )
-            edgeChunk = leftChunk;
-        else
-            edgeChunk = rightChunk;
-
-        // Check edgechunk for its direction
-        if ( !COMPARE_BOOLS( edgeChunk.iRightToLeft, inputDirectionIsRTL ) )
-            {
-            // Input language disagrees with the chunk that we are on,
-            aPos.iPos = 0;
-            aPos.iType = TTmDocPosSpec::ETrailing;
-            }
-
-        }
-    else // Looping to the end of document
-        {
-        // There IS a ficticious block at the doc end, so use the usual routine.
-        AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( aPos, effectiveEvent );
-        }
-
-    }
-
-TBool CAknFepManager::ChunkIsValid( const CTmTextLayout::TTmChunkDescription& aChunk )
-    {
-    TBool isValid(ETrue);
-
-    const TInt KNotValid = -1;
-    if ( aChunk.iRightToLeft == KNotValid )
-        isValid = EFalse;
-    else if (aChunk.iStart == KNotValid )
-        isValid = EFalse;
-    else if (aChunk.iEnd == KNotValid )
-        isValid = EFalse;
-
-#ifdef _DEBUG
-    if (isValid)
-        __ASSERT_DEBUG( aChunk.iStart <= aChunk.iEnd, 
-                        AknFepPanic( EAknFepPanicBadCursorNavigationState ) );
-#endif
-
-    return isValid;
-    }
-/**
-* Finds the current input direction. This is determined as best as it can using
-* - T9Interface as the preferred source of information
-* - shared data (via AknTextUtils) if that fails
-* - localLanguage overrides the above sources of information
-* - when fep is in numeric mode it returns LTR
-* - if FEP is in an irelevant mode, then LTR is returned
-*
-* @return TDirectionality::ELeftToRight for LTR alpha mode or numeric mode
-*/
-TBidiText::TDirectionality CAknFepManager::CurrentInputDirectionality() const
-    {
-    TBidiText::TDirectionality directionality(TBidiText::ELeftToRight);
-
-    // See if we are in a mode where the directionality is defined:
-    TBool checkForRTLValid(EFalse);
-
-    switch (iMode )
-        {
-        case ELatin:
-        case ENumber:
-            checkForRTLValid = ETrue;
-            break;
-        default:
-            break;
-        }
-
-    if ( checkForRTLValid )
-        {
-            MPtiLanguage* ptilang = iPtiEngine->CurrentLanguage(); // No need to get language from PtiEngine ?
-            TInt inputLanguage = (ptilang)? ptilang->LanguageCode() : 0;
-            if ( inputLanguage )
-                {
-                directionality = TBidiText::ScriptDirectionality( (TLanguage)inputLanguage );
-                checkForRTLValid = EFalse;
-                }
-        }
-
-    // if no T9 interface information is available, then go for other sources
-    // Note that you have to check for local language in this case (belt-and-braces)
-    if ( checkForRTLValid )
-        {
-        TLanguage localLanguage = ELangTest;
-        if ( GetLocalLanguage( localLanguage ) )
-            directionality = TBidiText::ScriptDirectionality( localLanguage );
-        else
-            directionality = AknTextUtils::CurrentScriptDirectionality();
-        }
-
-    return directionality;
-    }
-
-
-TBool CAknFepManager::GetLocalLanguage( TLanguage& aLanguage ) const
-    {
-    TBool result(EFalse);
-    // Check for a local language override
-    if ( IsFepAwareTextEditor() )
-        {
-        // For ITU-T keyboard we always use english in latin-only editors.               
-        // In case of qwerty keyboard, some languages can be used in latin
-        // only-editors, some require that english is used instead. That
-        // is decided here.
-        const TInt globalLang = iSharedDataInterface->InputTextLanguage();        
-        TBool allowTest = 
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-                           !iQwertyInputMode ||
-#endif
-                           globalLang == ELangPrcChinese ||
-                           globalLang == ELangHongKongChinese ||
-                           globalLang == ELangTaiwanChinese ||
-                           globalLang == ELangThai ||
-                           globalLang == ELangGreek ||
-                           globalLang == ELangArabic ||
-                           globalLang == ELangFarsi ||                           
-                           globalLang == ELangUrdu ||
-                           globalLang == ELangHebrew ||
-                           globalLang == ELangRussian ||
-                           globalLang == ELangUkrainian ||
-                           globalLang == ELangHindi ||
-#ifdef RD_MARATHI
-                           globalLang == ELangMarathi ||
-#endif // RD_MARATHI
-
-#ifdef RD_HINDI_PHONETIC_INPUT  
-                           globalLang == KLangHindiPhonetic ||
-#endif                           
-                           globalLang == ELangBulgarian || 
-                           globalLang == ELangVietnamese;
-                                          
-        if (allowTest && iAknEditorFlags & EAknEditorFlagLatinInputModesOnly &&
-            iLanguageCapabilities.iInputLanguageCode != ELangJapanese)
-            {
-            aLanguage = ELangEnglish;               
-            }
-        else
-            {
-            aLanguage = EditorState()->LocalLanguage();
-            }
-            
-        if ( aLanguage != ELangTest )
-            {   
-            MPtiLanguage* languageObject = NULL;
-            languageObject = iPtiEngine->GetLanguage(aLanguage);
-            if (languageObject)  // Check if the input language is supported.
-                {                
-                result = ETrue;
-                }
-            else
-                {
-                aLanguage = ELangTest;
-                }
-            }
-        }
-    return result;
-    }
-
-
-TBool CAknFepManager::GetExposedDirectionOfText( TInt aPos, TBool aForward, 
-                                                 TBool& aIsRightToLeft ) const
-    {
-    TBool hasStrongCharacter(EFalse);
-
-    // Access the plain text from the editor, getting a little bit at a time.
-
-    TInt docLen = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-
-    // Init with defaults for aForward = ETrue
-    TInt limit = docLen;
-    TInt increment = 1;
-    if ( !aForward )
-        {
-        limit = -1; // Loop does not execute if == limit
-        increment = -1;
-        }
-
-    for ( TInt index = aPos; index != limit ; index += increment )
-        {
-        TChar ch = CharAt(index);
-        if ( iInlineTextDecorator->CharacterIsStrongRightToLeft( (TText)ch ) )
-            {
-            hasStrongCharacter = ETrue;
-            aIsRightToLeft = ETrue;
-            break;
-            }
-        else if ( iInlineTextDecorator->CharacterIsStrongLeftToRight( (TText)ch ) )
-            {
-            hasStrongCharacter = ETrue;
-            aIsRightToLeft = EFalse;
-            break;
-            }
-        }
-
-    return hasStrongCharacter;
-    }
-
-TBool CAknFepManager::GetExposedDirectionOfTextInDescriptor( const TDesC& aText, TBool aForward, 
-                                                             TBool& aIsRightToLeft ) const
-    {
-    TBool hasStrongCharacter(EFalse);
-
-    TInt textLen = aText.Length();
-
-    TInt start = 0;
-    TInt limit = textLen;
-    TInt increment = 1;
-    if ( !aForward )
-        {
-        start = textLen-1;
-        limit = -1; // Loop does not execute if == limit
-        increment = -1;
-        }
-
-    for ( TInt index = start; index != limit ; index += increment )
-        {
-        if ( iInlineTextDecorator->CharacterIsStrongRightToLeft( (TText)aText[index] ) )
-            {
-            hasStrongCharacter = ETrue;
-            aIsRightToLeft = ETrue;
-            break;
-            }
-        else if (  iInlineTextDecorator->CharacterIsStrongLeftToRight( (TText)aText[index] ) )
-            {
-            hasStrongCharacter = ETrue;
-            aIsRightToLeft = EFalse;
-            break;
-            }
-        }
-
-    return hasStrongCharacter;
-    }
-
-TChar CAknFepManager::CharAt( TInt aPos ) const
-    {
-    TBuf<ESingleCharacter> chDes;
-#ifdef RD_SCALABLE_UI_V2
-    if ( SemiFepAwareTextEditor( ETrue ) )
-#else
-    if ( iInputCapabilities.FepAwareTextEditor() )
-#endif // RD_SCALABLE_UI_V2    
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep( chDes, aPos, 
-                                                                         ESingleCharacter);
-    if( chDes.Length() > 0 )
-        return chDes[0];
-    else
-        return TChar(0);
-    }
-
-
-/**
-* Navigate off of selected text using an Up/Down/Right/Left navigation event
-*
-* The code takes account of the paragraph directionality that the passed selection is
-* found in.
-*
-* The new cursor position is resolved for ambuguity and set using SetCursorPosition and
-* so it has the same side-effects:
-*   iUncommittedText is set to the zero-width "cursor" state with the new cursor position
-*   iUncommittedText is set into the FepAwareTextEditor state
-*   iCaseManager is updated with a ENullNaviEvent
-*   the doc pos is set in TextView object if present
-*/
-TKeyResponse CAknFepManager::NavigateFromSelectionL(
-            const TCursorSelection& aSelection,
-            TWesternNaviEvent aNaviEvent,
-            TTmDocPosSpec& aPos)
-    {
-    if (IsCcpuFlagSet(ECcpuStateCopy | ECcpuStateCut | ECcpuStateHashDown))
-        {
-        return EKeyWasNotConsumed;
-        }
-        
-    switch( aNaviEvent )
-        {
-        case EUpNaviEvent:
-        case EDownNaviEvent:
-        case ERightNaviEvent:
-        case ELeftNaviEvent:
-            // Carry on. Handle this event
-            break;
-        default: // just leave it as NULL
-            return EKeyWasNotConsumed;
-        }
-    // Find the visual end of the selection
-    TWesternNaviEvent effectiveEvent; // used to return either Right or Left event from next call:
-    GetAvkonDefinedVisualLimitsOfSelection( aSelection, aNaviEvent, aPos, &effectiveEvent );
-    AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( aPos, effectiveEvent );
-
-    // Set this as the current position
-    SetCursorPositionL( aPos );
-
-    return EKeyWasConsumed;
-    }
-
-
-void CAknFepManager::SetCursorPositionL( const TTmDocPosSpec& aNewCursorPos, TBool aDragSelectOn )
-    {
-    if ( !iInputCapabilities.FepAwareTextEditor() )
-        return;
-
-    TInt newAnchorPos = aNewCursorPos.iPos;
-
-    if ( aDragSelectOn )
-        {
-        TCursorSelection selection;
-        iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(selection);
-        if ( selection.Length() > 0 ) // there is a selection. Keep the anchor
-            newAnchorPos = selection.iAnchorPos;
-        }
-
-    iUncommittedText.SetSelection( aNewCursorPos.iPos, newAnchorPos );
-
-    iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(iUncommittedText);
-    iCaseMan->UpdateCase(ENullNaviEvent);
-
-    // This is able to set the directional attachment of the cursor in a way that the FepAwareTextEditor interface cannot
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-    	docNavi->SetDocPosL(aNewCursorPos, aDragSelectOn);
-    	}
-    else
-    	{
-        CAknEdwinFormAccessor* formAccessor = EditorState()->FormAccessor();
-        if (formAccessor)
-            {
-            CEikEdwin *edwin = static_cast<CEikEdwin *>( formAccessor->FormClientControl() );
-            if (edwin)
-                edwin->SetCursorPosL( aNewCursorPos.iPos, aDragSelectOn );
-            }
-        }
-    }
-
-
-
-TBool CAknFepManager::InFirstLineAndFormatted( const TTmDocPosSpec& aPos ) const
-    {
-    return DocPosInFirstOrLastLineAndFormatted( aPos, ETrue);
-    }
-
-TBool CAknFepManager::InLastLineAndFormatted( const TTmDocPosSpec& aPos ) const
-    {
-    return DocPosInFirstOrLastLineAndFormatted( aPos, EFalse );
-    }
-
-TBool CAknFepManager::DocPosInFirstOrLastLineAndFormatted( const TTmDocPosSpec& aPos, 
-                                                           TBool aCheckFirstLine ) const
-    {
-    TBool success(EFalse);
-    TTmLineInfo lineInfo;
-    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-    if (docNavi)
-    	{
-	    success = docNavi->DocPosToLine( aPos, lineInfo);
-    	}
-    else
-    	{
-	    CTextLayout* textLayout = TextLayout();
-	    if ( textLayout )
-	        {
-	        success = textLayout->TagmaTextLayout().DocPosToLine( aPos, lineInfo);
-	        }
-    	}
-    	
-        if ( success )
-            {
-            if ( aCheckFirstLine )
-                success = (lineInfo.iLineNumber == 0 );
-            else
-                {
-                // Current position has yielded line information.  But how to tell if it is the last line?
-                // Use the fact that the docpos of the last character will be in the last line.
-                // Also account for the fact that these APIs report a character at docLength itself, a
-                // ficticious end of paragraph character.  So use a >= docLength
-                success = (lineInfo.iEnd >= 
-                           iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep()  );
-                }
-            }
-        
-    return success;
-    }
-
-TBool CAknFepManager::AtVisualStart( const TTmDocPosSpec& aCurrentPos, 
-                                     const TTmDocPosSpec& aLimitPos ) const
-    {
-    TBool positionsAreTheSame(EFalse);
-    if ( aCurrentPos.iPos == aLimitPos.iPos && aCurrentPos.iType == aLimitPos.iType )
-        positionsAreTheSame = ETrue;
-    else if ( aCurrentPos.iPos == 0 && aCurrentPos.iType == TTmDocPosSpec::ETrailing )
-        positionsAreTheSame = ETrue;
-
-    return positionsAreTheSame;
-    }
-
-TBool CAknFepManager::AtVisualEnd( const TTmDocPosSpec& aCurrentPos, 
-                                   const TTmDocPosSpec& aLimitPos, TInt aDocLength ) const
-    {
-    TBool positionsAreTheSame(EFalse);
-    if ( aCurrentPos.iPos == aLimitPos.iPos && aCurrentPos.iType == aLimitPos.iType )
-        positionsAreTheSame = ETrue;
-    else if ( aCurrentPos.iPos == aDocLength && aCurrentPos.iType == TTmDocPosSpec::ELeading )
-        positionsAreTheSame = ETrue;
-    else if ( aCurrentPos.iPos > aDocLength )
-        positionsAreTheSame = ETrue;
-
-    return positionsAreTheSame;
-    }
-
-
-void CAknFepManager::SetCursorType(TBool aIsLeftToRight)
-    {
-    if ( !BidiCursorRequired() )
-        return;
-
-    // Optimization to prevent excessive Wserv communication:
-    if ( IsFlagSet( EFlagBidiCursorIsInitialized )
-        && COMPARE_BOOLS( !aIsLeftToRight, IsFlagSet( EFlagCursorPointsRightToLeft ) ) )
-        return;
-
-    SetFlag( EFlagBidiCursorIsInitialized );
-
-    MCoeFepAwareTextEditor* editor = iInputCapabilities.FepAwareTextEditor();
-    if (editor && editor->Extension1())
-        {
-        TCharFormat format;
-        TInt docPos = DocPos().iPos;
-        editor->GetFormatForFep(format, docPos);
-        
-        // Use Avkon routine to make all the layout decisions. It returns a TTextCursor object
-        TTextCursor newCursor;
-        AknCustomCursorSupport::GetBidiTextCursorFromFontSpec( format.iFontSpec, 
-                                                               !aIsLeftToRight, newCursor );
-        TBool setToTrue(ETrue);
-        editor->Extension1()->SetCursorType(setToTrue, newCursor);
-       
-        // Keep flag in step for optimization
-        if ( aIsLeftToRight )
-            ClearFlag( EFlagCursorPointsRightToLeft );
-        else
-            SetFlag( EFlagCursorPointsRightToLeft );
-        }
-    }
-
-TBool CAknFepManager::DeviceSupportsRTLLanguageL()
-    {
-    CArrayFixFlat<TInt>* languages = new (ELeave) CArrayFixFlat<TInt>(ELanguageArrayGranularity);
-    CleanupStack::PushL(languages);
-    iPtiEngine->GetAvailableLanguagesL(languages);
-
-    TBool bidiCursorSuppressed(EFalse);
-#if defined(__WINS__)
-    bidiCursorSuppressed = ETrue;
-    // Test (Disabled) mode (fake) UID, key and its value
-    const TInt KTestModeValue = 1; // 1 = show Bidi cursor
-
-    CRepository* repository = NULL;
-    TRAPD(ret, repository = CRepository::NewL(KCRUidAknFep));
-    if (ret == KErrNone)
-        {
-        TInt modeValue = 0;
-        if (repository->Get(KAknFepTestModeKey, modeValue) == KErrNone)
-            {
-            if (modeValue == KTestModeValue)
-                {
-                bidiCursorSuppressed = EFalse; // show bidi cursor
-                }
-            }
-        }
-    delete repository;
-#endif
-
-    TBool result = EFalse;
-    if (!bidiCursorSuppressed)
-        {
-        for (TInt jj = 0; jj < languages->Count(); jj++)
-            {
-            if (languages->At(jj) == ELangArabic ||
-                languages->At(jj) == ELangHebrew ||
-                languages->At(jj) == ELangFarsi  ||
-                languages->At(jj) == ELangUrdu )
-                // + others...
-                {
-                result = ETrue;
-                break;
-                }
-            }
-        }
-
-    CleanupStack::PopAndDestroy();  // languages
-    return result;
-    }
-
-void CAknFepManager::CalculateEditorDigitType(TDigitType& aDestination)
-    {
-    TBool ASCIIDigits = EFalse;
-    MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-
-    if ( mop )
-        {
-        CAknExtendedInputCapabilities* extendedInputCapabilities = 
-        mop->MopGetObject( extendedInputCapabilities );
-
-        if ( extendedInputCapabilities ) 
-            {
-            if ( extendedInputCapabilities->SupportsCapabilities(
-                CAknExtendedInputCapabilities::ESupportsOnlyASCIIDigits ) )
-                {
-                // If this is true, then the inputcaps wants only ascii
-                // digits -> you can, when the editor is seen as numeric,
-                // be sure that only latin indicator is then wanted.
-                ASCIIDigits = ETrue;
-                }
-            }
-        }
-
-    if (iAknEditorFlags & EAknEditorFlagLatinInputModesOnly) 
-        {
-        // use of only latin characters implies that numbers are also western
-        ASCIIDigits = ETrue;
-        }
-
-    AknTextUtils::TDigitModeQueryType editorType = AknTextUtils::EDigitModeEditorDefault;
-    TBool numberOnlyEditor = iPermittedInputModes == EAknEditorNumericInputMode;
-    if ( numberOnlyEditor )
-        {
-        editorType = AknTextUtils::EDigitModeNumberEditor;
-        if (ASCIIDigits)
-            {
-            editorType = AknTextUtils::EDigitModeLatinNumberEditor;
-            }
-        }
-        
-    if (iLanguageCapabilities.iArabicIndicDigitsAllowed &&
-        AknTextUtils::DigitModeQuery(editorType) && 
-        !ASCIIDigits)
-        {
-        aDestination = EDigitTypeArabicIndic;
-        }
-    else if (iLanguageCapabilities.iEasternArabicIndicDigitsAllowed &&
-        AknTextUtils::DigitModeQuery(editorType)&& 
-        !ASCIIDigits)
-        {
-        aDestination = EDigitTypeEasternArabicIndic;
-        }    
-    /*Hindi*/    
-    else if ( iLanguageCapabilities.iIndicDigitsAllowed &&
-                    AknTextUtils::DigitModeQuery(editorType) && 
-        !ASCIIDigits)    
-        {
-        aDestination = EDigitTypeDevanagari;    
-        }
-    else
-        {
-        aDestination = EDigitTypeWestern;
-        }
-    }
-
-
-void CAknFepManager::UpdateNumericEditorDigitType()
-    {
-    if (iLanguageCapabilities.iNumericEditorDigitType == EDigitTypeUnknown)
-        {
-        CalculateEditorDigitType(iLanguageCapabilities.iNumericEditorDigitType);
-        }
-    }
-
-void CAknFepManager::UpdateLocalDigitMode()
-    {
-    TInt oldLocalDigitType = iLanguageCapabilities.iLocalDigitType;
-    CalculateEditorDigitType(iLanguageCapabilities.iLocalDigitType);
-    
-    if (oldLocalDigitType != iLanguageCapabilities.iLocalDigitType && 
-        iCaseMan) // happens in destructor   
-        {
-        UpdateIndicators(); 
-        }
-    }
-
-/**
-* This routine should be called if the flag is set that says that the last navigation was to an
-* ambiguous point.
-* The routine checks to see if the event passed is
-* - Right or Left Arrow
-* - Would be the event to "jump" across the ambiguity. That is
-*       - if at the "left" side of a LTR | RTL point, you need a Right arrow
-*       - if at the "right" side of a LTR | RTL point, you need a Left arrow.
-*       - if at the "left" side of a RTL | LTR point, you need a Right arrow
-*       - if at the "right" side of a RTL | LTR point, you need a Left arrow.
-*
-*/
-// TKeyResponse CAknFepManager::AttemptCursorFlipAtAmbiguousPointL( const TKeyEvent& aKeyEvent, TEventCode aEventCode )
-TKeyResponse CAknFepManager::AttemptCursorFlipAtAmbiguousPointL( const TUint aCode )
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    if ( IsFlagSet(EFlagAtDirectionallyAmbiguousPoint)  // only perform if already at ambi-point?
-        && !IsFlagSet(EFlagInsideInlineEditingTransaction) ) // do not flip if inside inline edit
-        {
-        if ( aCode == EKeyRightArrow || aCode == EKeyLeftArrow )
-            {
-            if ( iInputCapabilities.FepAwareTextEditor() && EditorState() 
-            && (AknFepDocumentNavigation() || TextView()) )
-                {
-                TTmDocPosSpec docPos = DocPos();
-                TTextDirectionalInfo status = LocalTextDirectionalStatus( docPos );
-
-                CTmTextLayout::TTmChunkDescription leftChunk;
-                CTmTextLayout::TTmChunkDescription rightChunk;
-                FindAdjacentChunks(docPos, leftChunk, rightChunk);
-
-                if ( status.iBlockEnvironment == 
-                     TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock
-                    && aCode == EKeyRightArrow )
-                    {
-                    response = EKeyWasConsumed;
-                    // Set cursor to new directionality ( opposite to current )
-                    SetCursorTypeForTextDirection( status.iDirectionalStatus == 
-                                                   TTextDirectionalInfo::ERightToLeft );
-                    // Must actually change the docpos!
-                    AttachToRightChunk( docPos, rightChunk );
-                    SetCursorPositionL( docPos, ETrue ); // Drag any existing selection
-                    }
-                else if (  status.iBlockEnvironment == 
-                           TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock
-                    && aCode == EKeyLeftArrow )
-                    {
-                    response = EKeyWasConsumed;
-                    // Effectively this toggles the direction of the cursor
-                    SetCursorTypeForTextDirection( status.iDirectionalStatus == 
-                                                   TTextDirectionalInfo::ERightToLeft );
-                    // Must actually change the docpos!
-                    AttachToLeftChunk( docPos, leftChunk );
-                    SetCursorPositionL( docPos, ETrue ); // Drag any existing selection
-                    }
-                }
-            }
-        }
-    return response;
-    }
-
-
-TInt CAknFepManager::PostEventCheckCallback(TAny* aObj)
-    {
-    TRAP_IGNORE(static_cast<CAknFepManager*>(aObj)->DoCursorDirectionCheckL());
-    return KErrNone;
-    }
-
-TBool CAknFepManager::BidiCursorRequired() const
-    {
-    return iDeviceSupportsRtlLanguage;
-    }
-
-void CAknFepManager::DoCursorDirectionCheckL()
-    {
-   iPostEventCheck->Cancel();
-    if(BidiCursorRequired()) 
-        {
-        AdjustCursorTypeForCurrentPosition();
-        }
-
-    if ( !BidiCursorRequired() 
-    || (TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode)) ))
-            {
-		/*Hindi*/
-    	if( ( !WesternPredictive() ) && 
-			( TAknFepUiIndicInputManager::IsIndicLangauge( 
-					TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) ) && 
-			( ( TAknFepUiIndicInputManager::IsCharVirama( 
-					PreviousChar( ETrue ), TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) ) 
-#ifdef RD_MARATHI
-			|| ( IsEyeLashRaPresentL() && 
-			TAknFepUiIndicInputManager::IsCharVirama(
-					PreviousToPreviousChar( ETrue ), TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) )
-#endif
-			)
-    		&& !( iInputCapabilities.SupportsSecretText() )
-    		)
-			{
-			TTmDocPosSpec pos = DocPos();
-			pos.iType = TTmDocPosSpec::ETrailing;
-		    TTmPosInfo2 info;
-			TTmLineInfo lineInfo;
-			TBool findAvailable = EFalse;
-		    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-		    if (docNavi)
-		    	{
-			    docNavi->FindDocPos(pos, info, lineInfo);
-			    findAvailable = ETrue;
-		    	}
-		    else
-		    	{
-				CTextLayout* textLayout = TextLayout();
-	    		if ( textLayout )
-	    			{
-					textLayout->TagmaTextLayout().FindDocPos(pos, info, lineInfo);	    					    
-					findAvailable = ETrue;
-	    			}
-		    	}
-		    if (findAvailable)
-		    	{
-				TCursorSelection sel(info.iDocPos.iPos  ,info.iDocPos.iPos );
-				iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);
-		    	}
-			}		
-		}	
-    }
-
-void CAknFepManager::AdjustCursorTypeForCurrentPosition()
-    {
-    if ( iInputCapabilities.FepAwareTextEditor() && EditorState() 
-    && (AknFepDocumentNavigation() || TextView()) )
-        AdjustCursorTypeForPosition( DocPos() );
-    }
-
-void CAknFepManager::SchedulePostEventCheckL( TUint aCode )
-    {
-    
-    TBool isToPostEvent   = EFalse;    
-    TBool isIndicLanguage = TAknFepUiIndicInputManager :: 
-                            IsIndicLangauge(TLanguage(iLanguageCapabilities.iInputLanguageCode));
-    
-    if ( BidiCursorRequired() )
-        {
-        switch ( aCode )
-            {
-            // Navigation cases:
-            case EKeyDownArrow:
-            case EKeyUpArrow:            
-            case EPtiKey1:
-            case EPtiKey2:
-            case EPtiKey3:
-            case EPtiKey4:
-            case EPtiKey5:
-            case EPtiKey6:
-            case EPtiKey7:
-            case EPtiKey8:
-            case EPtiKey9:
-            case EPtiKey0:
-                 {
-                    isToPostEvent = ETrue;
-                 }
-                 break;
-            case EKeyBackspace:
-            case EKeyDelete:
-                {
-                    if(!isIndicLanguage)
-                    {
-                        isToPostEvent = ETrue;
-                    }
-                }
-                break;
-            case EKeyLeftArrow:
-            case EKeyRightArrow:
-                {
-                    if(!isIndicLanguage)
-                    {
-                        isToPostEvent = ETrue;
-                    }
-                }
-                break;                
-            default:
-                break;
-            }
-
-        // If Repha has been inserted then do not post event.
-        if( isIndicLanguage )
-            {
-            if( aCode == EPtiKey1 && ( !iQwertyInputMode ) )
-                {
-                if( IsRephaPresent() 
-#ifdef RD_MARATHI
-                || IsEyeLashRaPresentL()
-#endif
-                )
-                    {
-                    isToPostEvent = EFalse;
-                    }
-                }
-            }
-        }
-              
-        if(isIndicLanguage) // iQwertyInputMode check is added so as to ensure that the event is not posted for Qwerty mode. 
-        {
-            if((aCode == EKeyBackspace || aCode == EKeyDelete) && (!iQwertyInputMode))
-            {
-                isToPostEvent = ETrue;
-            }           
-        } 
-        
-        if(isToPostEvent)
-        {
-            if ( iPostEventCheck->IsActive() )
-                iPostEventCheck->Cancel();
-            iPostEventCheck->Start( TCallBack(PostEventCheckCallback, this) );
-        }                   
-    }
-
-void CAknFepManager::AdjustCursorTypeForPosition( const TTmDocPosSpec& aDocPos )
-    {
-
-    TTextDirectionalInfo dirInfo = LocalTextDirectionalStatus( aDocPos );
-    // default clearing of this flag
-    ClearFlag( EFlagAtDirectionallyAmbiguousPoint );
-
-    switch ( dirInfo.iBlockEnvironment )
-        {
-        case TTextDirectionalInfo::EUndefined:
-            // Set according to input direction
-            SetCursorTypeForTextDirection( CurrentInputDirectionality() == 
-                                           TBidiText::ELeftToRight );
-            break; // do nothing
-
-        // All unambiguous cases
-        case TTextDirectionalInfo::EInsideBlock:
-        case TTextDirectionalInfo::EAtRightEndOfLine:
-        case TTextDirectionalInfo::EAtLeftEndOfLine:
-        case TTextDirectionalInfo::EAtRightEndOfBlockFacingSameDirectionBlock:
-        case TTextDirectionalInfo::EAtLeftEndOfBlockFacingSameDirectionBlock:
-            SetCursorTypeForTextDirection( dirInfo.iDirectionalStatus == 
-                                           TTextDirectionalInfo::ELeftToRight );
-            break;
-
-        // Ambiguous. Navigation has resulted in an ambiguous visual position. Set cursor according
-        // to current direction
-        case TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock:
-        case TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock:
-            SetCursorTypeForTextDirection( dirInfo.iDirectionalStatus == 
-                                           TTextDirectionalInfo::ELeftToRight );
-            SetFlag( EFlagAtDirectionallyAmbiguousPoint );
-            break;
-        default:
-            // Do nothing
-            break;
-        }
-    }
-
-void CAknFepManager::SetCursorTypeForTextDirection( TBool aLeftToRight )
-    {
-    SetCursorType( aLeftToRight );
-    }
-
-void CAknFepManager::SetCursorTypeForInputDirection( TBool /*aLeftToRight*/ )
-    {
-    // Do nothing
-    }
-
-CAknFepManager::TTextDirectionalInfo CAknFepManager::
-                               LocalTextDirectionalStatus( const TTmDocPosSpec& aDocPos ) const
-    {
-    TTextDirectionalInfo directionalInfo;
-
-    MCoeFepAwareTextEditor* fepAwareTextEditor = iInputCapabilities.FepAwareTextEditor();
-    if ( !fepAwareTextEditor )
-        return directionalInfo;
-
-    if ( aDocPos.iPos < 0 ) // somehow, we are before the first character
-        directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ENotInDocument;
-    else if ( aDocPos.iPos > fepAwareTextEditor->DocumentLengthForFep() ) // (iPos = docLen still is within document)
-        directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ENotInDocument;
-    else if ( fepAwareTextEditor->DocumentLengthForFep() == 0 ) // zero length; no document
-        directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ENotInDocument;
-
-    if ( directionalInfo.iDirectionalStatus == TTextDirectionalInfo::EUnknown )
-        {
-        CTmTextLayout::TTmChunkDescription leftChunk;
-        CTmTextLayout::TTmChunkDescription rightChunk;
-        FindAdjacentChunks(aDocPos, leftChunk, rightChunk);
-
-    // Cases:
-    // position is within a chunk (chunks are continuous in logical index and same directionality.
-    //  ->Return directionality
-    // position is betweeen two chunks of opposite directionality
-    //  -> return simple ambiguity
-    // position is between two chnks of same directionality, but logical index is not contiguous
-    //  -> return complex ambiguity ; return directionality
-
-        if ( leftChunk.iStart == -1 && rightChunk.iStart == -1 ) // 2 chunks invalid; direction stays EUnkonwn
-            {
-            directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ENoDirectionalChunks;
-            }
-        else if ( leftChunk.iStart == -1 )  // no left block
-            {
-            directionalInfo.iBlockEnvironment = TTextDirectionalInfo::EAtLeftEndOfLine;
-            directionalInfo.SetDirectionFromChunk( rightChunk );
-            }
-        else if ( rightChunk.iStart == -1 ) // no right block
-            {
-            directionalInfo.iBlockEnvironment = TTextDirectionalInfo::EAtRightEndOfLine;
-            directionalInfo.SetDirectionFromChunk( leftChunk );
-            }
-        // Both chunks are the same direction.
-        // We are either nicely inside a block or the two blocks are at +/- 2, 4, etc levels
-        else if ( COMPARE_BOOLS( leftChunk.iRightToLeft, rightChunk.iRightToLeft ) )
-            {
-            // Can set direction from either chunk; use left one
-            directionalInfo.SetDirectionFromChunk( leftChunk );
-
-            if (leftChunk.iRightToLeft )
-                {
-                if ( leftChunk.iStart == rightChunk.iEnd ) // chunks are continguous
-                    directionalInfo.iBlockEnvironment = TTextDirectionalInfo::EInsideBlock;
-                else // Chunks are separated by 2, 4 etc. levels
-                    directionalInfo.iBlockEnvironment = ( aDocPos.iPos == leftChunk.iStart ) ?
-                        TTextDirectionalInfo::EAtRightEndOfBlockFacingSameDirectionBlock :
-                        TTextDirectionalInfo::EAtLeftEndOfBlockFacingSameDirectionBlock;
-                }
-            else
-                {
-                if ( leftChunk.iEnd == rightChunk.iStart ) // chunks are continguous
-                    directionalInfo.iBlockEnvironment = TTextDirectionalInfo::EInsideBlock;
-                else // Chunks are separated by 2, 4 etc. levels
-                    directionalInfo.iBlockEnvironment = ( aDocPos.iPos == leftChunk.iEnd ) ?
-                        TTextDirectionalInfo::EAtRightEndOfBlockFacingSameDirectionBlock :
-                        TTextDirectionalInfo::EAtLeftEndOfBlockFacingSameDirectionBlock;
-                }
-            }
-        else // Blocks are in opposite direction. Have to deal with all the values of the iType enum
-            {
-            TInt charPos;
-            switch( aDocPos.iType )
-                {
-                case TTmDocPosSpec::ETrailing: // position follows a block End
-                    {
-                    charPos = aDocPos.iPos - 1; //  attachment is to character[iPos-1] - now find it
-                    if ( leftChunk.iStart <= charPos && charPos < leftChunk.iEnd ) // pos is in left chunk
-                        {
-                        directionalInfo.SetDirectionFromChunk( leftChunk );
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    else if( rightChunk.iStart <= charPos && charPos < rightChunk.iEnd ) // pos is in right chunk
-                        {
-                        directionalInfo.SetDirectionFromChunk( rightChunk );
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    else // Probably impossible situation.  Supply reasonable defaults rather than panicking
-                        {
-                        directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ELeftToRight;
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    break;
-                    }
-                case TTmDocPosSpec::ELeading: // position precedes a block start
-                    {
-                    charPos = aDocPos.iPos; //  attachment is to character[iPos] - now find it
-                    if ( leftChunk.iStart <= charPos && charPos < leftChunk.iEnd ) // pos is in left chunk
-                        {
-                        directionalInfo.SetDirectionFromChunk( leftChunk );
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    else if( rightChunk.iStart <= charPos && charPos < rightChunk.iEnd ) // pos is in right chunk
-                        {
-                        directionalInfo.SetDirectionFromChunk( rightChunk );
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    else // Probably impossible situation.  Supply reasonable defaults rather than panicking
-                        {
-                        directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ELeftToRight;
-                        directionalInfo.iBlockEnvironment = 
-                            TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock;
-                        }
-                    break;
-                    }
-                case TTmDocPosSpec::ELeftToRight: // Is attached to a Left to right block
-                    {
-                    directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ELeftToRight;
-                    // If left chunk is RTL, then we are NOT attached to that left block
-                    // (ie. we are at left end of the right block)
-                    directionalInfo.iBlockEnvironment = leftChunk.iRightToLeft ?
-                        TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock : // must be in right chunk then (left end of it)
-                        TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock; // else in left chunk (right end of it)
-                    break;
-                    }
-                case TTmDocPosSpec::ERightToLeft:
-                    {
-                    directionalInfo.iDirectionalStatus = TTextDirectionalInfo::ERightToLeft;
-                    // If left chunk if RTL, then we are attached to that left block (ie. at right end of it)
-                    directionalInfo.iBlockEnvironment = leftChunk.iRightToLeft ? // is it in left chunk?
-                        TTextDirectionalInfo::EAtRightEndOfBlockFacingOppositeDirectionalBlock : // right end of left chunk
-                        TTextDirectionalInfo::EAtLeftEndOfBlockFacingOppositeDirectionalBlock;
-                    break;
-                    }
-                }
-
-            }
-        }
-    return directionalInfo;
-    }
-
-
-/**
-* Redecoration is carried out if a neutral is exposed by the deletion to a directionality
-* different to that which is was already marked.
-*
-* The routine leaves iUncommittedText again set to the (possibly new) cursor position.
-*
-*/
-void CAknFepManager::RedecorateAfterDeletionL( const TDesC& aTextThatWasDeleted  )
-    {
-    if (!EditorSupportsNeutralProtection())
-        return;
-
-    if ( aTextThatWasDeleted.Length() == 0 )
-        return;
-
-    TBool protect = ETrue;
-
-    // Set up iUncommittedText with the current cursor position so that PreviousChar will work:
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-
-    TTmDocPosSpec docPos = DocPos();
-    TInt docLen = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-
-    TInt previousPos = docPos.iPos;
-    // Trailing iType actually points to character at index iPos - 1
-    if( docPos.iType == TTmDocPosSpec::ETrailing )
-        previousPos = previousPos -= 1;
-    TInt nextPos = previousPos + 1;
-
-    // Perform no neutral protection if the beginning of the text is deleted.
-    // Note that there MAY be protection occuring if the delete is from the end so there is
-    // no corresponding test on DocLength. That is handled later where the paragraph direction
-    // is used for the "forward" directionality.
-    if ( previousPos < 0 )
-        return;
-
-    // Up to 2 protection characters, one RTL and one LTR
-    TBuf<2> textToInsert;
-
-    TBool adjacentPrecedingIsNeutral(EFalse);
-    TBool adjacentTrailingIsNeutral(EFalse);
-
-    // See if either preceding or next is neutral
-    adjacentPrecedingIsNeutral = iInlineTextDecorator->CharacterIsNeutral( CharAt(previousPos) );
-    if ( nextPos < docLen )
-        adjacentTrailingIsNeutral = iInlineTextDecorator->CharacterIsNeutral( CharAt(nextPos) );
-
-    if ( !adjacentPrecedingIsNeutral && !adjacentTrailingIsNeutral )
-        protect = EFalse;
-
-    // Inits actually correspond to LTR, but they are only used if the bools indicating
-    // strong directionality found get set
-    TBool directionPrecedingDeleteIsRTL(EFalse);
-    TBool directionTrailingDeleteIsRTL(EFalse);
-    if ( protect )
-        {
-        TBool strongPreceding = GetExposedDirectionOfText( previousPos, EFalse, 
-                                                           directionPrecedingDeleteIsRTL );
-        TBool strongTrailing = GetExposedDirectionOfText( nextPos, ETrue, 
-                                                          directionTrailingDeleteIsRTL );
-        if (!strongTrailing)
-            {
-            TBool isRTLPara = IsRightToLeftParagraph(docPos);
-            directionTrailingDeleteIsRTL = isRTLPara;
-            strongTrailing = ETrue;
-            }
-        if ( !strongPreceding || !strongTrailing) // Must have strong in both directions
-            protect = EFalse;
-        else if ( COMPARE_BOOLS( directionPrecedingDeleteIsRTL, directionTrailingDeleteIsRTL ) ) // Must differ
-            protect = EFalse;
-        }
-
-    TBool forwardProtection(EFalse);
-
-    if ( protect )
-        {
-        protect = EFalse;
-        TBool deletedWasRTL;
-
-        // Check for and do reverse protection
-        if ( adjacentPrecedingIsNeutral )
-            {
-            TBool deletedTextIsStrong = GetExposedDirectionOfTextInDescriptor( aTextThatWasDeleted, 
-                                                                               ETrue, 
-                                                                               deletedWasRTL ); // search forward into deleted stuff
-            if ( deletedTextIsStrong && (directionPrecedingDeleteIsRTL == deletedWasRTL))
-                {
-                protect = ETrue;
-                forwardProtection = EFalse;
-                if ( deletedWasRTL )
-                    textToInsert.Append( CAknFepInlineTextDecorator::ERightToLeftMark );
-                else
-                    textToInsert.Append( CAknFepInlineTextDecorator::ELeftToRightMark );
-                }
-            }
-
-        // Check for and do forward protection
-        // Note it is possible to have both forward and reverse redecoration.
-        if ( adjacentTrailingIsNeutral )
-            {
-            TBool deletedTextIsStrong = GetExposedDirectionOfTextInDescriptor( aTextThatWasDeleted, 
-                                                                               EFalse, 
-                                                                               deletedWasRTL ); // search backward in deleted stuff
-            if (deletedTextIsStrong && (directionTrailingDeleteIsRTL == deletedWasRTL) )
-                {
-                protect = ETrue;
-                forwardProtection = ETrue;
-                if ( deletedWasRTL )
-                    textToInsert.Append( CAknFepInlineTextDecorator::ERightToLeftMark );
-                else
-                    textToInsert.Append( CAknFepInlineTextDecorator::ELeftToRightMark );
-                }
-            }
-        }
-
-
-    if ( protect )
-        {
-        StartInlineEditL(textToInsert);
-        CommitInlineEditWithoutResolutionL(*(iInputCapabilities.FepAwareTextEditor()), ETrue);
-        // iUncommittedText is now set to correct value by the Commitxxxx method
-        // Document position is adjusted to as to keep the cursor stable.
-        // Make a docPos. If reverse protection, then the position should trail
-        TTmDocPosSpec docPos( iUncommittedText.LowerPos() , TTmDocPosSpec::ETrailing );
-        // But if there has been forward Protection, then we have to back up the cursor by 1
-        // and lead. (This is OK too, if there is simultaneous reversse and forward protection)
-        if ( forwardProtection )
-            {
-            docPos.iPos = Max(docPos.iPos - 1, 0 );
-            docPos.iType = TTmDocPosSpec::ELeading;
-            }
-        SetCursorPositionL( docPos );
-        }
-    }
-
-TBool CAknFepManager::EditorSupportsNeutralProtection()
-    {
-    TBool ret = ETrue;
-    if ( !IsFepAwareTextEditor() )
-        ret = EFalse;
-
-    else if (iInputCapabilities.SupportsSecretText())
-        ret = EFalse;
-
-    else if ( iAknEditorFlags & EAknEditorFlagLatinInputModesOnly )
-        ret = EFalse;
-
-    else if (iPermittedInputModes == EAknEditorNumericInputMode)
-        ret = EFalse;
-
-    else if ( !CharIsValidInEditor( CAknFepInlineTextDecorator::ERightToLeftMark ) )
-        ret = EFalse;
-
-    return ret;
-    }
-
-void CAknFepManager::CommitInlineEditWithoutResolutionL(MCoeFepAwareTextEditor& aFepAwareTextEditor, 
-                                                        TBool aCursorVisibility , TBool aClearPti )
-    {
-    aFepAwareTextEditor.SetInlineEditingCursorVisibilityL(aCursorVisibility);
-    /*
-    On any call to CommitFepInlineEditL, the mode will change
-    even when a leave event occurs.
-    */
-    ClearFlag(EFlagInsideInlineEditingTransaction | EFlagInsideMultitapInlineEditingTransaction);
-    ClearCcpuFlag(ECcpuStateNewPredictiveWord);
-    
-    if(aClearPti)
-        {
-        iPtiEngine->CommitCurrentWord();
-        }
-    CCoeEnv* coeEnv = CCoeEnv::Static();
-    aFepAwareTextEditor.CommitFepInlineEditL(*coeEnv);
-    aFepAwareTextEditor.GetCursorSelectionForFep(iUncommittedText);
-    // iMatchState=EWordMatchFirst;
-    iCaseMan->UpdateCase(ENullNaviEvent);
-    }
-
-void CAknFepManager::WordConcatenationTimerTimeoutL()
-    {
-    iConcatenationTimer->Cancel();
-
-    // add concatenated word to the UDB (a concatenated word is a compound word)
-    AddCompoundWordToUdbL();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	MoveCursorToEndOfWordL();
-#endif
-    }
-
-
-TKeyResponse CAknFepManager::HandlePredictiveNaviEventOutsideInlineEditL(TUint aCode, 
-                                                                         TKeyPressLength aLength)
-    {
-    TKeyResponse response = EKeyWasNotConsumed;
-
-    TWesternNaviEvent naviEvent = ENullNaviEvent;
-    if (aCode == EKeyLeftArrow)
-        {
-        naviEvent = ELeftNaviEvent;
-        }
-    else if (aCode == EKeyRightArrow)
-        {
-        naviEvent = ERightNaviEvent;
-        }
-    else if (aCode == EKeyBackspace)
-        {
-        naviEvent = EBackspaceEvent;
-        }
-
-    TInt nextCharPos = 0;  // Character ordinal in logical memory (0 - n-1)
-    TBool nextPositionFound = EFalse;
-    if ( naviEvent == ERightNaviEvent )
-        {
-        nextPositionFound = GetNextVisualRightCharacter( nextCharPos );
-        }
-    else if ( naviEvent == ELeftNaviEvent )
-        {
-        nextPositionFound = GetNextVisualLeftCharacter( nextCharPos );
-        }
-    else if ( naviEvent == EBackspaceEvent )
-        {
-        if (iLanguageCapabilities.iRightToLeftLanguage)
-            {
-            TChar character = PreviousChar();
-            TChar::TBdCategory bdCategory = character.GetBdCategory();
-            // In case last character in buffer is number or Latin characters, needs to delete 
-            // character from left.
-            if (TChar::EEuropeanNumber == bdCategory || TChar::EArabicNumber == bdCategory ||
-                TChar::ELeftToRight == bdCategory )
-                {
-                nextPositionFound = GetNextVisualLeftCharacter( nextCharPos );
-                }
-            else
-                {
-                nextPositionFound = GetNextVisualRightCharacter( nextCharPos );
-                }
-            }
-        else
-            {
-            nextPositionFound = GetNextVisualLeftCharacter( nextCharPos );
-            }
-        }
-
-    if ( !nextPositionFound )
-        {
-        response = EKeyWasNotConsumed;
-        }
-    else // not looping - lets see what to do
-        {
-        TBuf<ESingleCharacter> characterBuffer;
-        iInputCapabilities.FepAwareTextEditor()->GetEditorContentForFep(characterBuffer, 
-                                                                        nextCharPos, 
-                                                                        ESingleCharacter);
-
-        if ( !IsValidInLineCharacter( STATIC_CAST(TChar, characterBuffer[0])) )
-            {
-            // if the character is a non-alpha character; let it go
-            response=EKeyWasNotConsumed;
-            if (IsFlagSet(EFlagCompoundWord))
-                {
-                if  (STATIC_CAST(TChar, characterBuffer[0]).IsSpace())
-                    // we are navigating over a space so add any current compond word to the udb
-                    AddCompoundWordToUdbL();
-                ClearFlag(EFlagCompoundWord);
-                }
-        //allow to popup editsubmenu        
-        ClearCcpuFlag(ECcpuStateIgnoreStarUp);
-            }
-        else
-            {
-            if (FepUI()->HandleKeyL(aCode, aLength))
-                {
-                response=EKeyWasConsumed;
-                }
-            }
-        }
-    return response;
-    }
-
-/**
- * Call back function:
- */
-TInt CAknFepManager::DoSimulateKey(TAny* aThisPtr)
-    {
-    CAknFepManager* myobj = static_cast<CAknFepManager*>(aThisPtr);
-    TRAPD(error, myobj->HandleOwnedSimulateKeyL());
-    return error;
-    }
-
-void CAknFepManager::HandleOwnedSimulateKeyL()
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT         
-#ifdef __HALF_QWERTY_KEYPAD
-        if( KeyboardLayout() == EPtiKeyboardHalfQwerty )
-            {            
-            CCoeEnv::Static()->SimulateKeyEventL( iHalfQwertyLastKeyEvent, EEventKey );
-            }        
-        else
-#endif //__HALF_QWERTY_KEYPAD        
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if (iSimulateKey > 0)
-        {
-        HandleKeyEventL(iSimulateKey, EShortKeyPress);
-        iSimulateKey = 0;
-        }
-    }
-
-/**
- * This method is that the label of CBA is updated by aTextResId.
- * @param aPosition   CBA position, either ELeftSoftkeyIndex or ERightSoftkeyIndex
- * @param aCommandId  command id for softkey
- * @param aTextResId  resource id to set string on label.
- * @return TBool The return value is ETrue in case it is necessary to update CBA.
- */
-TBool CAknFepManager::UpdateCBALabelL(TInt aPosition, TInt aCommandId, TInt aTextResId)
-    {
-    return iUiInterface->UpdateSoftkeyLabelL(aPosition, aCommandId, aTextResId);
-    }
-
-void CAknFepManager::DoLaunchSctAndPctL(TInt aResourceId, TShowSctMode aShowSctMode)
-    {
-    TBool replace = EFalse;
-    TBool disableRecentItemRow = EFalse;
-    
-    if (ExtendedInputCapabilities() & CAknExtendedInputCapabilities::EDisableSCT)
-        {
-        // The editor doesn't allow SCT.
-        return;
-        }
-    if ( EditorType() == CAknExtendedInputCapabilities::EEikSecretEditorBased )
-        {
-        
-        disableRecentItemRow = ETrue;
-        }    
-    
-    if (IsCcpuFlagSet(ECcpuStateCbaSymbol) && 
-        iMode == ELatin && WesternPredictive(ELatin) && 
-        iPtiEngine->LastEnteredKey() == EPtiKey1)
-        {
-        // User is entering special character as result of pressing key '1' and
-        // cycling through candidates until left softkey turns into "Symbol". In
-        // that case we want to replace last cahracter instead of adding new one.
-        replace = ETrue;
-        }
-    
-    //Commit characters in latin multitap as some editors may call CancelFepTransaction()
-    //which will be received before the focus change notification.
-    if (IsFeatureSupportedJapanese())
-        {
-        TryCloseUiL();
-        }
-    else
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if(!(WesternPredictive()))
-#endif
-        CommitInlineEditL();
-        }
-
-    if (!EditorHasFreeSpace())
-        {
-        return;
-        }
-    
-    // get the SCT resource id from editor default settings
-    TInt currentEditorSCTResId = GetCurrentEditorSCTResId();
-    TInt charMap = aResourceId;
-    if ( FeatureManager::FeatureSupported(KFeatureIdChinese) )
-        {        
-        if (charMap == R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG)
-            {
-            charMap = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_CHINESE;
-            }
-        }
-    if (!charMap)
-        {
-        // override numeric keymap if necessary. flag is for non standard charmaps
-        TInt standardNumericCharMap = EDefaultNumericCharMapResId;
-        if ((iMode == ENumber || iMode == ENativeNumber) &&
-            !(iAknEditorFlags & EAknEditorFlagUseSCTNumericCharmap) &&
-            (iCharWidth == EHalfWidthChar) &&
-            ( (iAknEditorNumericKeymap != EAknEditorAlphanumericNumberModeKeymap) ||
-              (iPermittedInputModes == EAknEditorNumericInputMode) ))
-            {
-            standardNumericCharMap = NumericModeSCTResourceId();
-            }
-        charMap = standardNumericCharMap;
-        }
-        
-    if ( charMap == ENoCharacters && !IsAbleToLaunchSCT())
-        {
-    	currentEditorSCTResId = charMap;
-        }
-
-    if (currentEditorSCTResId)
-        {
-        TBuf<32> specialChars;
-
-        TInt sctChars = EAknSCTChiChineseInputModes;
-        TInt afterSctChars = EAknSCTHalfCase;
-
-        if (iCharWidth == EFullWidthChar)
-            {
-            sctChars = EAknSCTFullCase;
-            if (iMode == ELatin)
-                {
-                afterSctChars = EAknSCTUpperCase;
-                if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-                    {
-                    afterSctChars = EAknSCTLowerCase;
-                    }
-                }
-            else if (iMode == ENumber||iMode == ENativeNumber)
-                {
-                afterSctChars = EAknSCTLowerCase;
-                }
-            }
-        else
-            {
-            if (iMode == ELatin)
-                {
-                if ( FeatureManager::FeatureSupported(KFeatureIdChinese) )
-                    {
-                    sctChars = EAknSCTChiLatinInputModes;
-                    }
-                else
-                    {
-                    if (iQwertyInputMode)
-                        {
-                        sctChars = EAknSCTQwerty;
-                        afterSctChars = EAknSCTFullCase;                        
-                        }
-                    else
-                        {                                           
-                        sctChars = EAknSCTUpperCase;
-                        afterSctChars = EAknSCTFullCase;
-                        if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-                            {
-                            sctChars = EAknSCTLowerCase;
-                            }
-                        }
-                    }
-                }
-            else if (iMode == ENumber||iMode == ENativeNumber)
-                {
-                sctChars = EAknSCTNumeric;
-                if ( ((iAknEditorFlags & EAknEditorFlagUseSCTNumericCharmap) ||
-                      (iAknEditorNumericKeymap == EAknEditorAlphanumericNumberModeKeymap)) &&
-                      !IsOnlyHalfWidthCharacterPermitted() )
-                    {
-                    sctChars = EAknSCTLowerCase;
-                    afterSctChars = EAknSCTFullCase;
-                    }
-                }
-            else if (iMode == EHiraganaKanji)
-                {
-                sctChars = EAknSCTFullCase;
-                }
-            else if(iMode == EKatakana)
-                {
-                sctChars = EAknSCTHalfCase;
-                afterSctChars = EAknSCTFullCase;
-                }
-            }
-
-        SetFlag(EFlagForegroundUIComponentVisible);
-
-        TBool showAnotherTable = EFalse;
-        if (IsFeatureSupportedJapanese())
-            {
-            if (sctChars == EAknSCTFullCase)
-                {
-                if (!IsOnlyFullWidthCharacterPermitted())
-                    {
-                    showAnotherTable = ETrue;
-                    }
-                }
-            else if (sctChars == EAknSCTHalfCase || sctChars == EAknSCTUpperCase 
-                  || sctChars == EAknSCTLowerCase)
-                {
-                if (!IsOnlyHalfWidthCharacterPermitted() 
-                 && !(iAknEditorFlags & EAknEditorFlagLatinInputModesOnly))
-                    {
-                    showAnotherTable = ETrue;
-                    }
-                }
-            }
-#ifdef RD_SCALABLE_UI_V2     
-        if( iFepFullyConstructed && !iFepPluginManager->IsGlobleNotes())
-            {
-             if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
-                 iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
-                 iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
-                {
-                 SetStopProcessFocus(ETrue, EFalse);
-                iFepPluginManager->SetMenuState();            
-                }            
-             else if (!iFepPluginManager->IsGlobleNotes())
-                {
-                iFepPluginManager->ClosePluginInputUiL( ETrue );
-                }
-            }
-#endif  
-
-        TBool lockNumericKeys = ( iPtiEngine->IsQwertyBasedMode(iPtiEngine->InputMode())) 
-        #ifdef RD_INTELLIGENT_TEXT_INPUT        
-                            || ( iPtiEngine->InputMode() == EPtiEngineHalfQwerty ) ||
-                            ( iPtiEngine->InputMode() == EPtiEngineHalfQwertyPredictive ) 
-        #endif                            
-                            ;
-        TUid fepUid = CCoeEnv::Static()->FepUid();
-
-        if(IsAbleToLaunchSmiley())
-            {
-            if(aShowSctMode == EShowSmileyFirst)
-                {
-                sctChars |= EAknCharMapEmotionFirst;
-                }
-            else
-                {
-                sctChars |= EAknCharMapEmotionUse;
-                }
-            }
-        ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-        
-		if (iUiInterface->CharMapDialogL(
-			sctChars, 
-			specialChars, 
-			charMap,
-			lockNumericKeys,
-            aShowSctMode==EShowPctFirst,
-			!IsAbleToLaunchPCT(),
-			showAnotherTable,
-			afterSctChars,
-			currentEditorSCTResId,
-			disableRecentItemRow))
-            {
-            PrepareFepAfterDialogExitL(fepUid);
-            SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd);
-
-#ifdef RD_SCALABLE_UI_V2 
-            
-            if( iFepFullyConstructed && iFepPluginManager)
-                {
-                 if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut ||
-                     iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ ||
-                     iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr)
-                    {
-                    SetStopProcessFocus(EFalse);
-                    }            
-                 else
-                    {
-                    HandleChangeInFocus();
-                    }
-                }
-            else
-                {
-                HandleChangeInFocus();
-                }   
-            // Set the flag, not change focus for next.
-            iDisalbleFocusChangeForSCT = ETrue;           
-#endif
-
-            //Removes auto-complition part if SCT is launched and any special character is selected 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if( specialChars.Length() > 0 )
-                {
-            	RemoveSuggestedAdvanceCompletionL();
-                }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-            TBuf<ESingleCharacter> charAsDesc(ESingleCharacter);
-            for ( TInt ii = 0; ii < specialChars.Length(); ii++)
-                {
-                charAsDesc[0]=(TText)specialChars[ii];
-
-                if (iInputCapabilities.SupportsSecretText())
-                    {
-                    TChar ch = charAsDesc[0];
-                    if (ch == TText(0x000A) || ch == TText(CEditableText::EParagraphDelimiter))
-                        // 0x000A is ascii, EParagraphDelimiter is unicode - future
-                        // proofs against sct changing to unicode
-                        ch = EKeyEnter;
-                    if (CharIsValidInEditor(ch))
-                        {
-                        //we receive an extra key press if we simulate a key that is also a device key
-                        if (ch.IsDigit() || TUint(ch) == EStarKeyUnicodeValue 
-                         || TUint(ch) == EHashKeyUnicodeValue)
-                            SetFlag(EFlagPassNextKey);
-                        SimulateKeyEventL(ch);
-                        }
-                    }
-                else
-                    {
-                    if (charAsDesc[0] == TText(0x000A)) // 0x000A is line feed
-                        {
-                        charAsDesc[0] = CEditableText::EParagraphDelimiter;
-                        }
-                        
-                    if (CharIsValidInEditor(charAsDesc[0]))
-                        {
-                        TCursorSelection cursorSelection(0,0);
-                        if ((iAknEditorFlags & EAknEditorFlagMTAutoOverwrite) && iMode == ELatin 
-                          && !WesternPredictive())
-                            {
-                            TInt edSize = 
-                                   iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep();
-                            iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-                            if (iUncommittedText.iCursorPos < edSize 
-                             && iUncommittedText.Length() == 0)
-                                {
-                                cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1,
-                                                                   iUncommittedText.iAnchorPos);
-                                }
-                            }
-                        if (EditorState())
-                            {
-                            if (charAsDesc[0] == CEditableText::EParagraphDelimiter)
-                                {
-                                // This is line feed character. Post it to editor and let it decide
-                                // if it is valid.
-                                 if (!(iAknEditorFlags & EAknEditorFlagFindPane) 
-                                    && specialChars.Length() == 1)
-                                    { 
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                                    CommitInlineEditL();                                    
-#endif
-                                   
-                                    SimulateKeyEventL(EKeyEnter);   
-                                    SimulateKeyEventL(EKeyF19); // Asyncronous case update                                                                                              
-                                    }
-                                }                                                        
-                            else
-                                {                                                                                                                                   
-                                if (replace)
-                                    {
-                                    TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0};        
-                                    CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey);                                                                
-                                    }                               
-                                InsertTextFromDialogL(charAsDesc, cursorSelection);
-//There may be several char to be inserted, need disable Focus change to avoid multi-focus change.
-#ifdef RD_SCALABLE_UI_V2 
-                                iDisalbleFocusChangeForSCT = ETrue;
-#endif
-                                }
-                            // Clear dead key, vowel sequence and vietnamese tone mark states.                         
-                            iPtiEngine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar, 
-                                                       NULL);
-                            iPtiEngine->HandleCommandL(EPtiCommandClearVowelSeq, 
-                                                       NULL);
-                            iPtiEngine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar, 
-                                                       NULL);                            
-                            }
-                        }
-                    }
-                }
-            }
-        else
-            {
-            iClosePeninputUi = EFalse;
-            iStopProcessFocus = EFalse;                   
-            }
-            
-        PrepareFepAfterDialogExitL(fepUid);
-        }
-    }
-
-/**
- * Queries supportting of SecretText
- *
- * @since 2.6
- * @return ETrue if SecretText was supported
- */
-TBool CAknFepManager::IsSupportsSecretText() const
-    {
-    TBool bSecret = iInputCapabilities.SupportsSecretText();
-    if( !bSecret )
-        {
-        //test java editor
-        MObjectProvider* mop = iInputCapabilities.ObjectProvider();            	
-        if ( mop )
-           {
-            CAknExtendedInputCapabilities* extendedInputCapabilities;
-            extendedInputCapabilities = mop->MopGetObject( extendedInputCapabilities );
-            if ( extendedInputCapabilities ) 
-                {
-                TUint constraints = extendedInputCapabilities->MIDPConstrainst();
-                if( constraints & 0x10000 )
-                    {
-                    bSecret = ETrue;
-                    }
-                }
-            }
-        }
-    
-    return bSecret;
-    }
-
-void CAknFepManager::SendEventsToPluginManL( TInt aEventType, TInt aEventData )
-    {
-#ifdef RD_SCALABLE_UI_V2
-    if ( iFepFullyConstructed )
-        {
-        iFepPluginManager->HandleEventsFromFepL( aEventType, aEventData );
-        }
-#endif //RD_SCALABLE_UI_V2
-    }
-    
-void CAknFepManager::UpdateCangJieState(TInt aNewMode)
-    {
-    CAknFepUIManagerChinese* fepUiMgr = STATIC_CAST(CAknFepUIManagerChinese*, 
-                                             iLangMan->GetFepUI(ECangJie, ENoneWidthChar, EFalse));
-    
-    if (aNewMode >= 0)
-        {
-        if ( fepUiMgr )
-            {
-            fepUiMgr->UpdateCangJieState();
-            }
-        
-        // Store CangJie settings into the sharedata
-        iSharedDataInterface->SetCangJieMode(aNewMode);            
-        }
-    }
-
-TInt CAknFepManager::LaunchCangJieOptionDlgL()
-    {
-    // Get the CangJie level from the GS
-    TInt currentLevel = iSharedDataInterface->CangJieMode();
-    
-    if ((currentLevel != ECangJieNormal) 
-    && (currentLevel != ECangJieEasy) 
-    && (currentLevel != ECangJieAdvanced))
-        return KErrGeneral;
-
-    // Launch the CangJie setting menu
-    CDesCArrayFlat* items = CCoeEnv::Static()->ReadDesC16ArrayResourceL(R_AVKON_CANGJIE_OPTIONS_LBX);
-    CleanupStack::PushL(items);
-
-    TUid fepUid = CCoeEnv::Static()->FepUid();   
-    ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-	TInt ret = iUiInterface->LaunchCangJieOptionDlgL(
-        R_AVKON_CANGJIE_MODE_OPTIONS_SETTING_PAGE,
-        currentLevel,
-        items
-        );
-    PrepareFepAfterDialogExitL(fepUid);
-
-    CleanupStack::PopAndDestroy(items);
-
-    return ret ? currentLevel : KErrGeneral;
-    }
-
-GLDEF_C void AknFepPanic(TAknFepPanic aPanic)
-    {
-    User::Panic(_L("AKNFEP"),aPanic);
-    }
-
-/**
- * Set Multitap timer value. 
- *
- * @since 3.0
- * @param Value of KAknFepMultiTapTimer setting
- */
-void CAknFepManager::SetMultiTapTimer(const TInt aMultiTapTimer)
-    {
-    if (iMultiTapTimer != aMultiTapTimer)
-        {
-        iMultiTapTimer = aMultiTapTimer;
-        }
-    }
-
-/**
- * Set Japanese Qwerty Flags value. 
- *
- * @since 3.0
- * @param Value of KAknFepJapaneseSpecialCharFlag setting
- */
-void CAknFepManager::SetJapaneseQwertyFlags(const TInt aJapaneseQwertyFlags)
-    {
-    if (iJapaneseQwertyFlags != aJapaneseQwertyFlags)
-        {
-        iJapaneseQwertyFlags = aJapaneseQwertyFlags;
-        }
-    }
-
-/**
- * Handle the Chr Key Monitor
- * for Japanese variant only.
- *
- * @since 3.0
- * @return KErrNone if succeed, KErrDied if failed
- */
-TInt CAknFepManager::HandleChrKeyMonitorCallback(TAny* aObj)
-    {
-    TRAPD(err, static_cast<CAknFepManager*>(aObj)->HandleChrKeyMonitorL());
-    if (err)
-        {
-        static_cast<CAknFepManager*>(aObj)->CleanUpFep();
-        return KErrDied;
-        }
-    return KErrNone;
-    }
-
-/**
- * Handle the Chr Key Monitor
- * for Japanese variant only.
- *
- * @since 3.0
- */
-void CAknFepManager::HandleChrKeyMonitorL()
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-#ifdef __HALF_QWERTY_KEYPAD        
-    if ( IsFlagSet(EFlagQwertyChrKeyDepressed) && 
-    		  IsFlagSet(EFlagNoActionDuringChrKeyPress) && 
-    		  (EPtiKeyboardHalfQwerty == KeyboardLayout() ) && 
-    		  ( iWesternPredictive || iMode == EPinyin || 
-    		     iMode == EStroke || iMode == EZhuyin ) )   
-    	{
-    	// Clear the chr key depressed flag
-    	TBool validchr = FepUI()->IsValidLongChrKeyPress();
-    	
-    	if(!validchr || !IsAbleToLaunchSCT() )
-    		{
-			  FepUI()->HandleKeyL( EStdKeyLeftFunc, EShortKeyPress );    		
-			  ClearFlag( EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-    		}
-    	else
-    		{
-    		// will launch SCT later
-    		iChrLongKeyPress = ETrue;	
-    		}	
-        
-    	}
-    	else
-#endif   
-#endif
-	 if (IsFlagSet(EFlagQwertyChrKeyDepressed) && IsFlagSet(EFlagNoActionDuringChrKeyPress)
-     && iCurrentFepUI->IsValidShiftKeyPress())
-        {
-        // Timer cancel
-        iChrKeypressMonitor->Cancel();
-        // Commit characters
-        HandleChangeInFocus();
-        // Clear flags
-        ClearFlag(EFlagQwertyChrKeyDepressed | EFlagNoActionDuringChrKeyPress);
-        // Open editting menu
-        LaunchSelectModeMenuL();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::SetCursorSelectionL
-// Set editor cursor selection.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::SetCursorSelectionL(const TCursorSelection& /*aCurSel*/, TBool /*aSyncCursor*/)
-    {
-    }
-
- TInt CAknFepManager::HandleResourceChangedCallback(TAny* aObj)
-	{
-	TRAPD(err, static_cast<CAknFepManager*>(aObj)->ResourceChangedTimeroutL());
-    if (err)
-        {
-        static_cast<CAknFepManager*>(aObj)->CleanUpFep();
-        return KErrNoMemory;
-        }
-    return KErrNone;
-	}
-
-void CAknFepManager::ResourceChangedTimeroutL()
-    {
-    if(iCurrentFepUI)
-	    {
-	    iCurrentFepUI->ResourceChanged(1);	
-	    }   
-    }
-
-
-// -----------------------------------------------------------------------------
-// pen related inplementation
-// -----------------------------------------------------------------------------
-#ifdef RD_SCALABLE_UI_V2
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::HandleLayoutChange
-// Update plugin UI case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::HandleResourceChange(TInt aType)
-    {
-    if(iCurrentFepUI)
-    	{
-        iAsyncResouceChanged.CallBack();
-    	}
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(iCandidatePopup && iPtiEngine && (aType == KEikDynamicLayoutVariantSwitch))        
-        {
-        //When there is a change of layout, the inline text position changes and hence the candidate 
-        //list position also needs to change accordingly.
-        //We need the editor to be brought back to focus, this is because we need the position of
-        //the inline text.
-        iCandidatePopup->UnFocus();
-        //Need to get the editor state back after it is brought back to focus.
-        TRAP_IGNORE( HandleChangeInFocusL()); 
-        
-        // Add candidate list control stack to get the layout change event
-        // after dialog control......
-        TRAP_IGNORE( iCandidatePopup->SetFocusAddStackReducePriorityL() );
-        
-        }
-#endif		
-    TRAP_IGNORE(SendEventsToPluginManL( EPluginResourceChanged, aType ));
-    }   
-void CAknFepManager::HandlePointerEventL(const TPointerEvent& aPointerEvent)
-    {
-    if (IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        ClearFlag(CAknFepManager::EFlagNoMatches); 
-        }
-   
-    if(aPointerEvent.iType == TPointerEvent::EDrag)
-    	{
-    	SetExtendedFlag(EExtendedFlagPointerEventTypeEDrag);
-    	}
-    if (aPointerEvent.iType == TPointerEvent::EButton1Up)
-        {
-    	ClearExtendedFlag(EExtendedFlagPointerEventTypeEDrag);
-
-        // Remember last up-click in case it is needed for displaying
-        // stylus ccpu-menu.
-        iClickPoint = aPointerEvent.iPosition;
-        }    
-    }
- 
-// -----------------------------------------------------------------------------
-// CAknFepManager::HandleSelModeArrowKeyEventL
-// Set text selection when tap on the arrow keys.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepManager::HandleSelModeArrowKeyEventL(const TKeyEvent& aKeyEvent, 
-                                                  TEventCode aEventCode,
-                                                  TKeyResponse& aRetCode)
-    {
-    TCursorSelection currentEditorSelection(0,0);
-	if(iInputCapabilities.FepAwareTextEditor())
-    	{
-    	iInputCapabilities.FepAwareTextEditor()->
-    		GetCursorSelectionForFep(currentEditorSelection);
-    	}    
-        
-	if(!IsMfneEditor() &&
-		(PluginInputMode() == EPluginInputModeItut ||
-		 PluginInputMode() == EPluginInputModeFSQ)  &&
-		 currentEditorSelection.Length() != 0)
-    	{
-    	
-        if ((aKeyEvent.iScanCode == EStdKeyLeftArrow) || (aKeyEvent.iScanCode == EStdKeyRightArrow)) 
-            {   
-            if (!(aKeyEvent.iModifiers & EModifierShift))
-                {
-                TKeyEvent ccpuStart = aKeyEvent;
-                ccpuStart.iModifiers |= EModifierShift;
-                ccpuStart.iModifiers |= EModifierRightShift;
-                CCoeEnv::Static()->SimulateKeyEventL(ccpuStart, aEventCode);        
-                
-                aRetCode = EKeyWasConsumed;
-                return ETrue;
-                }  
-            else
-                {
-                aRetCode = EKeyWasNotConsumed;
-                return ETrue;              
-                }               
-            }	
-    	}
-    aRetCode = EKeyWasNotConsumed;
-    return EFalse;    
-    }
-
-#else // !RD_SCALABLE_UI_V2
-// -----------------------------------------------------------------------------
-// CAknFepManager::HandleResourceChange
-// Update plugin UI case mode.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::HandleResourceChange(TInt aType)
-    {
-    if (iFepFullyConstructed && Japanese() )
-        {
-        // Japaneseinput should handle the event of changing layout or screen.
-        FepUI()->ResourceChanged(aType);
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(iCandidatePopup && iPtiEngine && (aType == KEikDynamicLayoutVariantSwitch))        
-        {
-        //When there is a change of layout, the inline text position changes and hence the candidate 
-        //list position also needs to change accordingly.
-        //We need the editor to be brought back to focus, this is because we need the position of
-        //the inline text.
-        iCandidatePopup->UnFocus();
-        //Need to get the editor state back after it is brought back to focus.
-        TRAP_IGNORE(HandleChangeInFocusL());
-        //Can not do anything if FEP is not constructed fully
-        if(iFepFullyConstructed)
-            {
-            //Now we read the position of the inline text
-            TPoint  inlineEditorTl;
-            TPoint  inlineEditorBr;
-            TInt    height;
-            TInt    ascent;
-            TInt    documentOffset = iPtiEngine->CurrentWord().Length();
-            //  Popup Position for RTL
-            if(iLanguageCapabilities.iRightToLeftLanguage)
-                documentOffset = 0;
-            //  Popup Position for RTL
-            TRAP_IGNORE( GetScreenCoordinatesL( inlineEditorTl, height, ascent, documentOffset ));
-            inlineEditorTl.iY -= height;
-            TRAP_IGNORE( GetScreenCoordinatesL( inlineEditorBr, height, ascent ));
-            
-            //Let the candidate list know about a change of resource and update the
-            //inline text rectangle.
-            //Now show the candidate list at the re-calculated position
-            iCandidatePopup->ShowAtNewPosition(TRect(inlineEditorTl,inlineEditorBr));
-            }
-        }
-#endif		
-    }
-
-#endif //RD_SCALABLE_UI_V2    
-
-TDigitType CAknFepManager::LocalDigit()
-    {
-    return iLanguageCapabilities.iLocalDigitType;
-    }
-    
-/**
-* Returns ETrue if arabic indic digit setting is on. 
-*
-* @since 3.0
-*/
-TBool CAknFepManager::ArabicIndicDigitsInUse() const
-    {
-    return (iLanguageCapabilities.iLocalDigitType == EDigitTypeArabicIndic);
-    }
-       
-TBool CAknFepManager::EasternArabicIndicDigitsInUse() const
-    {
-    return (iLanguageCapabilities.iLocalDigitType == EDigitTypeEasternArabicIndic);
-    }
-    
-/**
- *  Sets delayed commit on (predicitve word will be commited in 
- *  next call to TryCloseUiL. This is needed because of Japanese ReadingTextL).
- *
- * @since 3.1
- */
-void CAknFepManager::SetDelayedCommit()
-    {
-    iCcpuMode |= ECcpuStataCommitPredictiveWord;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::SetDefaultNumberMode
-//
-// Set default number mode for non-latin languagues
-// 
-// Copied from CGSLangModel::SetDefaultNumberMode
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::SetDefaultNumberMode( TInt aMode, TInt aNbrModeType )
-    {
-    //As aMode comes from the UI, it can either be 0 or 1. This needs
-    //special handling for Indic mode as it has been defined as an enum
-    //constant and has a value of 2. This applies to any values defined
-    //in the enum and have a value > 1.
-    if ( aNbrModeType == ENbrModeTypeArabic ||
-         aNbrModeType == ENbrModeTypeEasternArabic )
-        {
-        iSharedDataInterface->SetDefaultNumberMode( KSettingsDefaultNumberMode, aMode );
-        }
-    else
-        {
-        iSharedDataInterface->SetDefaultNumberMode( KSettingsIndicDefaultNumberMode, aMode );
-        }
-
-    TLocale locale;
-    if ( aMode == ENbrModeLatin )
-        {
-        locale.SetDigitType( EDigitTypeWestern );
-        }
-    else
-        {
-        //if aMode != EGSNbrModeLatin, then it should be either latin or arabic. However
-        //as EGSNbrModeArabic and EGsNbrModeIndic both have a value = 1, we can't use
-        //that constant for below comparison. Hence, need to depend on the 2nd param.
-        switch ( aNbrModeType )
-            {
-            case ENbrModeTypeArabic:
-                locale.SetDigitType( EDigitTypeArabicIndic );
-                break;
-            case ENbrModeTypeIndic:
-                locale.SetDigitType( EDigitTypeDevanagari );
-                break;
-            case ENbrModeTypeEasternArabic:
-                locale.SetDigitType( EDigitTypeEasternArabicIndic );
-                break;
-            default:
-                break;
-            }
-        }
-
-    locale.Set();
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::ResolveCurrentCandidateListIndex
-//
-// Calculates correct selection index for matches popup list.
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepManager::ResolveCurrentCandidateListIndex(CDesCArrayFlat* aCandList)
-    {
-    if (iPtiEngine && aCandList)
-        {           
-        TBuf<EMaximumFepWordLength> currentCand;
-    
-        currentCand.Copy(iPtiEngine->CurrentWord());    
-        for (TInt i = 0; i < aCandList->Count(); i++)
-            {
-            if (currentCand == aCandList->MdcaPoint(i))
-                {
-                if (i == aCandList->Count() - 1)
-                    {
-                    return 0;
-                    }
-                return i + 1;
-                }
-            }
-        }
-
-    return 0;
-    }
-
-void CAknFepManager::AlignLogicalAndVisualCursorL( TTmDocPosSpec::TType aType, 
-                                                    TBool aToLeft )
-    {
-    if( !( iInputCapabilities.SupportsSecretText() ) )
-        {
-        if( IsFlagSet( EFlagInsideInlineEditingTransaction ) && 
-            IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) )
-            {
-            CommitInlineEditL();
-            }
-
-        MCoeFepAwareTextEditor* fepAwareTextEditor = 
-            iInputCapabilities.FepAwareTextEditor();
-
-	    MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-        if( (docNavi || TextLayout()) && fepAwareTextEditor )
-            {
-            TTmDocPosSpec pos = DocPos();
-            pos.iType = aType;
-            TTmPosInfo2 info;
-            if (docNavi)
-            	{
-	            docNavi->GetNextVisualCursorPos( pos, info, aToLeft );
-            	}
-            else
-            	{
- 	            TextLayout()->TagmaTextLayout().GetNextVisualCursorPos( pos, info, aToLeft );
-            	}
-            TCursorSelection curSel( info.iDocPos.iPos, info.iDocPos.iPos );
-            fepAwareTextEditor->SetCursorSelectionForFepL( curSel );
-            }
-        }
-    }
-
-void CAknFepManager::RemoveRephaCharacterL()
-    {
-    MCoeFepAwareTextEditor* fepAwareTextEditor = 
-        iInputCapabilities.FepAwareTextEditor();
-    
-    if( fepAwareTextEditor )
-        {
-        TInt previousCharPos = 0;
-        TBool leftFlag = GetNextVisualLeftCharacter( previousCharPos );
-        
-        if( !leftFlag )
-            {
-            return;
-            }
-        
-        TCursorSelection curSel;
-        fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-            
-        TInt lowerPos = curSel.LowerPos();
-        if( lowerPos > 1 )
-            {
-            const TInt rephaLength( 2 );
-            TBuf<rephaLength> previousCharacter;
-            previousCharacter.FillZ();
-            
-            fepAwareTextEditor->
-                GetEditorContentForFep( previousCharacter, 
-                                        previousCharPos, rephaLength );
-            
-            if (rephaLength == previousCharacter.Length())
-                {
-                if( previousCharacter[0] == TAknFepUiIndicInputManager::RaCharacter( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) &&
-                    previousCharacter[1] == TAknFepUiIndicInputManager::Virama( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) )
-                    {
-                    curSel.iAnchorPos = previousCharPos;
-                    curSel.iCursorPos = previousCharPos + rephaLength;
-                    
-                    // Remove the repha
-                    
-                    if( IsFlagSet( EFlagInsideInlineEditingTransaction ) && 
-                        IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) )
-                        {
-                        CommitInlineEditL();
-                        }
-                    StartInlineEditL( curSel, previousCharacter, rephaLength, ETrue );
-                    UpdateInlineEditL( KNullDesC, 0 );
-                    CommitInlineEditL();
-    
-                    // Go to the visual right position of current ligature as the 
-                    // repha has been deleted.
-                    AlignLogicalAndVisualCursorL( TTmDocPosSpec::ELeading, EFalse );
-                    }
-                }
-            }
-        }
-    }
-
-TBool CAknFepManager::IsRephaPresent()
-    {
-    TBool result = EFalse;
-    
-    MCoeFepAwareTextEditor* fepAwareTextEditor = 
-        iInputCapabilities.FepAwareTextEditor();
-
-    if( fepAwareTextEditor )
-        {
-        TCursorSelection curSel;
-        
-        fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-        
-        TInt previousCharPos = 0;
-        TBool leftFlag = GetNextVisualLeftCharacter( previousCharPos );
-        
-        if( !leftFlag )
-            {
-            return result;
-            }
-
-        TInt lowerPos = curSel.LowerPos();
-        if( lowerPos > 1 )
-            {
-            const TInt rephaLength( 2 );
-            TBuf<rephaLength> previousCharacter;
-            previousCharacter.FillZ();
-            
-            fepAwareTextEditor->
-                GetEditorContentForFep( previousCharacter, 
-                                        previousCharPos, rephaLength );
-
-            // Verify whether the length of the string is equal to the length 
-            // of repha before doing further checks.
-            if( previousCharacter.Length() == rephaLength )
-                {               
-                if( previousCharacter[0] == TAknFepUiIndicInputManager::RaCharacter( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) &&
-                    previousCharacter[1] == TAknFepUiIndicInputManager::Virama( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) )
-                    {
-                    result = ETrue;
-                    }
-                }
-            }
-        }
-        
-    return result;
-    }
-    
-TText CAknFepManager::PreviousToPreviousChar( TBool aContextSensitive )
-    {
-    TBuf<ESingleCharacter> prevToPrevChar( ESingleCharacter );
-    prevToPrevChar.FillZ();
-
-    if( !aContextSensitive )
-        {
-        TTmDocPosSpec pos = DocPos();
-        
-        // Pos=0 means it is before the first character and there is no previous character
-        if (pos.iPos > 0 ) 
-            {
-            if( iInputCapabilities.FepAwareTextEditor() )
-                {
-                iInputCapabilities.FepAwareTextEditor()->
-                    GetEditorContentForFep( prevToPrevChar, pos.iPos - 1, ESingleCharacter );
-                }
-            }
-        }
-    else
-        {
-        TCursorSelection curSel;
-        
-        MCoeFepAwareTextEditor* fepAwareTextEditor = 
-            iInputCapabilities.FepAwareTextEditor();
-        
-        if( fepAwareTextEditor )
-            {
-            fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-            TInt lowerpos = curSel.LowerPos();
-
-            if( lowerpos > 1 )
-                {
-                fepAwareTextEditor->
-                    GetEditorContentForFep( prevToPrevChar, lowerpos - 2, ESingleCharacter );
-                }
-            }
-        }
-    if (prevToPrevChar.Length())
-        return prevToPrevChar[0];
-    else
-        return NULL;
-    }
-
-void CAknFepManager::RemoveRakarCharacterL()
-    {
-    MCoeFepAwareTextEditor* fepAwareTextEditor = 
-        iInputCapabilities.FepAwareTextEditor();
-    
-    if( fepAwareTextEditor )
-        {
-        TCursorSelection curSel;
-            
-        fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-        
-        TInt lowerpos = curSel.LowerPos();
-
-        if( lowerpos > 1 )
-            {
-            const TInt rakarLength( 2 );
-            TBuf<rakarLength> buffer;
-            buffer.FillZ();
-
-            fepAwareTextEditor->
-                GetEditorContentForFep( buffer, lowerpos - rakarLength, rakarLength );
-            
-            if (rakarLength == buffer.Length())
-                {
-                if( buffer[0] == TAknFepUiIndicInputManager::Virama( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) &&
-                    buffer[1] == TAknFepUiIndicInputManager::RaCharacter( 
-                        TLanguage( iLanguageCapabilities.iInputLanguageCode ) ) )
-                    {
-                    curSel.iAnchorPos = lowerpos - rakarLength;
-                    curSel.iCursorPos = lowerpos;
-                    
-                    // Remove the repha
-                    
-                    if( IsFlagSet( EFlagInsideInlineEditingTransaction ) && 
-                        IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) )
-                        {
-                        CommitInlineEditL();
-                        }
-                    StartInlineEditL( curSel, buffer, rakarLength, ETrue );
-                    UpdateInlineEditL( KNullDesC, 0 );
-                    CommitInlineEditL();
-                    }
-                }
-            }
-        }
-    }
-
-/**
- * Returns the status of predictive input.
- *
- *  @since 3.2
- *  @return ETrue is available predictive input.
- */
-TBool CAknFepManager::IsAbleToChangePrediction() const
-    {
-    TBool ret = EFalse;
-    if (!(iAknEditorFlags & EAknEditorFlagNoT9))
-        {
-        if (iMode == EHiraganaKanji)
-            {
-            if (HasJapanesePredictionInputMode())
-                {
-                ret = ETrue;
-                }
-            }
-        else
-            {
-            ret = ETrue;
-            }
-        }
-    return ret;
-    }
-
-TLanguage CAknFepManager :: GetInputLanguageFromSharedDataInterface()
-{
-    return ((TLanguage)(iSharedDataInterface->InputTextLanguage()));
-}
-    
-    
-void CAknFepManager::DeactivatePredicitveWordAndMoveCursorL()
-    {
-    if (WesternPredictive())
-        {           
-        TWesternNaviEvent naviEvent = ERightNaviEvent;
-    
-        if (iLanguageCapabilities.iRightToLeftLanguage)
-            {
-            naviEvent = ELeftNaviEvent;     
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT         
-		// This function is called at time of Cut/Copy command
-		// TryCloseUiL will remove the auto completion part
-		// To adjust the visual cursor position commit the text with
-		// auto completion part.  
-		if( IsAutoCompleteOn()) 
-			{
-			TInt tailLength = 0;
-			iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-
-			if( tailLength > 0)
-				{
-				// Sync the key sequence and editor text.	
-				iPtiEngine->HandleCommandL( EPtiCommandLockCurrentCandidate );			
-				}
-			}
-#endif
-    
-        // Find the visual left/right end of the current word
-        TTmDocPosSpec pos;
-        GetAvkonDefinedVisualLimitsOfSelection(
-               iUncommittedText, naviEvent, pos, NULL );
-               
-        TryCloseUiL();
-    
-        // Position should be dis-ambiguated based on last navigation and direction of blocks.
-        AdjustPosSpecForAmbiguityAfterLeftOrRightNavigation( pos, naviEvent );
-
-        SetCursorPositionL( pos );
-
-        iCaseMan->UpdateCase(ENullNaviEvent);       
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::EditorCcpuStatus
-//
-// Returns the Ccpu status of given editor state as a flag combination.
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepManager::EditorCcpuStatus(CAknEdwinState* aEdwinState)
-    {
-    TInt ret = 0;
-                                            
-    if (aEdwinState && aEdwinState->CcpuState())
-        {
-        if (aEdwinState->CcpuState()->CcpuCanCopy())
-            {
-            ret |=  ECcpuStatusFlagCanCopy;
-            }
-        if (aEdwinState->CcpuState()->CcpuCanCut()) 
-            {
-            ret |=  ECcpuStatusFlagCanCut;
-            }
-        if (aEdwinState->CcpuState()->CcpuCanPaste())               
-            {
-            ret |=  ECcpuStatusFlagCanPaste;                    
-            }
-        }                 
-    return ret; 
-    }
-    
-void CAknFepManager::NewLigatureL( const TDesC& aText )
-    {
-    if( !iInputCapabilities.SupportsSecretText() && 
-        ( EditorHasFreeSpace() || 
-            IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) ) )
-        {
-        if ( iFepManState == EAknFepStateInitial ) //multitapping
-            {
-            if ( !IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) )
-                {
-                ClearFlag( EFlagLineFeedCharacter );
-                StartInlineEditL( aText );
-                SetFlag( EFlagInsideMultitapInlineEditingTransaction );
-                SetFlag( EFlagInsideInlineEditingTransaction );
-                }
-            }
-        }
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::CancelCcpuMode
-//
-// Cancels the copy / cut mode initiated from editing options -submenu.
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::CancelCcpuMode()
-    {
-    iIndicator->SetCopyMode(EFalse);
-    if (IsCcpuFlagSet(ECcpuStateStartCopy | ECcpuStateCopy | ECcpuStateStartCut | ECcpuStateCut))
-        {
-        iUiInterface->DeleteSoftkeys();    
-        }
-    
-    ResetCcpuFlags();                       
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::CancelShiftKeyTimer
-//
-// Cancels shift key timer.
-// -----------------------------------------------------------------------------
-//
-void CAknFepManager::CancelShiftKeyTimer()
-    {
-    ClearFlag(EFlagShiftKeyDepressed);
-    if (iShiftKeypressMonitor)
-        {
-        iShiftKeypressMonitor->Cancel();    
-        }
-    }
-
-void CAknFepManager::RemoveTextFromEditorL( TInt aNumOfCharacters, 
-                                            TInt aPos /*= 0*/,
-                                            TBool aIsToAlignCursor /* = ETrue */)
-	{
-    if( IsFlagSet( EFlagInsideInlineEditingTransaction ) && 
-        IsFlagSet( EFlagInsideMultitapInlineEditingTransaction ) )
-        {
-        // Update the inline buffer with NULL descriptor.
-        // Inline buffer can be only at position 0, i.e. 
-        // where the cursor stands.
-        if( aNumOfCharacters == UncommittedText().Length()
-             && aPos == 0 )
-            {
-            UpdateInlineEditL( KNullDesC, 0 );
-            }
-        CommitInlineEditL();
-        }
-    else
-        {
-        MCoeFepAwareTextEditor* fepAwareTextEditor = 
-            iInputCapabilities.FepAwareTextEditor();
-
-        if( fepAwareTextEditor && aPos >= 0 )
-            {
-            // Get the previous cursor position.
-            TCursorSelection cursorSelPrevious;
-            fepAwareTextEditor->GetCursorSelectionForFep( cursorSelPrevious );
-
-            // Place the cursor at the desired position.
-            TCursorSelection sel( cursorSelPrevious.iCursorPos - aPos, 
-                            cursorSelPrevious.iCursorPos - aPos );
-        	fepAwareTextEditor->SetCursorSelectionForFepL( sel );
-
-            // Set cursor span on previous N characters
-            if ( sel.iAnchorPos >= aNumOfCharacters )
-                {
-                sel.iAnchorPos -= aNumOfCharacters;
-
-                // get text to clear
-                TBuf<EMaximumFepWordLength> bufToClear;
-                fepAwareTextEditor->GetEditorContentForFep( bufToClear, sel.iAnchorPos, 
-                                                            aNumOfCharacters );
-
-                // delete the character with an inline edit
-                StartInlineEditL( sel, bufToClear, aNumOfCharacters, EFalse );
-                UpdateInlineEditL( KNullDesC, 0 );
-                CommitInlineEditL();
-                
-                if( aIsToAlignCursor )
-                    {
-                    // Move the cursor to the original position considering the 
-                    // aNumOfCharacters
-                    cursorSelPrevious.iCursorPos -= aNumOfCharacters;
-                    cursorSelPrevious.iAnchorPos = cursorSelPrevious.iCursorPos;
-                    fepAwareTextEditor->SetCursorSelectionForFepL( cursorSelPrevious );
-                    }
-                }        
-            }        
-        }
-    }
-
-#ifdef RD_MARATHI
-
-TBool CAknFepManager::IsChandraAPresentL()
-    {
-    TBool result = EFalse;
-
-    MCoeFepAwareTextEditor* fepAwareTextEditor = 
-		iInputCapabilities.FepAwareTextEditor();
-
-	if( fepAwareTextEditor )
-		{
-		TCursorSelection curSel;
-		
-		fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-		
-		TInt lowerpos = curSel.LowerPos();
-
-        TInt chandraALength = 2;
-        TBuf<2> buf;
-	    TAknFepUiIndicInputManager::GetChandraA( buf );
-
-		if( lowerpos > ( chandraALength - 1 ) )
-			{
-			TBuf<2>previousCharacter;
-
-			fepAwareTextEditor->GetEditorContentForFep( 
-                previousCharacter, lowerpos-chandraALength, chandraALength );
-			
-			if( buf.CompareC( previousCharacter ) == 0 )
-			    {
-			    // Chandra-A found
-			    result = ETrue;
-			    }
-			}
-		}
-    return result;
-	}
-
-TBool CAknFepManager::IsEyeLashRaPresentL()
-    {
-    TBool result = EFalse;
-
-    MCoeFepAwareTextEditor* fepAwareTextEditor = 
-		iInputCapabilities.FepAwareTextEditor();
-
-	if( fepAwareTextEditor )
-		{
-		TCursorSelection curSel;
-		
-		fepAwareTextEditor->GetCursorSelectionForFep( curSel );
-		
-		TInt lowerpos = curSel.LowerPos();
-
-        
-        TBuf<3> buf;
-	    TAknFepUiIndicInputManager::GetEyeLashRa( buf, 
-	                                    (TLanguage)iLanguageCapabilities.iInputLanguageCode );
-        TInt eyeLashRaLength = buf.Length();
-
-		if( ( lowerpos - eyeLashRaLength ) >= 0 )
-			{
-			TBuf<3>previousCharacter;
-
-			fepAwareTextEditor->GetEditorContentForFep( 
-                previousCharacter, lowerpos-eyeLashRaLength, eyeLashRaLength );
-			
-			if( previousCharacter.Length() >=2 && 
-			    buf.CompareC( previousCharacter ) == 0 )
-			    {
-			    // EyeLashRa found
-			    result = ETrue;
-			    }
-			}
-		}
-    return result;
-	}
-
-#endif // RD_MARATHI
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::RemoveSuggestedCompletionL()
-{	
-	if(iPtiEngine->InputMode() == EPtiEngineWordCompletion && 
-	   IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-		{
-			TBuf<CAknFepManager::EMaximumFepWordLength> currentText = iPtiEngine->CurrentWord();
-			if(currentText.Length() > iPtiEngine->CurrentInputSequence().Length())
-				{
-				currentText.SetLength(iPtiEngine->CurrentInputSequence().Length());
-				iPtiEngine->SetCurrentWord(currentText);
-	    		UpdateInlineEditL(currentText,currentText.Length()); 
-   	            TransferFepStateToEditorL();
-				}
-			
-		}
-}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::ExtendedInputCapabilities
-//
-// Returns the extended input bapabilities bitvector.
-// -----------------------------------------------------------------------------
-//
-TUint CAknFepManager::ExtendedInputCapabilities() const
-    {
-    MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-
-    if ( mop && iInputCapabilities.FepAwareTextEditor() )//IsFepAwareTextEditor()
-		{
-		CAknExtendedInputCapabilities* extendedInputCapabilities = 
-		mop->MopGetObject( extendedInputCapabilities );
-
-		if ( extendedInputCapabilities ) 
-			{
-			return extendedInputCapabilities->Capabilities();
-			}
-		} 
-		
-    return 0;		          
-    }
-
-
-#ifdef RD_SCALABLE_UI_V2         
-// -----------------------------------------------------------------------------
-// CAknFepManager::LaunchStylusCcpuMenuL
-//
-// Displays stylus ccpu-menu.
-// -----------------------------------------------------------------------------
-//    
-void CAknFepManager::LaunchStylusCcpuMenuL(TPoint &aClickPoint)
-    {
-    const TInt KItemCopy  = 0x01;
-    const TInt KItemCut   = 0x02;
-    const TInt KItemPaste = 0x04;
-    
-    delete iStylusCcpuMenu;
-    iStylusCcpuMenu = NULL;    
-     
-    // It is assume that this method is called only if there is selected
-    // text in suitable editor, ie. there will be at least "copy"-item available.
-    TInt items = KItemCopy;    
-        
-    CAknEdwinState* editorState = EditorState();
-    if (editorState && editorState->CcpuState())
-        {              
-        if (editorState->CcpuState()->CcpuCanCut())
-            {
-            items |= KItemCut;
-            }
-        if (editorState->CcpuState()->CcpuCanPaste())
-            {
-            items |= KItemPaste;
-            }                    
-        }        
-    
-    if (items)
-        {
-        TBuf<CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength> itemStr;          
-        iStylusCcpuMenu = iUiInterface->NewStylusPopUpMenuL(this, aClickPoint);     
-        
-        if (items & KItemCopy)
-            {
-            StringLoader::Load(itemStr, R_AKNFEP_SOFTKEY_COPY);            
-            iStylusCcpuMenu->AddMenuItemL(itemStr.Mid(1, itemStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength), EEikCmdEditCopy);            
-            }
-        if (items & KItemCut)
-            {                    
-            itemStr.Zero();
-            StringLoader::Load(itemStr, R_AKNFEP_SOFTKEY_CUT);            
-            iStylusCcpuMenu->AddMenuItemL(itemStr.Mid(1, itemStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength), EEikCmdEditCut);
-            }
-        if (items & KItemPaste)
-            {
-            itemStr.Zero();
-            StringLoader::Load(itemStr, R_AKNFEP_STYLUS_CCPU_MENU_PASTE);               
-            iStylusCcpuMenu->AddMenuItemL(itemStr.Mid(1, itemStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength), EEikCmdEditPaste);                
-            }
-        
-        SetCcpuFlag(ECcpuStateCopy); // This forces ProcessCommandL to handle the events.
-        iStylusCcpuMenu->SetPosition(aClickPoint);    
-        iStylusCcpuMenu->ShowMenu();       
-        }
-    }
-#endif    
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- TBool CAknFepManager::IsFnKeyMappedL(TPtiKeyboardType aKeyboardType)
-    {
-    MPtiLanguage *lang = NULL;
-    RArray < TPtiNumericKeyBinding > keybinding;
-    TBool ret = EFalse;
-    if(iPtiEngine)
-        {
-        lang = iPtiEngine->CurrentLanguage();
-        if(lang)
-        {
-        iPtiEngine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), keybinding, aKeyboardType);
-        TInt numericKeysCount = keybinding.Count();
-        while ( numericKeysCount-- )
-            {
-            TPtiNumericKeyBinding numKeyBind = keybinding[numericKeysCount];
-            if ( numKeyBind.iCase == EPtiCaseFnLower || numKeyBind.iCase == EPtiCaseFnUpper)
-                {
-                ret = ETrue;
-                break;
-                    }
-                }
-            }
-        }
-    keybinding.Reset();
-    return ret;
-    }
-TBool CAknFepManager::IsFnKeyMapped()
-    {
-    return iIsFnKeyMapped;
-    }
-    
-void CAknFepManager::SetFnKeyMappingState()
-    {
-    TRAP_IGNORE(iIsFnKeyMapped = IsFnKeyMappedL());
-    }
-
-TBool CAknFepManager::KeyMapsDifferentCharacterWithFn( TPtiKey aKey ) const
-    {
-    // we are interested only about the first mapped character => buffer length 1 is adequate
-    TBuf<1> lowerMapping; 
-    TBuf<1> upperMapping;
-    TBuf<1> lowerFnMapping; 
-    TBuf<1> upperFnMapping;
-    iPtiEngine->MappingDataForKey( aKey, lowerMapping, EPtiCaseLower );
-    iPtiEngine->MappingDataForKey( aKey, upperMapping, EPtiCaseUpper );
-    iPtiEngine->MappingDataForKey( aKey, lowerFnMapping, EPtiCaseFnLower );
-    iPtiEngine->MappingDataForKey( aKey, upperFnMapping, EPtiCaseFnUpper );
-    
-    if ( lowerFnMapping.Length() )
-        {
-        if ( !lowerMapping.Length() ||              // < key maps character only with Fn
-             lowerMapping[0] != lowerFnMapping[0] ) // < Fn changes the character of the key
-            {
-            return ETrue;
-            }
-        }
-    else if ( upperFnMapping.Length() )
-        {
-        if ( !upperMapping.Length() ||              // < key maps character only with Fn
-             upperMapping[0] != upperFnMapping[0] ) // < Fn changes the character of the key
-            {
-            return ETrue;
-            }
-        }
-    
-    return EFalse; // The key doesn't have symbol behind Fn or the symbol is the same as without Fn
-    }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-MAknFepDocumentNavigation* CAknFepManager::AknFepDocumentNavigation() const
-	{
-	MAknFepDocumentNavigation* navi = NULL;
-	
-    MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-    if ( mop )
-        {
-        mop->MopGetObject( navi );
-        }
-    
-    return navi;
-	}
-
-CAknFepUIInterface* CAknFepManager::UiInterface()
-	{
-	return iUiInterface;
-	}
-
-void CAknFepManager::AlignLogicalAndVisualCursorL()
-    {
-    TBool isIndicLang = 
-        TAknFepUiIndicInputManager::
-            IsIndicLangauge( TLanguage( iLanguageCapabilities.iInputLanguageCode ) );
-
-    if( isIndicLang )
-        {
-        TTmDocPosSpec pos = DocPos();
-        pos.iType = TTmDocPosSpec::ETrailing;
-        TTmPosInfo2 info;
-        TTmLineInfo lineInfo;
-
-        TBool findAvailable = EFalse;
-
-        MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation();
-
-        if ( docNavi )
-            {
-            docNavi->FindDocPos( pos, info, lineInfo );
-            findAvailable = ETrue;
-            }
-        else
-            {
-            CTextLayout* textLayout = TextLayout();
-            if ( textLayout )
-                {
-                textLayout->TagmaTextLayout().FindDocPos( pos, info, lineInfo );	    					    
-                findAvailable = ETrue;
-                }
-            }
-
-        if ( findAvailable )
-            {
-            TCursorSelection sel( info.iDocPos.iPos, info.iDocPos.iPos );
-            iInputCapabilities.FepAwareTextEditor()->SetCursorSelectionForFepL(sel);
-            }
-        }
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TKeyResponse CAknFepManager::HandleFnKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aEventCode )
-    {
-     TKeyResponse ret; 
-     
-#ifdef __HALF_QWERTY_KEYPAD  
-     if ( IsFlagSet( EFlagShiftKeyDepressed ) && 
-        ( EPtiKeyboardHalfQwerty == KeyboardLayout() )&& 
-        ( aEventCode != EEventKeyUp ) )
-         {
-         return EKeyWasNotConsumed;
-         }
-#endif
-     
-     if (!iCurrentFepUI->IsValidFnKeyPress() && EStdKeyRightFunc == aKeyEvent.iScanCode)
-     	{
-     	TBool Uiret = ETrue;
-     	if (EEventKeyDown == aEventCode )
-     		{
-      		Uiret = FepUI()->HandleKeyL(EKeyRightFunc, EShortKeyPress);     		
-     		}
-     		
-     	if (Uiret)
-     		{
-     		ret = EKeyWasConsumed;
-     		}
-        else
-        	{
-     	    ret = iFnKeyManager->HandleFnKeyEventL( aKeyEvent, aEventCode, 
-                                            	    iInputCapabilities ) ;     	        	
-        	}	 
-     	}
-     else
-     	{
-     	
-     	ret = iFnKeyManager->HandleFnKeyEventL( aKeyEvent, aEventCode, 
-                                            	iInputCapabilities ) ;     	
-     	}
-     if(IsHybridAplhaEditor() && !iHybridAplphaChangedToAlphanumeric)
-         {
-         if(FnKeyState() != CAknFepFnKeyManager::EFnKeyLock)
-            iHybridAplphaChangedToAlphanumeric = ETrue;
-         }
-
-     return ret;
-    }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::HasJapanesePredictionInputMode
-// Has Japanese prediction input mode in PtiEngine
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepManager::HasJapanesePredictionInputMode() const
-    {
-    // Is it supported Japanese predictive input
-    TBool ret = EFalse;
-    MPtiLanguage* ptilang = iPtiEngine->GetLanguage(ELangJapanese);
-    if ( ptilang
-     &&  ( (!iQwertyInputMode && ptilang->HasInputMode(EPtiEngineHiraganaKanjiPredictive))
-         ||(iQwertyInputMode && ptilang->HasInputMode(EPtiEngineHiraganaKanjiPredictiveQwerty)) ) )
-        {
-        ret = ETrue;
-        }
-    return ret;
-    }
-#ifdef RD_HINDI_PHONETIC_INPUT
-void CAknFepManager::HandleIndicCaseL()
-	{
-		iHashKeyMan->HandleSetIndicStateL();
-	}
-#endif
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::IsCursorAtEndOfWord
-// 
-// -----------------------------------------------------------------------------
-//    
-TBool CAknFepManager::IsCursorAtEndOfWord()
-    {   
-    iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText);
-    TInt origPos = iUncommittedText.iCursorPos; 
-   
-    FindEndOfWord(iUncommittedText.iCursorPos);
-       
-    if (origPos != iUncommittedText.iCursorPos)
-        {
-        return EFalse;
-        }
-        
-    return ETrue;        
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepManager::GetCurrentCase()
-    {
-    TCase returnCase;
-    
-    switch( iCaseMan->CurrentCase() )
-        {
-        case EAknEditorUpperCase:
-        case EAknEditorTextCase:
-            {
-            returnCase = EUpperCase;
-            }
-            break;
-
-        case EAknEditorLowerCase:
-            {
-            returnCase = ELowerCase;
-            }
-            break;
-        
-        default:
-            returnCase = ELowerCase;
-            break;
-        }
-    return returnCase;
-    }
-// Predictive QWERTY changes (XT9) ---->
-
-void CAknFepManager::GetCandidatesL( CDesCArray& aArray, TInt& aActiveIdx )
-    {
-    iPtiEngine->GetCandidateListL(aArray);
-    iPtiEngine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, &aActiveIdx );
-    }  
-
-void CAknFepManager::GetUpdateCandidatePositionL(TRect& aRect)
-    {
-     if(iCandidatePopup && iFepFullyConstructed && iPtiEngine)
-        {
-        //Now we read the position of the inline text
-        TPoint  inlineEditorTl;
-        TPoint  inlineEditorBr;
-        TInt    height;
-        TInt    ascent;
-        TInt    documentOffset = iPtiEngine->CurrentWord().Length();
-        //  Popup Position for RTL
-        if(iLanguageCapabilities.iRightToLeftLanguage)
-            documentOffset = 0;
-        //  Popup Position for RTL
-        GetScreenCoordinatesL(inlineEditorTl, height, ascent, documentOffset);
-        inlineEditorTl.iY -= height;
-        GetScreenCoordinatesL(inlineEditorBr, height, ascent);
-        aRect.iTl = inlineEditorTl;
-        aRect.iBr = inlineEditorBr;
-        }
-    }
-
-TBool CAknFepManager::IsRightToLeftLanguage()
-	{
-	return iLanguageCapabilities.iRightToLeftLanguage ;
-	}
-
-/**
-* Setter for the advanced predictive typing correction.
-* @param    aLevel   The level to be set.
-*/
-void CAknFepManager::SetTypingCorrectionLevel(TInt aLevel)
-	{
-	iTypingCorrectionLevel = aLevel;
-    
-	if(iFepFullyConstructed)
-		{
-		TPtiErrorCorrectionLevel correctionLevel = (TPtiErrorCorrectionLevel)aLevel;
-		TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandSetCorrectionLevel, &correctionLevel ));	
-		}
-	}
-	
-/**
-* Resetter for the advanced predictive Number Candidate setting.
-* @param    aValue   The value to be set.
-*/
-void CAknFepManager::SetNumberCandidateState(TInt aValue)
-	{
-	if(aValue == 0)
-		iIsNumberCandidateShown = EFalse;
-	else if(aValue == 1)
-		iIsNumberCandidateShown = ETrue;
-	
-	if(iFepFullyConstructed)
-		{
-		TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, 
-		                                        &iIsNumberCandidateShown ));
-		}
-	}
-	
-void CAknFepManager::RemoveSuggestedAdvanceCompletionL()
-    {	
-    if( IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) &&
-        iPtiEngine->CurrentWord().Length() )
-        {
-        TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandUserActionShorten ));
-        TPtrC currentText = iPtiEngine->CurrentWord();
-        UpdateInlineEditL( currentText, currentText.Length() );
-        }
-    }
-/**
-* Setes the current state from GS to the local state
-*/    
-   
-void CAknFepManager::SetAutoCompletionState(TInt aValue) 
-	{
-	if(aValue == 0)
-		{
-		iIsAutoCompleteOn = EFalse;
-		}
-	else if(aValue == 1)
-		{
-		iIsAutoCompleteOn = ETrue;
-		}
-	 
-	if(iFepFullyConstructed)
-		{
-		if(iIsAutoCompleteOn)
-			{
-			TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandEnableAutoCompletion  ));
-			}
-		else
-			{
-			TInt tailLength = 0;
-			TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength ));
-			if(tailLength > 0)
-				{
-				// send an update to engine to signify change in autocompletion from on to off while tail exists
-				// This will set EPtiXt9FlagAutoCompletionSetOnToOff flag as true in engine
-				TInt value = 1;
-				TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandAutoCompletionOnToOff,&value));				
-				}
-			
-			
-			TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandDisableAutoCompletion ));
-			}
-		}
-	}
-	
-/**
-* Sets the primary candidate from GS to the local state
-*/    
-   
-void CAknFepManager::SetPrimaryCandidate(TInt aValue) 
-	{
-	if(aValue == 0)
-		iPrimaryCandidate = ETrue;
-	else if(aValue == 1)
-		iPrimaryCandidate = EFalse;    
-	if(iFepFullyConstructed)
-		{
-		TRAP_IGNORE(iPtiEngine->HandleCommandL( EPtiCommandSetProactiveCorrection, 
-		                                        &iPrimaryCandidate ));
-		}
-	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    
-CAknFepPluginManager* CAknFepManager::PluginUIManager()
-    {
-#ifdef RD_SCALABLE_UI_V2
-
-    return iFepPluginManager;
-#else
-    return NULL;        
-#endif //RD_SCALABLE_UI_V2     
-    }
-
-// add for phrase creation
-MZhuyinKeyHandler* CAknFepManager::ZhuyinKeyHandler()
-    {
-    return iZhuyinKeyHandler;
-    }
-// add for phrase creation
-CAknFepZhuyinAnalyser* CAknFepManager::ZhuyinAnalyser()
-    {
-    return iZhuyinAnalyser;
-    }
-
-#ifdef RD_SCALABLE_UI_V2
-void CAknFepManager::UpdateTouchCaseMode()
-	{
-    if (iFepFullyConstructed && 
-        iFepPluginManager 
-        // case should be updated even if current input mode is none because iPreviousCoseMode
-        // still need to be updated.
-        /*&& 
-        iFepPluginManager->PluginInputMode() != EPluginInputModeNone*/)
-    	{
-    	iFepPluginManager->UpdateCaseMode();	
-    	}
-	}
-#endif// RD_SCALABLE_UI_V2
-
-void CAknFepManager::SetStopProcessFocus(TBool aStop, TBool aClose)
-    {
-    iClosePeninputUi = aClose;
-    iStopProcessFocus = aStop;
-    if (!aStop)
-        {
-        HandleChangeInFocus();
-        }
-    }
-    
-TBool CAknFepManager::StopProcessFocus()
-    {
-    return iStopProcessFocus;    
-    }
-    
-TBool CAknFepManager::CloseUiOnFocusChange()
-    {
-    return iClosePeninputUi;    
-    }
-void CAknFepManager::HandleCopyCutStateL()    
-{
-    if (IsCcpuFlagSet(ECcpuStateCopy | ECcpuStateCut))
-                {
-                TCursorSelection selection;
-                iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(selection);
-                TBool update;
-                if (selection.Length() > 0)
-                    {
-                    if (!IsCcpuFlagSet(ECcpuStateButton))
-                        {
-                        __ASSERT_DEBUG(iUiInterface->SoftkeysExist(),
-                                       AknFepPanic(EAknFepPanicNoHandleToFepAwareTextEditor));                         
-                        if (IsCcpuFlagSet(ECcpuStateCopy))                      
-                            {
-                            update = UpdateCBALabelL(ELeftSoftkeyIndex, EEikCmdEditCopy, R_AKNFEP_SOFTKEY_COPY);
-                            update |= UpdateCBALabelL( EMiddleSoftkeyIndex, EEikCmdEditCopy, R_AVKON_SOFTKEY_SELECT_TEXT ); 
-                            }
-                        else
-                            {
-                            update = UpdateCBALabelL(ELeftSoftkeyIndex, EEikCmdEditCut, R_AKNFEP_SOFTKEY_CUT);                          
-                            update |= UpdateCBALabelL( EMiddleSoftkeyIndex, EEikCmdEditCut, R_AVKON_SOFTKEY_SELECT_TEXT ); 
-                            }
-                        if (update)
-                            {
-                            iUiInterface->DrawSoftkeysNow();
-                            }               
-                        SetCcpuFlag(ECcpuStateButton);                                      
-                        }                   
-                    }   
-                else if (IsCcpuFlagSet(ECcpuStateButton))                        
-                    {                   
-                    ClearCcpuFlag(ECcpuStateButton);
-                    update = EFalse;
-                    update = UpdateCBALabelL(ELeftSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY);
-                    update |= UpdateCBALabelL( EMiddleSoftkeyIndex, KNullCommandId, R_TEXT_SOFTKEY_EMPTY );
-                    if (update)
-                        {
-                        iUiInterface->DrawSoftkeysNow();
-                        }               
-                    }
-                }    
-}    
-#ifdef RD_SCALABLE_UI_V2
-TInt GetForegroundTaskAppWgId()
-    {
-    TApaTaskList tList(CCoeEnv::Static()->WsSession());
-    
-    TApaTask task = tList.FindByPos(0);
-    return task.WgId();
-    }
-
-void CAknFepManager::DimInputmodeTouchMenuItems(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    DimEditMenuModeItems(aMenuPane);
-
-    if ( IsChineseInputLanguage() )
-        {
-        DoChineseTouchMenu(aMenuPane);
-        }
-    else if ( iLanguageCapabilities.iInputLanguageCode == ELangJapanese)
-        {
-        DoJapaneseMenu(aMenuPane);
-        }
-    else
-        {
-        DoWesternTouchMenu(aMenuPane);
-        }
-    }
-#endif
-
-void CAknFepManager::DimInputmodeMenuItems(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    DimEditMenuModeItems(aMenuPane);
-
-    if ( IsChineseInputLanguage() )
-        {
-        DoChineseMenu(aMenuPane);
-        }
-    else if ( iLanguageCapabilities.iInputLanguageCode == ELangJapanese)
-        {
-        DoJapaneseMenu(aMenuPane);
-        }
-    else
-        {
-        DoWesternMenu(aMenuPane);
-        }
-    }
-
-void CAknFepManager::HandleCopyCutEventL(TInt aCommandId)
-    {
-     if (iCcpuMode != ECcpuStateNone)
-        {                   
-        ResetCcpuFlags();                   
-        iUiInterface->DeleteSoftkeys();
-                    
-        SetCcpuFlag(ECcpuStatePosted);  
-                                         
-#ifdef RD_SCALABLE_UI_V2                    
-        if (aCommandId == EEikCmdEditCopy)
-            {                     
-            // Send copy event to AknCcpuSupport.
-            CCoeEnv::Static()->SimulateKeyEventL(KAknCcpuCopyEvent, EEventKey);
-            }
-        else
-            {
-            // Send cut event to AknCcpuSupport.
-            CCoeEnv::Static()->SimulateKeyEventL(KAknCcpuCutEvent, EEventKey);
-            }                               
-#else         
-/*As part of build warnings commenting this perticular code it might require when touch is enabled.        
-        if (aCommandId == EEikCmdEditCopy)
-            {                                          
-            // Send copy-event to editor.
-            CCoeEnv::Static()->SimulateKeyEventL(KEditorCopyEvent, EEventKey);
-            }
-        else 
-            {                       
-            // send cut-event to editor.         
-            CCoeEnv::Static()->SimulateKeyEventL(KEditorCutEvent, EEventKey);
-            } 
-			*/            
-#endif // RD_SCALABLE_UI_V2 
-
-        if (iInputCapabilities.FepAwareTextEditor())                                
-            {
-            // update indicators only if this is editable component.
-            iIndicator->SetCopyMode(EFalse);
-            UpdateIndicators();                                                           
-            }
-#ifdef  RD_SCALABLE_UI_V2       	 
-        HandleChangeInFocus();
-#endif
-        
-        }
-
-    }
-
-TInt CAknFepManager::FepShowVkbPreviewStatus()
-    {
-    return iSharedDataInterface->FepShowVkbPreviewStatus();    
-    }
-
-void CAknFepManager::InitPreviewMenuPane(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    if (FepShowVkbPreviewStatus() > 0)
-        {
-        aMenuPane->GetMenuPane()->SetItemButtonState(EPenInputCmdPreviewOn, 
-                                                     EEikMenuItemSymbolOn );
-        }
-    else
-        {
-        aMenuPane->GetMenuPane()->SetItemButtonState(EPenInputCmdPreviewOff, 
-                                                     EEikMenuItemSymbolOn );
-        }
-    }
-
-void CAknFepManager::SynCCPSoftKey()
-    {
-    TRAP_IGNORE(HandleCopyCutStateL());   
-    }
-
-TInt CAknFepManager::PluginInputMode() const
-{
-#ifdef RD_SCALABLE_UI_V2
-    return iFepPluginManager ? iFepPluginManager->PluginInputMode() : EPluginInputModeNone;
-#else
-    return EPluginInputModeNone;
-#endif 
-}
-
-void CAknFepManager::HandleEndKeyL()
-    {
-#ifdef RD_SCALABLE_UI_V2 
-
-    if (iFepPluginManager)
-        {
-        return;    
-        }
-
-    RWsSession &ws = CCoeEnv::Static()->WsSession();
-    //TInt wgId =ws.GetFocusWindowGroup();
-    CApaWindowGroupName* wg = CApaWindowGroupName::NewLC(ws,
-        CCoeEnv::Static()->WsSession().GetFocusWindowGroup());
-
-    TUid id = wg->AppUid();
-    CleanupStack::PopAndDestroy(wg); 
-
-    if (0x10207218 == id.iUid ||
-        0x10281EF2 == id.iUid)
-        {
-        RPeninputServer iPenInputServer;
-
-        TInt err = iPenInputServer.Connect();
-		if(err == KErrNone)
-			{
-			iPenInputServer.SetForeground(ETrue);
-			iPenInputServer.ActivateLayout( EFalse ); 
-			iPenInputServer.HandleCommand(ECmdPenInputWindowClose);
-			
-			iPenInputServer.ClearServerEvent();
-			iPenInputServer.LoseForeground();
-			iPenInputServer.Close();
-			}
-        }
-#endif //RD_SCALABLE_UI_V2         
-    }
-void CAknFepManager::NeedDisableKeySound(const TKeyEvent& aKeyEvent, TEventCode aEventCode)
-    {
-#ifdef RD_SCALABLE_UI_V2    
-    TInt keyCode = aKeyEvent.iScanCode;
-    TBool interestKey = EFalse;
-    if ( keyCode == EPtiKey0 || 
-         keyCode == EPtiKey1 ||
-         keyCode == EPtiKey2 ||
-         keyCode == EPtiKey3 ||
-         keyCode == EPtiKey4 ||
-         keyCode == EPtiKey5 ||
-         keyCode == EPtiKey6 ||
-         keyCode == EPtiKey7 ||
-         keyCode == EPtiKey8 ||
-         keyCode == EPtiKey9 ||
-         keyCode == EStdKeyDownArrow ||
-         keyCode == EStdKeyRightArrow ||
-         keyCode == EStdKeyLeftArrow ||
-         keyCode == EStdKeyUpArrow ||
-         keyCode == EStdKeyBackspace
-         )
-        {
-        interestKey = ETrue;
-        }
-    if( interestKey && iFepPluginManager && 
-        iFepPluginManager->PluginInputMode() == EPluginInputModeItut)
-        {
-        if( aEventCode == EEventKeyDown )
-            {
-            static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->
-                 DisableNextKeySound( keyCode ); 
-            }
-        else if( aEventCode == EEventKey )
-            {
-			#ifdef RD_TACTILE_FEEDBACK
-            MTouchFeedback::Instance()->
-                InstantFeedback(ETouchFeedbackSensitive);
-			#endif
-            }
-        }
-#endif     
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepManager::SetComposChrFlag( TBool aFlag )
-    {
-    iComposChrFlag = aFlag;
-    }
-TBool CAknFepManager::GetComposChrFlag( )
-    {
-    return iComposChrFlag;
-    }
-#endif
-
-// add for phrase creation User db view
-void CAknFepManager::AddUserDBDlgItemL( CAknFepUiInterfaceMenuPane* aMenuPane, TInt aIndex )
-    {
-    CAknFepUiInterfaceMenuPane::SItemData mData;
-
-    TBuf<KMaxFileName> langStr;
-    TInt Inputlangindex;
-    if (!aMenuPane->MenuItemExists(EAknCmdUserDBDlg, Inputlangindex))
-        {
-        StringLoader::Load(langStr, R_AKNFEP_OPTIONS_USER_DB_DLG);
-
-        mData.iCommandId = EAknCmdUserDBDlg;
-        mData.iCascadeId = 0;
-        mData.iFlags = 0;
-        mData.iText.Copy(langStr.Mid(1, langStr.Length() - 1).Left(CAknFepUiInterfaceMenuPane::SItemData::ENominalTextLength));
-
-        aMenuPane->InsertMenuItemL(mData, aIndex);
-        }
-    }
-// add for phrase creation
-void CAknFepManager::LaunchUserDBDlgL( )
-    {
-    TInt itemIndex = 0;
-    
-    //Change title text
-    CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
-    CAknTitlePane* title = static_cast< CAknTitlePane* >(
-        statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) );
-
-    //Save the old title tet
-    HBufC* Oldtitletext = title->Text()->AllocLC();
-    //Load the new title text
-    HBufC* titletext = StringLoader::LoadLC( R_AKNFEP_USER_DB_MANAGEMENT_TITLE );
-    //Set title to the new text
-    title->SetTextL( *titletext );
-
-    CDesCArray* items = new( ELeave ) CDesCArrayFlat( KSelectItemSize );
-    CleanupStack::PushL( items );
-    CArrayFix<TInt>* selectedItems = new( ELeave ) CArrayFixFlat<TInt>( KSelectItemSize );
-    CleanupStack::PushL( selectedItems );
-    
-    CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
-    
-    if( toolbar && toolbar->IsShown() && toolbar->CountComponentControls()>0 )
-        {
-        toolbar->SetDimmed( ETrue );
-        toolbar->DrawDeferred();
-        }
-    
-    TUid naviPaneUid;
-	naviPaneUid.iUid = EEikStatusPaneUidNavi;
-
-	CEikStatusPaneBase::TPaneCapabilities subPane =
-			statusPane->PaneCapabilities(naviPaneUid);
-	// if we can access the navigation pane
-	if (subPane.IsPresent() && subPane.IsAppOwned())
-		{
-		CAknNavigationControlContainer
-				* naviPane =
-						(CAknNavigationControlContainer *) statusPane->ControlL(naviPaneUid);
-		iTapGroup = naviPane->CreateTabGroupL();
-		iTapGroup->MakeVisible( EFalse );
-		naviPane->PushL( *iTapGroup );
-		}
-    
-    iUserdbdlg = CAknFepUserdbDlg::NewL( itemIndex,
-        selectedItems, items, R_AKNFEP_USERDB_DLG_MENUBAR, iPtiEngine, this );
-    
-    iIsUserdbdlgActive = 1;
-    
-    iUserdbdlg->RunLD();
-    
-    iIsUserdbdlgActive = 0;
-    
-	// if we can access the navigation pane
-	if (subPane.IsPresent() && subPane.IsAppOwned())
-		{
-
-		CAknNavigationControlContainer
-				* naviPane =
-						(CAknNavigationControlContainer *) statusPane->ControlL(naviPaneUid);
-		naviPane->Pop();
-		delete iTapGroup;
-		iTapGroup = NULL;
-		}
-	
-    //Set the title to old text
-    title->SetTextL( *Oldtitletext );
-    
-    if( toolbar )
-        {
-        toolbar->SetDimmed( EFalse );
-        toolbar->DrawNow();
-        }
-    
-    CleanupStack::PopAndDestroy( selectedItems );
-    CleanupStack::PopAndDestroy( items );
-    CleanupStack::PopAndDestroy( titletext );
-    CleanupStack::PopAndDestroy( Oldtitletext );
-    iUserdbdlg = NULL;
-    }
-// add for phrase creation
-TBool CAknFepManager::IsPinyinPhraseCreation() const
-    {
-    return iPinyinPhraseCreation;
-    }
-
-void CAknFepManager::PinyinPhraseCreation(  TBool aPinyinPhraseCreation )
-    {
-    if ( iPinyinPhraseCreation != aPinyinPhraseCreation )
-        {
-        iPinyinPhraseCreation = aPinyinPhraseCreation;
-        }
-    }
-// add for phrase creation
-TBool CAknFepManager::IsPhraseCreation() const
-    {
-    return iPhraseCreation;
-    }
-// add for phrase creation
-void CAknFepManager::PhraseCreation(  TBool aPhraseCreation )
-    {
-    if ( iPhraseCreation != aPhraseCreation )
-        {
-        iPhraseCreation = aPhraseCreation;
-        }
-    }
-// add for phrase creation
-TBool CAknFepManager::IsEntryPhrase() const
-    {
-    return iEntryPhrase;
-    }
-// add for phrase creation
-void CAknFepManager::EntryPhrase( TBool aEntryPhrase )
-    {
-    if ( iEntryPhrase != aEntryPhrase )
-        {
-        iEntryPhrase = aEntryPhrase;
-        }
-    }
-// add for phrase creation
-void CAknFepManager::EnableKeyStar( TBool aEnable )
-    {
-    if ( iKeyStar != aEnable )
-        {
-        iKeyStar = aEnable;
-        }
-    }
-// add for phrase creation
-TBool CAknFepManager::IsEnableKeyStar( ) const
-    {
-    return iKeyStar;
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	
-
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-/**
-* @return   ETrue   If the number entry with long key press is supported on QWERTY keyboard.
-*/
-TBool CAknFepManager::LongPressNumberEntryOnQwerty() const
-    {
-    TBool value = EFalse;
-    if ( iSharedDataInterface )
-        {
-        value = iSharedDataInterface->LongPressNumberEntryOnQwerty();
-        }
-    return value;
-    }
-
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-
-
-void CAknFepManager::MultitapThroughSCTCharL(TCallBack aCallBack)
-    {
-    
-	TInt res = GetNumericSCTResID();
-    
-    if(!res)
-    	{
-    	return;
-    	}
-
-    if(!iNumericResourceTimer)
-        {        
-        iNumericResourceTimer = CChrMultiTapTimer::NewL(aCallBack);
-        }
-    
-    if(!iResourceString || iNumericResourceId !=res )
-        {
-        // either the resource string has not be created or the resource ID has changed
-        if(iResourceString)
-            {
-            delete iResourceString;
-            iResourceString = NULL;
-            }
-        iNumericResourceId = res;
-        TResourceReader reader;
-        CEikonEnv::Static()->CreateResourceReaderLC(reader,iNumericResourceId);
-        reader.ReadInt32(); // skip sct id 
-        iResourceString = reader.ReadHBufC16L();
-        CleanupStack::PopAndDestroy();
-        }
-    if(!iResourceString)
-        {
-        return;
-        }
-    if(iNumericResourceTimer->IsActive())
-        {
-        if( iChrCharIndex == iResourceString->Length() )
-            {
-            iChrCharIndex = 0;            
-            }
-    
-        iNumericResourceTimer->Cancel();
-        iNumericResourceTimer->After(KChrKeyMultitapTimeout);        
-        }
-    else
-        {
-        iChrCharIndex = 0;
-        iNumericResourceTimer->After(KChrKeyMultitapTimeout);
-        }    
-    TBuf<1> buf;
-    buf.Append((*iResourceString)[iChrCharIndex]); 
-    NewCharacterL(buf);
-    iChrCharIndex++;
-    	if (iResourceString->Length() == 1)
-		{
-		NumericResourceMultiTapTimerTimeoutL();
-		}
-
-    }
-TBool CAknFepManager::NumericResourceMultiTapTimerTimeoutL()
-    {
-    if(iNumericResourceTimer->IsActive())
-    	{
-    	iNumericResourceTimer->Cancel();
-    	if(IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-	        {
-	        CommitInlineEditL();
-	        return ETrue;
-	        } 
-    	}       
-    return EFalse;    
-    }    
-    
-//-------------------------------------------------------------------
-
-//
-// CChrMultiTapTimer
-//
-
-// ---------------------------------------------------------------------------
-// CChrMultiTapTimer::NewL
-// 
-// ---------------------------------------------------------------------------
-// 
-CChrMultiTapTimer* CChrMultiTapTimer::NewL(TCallBack aCallback)
-    {
-    CChrMultiTapTimer* self = new(ELeave)CChrMultiTapTimer(aCallback);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();    // self
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CChrMultiTapTimer::CChrMultiTapTimer
-// 
-// ---------------------------------------------------------------------------
-// 
-CChrMultiTapTimer::CChrMultiTapTimer(TCallBack aCallback)
-:CTimer(EPriorityStandard), iCallback(aCallback)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CChrMultiTapTimer::ConstructL
-// 
-// ---------------------------------------------------------------------------
-// 
-void CChrMultiTapTimer::ConstructL()
-    {
-    CTimer::ConstructL();
-    CActiveScheduler::Add(this);
-    }
-
-// ---------------------------------------------------------------------------
-// CChrMultiTapTimer::After
-// 
-// ---------------------------------------------------------------------------
-// 
-void CChrMultiTapTimer::After(TTimeIntervalMicroSeconds32 aInterval)
-    {
-    if (IsActive())
-        {
-        Cancel();
-        }
-    CTimer::After(aInterval);
-    }
-
-// ---------------------------------------------------------------------------
-// CChrMultiTapTimer::RunL
-// 
-// ---------------------------------------------------------------------------
-// 
-void CChrMultiTapTimer::RunL()
-    {
-    iCallback.CallBack();
-    }
-
-TBool CAknFepManager::IsLanguageSupportPrediction()
-    {
-    TBool isLanguagugeSupportsPrediction = EFalse;
-    switch(iKeyboardType)
-        {
-        case EPtiKeyboardHalfQwerty:
-#ifdef __HALF_QWERTY_KEYPAD
-            isLanguagugeSupportsPrediction = (iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternHalfQwertyPredictive); 
-#endif              
-            break;
-        case EPtiKeyboardQwerty4x12:
-        case EPtiKeyboardQwerty4x10:
-        case EPtiKeyboardQwerty3x11:
-        case EPtiKeyboardCustomQwerty:
-            isLanguagugeSupportsPrediction = (iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternQwertyPredictive);
-            break;
-        case EPtiKeyboardNone:
-        case EPtiKeyboard12Key:
-            isLanguagugeSupportsPrediction = (!iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternPredictive);
-            break;
-        default:
-            isLanguagugeSupportsPrediction = (!iQwertyInputMode) & (iLanguageCapabilities.iSupportsWesternPredictive);
-            break;    
-        }    
-    return isLanguagugeSupportsPrediction;
-    }
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-TBool CAknFepManager::IsAllowedKeymappingForNumberMode(TChar aChar) const
-    {
-    TBool response = EFalse;
-
-
-    switch ( iAknEditorNumericKeymap )
-        {
-        case EAknEditorStandardNumberModeKeymap:
-        case EAknEditorFixedDiallingNumberModeKeymap:
-        case EAknEditorSATNumberModeKeymap:
-        case EAknEditorSATHiddenNumberModeKeymap:
-            {
-            response = (aChar == '#');
-            }
-            break;
-        case EAknEditorCalculatorNumberModeKeymap:
-        case EAknEditorConverterNumberModeKeymap:
-            {
-            TLocale tLoc;
-            response = (aChar == tLoc.DecimalSeparator());
-            }
-            break;
-        case EAknEditorToFieldNumberModeKeymap:
-            {
-            response = (aChar == ';');
-            }
-            break;
-        case EAknEditorPlainNumberModeKeymap:
-        case EAknEditorReservedInternalUseKeymap:
-        default:
-            break;
-        }
-
-    return response;
-    }
-/**
-  * Return wether ipnut mode is change by press shift+space. 
-  * This is for half-qwerty.
-  */
-TBool CAknFepManager::IsChangeModeByShiftAndSpace()
-    {
-    return iShiftAndSpace;
-    }
-
-/**
-  * Set wether ipnut mode is change by press shift+space. 
-  * This is for half-qwerty.
-  */
-void CAknFepManager::SetChangeModeByShiftAndSpace( TBool aFlag )
-    {
-    iShiftAndSpace = aFlag;
-    }
-
-void CAknFepManager::HideExactWordPopUp()
-	{
-	iExactWordPopupContent->HidePopUp();	
-	}
-
-TBool CAknFepManager::IsExactWordPopUpShown()
-	{
-return iExactWordPopupContent->IsPopUpVisible();	
-	}
-void CAknFepManager::StopDisplayingMenuBar()
-    {
-    if (iEditMenuBar)
-        {
-        iEditMenuBar->StopDisplayingMenuBar();
-        iEditMenuBar = NULL;
-        }
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__    
-    if (iOptionsMenuBar)
-        {
-        iOptionsMenuBar->StopDisplayingMenuBar();
-        iOptionsMenuBar = NULL;
-        }
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__   
-    }
-
-void CAknFepManager::SetQwertyModeToInputcapbility()
-    {
-    if ( iSharedDataInterface->QwertyInputMode() )
-        {
-        SetExtendedInputCapabilities( ExtendedInputCapabilities() |
-            CAknExtendedInputCapabilities::EInputEditorQwertyInputActive  );
-        }
-    else
-        {
-        SetExtendedInputCapabilities( ExtendedInputCapabilities() &
-            ~CAknExtendedInputCapabilities::EInputEditorQwertyInputActive  );
-        }
-    }
-void CAknFepManager::SetExtendedInputCapabilities( TUint aCapabilities)
-    {
-    MObjectProvider* mop = iInputCapabilities.ObjectProvider();
-
-    if ( mop && iInputCapabilities.FepAwareTextEditor() )//IsFepAwareTextEditor()
-        {
-        CAknExtendedInputCapabilities* extendedInputCapabilities =
-        mop->MopGetObject( extendedInputCapabilities );
-
-        if ( extendedInputCapabilities )
-            {
-            extendedInputCapabilities->SetCapabilities( aCapabilities );
-            }
-        }
-
-    return;
-    }
-
-void CAknFepManager::PrepareFepAfterDialogExitL(TUid aFepUid)
-    {
-    // This ensures that on 3rd party fep change we do not have access to other fep variables
-    if (aFepUid != CCoeEnv::Static()->FepUid())
-        {
-		// In case the fep has changed, then leave
-        User::Leave(KErrNone);
-        }
-	// Once the editor which launches a dialog is destroyed, this flag is set
-	// In case we have any dialog launched we leave as the underneath editor is
-	// destroyed
-    if (IsExtendedFlagSet(EExtendedFlagEdwinEditorDestroyed))
-        {
-        if(!iFepAwareDialogParentEditor)
-            {
-			// For Eg: Messaging editor launches spell query which inturn launches
-			// SCT. Then don't clear the flag once we dismiss SCT because we even
-			// need to dismiss spell query dialog.
-            ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-            }       
-        User::Leave(KErrNone);
-        }
-    if(!iFepAwareDialogParentEditor)
-        {
-        ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
-        }    
-    }
-
-void CAknFepManager::PrepareFepForFepAwareDialogLaunch()
-    {
-    iFepAwareDialogParentEditor = EditorState();
-    SetExtendedFlag(EExtendedFlagFepAwareDialogLaunched);
-    }
-
-void CAknFepManager::PrepareFepAfterFepAwareDialogExitL(TUid aFepUid)
-    {
-    // This ensures that on 3rd party fep change we do not have access to other fep variables
-    if (aFepUid != CCoeEnv::Static()->FepUid())
-        {
-        // In case the fep has changed, then leave
-        User::Leave(KErrNone);
-        }    
-    iFepAwareDialogParentEditor = NULL;
-    ClearExtendedFlag(EExtendedFlagFepAwareDialogLaunched);
-    }
-
-void CAknFepManager::ConvertCharToKey(TChar aChar, TUint16& aKey) const
-    {
-    aKey = 0;
-	
-	if (!iPtiEngine)
-		return;
-		
-    CPtiCoreLanguage* lang = (CPtiCoreLanguage*)iPtiEngine->GetLanguage(iLanguageCapabilities.iInputLanguageCode);
-    TPtiEngineInputMode inputMode = iPtiEngine->InputMode();
-    
-    if (!lang)
-        return;
-
-    const TBool vietnamese = (iLanguageCapabilities.iInputLanguageCode == ELangVietnamese);
-
-    MPtiKeyMappings* map;
-    if (inputMode == EPtiEngineQwerty || inputMode == EPtiEngineQwertyPredictive)
-        {
-        map = lang->GetQwertyKeymappings();
-        }
-    else if( inputMode == EPtiEngineHalfQwerty || inputMode == EPtiEngineHalfQwertyPredictive )
-        {
-        map = lang->GetHalfQwertyKeymappings();
-        }
-    else    
-        {
-        map = lang->GetKeymappings();
-        }
-
-    if (!map)
-        {
-        return;
-        }   
-
-    TUint16 ch;
-    ch = (TUint16)map->KeyForCharacter(aChar); 
-    if (!ch && vietnamese)
-        {
-        // This may be Vietnamese tone mark or an accented character which isn't listed
-        // in keymappings. 
-        ch = RemapVietnameseAccentedCharacter(aChar);
-        }
-
-    aKey = ch;
-    }
-
-// ---------------------------------------------------------------------------
-// LOCAL METHODS
-// 
-// ---------------------------------------------------------------------------
-//     
-const TInt KVietKeyMarker = 0xffff;
-const TUint16 vietnameseAccents[] =
-    {
-    KVietKeyMarker, EPtiKey2, // For key 2, a-based    
-    0x00c1,	0x00c0, 0x1ea2, 0x00c3, 0x1ea0,
-    0x00e1, 0x00e0, 0x1ea3, 0x00e3, 0x1ea1,
-    0x0102, 0x1eae, 0x1eb0, 0x1eb2, 0x1eb4, 0x1eb6,
-    0x0103, 0x1eaf, 0x1eb1, 0x1eb3, 0x1eb5, 0x1eb7,
-    0x00c2, 0x1ea4, 0x1ea6, 0x1ea8, 0x1eaa, 0x1eac,
-    0x00e2, 0x1ea5, 0x1ea7, 0x1ea9, 0x1eab, 0x1ead, 
-
-    KVietKeyMarker, EPtiKey3, // For key 3, e-based    
-    0x00c9,	0x00c8, 0x1eba, 0x1ebc, 0x1eb8,
-    0x00e9, 0x00e8, 0x1ebb, 0x1ebd, 0x1eb9,
-    0x00ca, 0x1ebe, 0x1ec0, 0x1ec2, 0x1ec4, 0x1ec6,
-    0x00ea, 0x1ebf, 0x1ec1, 0x1ec3, 0x1ec5, 0x1ec7,
-
-    KVietKeyMarker, EPtiKey4, // For key 4, i-based    
-    0x00cd,	0x00cc, 0x1ec8, 0x0128, 0x1eca,
-    0x00ed, 0x00ec, 0x1ec9, 0x0129, 0x1ecb,
-    
-    KVietKeyMarker, EPtiKey6, // For key 6, o-based    
-    0x00d3,	0x00d2, 0x1ece, 0x00d5, 0x1ecc,
-    0x00f3, 0x00f2, 0x1ecf, 0x00f5, 0x1ecd,
-    0x00d4, 0x1ed0, 0x1ed2, 0x1ed4, 0x1ed6, 0x1ed8,
-    0x00f4, 0x1ed1, 0x1ed3, 0x1ed5, 0x1ed7, 0x1ed9,
-    0x01a0, 0x1eda, 0x1edc, 0x1ede, 0x1ee0, 0x1ee2,
-    0x01a1, 0x1edb, 0x1edd, 0x1edf, 0x1ee1, 0x1ee3, 
-    0
-    }; 
-
-
-// ---------------------------------------------------------------------------
-// RemapVietnameseAccentedCharacter
-// 
-// ---------------------------------------------------------------------------
-// 
-LOCAL_C TInt RemapVietnameseAccentedCharacter(TUint16 aChr)
-	{
-	// Check tone marks first.	
-	switch (aChr)
-		{
-		case 0x0301:
-		     return EPtiKey2;
-		case 0x0300:
-		     return EPtiKey3;
-		case 0x0309:
-		     return EPtiKey4;		     
-		case 0x0303:
-			 return EPtiKey5;			
-		case 0x0323:
-			 return EPtiKey6;						 
-		default:
-			break; 	
-		}	 
-	
-	TInt ret = 0;
-	
-	for (const TUint16* ptr = vietnameseAccents; *ptr != 0; ptr++)
-		{
-		if (*ptr == KVietKeyMarker)
-			{
-			ret = ptr[1];
-			ptr++;
-			}
-		else
-			{
-			if (*ptr == aChr)
-				{
-				break;
-				}
-			}			
-		}
-		
-	return ret;	 		
-	}
-
-// End of file
--- a/fep/aknfep/src/AknFepPlugin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:           
-*       CAknFepPlugin implementation.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepManager.h"
-#include "AknFepPlugin.h"
-#include <ecom/implementationproxy.h>
-
-CAknFepPlugin* CAknFepPlugin::NewL()
-	{
-	return new (ELeave) CAknFepPlugin();
-	}
-
-
-CCoeFep* CAknFepPlugin::NewFepL(CCoeEnv& aConeEnvironment, const CCoeFepParameters& aFepParameters)
-	{
-    CAknFepManager* const aknFep = new(ELeave) CAknFepManager(aConeEnvironment);
-    CleanupStack::PushL(aknFep);
-    aknFep->ConstructL(aFepParameters);
-    CleanupStack::Pop(); // aknFep
-    return aknFep;
-	}
-
-
-void CAknFepPlugin::SynchronouslyExecuteSettingsDialogL(CCoeEnv& /*aConeEnvironment*/)
-	{
-	}
-
-
-const TImplementationProxy ImplementationTable[] =
- 	{
-#ifdef __EABI__ 
-	IMPLEMENTATION_PROXY_ENTRY(0x101FD65A, CAknFepPlugin::NewL) 
-#else
-	{{0x101FD65A}, CAknFepPlugin::NewL}		
-#endif
- 	};	
-  
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
- 	{
- 	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
- 	return ImplementationTable;
- 	}
-
-// End of file
-
--- a/fep/aknfep/src/AknFepPluginManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5428 +0,0 @@
-/*
-* Copyright (c) 2002 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:           
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <aknedsts.h> 
-#include <AknUtils.h> 
-#include <aknappui.h> 
-#include <eikccpu.h> 
-#include <eikdialg.h> 
-#include <eikcapc.h> // CEikCaptionedControl
-#include <aknQueryControl.h> 
-#include <centralrepository.h> 
-#include <StringLoader.h> 
-#include <AknFepPluginManager.h>
-#include <aknfeppeninputimeplugin.h>
-#include <UikonInternalPSKeys.h> // KUikGlobalNotesAllowed
-#include <AvkonInternalCRKeys.h>    // KAknQwertyInputModeActive
-#include <hlplch.h>
-//#include <peninputgsinterface.h>
-#include <aknfep.rsg>
-#include <avkon.rsg>
-#include <AknIndicatorContainer.h>  //CAknIndicatorContainer
-#include <StringLoader.h>
-#include <peninputgenericitutcustomization.h>
-#include <eikgted.h> 
-#include <txtglobl.h>
-#include <eikedwin.h> 
-#include <featmgr.h>                 //FeatureManager
-#include <aknextendedinputcapabilities.h>
-#include <avkon.hrh>
-#include <PtiEngine.h>
-//#include <peninputcommonlayoutglobalenum.h>
-#include <PtiCompositionDataIF.h> // MPtiEngineCompositionDataInterface
-#include <eikapp.h>
-#include <AknFepGlobalEnums.h>
-#include <AknFepInternalCRKeys.h>
-
-// User includes
-#include "AknFepManagerInterface.h" // MAknFepManagerInterface
-#include "AknFepUiManagerBase.h"
-#include "aknfepuimanagerfingeritutchinese.h"
-
-// For Spell
-#include "aknfepuispellcontainer.h"            
-#include "aknfepuispellinputpane.h"
-
-#include <eikgted.h> 
-
-#include <apgwgnam.h>
-
-#include <PtiKeyMappings.h>
-#include <AknPriv.hrh>
-
-// Constants
-const TInt KCursorBlinkPerioid = 10000;//300000; // five tenth of a second * 2
-const TInt KMaxServerDataLength = 50;
-const TUint KVkbParagraphSeparator = 0x2029;
-const TUint KVkbTabulator = 0x0009;
-const TUid KAknfepUID= { 0x100056de }; 
-const TUid KUidtruiApp = { 0x2000B104 }; 
-const TInt KAknScreenServerUid = 0x100056cf;
-const TInt KAknCapServerUid = 0x10207218;
-const TInt KAknNotifySrvUid = 0x10281EF2;
-const TInt KAknHelpAppUid = 0x10005234;
-const TInt KInvalidValue = -1;
-
-// Paste event for AknCcpuSupport
-const TKeyEvent KAknCcpuPasteEvent = {EKeyF18, EEikCmdEditPaste, EModifierCtrl, 1}; 
-
-const TUint KSupportedDeadKeys[] = { 0x005E, 0x0060, 0x00A8, 0x007E, 0x00AF, 
-		                             0x00B4, 0x00B8, 0x02C7, 0x02DB, 0x02DD, 
-		                             0x00A8, 0x0384, 0x0385 }; 
-
-_LIT(KVkbTabChar, " ");
-
-_LIT(KHWR_HLP_MAIN_VIEW, "HWR_HLP_MAIN_VIEW");
-_LIT(KVQWERTY_HLP_MAIN_VIEW, "VQWERTY_HLP_MAIN_VIEW"); 
-_LIT(KVITU_HLP_MAIN_VIEW, "VITU_HLP_MAIN_VIEW");
-
-const TInt KDefaultCandidateArraySize = 16;
-const TInt KNumberOfCases = 6;
-
-#define iAvkonAppUi ((CAknAppUi*)CEikonEnv::Static()->EikAppUi())
-TUid AppUidFromWndGroupIdL(TInt aWndGrpId)
-    {
-    RWsSession &ws = CCoeEnv::Static()->WsSession();
-    //TInt wgId =ws.GetFocusWindowGroup();
-    CApaWindowGroupName* wg = CApaWindowGroupName::NewLC(ws,aWndGrpId);
-
-    TUid id = wg->AppUid();
-    CleanupStack::PopAndDestroy(wg);    	
-    return id;
-    
-    }
-
-TUid GetFocusAppUid()
-    { 
-    TUid id = {0x0};
-    TRAP_IGNORE(id = AppUidFromWndGroupIdL(CCoeEnv::Static()->WsSession().GetFocusWindowGroup()));
-    return id;
-    }
-TUid GetCurAppUid()
-    {
-    TUid id = {0x0};	
-    TRAP_IGNORE(id = AppUidFromWndGroupIdL(CCoeEnv::Static()->RootWin().Identifier())); 
-    return id;           
-    }
-
-TBool IsGlobalNotesApp(TUid& aUid)		  
-    {
-    const TInt KAknCapServerUid = 0x10207218;
-    const TInt KAknNotifySrvUid = 0x10281EF2;      
-    if(aUid.iUid == KAknCapServerUid || aUid.iUid == KAknNotifySrvUid)
-        return ETrue;
-    return EFalse;
-    }
-#ifdef RD_SCALABLE_UI_V2
-inline TBool IsAbleTouseCallBubble()
-    {
-    const TInt KAknCapServerUid = 0x10207218;    
-    return GetCurAppUid().iUid != KAknCapServerUid;
-    }
-#endif //RD_SCALABLE_UI_V2
-    
-RDrawableWindow* GetFocusWindow()
-    {
-    CCoeControl* focusControl = CCoeEnv::Static()->AppUi()->TopFocusedControl();
-    if( focusControl )
-        {
-        return focusControl->DrawableWindow();
-        }
-    return NULL;
-    }
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::NewL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//    
-CAknFepPluginManager* CAknFepPluginManager::NewL( CAknFepManager& aFepMan,
-                                                CAknFepSharedDataInterface& aSharedData,
-                                                CAknFepLanguageManager& aLangMan,
-                                                CAknFepCaseManager& aCaseMan )
-    { 
-    CAknFepPluginManager* self = new (ELeave) CAknFepPluginManager
-        ( aFepMan, aSharedData, aLangMan, aCaseMan ); 
-    CleanupStack::PushL( self );
-    self->ConstructL();       
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::~CAknFepPluginManager
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-CAknFepPluginManager::~CAknFepPluginManager()
-    {  
-    delete iAdjustDataQueryTimer;
-
-    iCurrentPluginInputFepUI = NULL; // why not delete????
-    delete iPenInputMenu;
-    
-    if( iPenInputSvrConnected )
-        {
-        iPenInputServer.Close();
-        iPenInputSvrConnected = EFalse;
-        }
-    delete iFingerItutChineseUI;
-    
-    delete iIcfDataBuf;
-    iIcfDataBuf = NULL;
-    
-    delete iSpellText;
-    iSpellText = NULL;
-
-    delete iSpell;
-    iSpell = NULL;
-    
-    delete iLastEditorContentBuf;
-    
-    delete iAvkonRepository;
-    
-    /*    
-    for(TInt i = 0; i < iCandidateList.Count(); i++)
-        {
-        HBufC* buf = iCandidateList[i];
-        delete buf;
-        }
-    iCandidateList.Close();
-    */
-    iCandidateList.ResetAndDestroy();
-    iSendAllList.iCandidates.Reset();
-    iOpenWindowList.Close();
-    iEventData.Close();    
-    iPreCaption.Close();
-    
-	  ClosePeninputSetting();
-    }
-    
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::CAknFepPluginManager
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepPluginManager::CAknFepPluginManager( CAknFepManager& aFepMan, 
-                                          CAknFepSharedDataInterface& aSharedData,
-                                          CAknFepLanguageManager& aLangMan,
-                                          CAknFepCaseManager& aCaseMan )
-    : iFepMan( aFepMan ), iLangMan( aLangMan ), iCaseMan( aCaseMan ),
-      iSharedData( aSharedData ), iPluginPrimaryRange( ERangeInvalid ), iCandidateIndex(1),
-      iCharStartPostion( KInvalidValue )
-    {
-    iIndicatorImgID = 0;
-    iIndicatorTextID = 0;
-    iLastDataQueryWin = NULL;
-    iDefaultOrientation = -1;
-    iIsInEditWordQueryDlg = EFalse;    
-    iClosePluginInputMode = EFalse;
-    iDimGainForeground = ETrue;
-	// Modify for bug ELZG-7WZC35 begin
-    iAlignment = 0;
-    // Modify for bug ELZG-7WZC35 end
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::ConstructL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::ConstructL()
-    {
-    iPenInputMenu = CAknFepPluginMenuManager::NewL(&iFepMan);
-    
-    //here ERangeInvalid means there is no change of plugin input range.
-    iFepMan.UiInterface()->TouchPaneSetFepPenSupportInterface(this);
-    iEventData.CreateMaxL(KMaxServerDataLength);
-    
-    RThread client;
-    iHasSWEventCap = client.HasCapability(ECapabilitySwEvent);
-    client.Close();
-    iAvkonRepository = CRepository::NewL( KCRUidAvkon ); 
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::ActivatePenInputL
-// Change to default plugin input mode
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ActivatePenInputL()
-    {
-    if( !iPenInputSvrConnected || !iPenInputServer.IsVisible() || iPenInputServer.IsDimmed() )
-        {
-        if( iFepMan.FepAwareTextEditor() )
-            {
-			iPreferredUiMode = ETrue;
-            TryChangePluginInputModeByModeL((TPluginInputMode)(iSharedData.PluginInputMode()),
-                                            EPenInputOpenManually,
-                                            ERangeInvalid);
-            }
-        }    
-    iFepMan.PtiEngine()->CancelTimerActivity();    
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::DeactivatePenInputL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::DeactivatePenInputL()
-    {
-    ClosePluginInputModeL(ETrue);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::HandleServerEventL
-// Handle pen input server events.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginManager::HandleServerEventL(TInt aEventId)
-    {
-    if(ESignalServerExit == aEventId)
-        {
-        iPenInputSvrConnected = EFalse; 
-        return ETrue;
-        }
-    if(ESignalServerReady == aEventId)
-        {
-        //reconnect to server
-        iFepMan.SendEventsToPluginManL(EPluginEditorActivate);
-        return ETrue;
-        }
-    TBool bHandled = EFalse;
-    if( !iLangMan.CurrentImePlugin())
-        {
-        return bHandled;
-        }
-    
-    iEventData.Zero();
-    TPtrC pBuf; 
-    TInt dataLen = iPenInputServer.GetServerEventData(iEventData);
-    
-    if( KErrNone == dataLen )
-        {
-        pBuf.Set(iEventData);
-        }
-    else if ( dataLen > 0 )
-        {
-        iEventData.ReAllocL(dataLen);
-        dataLen = iPenInputServer.GetServerEventData(iEventData);
-        pBuf.Set(iEventData);
-        }
-    if( dataLen != KErrNone )
-	    {
-	    return ETrue;
-	    }
-
-    if( !iLangMan.CurrentImePlugin()->HandleServerEventL(aEventId, iEventData) )
-        {
-        bHandled = ETrue;
-        
-        //only handle events which IME plug-in don't handled
-        switch( aEventId )
-            {
-            case ESignalReplacePartText:
-            case ESignalReplaceText://Get key event
-            case ESignalReplaceTextJp:
-                {
-                TInt repeatCount = 0;
-                TInt len = *(TInt*)pBuf.Ptr();
-                TInt stringLength = pBuf.Length();
-                TInt midLength = sizeof(TInt)/sizeof(TText);
-                
-                if (midLength > stringLength)
-                    {
-                    break;   
-                    }
-
-                iFepMan.SetFlag( CAknFepManager::EFlagSupressAutoUpdate );
-
-                TPtrC s = pBuf.Mid(midLength);//sizeof(TInt)/sizeof(TText)
-                                
-                //set selection
-                MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-                if( iFepMan.IsFepAwareTextEditor() && edit )
-                    {
-                    TCursorSelection curSor;
-                    edit->GetCursorSelectionForFep(curSor);
-                    if ( curSor.iAnchorPos == curSor.iCursorPos )
-                        {
-                        if (ESignalReplaceTextJp == aEventId)
-                            {
-                            if (curSor.iCursorPos  >= len)
-                                {
-                                curSor.iAnchorPos = curSor.iCursorPos - len;
-                                if (curSor.iAnchorPos<0 || 
-                                    curSor.iAnchorPos>edit->DocumentLengthForFep())
-                                    {
-                                    break;
-                                    }
-                                }
-                            }
-                        else
-                            {
-                            if(ESignalReplacePartText == aEventId)
-                                {
-                                curSor.iAnchorPos = curSor.iCursorPos - len;
-                                }
-                            else
-                                {
-                                if ( iCharStartPostion == KInvalidValue )    
-                                    {
-                                    curSor.iAnchorPos = curSor.iCursorPos -  
-                                        ( iLastSubmitCount<len?iLastSubmitCount:len );
-                                    }
-                                else
-                                    {
-                                    curSor.iAnchorPos = iCharStartPostion;  
-                                    iLastSubmitCount = curSor.iCursorPos - iCharStartPostion;
-                                    //Fixed bug ID SAHN-7JDDC8
-                                    }
-                                }
-                            
-                            if (curSor.iAnchorPos<0 || 
-                                curSor.iAnchorPos>edit->DocumentLengthForFep())
-                                {
-                                break;
-                                }
-                            
-                            // check repeated string 
-                            if (len >= iLastSubmitCount)
-                                {
-                                TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-                                textToUncommit.Zero();    
-                                
-                                 edit->GetEditorContentForFep(textToUncommit, curSor.iAnchorPos, 
-                                                           Min(curSor.Length(), 
-                                                           CAknFepManager::EMaximumFepWordLength));
-                                
-                                repeatCount = RepeatStringFromLeft(s,textToUncommit);    
-                                curSor.iAnchorPos += repeatCount;
-                                if (curSor.iAnchorPos<0 || 
-                                    curSor.iAnchorPos>edit->DocumentLengthForFep())
-                                    {
-                                    break;
-                                    }
-                                }
-                                
-                            if (curSor.iCursorPos > curSor.iAnchorPos)
-                                {
-                                edit->SetCursorSelectionForFepL(curSor);    
-                                }
-                            }
-                        }
-                    }
-                else
-                    {
-                    TBuf<1> backSpace;
-                    backSpace.Append(TChar(EKeyBackspace));
-                    for(TInt i = 0; i < len; ++i)
-                        {
-                        SubmitUiPluginTextL(backSpace, EKeyEvent);
-                        }
-                    }
-                iFepMan.ClearFlag( CAknFepManager::EFlagSupressAutoUpdate );
-                
-                if (repeatCount > 0)
-                    {
-                    OnPenInputServerKeyEventL(s.Right(s.Length() - repeatCount));
-                    
-                    iLastSubmitCount += repeatCount;   
-                    }
-                else
-                    {
-                    OnPenInputServerKeyEventL(s);    
-                    }
-                }
-                break;
-            case ESignalKeyEvent:
-                {
-                TPtr ptr( const_cast<TUint16*>(pBuf.Ptr()), pBuf.Length(), pBuf.Length() );
-                if(iFepMan.InputMode() == ELatin && (iPluginInputMode == EPluginInputModeVkb || 
-                   iPluginInputMode == EPluginInputModeFSQ))
-                    {
-                    AdjustDataCase( ptr );
-                    }
-                OnPenInputServerKeyEventL(pBuf);
-              	}
-              	break;
-            case ESignalNotifyUpdateCba://Update CBA
-                {
-                TInt* cbaData = (TInt* )(pBuf.Ptr());
-                iFepMan.UpdateCbaL(*cbaData);
-                }
-                break;                    
-            case ESignalHwNotifySctPopup:
-                iFepMan.LaunchSpecialCharacterTableL( 0,ETrue );//possible?
-                break;                      
-            case ESignalSetAppEditorCursor:
-                {
-                TInt8 *ptrData = (TInt8* )(pBuf.Ptr());
-                TCursorSelection curSel = *(TCursorSelection* )(ptrData);
-                TBool sync = *(TBool *)(ptrData + sizeof(TCursorSelection));
-                
-                if ( iFepMan.UncommittedText().Length() > 0 )
-                    {
-                    iFepMan.PtiEngine()->CancelTimerActivity(); 
-                    //using TryCloseUiL() to sync Fep state
-                    //iFepMan.CommitInlineEditL();
-                    iFepMan.TryCloseUiL();
-                    }
-                //now change the cursor position
-                SetCursorSelectionL(curSel, sync);
-                }
-                break;
-            case ESignalLaunchLanguageMenu:
-                LaunchPenInputLanguageSelectionL(ETrue);
-                break;                                       
-            case ESignalLaunchOptionMenu:
-            case ESignalLaunchOptionsMenu:
-                {
-                if (iInMenu || (!iPenInputMenu) || iPenInputMenu->IsShowing())
-                    {
-                    break;    
-                    }
-                iLaunchMenu = ETrue;
-                if (PluginInputMode() == EPluginInputModeItut ||
-                    PluginInputMode() == EPluginInputModeFSQ ||
-                    PluginInputMode() == EPluginInputModeFingerHwr)
-                    {
-                    SetMenuState();
-                    }                
-                else
-                    {
-                    ClosePluginInputUiL(ETrue);
-                    }           
-                LaunchPenInputMenuL(R_AVKON_PENINPUT_OPTION_MENU_BAR);
-                }
-                break;
-            case ESignalLayoutClosed:
-                ClosePluginInputModeL(ETrue);
-                if(iPenInputSvrConnected ) //lost foreground
-                    {
-                    iPenInputServer.LoseForeground();
-                    }                
-                break;                    
-            case ESignalCaseMode:
-                {
-                TInt* pluginCase = (TInt* )(pBuf.Ptr());    
-                iFepMan.ClearFlag(CAknFepManager::EFlagSupressAutoUpdate);
-                
-                if (ECaseInverseText == *pluginCase)
-                    {
-                    iFepMan.SetFlag(CAknFepManager::EFlagQwertyShiftMode);    
-                    }
-                iCaseMan.SetCurrentCase(*pluginCase);
-                
-                if (ECaseInverseText == *pluginCase)
-                    {
-                    iFepMan.ClearFlag(CAknFepManager::EFlagQwertyShiftMode);    
-                    }
-                }
-                break;
-            case ESignalRange:
-                {
-                HideTooltipOnFSQL();
-
-                TInt newPrimaryRange = *(TInt* )(pBuf.Ptr());
-                // Addition for ITI features on FSQ, 
-                // when swith to other ranges from latin/native range, 
-                // need to commit text to fep and ptiengint if necessary
-                if ( EnableITIOnFSQ() && newPrimaryRange != ERangeEnglish 
-                     && newPrimaryRange != ERangeNative )
-                    {
-                    iFepMan.CommitInlineEditL();
-                    iFepMan.PtiEngine()->CommitCurrentWord();
-                    }                
-                iPluginPrimaryRange = newPrimaryRange;
-                if (ELangJapanese == iSharedData.InputTextLanguage()
-                    && ERangeNative == iPluginPrimaryRange )
-                    {
-                    TInt subrange = *(TInt* )( (TInt8* )(pBuf.Ptr()) + sizeof(TInt) );
-                    iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputJapaneseSetSubRange, 
-                                                             subrange);
-                    }
-                SyncIndicatorWithPluginRangeL();
-                }
-                break;
-            case ESignalLayoutUIChanged:
-                {
-                TInt8 *ptrData = (TInt8* )(pBuf.Ptr());
-                TBool switchByMode = *(TInt*)(ptrData);
-                if( switchByMode )
-                    {
-                    TInt mode = *(TInt* )( ptrData + sizeof(switchByMode) );
-					ClosePluginInputModeL(ETrue);               
-                    iFepMan.TryCloseUiL();  
-					iPreferredUiMode = EFalse;
-                    TryChangePluginInputModeByModeL((TPluginInputMode)mode, 
-                                                    EPenInputOpenManually,
-                                                    ERangeInvalid);
-                    }
-                }
-                break;
-            case ESignalCommitInlineText:
-                {
-                iFepMan.CommitInlineEditL();
-                }
-                break;
-            case ESignalEnterMatchSelection:
-                {
-                TBool on = *((TInt*)(pBuf.Ptr()));
-
-                if (on)
-                    {
-                    EnterMatchSelectionState();
-                    }
-                else
-                    {
-                    iFepMan.PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-                    }    
-                }
-                break;
-            case ESignalSelectMatchSelectionText:
-                {
-                TInt* ptrData = (TInt*)(pBuf.Ptr());
-                TInt itemidx = *(ptrData);
-                TBool commit = *(ptrData + 1);
-                
-                iFepMan.UpdateInlineEditL(iSendAllList.iCandidates[itemidx], 
-                                          iSendAllList.iCandidates[itemidx].Length());
-                
-                if (commit)
-                    {
-                    iFepMan.TryCloseUiL();
-                    iFepMan.FepUI()->HandleCommandL(ESignalSelectMatchSelectionText);
-                    }
-                else
-                    {
-                    iFepMan.PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-                    }    
-                
-                SendIcfDataL(EPluginSyncUpdatedText);
-                }
-                break;
-            case ESignalEnterSpellMode:
-                {
-                iFepMan.LaunchEditWordQueryL();
-                }
-                break;
-            case ESignalExitSpellMode:
-                {
-                TInt* ptrData = (TInt*)(pBuf.Ptr());
-                TBool exitbyok = *(ptrData);
-
-                exitbyok ? iFepMan.ExitPluginSpellModeByOk() : 
-                           iFepMan.ExitPluginSpellModeByCancel();
-                }
-                break;
-            case ESignalLaunchSCT:
-            	{
-            	iFepMan.LaunchSpecialCharacterTableL(0,ETrue);	
-            	}
-            	break;
-            case ESignalGetEditMenuData:
-                {
-                //Calcuate which menu needed to add
-                iFepMan.GetPermittedEditorMenu(EFalse);
-                }
-                break;
-            case ESignalEditorMenuCommand:
-                {
-                //Execute editor menu command
-                TInt* command = (TInt* )(pBuf.Ptr());
-                iFepMan.ProcessEditorMenuCommand(*command);
-                iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerInputMode,
-                                                         iFepMan.InputMode());
-                    
-                iIndicatorImgID = 0;
-                iIndicatorTextID = 0;  
-                UpdateITUTIndicator();                
-                }
-                break;                
-            case ESignalCharacterStart:
-                {
-                TBool charStart = *(TBool*)(pBuf.Ptr());
-                if( charStart )
-                    {
-                    MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor(); 
-                    if( !edit )
-                        {
-                        break;
-                        }
-                    TCursorSelection curSor;
-                    edit->GetCursorSelectionForFep(curSor);
-                    iCharStartPostion = Min( curSor.iCursorPos, curSor.iAnchorPos );          
-
-                    }
-                else
-                    {
-                    iCharStartPostion = KInvalidValue;
-                    }
-                }
-                break;
-            case ESignalShowCandidate:
-                {
-                // Get candidate list
-                TInt activeIdx = 0;
-                CDesCArray* candidates = new (ELeave) CDesCArrayFlat
-                                                 ( KDefaultCandidateArraySize );
-        		CleanupStack::PushL( candidates );
-        		iFepMan.GetCandidatesL( *candidates, activeIdx );
-        		TFepITICandidateList candidateListData;
-        		candidateListData.iItemArray = candidates;
-        		candidateListData.iActiveIndex 
-        		            = ( candidates->Count() >= 2 ) ? 1 : activeIdx;        		
-        		ShowCandidateListL( candidateListData );        		
-        		CleanupStack::PopAndDestroy( candidates );                
-                }
-                break;
-            case ESignalSelectCandidate:
-                {
-                // Select candidate word on fsq
-                TInt index = *(TInt*)( pBuf.Ptr() );
-                CommitCandidateWordOnFSQL( index );                
-                break;
-                }
-            case ESignalAcceptTooltip:
-                {
-                // Simulate Up key and then join in the key flow for HW
-                // to accept tooltip
-                TKeyEvent keyEvent = { EKeyUpArrow, EStdKeyUpArrow, 0, 0 };                  
-                CCoeEnv::Static()->SimulateKeyEventL( keyEvent, EEventKey );
-                
-                // commit tooltip text then commit inline                
-                iFepMan.CommitInlineEditL();
-                // Need to commit into engine, it will clear textbuffer in it.
-                iFepMan.PtiEngine()->CommitCurrentWord();
-                }
-                break;
-            case ESignalStartInlineText:
-                {
-                if (!(iFepMan.IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-                    {
-					TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-					TBool comsumeKey;
-					
-					if (!(iFepMan.TryGetTextToUncommitL(textToUncommit, comsumeKey)))
-						{
-						// If T9 word length > 32, the navi key is consumed without action.
-						// Maybe should navigate inside word.
-						return comsumeKey;
-						}
-					iFepMan.PtiEngine()->ClearCurrentWord();
-					iFepMan.PtiEngine()->SetCurrentWord(textToUncommit); // this set the input sequence of PtiEngine          
-					iFepMan.StartInlineEditL(iFepMan.UncommittedText(), textToUncommit, 
-											 textToUncommit.Length(), EFalse);
-
-                    // update ICF content
-                    SendIcfDataL();
-                    }
-                }
-                break;
-            case ESignalCommitITIInlineText:
-                {
-                // Commit autocompletion
-                iFepMan.CommitInlineEditL();
-                // Need to commit into engine, it will clear textbuffer in it.
-                iFepMan.PtiEngine()->CommitCurrentWord();
-                }
-                break;
-            default:
-                break;
-            }
-        }  
-    return bHandled;
-    }
-    
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::EnterMatchSelectionState
-// Enter match selection state
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginManager::EnterMatchSelectionState()
-    {
-    GetAllPredictiveCandidate();
-    
-    if (iCandidateList.Count() > 0)
-        {
-        SetFingerMatchSelectionState(ETrue);
-        iFepMan.PluginUIManager()->ShowAllCandidates();
-        return ETrue;
-        }
-    
-    return EFalse;    
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::HandleEventsFromFepL
-// Handle events from FEP
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::HandleEventsFromFepL( TInt aEventType, TInt aEventData )
-    {
-
-    if( iPluginInputMode == EPluginInputModeNone && 
-        aEventType != EPluginEditorActivate && 
-        aEventType != EPluginActivate &&
-        aEventType != EPluginResourceChanged )
-        {      
-        return;
-        }
-        
-    switch ( aEventType )
-        {
-        case EPluginEditorActivate:
-            {
-            ActivatePenInputL();
-            RWsSession &ws = CCoeEnv::Static()->WsSession();
-            TInt wgId =ws.GetFocusWindowGroup();
-            iEditorPriority = ws.GetWindowGroupOrdinalPriority(wgId);
-            }
-            break;
-        case EPluginActivate:
-            {//The command is obsolete, use other commands
-            //current only some Japanese menu commands call this
-            ActivatePenInputL();    
-            }            
-            break;
-        case EPluginCloseMode:
-            {
-            if (iPluginInputMode == EPluginInputModeItut && 
-                !iSharedData.PredictiveTextAutoCompleteOn())
-            	{
-            	return;
-            	}
-            
-            ClosePluginInputModeL( aEventData );
-            }
-            break;
-        case EPluginFocusItemDestroy:
-            if( iFepMan.FepAwareTextEditor() )
-                {
-                iMfne = NULL;
-                if ( !aEventData )
-                    {
-                    RemoveLastFocusedWinFromOpenList();
-                    }
-                else
-                    {
-                    ClosePluginInputUiL(ETrue);
-                    }
-                }
-            break;
-        case EPluginSyncFepAwareText:
-            {
-            SyncFepAwareText( TPluginSync(aEventData) );
-            }
-            break;
-        /*case EPluginActivateInGlobalNote:
-            {
-            OnFocusChangedL(ETrue);
-            iPenInputServer.ActivatePeninputInNotesL();           
-            }
-            break;*/
-        case EPluginMenuCmd:
-            {
-            ProcessMenuCommandL( aEventData );
-            }
-            break;
-        case EPluginForegroundChanged:
-            {
-            iForegroundChange = ETrue;   
-            iLaunchHelp = EFalse;    
-            
-            if (!aEventData && IsInGlobleNoteEditor())
-                {
-                ClosePluginInputUiL(ETrue);
-                if(iPenInputSvrConnected ) //lost foreground
-                    {
-                    iPenInputServer.LoseForeground();
-                    }
-                }
-            else
-                {
-                OnFocusChangedL( aEventData ) ;   
-                }
-            }
-            break;
-        case EPluginFocusChanged:
-            {
-            OnFocusChangedL( aEventData );
-            }
-            break;
-        case EPluginResourceChanged:
-            {
-			iOrientationChangedfromUI = ETrue;
-            OnResourceChangedL( aEventData );
-			iOrientationChangedfromUI = EFalse;
-            }
-            break;
-        case EPluginFaseSwap:
-            {
-            iFastSwapByMenu = aEventData;
-            }
-            break;
-        case EPluginKeyEvent:
-            {
-            HandleKeyEventL( aEventData );
-            }
-            break;
-        case EPluginUpdateIndicator:
-            {
-            UpdateITUTIndicator();
-            }
-            break;
-        case EPluginPreview:
-            {
-            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCharacterPreview, 
-               aEventData);                 
-            }
-            break;
-        case EPluginPromptChanged:
-            {
-            SetPromptText( EFalse );
-            }
-            break;
-        case ELostForeground:
-            {
-            if(iPenInputSvrConnected ) //lost foreground
-                {
-                iPenInputServer.LoseForeground();
-                }
-            }
-            break;
-        case EPluginShowTooltip:
-        	{
-        	ShowTooltipOnFSQL( aEventData );
-        	}
-        	break;
-        case EPluginHideTooltip:
-        	{
-        	HideTooltipOnFSQL();
-        	}
-        	break;
-        default:
-            break;
-        }
-    }
-            
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::TryChangePluginInputModeByModeL
-// Change current input method to plugin input method with specified layout UI id.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginManager::TryChangePluginInputModeByModeL
-    (TPluginInputMode aSuggestMode, TInt aOpenMode,TInt aSuggestRange)
-    {
-    if ( iSharedData.QwertyInputMode() )
-        {
-        return EFalse;
-        }
-
-    TBool rtn = EFalse;
-    if ( iFepMan.ExtendedInputCapabilities() & 
-        CAknExtendedInputCapabilities::EInputEditorDisableVKB ) 
-        {
-        return EFalse;
-        }
-
-    if (! ConnectServer() )
-        {
-        return EFalse;
-        }
-    
-    if ((iPenInputServer.PreferredUiMode() != EPluginInputModeNone) && iPreferredUiMode )
-        {
-        aSuggestMode = iPenInputServer.PreferredUiMode();
-        }
-        
-    if (!GetCurSuggestMode( aSuggestMode ))
-        {
-        return EFalse;    
-        }
-    
-    // add by jiawenjuan to remember the old fep aware editor.
-    TBool cleanContent = EFalse;   
-    if(iOldFepAwareEditor != iFepMan.FepAwareTextEditor())
-        {
-        cleanContent = ETrue;
-        iOldFepAwareEditor = iFepMan.FepAwareTextEditor();
-        }
-
-    if( !iAdjustDataQueryTimer )
-        {
-        iAdjustDataQueryTimer = CPeriodic::NewL(CActive::EPriorityStandard);
-        }
-            
-    // Addition for ITI features on FSQ, if iITISettingDialogOpen == ETrue,
-    // it means that predictive setting dialog is closed, then re-open FSQ again.
-    // Need to set iITISettingDialogOpen = EFalse at this moment
-    if ( iITISettingDialogOpen )
-    	{
-    	iITISettingDialogOpen = EFalse;
-    	}  
-    
-    // getting a new ui manager object corresponded in aMode.
-    TInt uiLanguage = iSharedData.DisplayLanguage();
-    if( uiLanguage == ELangTest )
-        {
-        uiLanguage = User::Language();
-        }
-    
-    if ( iDefaultOrientation == -1 )
-        {
-        iDefaultOrientation = iAvkonAppUi->Orientation();
-        }
-    iPenInputServer.BackgroudDefaultOri( iDefaultOrientation );
-    
-    TPixelsTwipsAndRotation size; 
-    CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
-    TBool landscape = size.iPixelSize.iWidth > size.iPixelSize.iHeight;     
-    TBool disableFSQ = 
-        (  aSuggestMode == EPluginInputModeFSQ &&
-           ( iDefaultOrientation == CAknAppUiBase::EAppUiOrientationPortrait ||
-		     ( !landscape && !iAvkonAppUi->OrientationCanBeChanged() ) ) );
-          
-    if ( disableFSQ )
-        {
-        iPenInputServer.SetDisabledLayout( EPluginInputModeFSQ );
-        }
-
-    if ( aSuggestMode == EPluginInputModeFSQ )
-        {
-        TPluginInputMode tempInputMode = iPluginInputMode;           
-        iPluginInputMode = EPluginInputModeFSQ;
-        
-        if (disableFSQ )
-            {
-            iPluginInputMode = tempInputMode;
-            aSuggestMode = EPluginInputModeItut;
-            }
-        else
-            {
-            if ( !iSharedData.AutoRotateEnabled() )
-                {
-                iFepMan.SetNotifyPlugin( EFalse );
-                iAvkonAppUi->SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
-                iFepMan.SetNotifyPlugin( ETrue );
-                iOrientationChanged = ETrue;
-                }
-        
-		    CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
-            landscape = size.iPixelSize.iWidth > size.iPixelSize.iHeight;  
-            if( !landscape )
-                {
-                iPluginInputMode = tempInputMode;
-                aSuggestMode = EPluginInputModeItut;
-                }
-            }
-        }
-    else if ( iOrientationChanged )
-        {
-        iFepMan.SetNotifyPlugin( EFalse );
-        iAvkonAppUi->SetOrientationL( (CAknAppUiBase::TAppUiOrientation)iDefaultOrientation );
-        iFepMan.SetNotifyPlugin( ETrue );
-        iOrientationChanged = EFalse;
-        }
-    
-    TBool isSplit = IsEditorSupportSplitIme();
-    // temp code for Chinese split view
-    if ( iSharedData.PenInputLanguage() == ELangPrcChinese || 
-         iSharedData.PenInputLanguage() == ELangTaiwanChinese ||
-         iSharedData.PenInputLanguage() == ELangHongKongChinese )
-        {
-        isSplit = EFalse;
-        }    
-    iLangMan.SetSplitView(isSplit);
- 
-    TInt inputLang = iFepMan.InputLanguageCapabilities().iInputLanguageCode;
-    MAknFepManagerInterface* fepUI = iLangMan.GetPluginInputFepUiL(
-                                                    aSuggestMode, 
-                                                    inputLang,
-                                                    uiLanguage,
-                                                    &iPenInputServer); 
-    iCurrentPluginInputFepUI = fepUI;
-    
-    if ( iCurrentPluginInputFepUI )     
-        {
-        // fix EVWG-7U73HS
-        iPenInputServer.DimUiLayout(EFalse);
-        
-        AddCurrentWinToOpenListL();
-        if (iPluginInputMode == EPluginInputModeItut)
-            {
-            iIndicatorImgID = 0;
-            iIndicatorTextID = 0;           
-            }
-
-        iPluginInputMode = (TPluginInputMode)iLangMan.CurrentImePlugin()->CurrentMode();
-
-        //following codes is used to tell MFNE editor the Touch Input 
-        //has been opened. Because MFNE editor has no editorstate, so 
-        //use this way to implement this.
-        if ( iFepMan.IsMfneEditor() )
-            {
-            MCoeFepAwareTextEditor* mfne( iFepMan.FepAwareTextEditor() );
-            iMfneChanged = ( iMfne != mfne );
-            iMfne = mfne;
-            InformMfneUiStatusL( ETrue );  
-            }
-
-        // Addition for ITI features on FSQ
-        // Before open touch window, need to set iPluginPrimaryRange = 0
-        // which means use the default range.
-        iPluginPrimaryRange = 0;
-        
-        InitializePluginInputL(aOpenMode, aSuggestRange, cleanContent);
-        
-        //save plugin input mode to repository
-        if( iPenInputServer.PreferredUiMode() == EPluginInputModeNone )
-            {
-            //do not remember application set input mode
-            iSharedData.SetPluginInputMode(iPluginInputMode);
-            }
-            
-        if (CurrentFepInputUI())
-           	{
-           	CurrentFepInputUI()->SetInputLanguageL((TLanguage)inputLang);
-           	CurrentFepInputUI()->SetMode(iFepMan.InputMode(), ETrue, EFalse);		
-           	}
-			
-        if(!iOrientationChangedfromUI)
-		    {
-		    iFepMan.UpdateCbaL( NULL );
-		    }
-        
-        // Notify application touch window state
-        NotifyAppUiImeTouchWndState( ETrue );
-
-        rtn = ETrue;
-        }
-    else
-        {
-        iPluginInputMode = EPluginInputModeNone;
-        }   
-        
-    if( iCurrentPluginInputFepUI && iPluginInputMode != EPluginInputModeNone )
-        {
-        iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(ETrue);
-        }
-    else
-        {
-        iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(EFalse);
-        }
-        
-        
-    if ( aOpenMode == EPenInputOpenManually )   
-    	{
-        iCurLanguage = iSharedData.InputTextLanguage();	
-    	}
-    return rtn;
-    }
-    
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::ClosePluginInputModeL
-// Close plugin input mode
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ClosePluginInputModeL( TBool aRestore )
-    {   
-    if (iPluginInputMode == EPluginInputModeNone)
-        {
-        return;
-        }
-      
-    iOldFepAwareEditor = NULL;	
-    if ( iSharedData.QwertyInputMode() && iPenInputMenu )
-        {
-        iPenInputMenu->Hide();
-        }    
-        
-    TPluginInputMode prePluginInputMode = iPluginInputMode;
-    RemoveCurrentWinFromOpenList();
-    ClosePluginInputUiL(ETrue);
-    iClosePluginInputMode = ETrue;
-       
-    // TInt prevIputMode = iPluginInputMode;
-    
-    if( iOpenWindowList.Count() == 0 || iSharedData.QwertyInputMode() )
-        {
-        iPluginInputMode = EPluginInputModeNone;
-        }
-    
-    if( aRestore && !iSharedData.QwertyInputMode() && iFepMan.InputMode() == ELatin)
-        {
-	    RestorePredictStateL();
-        if ( iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor )
-            {
-            if( AknTextUtils::NumericEditorDigitType() == EDigitTypeEasternArabicIndic || 
-                AknTextUtils::NumericEditorDigitType() == EDigitTypeDevanagari ||
-                AknTextUtils::NumericEditorDigitType() == EDigitTypeArabicIndic )
-                {
-                iFepMan.TryChangeModeL( ENativeNumber );
-                }
-            else
-                {
-                iFepMan.TryChangeModeL( ENumber );
-                }
-            }
-        }
-    //iFepMan.UpdateCbaL( NULL ); //pls refer to bug ESZG-7G7CGF
-                
-    iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(EFalse);
-    
-    if ( prePluginInputMode == EPluginInputModeVkb )
-        {
-        iFepMan.UpdateIndicators();
-        }        
-    }   
-   
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::ClosePluginInputUiL
-// Close plugin input UI, only close UI
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ClosePluginInputUiL(TBool aResetState)
-    {
-    // For addition of ITI features on FSQ, 
-    // need to restore some values stored before opening FSQ    
-    ResetItiStateL();
-
-    if( iPenInputSvrConnected )
-        {
-        if( iCurrentPluginInputFepUI )
-            {
-            //Change for finger support of MFNE editor, it is a requirement for Tube
-            InformMfneUiStatusL( EFalse );            
-            
-            iPenInputServer.ClearServerEvent();
-            iCurrentPluginInputFepUI->CloseUI();
-            if( aResetState )
-                {
-                iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputWindowClose);
-                }
-            
-            //iFepMan.UpdateCbaL(NULL); //pls refer to bug ESZG-7G7CGF
-            
-            if (iPluginInputMode == EPluginInputModeItut)
-                {
-                iIndicatorImgID = 0;
-                iIndicatorTextID = 0;           
-                }            
-            }
-        }
-
-    if ( iPluginInputMode == EPluginInputModeFSQ  && iOrientationChanged )
-        {
-		// This TRAP_IGNORE is essential to fix bug ECJA-7JDCKR, never delete it
-        TRAP_IGNORE( iAvkonAppUi->SetOrientationL( (CAknAppUiBase::TAppUiOrientation)iDefaultOrientation ) );
-        iOrientationChanged = EFalse;
-        } 
-        
-    // Notify editor the touch window has been closed
-    NotifyAppUiImeTouchWndState( EFalse );
-    
-    iCharStartPostion = KInvalidValue;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::OnResourceChangedL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::OnResourceChangedL( TInt aType )
-    { 
-    if ( !iCurrentPluginInputFepUI || !iPenInputServer.IsForeground() || 
-         iPluginInputMode == EPluginInputModeNone )
-        {
-        return;
-        }
-        
-    if ( iPluginInputMode == EPluginInputModeFSQ && 
-         !iSharedData.AutoRotateEnabled())
-        {
-        return;
-        }
-        
-    TBool setResChange = EFalse;
-    
-    if (iPluginInputMode == EPluginInputModeItut || 
-         iPluginInputMode == EPluginInputModeFSQ ||
-        iPluginInputMode == EPluginInputModeFingerHwr)
-        {
-        setResChange = ETrue;
-        iPenInputServer.SetResourceChange(ETrue);    
-        }
-    
-    iResourceChange = ETrue;   
-
-    if ( iSharedData.AutoRotateEnabled() && 
-        ( iPluginInputMode == EPluginInputModeFSQ || iPluginInputMode == EPluginInputModeItut ) )
-        {
-        if ( IsSpellVisible() )
-            {
-            iFepMan.ExitPluginSpellModeByCancel();
-            }
-        
-        if ( iPenInputMenu && iPenInputMenu->IsShowing() )
-            {
-            iPenInputMenu->Hide();
-            ResetMenuState();
-            }
-        ClosePluginInputModeL(ETrue);               
-        iFepMan.TryCloseUiL(); 
-        TPixelsTwipsAndRotation size; 
-        CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
-
-        iPluginInputMode = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight ) ? 
-            EPluginInputModeItut : EPluginInputModeFSQ;
-        }
-    TryChangePluginInputModeByModeL( iPluginInputMode,
-                                     EPenInputOpenManually,
-                                     ERangeInvalid ); 
-    /*if(size.iPixelSize.iWidth > size.iPixelSize.iHeight ) //landscape
-        {
-        if ( iPluginInputMode == EPluginInputModeVkb )
-            {        	
-            // Get store value from CenRep
-            TryChangePluginInputModeByModeL((TPluginInputMode)(iSharedData.FepLastUseVkbModeForLandscape()),
-                                            EPenInputOpenManually,
-                                            ERangeInvalid); 
-            hasChanged = ETrue;                                
-            }                 
-        } 
-    else
-        {
-        if ( iPluginInputMode == EPluginInputModeFSQ )
-            {
-            TryChangePluginInputModeByModeL(EPluginInputModeVkb,
-                                            EPenInputOpenManually,
-                                            ERangeInvalid);     
-            hasChanged = ETrue;                                       
-            }
-        
-        }*/
-    if ( /*!hasChanged &&*/ iCurrentPluginInputFepUI )
-        {
-        iCurrentPluginInputFepUI->ResourceChanged(aType);
-        }
-    
-    if (iInMenu)
-        {
-        SetMenuState(EFalse);
-        }
-        
-    if (setResChange)    
-        {
-        iPenInputServer.SetResourceChange(EFalse);         
-        }
-
-    iResourceChange = EFalse;
-    if(IsDisplayDataQuery() && //data query
-       PluginInputMode() == EPluginInputModeVkb &&
-       !iAdjustDataQueryTimer->IsActive()) //only vkb mode 
-        {
-        iAdjustDataQueryTimer->Start(KCursorBlinkPerioid, 
-                                     KCursorBlinkPerioid, 
-                                     TCallBack(AdjustDataQueryCallBackL , this)); 
-        }
-    }     
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::SyncFepAwareText
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::SyncFepAwareText( TPluginSync aSyncType, TBool /*aSendNow*/ )
-    {
-    TRAP_IGNORE(SendIcfDataL(aSyncType));
-    }   
-       
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::ProcessMenuCommand
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::ProcessMenuCommandL(TInt aCommandId)
-    {
-    if( iPenInputMenu && iPenInputMenu->IsShowing() )
-        {
-        iPenInputMenu->Hide();
-        if( !iLangMan.CurrentImePlugin()->HandleMenuCommandL(aCommandId) )
-            {
-            switch(aCommandId)
-                {
-                case EPenInputCmdHwrTraining:
-                    {
-                    LaunchHwrTrainUiL();
-                    iFepMan.SetGainForeground( EFalse );
-                    }
-                    break;
-                case EPenInputCmdSetting:
-                    {
-                    if (iInMenu)
-                        {
-                        ResetMenuState(EFalse);    
-                        ClosePluginInputUiL(ETrue);
-                        if(iPenInputSvrConnected ) //lost foreground
-                            {
-                            iPenInputServer.LoseForeground();
-                            }                        
-                        }
-
-                    LaunchPenInputSettingL();
-                    }
-                    break;                
-                case EPenInputCmdVITUT:
-                    {
-					ClosePluginInputModeL(ETrue);             
-                    iFepMan.TryCloseUiL();  
-                    TryChangePluginInputModeByModeL(EPluginInputModeItut, 
-                                                    EPenInputOpenManually,
-                                                    ERangeInvalid);
-                    }
-                    break;
-                case EPeninputCmdFSQ:
-                    {
-					ClosePluginInputModeL(ETrue);               
-                    iFepMan.TryCloseUiL();  
-                    TryChangePluginInputModeByModeL(EPluginInputModeFSQ, 
-                                                    EPenInputOpenManually,
-                                                    ERangeInvalid);
-                    }
-                    break;
-                case EFepInputCmdHelp:
-                    {
-                    if (iInMenu)
-                        {
-                        ResetMenuState(EFalse);    
-                        ClosePluginInputUiL(ETrue);
-                        if(iPenInputSvrConnected ) //lost foreground
-                            {
-                            iPenInputServer.LoseForeground();
-                            }                        
-                       }
-                    if (GetCurAppUid().iUid != KAknHelpAppUid)
-                        {
-                        iLaunchHelp = ETrue;
-                        }
-                    LaunchHelpL();
-                    }
-                    break;
-                case EPenInputCmdCut:
-                    {//ctrl + x
-                    iFepMan.HandleCopyCutEventL(EEikCmdEditCut);
-                    }   // Send cut-event to edwin.
-                    break;
-                case EPenInputCmdCopy:
-                    {//ctrl + c
-                    iFepMan.HandleCopyCutEventL(EEikCmdEditCopy);
-                    }   // Send copy-event to edwin.
-                    break;
-                case EEikCmdEditPaste:
-                    {//ctrl + v
-                    TKeyEvent ccpuKey = KAknCcpuPasteEvent;
-                    CCoeEnv::Static()->SimulateKeyEventL( ccpuKey, EEventKey );
-                    }   // Send copy-event to edwin.
-                    break;
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::HandleKeyEventL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::HandleKeyEventL(TInt aKeyId)
-    {
-    switch ( aKeyId )
-        {
-        case EKeyF19:
-            {
-            SyncFepAwareText( EPluginSyncUpdatedText );
-            }
-            break;
-        case EPtiKeyHash:
-            {
-            if (PluginInputMode() == EPluginInputModeItut) 
-                {
-                if ( iFepMan.IsChineseInputLanguage() || 
-                    !( iFepMan.InputMode() == ENumber && iFepMan.WasLastKeyPressAHashKey() ) )
-                    {
-                    if (iCurrentPluginInputFepUI)
-                        {
-                        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerInputMode,
-                            iFepMan.InputMode());
-                            
-                        iIndicatorImgID = 0;
-                        iIndicatorTextID = 0;  
-                        UpdateITUTIndicator();
-
-                        if (iFepMan.InputMode() == ELatin)
-                            {
-                            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-                                                                     iCaseMan.CurrentCase());	
-                            }
-
-                        if (CurrentFepInputUI())
-                        	{
-                        	CurrentFepInputUI()->SetMode(iFepMan.InputMode(), ETrue, EFalse);	
-                        	}
-                        }
-                    }    
-                if ( !iFepMan.IsSupportsSecretText() )
-                    {
-                    SyncFepAwareText( EPluginSyncUpdatedText );  
-                    }
-                else
-                	{
-                	if (iCurrentPluginInputFepUI)
-                		{
-                		iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-                                                             iCaseMan.CurrentCase());	
-                		}
-                	}
-                }
-            }
-            break;
-        case EKeyCBA1:
-            {
-            }
-            break;
-        case EKeyCBA2:
-            {
-            }
-            break;
-        case EPtiKeyStar:
-            {
-			if (PluginInputMode() != EPluginInputModeNone )
-                {
-                SyncFepAwareText( EPluginSyncUpdatedText );
-                }
-            break;
-            }
-        case EPtiKey0: //fall through
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey5:
-        case EPtiKey6:
-        case EPtiKey7:
-        case EPtiKey8:
-        case EPtiKey9:
-            {
-            if (PluginInputMode() != EPluginInputModeNone )
-                {
-                SyncFepAwareText( EPluginSyncUpdatedText );
-                }
-            }
-            break;
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-            {
-            SyncFepAwareText();
-            }
-            break;
-        /*    
-        case EKeyLeftArrow:
-            {
-           
-            if ( !iFepMan.IsMfneEditor() &&
-                 ( PluginInputMode() == EPluginInputModeItut || 
-                   PluginInputMode() == EPluginInputModeFSQ ) &&
-                 iCurSelPre.Length() > 0)
-                {
-                MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor(); 
-                if(iCurSelPre.iCursorPos > 0)
-                    {
-                    TInt pos = iCurSelPre.iCursorPos - 1;
-                    edit->SetCursorSelectionForFepL
-                        ( TCursorSelection( pos, iCurSelPre.iAnchorPos ) );
-					iCaseMan.UpdateCase(ENullNaviEvent);
-                    }
-                else  if(iCurSelPre.iCursorPos == 0)
-                    {
-                    edit->SetCursorSelectionForFepL
-                        ( TCursorSelection( iCurSelPre.iCursorPos, iCurSelPre.iAnchorPos ) );
-                    }
-                }
-            SyncFepAwareText();
-            }
-            break;
-        case EKeyRightArrow:
-            {
-            MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-            if ( !iFepMan.IsMfneEditor() &&
-                 ( PluginInputMode() == EPluginInputModeItut || 
-                   PluginInputMode() == EPluginInputModeFSQ ) &&
-                 iCurSelPre.Length() > 0)
-                {          
-                if(iCurSelPre.iCursorPos < edit->DocumentLengthForFep())
-                    {
-                    TInt pos = iCurSelPre.iCursorPos + 1;
-                    edit->SetCursorSelectionForFepL
-                        ( TCursorSelection( pos, iCurSelPre.iAnchorPos ) );
-					iCaseMan.UpdateCase(ENullNaviEvent);
-                    }
-                else if(iCurSelPre.iCursorPos == edit->DocumentLengthForFep())
-                    {
-                    edit->SetCursorSelectionForFepL
-                        ( TCursorSelection( iCurSelPre.iCursorPos, iCurSelPre.iAnchorPos ) );
-                    }  
-                }
-            SyncFepAwareText();
-            }
-            break;
-            */ 
-        case EKeyBackspace:
-            {
-            }
-            break;
-        case EKeyOK:
-            {
-            ClosePluginInputUiL( ETrue );
-            }
-            break;
-        case EKeyEscape:
-            {
-			ClosePluginInputUiL( ETrue );
-            DestroySpellEditor();
-            }
-            break;
-       }
-    }
-    
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::InitMenuPaneL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::InitMenuPaneL( CAknEdwinState* aEditorState, 
-    CAknFepUiInterfaceMenuPane* aMenuPane, TInt aResourceId )
-    {
-    //CAknEdwinState* remeberedEditorState = iFepMan.RememberedEditorState();
-
-    if(aResourceId == R_AVKON_TOUCH_TOUCHINPUT_MENU )
-        {
-        if (aEditorState && aEditorState->CcpuState())  
-            {   
-            if (!aEditorState->CcpuState()->CcpuCanCopy())
-                {
-                aMenuPane->SetItemDimmed(EEikCmdEditCopy, ETrue);           
-                }   
-                            
-            if (!aEditorState->CcpuState()->CcpuCanCut())
-                {
-                aMenuPane->SetItemDimmed(EEikCmdEditCut, ETrue);          
-                }               
-                            
-            if (!aEditorState->CcpuState()->CcpuCanPaste())         
-                {
-                aMenuPane->SetItemDimmed(EEikCmdEditPaste, ETrue);             
-                }
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed(EEikCmdEditCopy, ETrue);           
-            aMenuPane->SetItemDimmed(EEikCmdEditCut, ETrue);          
-            aMenuPane->SetItemDimmed(EEikCmdEditPaste, ETrue);             
-            }
-
-       // For training UI
-       if (!(iPluginInputMode == EPluginInputModeHwr ||
-             iPluginInputMode == EPluginInputModeFSc ||
-             iPluginInputMode == EPluginInputModeFingerHwr))
-            {
-            aMenuPane->SetItemDimmed(EPenInputCmdSetting, ETrue);    
-            aMenuPane->SetItemDimmed(EPenInputCmdHwrTraining, ETrue);    
-            }
-       else
-            {
-            // Mode is HWR or Full scree HWR
-            // If fep is running in HWR Training, dim "HWR Training" item.
-            TUid appId = GetCurAppUid();
-            if ( appId == KUidtruiApp )
-                {
-                aMenuPane->SetItemDimmed( EPenInputCmdHwrTraining, ETrue );
-                }
-            }
-       
-       // For Predictive
-       if (iPluginInputMode != EPluginInputModeItut)
-           {
-           aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, ETrue);
-           aMenuPane->SetItemDimmed(EAknCmdPredictiveTextCascade, ETrue); 
-           aMenuPane->SetItemDimmed(EAknCmdMultitapPredictiveT9On, ETrue); 
-           }
-                   
-       //For Preview bubble
-       if (!(iPluginInputMode == EPluginInputModeVkb ||
-             iPluginInputMode == EPluginInputModeFSQ ||
-             iPluginInputMode == EPluginInputModeFingerHwr ))
-           {
-           if(!(iPluginInputMode == EPluginInputModeItut &&
-             (iSharedData.InputTextLanguage() == ELangPrcChinese ||
-             iSharedData.InputTextLanguage() == ELangTaiwanChinese ||
-             iSharedData.InputTextLanguage() == ELangHongKongChinese )))
-               {
-               aMenuPane->SetItemDimmed(EPenInputPreview, ETrue);
-               }
-           }
-            
-       // for inputmode
-       if (iPluginInputMode != EPluginInputModeItut)
-           {
-            // dim menu items for Chinese input modes that aren't valid in the current editor
-            // or the device subvariant
-            for (TInt mode = KFirstMode; mode <= KLastMode; mode = mode << 1)
-                {
-                iFepMan.DimMenuItem(aMenuPane, mode);
-                }
-           aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);     
-           aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue); 
-           aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue); 
-           
-           }
-       else 
-           {
-           iFepMan.DimInputmodeMenuItems(aMenuPane);
-           if (iFepMan.IsChineseInputLanguage())
-                {
-                DimAllModeAndCase(aMenuPane);   
-                }
-           }
-       if (iFepMan.IsAbleToLaunchSmiley()) 
-           {
-           TInt indexForSmiley;
-           if (aMenuPane->MenuItemExists(EAknCmdEditInsertSmiley, 
-                   indexForSmiley))
-               {
-               aMenuPane->SetItemDimmed(EAknCmdEditInsertSmiley, EFalse);
-               }
-           }
-           
-        if (iPluginInputMode == EPluginInputModeItut ||
-            iPluginInputMode == EPluginInputModeVkb ||
-            iPluginInputMode == EPluginInputModeFSQ )
-            {
-            TInt index = 0;     
-            if (isLanuchSCT && aMenuPane->MenuItemExists(EAknCmdEditInsertSymbol, index))
-                 {
-                 aMenuPane->SetItemDimmed(EAknCmdEditInsertSymbol, EFalse);
-                 }
-            }
-        
-        TBool disableDic = ETrue;
-        
-        if ((iPluginInputMode == EPluginInputModeHwr)
-                && (iFepMan.IsArabicInputLanguage()))
-            {
-            disableDic = EFalse;
-            }
-
-        TInt dicIndex = 0;
-        if (aMenuPane->MenuItemExists(
-                EPenInputCmdRecognitionWithDictionary, dicIndex))
-            {
-            aMenuPane->SetItemDimmed(
-                    EPenInputCmdRecognitionWithDictionary, disableDic);
-            }
-        
-        // add some input mode in option menu
-        TBool isSplitView = IsEditorSupportSplitIme();
-    	if(isSplitView)
-    	    {
-    	    TInt disabledMode = iPenInputServer.DisabledLayout();
-    	    TInt curMode =  iLangMan.CurrentImePlugin()->CurrentMode();
-    	    if(!(disabledMode & EPluginInputModeFSQ) && curMode != EPluginInputModeFSQ )
-    	        {
-    	        aMenuPane->SetItemDimmed(EPeninputCmdFSQ, EFalse);
-    	        }
-    	    if(!(disabledMode & EPluginInputModeItut) && curMode != EPluginInputModeItut)
-    	        {
-    	        aMenuPane->SetItemDimmed(EPenInputCmdVITUT, EFalse);
-    	        }
-
-    	    }
-        
-        iLangMan.CurrentImePlugin()->DynInitMenuPaneL(aMenuPane);
-        }
-        
-        
-    }    
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::OnFocusChangedL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::OnFocusChangedL( TBool aGainForeground )
-    {
-    if (iLaunchHelp)
-        {
-        return;    
-        }
-    
-    if ( iFepMan.StopProcessFocus()  )
-        {
-        if (iFepMan.CloseUiOnFocusChange())
-            {
-            ClosePluginInputUiL(ETrue);   
-            }
-                    
-        return ;
-        }
-
-    if(aGainForeground && !iPenInputServer.AutoOpen())
-        {
-        ClosePluginInputUiL(ETrue);    
-        return;	
-        }
-
-    
-    TUid appId = GetCurAppUid();
-    TBool bClose = ETrue;
-    TBool bOpen = ETrue;
-    TUid focusAppId = GetFocusAppUid();
-    
-    if ( !aGainForeground && appId == focusAppId )
-        {
-        return;
-        }
-        
-    if( !iLaunchMenu && IsGlobalNotesApp(focusAppId)) 
-
-        {
-        if( iPluginInputMode == EPluginInputModeItut ||
-            iPluginInputMode == EPluginInputModeFSQ ||
-            iPluginInputMode == EPluginInputModeFingerHwr)
-            {
-            bClose = EFalse;
-            }
-
-        }
-    iLaunchMenu = EFalse;
-    
-    // In globsl notes editor, launching global notes not fep dlg or menu
-    if(focusAppId.iUid == appId.iUid &&
-       IsGlobalNotesApp(appId) &&
-       !iFepMan.IsFepAwareTextEditor())
-        {
-        if( iPluginInputMode == EPluginInputModeItut ||
-            iPluginInputMode == EPluginInputModeFSQ ||
-            iPluginInputMode == EPluginInputModeFingerHwr)
-            {
-             ClosePluginInputUiL(ETrue);
-             if(iPenInputSvrConnected ) //lost foreground
-                {
-                iPenInputServer.LoseForeground();
-                }
-                
-            return;
-            }
-        }
-    
-    //global notes editor won't open automatically
-    /*if(IsGlobalNotesApp(appId) || IsGlobalNotesApp(focusAppId))
-        {
-        if(!iPenInputServer.IsDimmed())
-            bOpen = EFalse;						
-        }*/
-
-    if ( aGainForeground && iFepMan.FepAwareTextEditor() && IsCurrentWindInOpenList() )
-        {
-        if(!iPenInputSvrConnected) 
-            {
-            HandleEventsFromFepL(EPluginEditorActivate,0);
-            }
-                
-        if(!bOpen )
-            {
-            return;
-            }
-
-        if( iInMenu && iCurEditor == iFepMan.FepAwareTextEditor() )
-            {
-            ResetMenuState();
-            InformMfneUiStatusL( EFalse );
-			// If need to open setting app automatically, 
-			// do not open Touch window again. Fix for ESCN-7NVAWF
-			TBool langChange = iCurLanguage != iSharedData.InputTextLanguage();
-					
-			TryChangePluginInputModeByModeL(
-							(TPluginInputMode)iSharedData.PluginInputMode(),
-				langChange?EPenInputOpenManually:EPenInputOpenAutomatically,
-				ERangeInvalid);            
-			return;
-            }
-            
-//       iPenInputServer.UpdateAppInfo(KNullDesC, EAppIndicatorMsg);  
-          
-        //only automatically open when window in the list
-        
-        if ( !iFastSwapByMenu )
-            {  
-            TBool langChange = iCurLanguage != iSharedData.InputTextLanguage();
- //               iPenInputServer.DimUiLayout(EFalse);
-            TBool enableAdaptiveSearch = EFalse;
-            if ( iFepMan.IsFindPaneEditor() && iFepMan.IsSupportedAdaptiveSearch() )
-                {
-                iAvkonRepository->Get( KAknAvkonAdaptiveSearchEnabled, enableAdaptiveSearch );
-                if ( enableAdaptiveSearch )
-                    {
-                    if(!(iInMenu && ( iPluginInputMode == EPluginInputModeItut ||
-                                    iPluginInputMode == EPluginInputModeFSQ )))
-                        {
-                        ClosePluginInputModeL(ETrue);
-                        if(iPenInputSvrConnected ) //lost foreground
-                            {
-                            iPenInputServer.LoseForeground();
-                            }                
-                        }                
-                    }
-                }   
-            if ( !enableAdaptiveSearch )
-                {
-			TInt openMode = EPenInputOpenAutomatically;
-			TPluginInputMode inputMode = (TPluginInputMode)iSharedData.PluginInputMode();                        
-				if ((inputMode == EPluginInputModeFSc || inputMode == EPluginInputModeHwr ||
-					 inputMode == EPluginInputModeFingerHwr) &&
-				 iFepMan.IsSupportsSecretText())
-				{
-                    openMode = EPenInputOpenManually;
-                    }
-                if(langChange)
-                    {
-                    openMode = EPenInputOpenManually;
-                    }
-             
-                TryChangePluginInputModeByModeL(inputMode, openMode, ERangeInvalid);
-                }
-            }          
-        iFastSwapByMenu = EFalse;                   
-        }
-    else 
-        {   
-        TBool enableAdaptiveSearch = EFalse;
-        
-        if ( iFepMan.IsFindPaneEditor() && iFepMan.IsSupportedAdaptiveSearch() )
-            {
-            iAvkonRepository->Get( KAknAvkonAdaptiveSearchEnabled, enableAdaptiveSearch );
-            if ( enableAdaptiveSearch )
-                {
-                if(iInMenu && ( iPluginInputMode == EPluginInputModeItut ||
-                                iPluginInputMode == EPluginInputModeFSQ ||
-                                iPluginInputMode == EPluginInputModeFingerHwr))
-                    {                
-                    //iPenInputServer.DimUiLayout(ETrue); //dim the ui
-                    return;
-                    }                
-                
-                ClosePluginInputModeL(ETrue);
-                if(iPenInputSvrConnected ) //lost foreground
-                    {
-                    iPenInputServer.LoseForeground(); 
-                    }
-                }
-            }
-        
-        if ( !enableAdaptiveSearch )
-            {
-            if(iInMenu && ( iPluginInputMode == EPluginInputModeItut ||
-                            iPluginInputMode == EPluginInputModeFSQ ||
-                            iPluginInputMode == EPluginInputModeFingerHwr))
-                {                
-                //iPenInputServer.DimUiLayout(ETrue); //dim the ui
-                return;
-                }            
-            
-            //current control is not any kind of editor
-            if(bClose)
-                {
-                ClosePluginInputUiL(ETrue);
-                if(iPenInputSvrConnected ) //lost foreground
-                    {
-                    iPenInputServer.LoseForeground();
-                    }
-                }
-            else
-                {
-                //send dim command
-                //global notes app do nothing when lose focus
-                if( iPenInputSvrConnected )
-                    {
-                    iPenInputServer.SetInternalPopUp(iInMenu);
-                    iPenInputServer.SetEditorPriority(iEditorPriority);                
-                    TUid curApp = GetCurAppUid();          
-                    iPenInputServer.SetGlobalNotes( IsGlobalNotesApp(curApp) && 
-                                                    !iInGlobleNoteEditor);
-                    iPenInputServer.DimUiLayout(ETrue);
-                    }
-                }
-            }
-        }
-
-    //set touch pane enable/disable
-    if( iFepMan.FepAwareTextEditor() )
-        {
-        iFepMan.UiInterface()->TouchPaneAllowInputMethodActivation(ETrue);
-        }
-    else 
-        {   
-        iFepMan.UiInterface()->TouchPaneAllowInputMethodActivation(EFalse);
-        }
-
-    iFepMan.UiInterface()->TouchPaneRefreshL();        
-    }    
-void CAknFepPluginManager::SendIcfDataL(  TPluginSync aSyncType )
-    {
-    if( PluginInputMode() == EPluginInputModeNone || 
-        !iCurrentPluginInputFepUI )
-        {
-        return;
-        }
-        
-    MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-    if ( !edit )
-        {
-        if ( IsDimed() )
-            {
-            TFepInputContextFieldData icfData;
-            icfData.iCmd = EPeninputICFInitial;
-    	    icfData.iText.Set(*iLastEditorContentBuf);
-    	    icfData.iCurSel = iCurSelPre;
-    	    if ( iFepMan.IsFlagSet(CAknFepManager::EFlagNoMatches) )
-                {
-                icfData.iFlag = EFepICFDataInlineNoMatch;
-                }
-            if ( ExistInlineText() ) // inline
-                {
-                icfData.iStartPos = iFepMan.UncommittedText().LowerPos();
-                icfData.iLength = iCurSelPre.iCursorPos - icfData.iStartPos;
-                icfData.iMidPos = 0;
-                }
-            iCurrentPluginInputFepUI->HandleCommandL
-                (ECmdPenInputSendEditorTextAndCurPos, reinterpret_cast<TInt>(&icfData));
-            }
-        return;
-        }
-            
-    if( iDisableSyncText )            
-        {
-        iPendingSyncReq = ETrue;
-        return;
-        }
-
-    iPendingSyncReq = EFalse;
-            
-    TBool enableCursor;
-    TBool enableSelection;
-    TFepInputContextFieldData icfData;
-    
-    if ( iFepMan.IsFeatureSupportedJapanese()
-        && EPluginSyncCurSel == aSyncType
-        && iFepMan.FepAwareTextEditor()->DocumentLengthForFep() > iPreDocumentLengthForFep
-        && iCurSelCur.iAnchorPos > iPreDocumentLengthForFep ) // add linefeed by Down Key
-        {
-        aSyncType = EPluginSyncUpdatedText;
-        iCurSelPre.iAnchorPos = iPreDocumentLengthForFep;
-        }    
-    
-    edit->GetCursorSelectionForFep( iCurSelCur );
-    TInt editContentLen = edit->DocumentLengthForFep();	
-    	
-    if( iCurSelCur.iCursorPos > editContentLen )
-    	{
-    	iCurSelCur.iCursorPos = editContentLen;
-    	}
-    if( iCurSelCur.iAnchorPos > editContentLen )
-    	{
-    	iCurSelCur.iAnchorPos = editContentLen;
-    	}
-    	
-    // 1. set cursor visiblity
-    CAknEdwinState* editorState = iFepMan.EditorState();
-    TBool secretEditor = iFepMan.IsSupportsSecretText();
-    
-    if (editorState)
-        {
-		enableCursor = !IsEditorCursorDisabled(); 
-        enableSelection = IsEditorCursorSelVisible();
-        }
-    else // MFNE
-        {        
-        enableCursor = (iCurSelCur.Length()==0);
-        enableSelection = (iCurSelCur.Length()>0);
-        }
-    icfData.iCursorVisibility = enableCursor;
-    icfData.iCursorSelVisible = enableSelection;    
- 
-    delete iIcfDataBuf;
-    iIcfDataBuf = NULL;
-    
-    // 2. set cursor xy-position in window
-    TPoint position(-1,-1);
-    TInt height = 0;
-    TInt ascent = 0;
-    
-    if( PluginInputMode() == EPluginInputModeFSc )
-        {
-        edit->GetScreenCoordinatesForFepL
-            ( position, height, ascent, iCurSelCur.iCursorPos );
-        icfData.iRect = TRect( TPoint( position.iX, position.iY-ascent ),
-                               TPoint( position.iX, position.iY+height-ascent ) );
-        }
-    
-    // 3. set cursor selection
-    icfData.iCurSel = iCurSelCur;
-
-    // 4. set leading edge flag
-    icfData.iLeadingEdge = (iFepMan.DocPos().iType == TTmDocPosSpec::ELeading);
-    
-    // 5. set icf direction 
-    if ( iFepMan.IsMfneEditor() )
-        {
-        icfData.iFlag = EFepICFDataDirectionMFNE;
-        }
-    else
-        {
-        if ( TBidiText::ScriptDirectionality
-            ( TLanguage( iFepMan.InputLanguageCapabilities().iInputLanguageCode ) ) ==
-            TBidiText::ELeftToRight )
-            {
-            icfData.iFlag = EFepICFDataDirectionLTR;
-            }
-        else
-            {
-            icfData.iFlag = EFepICFDataDirectionRTL;
-            }
-        }
-    
-    // 6. set other icf data info
-    // get last editor content
-	TPtrC lastEditorContent;
-    if ( !iLastEditorContentBuf )
-    	{
-    	lastEditorContent.Set( KNullDesC );
-    	}
-    else
-    	{
-    	lastEditorContent.Set( iLastEditorContentBuf->Des() );
-    	}
-    
-    // get current editor content	
-    HBufC* currentEditorContentBuf = HBufC::NewLC( editContentLen );
-    TPtr16 currentEditorContent = currentEditorContentBuf->Des();
-	edit->GetEditorContentForFep( currentEditorContent, 0, editContentLen ); 
-	
-	TBool send = ETrue;
-	
-	if ( !SetSyncIcfDataL( icfData, lastEditorContent, currentEditorContent ) )
-    	{
-    	send = EFalse;
-    	}
-
-    if ( send )
-    	{
-    	iCurrentPluginInputFepUI->HandleCommandL
-            (ECmdPenInputSendEditorTextAndCurPos, reinterpret_cast<TInt>(&icfData));
-    	}
-    	
-    if ( secretEditor ) 
-        { 
-        TBool cursorDisabled = IsEditorCursorDisabled(); 
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputDimArrowKeys, cursorDisabled );        
-        } 
-
-
-    // reset last editor content buffer
-    delete iLastEditorContentBuf;
-    iLastEditorContentBuf = currentEditorContentBuf;
-	CleanupStack::Pop(); // currentEditorContentBuf
-	
-    iCurSelPre.iCursorPos = iCurSelCur.iCursorPos;
-    iCurSelPre.iAnchorPos = iCurSelCur.iAnchorPos;
-    iPreDocumentLengthForFep = editContentLen;
-    }
-
-TBool CAknFepPluginManager::SetSyncIcfDataL( TFepInputContextFieldData& aIcfData,
-                                            const TDesC& aLastEditorContent,
-                                            const TDesC& aCurrentEditorContent )
-	{
-	MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-	
-	    // if content is the same, sync cursor selection only
-    if ( !iModeChanged && 
-        aLastEditorContent.Compare( aCurrentEditorContent ) == 0 )
-    	{
-        if ( aIcfData.iCurSel.HigherPos() > edit->DocumentLengthForFep() || 
-         aIcfData.iCurSel.LowerPos() < 0 )
-            {
-            return EFalse;
-            }
-    	return SetSyncCurSelIcfDataL( aIcfData );    	
-    	}
-    		
-	if ( TextInlined( aLastEditorContent, aCurrentEditorContent ) ) // inline
-        {
-        aIcfData.iCmd = EPeninputICFReplace;
-        aIcfData.iStartPos = iFepMan.UncommittedText().LowerPos();
-        aIcfData.iLength = iCurSelPre.HigherPos() - aIcfData.iStartPos;
-        TInt readLen = iFepMan.UncommittedText().Length();
-        iIcfDataBuf = HBufC::NewL( readLen );
-        TPtr16 icfDes = iIcfDataBuf->Des();
-        edit->GetEditorContentForFep( icfDes, aIcfData.iStartPos, readLen ); 
-        if ( iFepMan.IsFlagSet(CAknFepManager::EFlagNoMatches) )
-            {
-            aIcfData.iFlag = EFepICFDataInlineNoMatch;
-            }
-        aIcfData.iText.Set(icfDes);
-        
-    	if ( EnableITIOnFSQ() )
-    	    {
-    	    TInt tailLength = 0;
-    	    iFepMan.PtiEngine()->HandleCommandL
-    	             ( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-    	    if ( tailLength > 0 )
-    	        {
-    	        aIcfData.iMidPos = tailLength;
-    	        }
-            else
-                {
-                aIcfData.iMidPos = 0;
-                }
-    	    }    	
-        else
-            {
-            aIcfData.iMidPos = 0;
-            }
-
-        aIcfData.iCursorVisibility = EFalse;
-        aIcfData.iCursorSelVisible = EFalse;
-        }
-    else if ( TextInserted( aLastEditorContent, aCurrentEditorContent ) ) // insert
-        {
-        aIcfData.iCmd = EPeninputICFReplace;
-        aIcfData.iStartPos = iCurSelPre.LowerPos();
-        aIcfData.iLength = iCurSelPre.Length();
-        aIcfData.iMidPos = -1;
-        TInt readLen = iCurSelCur.iCursorPos - iCurSelPre.LowerPos();
-        iIcfDataBuf = HBufC::NewL( readLen );
-        TPtr16 icfDes = iIcfDataBuf->Des();
-        edit->GetEditorContentForFep( icfDes, aIcfData.iStartPos, readLen );
-        aIcfData.iText.Set(icfDes);
-        }
-    else if ( TextDeleted( aLastEditorContent, aCurrentEditorContent ) ) // delete
-        {
-        aIcfData.iCmd = EPeninputICFDelete;
-        aIcfData.iStartPos = iCurSelCur.iCursorPos;
-        aIcfData.iLength = aLastEditorContent.Length() - aCurrentEditorContent.Length();
-        aIcfData.iMidPos = -1;
-        aIcfData.iText.Set(KNullDesC);
-        }
-    else if ( !iModeChanged && iFepMan.IsFeatureSupportedJapanese()
-        && (iFepMan.FepAwareTextEditor()->DocumentLengthForFep() < iPreDocumentLengthForFep
-            || iFepMan.FepAwareTextEditor()->DocumentLengthForFep() == iPreDocumentLengthForFep 
-            && iCurSelCur.iCursorPos > 0)
-        && iCurSelCur.iCursorPos == iCurSelPre.iCursorPos
-        && iCurSelCur.iAnchorPos == iCurSelPre.iAnchorPos )
-        {
-        if ( iFepMan.FepAwareTextEditor()->DocumentLengthForFep() < iPreDocumentLengthForFep ) // Delete Right
-            {
-            aIcfData.iCmd = EPeninputICFDelete;
-            aIcfData.iStartPos = iCurSelCur.iCursorPos;
-            aIcfData.iLength = iPreDocumentLengthForFep - 
-                               iFepMan.FepAwareTextEditor()->DocumentLengthForFep();
-            aIcfData.iMidPos = -1;
-            aIcfData.iText.Set(KNullDesC);
-            }
-        else  // Replace
-            {
-            TInt repLen = (iCurSelCur.iCursorPos > 1)? 2:1;
-            iIcfDataBuf = HBufC::NewL( repLen );
-            TPtr16 icfDes = iIcfDataBuf->Des();
-            iFepMan.FepAwareTextEditor()->GetEditorContentForFep( icfDes, 
-                                                                  iCurSelCur.iCursorPos - repLen, 
-                                                                  repLen );
-            if (2 == repLen && icfDes[0] == KVkbParagraphSeparator)
-                {
-                repLen = 1;
-                icfDes.Delete(0,1);
-                }
-            aIcfData.iCmd = EPeninputICFReplace;
-            aIcfData.iStartPos = iCurSelCur.iCursorPos - repLen;
-            aIcfData.iLength = repLen;
-            aIcfData.iMidPos = -1;
-            aIcfData.iText.Set(icfDes);
-            }
-        }
-    else if ( TextMultiTapped( aLastEditorContent, aCurrentEditorContent ) )// multitap
-        {
-        aIcfData.iCmd = EPeninputICFReplace;
-        aIcfData.iStartPos = iCurSelCur.iCursorPos - 1;
-        aIcfData.iLength = 1;
-        aIcfData.iMidPos = -1;
-        iIcfDataBuf = HBufC::NewL( aIcfData.iLength );
-        TPtr16 icfDes = iIcfDataBuf->Des();
-        edit->GetEditorContentForFep( icfDes, aIcfData.iStartPos, aIcfData.iLength );
-        aIcfData.iText.Set(icfDes);
-        }
-    else
-        {
-        aIcfData.iCmd = EPeninputICFInitial;
-	    aIcfData.iStartPos = 0;
-	    aIcfData.iLength = edit->DocumentLengthForFep();
-	    aIcfData.iMidPos = -1;
-	    iIcfDataBuf = HBufC::NewL( aIcfData.iLength );
-	    TPtr16 icfDes = iIcfDataBuf->Des();
-	    edit->GetEditorContentForFep( icfDes, 0, aIcfData.iLength );
-	    aIcfData.iText.Set(icfDes);
-        }
-    if ( aIcfData.iStartPos > edit->DocumentLengthForFep() || aIcfData.iStartPos < 0 )
-        {
-        return EFalse;
-        }
-    return ETrue;
-	}
-	
-TBool CAknFepPluginManager::SetSyncCurSelIcfDataL( TFepInputContextFieldData& aIcfData )
-	{
-	MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-	if ( ExistInlineText() ) // inline
-        {
-        aIcfData.iCmd = EPeninputICFSetCurSel;
-        aIcfData.iStartPos = iFepMan.UncommittedText().LowerPos();
-        aIcfData.iLength = iCurSelPre.iCursorPos - aIcfData.iStartPos;
-        TInt readLen = iFepMan.UncommittedText().Length();
-        iIcfDataBuf = HBufC::NewL( readLen );
-        TPtr16 icfDes = iIcfDataBuf->Des();
-        edit->GetEditorContentForFep( icfDes, aIcfData.iStartPos, readLen ); 
-        if ( iFepMan.IsFlagSet(CAknFepManager::EFlagNoMatches) )
-            {
-            aIcfData.iFlag = EFepICFDataInlineNoMatch;
-            }
-        aIcfData.iText.Set(icfDes);
-        
-    	if ( EnableITIOnFSQ() )
-    	    {
-    	    TInt tailLength = 0;
-    	    iFepMan.PtiEngine()->HandleCommandL
-    	             ( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-    	    if ( tailLength > 0 )
-    	        {
-    	        aIcfData.iMidPos = tailLength;
-    	        }
-    	    else
-    	        {
-    	        aIcfData.iMidPos = 0;
-    	        }
-    	    }
-        else
-            {
-            aIcfData.iMidPos = 0;
-            }
-
-        aIcfData.iCursorVisibility = EFalse;
-        aIcfData.iCursorSelVisible = EFalse;
-        }
-    else
-        {
-        // update curosr pos
-        aIcfData.iCmd = EPeninputICFSetCurSel;
-        aIcfData.iStartPos = iCurSelCur.iCursorPos;
-        aIcfData.iMidPos = -1;
-        aIcfData.iText.Set(KNullDesC);
-        }
-        
-    iInlineStateOn = ( aIcfData.iMidPos == 0 );
-	
-    return ETrue;
-	}   
-
-TBool CAknFepPluginManager::TextInlined( const TDesC& aLastEditorContent, 
-                                         const TDesC& aCurrentEditorContent)
-	{
-	if ( iModeChanged )
-		{
-		return EFalse;
-		}
-		
-	return ( ExistInlineText()  && 
-           aLastEditorContent.Left(iFepMan.UncommittedText().LowerPos()).Compare(
-                   aCurrentEditorContent.Left(iFepMan.UncommittedText().LowerPos()) ) == 0 && 
-           aLastEditorContent.Mid(iCurSelPre.HigherPos()).Compare(
-                   aCurrentEditorContent.Mid(iCurSelCur.iCursorPos) ) == 0 );
-	}
-
-TBool CAknFepPluginManager::TextInserted( const TDesC& aLastEditorContent, 
-                                          const TDesC& aCurrentEditorContent)
-	{
-	if ( iModeChanged )
-		{
-		return EFalse;
-		}
-	
-	return ( iCurSelCur.LowerPos() > iCurSelPre.LowerPos() && 
-           aLastEditorContent.Left(iCurSelPre.LowerPos()).Compare(
-                 aCurrentEditorContent.Left(iCurSelPre.LowerPos()) ) == 0 && 
-           aLastEditorContent.Mid(iCurSelPre.HigherPos()).Compare(
-                 aCurrentEditorContent.Mid(iCurSelCur.iCursorPos) ) == 0);	
-	}
-	
-TBool CAknFepPluginManager::TextDeleted( const TDesC& aLastEditorContent, 
-                                         const TDesC& aCurrentEditorContent)
-	{
-	if ( iModeChanged )
-		{
-		return EFalse;
-		}
-	
-    if ( aLastEditorContent.Length() < aCurrentEditorContent.Length() )
-        {
-        return EFalse;
-        } 
-	
-	TPtrC curRightContent = aCurrentEditorContent.Mid(iCurSelCur.iCursorPos);
-
-	TInt pos = aLastEditorContent.Length()-curRightContent.Length();
-
-	return ( iCurSelCur.HigherPos() <= iCurSelPre.HigherPos() && 
-           aLastEditorContent.Left(iCurSelCur.iCursorPos).Compare(
-               aCurrentEditorContent.Left(iCurSelCur.iCursorPos) ) == 0 
-           && ( pos >= 0) && aLastEditorContent.Mid(pos).Compare(curRightContent ) == 0	);
-	}	
-	
-TBool CAknFepPluginManager::TextMultiTapped( const TDesC& aLastEditorContent, 
-                                             const TDesC& aCurrentEditorContent)
-	{
-	if ( iModeChanged )
-		{
-		return EFalse;
-		}
-
-	MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-	
-	if ( iCurSelCur.iCursorPos > aLastEditorContent.Length() )
-	    {
-	    return EFalse;
-	    }
-	return ( iCurSelCur.iCursorPos > 0 && 
-        ( iCurSelPre.iCursorPos <= edit->DocumentMaximumLengthForFep() 
-              || edit->DocumentMaximumLengthForFep() == 0 ) && 
-        aLastEditorContent.Left(iCurSelCur.iCursorPos-1).Compare(
-              aCurrentEditorContent.Left(iCurSelCur.iCursorPos-1) ) == 0 && 
-        aLastEditorContent.Mid(iCurSelCur.iCursorPos).Compare(
-              aCurrentEditorContent.Mid(iCurSelCur.iCursorPos) ) == 0);	
-	}	
-	
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::SetCursorSelectionL
-// Set editor cursor selection.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::SetCursorSelectionL(const TCursorSelection& aCurSel, TBool aSyncCursor)    
-    {
-    MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-    if(edit && 
-       aCurSel.HigherPos() <= edit->DocumentLengthForFep() && 
-       aCurSel.LowerPos() >= 0 )
-        {
-        if ( ( aCurSel.iCursorPos != iCurSelPre.iCursorPos ) || 
-            ( aCurSel.iAnchorPos != iCurSelPre.iAnchorPos ) || aSyncCursor)
-            {
-            edit->SetCursorSelectionForFepL(aCurSel);
-            
-            iFepMan.SynCCPSoftKey();
-            TCursorSelection curSel; 
-            edit->GetCursorSelectionForFep( curSel );
-
-            if(curSel.iCursorPos != aCurSel.iCursorPos || 
-               curSel.iAnchorPos != aCurSel.iAnchorPos )
-                {
-                iCurSelPre.iCursorPos = aCurSel.iCursorPos;
-                iCurSelPre.iAnchorPos = aCurSel.iAnchorPos;
-                }
-
-            if ( aSyncCursor || 
-                curSel.iCursorPos != aCurSel.iCursorPos || 
-                curSel.iAnchorPos != aCurSel.iAnchorPos || 
-                curSel.iCursorPos != iCurSelPre.iCursorPos || 
-                curSel.iAnchorPos != iCurSelPre.iAnchorPos )
-                {
-			    iCaseMan.UpdateCase(ENullNaviEvent);			    
-                SendIcfDataL();
-                }
-            else
-                {
-                iCurSelPre.iCursorPos = aCurSel.iCursorPos;
-                iCurSelPre.iAnchorPos = aCurSel.iAnchorPos;
-                }
-            }
-        }
-    }   
- 
-HBufC*  CAknFepPluginManager::GetNumberKeymapResource(TInt aCaseMode)
-    {
-    HBufC* rtn = NULL;
-    TRAP_IGNORE( rtn = DoGetNumberKeymapResourceL( aCaseMode ));
-    return rtn;
-    }
-    
-HBufC*  CAknFepPluginManager::DoGetNumberKeymapResourceL(TInt aCaseMode)
-    {//the code is borrowed from DoLaunchSctAndPctL
-    
-    HBufC* rtn = NULL;
-    
-    //first get resource id
-    TInt currentEditorSCTResId = iFepMan.GetCurrentEditorSCTResId();
-    
-    //load from resource
-    TResourceReader reader;
-    CCoeEnv* env = CCoeEnv::Static();
-    env->CreateResourceReaderLC(reader, currentEditorSCTResId);
-    reader.ReadInt32();//LONG flag
-    reader.ReadTPtrC();//LTEXT title="";
-    reader.ReadInt32();//LLINK pages=0;
-    reader.ReadInt32();//LLINK buttons=0;
-
-    const TInt count = reader.ReadInt16(); //line count
-    for( TInt i = 0; i < count; ++i )
-        {
-        TInt type = reader.ReadInt16();      
-        if( type == EAknCtSpecialCharacterMap )
-            {
-            reader.ReadTPtrC(); //caption
-            reader.ReadInt16(); //id
-            reader.ReadInt32(); //flags          
-            TInt component_count=reader.ReadInt16();
-            for (TInt ii=0;ii<component_count;ii++)
-                {
-                TInt component_id=reader.ReadInt16();
-                if(component_id == aCaseMode)
-                    {
-                    rtn = reader.ReadHBufCL();
-                    break;
-                    }
-                else
-                    {
-                    reader.ReadTPtrC();
-                    }
-                }
-  
-            break;
-            }
-        else
-            {
-            //ignore line
-            CEikCaptionedControl* line=new(ELeave) CEikCaptionedControl;
-            CleanupStack::PushL(line);
-            SEikControlInfo controlInfo=EikControlFactory::CreateByTypeL(type);
-            if( controlInfo.iControl )
-                {
-                line->iControl = controlInfo.iControl;
-                line->ConstructFromResourceL(reader);
-                CleanupStack::PopAndDestroy(line); // line
-                }
-            else
-                {
-                User::Leave(KErrNotSupported);
-                }
-            }
-        }
-
-    CleanupStack::PopAndDestroy(); //reader
-    return rtn;
-    }
-                             
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::InitializePluginInputL
-// Initialize plugin UI
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::InitializePluginInputL(TInt aOpenMode, TInt aSuggestRange,
-                                                  TBool aCleanContent)
-    {
-    if ( iFepMan.FepManState()!= EAknFepStateUIActive || iClosePluginInputMode )      
-        {
-        //Set hardware key board mode
-        iFepMan.TryCloseUiL();
-        iClosePluginInputMode = EFalse;
-        }
-    
-    UpdatePredicState();
-  
-    NotifyLayoutL( aOpenMode, aSuggestRange, aCleanContent );
-    
-//    iPenInputServer.UpdateAppInfo(KNullDesC, EAppIndicatorMsg);  
-    
-    iPluginInputMode =  (TPluginInputMode)iLangMan.CurrentImePlugin()->CurrentMode();   
-
-    //adjust VKB window if data query dialog is displaying
-    if(IsDisplayDataQuery())
-        {
-        RDrawableWindow* focusWin = 
-                       CCoeEnv::Static()->AppUi()->TopFocusedControl()->DrawableWindow();        
-        if(!iLastDataQueryWin
-           || iLastDataQueryWin != focusWin)
-            {
-            iDataQueryAlreadyShow = EFalse;
-            iLastDataQueryWin = focusWin;
-            }
-        }
-    if(IsDisplayDataQuery() && //data query
-       !iDataQueryAlreadyShow &&  //only adjust once
-       PluginInputMode() == EPluginInputModeVkb) //only vkb mode 
-        {
-        RepositionDataQuery(EFalse);
-        }
-
-    if ( !NotifyInGlobalNoteEditorL() )
-    	{
-    	iCurrentPluginInputFepUI->ActivateUI(); 
-    	}
-    
-    iFepMan.UpdateIndicators();
-    iCurrentPluginInputFepUI->SetNextFepUI(
-        iLangMan.GetFepUI(iFepMan.InputMode(), ENoneWidthChar, 
-        iFepMan.IsPredictive(iFepMan.InputMode())) );    
-    //SyncFepAwareText( EPluginSyncUpdatedText ); //sync again
-    iLastSubmitCount = 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::LaunchPenInputMenuL
-// Launch plugin menu.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::LaunchPenInputMenuL(TInt aResourceId, TBool aRemeber)
-    {
-    TInt previousModes = iCurPermitModes;
-    TBool previousSCT  = isLanuchSCT;
-    TInt inputmode = PluginInputMode();
-    
-    if (R_AVKON_PENINPUT_OPTION_MENU_BAR == aResourceId &&
-        (inputmode == EPluginInputModeItut ||
-         inputmode == EPluginInputModeVkb ||
-         inputmode == EPluginInputModeFSQ))
-        {
-        isLanuchSCT = EFalse;
-        iCurPermitModes = iFepMan.PermittedModes(); 
-        isLanuchSCT = iFepMan.IsAbleToLaunchSCT();  
-        }
-    else
-        {
-        iCurPermitModes = 0;    
-        }
-        
-    if (aRemeber)
-        {
-        iFepMan.RemeberEditorState();   
-        }
-    else
-        {
-        iCurPermitModes = previousModes;
-        isLanuchSCT = previousSCT;
-        }
-    
-    iPenInputMenu->ShowL(aResourceId);
-    }
- 
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::LaunchPenInputLanguageSelectionL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::LaunchPenInputLanguageSelectionL( TBool /*aLaunchedByTouchWin*/ )
-    {
-    //record langauge
-//    TInt oldLang = iSharedData.InputTextLanguage();
-//    CPenInputGSInterface*  setting = CPenInputGSInterface::NewL();
-//    CleanupStack::PushL(setting);
-//    iFepMan.SetCancelPopupInQwerty( aLaunchedByTouchWin );
-//    setting->ShowInputLanguagePageL();
-//    iFepMan.SetCancelPopupInQwerty( EFalse );
-//    CleanupStack::PopAndDestroy(setting); 
-//    TInt inputLanguage = iSharedData.InputTextLanguage();
-//    if( oldLang != inputLanguage)
-//        {
-//        iSharedData.SetInputTextLanguage(inputLanguage);
-//        iFepMan.ChangeInputLanguageL(inputLanguage);
-//        iFepMan.SetFlag( CAknFepManager::EFlagNewSharedDataInputLanguage 
-//            | CAknFepManager::EFlagNewSharedDataInputMode );
-//
-//        }
-    }        
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::LaunchPenInputRecognitionWithDictionarySelectionL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::LaunchPenInputRecognitionWithDictionarySelectionL()
-    {
-    //record langauge
-//    CPenInputGSInterface*  setting = CPenInputGSInterface::NewL();
-//    CleanupStack::PushL(setting);
-//    setting->ShowRecognitionWithDictionaryL();
-//    CleanupStack::PopAndDestroy(setting); 
-//    TInt inputLanguage = iSharedData.InputTextLanguage();
-    }  
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::LaunchPenInputSettingL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::LaunchPenInputSettingL()
-    {
-    //record langauge
-//    TInt oldLang = iSharedData.InputTextLanguage();
-//    if ( !iGsInterface )
-//        {
-//        iGsInterface = CPenInputGSInterface::NewL();
-//        }    
-//    iGsInterface->ShowMainViewL();
-//    TInt inputLanguage = iSharedData.InputTextLanguage();
-//    if( oldLang != inputLanguage)
-//        {
-//        iFepMan.ChangeInputLanguageL(inputLanguage);
-//        }
-
-    }     
-
-// -----------------------------------------------------------------------------
-// CAknFepManager::ParseInputContextContent
-// Parse editor text passed to plugin ICF
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ParseInputContextContent(TDes& aBuffer, TInt aCurrent,
-                                              TInt& aFrom, TInt& aTo)
-    {
-    TInt maxLen = aBuffer.Length();
-    TInt i;
-    //find from
-    for( i = aCurrent - 1; i >=0; i--)
-        {
-        if( aBuffer[i] == KVkbTabulator)
-            {
-            // tabulator found, replace it with a space
-            aBuffer.Replace(i, 1, KVkbTabChar);
-            }
-        else if(aBuffer[i] == KVkbParagraphSeparator)
-            {
-            break;
-            }
-        }
-        
-    aFrom = i + 1;
-    
-    for(i = aCurrent; i < maxLen; i++)
-        {
-        if( aBuffer[i] == KVkbTabulator)
-            {
-            // tabulator found, replace it with a space
-            aBuffer.Replace(i, 1, KVkbTabChar);
-            }
-        else if(aBuffer[i] == KVkbParagraphSeparator)
-            {
-            break;
-            }
-        }
-        
-    aTo = i;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::SubmitUiPluginTextL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::SubmitUiPluginTextL(const TDesC& aData, 
-											   TSimulateEventMode aForcedMode)
-    {    
-    iDisableSyncText = ETrue;
-    // a flag to decide if to simulate space or enter key event in number only editor
-    // if is asked, simulate these keys anyway.
-    TBool disableSpaceEnterFlag = EFalse ;
-    
-    if ( iFepMan.PermittedModes() == EAknEditorNumericInputMode )
-        {
-        CAknEdwinState* editorState = iFepMan.EditorState();
-        
-        if ( !editorState )
-            {
-            disableSpaceEnterFlag = !iFepMan.IsMfneEditor();
-            }
-        else
-            {
-            disableSpaceEnterFlag = 
-                     !(editorState->Flags() & EAknEditorFlagDeliverVirtualKeyEventsToApplication);
-            }
-        }
-
-    CCoeEnv* env = CCoeEnv::Static();
-    MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor(); 
-        /*
-        TBool noSimulate = !iFepMan.IsMfneEditor() && iCurSelPre.Length() > 0 &&
-            ( PluginInputMode() == EPluginInputModeItut || PluginInputMode() == EPluginInputModeFSQ );
-        */   
-        for(int i = 0; i < aData.Length(); ++i)
-            {
-            TKeyEvent keyEvent = {aData[i], EStdKeyNull, 0, 0};
-            
-            /*
-            if ( noSimulate )
-                {
-                if (keyEvent.iCode == EKeyLeftArrow )
-                    {
-                    if(iCurSelPre.iCursorPos > 0)
-                        {
-                        TInt pos = iCurSelPre.iCursorPos - 1;
-                        edit->SetCursorSelectionForFepL
-                            ( TCursorSelection( pos, iCurSelPre.iAnchorPos ) );
-                        }
-                    else  if(iCurSelPre.iCursorPos == 0)
-                        {
-                        edit->SetCursorSelectionForFepL
-                            ( TCursorSelection( iCurSelPre.iCursorPos, iCurSelPre.iAnchorPos ) );
-                        }
-                    SendIcfDataL();
-                    continue;
-                    }
-                else if (keyEvent.iCode == EKeyRightArrow )
-                    {                   
-                    if(iCurSelPre.iCursorPos < edit->DocumentLengthForFep())
-                        {
-                        TInt pos = iCurSelPre.iCursorPos + 1;
-                        edit->SetCursorSelectionForFepL
-                            ( TCursorSelection( pos, iCurSelPre.iAnchorPos ) );
-                        }
-                    else if(iCurSelPre.iCursorPos == edit->DocumentLengthForFep())
-                        {
-                        edit->SetCursorSelectionForFepL
-                            ( TCursorSelection( iCurSelPre.iCursorPos, iCurSelPre.iAnchorPos ) );
-                        }  
-                    SendIcfDataL();
-                    continue;
-                    }    
-                }
-            */        
-            
-		    if (keyEvent.iCode == EKeyLeftArrow && iHasSWEventCap)
-                {
-                TRawEvent eventDown; 
-                eventDown.Set( TRawEvent::EKeyDown, EStdKeyLeftArrow); 
-                eventDown.SetTip( ETrue );
-                static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->DisableNextKeySound( EStdKeyLeftArrow ); 
-                CCoeEnv::Static()->WsSession().SimulateRawEvent( eventDown ); 
-
-                TRawEvent eventUp; 
-                eventUp.Set( TRawEvent::EKeyUp, 14); 
-                eventUp.SetTip( ETrue );
-                CCoeEnv::Static()->WsSession().SimulateRawEvent( eventUp ); 
-                }
-                
-		    else if (keyEvent.iCode == EKeyRightArrow && iHasSWEventCap)
-                {
-                TRawEvent eventDown; 
-                eventDown.Set( TRawEvent::EKeyDown, EStdKeyRightArrow); 
-                eventDown.SetTip( ETrue );
-                static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->DisableNextKeySound( EStdKeyRightArrow ); 
-                CCoeEnv::Static()->WsSession().SimulateRawEvent( eventDown ); 
-
-                TRawEvent eventUp; 
-                eventUp.Set( TRawEvent::EKeyUp, EStdKeyRightArrow); 
-                eventUp.SetTip( ETrue );
-                CCoeEnv::Static()->WsSession().SimulateRawEvent( eventUp ); 
-                }
-            
-            
-            else if ( keyEvent.iCode >= EKeyApplication27 
-                    || (iFepMan.IsFeatureSupportedJapanese()
-                         && iFepMan.InputMode() == EHiraganaKanji
-                         && edit
-                         && (EPtiKey0 <= keyEvent.iCode && keyEvent.iCode <= EPtiKey9)
-                       )
-                    )
-                {
-                TBuf<1> buf;
-                buf.Append( TChar( aData[i] ) );
-                iFepMan.SubmitInlineTextL( buf );
-                }
-            else
-                {
-                if ( ( disableSpaceEnterFlag && 
-                    ( keyEvent.iCode == EKeySpace || keyEvent.iCode == EKeyEnter ) ) || 
-                    ( edit && edit->DocumentLengthForFep() <= 0  && 
-                    ( keyEvent.iCode == EKeyDelete || keyEvent.iCode == EKeyBackspace ) ) )
-                    {
-                    iLastSubmitCount--;
-                    continue;
-                    }
-                if ( keyEvent.iCode == EKeyTab )
-                    {
-                    iLastSubmitCount--;
-                    }
-                else if (keyEvent.iCode == EKeySpace)
-                    {
-                    keyEvent.iScanCode = EStdKeySpace;
-                    }
-                else if (keyEvent.iCode == EKeyDelete)
-                    {
-                    keyEvent.iScanCode = EStdKeyDelete;
-                    if (iSharedData.ClearDirection() == EClearDirectionLeft)
-                        {
-                        keyEvent.iCode = EKeyBackspace;
-                        keyEvent.iScanCode = EStdKeyBackspace;
-                        }
-                    }
-                else if (keyEvent.iCode == EKeyBackspace)
-                    {
-                    keyEvent.iScanCode = EStdKeyBackspace;
-                    }
-                else if (keyEvent.iCode == EKeyEnter)
-                    {
-                    keyEvent.iScanCode = EStdKeyEnter;
-                    }
-                else if ( EnableITIOnFSQ() )
-                    {
-                    // For addtion of ITI features on FSQ
-                    // If FSQ is opened with ITI enabled,
-                    // Must get scan code from keymapping, EStdKeyNull won't be handled by ITI engine. 
-                    keyEvent.iScanCode = GetScanCodeFromHwKeymapping( aData[i] );
-                    }
-                // For converter
-                // If inputting through VKB or HWR, the event can be done only when aType is equal to EEventKey.
-                // Besides, only when inputting the dot in VKB or HWR, aKeyEvent.iScanCode is equal to decimalChar.
-                CAknEdwinState* editorState = iFepMan.EditorState();
-                TLocale locale;
-                if(editorState && 
-                  (editorState->NumericKeymap() == EAknEditorConverterNumberModeKeymap ||
-                    editorState->NumericKeymap() == EAknEditorCalculatorNumberModeKeymap) &&
-                    keyEvent.iCode == locale.DecimalSeparator() )
-                    {
-                    keyEvent.iScanCode = locale.DecimalSeparator();
-                    }
-
-                // The keycode is a non-standard keyboard character
-                keyEvent.iModifiers |= EModifierSpecial;
-                
-                
-                if (keyEvent.iScanCode == EStdKeyBackspace && 
-                	iHasSWEventCap &&
-                	aForcedMode != EKeyEvent )
-                    {
-                    TRawEvent eventDown; 
-                    eventDown.Set( TRawEvent::EKeyDown, EStdKeyBackspace); 
-                    eventDown.SetTip( ETrue );
-                    static_cast<CAknAppUi*>(CEikonEnv::Static()->EikAppUi())->DisableNextKeySound( 
-                                                                                EStdKeyBackspace ); 
-                    CCoeEnv::Static()->WsSession().SimulateRawEvent( eventDown ); 
-                    
-                    TRawEvent eventUp; 
-                    eventUp.Set( TRawEvent::EKeyUp, EStdKeyBackspace); 
-                    eventUp.SetTip( ETrue );
-                    CCoeEnv::Static()->WsSession().SimulateRawEvent( eventUp ); 
-                    }
-                else if ( keyEvent.iScanCode == EStdKeyEnter && iHasSWEventCap )
-                    {
-                    TRawEvent eventDown; 
-                    eventDown.Set( TRawEvent::EKeyDown, EStdKeyEnter ); 
-                    iAvkonAppUi->DisableNextKeySound( EStdKeyEnter ); 
-                    CCoeEnv::Static()->WsSession().SimulateRawEvent( eventDown ); 
-                    
-                    TRawEvent eventUp; 
-                    eventUp.Set( TRawEvent::EKeyUp, EStdKeyEnter ); 
-                    CCoeEnv::Static()->WsSession().SimulateRawEvent( eventUp );                 	
-                    }
-                else if ( EnableITIOnFSQ() )
-                    {
-                    // For addition of ITI features on FSQ.
-                    // If FSQ is opened with ITI enabled, ensure keycatcher to handle key events
-                    // else, remain the old logic.                   
-                    if ( IsITISupportedKey( keyEvent ) )
-                        {                            
-                        // check if need to change current text case
-                        TPtiTextCase textCase = 
-                        CaseForMappedCharacter( TChar( keyEvent.iCode ) );                                                        
-						if ( !IsDeadKeyCode( keyEvent.iCode ) && IsNeedToChangeTextCase( textCase ) )
-                            {
-                            iFepMan.PtiEngine()->SetCase( textCase );
-                            }                        
-                        env->SimulateKeyEventL(keyEvent, EEventKey);
-                        }
-                    else if ( keyEvent.iScanCode == EStdKeyBackspace 
-                              || keyEvent.iScanCode == EStdKeyEnter
-                              || keyEvent.iScanCode == EStdKeySpace )
-                        {
-                        // For these keys, clear the flag to make sure ptiengine handle this key.                            
-                        env->SimulateKeyEventL(keyEvent, EEventKey);
-                        }
-                    else
-                        {
-                        // When FSQ opened with ITI features enabled, 
-                        // but key is not supported by ITI
-                        // commit inline if necessary
-                        if ( iFepMan.UncommittedText().Length() > 0 )
-                            {                                
-                            iFepMan.CommitInlineEditL();
-                            iFepMan.PtiEngine()->CommitCurrentWord();
-                            }                            
-                        // set flag to ensure not to be handled by key catcher.
-                        iFepMan.SetFlag(CAknFepManager::EFlagPassNextKey);
-                        env->SimulateKeyEventL(keyEvent, EEventKey);
-                		iFepMan.ClearFlag(CAknFepManager::EFlagPassNextKey);
-                        }
-                    }
-                else
-                	{
-                	// keep the old logic is not affected
-                    iFepMan.SetFlag(CAknFepManager::EFlagPassNextKey);
-                	env->SimulateKeyEventL(keyEvent, EEventKey);
-                	iFepMan.ClearFlag(CAknFepManager::EFlagPassNextKey);
-                	}                    
-                }
-            }  
-    
-    //fix defect             
-    if( edit )
-        {
-        env->ForEachFepObserverCall(FepObserverHandleCompletionOfTransactionL);
-        }
-    iSyncWithPluginRange = ETrue;
-    iCaseMan.UpdateCase(ENullNaviEvent);
-    iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, iCaseMan.CurrentCase());
-    iSyncWithPluginRange = EFalse;
-    
-    iDisableSyncText = EFalse;
-    if( iPendingSyncReq )
-        {
-        SendIcfDataL( EPluginSyncAll );
-        }
-    }    
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::OnPenInputServerKeyEventL
-// Handle key event sent from pen input server
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::OnPenInputServerKeyEventL(const TDesC& aData)
-    {
-    
-    iFepMan.PtiEngine()->CancelTimerActivity();
-    
-    if( aData.Length() <= 0 )
-        {
-        return;
-        }
- 
-    if ( iFepMan.IsFepAwareTextEditor() )
-        {
-        CAknEdwinState* editorState = iFepMan.EditorState();
-        TBool sendFlag =  editorState && 
-            (editorState->Flags() & EAknEditorFlagDeliverVirtualKeyEventsToApplication);
-            
-        TInt maxEdSize = iFepMan.FepAwareTextEditor()->
-            DocumentMaximumLengthForFep();
-        if ( maxEdSize == 0  )
-            {
-            iLastSubmitCount = aData.Length();
-            SubmitUiPluginTextL(aData);
-            }
-        else
-            {
-            TCursorSelection currentSelection;
-            iFepMan.FepAwareTextEditor()->GetCursorSelectionForFep(currentSelection);
-            TInt freeSpaceOfEditor = maxEdSize - 
-                iFepMan.FepAwareTextEditor()->DocumentLengthForFep() +
-                currentSelection.Length(); 
-                
-            if ( freeSpaceOfEditor >= 0 )
-                {
-                if ( ( aData.Length() <= freeSpaceOfEditor ) ||
-                    ( ( aData.Length()-1 == freeSpaceOfEditor ) && 
-                      (( aData[aData.Length()-1] == EKeyBackspace ) ||
-                      	 (aData[aData.Length()-1] == EKeyEnter )  ||
-                         (aData[aData.Length()-1] == EKeyLeftArrow )  ||
-                         (aData[aData.Length()-1] == EKeyRightArrow ) ) ))
-                    {
-                    iLastSubmitCount = aData.Length();
-                    }
-                else
-                    {
-                    iLastSubmitCount = freeSpaceOfEditor;
-                    }
-                    
-                if ( sendFlag )
-                    {
-                    SubmitUiPluginTextL(aData);
-                    }
-                else
-                    {
-                    TPtrC charbuf = aData.Left(iLastSubmitCount);
-                    SubmitUiPluginTextL(charbuf);
-                    }
-                    
-                if (freeSpaceOfEditor == 0 || iLastSubmitCount == freeSpaceOfEditor)
-                	{
-                	HasNoFreeSpace();	
-                	}
-                    
-                }
-            else
-                {
-                iLastSubmitCount = 0;
-                if ( sendFlag )
-                    {
-                    SubmitUiPluginTextL(aData);
-                    }
-                }
-            }
-        }
-    else
-        {
-        SubmitUiPluginTextL(aData);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::SyncIndicatorWithPluginRangeL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::SyncIndicatorWithPluginRangeL()
-    {
-    iSyncWithPluginRange = ETrue;
-    iPluginNativeRange = EFalse;
-    TInt newMode = iFepMan.InputMode();
-    if( iPluginPrimaryRange == ERangeNative )
-        {
-        if( !iFepMan.EditorState() )
-            {
-            return;
-            }
-        TInt defaultInputMode = iFepMan.EditorState()->DefaultInputMode();
-        if ( iFepMan.IsChineseInputLanguage() )
-           {
-           defaultInputMode = iFepMan.InputMode();
-           }    
-        const TInt inputLanguage = iSharedData.InputTextLanguage();
-        
-        switch(inputLanguage)
-            {
-            case ELangPrcChinese:
-                if( defaultInputMode != EPinyin &&
-                    defaultInputMode != EStroke )
-                    {
-                    if ( iFepMan.LastChineseInputMode() )
-                        {
-                        newMode = iFepMan.LastChineseInputMode();
-                        }
-                    else
-                        {
-                    newMode = EPinyin;
-                        }                    
-                    }
-                else
-                    {
-                    newMode = defaultInputMode;
-                    }
-                break;
-            case ELangTaiwanChinese:
-                if( defaultInputMode != EZhuyin &&
-                    defaultInputMode != EStroke )
-                    {
-                    if ( iFepMan.LastChineseInputMode() )
-                        {
-                        newMode = iFepMan.LastChineseInputMode();
-                        }
-                    else
-                        {
-                    newMode = EZhuyin;
-                        }                    
-                    }
-                else
-                    {
-                    newMode = defaultInputMode;
-                    }
-                break;
-            case ELangHongKongChinese:
-                if( defaultInputMode != ECangJie &&
-                    defaultInputMode != EStroke )
-                    {
-                    if ( iFepMan.LastChineseInputMode() )
-                        {
-                        newMode = iFepMan.LastChineseInputMode();
-                        }
-                    else
-                        {
-                    newMode = EStroke;
-                        }
-                    }
-                else
-                    {
-                    newMode = defaultInputMode;
-                    }
-                break;
-            case ELangJapanese:
-                {
-                newMode = defaultInputMode;
-                iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputJapaneseGetModeOfSubRange, (TInt)(&newMode));
-                }
-                break;
-            case ELangHindi:
-                {
-                newMode = EHindi;
-                }
-                break;
-            case ELangKorean:
-                {
-                newMode = EHangul;
-                }
-                break;
-            default:
-                newMode = ELatin;
-                iPluginNativeRange = ETrue;
-                break;
-            }
-        }
-    else if( iPluginPrimaryRange == ERangeEnglish ||
-             iPluginPrimaryRange == ERangeAccent )
-        {
-        newMode = ELatin;
-        }
-    else if( iPluginPrimaryRange == ERangeNumber )
-        {
-        newMode = ENumber;
-        }
-    //else do NOTHING but keep current for other ranges
-    
-    if( newMode != iFepMan.InputMode() || 
-        ( newMode == ELatin || newMode == ENumber ) )
-        {
-        iFepMan.TryChangeModeL(newMode);
-        UpdatePredicState();
-        //iCaseMan.SetCurrentCase(iCaseMan.CurrentCase());
-        iCaseMan.UpdateCase(ENullNaviEvent);
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-                                                 iCaseMan.CurrentCase());
-        }
-    
-    // Addition for ITI features on FSQ    
-    if ( newMode == ELatin && IsSupportITIOnFSQ() )
-        {
-        // When change range back to Latin
-        // 1. Config fep state again.        
-        SetItiStateL();
-        // 2. Restore predict state for FSQ.
-        RestorePredictStateL();
-        }    
-    else
-    	{
-    	// 1. Restore predict state for FSQ.
-    	ResetItiStateL();
-    	// 2. Update predict state.
-    	UpdatePredicState();
-    	}
-    //Set correct fep ui	
-    if(IsSupportITIOnFSQ())
-        {
-        iCurrentPluginInputFepUI->SetNextFepUI(
-            iLangMan.GetFepUI(iFepMan.InputMode(), ENoneWidthChar,
-                iFepMan.IsPredictive(iFepMan.InputMode())) );  		
-        }
-    iSyncWithPluginRange = EFalse;
-    }        
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::GetCurSuggestMode
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-TBool CAknFepPluginManager::GetCurSuggestMode( TPluginInputMode& aSuggestMode )
-    {
-    TInt fepDisableLayoouts = 0;
-    TInt disableLayouts = iPenInputServer.DisabledLayout();
-
-    switch(aSuggestMode)
-        {
-		case EPluginInputModeFingerHwr:
-        case EPluginInputModeFSc:
-        case EPluginInputModeHwr:
-			{
-		    if( iFepMan.IsSupportsSecretText() || 
-		    	( ( aSuggestMode == EPluginInputModeFSc || 
-		    		aSuggestMode == EPluginInputModeFingerHwr) &&
-		    	    iSharedData.InputTextLanguage() != ELangPrcChinese &&
-                    iSharedData.InputTextLanguage() != ELangTaiwanChinese &&
-                    iSharedData.InputTextLanguage() != ELangHongKongChinese ))   
-				{
-				aSuggestMode = EPluginInputModeItut;
-				if ((disableLayouts & aSuggestMode))
-					{
-					aSuggestMode = EPluginInputModeFSQ;
-					}
-				fepDisableLayoouts |= EPluginInputModeHwr | EPluginInputModeFSc |
-				                      EPluginInputModeFingerHwr;
-				}
-			}
-			break;
-        case EPluginInputModeVkb:
-            {
-            }
-            break;
-        case EPluginInputModeFSQ:
-            {
-            if ((disableLayouts & aSuggestMode))
-                {
-                aSuggestMode = EPluginInputModeItut;
-                }
-            }
-            break;
-        case EPluginInputModeItut:
-            {
-            if ((disableLayouts & aSuggestMode))
-                {
-                aSuggestMode = EPluginInputModeFSQ;
-                }
-            }
-            break;
-        default:
-			{
-			aSuggestMode = EPluginInputModeItut;
-			if ((disableLayouts & aSuggestMode))
-				{
-				aSuggestMode = EPluginInputModeFSQ;
-				}
-			}
-            break;
-        }
-
-     if (disableLayouts == 0)
-        {
-        return ETrue;   
-        }
-        
-     disableLayouts |= fepDisableLayoouts;
-     
-     // disable all
-     if (disableLayouts ==  EPluginInputModeAll)
-        {
-        return EFalse;     
-        }         
-     
-     if (!(disableLayouts & aSuggestMode))
-        {
-        return ETrue;   
-        }
-        
-     TInt testMode = EPluginInputModeHwr;
-     while ( testMode < EPluginInputModeAll )
-         {
-         if (!(testMode & disableLayouts))
-             {
-             break;
-             }
-         testMode<<=1;
-         }
-         
-     if ((testMode == EPluginInputModeFSc ||
-          testMode == EPluginInputModeFingerHwr ) && 
-         iSharedData.InputTextLanguage() != ELangPrcChinese &&
-         iSharedData.InputTextLanguage() != ELangTaiwanChinese &&
-         iSharedData.InputTextLanguage() != ELangHongKongChinese )
-         {
-         return EFalse;   
-         }
-    
-    aSuggestMode = TPluginInputMode(testMode);
-        
-    return ETrue;     
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::ConnectServer
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-TBool CAknFepPluginManager::ConnectServer()
-    {
-    if(!iPenInputSvrConnected)
-        {
-        TInt err = iPenInputServer.Connect();
-        //iPenInputServer.AddPeninputServerObserverL(this); //always add the handler
-        if( KErrNone != err )
-            {
-            iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(EFalse);
-                
-            return EFalse;               
-            }
-        TRAP_IGNORE(iPenInputServer.AddPeninputServerObserverL(this)); //always add the handler            
-        
-        iPenInputSvrConnected = ETrue;                      
-        }
-
-    iPenInputServer.SetForeground(iOpenPenUiFlag);
-    
-    return ETrue;
-    }
-    
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::NotifyLayoutL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::NotifyLayoutL(TInt aOpenMode, TInt aSuggestRange, 
-                                         TBool aCleanContent)
-    {
-    TBool isSecret = EFalse;
-    if ( iFepMan.IsSupportsSecretText() )
-        {
-        isSecret = ETrue;
-        } 
- 
-    CAknEdwinState* editorState = iFepMan.EditorState();// still stay here
-    
-    // for MFNE Editor
-    if( !editorState && iFepMan.InputMode() == ENumber )
-        {
-        if( AknTextUtils::NumericEditorDigitType() == EDigitTypeEasternArabicIndic || 
-            AknTextUtils::NumericEditorDigitType() == EDigitTypeDevanagari ||
-            AknTextUtils::NumericEditorDigitType() == EDigitTypeArabicIndic )
-            {
-            iFepMan.TryChangeModeL( ENativeNumber );
-            }
-        else if ( AknTextUtils::NumericEditorDigitType() == EDigitTypeWestern )
-            {
-            iFepMan.TryChangeModeL( ENumber );
-            }
-        }
-
-    if(editorState && (editorState->Flags() & EAknEditorFlagNumberGrouping))
-        {
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputIsNumberGrouping, 
-                                              ETrue );
-        }
-    else
-        {
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputIsNumberGrouping, 
-                                              EFalse );
-        }    
-                                                                                  
-    if ( PluginInputMode() == EPluginInputModeItut )
-        {
-        // The preview bubble item will be shown in option menu 
-        // when current language is Chinese
-        if ( iFepMan.InputLanguageCapabilities().iInputLanguageCode == ELangPrcChinese ||
-             iFepMan.InputLanguageCapabilities().iInputLanguageCode == ELangTaiwanChinese ||
-             iFepMan.InputLanguageCapabilities().iInputLanguageCode == ELangHongKongChinese )
-            {
-            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCharacterPreview, 
-                   iFepMan.FepShowVkbPreviewStatus());                 
-            }
-        
-        if ( iSharedData.InputTextLanguage() == ELangThai 
-            && iFepMan.InputMode() == ENativeNumber  )
-            {
-            iFepMan.TryChangeModeL( ENumber );
-            }
-
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputPermittedRange,
-                                         iFepMan.PermittedModes());
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEditorState, 
-                                             reinterpret_cast<TInt>( editorState ));
-        NotifyLayoutKeymappingL();
-        
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerInputMode,
-                                                 iFepMan.InputMode());
-        
-        TFepSymbolOfHardwareOne symbolInfo = iFepMan.SymbolInfoOfHardKey1();
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSymbolOfHardKeyOne, reinterpret_cast<TInt>(&symbolInfo));
-
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-                                       iCaseMan.CurrentCase());
-        
-        TBool enableIndicatorBtn = iFepMan.GetPermittedEditorMenu(ETrue) > 0? ETrue : EFalse;                                
-        if (IsDimed() && iResourceChange)
-            {
-            enableIndicatorBtn = iEnableIndicatorBtn;   
-            }
-        else
-            {
-            iEnableIndicatorBtn = enableIndicatorBtn;    
-            }
-        
-
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEnableIndicatorButton,
-                                                 enableIndicatorBtn); 
-        
-        if (!iSpellOn)
-              {
-            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerSpelling, 0);
-              SetPromptText( aCleanContent );     
-              }
-        else
-            {
-            SetITUTSpellingStateL(ETrue);
-            iIndicatorImgID = 0;
-            iIndicatorTextID = 0;
-            }    
-        UpdateITUTIndicator();       
-        }
-    else
-        {
-        DestroySpellEditor();
-        if (PluginInputMode() == EPluginInputModeFSQ ||
-            PluginInputMode() == EPluginInputModeVkb ||
-            PluginInputMode() == EPluginInputModeFingerHwr)
-            {
-            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCharacterPreview, 
-                   iFepMan.FepShowVkbPreviewStatus());                 
-            }
-      
-        // for Japanese peninput setting
-        if (iFepMan.IsFeatureSupportedJapanese())
-            {
-            iFepMan.NotifyJapaneseSetting();
-            }
- 
- 		NotifyLayoutKeymappingL();
-
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputPermittedRange, 
-                                                 iFepMan.PermittedModes());        
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputRange, iFepMan.InputMode());
-
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEditorState, 
-                                                 reinterpret_cast<TInt>( editorState ));
-
-
-		if(aSuggestRange != ERangeInvalid)
-			{
-			iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSuggestRange, aSuggestRange);
-			}
-        
-        //set allow change case
-        TBool allowChangeCase = editorState && iCaseMan.IsAbleChangeCase();
-        //disable/enable case change
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputAllowChangeCase, allowChangeCase);
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputPermittedCase, 
-                                                 iCaseMan.PluginPermittedCases());
-        }
-    // moved    
-/*    iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEditorState, 
-                                             reinterpret_cast<TInt>( editorState ));*/
-                                             
-    if ( PluginInputMode() != EPluginInputModeItut )
-        {
-         //set current case
-        iCaseMan.SetCurrentCase(iCaseMan.CurrentCase());
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-                                           iCaseMan.CurrentCase());
-        if ( PluginInputMode() == EPluginInputModeFSQ ||
-             PluginInputMode() == EPluginInputModeFingerHwr)
-            {
-            SetPromptText( aCleanContent );
-            }
-        }
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputEnableSettingBtn, 
-                                                  IsEnableSettingBtn() );
-    
-    if(!IsDimed())
-        {
-        // remember previous password state
-        iIsPassWord = isSecret;
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputIsSecretText, 
-                                                  isSecret );
-        }
-    else
-        {
-        // Set previous password state when screen is dimed
-        iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputIsSecretText, 
-												  iIsPassWord );	
-        }
-			
-    TBool enableArrowBtn = IsDimArrowKeys();
-
-    if (IsDimed() && iResourceChange)
-        {
-        enableArrowBtn = iEnableArrowBtn;   
-        }
-    else
-        {
-        iEnableArrowBtn = enableArrowBtn;    
-        }                                               
-                                              
-                                              
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputDimArrowKeys, 
-                                              enableArrowBtn);    
-                                                                                        
-    SetIcfAlignment();
-    
-    iModeChanged = ETrue;
-    SendIcfDataL( EPluginSyncAll );
-    iModeChanged = EFalse;
-    
-    // For addition of ITI features on FSQ, do configuration before opening FSQ,
-    // so that ITI features can be taken into effect.   
-    SetItiStateL();	
-
-    if ( ExistInlineText() )
-        {
-        SendIcfDataL();
-        }
-    
-    if ( PluginInputMode() != EPluginInputModeItut )
-        {
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputWindowOpen, aOpenMode);
-        }
-    if(PluginInputMode() == EPluginInputModeItut 
-       || PluginInputMode() == EPluginInputModeFSQ
-	   || PluginInputMode() == EPluginInputModeFingerHwr)
-        {
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputInEditWordQueryDlg, iIsInEditWordQueryDlg);
-        }    
-    }
-
-    
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::IsEnableModeSwitchBtn
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-TBool CAknFepPluginManager::IsEnableModeSwitchBtn()
-    {
-    TBool enableInSecret = EFalse;
-        
-    if( !iFepMan.IsSupportsSecretText() )
-        {
-        TPluginInputMode counterPart = iPluginInputMode == EPluginInputModeVkb ? 
-                                EPluginInputModeHwr : EPluginInputModeVkb;
-        if( iLangMan.IsPluginInputAvaiable(counterPart, 
-                                      iCurrentPluginInputFepUI->SupportLanguage(iPluginInputMode), 
-                                      &iPenInputServer)) 
-            {
-            enableInSecret = ETrue;
-            }
-        }
-        
-    return enableInSecret;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::IsEnableSettingBtn
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TBool CAknFepPluginManager::IsEnableSettingBtn()
-    {
-    TBool ebable = ETrue;
-    TInt enalbeInStartup = 0;
-    RProperty::Get(KPSUidUikon, KUikGlobalNotesAllowed, enalbeInStartup);
-    ebable = enalbeInStartup;
-    
-    if (iInGlobleNoteEditor || 
-        (iPenInputMenu && iPenInputMenu->IsShowing()))
-        {
-        ebable = EFalse;    
-        }
-    
-    return ebable;
-    }
- 
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::NotifyLayoutKeymappingL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//    
-void CAknFepPluginManager::NotifyLayoutKeymappingL()
-    {
-    CAknEdwinState* editorState = iFepMan.EditorState();
-    if ( editorState )
-        {
-        if( ( iFepMan.InputMode() == ENumber || iFepMan.InputMode() == ENativeNumber )&& 
-            (editorState->Flags() & EAknEditorFlagUseSCTNumericCharmap) &&
-            iFepMan.IsFepAwareTextEditor() &&
-            iFepMan.IsAbleToLaunchSCT() )
-            {
-            TInt sctChars = EAknSCTNumeric;
-
-            if ( !iFepMan.IsOnlyHalfWidthCharacterPermitted() )
-                {
-                sctChars = EAknSCTLowerCase;
-                }
-            //read resource from resource
-            HBufC* keymapRes = GetNumberKeymapResource(sctChars);
-            if( keymapRes )
-                {
-                CleanupStack::PushL(keymapRes);
-                iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEditorCustomNumericKeyMap,
-                                                    reinterpret_cast<TInt>(keymapRes) );
-                CleanupStack::PopAndDestroy(keymapRes);
-                return;
-                }
-            }
-        iCurrentPluginInputFepUI->SetNumberModeKeyMappingL(editorState->NumericKeymap() );
-        }
-    else
-        {
-        TCoeInputCapabilities inputCapabilities = iFepMan.InputCapabilities();
-
-        if( inputCapabilities.SupportsWesternNumericReal() )
-            {
-            //read resource from resource
-            HBufC* keymapRes = HBufC::NewL(2);
-            TLocale locale;
-            TChar decimalSep = locale.DecimalSeparator(); 
-            TChar minusSign ='-'; 
-            
-            keymapRes->Des().Append(decimalSep);
-            keymapRes->Des().Append(minusSign);
-
-            CleanupStack::PushL(keymapRes);
-            iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputEditorCustomNumericKeyMap,
-                                                    reinterpret_cast<TInt>(keymapRes) );
-            CleanupStack::PopAndDestroy(keymapRes);
-            return;
-            }
-
-        iCurrentPluginInputFepUI->SetNumberModeKeyMappingL(EAknEditorPlainNumberModeKeymap);
-        }
-    }    
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::IsDisplayDataQuery
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TBool CAknFepPluginManager::IsDisplayDataQuery()
-    {
-    return iFepMan.UiInterface()->IsDisplayDataQuery(iFepMan.IsFepAwareTextEditor());
-    }           
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::RepositionDataQuery
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//     
-void CAknFepPluginManager::RepositionDataQuery(TBool aForce)
-    {
-    if( !aForce && iDataQueryAlreadyShow )
-        {
-        return;
-        }
-        
-    TRect param;
-    
-    CEikAppUi* eikAppUi = (CEikAppUi *)CCoeEnv::Static()->AppUi();
-    
-    param = TRect(eikAppUi->TopFocusedControl()->PositionRelativeToScreen(),
-                  eikAppUi->TopFocusedControl()->Size());
-    
-    TPixelsTwipsAndRotation size; 
-    CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
-    
-    if(size.iPixelSize.iWidth > size.iPixelSize.iHeight )
-        {
-        // landscape, retrieve current position
-        TRect parentRect;
-        
-        AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, parentRect); 
-        CCoeControl* ctrl = eikAppUi->TopFocusedControl();
-        TRect ctrlRect = ctrl->Rect();			
-        ctrlRect.Move( 0, parentRect.iBr.iY - ctrlRect.iBr.iY );
-
-        param = TRect( ctrlRect.iTl, ctrl->Size() );
-        //ctrl->SetExtent( ctrlRect.iTl, ctrl->Size() );
-        }
-
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSetWindowPos, (TInt)&param));
-    iDataQueryAlreadyShow = ETrue;
-    }    
-
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::AdjustDataQueryCallBackL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TInt CAknFepPluginManager::AdjustDataQueryCallBackL(TAny *aPtr)
-    {
-    CAknFepPluginManager* self = static_cast<CAknFepPluginManager*>(aPtr);
-    self->iAdjustDataQueryTimer->Cancel(); 
-    if(self->IsDisplayDataQuery() && //data query
-       self->iPluginInputMode == EPluginInputModeVkb) //only vkb mode 
-        {
-        self->RepositionDataQuery(ETrue);
-        }
-        
-    return ETrue;
-    }        
-// -----------------------------------------------------------------------------
-// CAknFepPluginManager::FepObserverHandleCompletionOfTransactionL
-// Timer procedure for updating cursor.
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::FepObserverHandleCompletionOfTransactionL(MCoeFepObserver& aFepObserver)
-    {
-    aFepObserver.HandleCompletionOfTransactionL();
-    }
-
-MAknFepManagerInterface*  CAknFepPluginManager::CurrentFepInputUI()
-	{
-	if (PluginInputMode() ==  EPluginInputModeItut &&
-	    (iFepMan.InputMode() == EPinyin || iFepMan.InputMode() == EZhuyin ||
-	    iFepMan.InputMode() == EStroke || iFepMan.InputMode() == ECangJie))
-	     
-		{
-		if (!iFingerItutChineseUI)
-		    {
-		    TRAP_IGNORE(CreateFingerItutChineseUiL());
-		    }
-		    
-		return iFingerItutChineseUI;
-		}
-		
-	return NULL;
-	}
-
-void CAknFepPluginManager::CreateFingerItutChineseUiL()
-    {
-    iFingerItutChineseUI = CAknFepUIManagerFingerItutChinese::NewL(&iFepMan, &iCaseMan, 
-                                     (TLanguage)iSharedData.InputTextLanguage(), this);
-    }
-
-void CAknFepPluginManager::LaunchHwrTrainUiL()
-    {
-    _LIT(KPeninputHwrTrainingUI, "z:\\sys\\bin\\trui.exe" );
- 
-    RProcess process;
-    TInt err = process.Create(KPeninputHwrTrainingUI, KNullDesC);
-    User::LeaveIfError(err);
-
-    process.Resume();
-    process.Close();
-    }    
-    
-TBool CAknFepPluginManager::IsVisible()
-    {
-    if( iPenInputSvrConnected )
-        {
-        return iPenInputServer.IsVisible();
-        }
-        
-    return EFalse;
-    }
-    
-void CAknFepPluginManager::SetFingerMatchSelectionState(TBool aMatchStateOn)
-    {
-    if(!iCurrentPluginInputFepUI)
-        {
-        return;
-        }    
-    if (aMatchStateOn)
-        {
-        TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchSelection, 1));
-        iMatchState = ETrue;
-        }
-    else
-        {
-        TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchSelection, 0));
-        iMatchState = EFalse;
-        }
-    }
-
-void CAknFepPluginManager::ConvertDigitToDigittype(TDigitType& digittype,TDes& aConvertedNumeral)
-	{
-	TChar chchar(aConvertedNumeral[0]);
-	switch(digittype)
-    	{
-    	case EDigitTypeDevanagari:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToDevanagariDigitsDelta);
-	    	}
-        	break;	
-        case EDigitTypeArabicIndic:
-            {
-        	chchar = (aConvertedNumeral[0] + KLatinToArabicIndicDigitsDelta);
-	        }
-            break;
-    	case EDigitTypeEasternArabicIndic:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToEasternArabicIndicDigitsDelta);
-        	}
-    	}
-    aConvertedNumeral.Zero();
-    aConvertedNumeral.Append(chchar);
-	}
-
-void CAknFepPluginManager::GetAllPredictiveCandidate()
-    {
-    TRAP_IGNORE(GetAllPredictiveCandidateL());    
-    }
-
-void CAknFepPluginManager::GetAllPredictiveCandidateL()
-    {
-    CPtiEngine* ptiengine = iFepMan.PtiEngine();
-    TBuf<1> tempbuf;
-    ResetCandidateList();
-
-    for (TInt index = 0; index < ptiengine->NumberOfCandidates(); index++)
-        {
-        TPtrC newText = ptiengine->NextCandidate();
-
-        if (newText.Length() > 0)
-            {
-      		if(newText.Length() == 1)
-     			{
-                TDigitType digittype = iFepMan.LocalDigit();
-                TChar chchar(newText[0]);
-
-                if(chchar.IsDigit() && digittype)
-                    {
-                    tempbuf.Zero();
-                    tempbuf.Append(newText[0]);
-                    ConvertDigitToDigittype(digittype,tempbuf);
-
-                    HBufC* textBuf = tempbuf.Alloc();
-
-                    CleanupStack::PushL(textBuf);
-                    iCandidateList.Append(textBuf);
-                    CleanupStack::Pop(textBuf);
-
-                    continue;
-                   	}
-           		}
-
-            HBufC* textBuf = newText.Alloc();
-                
-            CleanupStack::PushL(textBuf);
-            iCandidateList.Append(textBuf);
-            CleanupStack::Pop(textBuf);
-            }
-        }
-    }
-
-void CAknFepPluginManager::ResetCandidateList()
-    {
-    iCandidateIndex = 0;
-    iCandidateList.ResetAndDestroy();
-    }
-
-void CAknFepPluginManager::ShowAllCandidates()
-    {
-    iSendAllList.iCandidates.Reset();
-
-    GetAllPredictiveCandidate();
-
-    if (!iCandidateList.Count())
-        return;
-
-    for (TInt i = 0; i < iCandidateList.Count(); i++)
-        iSendAllList.iCandidates.Append(iCandidateList[i]->Des());
-
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchList, 
-                                                         reinterpret_cast<TInt>(&iSendAllList)));
-    }
-
-TBool CAknFepPluginManager::DoNextCandidates()
-    {
-    if((iCandidateIndex) * 3 >= iCandidateList.Count())
-        {
-        iCandidateIndex = 0;
-        }
-        
-    iCandidateIndex++;           
-    
-    int nStartIndex = (iCandidateIndex - 1) * 3;
-
-    
-    for (TInt index = 0; index < 3; index++, nStartIndex ++)
-        {
-        if (nStartIndex < iCandidateList.Count())
-            {
-            TPtr16 canDes = iCandidateList[nStartIndex]->Des();
-            iSendList.iCandidate[index].Set(canDes);
-            }
-        else
-            {
-            iSendList.iCandidate[index].Set(KNullDesC);
-            }
-        }
-        
-    
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchList, 
-                                                         reinterpret_cast<TInt>(&iSendList)));    
-    
-    if (iCandidateIndex * 3 >= iCandidateList.Count())
-        {
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-    
-void CAknFepPluginManager::DoPreviousCandidates()
-    {
-    iCandidateIndex--;
-      
-    if(iCandidateIndex < 1)
-        {
-        iCandidateIndex = iCandidateList.Count() / 3 + 1;
-        }
-        
-    int nStartIndex = (iCandidateIndex -1) * 3;
-        
-    for (TInt index = 0; index < 3; index++, nStartIndex ++)
-        {
-        if (nStartIndex < iCandidateList.Count())
-            {
-            TPtr16 canDes = iCandidateList[nStartIndex]->Des();
-            iSendList.iCandidate[index].Set(canDes);
-            }
-        else
-            {
-            iSendList.iCandidate[index].Set(KNullDesC);
-            }
-        }
-        
-    
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchList, 
-                                                         reinterpret_cast<TInt>(&iSendList)));    
-    }
-    
-TBool CAknFepPluginManager::GetIndicatorImgID(const TInt IndicatorUID,TInt &aImage, TInt &aMask)
-    {
-    TBool ret = EFalse;
-    TRAP_IGNORE(ret = GetIndicatorImgIDL(IndicatorUID, aImage, aMask));
-    return ret;
-    }
-TBool CAknFepPluginManager::GetIndicatorImgIDL(const TInt IndicatorUID,TInt &aImage, TInt &aMask)
-    {
-    TBool ret = EFalse;
-    aImage = 0;
-    aMask =0;
-    TResourceReader reader;
-
-    CCoeEnv::Static()->CreateResourceReaderLC(reader,
-        R_AVKON_NAVI_PANE_EDITOR_INDICATORS );
-
-    TInt indicatorCount = reader.ReadInt16(); // Number of indicators in the INDICATOR_PANE resource.
-            
-    for ( TInt ii = 0; ii < indicatorCount; ii++ )
-        {
-        TInt foundUid = reader.ReadInt16(); // First is the indicator UID.
-
-        if ( foundUid == IndicatorUID )
-            {
-            reader.ReadInt16(); // narrow priority, can be ignored
-            reader.ReadInt16(); // wide priority, can be ignored
-
-            HBufC* bitmapFile = reader.ReadHBufCL(); // File containing the indicator graphics.
-            CleanupStack::PushL( bitmapFile );
-                    
-            TInt stateCount = reader.ReadInt16(); // Number of indicator states.
-            TInt state      = reader.ReadInt16(); // First state is used ( can be EAknIndicatorStateOn / EAknIndicatorStateAnimate ).
-            TInt iconCount  = reader.ReadInt16(); // Number of icons or frames.
-                    
-            if ( state == IndicatorUID )
-                {
-    	      // Go through the animation frames.
-                for ( TInt j = 0; j < iconCount; j++ )
-                    {
-                    // Use the last animation frame
-                    // in case of animated indicator.
-                    reader.ReadInt16();
-                    reader.ReadInt16();
-                    reader.ReadInt16();
-                    reader.ReadInt16();
-                    }
-                }
-
-            // These are the correct IDs to be used for
-            // the indicator.
-            aImage = reader.ReadInt16();
-            aMask  = reader.ReadInt16();
-                    
-            
-    	  // CREATE THE INDICATOR ICON WITH THE BITMAP FILE & BITMAP ID INFORMATION HERE
-
-            
-            CleanupStack::PopAndDestroy( bitmapFile );
-            ret = ETrue;
-            break; // icon created
-            }
-        else // Not the correct indicator, pass through the INDICATOR resource.
-            {	 		
-        	  reader.ReadInt16();
-        	  reader.ReadInt16();    
-        	  HBufC* bitmapFile = reader.ReadHBufCL(); // bmp filename
-        	  delete bitmapFile;
-        	  bitmapFile = NULL;
-            TInt numberOfStates = reader.ReadInt16();  // Number of states
-        	  for ( TInt j = 0; j < numberOfStates; j++ )
-        	      {
-        	      reader.ReadInt16(); // State id
-                TInt numberOfIcons = reader.ReadInt16();	        	
-        	      for ( TInt jj = 0; jj < numberOfIcons; jj++ )
-                    {
-        		    for ( TInt jjj = CAknIndicatorContainer::ELayoutModeUsual; 
-                      jjj <= CAknIndicatorContainer::ELayoutModeWide; jjj++ )
-        	              {
-        	              reader.ReadInt16(); // bitmap
-        	              reader.ReadInt16(); // mask
-        			  }
-        	          }        	
-        	      }
-        	  }
-        }
-    
-    CleanupStack::PopAndDestroy(); // reader
-
-    return ret;  
-    }     
-
-void CAknFepPluginManager::UpdateITUTIndicator()    
-    {
-    if ( EPluginInputModeItut != PluginInputMode() )
-        {
-        return;
-        }
-        
-    TInt indicatorImgID;
-    TInt indicatorTextID;
-    
-    if (iFepMan.GetIndicatorImgID(indicatorImgID, indicatorTextID))   
-        {
-        iIndicatorImgID = indicatorImgID;
-        iIndicatorTextID = indicatorTextID;
-        }
-        TInt indImgid = 0;
-        TInt indMaskid = 0; 
-
-        TInt textImgid = 0;
-        TInt textMaskid = 0; 
-
-    if (iIndicatorImgID > 0)
-        {
-        GetIndicatorImgID(iIndicatorImgID ,indImgid, indMaskid);
-        }
-    
-    if (iIndicatorTextID > 0)
-        {
-        GetIndicatorImgID(iIndicatorTextID ,textImgid, textMaskid);
-        }
-        
-    if (iIndicatorImgID != 0 || iIndicatorTextID != 0)
-        {
-        TFepIndicatorInfo indicator;
-        
-        indicator.iIndicatorImgID = indImgid;
-        indicator.iIndicatorMaskID = indMaskid;
-        indicator.iIndicatorTextImgID = textImgid;
-        indicator.iIndicatorTextMaskID = textMaskid;
-        TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerMatchIndicator, 
-            reinterpret_cast<TInt>(&indicator)));    
-        }
-   }
-
-void CAknFepPluginManager::SetITUTSpellingStateL(TBool aState)
-    {
-    if (aState)
-        {
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerSpelling, 1);
-
-        HBufC* titleStr = StringLoader::LoadL(R_AKNFEP_PROMPT_TEXT);                          
-        CleanupStack::PushL(titleStr);
-
-        TFepPromptText promptText;
-        promptText.iLines = 1;
-        TPtr16 canDes = titleStr->Des();
-        promptText.iText.Set(canDes);
-
-        promptText.iCleanContent = EFalse;
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSetPromptText,
-            reinterpret_cast<TInt>(&promptText));
-
-        CleanupStack::PopAndDestroy(titleStr);
-        }
-    else
-        {
-        TPtr offPromot(NULL, 0);
-        TFepPromptText promptText;
-        
-        promptText.iLines = 1;
-        promptText.iText.Set(offPromot);
-        promptText.iCleanContent = EFalse;
-        
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSetPromptText,
-            reinterpret_cast<TInt>(&promptText));
-            
-        iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputFingerSpelling, 0);
-        }
-    }
-
-void CAknFepPluginManager::DisplaySpellEditor(const TInt aEditorFlag, 
-                                              const TDesC& aInitText, 
-                                              TCursorSelection aCurSel)
-    {
-    TRAP_IGNORE(DisplaySpellEditorL(aEditorFlag, aInitText, aCurSel));
-    }
-void CAknFepPluginManager::DisplaySpellEditorL(const TInt aEditorFlag, 
-                                              const TDesC& aInitText, 
-                                              TCursorSelection aCurSel)
-    {
-    TInt editorFlag = 0;
-    TInt editorCase = 0;
-    TInt editorSCTResId = 0;
-    
-    if (aEditorFlag)
-	   { 
-	   editorFlag = aEditorFlag;	     
-	   }
-       
-    editorCase = iCaseMan.CurrentCase();
-        
-    if( iFepMan.EditorState()->Flags() & EAknEditorFlagLatinInputModesOnly )
-        {
-        editorFlag = editorFlag | EAknEditorFlagLatinInputModesOnly;
-        }
-        
-    if (FeatureManager::FeatureSupported(KFeatureIdJapanese))
-        {
-        editorFlag = editorFlag | EAknEditorFlagLatinInputModesOnly;
-        }
-    
-    editorSCTResId = iFepMan.EditorState()->SpecialCharacterTableResourceId();
-    
-    if (FeatureManager::FeatureSupported(KFeatureIdChinese))
-        {
-        if (!editorSCTResId || editorSCTResId == R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG)
-            {
-            editorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_CHINESE;
-            }
-        }
-    else if (!editorSCTResId)
-        {
-        editorSCTResId = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG;
-        }
- 
-    delete iSpell;
-    iSpell = NULL;
-    iSpellCba = ESpellCBACancelEmpty;
-    iSpellOn = ETrue;
-    iSpell = CAknFepUiSpellContainer::NewL(editorFlag, editorCase, editorSCTResId);
-   
-    iSpell->SetInputWinObserver(this);
-   
-    iSpell->InputPane()->SetInputWinTextL(&aInitText);
-    iSpell->InputPane()->InputWin()->SetSelectionL(aCurSel.iCursorPos, aCurSel.iAnchorPos);
-    AddWinToOpenListL( iSpell->DrawableWindow() );
-    }    
-
-void CAknFepPluginManager:: DestroySpellEditor()
-    {
-    iSpellOn = EFalse;
-    iSpellCba = ESpellCBANone;
-    delete iSpell;
-    iSpell = NULL;
-    }
-
-HBufC*  CAknFepPluginManager::SpellTextInput()
-    {
-    HBufC* textInput = NULL;
-    if (iSpell)
-        {
-        TRAP_IGNORE(textInput = iSpell->InputPane()->InputWin()->GetTextInHBufL());
-        return textInput;    
-        }
-    
-    return NULL;    
-    }
-
-void CAknFepPluginManager::HandleEdwinEventL( CEikEdwin* /*aEdwin*/, 
-                                              TEdwinEvent aEventType )
-    {
-    if (aEventType == EEventTextUpdate)
-        {
-        TInt textLength = 0;
-        HBufC* text = SpellTextInput(); 
-        
-        if (text)
-            {
-            CleanupStack::PushL(text);
-            textLength = text->Length();
-            CleanupStack::PopAndDestroy(text); 
-            }
-        
-        if ( textLength == 0 && 
-            iSpellCba == ESpellCBAOkCancel)
-            {
-            iSpellCba = ESpellCBACancelEmpty;
-            iFepMan.UpdateCbaL(NULL);
-            }
-            
-        if (textLength > 0 && 
-            iSpellCba == ESpellCBACancelEmpty)
-            {
-            iSpellCba = ESpellCBAOkCancel;
-            iFepMan.UpdateCbaL(NULL);
-            }
-        }
-    }
-
-TInt CAknFepPluginManager::GetSoftKeyResID()
-    {
-    TInt resId = 0;
-    switch (iSpellCba)
-        {
-        case ESpellCBACancelEmpty:
-            {
-            resId = R_AKNFEP_SOFTKEYS_FINGER_CANCEL;
-            }
-         break;
-        case ESpellCBAOkCancel:
-            {
-            resId = R_AKNFEP_SOFTKEYS_FINGER_OK_CANCEL;
-            }
-        case ESpellCBANone:
-        default:
-            {
-            break;
-            }
-        }
-        
-    return resId;
-    }
-
-void CAknFepPluginManager::SetPromptText( TBool aCleanContent )
-    {
-    if (IsDimed() && !iResourceChange) 
-        { 
-        return;  
-        } 
-        
-    MCoeCaptionRetrieverForFep* capRetrieve = NULL;
-    if ( iFepMan.FepAwareTextEditor() )
-        {
-        capRetrieve = iFepMan.InputCapabilities().CaptionRetrieverForFep();
-        }
-    TFepPromptText promptText;
-    promptText.iLines = 1;
-    promptText.iCleanContent = aCleanContent;
-    
-    if (capRetrieve)
-        {
-        TBuf<100> caption;
-        caption.Zero();
-        capRetrieve->GetCaptionForFep(caption);
-        promptText.iText.Set(caption);
-        iPreCaption.Close();
-        iPreCaption.Create(caption.Length());
-        iPreCaption.Append(caption);
-        }  
-    else
-        {
-        promptText.iText.Set(KNullDesC);
-        if ( IsDimed() )
-            {
-            promptText.iText.Set(iPreCaption);
-            }
-	    else
-			{
-			iPreCaption.Close();
-			}
-        }    
-
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSetPromptText,
-                                                         reinterpret_cast<TInt>(&promptText)));        
-    }
-
-void CAknFepPluginManager::SetIcfAlignment()
-    {
-	// Modify for bug ELZG-7WZC35 begin
-    // fix TINA-7HNEKA, spell editor is not really background editor.
-    //if ( iSpellOn )
-    //    {
-    //    return;
-    //    }
-	// Modify for bug ELZG-7WZC35 end
-    
-    TUint cap = iFepMan.ExtendedInputCapabilities();
-
-    TInt alignment = EAknEditorAlignNone;
-
-    if (cap & CAknExtendedInputCapabilities::EInputEditorAlignCenter)
-        {
-        alignment = EAknEditorAlignCenter;
-        }
-    else if (cap & CAknExtendedInputCapabilities::EInputEditorAlignRight)
-        {
-        alignment = EAknEditorAlignRight;
-        }
-    else if (cap & CAknExtendedInputCapabilities::EInputEditorAlignBidi)
-        {
-        alignment = EAknEditorAlignBidi;
-        }
-    else if (cap & CAknExtendedInputCapabilities::EInputEditorAlignLeft)
-        {
-        alignment = EAknEditorAlignLeft;
-        }
-	// Modify for bug ELZG-7WZC35 begin
-    else
-        {
-        alignment = iAlignment;
-        }
-    // Modify for bug ELZG-7WZC35 end
-		
-    TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputSetTextAlignment,
-                                                         alignment));
-														 
-	// Modify for bug ELZG-7WZC35 begin
-    iAlignment = alignment;
-    // Modify for bug ELZG-7WZC35 end
-    }
-    
-void CAknFepPluginManager::HasNoFreeSpace()
-	{
-    if ( iCurrentPluginInputFepUI &&
-         EPluginInputModeItut == PluginInputMode() )
-        {
-        TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputNoFreeSpace));
-        }		
-	}
-    
-// ---------------------------------------------------------------------------
-// CAknFepPluginManager::PluginInputMode
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-//           
-TPluginInputMode CAknFepPluginManager::PluginInputMode()
-    {
-    if( iPluginInputMode != EPluginInputModeNone && IsCurrentWindInOpenList() )
-        {
-        return iPluginInputMode;            
-        }
-
-    return EPluginInputModeNone;
-    }
-    
-void CAknFepPluginManager::AddCurrentWinToOpenListL()
-    {
-    AddWinToOpenListL( GetFocusWindow() );
-    }
-
-void CAknFepPluginManager::AddWinToOpenListL( RDrawableWindow* aWin)
-    {
-    /*if( aWin )
-        {
-        iLastFocusedWin = (TInt )aWin;
-        if( iOpenWindowList.Find( (TInt)aWin ) == KErrNotFound )
-            {
-            iOpenWindowList.AppendL( (TInt)aWin );    
-            }
-        
-        }    
-      */  
-     if( aWin )
-        {
-        iLastFocusedWin = aWin->WsHandle();
-        if( iOpenWindowList.Find( aWin->WsHandle() ) == KErrNotFound )
-            {
-            iOpenWindowList.AppendL( aWin->WsHandle() );    
-            }
-        
-        }    
-
-    }
-
-void CAknFepPluginManager::RemoveCurrentWinFromOpenList()
-    {
-    RDrawableWindow* win = GetFocusWindow();
-    if( win )
-        {
-        TInt index = iOpenWindowList.Find( win->WsHandle() );
-        if( index !=  KErrNotFound )
-            {
-            iOpenWindowList.Remove( index );           
-            }
-        }     
-    }
-
-void CAknFepPluginManager::RemoveLastFocusedWinFromOpenList()
-    {
-    TInt index = iOpenWindowList.Find( iLastFocusedWin );
-    if( index !=  KErrNotFound )
-        {
-        iOpenWindowList.Remove( index );           
-        }
-    iLastFocusedWin = 0;
-
-    }
-
-TBool CAknFepPluginManager::IsCurrentWindInOpenList()
-    {
-    // When touch ui is activated, its associated focus window is inserted into iOpenWindowList.
-    // When focus go back to the associated window, touch ui is activated automatically if the window is iOpenWindowList. 
-    if ( IsDimed() )
-        {
-        return ETrue;
-        }
-    RDrawableWindow* win = GetFocusWindow();       
-    if( win )
-        {
-        return iOpenWindowList.Find( win->WsHandle() ) != KErrNotFound;
-        }
-    return EFalse;
-    }
-
-TBool CAknFepPluginManager::ExistInlineText()
-	{
-	return ( iFepMan.WesternPredictive() && 
-        iFepMan.IsFlagSet( CAknFepManager::EFlagInsideInlineEditingTransaction ) && 
-        !iFepMan.IsFlagSet( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction )&&
-        iFepMan.UncommittedText().Length() > 0 );
-	}
-	
-void CAknFepPluginManager::UpdateCaseMode()
-	{
-	if (iPreviousCoseMode != iCaseMan.CurrentCase())
-		{
-		iPreviousCoseMode =iCaseMan.CurrentCase();
-		
-		if (EPluginInputModeNone == PluginInputMode())
-			{
-			return;	
-			}
-	
-		TRAP_IGNORE(iCurrentPluginInputFepUI->HandleCommandL(ECmdPenInputCaseMode, 
-		                                                     iCaseMan.CurrentCase()));	
-		UpdateITUTIndicator();
-		}	
-	}
-
-void CAknFepPluginManager::AdjustDataCase( TDes& aData )
-		{
-		if( iCaseMan.CurrentCase() == EAknEditorLowerCase  )
-    		{
-    		aData.LowerCase();
-    		}
-		else if( iCaseMan.CurrentCase() == EAknEditorUpperCase )
-    		{
-            if( iCaseMan.IsInverseCase() )
-                {
-                iCaseMan.SetInverseCase( EFalse );
-                aData.LowerCase();
-                return;
-                }
-            for( TInt i = 0; i<aData.Length(); i++ )
-	   			{
-	   			if ( aData[i] != 0x03C2 ) //fix CSTI-7THJR2, final sigma exists in capslock mode
-	   				{
-	   				aData.UpperCase();
-	   				}
-    			}
-    		}
-		}
-		
-TBool CAknFepPluginManager::IsDimArrowKeys()
-    {
-    TBool cursorDisabled = IsEditorCursorDisabled(); 
-    return cursorDisabled || iFepMan.IsFindPaneEditor(); 
-    }
-    
-void CAknFepPluginManager::DimAllModeAndCase(CAknFepUiInterfaceMenuPane* aMenuPane)
-    {
-    aMenuPane->SetItemDimmed(EChinFepCmdModeStroke, ETrue);    
-    aMenuPane->SetItemDimmed(EChinFepCmdModeZhuyin, ETrue);    
-    aMenuPane->SetItemDimmed(EChinFepCmdModePinyin, ETrue);    
-    aMenuPane->SetItemDimmed(EAknCmdEditModeLatinText, ETrue);     
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinUpper, ETrue); 
-    aMenuPane->SetItemDimmed(EChinFepCmdModeLatinLower, ETrue);         
-    }
-    
-void CAknFepPluginManager::LaunchHelpL()
-    {
-    TCoeHelpContext context;
- 
-    switch (PluginInputMode())
-        {
-        case EPluginInputModeItut:
-            {
-            context.iContext = KVITU_HLP_MAIN_VIEW;    
-            }
-        break;
-		case EPluginInputModeFingerHwr:
-        case EPluginInputModeHwr:
-        case EPluginInputModeFSc:
-            {
-            context.iContext = KHWR_HLP_MAIN_VIEW;    
-            }
-        break;        
-        case EPluginInputModeVkb:
-        case EPluginInputModeFSQ:
-            {
-            context.iContext = KVQWERTY_HLP_MAIN_VIEW;    
-            }
-        break;        
-        default:
-            {
-            return;   
-            }
-        }
-
-    context.iMajor =  KAknfepUID;
-   
-    CArrayFixFlat<TCoeHelpContext>* array = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
-    array->AppendL( context );
-    HlpLauncher::LaunchHelpApplicationL(CCoeEnv::Static()->WsSession(),array);                    
-    }
-
-TInt CAknFepPluginManager::RepeatStringFromLeft(const TDesC& aSubmitData, TDes& aEditorData)
-    {
-    TInt index = 0;
-    TInt ret = KErrNotFound;
-    for (; index < aEditorData.Length(); index++ )
-        {
-        //aSubmitData.CompareC( aEditorData.Left(index + 1)) < 0
-        ret = aSubmitData.Find( aEditorData.Left(index + 1)); 
-        if ( ret != index )
-            {            
-            break;
-            }
-	}
-    return ( aEditorData.Length() < aSubmitData.Length() ) ? index : 0;
-    } 
-      
-TBool CAknFepPluginManager::IsGlobleNotes()
-    {
-    TUid appId = GetCurAppUid();
-    TUid focusAppId = GetFocusAppUid();    
-    
-    if(IsGlobalNotesApp(appId) || IsGlobalNotesApp(focusAppId))
-        {
-        return ETrue;				
-        }   
-     
-     return EFalse;
-     }
-    
-
-    								  
-void CAknFepPluginManager::SetMenuState(TBool aUpdateEditor)
-    {
-    if(!iPenInputSvrConnected ) 
-        {
-        return;
-        }    	
-
-    if (!(PluginInputMode() == EPluginInputModeItut ||
-        PluginInputMode() == EPluginInputModeFSQ ||
-        PluginInputMode() == EPluginInputModeFingerHwr))
-        {
-        return;
-        }
-
-    //save current Fep aware editor
-    if (aUpdateEditor && !iInMenu)
-        {
-        if(iFepMan.FepAwareTextEditor())
-            iCurEditor = iFepMan.FepAwareTextEditor();    
-        else
-            iCurEditor = NULL;            
-        }
-        
-    iInMenu = ETrue;
-
-    TUid curApp = GetCurAppUid();
-    iPenInputServer.SetGlobalNotes( IsGlobalNotesApp(curApp) && 
-                                    !iInGlobleNoteEditor);
-    iPenInputServer.SetInternalPopUp(ETrue);
-    
-    iPenInputServer.SetEditorPriority(iEditorPriority);
-    iPenInputServer.DimUiLayout(ETrue); //dim the ui    
-    }
-    
-void CAknFepPluginManager::ResetMenuState(TBool aUnDim)    
-    {
-    if(!iPenInputSvrConnected ) 
-        {
-        return;
-        }    	
-    	
-    iInMenu = EFalse;
-    iCurEditor = NULL;
-    if (aUnDim)
-        {
-        iPenInputServer.SetInternalPopUp(EFalse);
-        iPenInputServer.DimUiLayout(EFalse);       
-        }
-    }
-    
-TBool CAknFepPluginManager::IsDimed()
-    {
-    if(!iPenInputSvrConnected ) 
-        {
-        return EFalse;
-        }    
-    return iPenInputServer.IsDimmed();    
-    }
-void CAknFepPluginManager::HandleiDimGainForeground(TBool aGain)
-    {
-    if (aGain)
-        {
-        iDimGainForeground = ETrue;
-        }
-    else
-        {
-        if (iDimGainForeground)
-            {
-            TUid focusAppId = GetFocusAppUid();
-
-            if(iInMenu &&
-               !(focusAppId.iUid == KAknCapServerUid || 
-                focusAppId.iUid == KAknNotifySrvUid  ||
-                focusAppId.iUid == KAknScreenServerUid ) &&
-               focusAppId != GetCurAppUid() )
-                {
-                iDimGainForeground = EFalse;
-                if (iPenInputSvrConnected)
-                    {
-                    iPenInputServer.SetResourceChange(EFalse);    
-                    }
-                
-                TRAP_IGNORE( ClosePluginInputUiL(ETrue) );
-                if(iPenInputSvrConnected ) //lost foreground
-                    {
-                    iPenInputServer.LoseForeground();
-                    }  
-                iPenInputServer.ClearTouchUI();
-                }
-            }
-        }
-    }
-    
-/*
-#ifdef RD_TACTILE_FEEDBACK
-TBool CAknFepPluginManager::VKBIsOpened()
-	{
-	return (iPenInputSvrConnected && iPenInputServer.IsVisible() && !iPenInputServer.IsDimmed());
-	}
-#endif // RD_TACTILE_FEEDBACK	
-*/
-    
-#ifdef RD_SCALABLE_UI_V2
-void CAknFepPluginManager::SetCursorVisibility(TBool aVisibility, TBool aReportPlugin)
-    {
-    iCursorVisibility = aVisibility;
-
-    if (aReportPlugin)
-        {
-        SyncFepAwareText();
-        }
-    }
-#endif // RD_SCALABLE_UI_V2
-
-void CAknFepPluginManager::InformMfneUiStatusL( TBool aOpened )
-    {
-    if ( iMfne && iMfneChanged )
-        {
-        //make the selection longer than maximum length of current 
-        //text, so it won't change the behavior of MFNE editor which 
-        //doesn't support finger touch.
-        TInt cursor( iMfne->DocumentLengthForFep() + 1 );
-        TInt anchor( 0 );
-        if ( aOpened )
-            {            
-            anchor = cursor;
-            }
-        iMfne->SetCursorSelectionForFepL( 
-            TCursorSelection( cursor, anchor ) );        
-        }
-    if ( !aOpened )
-        {
-        iMfne = NULL;
-        }
-    }
-
-void CAknFepPluginManager::UpdatePredicState()
-    {
-    if(!iSharedData.QwertyInputMode() && iFepMan.InputMode() == ELatin)
-        {
-        if ( iPluginInputMode != EPluginInputModeItut
-            // Add this condition for addition of ITI features on FSQ
-            && !IsSupportITIOnFSQ() )
-            {
-            if( iSharedData.PredictiveTextOn())
-                {
-                iFepMan.SetWesternPredictive(EFalse);
-                TRAP_IGNORE( iFepMan.TryCloseUiL() );
-                iT9UsedBeforePluginInput = ETrue;
-                }
-            }
-        }  
-
-    if(iSharedData.PredictiveTextAutoCompleteOn()
-        // Add this condition for addition of ITI features on FSQ
-       && !IsSupportITIOnFSQ() )
-        {
-        iFepMan.SetWesternAutoComplete(EFalse);
-        iAutoCompBeforePluginInput = ETrue;
-        iSharedData.ResetPredictiveTextAutoCompleteOn();
-        }
-    }
-    
-TBool CAknFepPluginManager::NotifyInGlobalNoteEditorL()
-	{
-	TUid curAppId = GetCurAppUid();
-	iInGlobleNoteEditor = IsGlobalNotesApp(curAppId) ? ETrue:EFalse;
-	if (iCurrentPluginInputFepUI)
-		{
-		iCurrentPluginInputFepUI->HandleCommandL( 
-		    ECmdPenInputEnableSettingBtn, !iInGlobleNoteEditor);
-		}
-		
-    //if it's in global notes, show it.
-    if(EPluginInputModeItut == PluginInputMode() ||
-       EPluginInputModeFSQ == PluginInputMode() )      
-		{
-		if(iInGlobleNoteEditor && iPenInputSvrConnected)
-			{
-			iPenInputServer.ActivatePeninputInNotesL();
-	        return ETrue;	
-			}
-		}   
-    return EFalse;              
-	}
-	
-// ---------------------------------------------------------------------------
-// Get the correct indicator for VKB
-// ---------------------------------------------------------------------------
-//     
-TAknEditingState CAknFepPluginManager::VKBIndicatorState
-                                                ( TAknEditingState aOldState )
-    {      
-    if ( !IsChineseIndicator( aOldState ) ) 
-        {
-        return aOldState;
-        }
-    TAknEditingState editingState = EStateNone; 
-    switch ( iSharedData.DefaultOnScreenVKB() )
-        {
-        case EPinyin:
-            {
-            editingState = EIndicatorStatePinyinPhrase;
-            break;
-            }
-        case EStroke:
-            {
-            if ( iSharedData.PenInputLanguage() == ELangPrcChinese )
-                {
-                editingState = EIndicatorStateStrokePhrase;
-                }
-            else
-                {
-                editingState = EIndicatorStateStrokeTradPhrase;
-                }
-            break;
-            }
-        case EZhuyin:
-            {            
-            editingState = EIndicatorStateZhuyinPhrase;
-            break;
-            }
-        case ECangJie:
-            {            
-            editingState = EIndicatorStateCangJie;
-            break;
-            }
-        default:
-            {
-            editingState = aOldState;
-            }            
-        }        
-    return editingState;
-    }
-
-void CAknFepPluginManager::ClosePeninputSetting()
-    {
-//    if ( iGsInterface )
-//        {
-//        delete iGsInterface;
-//        iGsInterface = NULL;
-//        }
-    }
-
-// ---------------------------------------------------------------------------
-// Show tooltip on FSQ to show the best guess word shown inline.
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::ShowTooltipOnFSQL( TInt aSecondaryIdx )
-    {
-    if ( aSecondaryIdx < 0  
-    		|| !iCurrentPluginInputFepUI 
-    		|| !EnableITIOnFSQ() 
-    		|| !( iFepMan.EditorState() )
-    		|| (iFepMan.EditorState()->Flags() & EAknEditorFlagEnablePartialScreen)
-    		)
-        {
-        iTooltipOpenOnFSQ = EFalse;
-        return;
-        }
-    
-	CDesCArray* candidates = new ( ELeave ) CDesCArrayFlat( KDefaultCandidateArraySize );
-	CleanupStack::PushL( candidates );
-	TInt activeIdx = KErrNotFound;
-	iFepMan.GetCandidatesL( *candidates, activeIdx );
-	if ( aSecondaryIdx < candidates->Count() )
-		{
-		TPtrC aText = ( *candidates )[ aSecondaryIdx ];
-
-	    TFepITITooltipText tooltipText;
-	    tooltipText.iDataSize = aText.Size();
-	    tooltipText.iText.Set( aText );    
-	    TPtrC tooltipTextPtr;
-	    tooltipTextPtr.Set( aText );    
-	    iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputPopupTooltip, 
-	                                reinterpret_cast<TInt>( &tooltipTextPtr ) );
-	    
-	    iTooltipOpenOnFSQ = ETrue;		
-		}
-	else
-		{
-		iTooltipOpenOnFSQ = EFalse;
-		}
-    
-    CleanupStack::PopAndDestroy( candidates );
-    }
-
-// ---------------------------------------------------------------------------
-// Hide tooltip on FSQ if necessary.
-// ---------------------------------------------------------------------------
-// 
-void CAknFepPluginManager::HideTooltipOnFSQL()
-    {
-    if ( !iCurrentPluginInputFepUI || !EnableITIOnFSQ() || !iTooltipOpenOnFSQ )
-        {
-        return;
-        }
-
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputHideTooltip );
-    iTooltipOpenOnFSQ = EFalse;
-    }
-
-// --------------------------------------------------------------------------- 
-// Show candidate list
-// --------------------------------------------------------------------------- 
-//  
-void CAknFepPluginManager::ShowCandidateListL
-                                      ( TFepITICandidateList aCandidateList )
-    {
-    if ( !iCurrentPluginInputFepUI )
-        {
-        return;       
-        }
-    HideTooltipOnFSQL();
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputPopupCandidateList,
-                                reinterpret_cast<TInt>( &aCandidateList ) );    
-    }
-
-// --------------------------------------------------------------------------- 
-// Hide candidate list.
-// --------------------------------------------------------------------------- 
-//  
-void CAknFepPluginManager::HideCandidateListL()
-    {    
-    if ( !iCurrentPluginInputFepUI )
-        {
-        return;       
-        }
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputHideCandidateList );    
-    }
-
-
-// --------------------------------------------------------------------------- 
-// Commit candidate word on FSQ. 
-// --------------------------------------------------------------------------- 
-//  
-void CAknFepPluginManager::CommitCandidateWordOnFSQL( TInt aIndex )
-    {
-    iFepMan.PtiEngine()->HandleCommandL( 
-							EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-                            &aIndex ); 
-    TPtrC selectedWord = iFepMan.PtiEngine()->CurrentWord();
-    iFepMan.UpdateInlineEditL( selectedWord, selectedWord.Length() );
-    iFepMan.PtiEngine()->CommitCurrentWord();
-    iFepMan.CommitInlineEditL();
-    }
-
-TBool CAknFepPluginManager::IsChineseIndicator( TAknEditingState aOldState )
-    {
-    return aOldState == EIndicatorStatePinyinPhrase
-           || aOldState == EIndicatorStateStrokePhrase
-           || aOldState == EIndicatorStateStrokeTradPhrase
-           || aOldState == EIndicatorStateZhuyinPhrase
-           || aOldState == EIndicatorStateCangJie
-           || aOldState == EIndicatorStateZhuyinFind
-           || aOldState == EIndicatorStateStrokeFind;
-    }
-    
-// --------------------------------------------------------------------------- 
- // Test if editor has EEikEdwinAvkonDisableCursor flag. 
- // --------------------------------------------------------------------------- 
- //  
- TBool CAknFepPluginManager::IsEditorCursorDisabled() 
-     { 
-     CAknEdwinState* editorState = iFepMan.EditorState(); 
-     if ( !editorState ) 
-         { 
-         return EFalse; 
-         } 
-      
-     TInt flags = editorState->Flags();         
-     return ( flags & EEikEdwinAvkonDisableCursor ) == EEikEdwinAvkonDisableCursor; 
-     } 
-
-// --------------------------------------------------------------------------- 
-// Check if the cusror in editor is visible. 
-// --------------------------------------------------------------------------- 
-//  
-TBool CAknFepPluginManager::IsEditorCursorVisible()
-    {
-    CAknEdwinState* editorState = iFepMan.EditorState(); 
-    if ( !editorState ) 
-         { 
-         return EFalse; 
-         }
-     return ( editorState->Flags() & EAknEditorFlagTextCursorVisible )      
-            == EAknEditorFlagTextCursorVisible;
-    }
-
-// --------------------------------------------------------------------------- 
-// Check if curor selection in editor is visible.
-// --------------------------------------------------------------------------- 
-//  
-TBool CAknFepPluginManager::IsEditorCursorSelVisible()
-    {
-     CAknEdwinState* editorState = iFepMan.EditorState(); 
-     if ( !editorState ) 
-         { 
-         return EFalse; 
-         }
-     return ( editorState->Flags() & EAknEditorFlagSelectionVisible )      
-            == EAknEditorFlagSelectionVisible;
-    }
-        
-// --------------------------------------------------------------------------- 
-// Check if ITI features is enabled when FSQ is opened.
-// --------------------------------------------------------------------------- 
-//  
-TBool CAknFepPluginManager::EnableITIOnFSQ()
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if ( IsSupportITIOnFSQ()         
-         && iFepMan.IsQwerty()
-         && iFepMan.WesternPredictive() )
-        {
-        return ETrue;    
-        }
-    return EFalse;
-#else
-    return EFalse;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    }
-
-// -----------------------------------------------------------------------------
-// Check if ITI can be supported by FSQ..
-// -----------------------------------------------------------------------------
-//    
-TBool CAknFepPluginManager::IsSupportITIOnFSQ()
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if ( iPluginInputMode == EPluginInputModeFSQ
-         // Exclude non Latin mode 
-         && iFepMan.InputMode() == ELatin
-         // Exclude accent range
-         && ( iPluginPrimaryRange == ERangeNative 
-              || iPluginPrimaryRange == ERangeEnglish
-              // iPluginPrimaryRange == 0 is the default range, 
-              // default range couldn't be accent. 
-              || !iPluginPrimaryRange )
-         && iFepMan.InputLanguageCapabilities().iSupportsWesternQwertyPredictive
-         && !iSharedData.QwertyInputMode() )
-        {
-        return ETrue;
-        }        
-#endif
-    return EFalse;
-    }
-
-// --------------------------------------------------------------------------- 
-// Get scan code from hw keymapping.
-// --------------------------------------------------------------------------- 
-//  
-TInt CAknFepPluginManager::GetScanCodeFromHwKeymapping( TUint aKeyCode )
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    CPtiCoreLanguage *lang = static_cast<CPtiCoreLanguage*>
-                                   ( iFepMan.PtiEngine()->CurrentLanguage() );
-    MPtiKeyMappings* keymapping = lang->GetQwertyKeymappings();
-    if ( keymapping )
-        {
-        // Save the old input mode
-        TPtiEngineInputMode oldInputMode = iFepMan.PtiEngine()->InputMode();
-        // Change to input mode to EPtiEngineQwertyPredictive, after that
-        // qwerty keymapping can be got
-        iFepMan.PtiEngine()->SetInputMode( EPtiEngineQwertyPredictive );
-        // Find scancode by keycode from qwerty keymapping
-        TInt retKey = keymapping->KeyForCharacter( aKeyCode );
-        // Restore the old input mode
-        iFepMan.PtiEngine()->SetInputMode( oldInputMode );
-        return retKey;
-        }
-    return EPtiKeyNone;
-#else
-    return EPtiKeyNone;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    }
-
-// --------------------------------------------------------------------------- 
-// Check if those keys are IIT-supported keys.
-// --------------------------------------------------------------------------- 
-//  
-TBool CAknFepPluginManager::IsITISupportedKey( const TKeyEvent& aKeyEvent )
-    {
-// ITI supported conditions
-// 1. scan code != EPtiKeyNone
-// 2. Basic alpha characters
-// 3. 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if ( aKeyEvent.iScanCode != EPtiKeyNone 
-         && ( iPluginPrimaryRange == ERangeNative 
-              || iPluginPrimaryRange == ERangeEnglish
-              || ( iPluginPrimaryRange == 0 && iFepMan.InputMode() != ENumber 
-                   && iFepMan.InputMode() != ENativeNumber) )
-         && ( TChar( aKeyEvent.iCode ).IsAlpha() || IsDeadKeyCode( aKeyEvent.iCode ) ) 
-          )
-        {
-        return ETrue;
-        }
-    return EFalse;
-#else
-    return EFalse;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    }
-    
-TPtiTextCase CAknFepPluginManager::CaseForMappedCharacter(TChar aCharacter)
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    const TInt KDefaulCoreMaximumWordLength = 100;
-    TPtiTextCase casesTOCheckAgainst[KNumberOfCases] ={  EPtiCaseLower, EPtiCaseUpper, 
-                                                      EPtiCaseChrLower, EPtiCaseChrUpper, 
-                                                      EPtiCaseFnLower, EPtiCaseFnUpper };
-    TPtiTextCase caseCalculated = EPtiCaseLower;
-    TBuf<KDefaulCoreMaximumWordLength> mappedCharacters; 
-    TBool isMappingFound = EFalse;
-    TPtiKey key = iFepMan.PtiEngine()->CharacterToKey( aCharacter );
-
-    //It loops through all the key mappings to find the character in the key mappings and
-    //if the character available in the key mapping, fetches the corresponding case.
-    for( TInt i=0; i< KNumberOfCases ; i++)
-        {
-        iFepMan.PtiEngine()->MappingDataForKey( key, mappedCharacters, 
-                                                casesTOCheckAgainst[i] );
-        for( TInt j=0; j < mappedCharacters.Length(); j++ )
-            {
-            if( mappedCharacters[j] == aCharacter )
-                {
-                caseCalculated = casesTOCheckAgainst[i];
-                isMappingFound = ETrue;
-                break;
-                }
-            }
-        if ( isMappingFound )
-        	{
-        	break;
-        	}
-        }
-    //Now if there is no key mapping found for the character, then use the default TChar
-    //APIs to find the case of the character.
-    if( !isMappingFound )
-        {
-        caseCalculated = aCharacter.IsUpper()?EPtiCaseUpper:EPtiCaseLower;
-        }
-    return caseCalculated;
-#else
-    return aCharacter.IsUpper() ? EPtiCaseUpper : EPtiCaseLower;   
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    }
-    
-TBool CAknFepPluginManager::IsNeedToChangeTextCase( const TPtiTextCase& aTextCase )
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TPtiTextCase textCase = aTextCase;
-    if( EPtiKeyboardHalfQwerty != iFepMan.PtiEngine()->KeyboardType() )
-		{
-		if ( textCase  == EPtiCaseChrLower )
-			{
-			textCase = EPtiCaseLower;
-			}
-		else if (textCase == EPtiCaseChrUpper)
-			{
-			textCase = EPtiCaseUpper;
-			}
-		}
-    return ( iFepMan.PtiEngine()->Case() == textCase )
-            ? EFalse : ETrue;   
-#else
-    return EFalse;
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    }
-
-// -----------------------------------------------------------------------------
-// Do some configuration to make FSQ support ITI features.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::SetItiStateL()
-    {
-    if ( iIsITIConfigured || !IsSupportITIOnFSQ() )
-    	{
-    	return;
-    	}
-    // 1. Config keyboard layout type
-    SetItiKeyboardLayoutL();               
-    
-    // 2. Change FEP to qwerty mode.   
-    iFepMan.SetQwertyMode( ETrue );
-
-    // 3. Notify the activation of ITI on FSQ to peninput server        
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPeninputITIStatus,
-                                              iFepMan.WesternPredictive() );
-
-    // 4. if there is un-commited text editor, 
-    //    need to setcurrentword to ptiengine again.
-    TInt unCommitedLen = iFepMan.UncommittedText().Length();
-    if ( unCommitedLen > 0 )
-        {
-        HBufC* unCommitedText = HBufC::NewL( unCommitedLen );
-        TPtr unCommitedTextPtr = unCommitedText->Des();        
-        TInt startPos = iFepMan.UncommittedText().LowerPos();
-        MCoeFepAwareTextEditor* edit = iFepMan.FepAwareTextEditor();
-        edit->GetEditorContentForFep( unCommitedTextPtr, 
-                                      startPos, unCommitedLen ); 		
-		iFepMan.PtiEngine()->SetCurrentWord( *unCommitedText );
-		delete unCommitedText;
-		unCommitedText = NULL;
-        }
-    
-    // 5. Set ITI configured flag;
-    iIsITIConfigured = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// Restore some configuration after closing FSQ.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ResetItiStateL()
-    {    
-    if ( !iIsITIConfigured )
-    	{
-    	return;
-    	}
-    
-    // Close FSQ then current keyboard type return to the previously-stored one,
-    // 1. The first step is to restore keyboard type, because the value will
-    // be used in iFepMan.SetQwertyMode( EFalse );
-    ResetItiKeyboardLayoutL();
-    
-    // 2. Change FEP to non qwerty mode.
-    iFepMan.SetQwertyMode( EFalse );
-
-    // 3. Notify the deactivation of ITI to peninputserver        
-    iCurrentPluginInputFepUI->HandleCommandL( ECmdPeninputITIStatus, EFalse );    
- 
-    // 4. Clear ITI configured flag;
-    iIsITIConfigured = EFalse; 
-    }
-
-// -----------------------------------------------------------------------------
-// Config keyboard layout for ITI.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::SetItiKeyboardLayoutL()
-    { 
-    if ( iLastKeyboardLayout || !IsSupportITIOnFSQ() )
-        {
-        return;
-        }    
-    // 1. Record the previous keyboard type
-    RProperty keyboardLayoutStatusProperty;
-    keyboardLayoutStatusProperty.Get( KCRUidAvkon, KAknKeyBoardLayout, 
-                                          iLastKeyboardLayout );
-
-    // 2. Utilize right qwerty keyboard type
-    TPtiKeyboardType keyboardType = EPtiKeyboardQwerty4x12;
-    RArray<TPtiKeyboardType> supportedKeyboards;
-    CleanupClosePushL( supportedKeyboards );
-    iFepMan.PtiEngine()->KeyboardTypesSupportedByLanguageL
-                    ( iSharedData.PenInputLanguage(), supportedKeyboards );   
-    for ( TInt i = 0; i < supportedKeyboards.Count(); i ++ )
-        {        
-        if ( supportedKeyboards[i] == EPtiKeyboardQwerty4x12 
-             || supportedKeyboards[i] == EPtiKeyboardQwerty3x11
-             || supportedKeyboards[i] == EPtiKeyboardQwerty4x10
-             || supportedKeyboards[i] == EPtiKeyboardCustomQwerty )
-            {
-            keyboardType = supportedKeyboards[i];
-            break;
-            }        
-        }
-    keyboardLayoutStatusProperty.Set( KCRUidAvkon, KAknKeyBoardLayout, 
-                                      keyboardType );
-    CleanupStack::PopAndDestroy( &supportedKeyboards );    
-    }
-// -----------------------------------------------------------------------------
-// Restore keyboard layout after closing FSQ.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::ResetItiKeyboardLayoutL()
-    {    
-    if ( !iLastKeyboardLayout || iITISettingDialogOpen )
-    	{
-    	return;
-    	}
-    
-    // Close FSQ then current keyboard type return to the previously-stored one,
-    //Restore keyboard layout type and qwerty mode of FEP        
-    // 1. Store the previous keyboard type, 
-    // except that opening predictive setting dialog cause fsq closed.        
-    RProperty keyboardLayoutStatusProperty;
-    keyboardLayoutStatusProperty.Set( KCRUidAvkon, KAknKeyBoardLayout, 
-                                          iLastKeyboardLayout );
-    iLastKeyboardLayout = 0;        
-    }
-
-// -----------------------------------------------------------------------------
-// Restore predict state.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::RestorePredictStateL()
-    {
-    if( iT9UsedBeforePluginInput )
-        {
-        iT9UsedBeforePluginInput = EFalse;
-        iFepMan.SetWesternPredictive(ETrue);
-        iFepMan.TryChangeModeL(ELatin);     
-        }
-    if(iAutoCompBeforePluginInput)
-        {
-        iAutoCompBeforePluginInput = EFalse;
-        iFepMan.SetWesternAutoComplete(ETrue);        
-        iFepMan.TryChangeModeL(ELatin);      
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Check if the keycode belongs to dead keys.
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginManager::IsDeadKeyCode( TUint aKeyCode )
-	{	
-	for ( TInt i = 0; i < sizeof(KSupportedDeadKeys) / sizeof(TUint); i++ )
-		{
-		if ( aKeyCode == KSupportedDeadKeys[i] )
-			{
-			return ETrue;
-			}
-		}
-	return EFalse;
-	}
- 
-// -----------------------------------------------------------------------------
-// Notify app touch input window closed or open.
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginManager::NotifyAppUiImeTouchWndState( const TBool aTouchState )
-    {
-    if ( iLangMan.IsSplitView() )
-        {
-        CEikonEnv* eikEnv = CEikonEnv::Static();
-        TUint param = aTouchState ? KAknSplitInputEnabled : KAknSplitInputDisabled;
-        if ( eikEnv && eikEnv->EikAppUi() )
-            {
-            eikEnv->EikAppUi()->ReportResourceChangedToAppL( param );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Check if current editor support partial screen IMEs
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginManager::IsEditorSupportSplitIme()
-    {
-    //Mfne editors
-    if ( iFepMan.IsMfneEditor() )
-        {
-        TUint caps = iFepMan.ExtendedInputCapabilities();
-        return CAknExtendedInputCapabilities::EInputEditorPartialScreen == 
-                   ( caps & CAknExtendedInputCapabilities::EInputEditorPartialScreen );
-        }
-    
-    //Normal editors
-    CAknEdwinState* state = iFepMan.EditorState(); 
-    if ( state )
-        {
-        return EAknEditorFlagEnablePartialScreen == 
-                   ( state->Flags() & EAknEditorFlagEnablePartialScreen );
-        }
-    
-    return EFalse;
-    }
-
-//End of File
--- a/fep/aknfep/src/AknFepPluginMenuManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +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 AknFepPluginMenuManager methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include <coemain.h>
-#include <coeaui.h>
-
-#include "AknFepPluginMenuManager.h" // MAknFepManagerInterface
-#include "AknFepManager.h" 
-
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::NewL
-// factory function
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepPluginMenuManager* CAknFepPluginMenuManager::NewL(CAknFepManager* aManager)
-    {
-    return new(ELeave) CAknFepPluginMenuManager(aManager);
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::~CAknFepPluginMenuManager
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepPluginMenuManager::~CAknFepPluginMenuManager()
-    {
-    if( iOptionMenuBar )
-        {
-        iOptionMenuBar->RemoveFromStack();
-        delete iOptionMenuBar;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::aResourceId
-// Show speicfied menu pane
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginMenuManager::ShowL(TInt aResourceId)
-    {
-    if( !iOptionMenuBar )
-        {
-		iOptionMenuBar = iFepManager->UiInterface()->NewMenuBarL(this, 0, aResourceId);
-        }
-    else
-        {
-        iOptionMenuBar->SetMenuTitleResourceId(aResourceId);
-        }
-
-    if( !iOptionMenuBar->IsDisplayed() )
-        {
-        iOptionMenuBar->AddToStackL(ECoeStackPriorityDialog + 1,
-                                    ECoeStackFlagStandard);
-        iOptionMenuBar->SetMenuType(CAknFepUiInterfaceMenuBar::EMenuOptionsNoTaskSwapper);
-        iOptionMenuBar->TryDisplayMenuBarWithoutFepMenusL();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::IsShowing
-// Get menu show status
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CAknFepPluginMenuManager::IsShowing()
-    {
-    if( iOptionMenuBar )
-        {
-        return iOptionMenuBar->IsDisplayed();
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::Hide
-// Hide current showed menu
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginMenuManager::Hide()
-    {
-    if( IsShowing() )
-        {
-        iOptionMenuBar->StopDisplayingMenuBar();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::MenuPaneId
-// Get current menu resource id
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TInt CAknFepPluginMenuManager::MenuPaneId()
-    {
-    if( iOptionMenuBar )
-        {
-        return iOptionMenuBar->FirstMenuPaneResourceId();
-        }
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::SetEmphasis
-// called when menu get or lose focus
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginMenuManager::SetEmphasis(CBase* aMenuControl, TBool aEmphasis)
-    {
-    if( !aEmphasis && aMenuControl == iOptionMenuBar)
-        {
-        iOptionMenuBar->SetFocus(EFalse);
-		iOptionMenuBar->RemoveFromStack();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::ProcessCommandL
-// Process command user selects
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CAknFepPluginMenuManager::ProcessCommandL(TInt aCommandId)
-    {
-    if( aCommandId == EEikCmdCanceled)
-        {
-        //The command is not sent to FEP
-        Hide();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepPluginMenuManager::MenuPaneId
-// C++ default constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepPluginMenuManager::CAknFepPluginMenuManager(CAknFepManager* aFepManager)
-:iFepManager(aFepManager)
-    {
-    }
-
-//End Of File
--- a/fep/aknfep/src/AknFepSharedDataInterface.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1730 +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:           
-*       CAknFepSharedDataInterface class
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <w32std.h>
-#include <eikdef.h>
-#include <eikenv.h>
-#include <AknUtils.h>
-
-#include "AknFepSharedDataInterface.h"
-#include "AknFepManager.h"
-
-#include <centralrepository.h>
-#include <AknFepInternalCRKeys.h>
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include <AknFepInternalPSKeys.h>
-#include <AknFepGlobalEnums.h>
-#include <PtiDefs.h>
-#endif
-#include <AvkonInternalCRKeys.h>    // KAknQwertyInputModeActive
-#include <settingsinternalcrkeys.h> //Pen related settings
-#include <sensorplugindomaincrkeys.h> // KCRUidSensorSettings
-
-// TODO: include CommonengineInternalCRKeys.h
-const TUid KCRUidCommonEngineKeys = {0x1020503B};
-const TUint32 KGSDisplayTxtLang = 0x00000001;
-
-const TInt KJapHwrConversion = 0x0010;
-
-#include <AknDef.h>
-
-CAknFepSharedDataInterface* CAknFepSharedDataInterface::NewL(CAknFepManager* aFepManager)
-    {
-    CAknFepSharedDataInterface* self = new (ELeave) CAknFepSharedDataInterface(aFepManager);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(); //self
-    return self;
-    }
-
-
-CAknFepSharedDataInterface::~CAknFepSharedDataInterface()
-    {
-    delete iCommonEngineRepository;
-    delete iAknFepRepositoryWatcher;
-    delete iAknFepLocaleRepositoryWatcher;
-    delete iAknFepRepository;
-    delete iGsPenSettings;
-    delete iLocaleRepository;
-    delete iSensorRepository;
-
-    if (iQwertyModeStatusSubscriber)
-        {
-        iQwertyModeStatusSubscriber->StopSubscribe();
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (iKeyboardLayoutStatusSubscriber)
-        {
-        iKeyboardLayoutStatusSubscriber->StopSubscribe();
-        }
-    iKeyboardLayoutStatusProperty.Close();
-    delete iKeyboardLayoutStatusSubscriber;    
-#endif
-    iQwertyModeStatusProperty.Close();
-    delete iQwertyModeStatusSubscriber;
-    }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextOn()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-        TInt temp = 0;
-        iAknFepRepository->Get(KAknFepPredTxtFlagExtension, temp);
-        switch(layout)
-            {
-            case EPtiKeyboardNone:
-                break;
-          	case EPtiKeyboard12Key:
-                temp &= EKeyboardStyle12Key;
-                break;
-            case EPtiKeyboardHalfQwerty:
-                temp &= EKeyboardStyleHalfQwerty;
-                break;                
-          	case EPtiKeyboardQwerty4x12:
-          	case EPtiKeyboardQwerty4x10:
-          	case EPtiKeyboardQwerty3x11:          	
-          	case EPtiKeyboardCustomQwerty:
-                temp &= EKeyboardStyleQwerty;
-                break;
-          	default:
-          	    break;
-            }
-        value = ( temp ? 1 : 0);
-#else
-        iAknFepRepository->Get(KAknFepPredTxtFlag, value);
-#endif
-        }
-    return value;
-    }
-
-TInt CAknFepSharedDataInterface::PredictiveTextJapaneseOn()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepJapanesePredTxtFlag, value);
-        }
-    return value;
-    }
-
-TInt CAknFepSharedDataInterface::InputMode()
-    {
-    TUint value = 0;
-    if (iAknFepRepository)
-        {
-   		/* Teleca change begin, 03.07.2008 ssal 
-   			original code:
-		TPtrC filteredPtr(0,0);
-		iAknFepRepository->Get(KAknFepChineseInputMode, value);*/
-		_LIT(Kx, "x");
-		// This conversion is needed because KAknFepChineseInputMode cenrep key original type was 16bit int.
-		// now type is changed to string, so that it can accommodate bigger values like EHangul 0x16000. 
-		TBuf<CAknFepManager::EMaximumFepWordLength> conversion;
-        iAknFepRepository->Get(KAknFepChineseInputMode, conversion);
-       
-       	TInt len = conversion.Find(Kx);
-       	TLex lex;
-       	
-       	if(len)
-       		{
-       		TPtrC ptr = conversion.Mid(len +1);
-       		lex.Assign(ptr);
-       		}
-		else
-			{
-			lex.Assign(conversion);
-			}
-		
-		lex.Val(value, EHex);
-		/* Teleca change end, 04.06.2008 ssal */
-        }
-    return value;
-    }
-
-void CAknFepSharedDataInterface::SetInputMode(TInt aInputMode)
-    {
-    if (iAknFepRepository)
-        {
-        /* Teleca change begin, 03.07.2008 ssal 
-			original code:
-        iAknFepRepository->Set(KAknFepChineseInputMode, aInputMode);*/
-        
-        // Please see the explanation on CAknFepSharedDataInterface::InputMode() method
-		TBuf<CAknFepManager::EMaximumFepWordLength> conversion;
-		conversion.Num(aInputMode, EHex);
-		
-        iAknFepRepository->Set(KAknFepChineseInputMode, conversion);
-      	/* Teleca change end, 04.06.2008 ssal */
-        }
-    }
-
-TInt CAknFepSharedDataInterface::CangJieMode()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepCangJieMode, value);
-        }
-    return value;
-    }
-    
-void CAknFepSharedDataInterface::SetCangJieMode(TInt aNewCangJieMode)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepCangJieMode, aNewCangJieMode);
-        }
-    }
-
-TInt CAknFepSharedDataInterface::InputTextLanguage()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepInputTxtLang, value);
-        }
-    return TLanguage(value);
-    }
-
-void CAknFepSharedDataInterface::SetInputTextLanguage(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepInputTxtLang, aValue);
-        }
-
-    // now inform all open apps of the switch
-    TWsEvent event;
-    event.SetType(KEikInputLanguageChange);
-    CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
-    }
-
-TInt CAknFepSharedDataInterface::DisplayLanguage()
-    {
-    TInt value = 0;
-    if (iCommonEngineRepository)
-        {
-        iCommonEngineRepository->Get(KGSDisplayTxtLang, value);
-        }
-    return TLanguage(value);
-    }
-
-void CAknFepSharedDataInterface::SetPredictiveTextOn()
-    {
-    if (iAknFepRepository)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-        TInt value = 0;
-        iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
-        switch(layout)
-            {
-            case EPtiKeyboardNone:
-                // No keyboard active, so don't change anything
-                break;
-          	case EPtiKeyboard12Key:
-                value |= EKeyboardStyle12Key;
-                break;
-            case EPtiKeyboardHalfQwerty:    
-                value |= EKeyboardStyleHalfQwerty;
-                break;             
-          	case EPtiKeyboardQwerty4x12:
-          	case EPtiKeyboardQwerty4x10:
-          	case EPtiKeyboardQwerty3x11:
-          	case EPtiKeyboardCustomQwerty:
-                value |= EKeyboardStyleQwerty;
-                break;
-          	default:
-          	    break;
-            }
-        iAknFepRepository->Set(KAknFepPredTxtFlagExtension, value);
-        // For backwards compatibility
-        if (value & EKeyboardStyle12Key)
-            {
-            iAknFepRepository->Set(KAknFepPredTxtFlag, 1);
-            }
-#else
-        iAknFepRepository->Set(KAknFepPredTxtFlag, 1);
-#endif
-        }
-    }
-
-
-void CAknFepSharedDataInterface::ResetPredictiveTextOn()
-    {
-    if (iAknFepRepository)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-        TInt value = 0;
-        iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
-        switch(layout)
-            {
-            case EPtiKeyboardNone:
-                // No keyboard active, so don't change anything
-                break;
-          	case EPtiKeyboard12Key:
-                value &= ~EKeyboardStyle12Key;
-                break;
-          	case EPtiKeyboardHalfQwerty:
-                value &= ~EKeyboardStyleHalfQwerty;
-                break;
-          	case EPtiKeyboardQwerty4x12:
-          	case EPtiKeyboardQwerty4x10:
-          	case EPtiKeyboardQwerty3x11:
-          	case EPtiKeyboardCustomQwerty:
-                value &= ~EKeyboardStyleQwerty;
-                break;
-          	default:
-          	    break;
-            }
-        iAknFepRepository->Set(KAknFepPredTxtFlagExtension, value);
-        // For backwards compatibility
-        if (!(value & EKeyboardStyle12Key))
-            {
-            iAknFepRepository->Set(KAknFepPredTxtFlag, 0);
-            }
-#else
-        iAknFepRepository->Set(KAknFepPredTxtFlag, 0);
-#endif
-        }
-    }
-
-void CAknFepSharedDataInterface::SetJapanesePredictiveTextOn()
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepJapanesePredTxtFlag, 1);
-        }
-    }
-
-
-void CAknFepSharedDataInterface::ResetJapanesePredictiveTextOn()
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepJapanesePredTxtFlag, 0);
-        }
-    }
-
-TInt CAknFepSharedDataInterface::PluginInputMode() const
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepLastUsedInput, value);
-        }
-    return value;
-    }
-
-void CAknFepSharedDataInterface::SetPluginInputMode(TInt aDevice)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepLastUsedInput, aDevice);
-        }
-    }
-
-TInt CAknFepSharedDataInterface::PluginUILanguage() const
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        //iAknFepRepository->Create(KAknFepLastUsedUILanguage, 0); //??
-        iAknFepRepository->Get(KAknFepLastUsedUILanguage, value);
-        }
-    return value;
-    }
-
-void CAknFepSharedDataInterface::SetPluginUILanguage(TInt aLanguage)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepLastUsedUILanguage, aLanguage);
-        }
-    }
-
-void CAknFepSharedDataInterface::SetDefaultNumberMode( TInt aMode, TInt aValue )
-    {
-    if (iLocaleRepository)
-        {
-        iLocaleRepository->Set(aMode, aValue);
-        }
-    }
-
-
-TInt CAknFepSharedDataInterface::PenInputLanguage() const
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepInputTxtLang, value);
-        }
-    return value;
-    }
-
-TInt CAknFepSharedDataInterface::ScrollLatinPredictiveCandidates() const
-    {
-    return iSharedDataScrollLatinPredictive;
-    }
-
-TInt CAknFepSharedDataInterface::SpaceWithScrollRight() const
-    {
-    return iSharedDataSpaceWithScrollRight;
-    }
-
-TInt CAknFepSharedDataInterface::EntersWithScrollDown() const
-    {
-    return iSharedDataEnterWithScrollDown;
-    }
-
-TInt CAknFepSharedDataInterface::QwertyInputMode() //const
-    {
-    TInt value = 0;
-    iQwertyModeStatusProperty.Get(value);
-    return value;
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepSharedDataInterface::KeyboardLayout() //const
-    {
-    TInt value = 0;
-    iKeyboardLayoutStatusProperty.Get(value);
-    return value;
-    }
-
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-TInt CAknFepSharedDataInterface::InputTextLanguageSecondary()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepInputTxtLangSecondary, value);
-        }
-    return TLanguage(value);
-    }
-
-void CAknFepSharedDataInterface::SetInputTextLanguageSecondary(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepInputTxtLangSecondary, aValue);
-        }
-
-    // now inform all open apps of the switch
-    // same event as primary input language change
-    TWsEvent event;
-    event.SetType(KEikInputLanguageChange);
-    CEikonEnv::Static()->WsSession().SendEventToAllWindowGroups(event);
-    }
-
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-
-CAknFepSharedDataInterface::CAknFepSharedDataInterface(CAknFepManager* aFepManager)
-    {
-    iFepManager = aFepManager;
-    }
-
-
-void CAknFepSharedDataInterface::ConstructL()
-    {
-    TInt ret = KErrNone;
-
-    TRAP(ret, iCommonEngineRepository = CRepository::NewL(KCRUidCommonEngineKeys));
-
-    TRAP(ret, iAknFepRepository = CRepository::NewL(KCRUidAknFep));
-    if (ret == KErrNone)
-        {
-        iAknFepRepositoryWatcher = CAknFepRepositoryWatcher::NewL(
-            KCRUidAknFep,
-            TCallBack(HandleRepositoryCallBack, this),
-            iAknFepRepository);
-        HandleHashKeySelectionChange();//we need read proactively before value changed,and we must sure the iAknFepRepository has been constructed
-        }
-	
-	TRAP(ret, iLocaleRepository = CRepository::NewL( KCRUidLocaleSettings ));
-
-    if (ret == KErrNone)
-        {
-        iAknFepLocaleRepositoryWatcher = CAknFepRepositoryWatcher::NewL(
-            KCRUidLocaleSettings,
-            TCallBack(HandleLocaleRepositoryCallBack, this),
-            iLocaleRepository);
-        }
-
-    User::LeaveIfError(iQwertyModeStatusProperty.Attach(KCRUidAvkon, KAknQwertyInputModeActive));
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    //Attach the P&S property to the keyboardlayout and subscribe to the P&S framework
-    // for any keyboard layout change.
-    User::LeaveIfError(iKeyboardLayoutStatusProperty.Attach(KCRUidAvkon, KAknKeyBoardLayout));    
-    iKeyboardLayoutStatusSubscriber = new (ELeave) CSubscriber(
-                                         TCallBack(HandleKeyboardLayoutChangeNotification, this), 
-                                         iKeyboardLayoutStatusProperty);    
-    iKeyboardLayoutStatusSubscriber->SubscribeL();
-#endif
-    iQwertyModeStatusSubscriber = new (ELeave) CSubscriber(
-    								TCallBack(QwertyModeChangeNotification, this), 
-    								iQwertyModeStatusProperty);
-    iQwertyModeStatusSubscriber->SubscribeL();
-
-    // Read read-only shared data settings.
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepScrollLatinPredictive, iSharedDataScrollLatinPredictive);
-        iAknFepRepository->Get(KAknFepSpaceWithScrollRight,  iSharedDataSpaceWithScrollRight);
-        iAknFepRepository->Get(KAknFepEnterWithScrollDown,   iSharedDataEnterWithScrollDown);
-        }
-        
-    TRAP(ret, iGsPenSettings = CRepository::NewL(KCRUidPersonalizationSettings));
-    
-    TRAP(ret, iSensorRepository = CRepository::NewL( KCRUidSensorSettings ) );
-    }
-
-TInt CAknFepSharedDataInterface::HashKeySelectionNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleHashKeySelectionChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-    
-void CAknFepSharedDataInterface::HandleHashKeySelectionChange()
-    {
-    TInt value(0);
-    
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepHashKeySelection, value);
-        }
-    
-    iHashKeySelectionInUse = value;
-    }
-
-
-TInt CAknFepSharedDataInterface::InputModeChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleInputModeGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-void CAknFepSharedDataInterface::HandleInputModeGSChange()
-    {
-    iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputMode);
-    }
-
-TInt CAknFepSharedDataInterface::InputTextLangGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleInputTextLanguageGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-void CAknFepSharedDataInterface::HandleInputTextLanguageGSChange()
-    {
-    iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputLanguage);
-    ESubVariantFlag subVariant = AknLayoutUtils::SubVariant();
-    if((AknLayoutUtils::Variant() == EApacVariant)
-        && ((subVariant == EPrcSubVariant)
-        || (subVariant == EHongKongSubVariant)
-        || (subVariant == ETaiwanSubVariant)))
-        {
-        iFepManager->SetFlag(CAknFepManager::EFlagNewSharedDataInputMode);
-        }
-    }
-
-
-TInt CAknFepSharedDataInterface::PredictiveTextSettingChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextSettingGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-TInt CAknFepSharedDataInterface::JapanesePredictiveTextSettingChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleJapanesePredictiveTextSettingGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-TInt CAknFepSharedDataInterface::QwertyModeChangeNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleQwertyModeChangeNotification();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextSettingGSChange()
-    {
-    TInt value = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepPredTxtFlagExtension, value);
-        }
-    TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-    switch(layout)
-        {
-        case EPtiKeyboardNone:
-            break;
-      	case EPtiKeyboard12Key:
-            value &= EKeyboardStyle12Key;
-            break;
-        case EPtiKeyboardHalfQwerty:
-            value &= EKeyboardStyleHalfQwerty;
-            break;            
-      	case EPtiKeyboardQwerty4x12:
-      	case EPtiKeyboardQwerty4x10:
-      	case EPtiKeyboardQwerty3x11:      	
-      	case EPtiKeyboardCustomQwerty:
-            value &= EKeyboardStyleQwerty;
-            break;
-      	default:
-      	    break;
-        }
-    if (value > 0)
-    	{
-    	value = 1;
-    	}
-#else
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepPredTxtFlag, value);
-        }
-#endif
-    iFepManager->SetWesternPredictive(value);
-    }
-
-void CAknFepSharedDataInterface::HandleJapanesePredictiveTextSettingGSChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepJapanesePredTxtFlag, value);
-        }
-    iFepManager->SetJapanesePredictive(value);
-    }
-
-void CAknFepSharedDataInterface::HandleQwertyModeChangeNotification()
-    {
-    TInt value = 0;
-    iQwertyModeStatusProperty.Get(value);
-    iFepManager->SetQwertyMode(value);
-    }
-
-TInt CAknFepSharedDataInterface::NumberModeChangesGSNotification()
-    {
-    iFepManager->NumberModeChangeGSNotification();
-    return KErrNone;
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-//
-//Intensionally not called methods
-// JapanesePredictiveTextSettingChangeGSNotification()
-// MultiTapTimerChangeGSNotification()
-// JapaneseQwertyFlagsChangeGSNotification()
-// PredictiveTextAutoCompleteSettingChangeGSNotification() - Autocompletion feature
-// 
-TInt CAknFepSharedDataInterface::HandleGenericRepositoryChange(TAny* aPtr)
-    {
-    CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
-    TInt error = KErrNone;
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepChineseInputMode)
-        {
-        error = InputModeChangeGSNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLang)
-        {
-        error = InputTextLangGSNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlag)
-        {
-        error = PredictiveTextSettingChangeGSNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
-        {
-        error = PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepTypingCorrectionLevel)
-        {
-        error = PredictiveTextTypingCorrectionLevelChangeNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepNumberCandidateFlag)
-        {
-        error = PredictiveTextNumberCandidateSettingChangeNotification(aPtr);
-        }
-    if(self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPrimaryCandidateFlag)
-        {
-        error = PredictiveTextPrimaryCandidateChangeNotification(aPtr);
-        }
-
-    return error;
-    }
-#endif
-TInt CAknFepSharedDataInterface::HandleRepositoryCallBack(TAny* aPtr)
-    {
-    CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    
-    if( self->iAknFepRepositoryWatcher && 
-        self->iAknFepRepositoryWatcher->IsGenericCenrepChange())
-        {
-        return HandleGenericRepositoryChange(aPtr);
-        }
-    else
-#endif        
-    if (self->iAknFepRepositoryWatcher)
-        {
-		 if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepHashKeySelection)
-        	{
-        	return HashKeySelectionNotification(aPtr);
-        	}
-        if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepChineseInputMode)
-            {
-            return InputModeChangeGSNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLang)
-            {
-            return InputTextLangGSNotification(aPtr);
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef FF_DUAL_LANGUAGE_SUPPORT
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepInputTxtLangSecondary)
-            {
-            return InputTextLangGSNotification(aPtr);
-            }
-#endif //FF_DUAL_LANGUAGE_SUPPORT
-#endif
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlag)
-            {
-            return PredictiveTextSettingChangeGSNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepJapanesePredTxtFlag)
-            {
-            return JapanesePredictiveTextSettingChangeGSNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepMultiTapTimer)
-            {
-            return MultiTapTimerChangeGSNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepJapaneseSpecialCharFlag)
-            {
-            return JapaneseQwertyFlagsChangeGSNotification(aPtr);
-            }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
-            {
-            return PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
-            }          
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepAutoCompleteFlag)
-            {
-            return PredictiveTextAutoCompleteSettingChangeGSNotification(aPtr);
-            }          
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepTypingCorrectionLevel)
-            {
-            return PredictiveTextTypingCorrectionLevelChangeNotification(aPtr);
-            }          
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepNumberCandidateFlag)
-            {
-            return PredictiveTextNumberCandidateSettingChangeNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPrimaryCandidateFlag)
-            {
-            return PredictiveTextPrimaryCandidateChangeNotification(aPtr);
-            }
-        else if (self->iAknFepRepositoryWatcher->ChangedKey() == KAknFepPredTxtFlagExtension)
-            {
-            return PredictiveTextSettingChangeGSNotification(aPtr);
-            }          
-#endif
-        }
-
-    return KErrNone;
-    }
-    
-TInt CAknFepSharedDataInterface::HandleLocaleRepositoryCallBack(TAny* aPtr)    
-	{
-	CAknFepSharedDataInterface *self = STATIC_CAST(CAknFepSharedDataInterface*, aPtr);
-
-	if(self->iAknFepLocaleRepositoryWatcher)
-	    {
-        if (self->iAknFepLocaleRepositoryWatcher->ChangedKey() == KSettingsDefaultNumberMode
-        ||  self->iAknFepLocaleRepositoryWatcher->ChangedKey() == KSettingsIndicDefaultNumberMode)
-		    {
-		    return self->NumberModeChangesGSNotification();
-		    }
-	    }    
-	return KErrNone;	
-	}
-
-CAknFepSharedDataInterface::CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty)
-    :
-    CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-CAknFepSharedDataInterface::CSubscriber::~CSubscriber()
-    {
-    Cancel();
-    }
-
-void CAknFepSharedDataInterface::CSubscriber::SubscribeL()
-    {
-    if (!IsActive())
-        {
-        iProperty.Subscribe(iStatus);
-        SetActive();
-        }
-    }
-
-void CAknFepSharedDataInterface::CSubscriber::StopSubscribe()
-    {
-    Cancel();
-    }
-
-void CAknFepSharedDataInterface::CSubscriber::RunL()
-    {
-    if (iStatus.Int() == KErrNone)
-        {
-        iCallBack.CallBack();
-        SubscribeL();
-        }
-    }
-
-void CAknFepSharedDataInterface::CSubscriber::DoCancel()
-    {
-    iProperty.Cancel();
-    }
-    
-    
-TInt CAknFepSharedDataInterface::EditSubmenuInUse() const
-    {
-    TInt value = 0;				
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepHashKeySelection, value);
-        }       
-    
-    return value;    
-    }
-    
-    
-    
-TInt CAknFepSharedDataInterface::HashKeySelectionInUse()
-    {
-    // This is never used in qwerty modes.
-    if (QwertyInputMode())
-    	{
-    	return 0;
-    	}
-    	    	
-    TInt value = 0;     	    		    	
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepHashKeySelection, value);
-        }        
- 
-    return iHashKeySelectionInUse;
-    }   
-    
-
-CAknFepRepositoryWatcher* CAknFepRepositoryWatcher::NewL(
-    const TUid aUid,
-    const TUint32 aKey,
-    CCenRepNotifyHandler::TCenRepKeyType aKeyType,
-    TCallBack aCallBack,
-    CRepository* aRepository)
-    {
-    CAknFepRepositoryWatcher* self = new(ELeave) CAknFepRepositoryWatcher(aUid, aKey, aCallBack, 
-                                                                          aRepository);
-
-    CleanupStack::PushL(self);
-    self->ConstructL(aKeyType);
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-CAknFepRepositoryWatcher* CAknFepRepositoryWatcher::NewL(
-    const TUid aUid,
-    TCallBack aCallBack,
-    CRepository* aRepository)
-    {
-    CAknFepRepositoryWatcher* self = new(ELeave) CAknFepRepositoryWatcher(aUid, 
-                           NCentralRepositoryConstants::KInvalidNotificationId, 
-                           aCallBack, aRepository);
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-CAknFepRepositoryWatcher::~CAknFepRepositoryWatcher()
-    {
-    if( iNotifyHandler )
-        {
-        iNotifyHandler->StopListening();
-        delete iNotifyHandler;
-        iNotifyHandler = NULL;
-        }
-    }
-
-CAknFepRepositoryWatcher::CAknFepRepositoryWatcher(
-    const TUid aUid,
-    const TUint32 aKey,
-    TCallBack aCallBack,
-    CRepository* aRepository)
-    :
-    iUid(aUid), iKey(aKey), iCallBack(aCallBack), iRepository(aRepository)
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    , iIsGeneric (EFalse)
-#endif    
-    {
-    }
-
-void CAknFepRepositoryWatcher::ConstructL(CCenRepNotifyHandler::TCenRepKeyType aKeyType)
-    {
-    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository, aKeyType, iKey);
-    iNotifyHandler->StartListeningL();
-    }
-
-void CAknFepRepositoryWatcher::ConstructL()
-    {
-    iNotifyHandler = CCenRepNotifyHandler::NewL(*this, *iRepository);
-    iNotifyHandler->StartListeningL();
-    }
-
-TUint32 CAknFepRepositoryWatcher::ChangedKey()
-    {
-    return iChangedKey;
-    }
-
-void CAknFepRepositoryWatcher::HandleNotifyInt(TUint32 aKey, TInt aNewValue)
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("AknFep: HandleNotifyInt aKey=%d, aNewValue=%d"), aKey, aNewValue);
-#endif
-    iChangedKey = aKey;
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    iIsGeneric = EFalse;
-#endif    
-    iCallBack.CallBack();
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
-    }
-
-void CAknFepRepositoryWatcher::HandleNotifyError(TUint32 /*aKey*/, TInt /*aError*/, CCenRepNotifyHandler* /*aHandler*/)
-    {
-    }
-
-/*
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepRepositoryWatcher::HandleNotifyGeneric(TUint32 aId)
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("AknFep: HandleNotifyGeneric aId=%d"), aId);
-#endif  
-    iChangedKey = aId;
-    iIsGeneric = ETrue;
-    iCallBack.CallBack();      
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;
-    }
-#else*/
-
-void CAknFepRepositoryWatcher::HandleNotifyGeneric(TUint32 aId)
-    {
-#ifdef _DEBUG
-    RDebug::Print(_L("AknFep: HandleNotifyGeneric aId=%d"), aId);
-#endif  
-    iChangedKey = aId;
-    iCallBack.CallBack();
-    iChangedKey = NCentralRepositoryConstants::KInvalidNotificationId;  
-    }
-//#endif
-
-/**
- * Multitap timer value. 
- * Replaces the constant KMultiTapTimeoutMS in Japanese variant.
- *
- * @since 3.0
- * @return Value of KAknFepMultiTapTimer setting.
- */
-TInt CAknFepSharedDataInterface::MultiTapTimer() const
-    {
-    TInt value = 1000000;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepMultiTapTimer, value);
-        }
-    return value;
-    }
-    
-/**
- * Change notification for Multitap timer. 
- *
- * @since 3.0
- * @return return KErrNone if aObj isn't NULL
- *         return KErrArgument if aObj is NULL
- */
-TInt CAknFepSharedDataInterface::MultiTapTimerChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleMultiTapTimerChangeGSNotification();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-/**
- * Handle change notification for Multitap timer. 
- *
- * @since 3.0
- */
-void CAknFepSharedDataInterface::HandleMultiTapTimerChangeGSNotification()
-    {
-    TInt value = MultiTapTimer();
-    iFepManager->SetMultiTapTimer(value);
-    }
-
-/**
- * Japanese Qwerty Flags value. 
- * Replaces the constant KAknFepJapaneseSpecialCharFlag in Japanese variant.
- *
- * @since 3.0
- * @return Value of KAknFepJapaneseSpecialCharFlag setting.
- */
-TInt CAknFepSharedDataInterface::JapaneseQwertyFlags() const
-    {
-    TInt value = 0x000F;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
-        }
-    return value;
-    }
-    
-/**
- * Change notification for Japanese Qwerty Flags. 
- *
- * @since 3.0
- * @return return KErrNone if aObj isn't NULL
- *         return KErrArgument if aObj is NULL
- */
-TInt CAknFepSharedDataInterface::JapaneseQwertyFlagsChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleJapaneseQwertyFlagsChangeGSNotification();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-
-/**
- * Handle change notification for Japanese Qwerty Flags. 
- *
- * @since 3.0
- */
-void CAknFepSharedDataInterface::HandleJapaneseQwertyFlagsChangeGSNotification()
-    {
-    TInt value = JapaneseQwertyFlags();
-    iFepManager->SetJapaneseQwertyFlags(value);
-    }
-
-/**
- * Returns a value of current clear direction.
- *
- * @since 3.2
- * @return Value of KAknFepClearDirection setting.
- */
-TInt CAknFepSharedDataInterface::ClearDirection() const
-    {
-    TInt value = EClearDirectionLeft;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepClearDirection, value);
-        }
-    return value;
-    }
-
-/**
- * Set a value of current clear direction.
- *
- * @since 3.2
- * @param aValue new value set to Clear Direction shared data item which
- *               represents the direction currently being used
- */
-void CAknFepSharedDataInterface::SetClearDirection(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepClearDirection, aValue);
-        }
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TInt CAknFepSharedDataInterface::HandleKeyboardLayoutChangeNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandleKeyboardLayoutChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }
-#endif
-    
-    
-void CAknFepSharedDataInterface::SetPredictiveTextAutoCompleteOn()
-    {
-    if (iAknFepRepository)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        //Set autocomplete flag only for the current keyboard layout type. Otherwise,
-        //by simply setting to "1", we los information on autocompletion settings
-        //of other keyboard types.
-        TPtiKeyboardType currentKeyboardLayoutlayout = (TPtiKeyboardType)KeyboardLayout();
-        TInt autocompletionSetting = 0;
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, autocompletionSetting);
-        switch(currentKeyboardLayoutlayout)
-            {
-            case EPtiKeyboardNone:
-                break;
-            case EPtiKeyboard12Key:
-                autocompletionSetting |= EKeyboardStyle12Key;
-                break;
-            case EPtiKeyboardQwerty4x12:
-            case EPtiKeyboardQwerty4x10:
-            case EPtiKeyboardQwerty3x11:
-            case EPtiKeyboardHalfQwerty:
-            case EPtiKeyboardCustomQwerty:
-                autocompletionSetting |= EKeyboardStyleQwerty;
-                break;
-            default:
-                break;
-            }
-        iAknFepRepository->Set(KAknFepAutoCompleteFlag, autocompletionSetting);
-#else
-        iAknFepRepository->Set(KAknFepAutoCompleteFlag, 1);
-#endif
-        }
-    }    
-
-
-void CAknFepSharedDataInterface::ResetPredictiveTextAutoCompleteOn()
-    {
-    if (iAknFepRepository)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        //Reset autocomplete flag only for the current keyboard layout type. Otherwise,
-        //by simply setting to "0", we lose information on autocompletion settings
-        //of other keyboard types.
-        TPtiKeyboardType currentKeyboardLayoutlayout = (TPtiKeyboardType)KeyboardLayout();
-        TInt autocompletionSetting = 0;
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, autocompletionSetting);
-        switch(currentKeyboardLayoutlayout)
-            {
-            case EPtiKeyboardNone:
-                break;
-            case EPtiKeyboard12Key:
-                autocompletionSetting &= ~EKeyboardStyle12Key;
-                break;
-            case EPtiKeyboardQwerty4x12:
-            case EPtiKeyboardQwerty4x10:
-            case EPtiKeyboardQwerty3x11:
-            case EPtiKeyboardHalfQwerty:
-            case EPtiKeyboardCustomQwerty:
-                autocompletionSetting &= ~EKeyboardStyleQwerty;
-                break;
-            default:
-                break;
-            }
-        iAknFepRepository->Set(KAknFepAutoCompleteFlag, autocompletionSetting);
-#else
-        iAknFepRepository->Set(KAknFepAutoCompleteFlag, 0);
-#endif
-        }
-    }
-    
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
-        }
-    iFepManager->SetAutoCompletionState(value);
-    }
-    
-    
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj)
-    {
-    if (aObj)
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextAutoCompleteSettingGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }    
-
-#endif	//RD_INTELLIGENT_TEXT_INPUT
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepSharedDataInterface::SetFnKeyState(TInt aState)
-    {
-    RProperty::Set(KPSUidAknFep,KAknFepFnKeyState, aState);
-    }
-    
-TInt CAknFepSharedDataInterface::GetFnKeyState()
-    {
-    TInt state = 0;
-    RProperty::Get(KPSUidAknFep,KAknFepFnKeyState, state);
-    return state;
-    }
-void CAknFepSharedDataInterface::HandleKeyboardLayoutChange()
-    {
-    TInt value = 0;
-    TPtiKeyboardType keyboardType;
-    iKeyboardLayoutStatusProperty.Get(value);
-    keyboardType = (TPtiKeyboardType)value;
-    iFepManager->SetKeyboardLayout(keyboardType);
-    iFepManager->SetFnKeyMappingState();
-#ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-    iFepManager->StopDisplayingMenuBar();
-#endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__
-    }
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-        TInt temp = 0;
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, temp);
-        switch(layout)
-            {
-            case EPtiKeyboardNone:
-                break;
-          	case EPtiKeyboard12Key:
-                temp &= EKeyboardStyle12Key;
-                break;
-            case EPtiKeyboardHalfQwerty:
-                temp &= EKeyboardStyleHalfQwerty;
-                break;
-          	case EPtiKeyboardQwerty4x12:
-          	case EPtiKeyboardQwerty4x10:
-          	case EPtiKeyboardQwerty3x11:          	
-          	case EPtiKeyboardCustomQwerty:
-                temp &= EKeyboardStyleQwerty;
-                break;
-          	default:
-          	    break;
-            }
-        value = ( temp ? 1 : 0);
-        }
-    return value;
-    }
-
-void CAknFepSharedDataInterface::HandlePredictiveTextAutoCompleteSettingGSChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
-        }
-    TPtiKeyboardType layout = (TPtiKeyboardType)KeyboardLayout();
-    switch(layout)
-        {
-        case EPtiKeyboardNone:
-            break;
-      	case EPtiKeyboard12Key:
-            value &= EKeyboardStyle12Key;
-            break;
-        case EPtiKeyboardHalfQwerty:    
-            value &= EKeyboardStyleHalfQwerty;
-            break;
-      	case EPtiKeyboardQwerty4x12:
-      	case EPtiKeyboardQwerty4x10:
-      	case EPtiKeyboardQwerty3x11:      	
-      	case EPtiKeyboardCustomQwerty:
-            value &= EKeyboardStyleQwerty;
-            break;
-      	default:
-      	    break;
-        }
-    if (value > 0)
-    	{
-    	value = 1;
-    	}
-    iFepManager->SetAutoCompletionState(value);
-    }
-    
-    
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteSettingChangeGSNotification(TAny* aObj)
-    {
-    if (aObj) 
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextAutoCompleteSettingGSChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-    }    
-/**
- * Queries the value of PredictiveText Typing Correction Level from shared data
- *
- * @return Typing Correction Level
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextTypingCorrectionLevel()
-	{
-	TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepTypingCorrectionLevel, value);
-        }
-    return value;
-	}
-
-
-/**
- * Sets the value of PredictiveText Typing Correction Level state to aCorrectionLevel in shared data 
-*/    
-void CAknFepSharedDataInterface::SetPredictiveTextTypingCorrectionLevel(TInt aCorrectionLevel)
-	{
-	if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepTypingCorrectionLevel, aCorrectionLevel);
-        }
-	}
-
-void CAknFepSharedDataInterface::HandlePredictiveTextTypingCorrectionLevelChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepTypingCorrectionLevel, value);
-        }
-    iFepManager->SetTypingCorrectionLevel(value);
-    }
-
- /**
- * Handles a change in predictive text Typing Correction Level setting.
-*/    
-TInt CAknFepSharedDataInterface::PredictiveTextTypingCorrectionLevelChangeNotification(TAny* aObj)
-	{
-	if (aObj) 
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextTypingCorrectionLevelChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-	}
-
-/**
- * Queries the value of PredictiveText Number Candidate Shown state to be On from shared data
- *
- * @return 1 for shown or 0 for not shown
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextNumberCandidateShown()
-	{
-	TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepNumberCandidateFlag, value);
-        }
-    return value;
-	}
-
-
-/**
- * Sets the value of PredictiveText Number Candidate Shown state to 1 in shared data - this
- * is used to represent predictive text Number Candidate Shown being shown.
-*/    
-void CAknFepSharedDataInterface::SetPredictiveTextNumberCandidateShown()
-	{
-	if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepNumberCandidateFlag, 1);
-        }
-	}
-
-
-/**
- * Sets the value of PredictiveText Number Candidate Shown state to 0 in shared data - this
- * is used to represent predictive text Number Candidate Shown being not shown.
-*/    
-void CAknFepSharedDataInterface::ResetPredictiveTextNumberCandidateShown()
-	{
-	if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepNumberCandidateFlag, 0);
-        }
-	}
-
-void CAknFepSharedDataInterface::HandlePredictiveTextNumberCandidateSettingChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepNumberCandidateFlag, value);
-        }
-    iFepManager->SetNumberCandidateState(value);
-    }
-
-/**
- * Handles a change in predictive text Number Candidate Shown setting.
-*/    
-TInt CAknFepSharedDataInterface::PredictiveTextNumberCandidateSettingChangeNotification(TAny* aObj)
-	{
-	if (aObj) 
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextNumberCandidateSettingChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-	}
-	
-/**
-* Queries the value of PredictiveText Primary candidate setting from shared data
-*
-* @return Primary candidate setting(0 for Suggested or 1 for Exact)
-*/
-TInt CAknFepSharedDataInterface::PredictiveTextPrimaryCandidate()
-	{
-	TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, value);
-        }
-    return value;
-	}
-
-
-/**
-* Sets the value of PredictiveText Primary candidate setting state to aPrimaryCandidate in shared data 
-*/    
-void CAknFepSharedDataInterface::SetPredictiveTextPrimaryCandidate(TInt aPrimaryCandidate)
-	{
-	if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepPrimaryCandidateFlag, aPrimaryCandidate);
-        }
-	}
-/**
-* Handles a change in predictive text Primary candidate setting.
-*/   
-void CAknFepSharedDataInterface::HandlePredictiveTextPrimaryCandidateChange()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepPrimaryCandidateFlag, value);
-        }
-    iFepManager->SetPrimaryCandidate(value);
-    }
-
-/**
-* Handles a change in predictive text Typing Correction Level setting.
-*/    
-TInt CAknFepSharedDataInterface::PredictiveTextPrimaryCandidateChangeNotification(TAny* aObj)
-	{
-	if (aObj) 
-        {
-        static_cast<CAknFepSharedDataInterface*>(aObj)->HandlePredictiveTextPrimaryCandidateChange();
-        return KErrNone;
-        }
-    else
-        {
-        return KErrArgument;
-        }
-	}
-#else	// RD_INTELLIGENT_TEXT_INPUT
-
-TInt CAknFepSharedDataInterface::PredictiveTextAutoCompleteOn()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepAutoCompleteFlag, value);
-        }
-    return value;
-    }
-#endif    
-/**
- * Returns a value of HWR conversion on/off.
- *
- * @since 3.2
- * @return Value of KAknFepJapaneseHwrConversion setting.
- */
-TInt CAknFepSharedDataInterface::JapaneseHwrConversion() const
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
-        }
-    return (value & KJapHwrConversion)?
-                EJapaneseConversionOn : EJapaneseConversionOff;
-    }
-
-/**
- * Set a value of HWR conversion on/off.
- *
- * @since 3.2
- * @param aValue new value set to HWR conversion on/off shared data item
- */
-void CAknFepSharedDataInterface::SetJapaneseHwrConversion(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        TInt value;
-        iAknFepRepository->Get(KAknFepJapaneseSpecialCharFlag, value);
-        if (aValue == EJapaneseConversionOn)
-            {
-            value |= KJapHwrConversion;
-            }
-        else
-            {
-            value &= ~(KJapHwrConversion);
-            }
-        iAknFepRepository->Set(KAknFepJapaneseSpecialCharFlag, value);
-        }
-    }
-    
-TInt CAknFepSharedDataInterface::FepShowFsqPreviewStatus()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepShowFsqPreview, value);
-        }
-    return value;
-    }
-    
-    
-void CAknFepSharedDataInterface::SetFepShowFsqPreviewStatus(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepShowFsqPreview, aValue);
-        }
-    } 
-    
-TInt CAknFepSharedDataInterface::FepShowVkbPreviewStatus()
-    {
-    TInt value = 0;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepShowVkbPreview, value);
-        }
-    return value;
-    }
-    
-    
-void CAknFepSharedDataInterface::SetFepShowVkbPreviewStatus(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepShowVkbPreview, aValue);
-        }
-    } 
-    
-TInt CAknFepSharedDataInterface::FepLastUseVkbModeForLandscape()
-    {
-    TInt value = 4;
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepLastUseVkbMode, value);
-        }
-    return value;
-    }
-    
-    
-void CAknFepSharedDataInterface::SetFepLastUseVkbModeForLandscape(TInt aValue)
-    {
-    if (iAknFepRepository)
-        {
-        iAknFepRepository->Set(KAknFepLastUseVkbMode, aValue);
-        }
-    }           
-
-TBool CAknFepSharedDataInterface::AutoRotateEnabled()
-	{
-	TInt sensorState( 0 );    
-
-    if (iSensorRepository)
-        {
-        iSensorRepository->Get( KSenSettingsSensorsOn, sensorState );
-        }
-    if ( sensorState )
-        {
-        TInt turnCtrl = 0;
-        iSensorRepository->Get( KSenSettingsTurnCtrl, turnCtrl );
-        turnCtrl = turnCtrl >> 2;
-            
-        if ( turnCtrl ) 
-            {
-            return ETrue;
-            }
-        }
-    
-    return EFalse;
-	}       
-
-#ifdef	RD_INTELLIGENT_TEXT_INPUT
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-/**
-* Queries if numbers (and other characters found behind Fn) can be entered with long key press on QWERTY.
-*/
-TBool CAknFepSharedDataInterface::LongPressNumberEntryOnQwerty() const
-    {
-	TInt value = 0;
-      if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepLongPressNumberEntryOnQwerty, value);
-        }
-    return value;
-    }
-
-/**
-* Queries if copy-pasting with shift+softkeys is available also on QWERTY.
-*/
-TBool CAknFepSharedDataInterface::ShiftCopyPastingOnQwerty() const
-    {
-	TInt value = 0;
-      if (iAknFepRepository)
-        {
-        iAknFepRepository->Get(KAknFepShiftCopyPasteOnQwerty, value);
-        }
-    return value;
-    }
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__	
-#endif	// RD_INTELLIGENT_TEXT_INPUT
-
-#ifdef  RD_SCALABLE_UI_V2
-// ---------------------------------------------------------------------------
-// Get a value of current default on screen vkb.
-// It depends on input lanage is PRC/HW/TW Chinese.
-// ---------------------------------------------------------------------------
-//  
-TInt CAknFepSharedDataInterface::DefaultOnScreenVKB()
-    {
-    TInt value = 0;
-    switch( PenInputLanguage() )
-        {
-        case ELangPrcChinese:
-            {
-            iGsPenSettings->Get( KSettingsDefaultVkbPrc, value );
-            }
-            break;
-        case ELangHongKongChinese:
-            {
-            iGsPenSettings->Get( KSettingsDefaultVkbHk, value );
-            }
-            break;
-         case ELangTaiwanChinese:
-            {
-            iGsPenSettings->Get( KSettingsDefaultVkbTw, value );
-            }
-            break;
-         default:
-            break;
-        }
-    return value;
-    };
-#endif
-
-// End of File
--- a/fep/aknfep/src/AknFepThaiSCTSelector.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-/*
-* Copyright (c) 2003-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 CAknFepThaiSCTSelector methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepThaiSCTSelector.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-
-#include <uikon.hrh>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <e32std.h>
-
-#include <AknFepManager.h>
-CAknFepThaiSCTSelector::CAknFepThaiSCTSelector()
-    {
-    }
-
-CAknFepThaiSCTSelector::~CAknFepThaiSCTSelector()
-    {
-    }
-
-TInt CAknFepThaiSCTSelector::ThaiSCRResourceId(TUint aPrevGlyph, TInt aKey)//TInt aResID)
-    {
-    return(ThaiSctCharMap(ThaiGlyphType(aPrevGlyph), aKey));
-    }
-
-
-CAknFepThaiSCTSelector *CAknFepThaiSCTSelector::NewL()
-    {
-    
-    CAknFepThaiSCTSelector *self = new(ELeave)CAknFepThaiSCTSelector;
-    return (self);
-    
-    }
-
-TInt CAknFepThaiSCTSelector::ThaiSctCharMap(enum AknFepSCTThaiGlyphTypes aGlyphType, TInt aKey)
-    {
-    switch (aGlyphType)
-        {
-        case EAknFepThaiCharNonThai:
-        case EAknFepThaiCharNon:
-        case EAknFepThaiCharLV:
-        case EAknFepThaiCharFV1:
-        case EAknFepThaiCharFV2:
-        case EAknFepThaiCharFV3:
-        case EAknFepThaiCharBD:
-        case EAknFepThaiCharTone:
-        case EAknFepThaiCharAD1:
-        case EAknFepThaiCharAD2:
-        case EAknFepThaiCharAD3:
-            return((aKey==EPtiKeyStar) ? R_AKNFEP_SCT_THAI_STAR_COMMON : 
-                                         R_AKNFEP_SCT_THAI_0_COMMON);
-                
-        case EAknFepThaiCharCons:
-            return((aKey==EPtiKeyStar) ? R_AKNFEP_SCT_THAI_STAR_CONS : 
-                                         R_AKNFEP_SCT_THAI_0_CONS );
-            
-        case EAknFepThaiCharAV1:
-        case EAknFepThaiCharBV1:
-            return((aKey==EPtiKeyStar) ? R_AKNFEP_SCT_THAI_STAR_AV1_BV1 : 
-                                         R_AKNFEP_SCT_THAI_0_AV1_BV1);
-            
-        case EAknFepThaiCharAV2:
-        case EAknFepThaiCharBV2:
-            return((aKey==EPtiKeyStar) ? R_AKNFEP_SCT_THAI_STAR_AV2_BV2 : 
-                                         R_AKNFEP_SCT_THAI_0_AV2_BV2);
-            
-        case EAknFepThaiCharAV3:
-            return((aKey==EPtiKeyStar) ? R_AKNFEP_SCT_THAI_STAR_AV3 : 
-                                         R_AKNFEP_SCT_THAI_0_AV3);
-            
-        default:
-            return(0);
-        }
-    }
-
-AknFepSCTThaiGlyphTypes CAknFepThaiSCTSelector::ThaiGlyphType(TUint aGlyph)
-    {
-    if (aGlyph >= 0x0E01 && aGlyph <= 0x0E2E && aGlyph != 0x0E24 && aGlyph != 0x0E26 )
-        {
-        return(EAknFepThaiCharCons);
-        }
-    else if (aGlyph >= 0x0E40 && aGlyph <= 0x0E44)
-        {
-        return(EAknFepThaiCharLV);
-        }
-    else if (aGlyph == 0x0E30 || aGlyph == 0x0E32 || aGlyph == 0x0E33)
-        {
-        return(EAknFepThaiCharFV1);
-        }
-    else if (aGlyph == 0x0E45)
-        {
-        return(EAknFepThaiCharFV2);
-        }
-    else if (aGlyph == 0x0E24 || aGlyph == 0x0E26)
-        {
-        return(EAknFepThaiCharFV3);
-        }
-    else if (aGlyph == 0x0E38)
-        {
-        return(EAknFepThaiCharBV1);
-        }
-    else if (aGlyph == 0x0E39)
-        {
-        return(EAknFepThaiCharBV2);
-        }
-    else if (aGlyph == 0x0E3A)
-        {
-        return(EAknFepThaiCharBD);
-        }
-    else if (aGlyph >= 0x0E48 && aGlyph <= 0x0E4B)
-        {
-        return(EAknFepThaiCharTone);
-        }
-    else if (aGlyph == 0x0E4C || aGlyph == 0x0E4D)
-        {
-        return(EAknFepThaiCharAD1);
-        }
-    else if (aGlyph == 0x0E47)
-        {
-        return(EAknFepThaiCharAD2);
-        }
-    else if (aGlyph == 0x0E4E)
-        {
-        return(EAknFepThaiCharAD3);
-        }
-    else if (aGlyph == 0x0E34)
-        {
-        return(EAknFepThaiCharAV1);
-        }
-    else if (aGlyph == 0x0E31 || aGlyph == 0x0E36)
-        {
-        return(EAknFepThaiCharAV2);
-        }
-    else if (aGlyph == 0x0E35 || aGlyph == 0x0E37)
-        {
-        return(EAknFepThaiCharAV3);
-        }
-    else
-        {
-        return(EAknFepThaiCharNonThai);
-        }
-    
-    
-    }
-
-
-// End of file
-
-
--- a/fep/aknfep/src/AknFepUIInputStateEntryMiniQwertyCangJie.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStateEntryMiniQwertyCangJie methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUIInputStateEntryMiniQwertyCangJie.h"
-
-
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include <aknfep.rsg>
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-//const TInt KInputPaneLength = 32;
-//_LIT(KSep, "'");
-//_LIT(KReplace, "");
-
-TAknFepInputStateEntryMiniQwertyCangJie::TAknFepInputStateEntryMiniQwertyCangJie(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner,aUIContainer)                           
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();    
-    if(iOwner->FepMan()->CangJieMode() == EPtiEngineNormalCangjieQwerty)
-        {
-        ptiengine->SetInputMode(EPtiEngineNormalCangjieQwerty);            
-        }
-    else if(iOwner->FepMan()->CangJieMode() == EPtiEngineEasyCangjieQwerty)
-        {
-        ptiengine->SetInputMode(EPtiEngineEasyCangjieQwerty);            
-        }
-    else
-        {
-        ptiengine->SetInputMode(EPtiEngineAdvCangjieQwerty);            
-        }
-    ptiengine->SetCase(EPtiCaseLower);
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    }
-
-TBool TAknFepInputStateEntryMiniQwertyCangJie::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-    if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)//chr key to close UI
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() ||
-             CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() ||
-             CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState())
-        {
-    	iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-    	ret = ETrue;
-        }
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) ||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }   
-    else if (aKey == EKeyLeftShift || aKey ==EKeyLeftCtrl || aKey == EKeyRightCtrl)      
-        {
-    	iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey ==EKeyRightFunc)//fn
-    	{
-    	iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-    	ret = ETrue;
-    	}    
-    else if(aKey == EStdKeyBackspace)//should have long and short 
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            SetInputPaneToneMark();
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice3 || aKey == EStdKeySpace ) // Add for SK1
-        {
-        TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveCandidate);
-                }
-            }
-        } 
-    else if(aKey == EStdKeyUpArrow)
-        {
-    	if (candidatePane->IsFirstPage())
-            {
-            return ETrue;   
-            }
-        candidatePane->PreviousCandidatePage(); 
-        candidatePane->SetCandidateBuffer();
-        candidatePane->SelectFirstPhrase();
-        UpdateIndicator();
-        }
-    else if(aKey == EStdKeyDownArrow)
-        {
-        return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    else if( aKey == EStdKeyRightArrow )
-        {
-        if ( candidatePane->VisibleCandidateCount() != 1 )
-	        {
-	        iOwner->ChangeState( ECandidate );  
-	    	candidatePane->SelectNext(); 	
-	    	UpdateIndicator();
-	        }    	
-        }
-    else if ( aKey == EStdKeyLeftArrow )  
-    	{
-    	if ( candidatePane->VisibleCandidateCount()!= 1 )
-	    	{
-	    	iOwner->ChangeState( ECandidate );  
-	        candidatePane->SelectLastPhrase();	
-	        UpdateIndicator();
-	    	}
-    	}     
-    else if(aLength == EShortKeyPress && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-       
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                {
-               // iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-                iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                }
-            
-            TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                    uiContainer->CandidatePane()->IsFirstPage());
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);         
-            SetInputPaneToneMark();
-            uiContainer->InputPane()->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-            
-        if (ptiengine->GetPhoneticSpelling(1).Length() == 0)
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            }
-        }
-    else    
-        {
-        ret = TAknFepInputStateEntryQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-        
-    return ret;
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyCangJie::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryMiniQwertyCangJie::HandleCommandL( TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-     //   case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( text.Length( ) )
-                {
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL( );
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL( );
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUIInputStateEntryMiniQwertyPinyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,358 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the  TAknFepInputStateEntryMiniQwertyPinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUIInputStateEntryMiniQwertyPinyinPhrase.h"
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include <aknfep.rsg>
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TInt KManualChangeState = 0; 
-//const TUint16 KSegment = 0x0020;
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyPinyinPhrase::TAknFepInputStateEntryMiniQwertyPinyinPhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryMiniQwertyPinyinPhrase::TAknFepInputStateEntryMiniQwertyPinyinPhrase(
-     MAknFepUIManagerStateInterface* aOwner,MAknFepUICtrlContainerChinese* aUIContainer ):
-     TAknFepInputMiniQwertyPinyinPhraseBase( aOwner, aUIContainer)
-    {
-    iState = EEntry;
-    iOwner->PtiEngine()->SetInputMode( EPtiEnginePinyinPhraseQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    UIContainer()->SetLayout( MAknFepUICtrlContainerChinese::ELayoutKeystroke );
-    UIContainer()->FocusCandidatePane( ETrue );
-    UIContainer()->CandidatePane()->SelectFirstPhrase();
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    UIContainer()->EditPaneWindow()->DeactiveCursor();
-    UIContainer()->SetFepMan( iOwner->FepMan() );
-    // so that it could handle EKeyCBA1
-    iOwner->FepMan()->EntryPhrase( ETrue );
-    RefreshUI( ETrue );
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyPinyinPhrase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//     
-TBool TAknFepInputStateEntryMiniQwertyPinyinPhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    switch ( aKey )
-        {
-        case EStdKeyLeftFunc: //chr key
-        case EStdKeySpace:
-        case EStdKeyBackspace:
-        case EStdKeyEnter:
-            {
-            ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL( aKey,
-                aLength );
-            break;
-            }
-        case EKeyLeftShift:
-        case EKeyRightShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyRightFunc://fn 
-        case EKeyLeftFunc: // fn 
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            ret =EFalse;
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            if ( candidatePane->IsFirstPage() )
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( KManualChangeState );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                ret = ETrue;
-                }
-            else 
-                {
-                candidatePane->PreviousCandidatePage();
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirst();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL( aKey, aLength );
-            break;
-            }
-        case EStdKeyRightArrow:
-            {
-            if ( candidatePane->VisibleCandidateCount()!= 1 )
-                {
-                iOwner->ChangeState( ECandidate );
-                candidatePane->SelectNext();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if ( candidatePane->VisibleCandidateCount()!= 1 )
-                {
-                iOwner->ChangeState( ECandidate );
-                TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-                UIContainer()->CandidatePane()->SelectIndex( numbertotal - 1 );
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyDevice0: //select key 
-        case EStdKeyDevice3: // msk 
-            {
-            ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-               aKey, aLength );
-            break;
-            }
-        case EStdKeyDevice1:
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeySingleQuote:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            break;
-            }
-        default:
-               // chr + character 
-            if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-                    || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                ret = EFalse;
-                }
-            else if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() 
-                    || CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState()
-                    || CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState()
-                    ||!iOwner->IsValidChineseInputKeyQwerty( aKey ) ) //fn play error tone
-                    {
-                    iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                    }
-            else
-                 {
-                  ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-                     aKey, aLength );
-                 }
-            break;
-        }
-    return ret;
-    };
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditinigMiniQwertyPinyinPhrase::TAknFepInputStateEditinigMiniQwertyPinyinPhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEditinigMiniQwertyPinyinPhrase::TAknFepInputStateEditinigMiniQwertyPinyinPhrase( 
-    MAknFepUIManagerStateInterface* aOwner,MAknFepUICtrlContainerChinese* aUIContainer ):
-    TAknFepInputMiniQwertyPinyinPhraseBase( aOwner,aUIContainer )                           
-    {
-    iState = EMiniQwertyEdit;
-    iOwner->PtiEngine()->SetInputMode( EPtiEnginePinyinPhraseQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    RefreshUI( ETrue );
-    UIContainer()->FocusCandidatePane( EFalse );
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    UIContainer()->EditPaneWindow()->ActiveCursor();
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditinigMiniQwertyPinyinPhrase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateEditinigMiniQwertyPinyinPhrase::HandleKeyL( TInt aKey ,TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    if ( iOwner->FepMan()->GetComposChrFlag() && aKey == EStdKeyLeftFunc )
-        {
-        iOwner->FepMan()->SetComposChrFlag(EFalse);
-        return ETrue;
-        }
-    switch ( aKey )
-        {
-        //the following key is handled by the base class 
-        case EStdKeyLeftFunc: //chr key
-        case EStdKeySpace:
-        case EStdKeyBackspace:
-        case EStdKeyEnter:
-        case EStdKeyRightArrow:
-        case EStdKeyLeftArrow:
-            {
-            ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-                aKey, aLength);
-            break;
-            }
-        case EKeyLeftShift:
-        case EKeyRightShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyRightFunc://fn 
-        case EKeyLeftFunc: // fn 
-            {
-            if ( !uiContainer->EditPaneWindow()->GetAutoChangeStateFlag()
-                 || uiContainer->EditPaneWindow()->PhraseArray()->Count() != 0)
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-                ret = ETrue;
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                ret = EFalse;
-                }
-            break;
-            }
-    // inactive 
-        case EStdKeyUpArrow:
-            {
-            break;
-            }
-            //if the canidate is empty ,inactive;else candiniate selecting state
-        case EStdKeyDownArrow:
-            {
-            if ( 0 != candidatePane->VisibleCandidateCount() )
-                {
-                uiContainer->EditPaneWindow()->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                }
-            break;
-            }
-        case EStdKeyDevice0:
-        case EStdKeyDevice3:
-            {
-            ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-                aKey, aLength);
-            break;
-            }
-          
-        case EStdKeyDevice1:
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeySingleQuote:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            break;
-            }
-        default:
-            // chr + character 
-            if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-                || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-                {
-                iOwner->FepMan()->SetComposChrFlag( ETrue );
-                if ( !uiContainer->EditPaneWindow()->GetAutoChangeStateFlag()
-                      || uiContainer->EditPaneWindow()->PhraseArray()->Count() != 0)
-                    {
-                    iOwner->FepMan()->PlaySound(EAvkonSIDStandardKeyClick);
-                    return  ETrue;
-                    }
-                else
-                    {
-                    iOwner->FepMan()->TryCloseUiL();
-                    return EFalse;
-                    }
-                }
-            else
-                {
-                ret = TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-                    aKey, aLength);
-                break;
-                }
-        }
-    return ret;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyPinyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryMiniQwertyPinyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-    //    case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( text.Length( ) )
-                {
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL( );
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL( );
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditinigMiniQwertyPinyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEditinigMiniQwertyPinyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputMiniQwertyPinyinPhraseBase::HandleCommandL( aCommandId );
-    }
-// End Of File
-
--- a/fep/aknfep/src/AknFepUIInputStatePredictiveInputMiniQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive input phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiInputStatePredictiveInputMiniQwertyChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "aknfepuictrleditpane.h"
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase::
-TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    candidatePane->SelectFirstPhrase(); 
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase::HandleKeyL(TInt aKey, 
-                                                                          TKeyPressLength aLength)
-    {  
-    TInt selected = UIContainer()->CandidatePane()->SelectedIndex();
-    TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-    
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-    	return ETrue;
-        }
-    else if (iOwner->FepMan()->FnKeyState())
-        {
-        return ETrue;
-        }
-    else if(aKey == EStdKeyBackspace )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return ETrue;
-        }               
-    else if (aKey ==EKeyRightFunc)//fn key
-    	{
-    	iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-    	return ETrue;
-    	} 
-    else if ( aKey ==EStdKeySpace)
-    	{
-    	if (ECangJie ==iOwner->FepMan()->InputMode())
-    		{
-    		TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-	        if(text.Length())
-	            {            
-	            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	            fepMan->NewTextL(text);
-	            fepMan->CommitInlineEditL();
-	            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-	            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-	                {
-	                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-	                iOwner->FepMan()->TryCloseUiL();
-	                }
-	            else
-	                {
-	                iOwner->ChangeState(EPredictiveCandidate);
-	                }
-	            }
-	        return ETrue;
-    		}
-    	else 
-    		{
-            return ETrue; 
-    		}
-    	}	 	           
-    else if ( aKey == EKeyLeftShift || aKey == EKeyRightShift)
-        {
-//        iOwner->FepMan()->TryCloseUiL();
-//        return EFalse;
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }      
-    else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter )
-        {
-        TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveCandidate);
-                UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-                }
-            }
-        return ETrue;
-        }   
-    else if (aKey == EStdKeyLeftArrow)//in the same row
-        {
-        if (selected == 0)
-           {
-       	    UIContainer()->CandidatePane()->SelectIndex(numbertotal-1);
-           }
-        else
-           {
-       	    UIContainer()->CandidatePane()->SelectIndex(selected - 1);
-           } 
-        UIContainer()->CandidatePane()->SetHighlighted(ETrue);     
-        return ETrue;	
-        }
-    else if (aKey == EStdKeyRightArrow)//in the same row
-        {
-    	if (selected == numbertotal-1)
-    		{
-       	    UIContainer()->CandidatePane()->SelectIndex(0);
-    		}
-    	else
-    		{
-       	    UIContainer()->CandidatePane()->SelectIndex(selected + 1);
-    		}
-    	UIContainer()->CandidatePane()->SetHighlighted(ETrue);     
-        return ETrue;		
-        }        
-    else
-        {
-        return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        } 
-   // return EFalse;       
-    } 
-  
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-    case EAknSoftkeySelect:
-        //    case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA            
-        if ( text.Length() )
-            {
-            fepMan->NewTextL( text );
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-            if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                {
-                fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState( EPredictiveCandidate );
-                }
-            }
-        break;
-    default:
-        TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-        break;
-    }
-}
-// End of file
--- a/fep/aknfep/src/AknFepUiIndicInputManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1130 +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 TAknFepUIIndicInputManager methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiIndicInputManager.h"
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::ValidateInput
-
-// This function validates the input text given by PtiEngine. This function
-// returns the resopnse code depending on the previous character, current input 
-// character and the next character. Depending on the response code apropriate 
-// action is taken for inputting the current inputed character. This function 
-// incorporates the logic for Devanagari alphabate input.  
-// -----------------------------------------------------------------------------
-
-
-TIndicInputResponse TAknFepUiIndicInputManager::ValidateInput( TInt  aKey, 
-										  TUint aPrevChar,
-										  TUint aCurrChar,
-										  TUint /*aNextChar*/, 
-										  TBool&  aIsHalantOrMatraAllowed,	
-										  TBool aIsStarKeyPressed, 
-										  TBool aIsKeyTimerExpired,
-										  TPtiTextCase& aNewCase, 
-										  TKeyPressLength /*aLength*/,
-										  TLanguage aLanguage,
-										  TBool aIsRakarPresent /* = EFalse*/,
-										  TBool aIsZWSPresent /* = EFalse */ 
-#ifdef RD_MARATHI
-										  , TBool aIsChandraAPresent /* = EFalse */
-#endif // RD_MARATHI
-										  )
-
-	{
-	TIndicInputResponse keyResponse =  EIndicInputResponseNone;
-
-	TPtiTextCase setcase  = EPtiCaseLower;
-	
-	TAknFepUiIndicInputManager::SetHalantOrMatraAllowed( aPrevChar,
-														aIsHalantOrMatraAllowed,
-														aIsKeyTimerExpired,
-														aLanguage );
-	
-	switch( aKey )
-		{
-		case EPtiKey1:
-			{
-			if( IsCharNukta( aCurrChar, aLanguage ) && 
-				( IsCharNuktaConsonant( aPrevChar, aLanguage ) ||
-					!IsCharBaseConsonant( aPrevChar, aLanguage ) ) )
-				{
-				keyResponse = EIndicInputResponseInvalid;
-				}
-#ifdef RD_MARATHI
-			else if( IsCharEyeLashRa( aCurrChar, aLanguage ) )
-				{
-				keyResponse = EIndicInputResponseInsertEyeLashRa;
-				}
-#endif // RD_MARATHI
-
-			else if ( IsCharEmpty( aPrevChar, aLanguage ) )
-				{
-				// The special characters present in key-1 have to be
-				// allowed. So the response is not set to digit directly
-				// But at the same time, skip the fallback modifiers.
-				if( IsCharModifier( aCurrChar, aLanguage ) )
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			else if( IsCharRakar( aCurrChar, aLanguage ) )
-				{
-				if( aIsHalantOrMatraAllowed )
-					{
-					keyResponse = EIndicInputResponseInsertRakar;
-					}
-				else
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			else if( IsCharRepha( aCurrChar, aLanguage ) )
-				{
-				if( IsRephaAllowed( aPrevChar, aLanguage ) ||
-					( aIsRakarPresent && !aIsKeyTimerExpired ) )
-					{
-					keyResponse = EIndicInputResponseInsertRepha;
-					}
-				else
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			else if ( IsCharOther( aPrevChar, aLanguage )
-				     || IsCharVirama( aPrevChar, aLanguage ) )	
-				{
-				// Since the response  cannot be set to digit
-				// directly here, validate the modifiers first.
-				if( IsCharModifier( aCurrChar, aLanguage ) )
-					{
-					if( !IsModifierAllowed( aPrevChar, aLanguage ) )
-						{
-						keyResponse = EIndicInputResponseInvalid;
-						}
-					}
-				}
-			else if ( IsCharModifier( aPrevChar, aLanguage ) )
-				{
-				// Unlike in earlier code, the response  cannot be set to
-				// Digit directly here. The special characters present in 
-				// key-1 have to be allowed. As a result, the fallback 
-				// modifiers need to be skipped.
-				if( IsCharModifier( aCurrChar, aLanguage ) )
-					{
-					if( !IsModifierAllowed( aPrevChar, aLanguage ) )
-						{
-						keyResponse = EIndicInputResponseInvalid;
-						}
-					}
-				else
-					{
-					if (  ! aIsHalantOrMatraAllowed  )
-						{
-						setcase = EPtiCaseUpper;	
-						}
-					else if ( IsCharVirama( aCurrChar, aLanguage ) )
-						{
-						keyResponse = EIndicInputResponseInsertZWS;
-						}	
-					}	
-				}
-#ifdef RD_MARATHI
-			else if( IsCharVirama( aCurrChar, aLanguage ) &&
-				aIsHalantOrMatraAllowed )
-				{
-				keyResponse = EIndicInputResponseInsertZWS;
-				}
-#endif // RD_MARATHI
-
-			// In cases where the response cannot be set to digit directly,
-			// each character in key-1 has to be validated. Example in an 
-			// Here we validate the Virama, Rakara and Repha
-			if( IsCharVirama( aCurrChar, aLanguage ) )
-				{
-				if( keyResponse != EIndicInputResponseInsertZWS )
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			else if( IsCharRakar( aCurrChar, aLanguage ) )
-				{
-				if( keyResponse != EIndicInputResponseInsertRakar )
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			else if( IsCharRepha( aCurrChar, aLanguage ) )
-				{
-				// In case of empty editor, all the modifiers, virama
-				// and rakar will be skipped. Even the Repha is to be skipped
-				if( keyResponse != EIndicInputResponseInsertRepha )
-					{
-					keyResponse = EIndicInputResponseInvalid;
-					}
-				}
-			}
-			break;
-	    
-	    case EPtiKey2:
-	    case EPtiKey3:
-	    	{
-    		if ( IsCharEmpty( aPrevChar, aLanguage )
-	    		|| IsCharAnVowel( aPrevChar, aLanguage )
-        		|| IsCharModifier( aPrevChar, aLanguage ) 
-#ifdef RD_MARATHI
-				|| ( aIsChandraAPresent && !aIsKeyTimerExpired )
-#endif // RD_MARATHI
-	    		)
-    			{
-	    		setcase = EPtiCaseUpper;
-	    		}
-	    	else if( IsCharVirama( aPrevChar, aLanguage ) )
-	    		{
-	    		setcase = EPtiCaseUpper;
-	    		
-	    		// Response code changed to EIndicInputResponseNone to avoid
-	    		// insertion of ZWS character for Vowels.
-	    		keyResponse = EIndicInputResponseNone;
-	    		}
-	    	else if ( IsCharOther( aPrevChar, aLanguage ) )
-	    		{
-	    		if ( aIsKeyTimerExpired || IsCharSpace( aPrevChar ) || ( ! aIsHalantOrMatraAllowed ) )
-	    			{
-	    			setcase = EPtiCaseUpper;	
-	    			}
-	    		}
-	    	else if ( IsCharMatra( aPrevChar, aLanguage ) )
-		    	{
-	    		if ( aIsKeyTimerExpired )
-	    			{
-	    			setcase = EPtiCaseUpper;	
-	    			}		    	
-		    	}		  
-	    	else if ( IsCharBaseConsonant( aPrevChar, aLanguage )
-		    		|| IsCharNukta( aPrevChar, aLanguage ) )
-			    {
-			    if ( aIsStarKeyPressed )
-			    	{
-					setcase = EPtiCaseUpper;	
-			    	}					
-				}
-#ifdef RD_MARATHI
-            if( IsCharChandraA( aCurrChar ) )
-				{
-				keyResponse = EIndicInputResponseInsertChandraA;
-				}
-#endif // RD_MARATHI
-	    	}
-	    	break;
-	    
-	    case EPtiKey4:
-	    case EPtiKey5:
-	    case EPtiKey6:
-	    case EPtiKey7:
-	    case EPtiKey8:
-	    case EPtiKey9:
-	    	{
-			if ( aIsStarKeyPressed )
-				{
-				if( IsCharBaseConsonant( aCurrChar, aLanguage )
-			       && ( IsCharBaseConsonant( aPrevChar, aLanguage ) || 
-			            IsCharNukta( aPrevChar, aLanguage ) ) )
-					{
-					keyResponse = EIndicInputResponseInsertZWSandLigature;
-					}
-				else if( IsCharBaseConsonant( aCurrChar, aLanguage )
-			       && IsCharVirama( aPrevChar, aLanguage ) )
-					{
-					keyResponse = EIndicInputResponseZWSandCharacter;
-					}
-				}
-			else if( IsCharVirama( aPrevChar, aLanguage ) )
-				{
-				keyResponse = EIndicInputResponseZWSandCharacter;	
-				}
-	    	}
-	    	break;
-	    
-		case EPtiKey0:
-			{
-			// Special ligatures added in key-0.
-			if( IsCharLigature( aCurrChar, aLanguage ) )
-				{
-				if ( aIsStarKeyPressed && 
-						IsCharBaseConsonant( aPrevChar, aLanguage ) )
-					{
-					keyResponse = EIndicInputResponseInsertViramaZWSandDirectLigature;
-					}
-				else if( IsCharVirama( aPrevChar, aLanguage ) && 
-						IsCharAtStartOfLigature( aCurrChar, aLanguage ) && 
-						!aIsZWSPresent )
-					{
-					keyResponse = EIndicInputResponseZWSandDirectLigature;
-					}
-				else
-					{
-					keyResponse = EIndicInputResponseInsertDirectLigature;
-					}
-				}
-			}
-	    break;
-
-	    default:
-		  	{
-			keyResponse = EIndicInputResponseIgnore;
-	      	}
-	    	break;
-			
-		}
-	aNewCase = setcase;
-	return keyResponse;
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharOther
-
-// This function checks for wheather the character is other character. The other 
-// character includes numbers, character of other languages and spaces.
-// -----------------------------------------------------------------------------
-
-TBool TAknFepUiIndicInputManager::IsCharOther( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( !( IsCharBaseConsonant( aChar, aLanguage )
-					||	IsCharNukta( aChar, aLanguage )
-					||	IsCharMatra( aChar, aLanguage )
-					||	IsCharAnVowel( aChar, aLanguage )
-					||	IsCharModifier( aChar, aLanguage )
-					||	IsCharVirama( aChar, aLanguage )
-					||  IsCharRakar( aChar, aLanguage )
-					||  IsCharRepha( aChar, aLanguage ) 
-					||	IsCharLigature( aChar, aLanguage ) 
-#ifdef RD_MARATHI
-					||	IsCharEyeLashRa( aChar, aLanguage ) 
-					||  IsCharChandraA( aChar )
-#endif
-					) )
-				{
-				result = ETrue;	
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );	
-	}	
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharEmpty
-
-// This function checks wheather the character is null
-// -----------------------------------------------------------------------------
-
-TBool TAknFepUiIndicInputManager::IsCharEmpty( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( aChar == 0 )
-				{
-				result = ETrue;	
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );	
-	}	
-
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharBaseConsonant
-
-// This function checks wheather the character is base consonant
-// -----------------------------------------------------------------------------
-
-TBool TAknFepUiIndicInputManager::IsCharBaseConsonant( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( ( aChar >= 0x0915 && aChar <= 0x0939 )
-					||( aChar >= 0x0958 && aChar <= 0x095F ) )
-				{
-				result = ETrue;							
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );	
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharNukta
-
-// This function checks wheather the character is Nukta.
-// -----------------------------------------------------------------------------
-
- TBool TAknFepUiIndicInputManager::IsCharNukta( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( aChar == 0x093C )
-				{
-				result = ETrue;	
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	
-	return( result );	
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharMatra
-
-// This function checks wheather the character is Nukta.
-// -----------------------------------------------------------------------------
-
-TBool TAknFepUiIndicInputManager::IsCharMatra( TUint aChar,  TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( ( aChar >= 0x093E && aChar <= 0x094C ) 
-					||( aChar == 0x0962 || aChar == 0x0963 ) )
-				{
-				result = ETrue;							
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharAnVowel
-
-// This function checks for wheather the character is Nukta.
-// -----------------------------------------------------------------------------
-
- TBool TAknFepUiIndicInputManager::IsCharAnVowel( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif
-			{
-			if ( ( aChar>=0x0904 && aChar<=0x0914 )
-					||( aChar==0x0960 || aChar==0x0961 ) )
-				{
-				result = ETrue;							
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharModifier
-
-// This function checks wheather the character is Modifier.
-// -----------------------------------------------------------------------------
-
- TBool TAknFepUiIndicInputManager::IsCharModifier( TUint aChar, TLanguage aLanguage )
-	{	
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( aChar>= 0x0901 && aChar <= 0x0903 )
-				{
-				result = ETrue;	
-				}				
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	
-	return( result );
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharVirama
-
-// This function checks wheather the character is Halant.
-// -----------------------------------------------------------------------------
-
-
- TBool TAknFepUiIndicInputManager::IsCharVirama( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		
-		case KLangHindiPhonetic:
-#endif
-			{
-			if ( aChar == 0x094D )
-				{
-				result = ETrue;	
-				}
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-		
-	return( result );
-	}		
-	
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::IsCharSpace
-
-// This function checks wheather the character is Space.
-// -----------------------------------------------------------------------------
-
-TBool TAknFepUiIndicInputManager::IsCharSpace( TUint aChar )
-	{
-	TBool result = EFalse;
-	
-	if ( aChar == ( 0x0020 ) )
-		{
-			result = ETrue;	
-		}
-	return( result );	
-	}
-	
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::SetHalantAllowed
-
-// This function checks wheather the Halant can be inputted at the current curssor
-// posiotion.
-// -----------------------------------------------------------------------------
-	
-void TAknFepUiIndicInputManager::SetHalantOrMatraAllowed( TUint aPrevChar, 
-													   	TBool& aViramaAllowed,
-													   	TBool aIsKeyTimerExpired,
-													   	TLanguage aLanguage )
-	{
-	if ( IsCharAnVowel( aPrevChar, aLanguage ) )
-		{
-		aViramaAllowed = EFalse;
-		}
-	else if ( IsCharBaseConsonant( aPrevChar, aLanguage ) || 
-		IsCharNukta( aPrevChar, aLanguage ) )
-		{
-		aViramaAllowed = ETrue;
-		}
-	if ( ( IsCharMatra( aPrevChar, aLanguage ) || 
-		IsCharOther( aPrevChar, aLanguage )  || 
-		IsCharVirama( aPrevChar, aLanguage ) ||
-		IsCharModifier( aPrevChar, aLanguage ) ) && aIsKeyTimerExpired )
-		{
-		// The new conditions are required as we are not making the response 
-		// to digit as before. We iterate through all the characters in key-1
-		// and skip the ones which are not required.
-		aViramaAllowed = EFalse;	
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepUiIndicInputManager::Virama
-
-// This function returns back the unicode value for Halant.
-// -----------------------------------------------------------------------------
-		
-TUint TAknFepUiIndicInputManager::Virama( TLanguage aLanguage )
-	{
-	TUint ret = 0;
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		case KLangHindiPhonetic:
-#endif		
-			{
-			ret = 0x094D;	
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-		
-	return( ret );	
-	}
-
-TBool TAknFepUiIndicInputManager :: IsIndicLangauge(TLanguage aInputLanguage)
-	{	
-	TBool ret = EFalse;
-	switch(aInputLanguage)
-		{
-		case ELangHindi:
-		case ELangMarathi:
-			ret = ETrue;
-		break;
-
-		default: /*Other Language*/
-		break;
-		}
-	return ret;
-	}
-
-TBool TAknFepUiIndicInputManager :: IsIndicDigitsSupported(TLanguage aInputLanguage)
-	{	
-	TBool ret = EFalse;
-	switch(aInputLanguage)
-		{
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		
-		case KLangHindiPhonetic:
-			ret = ETrue;
-		break;
-#endif
-		default:
-			TLanguage uiLanguage = User::Language();
-			switch(uiLanguage)
-				{
-				case ELangHindi:
-				case ELangMarathi:
-					ret = ETrue;
-				}
-		}
-	return ret;
-	}
-
-TBool TAknFepUiIndicInputManager::IsRephaAllowed( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			if ( IsCharBaseConsonant( aChar, aLanguage ) ||
-				 IsCharMatra( aChar, aLanguage ) )
-				{
-				result = ETrue;
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );
-	}
-
-TBool TAknFepUiIndicInputManager::IsCharRepha( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			if ( aChar == 0x0971 )
-				{
-				result = ETrue;
-				}
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-		
-	return( result );
-	}
-
-TUint TAknFepUiIndicInputManager::RaCharacter( TLanguage aLanguage )
-	{
-	TUint ret = 0;
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			ret = 0x0930;
-			}
-		break;
-		
-		// Other Language
-		default:
-		break;
-		}
-		
-	return( ret );
-	}
-
-void TAknFepUiIndicInputManager::GetRepha( TDes& aRepha, TLanguage aLanguage )
-	{
-	aRepha.Zero();
-	
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			TChar raChar( TAknFepUiIndicInputManager::RaCharacter( aLanguage ) );
-			TChar virama( TAknFepUiIndicInputManager::Virama( aLanguage ) );
-			aRepha.Append( raChar );
-			aRepha.Append( virama );
-			}
-			break;
-			
-		// Other Language
-		default:
-		break;
-		}
-	}
-
-TBool TAknFepUiIndicInputManager::IsCharRakar( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			if ( aChar == 0x0972 )
-				{
-				result = ETrue;
-				}
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-		
-	return( result );
-	}
-
-void TAknFepUiIndicInputManager::GetRakar( TDes& aRakar, TLanguage aLanguage )
-	{
-	aRakar.Zero();
-	
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			TChar virama( TAknFepUiIndicInputManager::Virama( aLanguage ) );
-			TChar raChar( TAknFepUiIndicInputManager::RaCharacter( aLanguage ) );
-			aRakar.Append( virama );
-			aRakar.Append( raChar );
-			}
-			break;
-			
-		// Other Language
-		default:
-		break;
-		}
-	}
-#ifdef RD_HINDI_PHONETIC_INPUT	
-TBool TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage(TLanguage aInputLanguage)
-	{
-	TBool ret = EFalse;
-	switch(aInputLanguage)
-		{
-		case KLangHindiPhonetic:
-			ret = ETrue;
-		break;
-		default:
-		break;
-		}
-	return ret;	
-	}
-#endif
-
-
-TBool TAknFepUiIndicInputManager::IsModifierAllowed( TUint aPrevChar, 
-		 											TLanguage aLanguage )
-	{
-	if( IsCharVirama( aPrevChar, aLanguage ) 		||
-			IsCharModifier( aPrevChar, aLanguage ) 	|| 
-			IsCharOther( aPrevChar, aLanguage ) )
-			{
-			return EFalse;
-			}
-
-	return ETrue;
-	}
-
-void TAknFepUiIndicInputManager::GetLigature( TDes& aLigature, 
-									TUint aCurrChar, TLanguage aLanguage )
-	{
-	aLigature.Zero();
-	
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			switch( aCurrChar )
-				{
-				case 0x0973:
-					{
-					// Ksha
-					aLigature.Append( 0x0915 );
-					aLigature.Append( Virama( aLanguage ) );
-					aLigature.Append( 0x0937 );
-					}
-					break;
-
-				case 0x0974:
-					{
-					// Gya(n)
-					aLigature.Append( 0x091C );
-					aLigature.Append( Virama( aLanguage ) );
-					aLigature.Append( 0x091E );
-					}
-					break;
-
-				case 0x0975:
-					{
-					// Shra
-					aLigature.Append( 0x0936 );
-					aLigature.Append( Virama( aLanguage ) );
-					aLigature.Append( 0x0930 );
-					}
-					break;
-
-				case 0x0976:
-					{
-					// Tra
-					aLigature.Append( 0x0924 );
-					aLigature.Append( Virama( aLanguage ) );
-					aLigature.Append( RaCharacter( aLanguage ) );
-					}
-					break;
-
-				default:
-				break;
-				}
-			}
-			
-		// Other Language
-		default:
-		break;
-		}
-	}
-
-TBool TAknFepUiIndicInputManager::IsCharLigature( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			if ( aChar >= 0x0973 && aChar <= 0x0976 )
-				{
-				result = ETrue;	
-				}
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-
-	return( result );
-	}
-
-TBool TAknFepUiIndicInputManager::IsCharAtStartOfLigature( TUint aChar, 
-													TLanguage aLanguage)
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-			{
-			if( aChar == 0x0973 )
-				{
-				// Ksha is the first ligature in the key-map.
-				result = ETrue;
-				}
-				break;
-			default: /*Other Language*/
-			break;
-			}
-		}
-
-	return( result );
-	}
-
-#ifdef RD_HINDI_PHONETIC_INPUT		
-TInt TAknFepUiIndicInputManager ::MapCharacterToKeys(TUint aChar, TLanguage aLanguage)
-	{
-	TPtiKey ret = EPtiKeyNone;
-	if(  TAknFepUiIndicInputManager::IsCharOther( aChar, aLanguage ) 
-	  || TAknFepUiIndicInputManager::IsCharEmpty( aChar, aLanguage ))
-		{
-		ret = EPtiKey0;	
-		}
-	else if(TAknFepUiIndicInputManager::IsCharBaseConsonant( aChar, aLanguage ))
-		{
-		ret = EPtiKey4;	
-		}
-	else if(   TAknFepUiIndicInputManager::IsCharMatra( aChar,  aLanguage )
-			|| TAknFepUiIndicInputManager::IsCharAnVowel( aChar, aLanguage ))
-		{
-		ret = EPtiKey2;	
-		}
-	else if(   TAknFepUiIndicInputManager::IsCharNukta( aChar, aLanguage )
-			|| TAknFepUiIndicInputManager::IsCharModifier( aChar, aLanguage )
-			|| TAknFepUiIndicInputManager::IsCharVirama( aChar, aLanguage ))
-		{
-		ret = EPtiKey1;	
-		}
-	return ret;
-	}
-#endif
-
-TBool TAknFepUiIndicInputManager :: IsScriptDevanagari( TLanguage aInputLanguage )
-	{	
-	TBool ret = EFalse;
-	switch(aInputLanguage)
-		{
-		case ELangHindi:
-		case ELangMarathi:
-			ret = ETrue;
-		break;
-
-		default:
-		break;
-		}
-	return ret;
-	}
-
-TBool TAknFepUiIndicInputManager::IsToCommitCharSeq( TIndicInputResponse aResponse )
-    {
-    TBool result = EFalse;
-
-    switch( aResponse )
-        {
-        case EIndicInputResponseInsertZWSandLigature:
-        case EIndicInputResponseInsertViramaZWSandDirectLigature:
-            {
-            result = ETrue;
-            }
-            break;
-        default:
-            break;
-        }
-    return result;
-    }
-
-TBool TAknFepUiIndicInputManager::IsCharNuktaConsonant( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;	
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-		case ELangHindi:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		
-		case KLangHindiPhonetic:
-#endif		
-			{
-			if ( aChar == 0x0929 || 
-				aChar == 0x0931 || aChar == 0x0934 || 
-				( aChar >= 0x0958 && aChar <= 0x095F ) )
-				{
-				result = ETrue;
-				}
-			}
-			break;
-		default: /*Other Language*/
-			break;
-		}
-	return( result );
-	}
-
-#ifdef RD_MARATHI
-
-TBool TAknFepUiIndicInputManager::IsCharEyeLashRa( TUint aChar, TLanguage aLanguage )
-	{
-	TBool result = EFalse;
-	
-	switch( aLanguage )
-		{	
-		case ELangMarathi:
-			{
-			if ( aChar == 0x0977 )
-				{
-				result = ETrue;
-				}
-			}
-		break;
-		default: /*Other Language*/
-		break;
-		}
-		
-	return( result );
-	}
-
-void TAknFepUiIndicInputManager::GetEyeLashRa( TDes& aEyeLashRa, 
-											TLanguage aLanguage )
-	{
-	aEyeLashRa.Zero();
-	
-	switch( aLanguage )
-		{
-		case ELangMarathi:
-			{
-			TChar virama( TAknFepUiIndicInputManager::Virama( aLanguage ) );
-			aEyeLashRa.Append( 0x0931 );
-			aEyeLashRa.Append( virama );
-			aEyeLashRa.Append( ZERO_WIDTH_JOINER );
-			}
-		break;
-		// Other Language
-		default:
-		break;
-		}
-	}
-
-TBool TAknFepUiIndicInputManager::IsCharChandraA( TUint aChar )
-	{
-	// Since Chandra-A is specific to Marathi, we need not
-	// use the Language id check.
-	if ( aChar == 0x0978 )
-    	{
-    	return ETrue;
-    	}
-
-	return EFalse;
-	}
-
-void TAknFepUiIndicInputManager::GetChandraA( TDes& aChandraA, 
-											TBool aIsToGetSingleUnicodeValue /* = EFalse */ )
-	{
-	aChandraA.Zero();
-	
-	if( aIsToGetSingleUnicodeValue )
-		{
-		aChandraA.Append( 0x0978 );
-		}
-	else
-		{
-		aChandraA.Append( 0x0905 );
-		aChandraA.Append( 0x0945 );	
-		}
-	}
-
-#endif //RD_MARATHI
-
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-TBool TAknFepUiIndicInputManager::IsIndicDependantCharacter(TUint aChar, TLanguage aLanguage)
-	{
-	
-	return (TAknFepUiIndicInputManager::IsCharModifier(aChar, aLanguage)
-	 				|| TAknFepUiIndicInputManager::IsCharMatra(aChar, aLanguage)
-	  				|| TAknFepUiIndicInputManager::IsCharVirama(aChar, aLanguage)
-	  				|| TAknFepUiIndicInputManager::IsCharNukta(aChar, aLanguage));
-	  			
-	
-	}
-#endif //RD_INTELLIGENT_TEXT_INPUT
-//End of File
--- a/fep/aknfep/src/AknFepUiInputSAknFepUiInputStateCandidateQwertyStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
--- a/fep/aknfep/src/AknFepUiInputStateBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,195 +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 TAknFepInputStateBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateBase.h"
-#include "AknFepPanic.h"
-
-// CONSTANTS
-
-/**
- *  TAknFepInputStateBase class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::TAknFepInputStateBase
-// Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase::TAknFepInputStateBase(MAknFepUIManagerStateInterface* aOwner)
-    :iOwner(aOwner),
-    iState(ENull),
-    iData(0)
-    {
-    }
-
-/**
- * MPtiObserver interface.
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::KeyTimerExpired
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::KeyTimerExpired()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::LastWordInSelectionList
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::LastWordInSelectionList()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::FirstWordInSelectionList
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::FirstWordInSelectionList()
-    {
-    }
-
-/**
- *  TAknFepInputStateBase class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::HandleKeyL
-// Handling Keypress events
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateBase::HandleKeyL(TInt /*aKey*/, TKeyPressLength /*aLength*/)
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::HandleCommandL(TInt /*aCommandId*/)
-    {
-    }
-void TAknFepInputStateBase::HandleCommandL(TInt aCommandId, TInt /*aParam*/)
-    {
-    HandleCommandL(aCommandId);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::State
-// 
-// ---------------------------------------------------------------------------
-//
-TUIState TAknFepInputStateBase::State() const
-    {
-    return iState;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::CloseUI
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::CloseUI()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::InitializeStateL
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::InitializeStateL()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::operator=
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::operator=(const TAknFepInputStateBase& aState)
-    {
-    Mem::Copy(this, &aState, sizeof(TAknFepInputStateBase));
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::SetStarKeyFlag
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::SetStarKeyFlag( TBool aSet )
-	{
-	iIsStarKeyPressed = aSet;
-	}
-#ifdef RD_HINDI_PHONETIC_INPUT 
-// ---------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPhoneticMultitap::GetPhoneticLatinChar
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::GetPhoneticLatinChar(TChar& aChar)const
-	{
-	}
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT	
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::GetShortKeyPressTxtLength
-// 
-// ---------------------------------------------------------------------------
-//
-TInt TAknFepInputStateBase::GetShortKeyPressTxtLength()
-	{
-	return iShortKeyPressText.Length();
-	}
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateBase::SetShortKeyPressText
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateBase::SetShortKeyPressText(const TDesC& aText)
-	{
-	iShortKeyPressText.Zero();
-	iShortKeyPressText.Copy(aText);
-	}	
-#endif // RD_INTELLIGENT_TEXT_INPUT        
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidate.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 2002 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 CAknFepUIInputStateCandidate methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidate.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-
-
-///////////////////
-// Candidate state
-///////////////////
-
-TAknFepInputStateCandidate::TAknFepInputStateCandidate(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirst();
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    }
-
-
-TBool TAknFepInputStateCandidate::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if(aKey==EKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-    return TAknFepInputStateCandidateBase::HandleKeyL(aKey, aLength);
-    }
-
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateCandidateBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateBase.h"
-
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                         //CPtiEngine
-
-TAknFepInputStateCandidateBase::TAknFepInputStateCandidateBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-void TAknFepInputStateCandidateBase::HandleCommandL(TInt /*aCommandID*/)
-    {
-	CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable(ETrue);
-    }
-
-TBool TAknFepInputStateCandidateBase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if (aKey == EPtiKeyStar)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }   
-    if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EKeyOK)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length()) 
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateBase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateBase::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EKeyDownArrow)
-        {
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    return ETrue;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateBaseChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1120 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate base chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateBaseChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include <PtiEngine.h>                         //CPtiEngine
-
-#include <aknnotewrappers.h>                //CAknInformationNote 
-
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "aknfepzhuyinconvertion.h"
-#include "aknfepzhuyinkeyhandlerinterface.h"
-#include "AknFepZhuyinAnalyserDb.h"
-#include "AknFepZhuyinAnalyser.h"
-
-_LIT( KPinyinListSeparator, "'" );
-_LIT( KPinyinStar, "*" );
-_LIT( KPinyinTone0ValidStr, "\x02C9");
-_LIT( KPinyinTone1ValidStr, "\x02CA");
-_LIT( KPinyinTone2ValidStr, "\x02C7");
-_LIT( KPinyinTone3ValidStr, "\x02CB");
-_LIT( KPinyinTone4ValidStr, "\x02D9");
-
-const TText KPinyinTone0Valid = 0x02C9;
-const TText KPinyinTone1Valid = 0x02CA;
-const TText KPinyinTone2Valid = 0x02C7;
-const TText KPinyinTone3Valid = 0x02CB;
-const TText KPinyinTone4Valid = 0x02D9;
-const TInt KKey0Code = 48;
-const TInt KKey2Code = 50;
-const TInt KKey3Code = 51;
-const TInt KKey4Code = 52;
-const TInt KKey5Code = 53;
-const TInt KKey6Code = 54;
-const TInt KKey7Code = 55;
-const TInt KKey8Code = 56;
-const TInt KKey9Code = 57;
-
-const TInt KMaxKeystrokeCount = 100;
-const TInt KMaxPinyinLength = 60;
-
-const TInt KStarCount1 = 1;
-const TInt KStarCount2 = 2;
-const TInt KStarCount3 = 3;
-const TInt KStarCount4 = 4;
-const TInt KStarCount5 = 5;
-
-const TUint16 KSegment = 0x0020;
-
-_LIT( KKey0Num, "0");
-_LIT( KKey1Num, "1");
-_LIT( KKey2Num, "2");
-_LIT( KKey3Num, "3");
-_LIT( KKey4Num, "4");
-_LIT( KKey5Num, "5");
-_LIT( KKey6Num, "6");
-_LIT( KKey7Num, "7");
-_LIT( KKey8Num, "8");
-_LIT( KKey9Num, "9");
-_LIT( KPinyinSysSeparator, "\x002E");
-
-TAknFepInputStateCandidateBaseChinesePhrase::TAknFepInputStateCandidateBaseChinesePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    }
-
-void TAknFepInputStateCandidateBaseChinesePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    // it may be one of the 'valid' numbers..
-    MAknFepUICtrlCandidatePane* candidatePane =
-        UIContainer()->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeyCancel:
-            //  case (TUint16)EAknSoftkeyCancel: //the Cancle in soft CBA
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            HandleCommitL();
-            break;
-        default:
-            TAknFepInputStateCandidateBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-TBool TAknFepInputStateCandidateBaseChinesePhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    if ( aKey == EPtiKeyStar )
-        {
-        if ( fepMan->IsEnableKeyStar() )
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return EFalse;
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return ETrue;
-            }
-        }
-    if ( !(HandleVerticalNavigation( aKey, aLength )
-        || HandleHorizontalNavigation( aKey )) )
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex( aKey );
-        MAknFepUICtrlCandidatePane* candidatePane =
-            UIContainer()->CandidatePane();
-        MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-
-        TBool state = ETrue;
-        if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            popup->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            if ( candidatePane->SelectIndex( index, EFalse ) || aKey
-                == EKeyOK || aKey == EKeyCBA1 )
-                {
-                HandleCommitL();
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateBaseChinesePhrase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {
-//        if (candidatePane->SelectedIndex() == 0 && 
-//            candidatePane->IsFirstPage() )
-//            {
-//            return ETrue;
-//            }
-        
-        if(!candidatePane->SelectPrev())
-            {
-//            candidatePane->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {
-//        if (candidatePane->IsLastPage() && 
-//            (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-//            {
-//            return ETrue;
-//            }  
-                    
-        if(!candidatePane->SelectNext())
-            {
-//            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-        
-    if (response)
-        {
-        UpdateIndicator();
-        }   
-             
-    return response;
-    }
-TBool TAknFepInputStateCandidateBaseChinesePhrase::HandleVerticalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    MZhuyinKeyHandler* zhuyinKeyHandler = iOwner->ZhuyinKeyHandler();
-    
-    if (aKey == EKeyDownArrow)
-        {
-        if (candidatePane->IsLastPage())
-            {
-            return ETrue;
-            }
-        if ( iState != EPredictiveCandidate &&
-        		iState != EPredictiveInput )
-			{
-			if (candidatePane->NeedGetNewCandidatePage() )
-				{
-				if ( !iOwner->PtiEngine()->NextCandidatePage() )
-                {
-                if ( candidatePane->IsLastPage() )
-                    {
-                    iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                    return ETrue;
-                    }
-                }
-				else
-					{
-					CDesCArrayFlat* phraseCandidates =
-							candidatePane->CandidateArray();
-					RPointerArray<HBufC> list;
-					TRAP_IGNORE(
-					GetNewCandidatesL(iOwner->PtiEngine()->CandidatePage(), list);
-					for (TInt i = 0; i < list.Count(); ++i)
-                        {
-						phraseCandidates->AppendL( *(list[i]));
-						}
-					list.ResetAndDestroy(););
-					}
-				}          
-        	}       
-        candidatePane->NextCandidatePage();
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        if ( candidatePane->IsFirstPage() && iState != EPredictiveCandidate )
-            {
-            zhuyinKeyHandler->SetState(0);
-            iOwner->ChangeState(EZhuyinSequenceEdit);
-            return EFalse;
-            }
-        else if ( candidatePane->IsFirstPage() )
-        	{
-        	return ETrue;
-        	}
-        candidatePane->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-    UpdateIndicator();    
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateBaseChinesePhrase::HandleVerticalNavigation(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    
-    if (aKey == EKeyDownArrow)
-        {
-        TBool state = ETrue;
-        if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            popup->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            if (candidatePane->IsLastPage())
-                {
-                return ETrue;
-                }       
-            if ( iState != EPredictiveCandidate &&
-            		iState != EPredictiveInput )
-            	{
-            	if (candidatePane->NeedGetNewCandidatePage() )
-					{
-                if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                    {
-                    if ( candidatePane->IsLastPage() )
-                        {
-                        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                        return ETrue;
-                        }
-                    }
-                else
-                    {
-                    CDesCArrayFlat* phraseCandidates =
-                        candidatePane->CandidateArray( );
-                    RPointerArray<HBufC> list;
-                    TRAP_IGNORE(
-                    GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                    for (TInt i = 0; i < list.Count( ); ++i )
-                        {
-                        phraseCandidates->AppendL( *(list[i]) );
-                        }
-						list.ResetAndDestroy(););
-						}
-					}
-				}     
-            candidatePane->NextCandidatePage();
-            }
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        if (candidatePane->IsFirstPage() )
-            {
-            return ETrue;   
-            }       
-        candidatePane->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-    UpdateIndicator();    
-    return ETrue;
-    }
-
-void TAknFepInputStateCandidateBaseChinesePhrase::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-   
-   if (candidatePane->IsLastPage())
-       {
-       uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-       }
-   else
-   	   {
-   	   uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-   	   }
-    }    
-        
-// ---------------------------------------------------------
-// get the valid keystroke
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidateBaseChinesePhrase::GetValidkeystrokeL( )
-    {
-    TInt keyCode;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TBuf<1> keystroke;
-    TBuf<1> keystrokeTmp;
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer( );
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow( );
-
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray( );
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray( );
-
-    inEffectKeystrokeArray->Reset( );
-    inEffectKeystrokeArray->Compress( );
-
-    for (TInt i = 0; i < keystrokeArray->Count( ); ++i )
-        {
-        stringBeforeLength = 0;
-        stringAfterLength = 0;
-        keystroke.Copy( keystrokeArray->MdcaPoint( i ) );
-        if ( 0 == i )
-            {
-            if ( ( 0 == keystroke.Compare( KPinyinStar ) ) || ( 0
-                == keystroke.Compare( KPinyinListSeparator ) ) )
-                {
-                return;
-                }
-            }
-        else
-            {
-            keystrokeTmp.Copy( keystrokeArray->MdcaPoint( i - 1 ) );
-            if ( 0 == keystroke.Compare( KPinyinListSeparator ) )
-                {
-                if ( ( 0 != keystrokeTmp.Compare( KPinyinListSeparator ) )
-                    && ( 0 != keystrokeTmp.Compare( KPinyinStar ) ) )
-                    {
-                    inEffectKeystrokeArray->AppendL( keystroke );
-                    }
-                return;
-                }
-            }
-
-        if ( i >= 1 )
-            {
-            keystrokeTmp.Copy( keystrokeArray->MdcaPoint( i - 1 ) );
-            if ( ( 0 == keystroke.Compare( KPinyinStar ) ) && ( 0
-                == keystrokeTmp.Compare( KPinyinStar ) ) )
-                {
-                inEffectKeystrokeArray->AppendL( keystroke );
-                ptiengine->IncrementToneMark( ETrue );
-                }
-            else if ( ( 0 != keystrokeTmp.Compare( KPinyinStar ) ) && ( 0
-                == keystroke.Compare( KPinyinStar ) ) )
-                {
-                inEffectKeystrokeArray->AppendL( keystroke );
-                ptiengine->IncrementToneMark( ETrue );
-                }
-            else if ( ( 0 != keystroke.Compare( KPinyinStar ) ) && ( 0
-                == keystrokeTmp.Compare( KPinyinStar ) ) )
-                {
-                if ( !CheckSpellingOfPtiEngine( ) )
-                    {
-                    ptiengine->DeleteKeyPress( );
-                    DeleteTonMarkFromInEffectKeytrokeArray( );
-                    }
-                return;
-                }
-            }
-
-        if ( 0 != keystroke.Compare( KPinyinStar ) )
-            {
-
-            inEffectKeystrokeArray->AppendL( keystrokeArray->MdcaPoint( i ) );
-            GetKeystrokeCode( keyCode, keystroke );
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length( );
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)keyCode).Length( );
-            if ( stringBeforeLength == stringAfterLength )
-                {
-                inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count( )
-                    - 1 );
-                inEffectKeystrokeArray->Compress( );
-                return;
-                }
-            if ( 0 == keystroke.Compare( KPinyinListSeparator ) )
-                {
-                return;
-                }
-
-            if ( !CheckSpellingOfPtiEngine( ) )
-                {
-                ptiengine->DeleteKeyPress( );
-                inEffectKeystrokeArray->Delete( i );
-                return;
-                }
-            }
-        else
-            {
-            if ( i == keystrokeArray->Count( ) - 1 )
-                {
-                if ( !CheckSpellingOfPtiEngine( ) )
-                    {
-                    ptiengine->DeleteKeyPress( );
-                    DeleteTonMarkFromInEffectKeytrokeArray( );
-                    return;
-                    }
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// Check the Spelling of PtiEngine.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateBaseChinesePhrase::CheckSpellingOfPtiEngine( )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    TInt count = ptiengine->PhoneticSpellingCount( );
-
-    for (TInt i = 1; i <= count; ++i )
-        {
-        TPtrC spelling = ptiengine->GetPhoneticSpelling( i );
-        if ( KErrNotFound == spelling.Find( KPinyinListSeparator ) )
-            {
-            return ETrue;
-            }
-        }
-
-    return EFalse;
-    }
-
-void TAknFepInputStateCandidateBaseChinesePhrase::GetKeystrokeCode(
-    TInt& aKey, const TDesC& aKeystroke )
-    {
-    if ( 0 == aKeystroke.Compare( KKey0Num ) )
-        {
-        aKey = KKey0Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey1Num ) )
-        {
-        aKey = KKey0Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey2Num ) )
-        {
-        aKey = KKey2Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey3Num ) )
-        {
-        aKey = KKey3Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey4Num ) )
-        {
-        aKey = KKey4Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey5Num ) )
-        {
-        aKey = KKey5Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey6Num ) )
-        {
-        aKey = KKey6Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey7Num ) )
-        {
-        aKey = KKey7Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey8Num ) )
-        {
-        aKey = KKey8Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey9Num ) )
-        {
-        aKey = KKey9Code;
-        }
-    else if ( 0 == aKeystroke.Compare( KPinyinListSeparator ) )
-        {
-        aKey = KKey0Code;
-        }
-
-    }
-// ---------------------------------------------------------
-// clear the ptiengine keystroke;
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidateBaseChinesePhrase::ClearPtiEngineKeystroke( )
-    {
-    CDesCArrayFlat* inEffectKeystrokeArray = UIContainer()->PinyinPopupWindow()->InEffectKeystrokeArray( );
-
-    for (TInt i = 0; i < KMaxKeystrokeCount; ++i )
-        {
-        iOwner->PtiEngine()->DeleteKeyPress( );
-        }
-    inEffectKeystrokeArray->Reset( );
-    inEffectKeystrokeArray->Compress( );
-    }
-
-// ---------------------------------------------------------
-// delete tonmark from in effect keystroke array
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidateBaseChinesePhrase::DeleteTonMarkFromInEffectKeytrokeArray( )
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    TInt count = inEffectKeystrokeArray->Count() - 1;
-    TInt checkCount = 0;
-    for ( TInt i = count; i > 0 ; i-- )
-      {
-      if ( 0 == inEffectKeystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-        {
-        inEffectKeystrokeArray->Delete( i );
-        inEffectKeystrokeArray->Compress();
-        checkCount = checkCount + 1;
-        }
-      else
-        {
-        break;
-        }
-      }
-    
-    if ( checkCount > 0 )
-        {
-        if ( inEffectKeystrokeArray->Count() > 0 )
-            {
-            inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count() -1 );
-            }
-        iOwner->PtiEngine()->DeleteKeyPress();
-        }
-    }
-
-// ---------------------------------------------------------
-// get the valid keystroke
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidateBaseChinesePhrase::CheckTonemarkL( )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow( );
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray( );
-    CDesCArrayFlat* spelling = popup->OptimizeSpelling( );
-
-    TInt keystrokeStarCount = 0;
-    TInt validSpellCount = 0;
-    TInt i = 0;
-    TBuf<1> buf;
-
-    TBuf<1> lastSpellTonemark;
-    TBuf<1> tonmarkBuf0;
-    TBuf<1> tonmarkBuf1;
-    TBuf<1> tonmarkBuf2;
-    TBuf<1> tonmarkBuf3;
-    TBuf<1> tonmarkBuf4;
-    TBuf<KMaxPinyinLength> spellBuf;
-    tonmarkBuf0.Append( KPinyinTone0Valid );
-    tonmarkBuf1.Append( KPinyinTone1Valid );
-    tonmarkBuf2.Append( KPinyinTone2Valid );
-    tonmarkBuf3.Append( KPinyinTone3Valid );
-    tonmarkBuf4.Append( KPinyinTone4Valid );
-
-    if ( 0 == inEffectKeystrokeArray->Count( ) )
-        {
-        return;
-        }
-
-    for (i = inEffectKeystrokeArray->Count( ) - 1; i >= 0; i-- )
-        {
-        if ( 0 == inEffectKeystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-            {
-            keystrokeStarCount = keystrokeStarCount + 1;
-            }
-        else
-            {
-            break;
-            }
-        }
-
-    if ( 0 == keystrokeStarCount )
-        {
-        return;
-        }
-
-    switch ( keystrokeStarCount )
-        {
-        case KStarCount1:
-            buf.Copy( tonmarkBuf0 );
-            break;
-        case KStarCount2:
-            buf.Copy( tonmarkBuf1 );
-            break;
-        case KStarCount3:
-            buf.Copy( tonmarkBuf2 );
-            break;
-        case KStarCount4:
-            buf.Copy( tonmarkBuf3 );
-            break;
-        case KStarCount5:
-            buf.Copy( tonmarkBuf4 );
-            break;
-        default:
-            break;
-        }
-
-    spelling->Reset( );
-    spelling->Compress( );
-
-    ptiengine->GetPhoneticSpellingsL( *spelling );
-
-    for (i = 0; i < spelling->Count( ); ++i )
-        {
-        spellBuf.Copy( spelling->MdcaPoint( i ) );
-        TInt position = spellBuf.Find( KPinyinListSeparator );
-        if ( KErrNotFound == position )
-            {
-            lastSpellTonemark.Copy( spellBuf.Mid( spellBuf.Length( ) - 1, 1 ) );
-            if ( 0 == lastSpellTonemark.Compare( buf ) )
-                {
-                validSpellCount = 1;
-                break;
-                }
-            }
-        }
-
-    spelling->Reset( );
-    spelling->Compress( );
-
-    if ( validSpellCount > 0 )
-        {
-        return;
-        }
-
-    for (i = 0; i < keystrokeStarCount; ++i )
-        {
-        inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count( ) -1 );
-        }
-
-    ptiengine->DeleteKeyPress( );
-
-    if ( inEffectKeystrokeArray->Count( ) > 0 )
-        {
-        inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count( ) - 1 );
-        }
-    inEffectKeystrokeArray->Compress( );
-
-    ptiengine->DeleteKeyPress( );
-
-    while (inEffectKeystrokeArray->Count( ) > 0 )
-        {
-        spelling->Reset( );
-        spelling->Compress( );
-        ptiengine->GetPhoneticSpellingsL( *spelling );
-
-        for (i = 0; i < spelling->Count( ); ++i )
-            {
-            if ( KErrNotFound == spelling->MdcaPoint( i ).Find( KPinyinListSeparator ) )
-                {
-                spelling->Reset( );
-                spelling->Compress( );
-                return;
-                }
-            }
-        ptiengine->DeleteKeyPress( );
-        inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count( ) - 1 );
-        }
-
-    spelling->Reset( );
-    spelling->Compress( );
-    }
-
-TBool TAknFepInputStateCandidateBaseChinesePhrase::IsValid( const TDesC& aDesC, TInt aCount )
-    {
-    TBool lastIsToneMark = EFalse;
-    TBool ret = ETrue;
-    TInt charCount = aCount;
-    for ( TInt i = 0; i < aDesC.Length(); i++ )
-        {
-        if ( ( aDesC.Mid( i, 1 ) == KPinyinSysSeparator ) ||
-             ( aDesC.Mid( i, 1 ) == KPinyinListSeparator ) ||
-             ( *aDesC.Mid( i , 1 ).Ptr() == KPinyinTone0Valid ) ||
-             ( *aDesC.Mid( i , 1 ).Ptr() == KPinyinTone1Valid ) ||
-             ( *aDesC.Mid( i , 1 ).Ptr() == KPinyinTone2Valid ) ||
-             ( *aDesC.Mid( i , 1 ).Ptr() == KPinyinTone3Valid ) ||
-             ( *aDesC.Mid( i , 1 ).Ptr() == KPinyinTone4Valid ) )
-            {
-            if ( lastIsToneMark && charCount <= 0 )
-                {
-                ret = EFalse;
-                }
-            lastIsToneMark = ETrue;
-            charCount--;
-            }
-        else
-            {
-            lastIsToneMark = EFalse;
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateBaseChinesePhrase::HandleCommitL
-// Handle CBA1 or select event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateBaseChinesePhrase::HandleCommitL()
-    {
-    // it may be one of the 'valid' numbers..
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane =
-        UIContainer()->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if ( text.Length() )
-        {
-        //commit and show char in editor
-        if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-            {
-            fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else
-            {
-            TInt i = 0;
-            CDesCArrayFlat* keystroke =
-                UIContainer()->PinyinPopupWindow()->KeystrokeArray();
-            if ( keystroke->Count() != 0 && keystroke->Count()
-                > text.Length() )
-                {
-                TBuf<KMaxKeystrokeCount> seq;
-                for (i = 0; i < keystroke->Count(); ++i )
-                    {
-                    seq.Append( keystroke->MdcaPoint( i ) );
-                    }
-                TInt count = 0;
-
-                TBufC<KMaxKeystrokeCount> buf1;
-                TPtr ptr1 = buf1.Des();
-                TBufC<KMaxKeystrokeCount> keyseqBuf;
-                TPtr ptr2 = keyseqBuf.Des();
-                TBuf<KMaxKeystrokeCount> ptr2Left;
-                ptr2.Copy( seq );
-                if ( ptiengine->SelectedPhoneticSpelling() == 1 )
-                	{
-                    ptr1 = ptiengine->GetPhoneticSpelling(1);
-                	}
-                else
-                	{
-                    UIContainer()->InputPane()->GetText( ptr1 );
-                	}
-                TInt pos = 0;
-                TInt len = 0;
-
-                CDesCArray
-                    * chineseCharacterArrayKeystroke =
-                        UIContainer()->PinyinPopupWindow()->ChooseChineseCharacterArrayKeystroke();
-                chineseCharacterArrayKeystroke->Reset();
-                for (i = 0; i < ptr1.Length() && count < text.Length()
-                    && ptr2.Length() != 0; i++ )
-                    {
-                    if ( ptr1.Mid( i, 1 ) == KPinyinSysSeparator || ptr1.Mid(
-                        i, 1 ) == KPinyinListSeparator )
-                        {
-                        pos = i - len - count;
-                        if ( pos < 0 )
-                            {
-                            pos = 0;
-                            }
-
-                        if ( pos == ptr2.Length() )
-                            {
-                            pos = ptr2.Length() - 1;
-                            }
-
-                        if ( ptr2.Mid( pos, 1 ) == KPinyinListSeparator )
-                            {
-                            i++;
-                            pos += 1;
-                            chineseCharacterArrayKeystroke->AppendL(
-                                ptr2.Left( pos ) );
-                            ptr2 = ptr2.Mid( pos );
-                            }
-                        else
-                            {
-                            chineseCharacterArrayKeystroke->AppendL(
-                                ptr2.Left( pos ) );
-                            ptr2 = ptr2.Mid( pos );
-                            }
-                        len += pos;
-                        count++;
-                        }
-                    else if ( *ptr1.Mid( i, 1 ).Ptr() == KPinyinTone0Valid )
-                        {
-                        pos = i + 1 - len - count;
-                        len += pos;
-                        ptr2Left.Zero();
-                        ptr2Left.Copy( ptr2.Left( pos - 1 ) );
-                        ptr2Left.Append( KPinyinTone0ValidStr );
-                        chineseCharacterArrayKeystroke->AppendL( ptr2Left );
-                        ptr2 = ptr2.Mid( pos );
-                        count++;
-                        }
-                    else if ( *ptr1.Mid( i, 1 ).Ptr() == KPinyinTone1Valid )
-                        {
-                        pos = i + 2 - len - count;
-                        len += pos - 1;
-                        ptr2Left.Zero();
-                        ptr2Left.Copy( ptr2.Left( pos - 2 ) );
-                        ptr2Left.Append( KPinyinTone1ValidStr );
-                        chineseCharacterArrayKeystroke->AppendL( ptr2Left );
-                        ptr2 = ptr2.Mid( pos );
-                        count++;
-                        }
-                    else if ( *ptr1.Mid( i, 1 ).Ptr() == KPinyinTone2Valid )
-                        {
-                        pos = i + 3 - len - count;
-                        len += pos - 2;
-                        ptr2Left.Zero();
-                        ptr2Left.Copy( ptr2.Left( pos - 3 ) );
-                        ptr2Left.Append( KPinyinTone2ValidStr );
-                        chineseCharacterArrayKeystroke->AppendL( ptr2Left );
-                        ptr2 = ptr2.Mid( pos );
-                        count++;
-                        }
-                    else if ( *ptr1.Mid( i, 1 ).Ptr() == KPinyinTone3Valid )
-                        {
-                        pos = i + 4 - len - count;
-                        len += pos - 3;
-                        ptr2Left.Zero();
-                        ptr2Left.Copy( ptr2.Left( pos - 4 ) );
-                        ptr2Left.Append( KPinyinTone3ValidStr );
-                        chineseCharacterArrayKeystroke->AppendL( ptr2Left );
-                        ptr2 = ptr2.Mid( pos );
-                        count++;
-                        }
-                    else if ( *ptr1.Mid( i, 1 ).Ptr() == KPinyinTone4Valid )
-                        {
-                        pos = i + 5 - len - count;
-                        len += pos - 4;
-                        ptr2Left.Zero();
-                        ptr2Left.Copy( ptr2.Left( pos - 5 ) );
-                        ptr2Left.Append( KPinyinTone4ValidStr );
-                        chineseCharacterArrayKeystroke->AppendL( ptr2Left );
-                        ptr2 = ptr2.Mid( pos );
-                        count++;
-                        }
-                    }
-
-                TInt totalCount = 0;
-                for (i = 0; i < ptr1.Length(); i++ )
-                    {
-                    if ( (ptr1.Mid( i, 1 ) == KPinyinSysSeparator)
-                        || (ptr1.Mid( i, 1 ) == KPinyinListSeparator)
-                        || (*ptr1.Mid( i, 1 ).Ptr() == KPinyinTone0Valid)
-                        || (*ptr1.Mid( i, 1 ).Ptr() == KPinyinTone1Valid)
-                        || (*ptr1.Mid( i, 1 ).Ptr() == KPinyinTone2Valid)
-                        || (*ptr1.Mid( i, 1 ).Ptr() == KPinyinTone3Valid)
-                        || (*ptr1.Mid( i, 1 ).Ptr() == KPinyinTone4Valid) )
-                        {
-                        totalCount++;
-                        }
-                    }
-
-                if ( !((ptr1.Right( 1 ) == KPinyinListSeparator)
-                    || (*ptr1.Right( 1 ).Ptr() == KPinyinTone0Valid)
-                    || (*ptr1.Right( 1 ).Ptr() == KPinyinTone1Valid)
-                    || (*ptr1.Right( 1 ).Ptr() == KPinyinTone2Valid)
-                    || (*ptr1.Right( 1 ).Ptr() == KPinyinTone3Valid)
-                    || (*ptr1.Right( 1 ).Ptr() == KPinyinTone4Valid)) )
-                    {
-                    totalCount++;
-                    }
-
-                if ( totalCount > text.Length() )
-                    {
-                    CDesCArray
-                        * chineseCharacterArray =
-                            UIContainer()->PinyinPopupWindow()->ChooseChineseCharacterArray();
-                    chineseCharacterArray->Reset();
-                    for (i = 0; i < text.Length(); i++ )
-                        {
-                        chineseCharacterArray->AppendL( text.Mid( i, 1 ) );
-                        }
-                    //set key stroke
-                    CDesCArray* keyStroke =
-                        UIContainer()->PinyinPopupWindow()->KeystrokeArray();
-                    keyStroke->Reset();
-                    for (i = 0; i < ptr2.Length(); i++ )
-                        {
-                        keyStroke->AppendL( ptr2.Mid( i, 1 ) );
-                        }
-                    //set show stroke                               
-                    CDesCArray
-                        * showStroke =
-                            UIContainer()->PinyinPopupWindow()->ShowKeystrokeArray();
-                    showStroke->Reset();
-                    TInt pinyinStarCount = 0;
-                    for (i = 0; i < ptr2.Length(); )
-                        {
-                        pinyinStarCount = 0;
-                        if ( ptr2.Mid( i, 1 ) == KPinyinStar )
-                            {
-                            while (i < ptr2.Length() && ptr2.Mid( i, 1 )
-                                == KPinyinStar )
-                                {
-                                pinyinStarCount++;
-                                i++;
-                                }
-                            switch ( pinyinStarCount )
-                                {
-                                case 1:
-                                    showStroke->AppendL( KPinyinTone0ValidStr );
-                                    break;
-                                case 2:
-                                    showStroke->AppendL( KPinyinTone1ValidStr );
-                                    break;
-                                case 3:
-                                    showStroke->AppendL( KPinyinTone2ValidStr );
-                                    break;
-                                case 4:
-                                    showStroke->AppendL( KPinyinTone3ValidStr );
-                                    break;
-                                case 5:
-                                    showStroke->AppendL( KPinyinTone4ValidStr );
-                                    break;
-                                default:
-                                    break;
-                                }
-                            }
-                        else
-                            {
-                            showStroke->AppendL( ptr2.Mid( i, 1 ) );
-                            i++;
-                            }
-                        }
-                    fepMan->PinyinPhraseCreation( ETrue );
-                    ClearPtiEngineKeystroke();
-                    GetValidkeystrokeL();
-                    CheckTonemarkL();
-
-                    CDesCArrayFlat* inEffectKeystrokeArray =
-                        popup->InEffectKeystrokeArray();
-
-                    if ( inEffectKeystrokeArray->Count() == 0 || !IsValid(
-                        ptr1, text.Length() ) )
-                        {
-                        UIContainer()->SetControlInVisible( EFalse );
-                        popup->SetPhraseCreationState( ETrue );
-                        iOwner->ChangeState( EKeySequenceEdit );
-                        }
-                    else
-                        {
-                        popup->SetPhraseCreationState( ETrue );
-                        iOwner->ChangeState( ESpellingSelection );
-                        }
-                    }
-                else
-                    {
-                    CDesCArray* keyStroke =
-                        UIContainer()->PinyinPopupWindow()->KeystrokeArray();
-                    keyStroke->Reset();
-                    //commit and show char in editor
-                    fepMan->NewTextL( text );
-                    fepMan->CommitInlineEditL();
-                    fepMan->PinyinPhraseCreation( EFalse );
-                    if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                        {
-                        fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                        iOwner->FepMan()->TryCloseUiL();
-                        }
-                    else
-                        {
-                        iOwner->ChangeState( EPredictiveCandidate );
-                        }
-                    }
-                }
-            else
-                {
-                CDesCArray* keyStroke =
-                    UIContainer()->PinyinPopupWindow()->KeystrokeArray();
-                keyStroke->Reset();
-                //commit and show char in editor
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL();
-                fepMan->PinyinPhraseCreation( EFalse );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            }
-        }
-    else
-        {
-        // No candidates available. Back to Entry state.
-        iOwner->ChangeState( EEntry );
-        }
-    }
-
-void TAknFepInputStateCandidateBaseChinesePhrase::GetNewCandidatesL(const TDesC& aSource, 
-                                                    RPointerArray<HBufC>& aList)
-    {
-    TInt start = 0;
-    TInt length = 0;
-
-    for (TInt ii = 0; ii < aSource.Length(); ii++)
-        {
-        if (aSource[ii] == KSegment)
-            {
-            TPtrC segment(aSource.Ptr() + start, length);
-            aList.AppendL(segment.AllocL());
-            start += (length + 1);
-            length = 0;
-            }
-        else
-            {
-            length++;
-            }
-        }
-
-    if (length)
-        {
-        TPtrC segm(aSource.Ptr() + start, length);
-        aList.AppendL(segm.AllocL());
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateBasePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateCandidateBasePhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateBasePhrase.h"
-
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                         //CPtiEngine
-
-TAknFepInputStateCandidateBasePhrase::TAknFepInputStateCandidateBasePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateBasePhrase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if (aKey == EPtiKeyStar)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }   
-    if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EKeyOK)
-            {
-            TPtrC text = candidatePane->CurrentPhraseCandidate();
-            if(text.Length()) 
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateBasePhrase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateBasePhrase::HandleVerticalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    if (aKey == EKeyDownArrow)
-        {
-        candidatePane->NextCandidatePage();
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        candidatePane->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-    return ETrue;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateChinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Pinyin phrase predictive Qwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      //CPtiEngine
-
-// User includes
-#include "AknFepUiInputStateCandidateChinese.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateChinese::
-// TAknFepInputStateCandidateChinese
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateCandidateChinese::TAknFepInputStateCandidateChinese(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirst();
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateChinese::
-// HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateChinese::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey==EKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-        
-    if (aKey == EPtiKeyStar)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }   
-
-    if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EKeyOK)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length()) 
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    UpdateIndicator();
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-
-    return ETrue;
-    }  
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateChinese::
-// HandleHorizontalNavigation
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateChinese::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            ptiengine->NumberOfCandidates() == 0)
-            {
-            return ETrue;
-            }
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        
-        if (bufLength != KMaxCandidateCountFromCore &&
-            candidatePane->SelectedIndex() == (bufLength -1))
-            {
-			return ETrue;
-            }
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        response = ETrue;
-        }
-    
-    if (response) 
-        {
-        UpdateIndicator();
-        }
-        
-    return response;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateChinese::
-// HandleVerticalNavigation
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateChinese::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EKeyDownArrow)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() != 
-            KMaxCandidateCountFromCore)
-            {
-            return ETrue; 
-            }
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() == 0)
-            {
-            return ETrue;            
-            }
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    UpdateIndicator();
-
-    return ETrue;
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateChinese::
-// UpdateIndicator
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateChinese::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (bufLength != KMaxCandidateCountFromCore &&
-        candidatePane->SelectedIndex() == (bufLength -1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-#include <aknnotewrappers.h>
-#include "aknfepzhuyinconvertion.h"
-#include "aknfepzhuyinkeyhandlerinterface.h"
-#include <PtiUserDicEntry.h>
-
-const TInt KMaxBufLen = 100;
-const TInt KInputPhraseMaxLength = 7;
-
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-///////////////////
-// Candidate state
-///////////////////
-
-TAknFepInputStateCandidateChinesePhrase::TAknFepInputStateCandidateChinesePhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);    
-    UpdateIndicator();
-    UIContainer()->EditPaneWindow()->DisableCursor();
-    }
-
-TBool TAknFepInputStateCandidateChinesePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    
-    CDesCArrayFlat* zhuyinSymbols = uiContainer->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = uiContainer->PinyinPopupWindow()->ChineseCharsDisped();
-    CDesCArrayFlat* zhuyinSymbolsForChinese = uiContainer->PinyinPopupWindow()->ZhuyinSymbolsForChineseCharsDisped();
-    CDesCArrayFlat* candidateList = uiContainer->CandidatePane()->CandidateArray();
-    MZhuyinKeyHandler* zhuyinKeyHandler = iOwner->ZhuyinKeyHandler();
-    
-    TInt index = MapKeyToIndex(aKey);
-    
-    if(aKey == EKeyBackspace)
-        {
-        zhuyinKeyHandler->SetStatusChgFlag(MZhuyinKeyHandler::EFromCandidateToEntry);
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-    
-    // for fix bug when press left or right arrow play err-tone
-    if ( HandleVerticalNavigation( aKey ) || HandleHorizontalNavigation( aKey ) )
-        {
-        return ETrue;
-        }
-    
-    if ( aLength == EShortKeyPress && ( candidatePane->SelectIndex(index,EFalse) 
-        || aKey == EKeyOK || aKey ==  EKeyCBA1 ))
-        {
-        TPtrC text = candidatePane->CurrentPhraseCandidate();
-        if ( text.Length() == 0 )
-            {
-            return ETrue;
-            }
-        TBuf<KMaxBufLen> pinyinshown = UIContainer()->PinyinPopupWindow()->GetEEPContent();
-        TInt count = TZhuyinSymbolsMethods::GetChineseCount(pinyinshown);
-        if ( count > text.Length() )
-            {
-            fepMan->PhraseCreation(ETrue);
-            }
-        if ( fepMan->IsPhraseCreation( ) )
-            {
-            TBuf<KMaxBufLen> buf;
-            buf.Copy( text );
-            TBool commit = TZhuyinSymbolsMethods::AppendChineseChar( buf,
-                fepMan->ZhuyinAnalyser( ), zhuyinSymbols, chineseDisped,
-                zhuyinSymbolsForChinese );
-            TBool changeState = UpdateEEPContent();
-            if ( commit )
-                {
-                TBuf<KMaxBufLen> commitbuf;
-                TZhuyinSymbolsMethods::Convert2Des(chineseDisped, commitbuf);
-                fepMan->NewTextL(commitbuf);
-                fepMan->CommitInlineEditL();
-                AddPhraseToDB(commitbuf);
-                if ( chineseDisped->Count() < KInputPhraseMaxLength ||
-                    zhuyinSymbols->Count() == 0 )
-                    {
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-                    errnote->SetTone( CAknNoteDialog::EWarningTone );
-                    errnote->ExecuteLD( KMaxPhraseNote );
-                    fepMan->TryCloseUiL();
-                    }
-                popup->ResetStrokeArray();
-                }
-            else
-                {
-                editPane->SetCursorIndexOfKeystroke( 0 );
-                if ( changeState )
-                    {
-                    for ( TInt i = 0; i < candidateList->Count(); i++ )
-                        {
-                        if ( TZhuyinSymbolsMethods::IsZhuyinSymbol( 
-                            candidateList->MdcaPoint( i ) ) )
-                            {
-                            candidateList->Delete( i, 1 );
-                            break;
-                            }
-                        }
-                    if ( candidateList->Count() > 0 )
-                        {
-                        popup->SetChangeState( ETrue );
-                        iOwner->ChangeState( EEntry );
-                        }
-                    else
-                        {
-                        popup->SetChangeState( ETrue );
-                        iOwner->ChangeState( EZhuyinSequenceEdit );
-                        }
-                    }
-                else
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ChangeState( EZhuyinSequenceEdit );
-                    }
-                }
-            }
-        else
-            {
-            TBuf<KMaxBufLen> textbuf;
-            for ( TInt i = 0; i < chineseDisped->Count(); i++ )
-                {
-                textbuf.Append(chineseDisped->MdcaPoint(i));
-                }
-            textbuf.Append(text);
-            fepMan->NewTextL(textbuf);
-            fepMan->CommitInlineEditL();
-            AddPhraseToDB(textbuf);
-            popup->ResetStrokeArray();
-            if ( text.Length() <= KInputPhraseMaxLength && !fepMan->IsPhraseCreation() )
-                {
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            else
-                {
-                fepMan->TryCloseUiL();
-                }
-            }
-        }
-    else if ( aKey == EPtiKeyStar )
-        {
-        return ETrue;
-        }    
-    else if ( aKey == EKeyCBA2 )
-        {
-        popup->ResetStrokeArray();
-        iOwner->FepMan()->EntryPhrase( EFalse );
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if ( !iOwner->IsValidChineseInputKey(aKey) )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateChinesePhrase::UpdateEEPContent( )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CDesCArrayFlat* zhuyinSymbols = UIContainer()->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = UIContainer()->PinyinPopupWindow()->ChineseCharsDisped();
-    CAknFepZhuyinAnalyser* analyser = iOwner->ZhuyinAnalyser();
-    CDesCArrayFlat* candidateList = UIContainer()->CandidatePane()->CandidateArray();
-    TBuf<KMaxBufLen> buf;
-    TBool isPhraseCreation = EFalse;
-    TBool valid = TZhuyinSymbolsMethods::UpdateEEPContent(
-        ptiengine,
-        analyser,
-        zhuyinSymbols,
-        chineseDisped,
-        candidateList,
-        buf,
-        isPhraseCreation
-        );
-    
-    if ( chineseDisped->Count() != 0  || zhuyinSymbols->Count() > 1 )
-        {
-        for ( TInt i = 0; i < candidateList->Count(); ++i )
-            {
-            if ( TZhuyinSymbolsMethods::IsZhuyinSymbol( candidateList->MdcaPoint( i ) ) )
-                {
-                candidateList->Delete( i, 1 );
-                break;
-                }
-            }
-        }
-    iOwner->FepMan()->PhraseCreation(isPhraseCreation);
-    UIContainer()->PinyinPopupWindow()->SetEEPContent(buf);
-    UIContainer()->PinyinPopupWindow()->SetEEPContentValid(valid);
-    return valid;
-    }
-void TAknFepInputStateCandidateChinesePhrase::AddPhraseToDB( TDes& aPhrase )
-    {
-    TPtiUserDictionaryEntry addUdbEntry( aPhrase );
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateHalfQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Pinyin and Stroke phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>   
-
-// User includes
-#include "AknFepUiInputStateCandidateHalfQwertyChinesePhrase.h"
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h" 
-#include <aknfep.rsg>                 
-
-// Constant definition
-const TInt KMinCandidateCount = 1;
-//const TInt KInputPaneLength = 32;
-//_LIT(KSep, "'");
-//_LIT(KReplace, "");
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateHalfQwertyChinesePhrase::
-// TAknFepUiInputStateCandidateHalfQwertyChinesePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateHalfQwertyChinesePhrase::
-TAknFepUiInputStateCandidateHalfQwertyChinesePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                                      MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCandidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateHalfQwertyChinesePhrase::HandleKeyL(TInt aKey,
-                                                                    TKeyPressLength aLength)
-    {
-    TInt selected = UIContainer()->CandidatePane()->SelectedIndex();
-    TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-
-
-    if ( aKey != EStdKeyLeftFunc && 
-        (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyLeftFunc )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        iOwner->FepMan()->LaunchSelectModeMenuL();
-        }
-    else if ( aKey ==EStdKeySpace)
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    else if(aKey == EStdKeyBackspace) //clear key
-        {
-        UIContainer()->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        UIContainer()->CandidatePane()->SetCandidateBuffer();
-        iOwner->ChangeState(EEntry);
-        popup->SetChangeState( ETrue );
-        iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-
-        return ETrue;
-        }   
-    else if(aKey == EStdKeyUpArrow)   //up key
-        {
-        if(UIContainer()->CandidatePane()->IsFirstPage())
-            {
-            if ( EPinyin ==iOwner->FepMan()->InputMode() )
-                {
-                iOwner->ChangeState(EEntry);
-                iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                }
-            return ETrue;
-            }
-        else
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-            }   
-        }
-    else if ( aKey == EStdKeyDownArrow )
-        {
-        TBool state = ETrue;
-        if ( popup->IsChangeStatet( ) && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            popup->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(
-                            aKey, aLength );
-            }
-        }
-    else if (aKey == EStdKeyLeftArrow)//in the same row
-        {
-        if (selected == 0)
-           {
-            UIContainer()->CandidatePane()->SelectIndex(numbertotal-1);
-           }
-        else
-           {
-            UIContainer()->CandidatePane()->SelectIndex(selected - 1);
-           }      
-        return ETrue;   
-        }
-    else if (aKey == EStdKeyRightArrow)//in the same row
-        {
-        if (selected == numbertotal-1)
-            {
-            UIContainer()->CandidatePane()->SelectIndex(0);
-            }
-        else
-            {
-            UIContainer()->CandidatePane()->SelectIndex(selected + 1);
-            }     
-        return ETrue;       
-        } 
-    else if ( aKey == EStdKeyDevice0 || 
-              aKey == EStdKeyDevice3 ||
-              aKey == EStdKeyEnter )//SK1,Select,Enter
-        {
-        TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveCandidate);
-                }
-            }
-        return ETrue;
-        }   
-    else
-        {
-        return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }  
-        
-    return EFalse;     
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,274 +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 TAknFepUiInputStateCandidateHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-
-
-#include "AknFepUiInputStateCandidateHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"   // MAknFepUICtrlContainerJapanese
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                        // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterfac
-#include <aknfep.rsg>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateCandidateHiraganaKanji class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::
-//                                  TAknFepUiInputStateCandidateHiraganaKanji
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateHiraganaKanji::TAknFepUiInputStateCandidateHiraganaKanji(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer)
-
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateHiraganaKanji::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(ETrue);
-
-    // Get index number to show at first
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TInt index;
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    ptiEngine->GetCandidateListL(*candidateArray);
-    ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &index);
-
-    UpdateCandidateListL(index);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::CloseUI
-// Closing UI
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateHiraganaKanji::CloseUI()
-    {
-    UIContainer()->
-        CandidatePane(MAknFepUICtrlContainerJapanese::EJapaneseCandidatePane)->
-            HideWindow();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::HandleNumericKeyL
-// Handling short keypress events of the numeric and the star
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    // This state doesn't handle numeric key.
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    ptiEngine->HandleCommandL(EPtiCommandUserActionAllComplete);
-    CloseUI();
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleNaviKeyL(TInt aKey,
-                                                                TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    TAknFepUICtrlScroll direction = EScrollNone;
-    TPtiEngineCommand ptiCommand = EPtiCommandNone;
-
-    switch(aKey)
-        {
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-        case EStdKeyLeftArrow:      /* 0x0e */
-        case EStdKeyRightArrow:     /* 0x0f */
-            { // Change Conversion state
-            CloseUI();
-            iOwner->ChangeState(EConversion);
-            ret = EFalse;
-            }
-            break;
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EStdKeyDownArrow:      /* 0x11 */
-        case EStdKeyUpArrow:        /* 0x10 */
-        case EStdKeySpace:
-            { // The highlight of candidate is moved up/down
-            // aKey == EKeyDownArrow
-            ptiCommand = EPtiCommandUserActionConvert;
-            direction = EScrollDown;
-            // aKey == EKeyUpArrow
-            if (aKey == EKeyUpArrow || aKey == EStdKeyUpArrow)
-                {
-                ptiCommand = EPtiCommandUserActionPrevious;
-                direction = EScrollUp;
-                }
-
-            ptiEngine->HandleCommandL(ptiCommand);
-            UpdateInlineEditingCharacterL();
-            candidatePane->MoveItem(direction);
-            ret = ETrue;
-            }
-            break;
-        default:
-            break;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleAuxKeyL(TInt aKey,
-                                                               TKeyPressLength /*aLength*/)
-    {
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    candidatePane->HideWindow();
-    switch(aKey)
-        {
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-            break;
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-        case EStdKeyEscape:         /* 0x04 */
-            {
-            iOwner->ChangeState(EConversion);
-            }
-            break;
-      default: // Panic
-            {
-            AknFepPanic(EAknFepPanicNotSupportKey);
-            }
-            break;
-        }
-    return EFalse;
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::UpdateCandidateListL
-// Update candidate list
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateHiraganaKanji::UpdateCandidateListL(TInt aIndex /*=0*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    // Check ComposirionData
-    __ASSERT_DEBUG( data->CompletedString().Length() < 0,
-        RDebug::Print(
-           _L("In TAknFepUiInputStateCandidateHiraganaKanji::TAknFepUiInputStateCandidateHiraganaKanji INVALID DATA: ConvertingString!")));
-
-    // Get coordinate of input area
-    TPoint  leftSideOfBaseLine;
-    TInt    height;
-    TInt    ascent;
-    TInt    documentOffset = data->CursorPosition();
-    if (data->NumberOfPhrase() > 0)
-        {
-        TPtrC8 clauseChar = data->LengthOfPhrase();
-        documentOffset = clauseChar[0];
-        }
-    fepMan->GetScreenCoordinatesL(leftSideOfBaseLine, height, ascent, documentOffset);
-
-    // The showing candidate pop-up list
-    candidatePane->SetWindowPosition(leftSideOfBaseLine, height, ascent);
-    candidatePane->ShowCandidateListL(candidateArray, aIndex, 
-                                      R_AKNFEP_SOFTKEYS_EMPTY_EMPTY_COMMIT);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateHiraganaKanji::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateHiraganaKanji::HandleCommandL(TInt aCommandId)
-    {
-    if(aCommandId == EAknFepResourceChanged)
-        {
-        // Get the current index number
-        CPtiEngine* ptiEngine = iOwner->PtiEngine();
-        CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-        TInt index;
-        ptiEngine->GetCandidateListL(*candidateArray);
-        ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &index);
-
-        CloseUI();
-        UpdateCandidateListL(index);
-        }
-    else
-        {
-        // Go through the event to base class.
-        TAknFepUiInputStateEntryJapaneseMultitap::HandleCommandL(aCommandId);
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,282 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Pinyin and Stroke phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>  
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-
-const TInt KMinCandidateCount = 1;
-// User includes
-#include "AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.h"
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepuictrleditpane.h"           //phrase creation
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h" 
-#include <aknfep.rsg>                 
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::
-// TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::
-    TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                                      MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputMiniQwertyPinyinPhraseBase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCandidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UIContainer()->EditPaneWindow()->DisableCursor();
-    }
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::HandleKeyL(TInt aKey,
-                                                                    TKeyPressLength aLength)
-    {
-    TInt selected = UIContainer()->CandidatePane()->SelectedIndex();
-    TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-
-    if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return ETrue;
-        }
-    TBool ret = EFalse;
-    switch ( aKey )
-        {
-        case EStdKeySpace:
-            {
-            if ( ECangJie ==iOwner->FepMan()->InputMode() )
-                {
-                TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-                if ( text.Length() )
-                    {
-                    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                    fepMan->NewTextL( text );
-                    fepMan->CommitInlineEditL();
-                    iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                    if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                        {
-                        fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                        iOwner->FepMan()->TryCloseUiL();
-                        }
-                    else
-                        {
-                        UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-                        iOwner->ChangeState( EPredictiveCandidate );
-                        }
-                    }
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyBackspace:
-            {
-            UIContainer()->CandidatePane()->SetCandidateBuffer();
-            UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EManualChangeState );
-            UIContainer()->EditPaneWindow()->SetChangeState( ETrue );
-            iOwner->ChangeState( EMiniQwertyEdit );
-            iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyLeftArrow:
-            {
-            if ( selected == 0 )
-                {
-                UIContainer()->CandidatePane()->SelectIndex( numbertotal - 1 );
-                }
-            else
-                {
-                UIContainer()->CandidatePane()->SelectIndex( selected - 1 );
-                }
-            UpdateIndicator();
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyRightArrow:
-            {
-            if ( selected == numbertotal - 1 )
-                {
-                UIContainer()->CandidatePane()->SelectIndex( 0 );
-                }
-            else
-                {
-                UIContainer()->CandidatePane()->SelectIndex( selected + 1 );
-                }
-            UpdateIndicator();
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyDownArrow:
-            {
-            ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-            }
-            break;
-        case EStdKeyUpArrow:
-            {
-            if ( UIContainer()->CandidatePane()->IsFirstPage() )
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EManualChangeState );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                return ETrue;   
-                }
-            else
-                {
-                UIContainer()->CandidatePane()->PreviousCandidatePage();
-                UIContainer()->CandidatePane()->SetCandidateBuffer();
-                UIContainer()->CandidatePane()->SelectFirstPhrase();
-                UpdateIndicator();
-                }
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyEnter:
-            {
-            if ( EStroke == iOwner->FepMan()->InputMode() ||
-            ECangJie == iOwner->FepMan()->InputMode() ||
-            EPinyin == iOwner->FepMan()->InputMode() ) 
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            ret = ETrue;
-            }
-            break;
-        case EStdKeyDevice0:
-        case EStdKeyDevice3:
-            {
-            TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if ( text.Length() && aLength != ELongKeyPress )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit();
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke() )
-                        {
-                        RefreshUI( EFalse );
-                        UIContainer()->CandidatePane()->SelectFirstPhrase();
-                        }
-                    else
-                        {
-                        UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EAutoChangeStateFromCandidate );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            }
-            ret = ETrue;
-            break;
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyLeftShift:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            ret = ETrue;
-            }
-            break;
-        case EKeyRightShift:
-            {
-            ret = ETrue;
-            }
-            break;
-        default:
-            return TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(
-                aKey, aLength );
-        }
-    return ret;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-       // case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( text.Length( ) )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit( );
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke( ) )
-                        {
-                        RefreshUI( EFalse );
-                        UIContainer()->CandidatePane()->SelectFirstPhrase( );
-                        }
-                    else
-                        {
-                        UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EAutoChangeStateFromCandidate );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,560 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Zhuyin phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>   
-
-// User includes
-#include "AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h" 
-#include <aknfep.rsg>   
-
-#include "aknfepuictrleditpane.h"           //for zhuyin phrase creation
-#include "aknfepinputstateminiqwertyzhuyinkeymap.h"
-#include "aknfepuiinputstateminiqwertyzhuyinphrase.h"
-// Constant definition
-const TInt KMinCandidateCount = 1;
-const TInt KInputPaneLength = 32;
-//_LIT( KDelimiter, "\x2022");
-_LIT( KDelimiter, "'");
-_LIT( KSaiStroke,"\x311D" );
-
-struct TToneZhuYinMap
-    {
-    TUint16 iValue;
-    TInt iInputTone;
-    };
-const TToneZhuYinMap ZhuyinToneMap[] =
-    {
-        {0x0020, 1},
-        {0x02CA, 2},
-        {0x02c7, 3},
-        {0x02CB, 4},
-        {0x02D9, 5}
-    };
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateCandidateQwertyBaseChinesePhrase( aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength
-        > KMinCandidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows( showHorizontalScrollArrows );
-    uiContainer->ShowVerticalScrollArrows( multiplePages );
-    uiContainer->FocusCandidatePane( ETrue );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( ETrue );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-
-    }
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyL(
-    TInt aKey, TKeyPressLength aLength )
-    {
-    if (iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10 || iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty3x11)
-        {
-        return HandleKeyForMiniQwertyL(aKey, aLength);
-        }
-    else
-        {
-        return HandleKeyForHalfAndCustomQwertyL(aKey, aLength);
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::ComitPhraseCreatedToEditor()
-// commit the phrase created to the editor
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::ComitPhraseCreatedToEditorL()
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-    if ( text.Length() )
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        
-    
-        TBuf<KInputPaneLength> highText;
-        UIContainer()->InputPane()->GetText( highText );
-        TInt groupNum = GetInputPaneKeyStrokeCount( highText );
-        TInt canidateCout = text.Length();
-        if ( groupNum > canidateCout )
-            {
-            FillPhraseAndStrokArrayL( highText, text );
-            }
-        else
-            {
-            fepMan->NewTextL( text );
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-            UIContainer()->EditPaneWindow()->ResetAllArray();
-            UIContainer()->EditPaneWindow()->SetEffictiveLength( 0 );
-            if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                {
-                fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-                iOwner->ChangeState( EPredictiveCandidate );
-                }
-            }
-        }
-    return ETrue;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::GetInputPaneKeyStrokeCount()
-// get the input pane key stroke count 
-// ---------------------------------------------------------------------------
-//
-TInt TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::GetInputPaneKeyStrokeCount(
-    const TDesC& aBuf )
-    {
-    TInt groupNum = 1;
-    for (TInt i = 0; i < aBuf.Length() - 1; i++ )
-        {
-        TInt num = sizeof(ZhuyinToneMap )/( sizeof(ZhuyinToneMap[0] ) );
-        TBool isFindTone = EFalse;
-        TInt isFindDel = 0;
-        for (TInt m =0; m< num; m++ )
-            {
-            if ( aBuf[i] == ZhuyinToneMap[m].iValue )
-                {
-                isFindTone = ETrue;
-                break;
-                }
-            }
-        if ( !isFindTone )
-            {
-            isFindDel = aBuf.Mid(i,1).Compare( KDelimiter );
-            }
-        if ( 0 == isFindDel || isFindTone )
-            {
-            groupNum++;
-            }
-        }
-    if ( 0 == aBuf.Right( 1 ).Compare( KDelimiter ) )
-        {
-        groupNum++;
-        }
-    return groupNum;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::GetIndexOfToneMark()
-// get the index of the tonemark 
-// ---------------------------------------------------------------------------
-//
-TInt TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::GetIndexOfToneMark( const TDesC& aText)
-    {
-    TInt num = sizeof(ZhuyinToneMap )/( sizeof(ZhuyinToneMap[0]));
-    TInt len = aText.Length();
-    for( TInt j = 0; j< len ;j++ )
-        {
-        for (TInt i = 0; i<num; i++ )
-            {
-            if ( aText[j] == ZhuyinToneMap[i].iValue )
-                {
-                return j;
-                }
-            }
-        }
-    return -1;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::FillPhraseAndStrokArray()
-// fill the phrase and keystroke array
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::FillPhraseAndStrokArrayL(
-    const TDesC& aText, const TDesC& aPhrase )
-    {
-    CDesCArrayFlat* keyStrokeArray = UIContainer()->EditPaneWindow()->KeystrokeArray();
-    CDesCArrayFlat* phraseKeyStrokeArray = UIContainer()->EditPaneWindow()->PhraseShowKeyStrokeArray() ;
-    CDesCArrayFlat* phraseArray = UIContainer()->EditPaneWindow()->PhraseArray();
-    
-    RArray<TInt>* keyCodeArray = UIContainer()->EditPaneWindow()->KeycodeArray();
-    RArray<TInt>* keyCodePhraseArray = UIContainer()->EditPaneWindow()->PhraseKeycodeArray();
-    phraseArray->AppendL( aPhrase );
-    TBuf<KInputPaneLength> keyStoke;
-    TInt replaceCount = 0;
-    TInt delimiterIndex = aText.Find( KDelimiter );
-    if ( KErrNotFound == delimiterIndex )
-        {
-        delimiterIndex = -1;
-        }
-    TInt indexOfToneMark = GetIndexOfToneMark( aText );
-    if ( -1 == delimiterIndex && indexOfToneMark == -1 )
-        {
-        replaceCount = aText.Length();
-        }
-    else if ( delimiterIndex >= 0 && indexOfToneMark == -1 )
-        {
-        replaceCount = delimiterIndex;
-        }
-    else if ( delimiterIndex >= 0 && indexOfToneMark >= 0 )
-        {
-        replaceCount = Min( delimiterIndex, indexOfToneMark );
-        if ( delimiterIndex > indexOfToneMark )
-            {
-            replaceCount++;
-            }
-        }
-    else
-        {
-        replaceCount = indexOfToneMark + 1;// have tonemark  but has not deli
-        }
-    for (TInt i = 0; i < replaceCount; i++ )
-        {
-        TPtrC ptr = keyStrokeArray->MdcaPoint( 0 );
-        keyStoke.Append( ptr );
-        keyStrokeArray->Delete( 0 );
-        // added for the keycode
-        TInt keyCodeValue = (*keyCodeArray)[0];
-        keyCodePhraseArray->AppendL( keyCodeValue );
-        keyCodeArray->Remove( 0 );
-        }
-    phraseKeyStrokeArray->AppendL( keyStoke );   
-    if ( CheckToneMarkBorderUpon()|| 0 ==keyStrokeArray->MdcaPoint( 0 ).Compare( KSaiStroke ) )
-        {
-        iOwner->ChangeState( EMiniQwertyEdit );
-        }
-    else
-        {
-        //change to the spelling selecting state
-        iOwner->ChangeState( EZhuyinSpelling );
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystroke
-// Get the valid keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::CheckToneMarkBorderUpon()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    
-    if ( keystroke->Count() > 1 )
-        {
-        for ( TInt i = 1; i < keystroke->Count(); ++i )
-            {
-            if ( ( 1 == keystroke->MdcaPoint( i - 1 ).Length() ) &&
-                ( 1 == keystroke->MdcaPoint( i ).Length() ) )
-                {
-                return ETrue;
-                }
-            }
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyForHalfAndCustomQwertyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyForHalfAndCustomQwertyL(TInt aKey,
-                                                                    TKeyPressLength aLength)
-    {
-    TInt selected = UIContainer()->CandidatePane()->SelectedIndex();
-    TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-    
-    if (iOwner->FepMan()->FnKeyState())
-        {
-        return ETrue;
-        }
-    else if(aKey == EStdKeySpace)
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    else if(aKey == EStdKeyBackspace )
-        {
-        iOwner->ChangeState(EEntry);
-        iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-
-        return ETrue;
-        }
-    else if(aKey == EStdKeyUpArrow)   
-        {
-        if(UIContainer()->CandidatePane()->IsFirstPage())
-            {
-            iOwner->ChangeState(EEntry);
-            iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-            return ETrue;
-            }
-        else
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-            }   
-        }
-    else if ( aKey == EStdKeyEnter)
-        {
-        TBuf<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> atext;
-        UIContainer()->PinyinPopupWindow()->GetItemText(
-                                    UIContainer()->PinyinPopupWindow()->CurrentSelection(),
-                                    atext);
-        if(atext.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(atext);
-            fepMan->CommitInlineEditL();
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyLeftArrow )
-       {
-       if ( selected == 0 )
-          {
-          UIContainer()->CandidatePane()->SelectIndex( numbertotal - 1 );
-          }
-       else
-          {
-          UIContainer()->CandidatePane()->SelectIndex( selected - 1 );
-          }     
-       UpdateIndicator();
-       return ETrue;    
-       }
-    else if ( aKey == EStdKeyRightArrow )
-       {
-        if ( selected == numbertotal - 1 )
-            {
-            UIContainer()->CandidatePane()->SelectIndex( 0 );
-            }
-        else
-            {
-            UIContainer()->CandidatePane()->SelectIndex( selected + 1 );
-            } 
-        UpdateIndicator();
-        return ETrue;       
-       }
-    else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice3 )
-        {             
-        TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-                iOwner->ChangeState(EPredictiveCandidate);
-                }
-            }
-        return ETrue;
-        }   
-    else
-        {
-        return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        } 
-    }
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyForMiniQwertyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyForMiniQwertyL(
-    TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt selected = UIContainer()->CandidatePane()->SelectedIndex();
-    TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-    //  TInt isSelect = UIContainer()->CandidatePane()->SelectIndex( index, EFalse );
-    if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || 
-         CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() )
-        {
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyDevice1 )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return ETrue;
-        }
-    else if ( aKey == EStdKeySpace )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyBackspace )
-        {
-        UIContainer()->EditPaneWindow()->SetChangeState( ETrue );
-        iOwner->ChangeState( EEntry );
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyUpArrow )
-        {
-        if ( UIContainer()->CandidatePane()->IsFirstPage() )
-            {
-            iOwner->ChangeState( EEntry );
-            return ETrue;
-            }
-        else
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(
-                aKey, aLength );
-            }
-        }
-    else if ( aKey == EStdKeyDownArrow || aKey == EStdKeySpace )
-        {
-        TBool state = ETrue;
-        if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            editPane->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(
-                            aKey, aLength );
-            }
-        }
-    else if ( aKey == EStdKeyEnter )
-        {
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyLeftArrow )
-        {
-        if ( selected == 0 )
-            {
-            UIContainer()->CandidatePane()->SelectIndex( numbertotal-1 );
-            }
-        else
-            {
-            UIContainer()->CandidatePane()->SelectIndex( selected - 1 );
-            }
-        return ETrue;
-        }
-    else if ( aKey == EStdKeyRightArrow )
-        {
-        if ( selected == numbertotal-1 )
-            {
-            UIContainer()->CandidatePane()->SelectIndex( 0 );
-            }
-        else
-            {
-            UIContainer()->CandidatePane()->SelectIndex( selected + 1 );
-            }
-        return ETrue;
-        }
-    else
-        {
-        TInt index = 0;
-        TBool isIndex = MapKeyToIndexSelectCandidate( aKey, index );
-        if ( aLength == EShortKeyPress && 
-            ( ( isIndex && UIContainer()->CandidatePane()->SelectIndex( index ) ) ||
-                aKey == EStdKeyDevice0 || 
-                aKey == EStdKeyDevice3 ) )
-            {
-            editPane->SetNeedClearDeliberateSelection( ETrue );
-            ComitPhraseCreatedToEditorL();
-            return ETrue;
-            }
-        else
-            {
-            return TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(
-                aKey, aLength );
-            }
-        }
-        return EFalse;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-    //    case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA            
-            if ( text.Length( ) )
-                {
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL( );
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL( );
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidatePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIInputStateCandidate methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidatePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-
-
-///////////////////
-// Candidate state
-///////////////////
-
-TAknFepInputStateCandidatePhrase::TAknFepInputStateCandidatePhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBasePhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    }
-
-TBool TAknFepInputStateCandidatePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if(aKey == EKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-    return TAknFepInputStateCandidateBasePhrase::HandleKeyL(aKey, aLength);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidatePinyinAndStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Pinyin and Stroke phrase candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>   
-
-// User includes
-#include "AknFepUiInputStateCandidatePinyinAndStrokePhrase.h"
-#include "AknFepUiInputStateCandidateBasePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h"                  
-// add for phrase creation
-#include "AknFepUICtrlPinyinPopup.h"
-
-// Constant definition
-const TInt KMinCnadidateCount = 1;
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidatePinyinAndStrokePhrase::
-// TAknFepUiInputStateCandidatePinyinAndStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidatePinyinAndStrokePhrase::
-    TAknFepUiInputStateCandidatePinyinAndStrokePhrase(MAknFepUIManagerStateInterface* aOwner,
-                                                      MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCnadidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-
-void TAknFepUiInputStateCandidatePinyinAndStrokePhrase::HandleCommandL(TInt aCommandID)
-   {
-   TAknFepInputStateCandidateBaseChinesePhrase::HandleCommandL(aCommandID);
-   }
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidatePinyinAndStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidatePinyinAndStrokePhrase::HandleKeyL(TInt aKey,
-                                                                    TKeyPressLength aLength)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane(); 
-           
-    if ( ( aKey == EKeyBackspace ) || ( aKey == EKeyUpArrow &&
-        iOwner->FepMan()->InputMode() == EPinyin &&
-        candidatePane->IsFirstPage() ) )
-        {
-        // the follow 2 lines add for phrase creation
-        UIContainer()->PinyinPopupWindow()->SetChangeState( ETrue );
-        UIContainer()->PinyinPopupWindow()->SetFromCandidateChangeStateFlag( ETrue );
-        iOwner->FepMan()->EntryPhrase( EFalse );
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-        
-    return TAknFepInputStateCandidateBaseChinesePhrase::HandleKeyL(aKey, aLength);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateCandidateQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateCandidateQwerty.h"
-
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-
-TAknFepInputStateCandidateQwerty::TAknFepInputStateCandidateQwerty(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwerty::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwerty::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwerty::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyBase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStateCandidateQwertyBase::TAknFepInputStateCandidateQwertyBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyBase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveInput);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBase::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyBase::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyBaseChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,408 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate qwerty base chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepUICtrlPinyinPopup.h"
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-const TUint16 KSegment = 0x0020;
-
-TAknFepInputStateCandidateQwertyBaseChinesePhrase::
-TAknFepInputStateCandidateQwertyBaseChinesePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        TInt index = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        // it may be one of the 'valid' numbers..
-        TPtiKeyboardType keyboardtype = iOwner->FepMan()->KeyboardLayout();
-        if ( EPtiKeyboardQwerty4x10 == keyboardtype ||
-             EPtiKeyboardQwerty3x11 == keyboardtype ||
-             EPtiKeyboardHalfQwerty == keyboardtype ||
-             EPtiKeyboardCustomQwerty == keyboardtype)
-            {      
-            MPtiLanguage *lang = NULL;
-            RArray < TPtiNumericKeyBinding > keybinding;
-            TBool validnumkey = EFalse;
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            
-            if( ptiengine != NULL )
-                {
-                lang = ptiengine->CurrentLanguage();
-                }
-            if( ptiengine && lang )
-                {
-                TRAP_IGNORE(ptiengine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), 
-                                                                    keybinding, keyboardtype));
-                TInt numericKeysCount = keybinding.Count();
-                TInt candidateCount = UIContainer()->CandidatePane()->VisibleCandidateCount();
-                while ( numericKeysCount-- )
-                    {
-                    TPtiNumericKeyBinding numKeyBind = keybinding[numericKeysCount];
-                    if ( (numKeyBind.iChar >= 0x31 && numKeyBind.iChar <= ( 0x31 + candidateCount - 1 ))
-                    
-                       &&(aKey == numKeyBind.iKey))
-                    	{
-                    	index = numKeyBind.iChar - EPtiKey0 -1;
-                    	validnumkey = ETrue;
-                    	break;
-                    	}
-                    }
-                }
-            keybinding.Reset();
-        
-            if (!validnumkey)
-            	{
-            	iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                return ETrue;
-            	}
-                
-            }
-        else
-            {
-#endif
-            index = MapKeyToIndex(aKey);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            }             
-#endif
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentPhraseCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                    if ( EPtiKeyboardQwerty4x10 == iOwner->FepMan()->KeyboardLayout() ||
-                            EPtiKeyboardHalfQwerty == iOwner->FepMan()->KeyboardLayout() ||
-                            EPtiKeyboardQwerty3x11 == iOwner->FepMan()->KeyboardLayout() )
-                        {
-                        UIContainer()->PinyinPopupWindow()->SetChangeState( ETrue );
-                        iOwner->ChangeState(EPredictiveCandidate);
-                        }                    
-#endif
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            candidatePane->IsFirstPage() )
-            {
-            return ETrue;
-            }
-        
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        if ( candidatePane->IsLastPage() && 
-            (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-            {
-            return ETrue;
-            }  
-                  
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-    if (response)
-        {
-        UpdateIndicator();
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleVerticalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        if (candidatePane->IsLastPage())
-            {
-            return ETrue;
-            }
-        if ( iState != EPredictiveCandidate &&
-        		iState != EPredictiveInput )
-        	{
-            if ( candidatePane->NeedGetNewCandidatePage() )
-                {
-                if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                    {
-                    if ( candidatePane->IsLastPage() )
-                        {
-                    iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                    return ETrue;
-                    }
-                }
-            else
-                {
-                CDesCArrayFlat* phraseCandidates = candidatePane->CandidateArray();
-                RPointerArray<HBufC> list;
-                    TRAP_IGNORE(
-                    GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                    for (TInt i = 0; i < list.Count( ); ++i )
-                        {
-                        phraseCandidates->AppendL( *(list[i]) );
-                        }
-                    list.ResetAndDestroy();)
-                    }
-                }
-        	}
-        candidatePane->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        if (candidatePane->IsFirstPage())
-            {
-            return ETrue;   
-            }
-        candidatePane->PreviousCandidatePage(); 
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-    UpdateIndicator();
-    return ETrue;
-    }
-
-void TAknFepInputStateCandidateQwertyBaseChinesePhrase::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-   
-   if (candidatePane->IsLastPage())
-       {
-       uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-       }
-   else
-   	   {
-   	   uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-   	   }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-   if(iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10)
-   		{
-   	    if(candidatePane->VisibleCandidateCount()==1)
-   	    	{
-   	    	uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-   	    	uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-   	    	}
-   	    else
-   	    	{
-   	    	uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-   	    	uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-   	    	}	
-   		}
-   else
-   		{
-#endif
-    if (candidatePane->SelectedIndex() == 0 && 
-        candidatePane->IsFirstPage() )
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (candidatePane->IsLastPage() && 
-        (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    }    
-#endif
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyBaseChinesePhrase::MapKeyToIndexSelectCandidate
-// Check the select candidate numeric key is valid or not
-// ---------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TBool  TAknFepInputStateCandidateQwertyBaseChinesePhrase::MapKeyToIndexSelectCandidate(
-    TInt aKey,TInt& aIndex )
-    {
-    TBool validnumkey = EFalse;
-    MPtiLanguage *lang= NULL;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiKeyboardType keyboardtype = iOwner->FepMan()->KeyboardLayout();
-    if (EPtiKeyboardQwerty4x10 == keyboardtype || EPtiKeyboardQwerty3x11
-            == keyboardtype || EPtiKeyboardHalfQwerty == keyboardtype
-            || EPtiKeyboardCustomQwerty == keyboardtype)
-        {
-        RArray <TPtiNumericKeyBinding> keybinding;
-        
-        if( ptiengine != NULL )
-            {
-            lang = ptiengine->CurrentLanguage();
-            }
-        if ( ptiengine && lang )
-            {
-            TRAP_IGNORE(ptiengine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), keybinding, keyboardtype));
-            TInt numericKeysCount = keybinding.Count();
-            while ( numericKeysCount-- )
-                {
-                TPtiNumericKeyBinding numKeyBind =
-                        keybinding[numericKeysCount];
-                if ( (numKeyBind.iChar >= 0x31 && numKeyBind.iChar <= 0x36)
-                        &&(aKey == numKeyBind.iKey))
-                    {
-                    aIndex = numKeyBind.iChar - EPtiKey0 - 1;
-                    validnumkey = ETrue;
-                    break;
-                    }
-                }
-            }
-        keybinding.Reset();
-        if ( !validnumkey ) 
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }       
-        }
-    else
-        {
-        aIndex = MapKeyToIndex(aKey);
-        }
-    return validnumkey ;
-    }
-#endif
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-
-void TAknFepInputStateCandidateQwertyBaseChinesePhrase::GetNewCandidatesL(const TDesC& aSource, 
-                                                    RPointerArray<HBufC>& aList)
-    {
-    TInt start = 0;
-    TInt length = 0;
-
-    for (TInt ii = 0; ii < aSource.Length(); ii++)
-        {
-        if (aSource[ii] == KSegment)
-            {
-            TPtrC segment(aSource.Ptr() + start, length);
-            aList.AppendL(segment.AllocL());
-            start += (length + 1);
-            length = 0;
-            }
-        else
-            {
-            length++;
-            }
-        }
-
-    if (length)
-        {
-        TPtrC segm(aSource.Ptr() + start, length);
-        aList.AppendL(segm.AllocL());
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyBasePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyBasePhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyBasePhrase.h"
-
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStateCandidateQwertyBasePhrase::TAknFepInputStateCandidateQwertyBasePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyBasePhrase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentPhraseCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveInput);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBasePhrase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateQwertyBasePhrase::HandleVerticalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        candidatePane->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        candidatePane->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyBasePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyBasePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyChinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate qwerty chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateCandidateQwertyChinese.h"
-
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-
-
-TAknFepInputStateCandidateQwertyChinese::TAknFepInputStateCandidateQwertyChinese(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyChinese::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                UpdateIndicator();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyChinese::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyChinese::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyChineseBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate qwerty chinese base state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyChineseBase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateCandidateQwertyChineseBase::TAknFepInputStateCandidateQwertyChineseBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyChineseBase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveInput);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateCandidateQwertyChineseBase::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            ptiengine->NumberOfCandidates() == 0)
-            {
-            return ETrue;
-            }
-        
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        
-        if (bufLength != KMaxCandidateCountFromCore &&
-            candidatePane->SelectedIndex() == (bufLength -1))
-            {
-			return ETrue;
-            }
-        
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        response = ETrue;
-        }
-    if (response) 
-        {
-        UpdateIndicator();
-        }
-                
-    return response;
-    }
-
-TBool TAknFepInputStateCandidateQwertyChineseBase::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() != 
-            KMaxCandidateCountFromCore)
-            {
-            return ETrue;
-            }
-        
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() == 0)
-            {								 
-            return ETrue;
-            }
-        
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    UpdateIndicator();     
-    return ETrue;
-    }
-
-void TAknFepInputStateCandidateQwertyChineseBase::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (bufLength != KMaxCandidateCountFromCore &&
-        candidatePane->SelectedIndex() == (bufLength -1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyChineseBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyChineseBase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of candidate qwerty chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateCandidateQwertyChinesePhrase.h"
-
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-
-TAknFepInputStateCandidateQwertyChinesePhrase::TAknFepInputStateCandidateQwertyChinesePhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyChinesePhrase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentPhraseCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyChinesePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyChinesePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateCandidateQwertyPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateCandidateQwertyPhrase.h"
-
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-
-TAknFepInputStateCandidateQwertyPhrase::TAknFepInputStateCandidateQwertyPhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBasePhrase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateCandidateQwertyPhrase::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentPhraseCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateQwertyPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateQwertyPhrase::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Stroke phrase Qwerty candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      
-
-// User includes
-#include "AknFepUiInputStateCandidateQwertyStrokePhrase.h"
-#include "AknFepUICtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepUICtrlCandidatePane.h"      
-#include "AknFepManager.h"                  
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateQwertyStrokePhrase::
-// TAknFepUiInputStateCandidateQwertyStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateQwertyStrokePhrase::TAknFepUiInputStateCandidateQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyPhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    }
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidatePinyinAndStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateQwertyStrokePhrase::HandleKeyL(TInt aKey, 
-                                                                 TKeyPressLength aLength)
-    {
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return EFalse;
-        }
-    else
-        {
-        return TAknFepInputStateCandidateQwertyPhrase::HandleKeyL(aKey,aLength);
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyZhuyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyZhuyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyZhuyin.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-
-#include "AknFepManager.h"                  //FepMan flag
-
-TAknFepInputStateCandidateQwertyZhuyin::TAknFepInputStateCandidateQwertyZhuyin(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinese(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirst();
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateCandidateQwertyZhuyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-    else
-        {
-        return TAknFepInputStateCandidateQwertyChinese::HandleKeyL(aKey,aLength);
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateCandidateQwertyZhuyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateCandidateQwertyZhuyinPhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-
-#include "AknFepManager.h"                  //FepMan flag
-
-TAknFepInputStateCandidateQwertyZhuyinPhrase::TAknFepInputStateCandidateQwertyZhuyinPhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateCandidateQwertyZhuyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->ChangeState(EEntry);
-        return ETrue;
-        }
-    else if (aKey == EStdKeySpace || aKey == EStdKeyEnter)
-        {
-        return ETrue;
-        }        
-    else
-        {
-        return TAknFepInputStateCandidateQwertyChinesePhrase::HandleKeyL(aKey,aLength);
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCandidateRetroActive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +0,0 @@
-/*
-* 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:            Provides the TAknFepUiInputStateCandidateRetroActive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-
-
-#include "AknFepUiInputStateCandidateRetroActive.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"   // MAknFepUICtrlContainerJapanese
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                        // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterfac
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateCandidateRetroActive class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::
-//                                  TAknFepUiInputStateCandidateRetroActive
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateRetroActive::TAknFepUiInputStateCandidateRetroActive(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer)
-
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    iState = ECandidateRetroActive;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateRetroActive::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(ETrue);
-
-    ShowListL(EAknFepSoftkeyRetroActiveHalf);
-    iData = EAknFepSoftkeyRetroActiveHalf;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::CloseUI
-// Closing UI
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateRetroActive::CloseUI()
-    {
-    // commit the current item
-    TRAP_IGNORE(DoCommitItemL());
-    // Move the status to EInitial.
-    iOwner->PtiEngine()->ClearCurrentWord();
-    iOwner->ChangeState(EInitial);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::HandleNumericKeyL
-// Handling short keypress events of the numeric and the star
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateRetroActive::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    // This state doesn't handle numeric key.
-    // commit the current item
-    DoCommitItemL();
-    // Move the status to EInitial.
-    iOwner->PtiEngine()->ClearCurrentWord();
-    iOwner->ChangeState(EInitial);
-    // Return EFalse, because of going through the event
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateRetroActive::HandleNaviKeyL(TInt aKey,
-                                                                TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    TAknFepUICtrlScroll direction = EScrollNone;
-
-    switch(aKey)
-        {
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EStdKeyDownArrow:      /* 0x11 */
-        case EStdKeyUpArrow:        /* 0x10 */
-        case EStdKeySpace:
-            { // The highlight of candidate is moved up/down
-            direction = EScrollDown;
-            if (aKey == EKeyUpArrow || aKey == EStdKeyUpArrow)
-                {
-                direction = EScrollUp;
-                }
-
-            candidatePane->MoveItem(direction);
-            ret = ETrue;
-            }
-            break;
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-        case EStdKeyLeftArrow:      /* 0x0e */
-        case EStdKeyRightArrow:     /* 0x0f */
-            ret = ETrue;
-            break;
-        default:
-            break;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateRetroActive::HandleAuxKeyL(TInt aKey,
-                                                               TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    TInt currentIdex = candidatePane->CurrentItemIndexOfCandidate();
-    candidatePane->HideWindow();
-    switch(aKey)
-        {
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            DoSelectItemL();
-            ret = ETrue;
-            }
-            break;
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-        case EStdKeyEscape:         /* 0x04 */
-            {
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiEngine->HandleCommandL(EPtiCommandUserActionCancel);
-            iOwner->SetInlineEditUnderlineVisibility(ETrue);
-
-            if(iOwner->IsPredictive())
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                ShowPredictiveListL();
-                }
-            else
-                {
-                UpdateInlineEditingCharacterL();
-                iOwner->ChangeState(EEntry);
-                }
-            ret = ETrue;
-            }
-            break;
-      default: // Panic
-            {
-            AknFepPanic(EAknFepPanicNotSupportKey);
-            }
-            break;
-        }
-    return ret;
-    }
-
-void TAknFepUiInputStateCandidateRetroActive::HandleCommandL(TInt aCommandId)
-    {
-    // Close current popup window
-    MAknFepUICtrlCandidatePaneInterface*
-        candidatePane = UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                                     EJapaneseCandidatePane);
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeyCommit:
-            candidatePane->HideWindow();
-            DoSelectItemL();
-            break;
-        case EAknFepSoftkeyRetroActiveHalf:
-        case EAknFepSoftkeyRetroActiveFull:
-            {
-            candidatePane->HideWindow();
-            // Change from half to full or from full to half
-            ShowListL(aCommandId);
-            iData = aCommandId;
-            }
-            break;
-        case EAknFepResourceChanged:
-            {
-            TInt currentIdex = candidatePane->CurrentItemIndexOfCandidate();
-            candidatePane->HideWindow();
-            // Change from half to full or from full to half
-            ShowListL(iData, currentIdex);
-            break;
-            }
-        default:
-            // Go through the event to base class.
-            TAknFepUiInputStateEntryJapaneseMultitap::HandleCommandL(aCommandId);
-            break;
-        }
-    }
-
-void TAknFepUiInputStateCandidateRetroActive::ShowListL(TInt aCommandId, TInt aIndex /*=0*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    MAknFepUICtrlCandidatePaneInterface*
-        candidatePane = UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                                     EJapaneseCandidatePane);
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    // Check ComposirionData
-    __ASSERT_DEBUG( data->CompletedString().Length() < 0,
-        RDebug::Print(
-           _L("In TAknFepUiInputStateCandidateRetroActive::TAknFepUiInputStateCandidateRetroActive INVALID DATA: ConvertingString!")));
-
-    // Get coordinate of input area
-    TPoint  leftSideOfBaseLine;
-    TInt    height;
-    TInt    ascent;
-    TInt    documentOffset = data->CursorPosition();
-    fepMan->GetScreenCoordinatesL(leftSideOfBaseLine, height, ascent, documentOffset);
-
-    // Decide either half or full
-    TPtiEngineCommand command = EPtiCommandUserActionRetroActiveCandidateHalf;
-    TInt resId = R_AKNFEP_SOFTKEYS_RETROACTIVE_FULL_WIDTH;
-    if (aCommandId == EAknFepSoftkeyRetroActiveFull)
-        {
-        command = EPtiCommandUserActionRetroActiveCandidateFull;
-        resId = R_AKNFEP_SOFTKEYS_RETROACTIVE_HALF_WIDTH;
-        }
-
-    // Get the showing candidates
-    ptiEngine->HandleCommandL(command, (TAny*)candidateArray);
-    if (candidateArray->Count() > 0)
-        {
-        // Show the retroactive popup
-        candidatePane->SetWindowPosition(leftSideOfBaseLine, height, ascent);
-        candidatePane->ShowCandidateListL(candidateArray, aIndex, resId);
-        }
-    else
-        {
-        // return to Entry state
-        iOwner->ChangeState(EEntry);
-        }
-    }
-
-void TAknFepUiInputStateCandidateRetroActive::ShowPredictiveListL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    // normal operation
-    if (UpdateInlineEditingCharacterL())
-        {
-        // Get the candidate array object
-        CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-        // Set the candidates to array on PtiEngine
-        ptiEngine->GetCandidateListL(*candidateArray);
-
-        MAknFepUICtrlCandidatePaneInterface* predictivePane =
-            UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                       EJapanesePredictiveCandidatePane);
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        // Get coordinate of input area
-        TPoint  leftSideOfBaseLine;
-        TInt    height;
-        TInt    ascent;
-        TInt    documentOffset = data->CursorPosition() > 0 ? data->CursorPosition() : 0;
-
-        fepMan->GetScreenCoordinatesL(leftSideOfBaseLine,
-                                      height,
-                                      ascent,
-                                      documentOffset);
-        // show candidate pop-up list
-        predictivePane->SetWindowPosition(leftSideOfBaseLine, height, ascent);
-        predictivePane->ShowCandidateListL(candidateArray, 0, iCbaResourceID);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::DoSelectItemL
-// Select a current item, and commit it.
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateRetroActive::DoSelectItemL()
-    {
-    // commit the current item
-    DoCommitItemL();
-    if (iOwner->FepMan()->EditorHasFreeSpace()
-     && iOwner->IsPredictive())
-        {
-        iOwner->ChangeState(ENextWord);
-        }
-    else
-        {
-        iOwner->PtiEngine()->ClearCurrentWord();
-        iOwner->ChangeState(EInitial);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateRetroActive::DoCommitItemL
-// Commit a current item
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateRetroActive::DoCommitItemL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePaneInterface* candidatePane =
-        UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                     EJapaneseCandidatePane);
-    TInt currentIdex = candidatePane->CurrentItemIndexOfCandidate();
-    candidatePane->HideWindow();
-
-    iOwner->ChangeState(EMultiCompletion);
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    TPtrC ptr((*candidateArray)[currentIdex]);
-    ptiEngine->HandleCommandL(EPtiCommandUserActionRetroActiveCommit, &ptr);
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        fepMan->CommitInlineEditL(text, text.Length());
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateChineseBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2003 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 TAknFepUiInputStateChineseBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <avkon.rsg>
-
-#include "AknFepUiInputStateChineseBase.h"
-#include "AknFepUIManagerStateInterface.h"   //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        //MAknFepManagerUIInterface
-#include <PtiDefs.h>                //keys
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-// CONSTANTS
-
-/**
-*  TAknFepUiInputStateChineseBase class.
-* 
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateChineseBase::TAknFepInputStateChineseBase
-// Constractor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateChineseBase::
-TAknFepInputStateChineseBase(MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iUIContainer = aUIContainer;
-
-    /* UI is not activated at this point yet.
-    if (aOwner)
-        {
-        aOwner->FepMan()->SendUIActivatedNotification();
-        }
-        */
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateChineseBase::operator=
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateChineseBase::operator=(const TAknFepInputStateBase& aState)
-    {
-    Mem::Copy(this, &aState, sizeof(TAknFepInputStateBase));
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateChineseBase::operator=
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateChineseBase::operator=(const TAknFepInputStateChineseBase& aState)
-    {
-    Mem::Copy(this, &aState, sizeof(TAknFepInputStateChineseBase));
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateChineseBase::UIContainer()
-// Getting UI container object
-// @return Japanese UI container object
-// ---------------------------------------------------------------------------
-//
-
-MAknFepUICtrlContainerChinese* TAknFepInputStateChineseBase::UIContainer()
-    {
-    return static_cast<MAknFepUICtrlContainerChinese*>(iUIContainer);
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateChineseBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateChineseBase::HandleCommandL(TInt aCommandId)
-	{	
-	switch (aCommandId)
-	    {
-		// Handle the event frome command.
-		case EAknSoftkeyCancel:
-	//	case (TUint16)EAknSoftkeyCancel: //the Cancle in soft CBA
-			iOwner->FepMan()->TryCloseUiL();
-			break;  
-		case EAknSoftkeySelect:
-		//case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-			break;
-		default:
-			break;
-		}    	
- 	}
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateChineseBaseQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateChineseBaseQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIInputStateChineseBaseQwerty.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateChineseBaseQwerty::TAknFepInputStateChineseBaseQwerty(
-					MAknFepUIManagerStateInterface* aOwner,
-					MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner,aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateChineseBaseQwerty::IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        IsNumberKey( aKey ) ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateChineseBaseQwerty::IsNumberKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateChineseFindQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateChineseFindQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateChineseFindQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-
-#include <e32keys.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-
-TAknFepInputStateChineseFindQwerty::TAknFepInputStateChineseFindQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EQwerty;
-    }
-
-TBool TAknFepInputStateChineseFindQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-   
-    if(!IsQwertyKey(aKey))
-        {
-        ret = EFalse;
-        }
-    else if (aLength == EShortKeyPress && iOwner->IsValidChineseInputKeyQwerty(aKey)) 
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        TPtrC text = ptiengine->GetPhoneticSpelling(1);
-
-        if(text.Length()) 
-            {
-            fepMan->NewCharacterL(text);
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-            }
-        else
-            {
-            ret = EFalse;
-            }
-        }
-    return ret;
-    }
-
-TBool TAknFepInputStateChineseFindQwerty::IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        IsNumberKey( aKey ) ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateChineseFindQwerty::IsNumberKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCompletionHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +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 TAknFepUiInputStateCompletionHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateCompletionHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                        // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepUICtrlContainerJapanese.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-
-/**
- *  TAknFepUiInputStateCompletionHiraganaKanji class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionHiraganaKanji::
-//                                  TAknFepUiInputStateCompletionHiraganaKanji
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCompletionHiraganaKanji::
-    TAknFepUiInputStateCompletionHiraganaKanji(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateCompletionJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionHiraganaKanji::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionHiraganaKanji::HandleNumericShortKeyL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = CommitInlineEditingCharacterL();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 0)
-        { // for last character is space or line feed
-        iOwner->ChangeState(EInitial);
-        fepMan->SimulateKeyEventL(aKey, ETrue);
-        ret = ETrue;
-        }
-    else
-        {
-        iOwner->ChangeState(EInitial);
-        if (iOwner->IsQwerty())
-            {
-            if (IsQwertyKey(aKey) && aKey != EStdKeySpace)
-                {
-                // Run on aKey if pressing qwerty key.
-                ret = EFalse;
-                }
-            }
-        else
-            {
-            if (IsNumberKey(aKey))
-                {
-                // Run on aKey if pressing number key.
-                ret = EFalse;
-                }
-            }
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionHiraganaKanji::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionHiraganaKanji::HandleNumericLongKeyL(TInt aKey)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    ret = ProcessNumericLongKeyPressL(aKey);
-    if (iOwner->IsPredictive() && fepMan->EditorHasFreeSpace())
-        {
-        iOwner->ChangeState(ENextWord);
-        }
-    else
-        {
-        iOwner->ChangeState(EInitial);
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionHiraganaKanji::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionHiraganaKanji::HandleAuxKeyL(TInt aKey,
-                                                                TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineCommand ptiCommand = EPtiCommandUserActionAllComplete;
-
-    if (aKey == EKeyOK 
-     || aKey == EStdKeyDevice3          /* 0xA7 */
-     || aKey == EStdKeyEnter
-     || aKey == EStdKeyNkpEnter)
-        {
-        if (aLength == EShortKeyPress)
-            {
-            ptiCommand = EPtiCommandUserActionComplete;
-            }
-        ptiEngine->HandleCommandL(ptiCommand);
-
-        UpdateInlineEditingCharacterL();
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionHiraganaKanji::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionHiraganaKanji::UpdateInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    TBool isnextwordchar = !fepMan->IsFlagSet(CAknFepManager::EFlagLineFeedCharacter
-                                    | CAknFepManager::EFlagSpaceCharacter
-                                    | CAknFepManager::EFlagFullWidthSpaceCharacter);
-    
-    if(CommitInlineEditingCharacterL())
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text.Length() > 0)
-            {
-            if (fepMan->EditorHasFreeSpace())
-                {
-                if (data->NumberOfPhrase() > 0)
-                    {
-                    TPtrC8 clauseChar = data->LengthOfPhrase();
-                    cursorpos = clauseChar[0];
-                    }
-                iOwner->ChangeState(EConversion);
-                fepMan->StartInlineEditL();
-                fepMan->UpdateInlineEditL(text, cursorpos);
-                }
-            else
-                {
-                iOwner->ChangeState(EInitial);
-                }
-            }
-        else
-            {
-            __ASSERT_DEBUG(text.Length() == 0,
-                RDebug::Print(
-                   _L("In TAknFepUiInputStateCompletionJapaneseMultitap::UpdateInlineEditingCharacterL,\nINVALID DATA: ConvertingString. Roll back to initial State!")));
-            ptiEngine->ClearCurrentWord();
-            if(iOwner->IsPredictive()
-            && (fepMan->EditorHasFreeSpace() && isnextwordchar) )
-                {
-                iOwner->ChangeState(ENextWord);
-                }
-            else
-                {
-                MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-                MAknFepUICtrlCandidatePaneInterface* predictivePane =
-                uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::EJapanesePredictiveCandidatePane);
-                // Closeing candidate pop-up list
-                predictivePane->HideWindow();
-                iOwner->ChangeState(EInitial);
-                }
-            }
-
-        ret = ETrue;
-        }
-    
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCompletionJapaneseMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +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 TAknFepUiInputStateCompletionJapaneseMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateCompletionJapaneseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-#include "AknFepManager.h"                   // CAknFepCaseManager
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateCompletionJapaneseMultitap class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::
-//                              TAknFepUiInputStateCompletionJapaneseMultitap
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCompletionJapaneseMultitap::
-    TAknFepUiInputStateCompletionJapaneseMultitap(
-                                    MAknFepUIManagerStateInterface* aOwner,
-                                    MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapaneseBase(aOwner, aUIContainer)
-    {
-    iState = EMultiCompletion;
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCompletionJapaneseMultitap::HandleCommandL(TInt aCommandId)
-    {
-    if (aCommandId == EAknFepAllCompletion)
-        {
-        iOwner->PtiEngine()->HandleCommandL(EPtiCommandUserActionAllComplete);
-        CommitInlineEditingCharacterL();
-        iOwner->ChangeState(EInitial);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    return UpdateInlineEditingCharacterL();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::HandleNaviKeyL(TInt /*aKey*/,
-                                                                    TKeyPressLength /*aLength*/)
-    {
-    return UpdateInlineEditingCharacterL();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::HandleAuxKeyL(TInt aKey,
-                                                                   TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    if (aKey == EKeyOK
-     || aKey == EStdKeyDevice3          /* 0xA7 */
-     || aKey == EStdKeyEnter
-     || aKey == EStdKeyNkpEnter)
-        {
-        TPtiEngineCommand ptiCommand = EPtiCommandUserActionComplete;
-        if (aLength == ELongKeyPress)
-            {
-            ptiCommand = EPtiCommandUserActionAllComplete;
-            }
-        ptiEngine->HandleCommandL(ptiCommand);
-        ret = UpdateInlineEditingCharacterL();
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::HandleNumericLongKeyL(TInt aKey)
-    {
-    TBool ret = ProcessNumericLongKeyPressL(aKey);
-    iOwner->ChangeState(EInitial);
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::UpdateInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    
-    if(CommitInlineEditingCharacterL())
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text.Length() > 0)
-            {
-            if (data->NumberOfPhrase() > 0)
-                {
-                TPtrC8 clauseChar = data->LengthOfPhrase();
-                cursorpos = clauseChar[0];
-                }
-            iOwner->ChangeState(EEntry);
-            fepMan->StartInlineEditL();
-            fepMan->UpdateInlineEditL(text, cursorpos);
-            }
-        else
-            {
-            __ASSERT_DEBUG(text.Length() == 0,
-                RDebug::Print(
-                   _L("In TAknFepUiInputStateCompletionJapaneseMultitap::UpdateInlineEditingCharacterL,\nINVALID DATA: ConvertingString. Roll back to initial State!")));
-            ptiEngine->ClearCurrentWord();
-            iOwner->ChangeState(EInitial);
-            }
-
-        ret = ETrue;
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::CommitInlineEditingCharacterL()
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        fepMan->CommitInlineEditL(text, text.Length());
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::ProcessNumericLongKeyPressL
-// 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionJapaneseMultitap::ProcessNumericLongKeyPressL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    ptiEngine->DeleteKeyPress();
-
-    if (!iOwner->IsQwerty()
-     && fepMan->IsSupportsSecretText()
-     && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        iOwner->PtiEngine()->ClearCurrentWord();
-        TPtiEngineCommand cmd = (TPtiEngineCommand)(EPtiCommandUserActionCompleteHalf0 + (aKey - '0'));
-        ptiEngine->HandleCommandL(cmd);
-        const MPtiEngineCompositionDataInterface* srcretdata = ptiEngine->CompositionData();
-        TPtrC srcrettext = srcretdata->CompletedString();
-        if (srcrettext.Length() > 0)
-            {
-            TBuf<1> buf;
-            buf.Append(srcrettext[0]);
-
-            // if the previous character is the special character (line feed or space),
-            // it is necessary to clear the flag.
-            TInt specialcharFlags = CAknFepManager::EFlagLineFeedCharacter
-                                  | CAknFepManager::EFlagSpaceCharacter
-                                  | CAknFepManager::EFlagFullWidthSpaceCharacter;
-            if (fepMan->IsFlagSet(specialcharFlags))
-                {
-                fepMan->ClearFlag(specialcharFlags);
-                }
-
-            fepMan->NewCharacterL(buf);
-            fepMan->CommitInlineEditL();
-            }
-        ptiEngine->ClearCurrentWord();
-        ret = ETrue;
-        }
-    else
-        {
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 0)
-        {
-        ptiEngine->HandleCommandL(EPtiCommandUserActionAllComplete);
-            ret = CommitInlineEditingCharacterL();
-            __ASSERT_DEBUG(ret, AknFepPanic(EAknFepPanicCandidatesEmpty));
-            }
-        else
-            {
-            fepMan->CancelInlineEdit();
-            iOwner->PtiEngine()->ClearCurrentWord();
-            }
-    if (fepMan->EditorHasFreeSpace())
-        {
-        TPtiEngineCommand cmd = (TPtiEngineCommand)(EPtiCommandUserActionCompleteHalf0 + (aKey - '0'));
-
-            ptiEngine->HandleCommandL(cmd);
-            fepMan->StartInlineEditL();
-            const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-            TPtrC text = data->CompletedString();
-            if (text.Length() > 0)
-                {
-                fepMan->CommitInlineEditL(text, text.Length());
-                ret = ETrue;
-                }
-            else
-                {
-                ptiEngine->ClearCurrentWord();
-                fepMan->CancelInlineEdit();
-                iOwner->ChangeState(EInitial);
-                }
-            }
-        }
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCompletionKatakana.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +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 TAknFepInputStateCompletionKatakana methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateCompletionKatakana.h"
-#include "AknFepUIManagerStateInterface.h"     // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"          // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-
-
-/**
-*  TAknFepUiInputStateCompletionHiraganaKanji class.
-* 
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionKatakana::
-//                                  TAknFepUiInputStateCompletionKatakana
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCompletionKatakana::
-    TAknFepUiInputStateCompletionKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateCompletionJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionKatakana::
-//                                  HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionKatakana::HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool ret = ETrue;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    CommitInlineEditingCharacterL();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 0 && fepMan->EditorHasFreeSpace())
-        { // for last character is space or line feed
-        iOwner->ChangeState(EInitial);
-        iOwner->FepMan()->SimulateKeyEventL(aKey, ETrue);
-        ret = ETrue;
-        }
-    else
-        {
-        ptiEngine->ClearCurrentWord();
-        iOwner->ChangeState(EInitial);
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionKatakana::UpdateInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    
-    if(CommitInlineEditingCharacterL())
-        {
-        ptiEngine->ClearCurrentWord();
-        iOwner->ChangeState(EInitial);
-        ret = ETrue;
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionKatakana::CommitInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        HBufC* buf = HBufC::NewLC(text.Length());
-        TPtr ptr(buf->Des());
-        ptr.Copy(text);
-        if (fepMan->InputMode() == EHiragana)
-        	{
-        	for (TInt index=text.Length()-1; index >= 0; index-- )
-        		{
-        		if (!IsFullHiragana(TChar(text[index])))
-        			{
-        			ptr.Delete(index, 1);
-        			}
-        		}
-        	}
-        	
-        fepMan->CommitInlineEditL(ptr, ptr.Length());
-        CleanupStack::PopAndDestroy(buf);
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionKatakana::IsFullHiragana
-// Check a character whether it is Full-width Katakana
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionKatakana::IsFullHiragana(const TChar aChr)
-	{
-	TBool rtn = EFalse;
-    const TUint KFullHiraganaStart = 0x3041;
-    const TUint KFullHiraganaEnd = 0x3094;
-	
-	if (KFullHiraganaStart <= aChr && aChr <= KFullHiraganaEnd)
-		{
-		rtn = ETrue;
-		}
-	
-	return rtn;
-	}
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionKatakana::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionKatakana::HandleAuxKeyL(TInt aKey,
-                                                           TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    if (aKey == EKeyOK
-     || aKey == EStdKeyDevice3          /* 0xA7 */
-     || aKey == EStdKeyEnter
-     || aKey == EStdKeyNkpEnter)
-        {
-        TPtiEngineCommand ptiCommand = EPtiCommandUserActionComplete;
-        if (aLength == ELongKeyPress)
-            {
-            ptiCommand = EPtiCommandUserActionAllComplete;
-            }
-        ptiEngine->HandleCommandL(ptiCommand);
-        UpdateInlineEditingCharacterL();
-        // OK-key or Enter-key shouldn't be consumed in Latin input.
-        // Because OK-key or Enter-key might be used in application side.
-        ret = EFalse;
-        }
-
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCompletionLatinJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +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 TAknFepUiInputStateCompletionLatinJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateCompletionLatinJapanese.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"               // CAknFepCaseManager
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-
-// CONSTANTS
-
-/**
-*  TAknFepUiInputStateCompletionLatinJapanese class.
-*
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionLatinJapanese::
-//                              TAknFepUiInputStateCompletionLatinJapanese
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCompletionLatinJapanese::TAknFepUiInputStateCompletionLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateCompletionJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionJapaneseMultitap::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionLatinJapanese::HandleNumericShortKeyL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = ETrue;
-    CommitInlineEditingCharacterL();
-    iOwner->ChangeState(EInitial);
-    if (!iOwner->IsQwerty())
-        {
-        fepMan->SimulateKeyEventL(aKey, ETrue);
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionLatinJapanese::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionLatinJapanese::CommitInlineEditingCharacterL()
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    if (!iOwner->IsQwerty()
-     && iOwner->FepMan()->IsSupportsSecretText()
-     && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        fepMan->CommitInlineEditL();
-        ptiEngine->ClearCurrentWord();
-        iData = 0;
-        ret = ETrue;
-        }
-    else
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->CompletedString();
-        if (text.Length() > 0)
-            {
-            // Update case without Qwerty
-            if (!iOwner->IsQwerty())
-            {
-            UpdateCase(text);
-            }
-
-        // Commit a character
-        fepMan->CommitInlineEditL(text, text.Length());
-
-        // Update case with Qwerty
-        if (iOwner->IsQwerty())
-            {
-            CAknFepCaseManager* caseMan = iOwner->CaseMan();
-            caseMan->UpdateCase(ENullNaviEvent);
-                }
-
-            ptiEngine->ClearCurrentWord();
-            iData = 0;
-            ret = ETrue;
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionLatinJapanese::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionLatinJapanese::HandleAuxKeyL(TInt aKey,
-                                                                   TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    if (aKey == EKeyOK
-     || aKey == EStdKeyDevice3          /* 0xA7 */
-     || aKey == EStdKeyEnter
-     || aKey == EStdKeyNkpEnter)
-        {
-        TPtiEngineCommand ptiCommand = EPtiCommandUserActionComplete;
-        if (aLength == ELongKeyPress)
-            {
-            ptiCommand = EPtiCommandUserActionAllComplete;
-            }
-        ptiEngine->HandleCommandL(ptiCommand);
-        UpdateInlineEditingCharacterL();
-        // OK-key or Enter-key shouldn't be consumed in Latin input.
-        // Because OK-key or Enter-key might be used in application side.
-        ret = EFalse;
-        }
-
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateCompletionPredictiveHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +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 TAknFepUiInputStateCompletionPredictiveHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateCompletionPredictiveHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                        // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepUICtrlContainerJapanese.h"
-#include "AknFepManager.h"
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-
-/**
- *  TAknFepUiInputStateCompletionPredictiveHiraganaKanji class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionPredictiveHiraganaKanji::
-//                        TAknFepUiInputStateCompletionPredictiveHiraganaKanji
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCompletionPredictiveHiraganaKanji::
-    TAknFepUiInputStateCompletionPredictiveHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateCompletionHiraganaKanji(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleNumericShortKeyL(TInt aKey)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = CommitInlineEditingCharacterL();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 0)
-        {
-        iOwner->ChangeState(EInitial);
-        iOwner->FepMan()->SimulateKeyEventL(aKey, ETrue);
-        ret = ETrue;
-        }
-    else
-        {
-        iOwner->ChangeState(EInitial);
-        if (iOwner->IsQwerty() && IsQwertyKey(aKey) && aKey != EStdKeySpace)
-            {
-            ret = EFalse;
-            }
-        }
-
-    return ret;
-     }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleNumericLongKeyL(TInt aKey)
-    {
-    TBool ret = EFalse;
-    
-    ret = ProcessNumericLongKeyPressL(aKey);
-    
-    if (ret && iOwner->FepMan()->EditorHasFreeSpace())
-        {
-        iOwner->ChangeState(ENextWord);
-        }
-    else
-        {
-        MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-        MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-        // Closeing candidate pop-up list
-        predictivePane->HideWindow();
-        iOwner->ChangeState(EInitial);
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCompletionPredictiveHiraganaKanji::HandleAuxKeyL(TInt aKey,
-                                                                          TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (aKey == EKeyOK 
-     || aKey == EStdKeyDevice3          /* 0xA7 */
-     || aKey == EStdKeyEnter
-     || aKey == EStdKeyNkpEnter)
-        {
-        TInt index = UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                                  EJapanesePredictiveCandidatePane)->CurrentItemIndexOfCandidate();
-        if (index > -1)
-            {
-            ptiEngine->HandleCommandL(EPtiCommandUserActionCompleteCandidate, &index);
-            }
-        else
-            {
-            ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-            }
-
-        UpdateInlineEditingCharacterL();
-        ret = ETrue;
-        }
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateConversionHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,191 +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 TAknFepUiInputStateConversionHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateConversionHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-#include <aknfep.rsg>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateConversionHiraganaKanji class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateConversionHiraganaKanji::
-//                                  TAknFepUiInputStateConversionHiraganaKanji
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateConversionHiraganaKanji::
-    TAknFepUiInputStateConversionHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    iData = EStateEventCandidateOn;
-    iState = EConversion;
-
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateConversionHiraganaKanji::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateConversionHiraganaKanji::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(ETrue);
-
-    // Update of CBA
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TInt newResource = R_AKNFEP_SOFTKEYS_EMPTY_EMPTY_COMMIT;
-    fepMan->UpdateCbaL(newResource);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateConversionHiraganaKanji::HandleNumericKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateConversionHiraganaKanji::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    ptiEngine->HandleCommandL(EPtiCommandUserActionAllComplete);
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateConversionHiraganaKanji::HandleNaviKeyL(TInt aKey,
-                                                                 TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineCommand ptiCommand = EPtiCommandNone;
-
-    switch(aKey)
-        {
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-        case EStdKeyLeftArrow:      /* 0x0e */
-        case EStdKeyRightArrow:     /* 0x0f */
-            {
-            ptiCommand = EPtiCommandUserActionShorten;
-            if (aKey == EKeyRightArrow
-             || aKey == EStdKeyRightArrow)
-                ptiCommand = EPtiCommandUserActionLengthen;
-
-            ptiEngine->HandleCommandL(ptiCommand);
-            UpdateInlineEditingCharacterL();
-            iData = EStateEventCandidateOff;
-            }
-            break;
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EStdKeyDownArrow:      /* 0x11 */
-        case EStdKeyUpArrow:        /* 0x10 */
-        case EStdKeySpace:
-            {
-            ptiCommand = EPtiCommandUserActionConvert;
-            if (aKey == EKeyUpArrow
-             || aKey == EStdKeyUpArrow)
-                {
-                ptiCommand = EPtiCommandUserActionPrevious;
-                }
-            ptiEngine->HandleCommandL(ptiCommand);
-            UpdateInlineEditingCharacterL();
-            if(iData == EStateEventCandidateOn)
-                {
-                iOwner->ChangeState(ECandidate);
-                }
-            iData = EStateEventCandidateOn;
-            }
-            break;
-        default:
-             break;
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateConversionHiraganaKanji::HandleAuxKeyL(TInt aKey,
-                                                                TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    switch(aKey)
-        {
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-            break;
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-        case EStdKeyEscape:         /* 0x04 */
-            {
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiEngine->HandleCommandL(EPtiCommandUserActionCancel);
-            iOwner->SetInlineEditUnderlineVisibility(ETrue);
-            UpdateInlineEditingCharacterL();
-            iOwner->ChangeState(EEntry);
-            ret = ETrue;
-            }
-            break;
-        default:
-            break;
-        }
-
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryArabicHebrewPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryArabicHebrewPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryArabicHebrewPredictive.h"
-
-TAknFepInputStateEntryArabicHebrewPredictive::
-TAknFepInputStateEntryArabicHebrewPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateEntryWesternPredictive(aOwner)
-    {
-    }
-
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryHalfQwertyWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,887 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepUiInputStateEntryHalfQwertyWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryHalfQwertyWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiManagerWestern.h"
-#include "AknFepManager.h"
-#include "AknFepPanic.h"
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>              //CPtiEngine
-#include <PtiDefs.h>                //keys
-#include <PtiCompositionDataIF.h>   //MPtiEngineCompositionDataInterface
-#include <featmgr.h>                //FeatureManager
-#include <e32keys.h>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-// TODO: Remove this include
-#include <AvkonInternalCRKeys.h>
-#include <AknUtils.h>
-
-static const TInt KKeyMappingsLength = 63;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TAknFepUiInputStateEntryHalfQwertyWesternPredictive::TAknFepUiInputStateEntryHalfQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    //this class insists on the existence of a case manager
-    __ASSERT_DEBUG(iOwner->CaseMan(), AknFepPanic(EAknFepPanicNoCaseManager));
-
-    iState = EEntry;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    ptiengine->SetInputMode( EPtiEngineHalfQwertyPredictive );
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-
-    ptiengine->SetCase(caseMode);
-    TBool isUnlimitedEditor = EFalse;
-    ptiengine->SetMaxLengthForAutoCompletedCandidates(fepMan->EditorFreeSpaceForAutoWordCompletion(isUnlimitedEditor ));
-    
-	if(fepMan->IsAutoCompleteOn())
-	    {
-	    TRAP_IGNORE( ptiengine->HandleCommandL( EPtiCommandEnableAutoCompletion ) );
-	    }
-	else
-	    {
-	    TRAP_IGNORE( ptiengine->HandleCommandL( EPtiCommandDisableAutoCompletion ) );
-	    }
-	
-//	TPtiErrorCorrectionLevel correctionLevel = (TPtiErrorCorrectionLevel)fepMan->AdvancedPredictiveTypingCorrectionLevel();
-//	TRAP_IGNORE( ptiengine->HandleCommandL( EPtiCommandSetCorrectionLevel, &correctionLevel ) );	
-	
-	TPtiKeyboardType keyboard = fepMan->KeyboardLayout();
-	ptiengine->SetKeyboardType(keyboard);
-	
-
-//	TBool isNumberCandidateShown = fepMan->IsAdvancedPredictiveNumberCandidateShown();
-//	TRAP_IGNORE( ptiengine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, &isNumberCandidateShown ) );
-//	
-//	TBool primaryCandidateState = fepMan->AdvancedPredictivePrimaryCandidate();
-//	TRAP_IGNORE( ptiengine->HandleCommandL( EPtiCommandSetProactiveCorrection, &primaryCandidateState ) );
-    }
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepUiInputStateEntryHalfQwertyWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-	
-	CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-	
-	if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-		ptiengine->SetCase(EPtiCaseFnLower);
-		}
-
-    // Handle the Chr cycling
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) && aKey !=EKeyBackspace)
-        {
-        // if the key has no accented characters mapped to it, then just block the event
-		TBuf<KKeyMappingsLength> keyMappings; 
-    	ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseChrLower );   
-		if( keyMappings.Length() == 0 )       	
-        	{
-        	return EFalse;
-        	}
-       // if there is a no matches indicator remove it 
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) && fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-             {
-             fepMan->TryRemoveNoMatchesIndicatorL();
-             fepMan->UpdateCbaL(NULL);
-             }	
-        // if there is an autocompletion part rip it off
-        fepMan->RemoveSuggestedAdvanceCompletionL();			        
-        
-        // now if the editor has no free space just return
-        if ( !fepMan->EditorHasFreeSpace() )
-            {
-            return EFalse;
-            }
-        // if we are in inline editing, break the word
-		if( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-			{                        
-			TPtrC selectedWord = ptiengine->CurrentWord();
-        	if( ptiengine->CurrentWord() != KNullDesC)
-        		{
-            	fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-        		ptiengine->CommitCurrentWord();	
-            	}
-        	fepMan->TryCloseUiL(); 
-			}
-            
-        if ( iData && (iData != aKey) )
-            {
-            // Chr key is still pressed down but character key was changed from previous one
-            // to new one. The previous character is committed and PtiEngine starts 
-            // processing new key.
-            ptiengine->CancelTimerActivity();            
-            }
-        fepMan->SetFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        }
-
-    TBool response = EFalse;
-
-
-    // Handle dead keys with space or backspace. These keys are not mapped in PtiEngine, so they cannot
-    // be handled there.
-/*    if ( ptiengine->HandleCommandL(EPtiCommandDeadKeyWaiting) == 1 )
-        {
-        if ( aKey == EStdKeyBackspace )
-            {
-            // Pending dead key is removed with backspace. No other characters are removed.
-            ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-            response = ETrue;
-            }
-        else if ( aKey == EStdKeySpace )
-            {
-            // Dead key followed by space enters the dead key root character
-            TText deadRoot = ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-            ptiengine->HandleCommandL( EPtiCommandAppendCharacter, &deadRoot );
-            
-            TPtrC newText = ptiengine->CurrentWord();
-            fepMan->UpdateInlineEditL( newText, newText.Length() );
-            iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-            
-            response = ETrue;
-            }
-        }		    
-*/
-    if (!response) // key not yet handled
-        {
-        switch (aKey)
-            {
-            case EStdKeySpace: 
-            	if( fepMan->FnKeyState() 
-            				== CAknFepFnKeyManager::EFnKeyNone )
-            		{
-            		response = HandleWordBreakingKeysL(aKey);            		
-            		}
-            	else
-            		{
-            		response = HandleQwertyKeysL( aKey, aLength);
-            		}	
-            	break;
-            case EStdKeyFullStop:
-            	if( aLength == ELongKeyPress )
-            		{
-            		// first commit the word if in inline editing
-					if( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-						{ 
-						if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-							{
-							fepMan->TryRemoveNoMatchesIndicatorL();
-							fepMan->UpdateCbaL(NULL);
-							}
-					
-						TPtrC selectedWord = ptiengine->CurrentWord();
-			        	if( ptiengine->CurrentWord() != KNullDesC)
-			        		{
-			            	fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition			            	
-                            ptiengine->CommitCurrentWord();
-			            	}
-			        	fepMan->TryCloseUiL(); 
-						}
-            		response = EFalse;            		
-            		}
-            	else
-            		{
-            		HandleShiftState(aKey);
-            		response = HandleQwertyKeysL( aKey, aLength);
-            		}	
-            	break;
-            case EStdKeyEnter:
-            case EStdKeyTab:
-            case EStdKeyLeftArrow:
-            case EStdKeyRightArrow:
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-                response = HandleWordBreakingKeysL(aKey);
-                break;
-                
-            // Long press of shift key start copy event.     
-            // Its should handle by framework.    
-            case EStdKeyF21:
-            case EKeyF21:
-            // Soft key handle by framework
-            // Selection key handle by AknFepManager.
-            case EStdKeyDevice0: // iCode:EKeyCBA1
-            case EStdKeyDevice1: //	iCode:EKeyCBA2
-            case EStdKeyDevice3: // iCode:EKeyOK
-            case EKeyCBA1:
-            case EKeyCBA2:
-            case EKeyOK:
-            	response = EFalse;
-            	break;
-
-            case EKeyUpArrow: 
-                if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-                    {
-                    // Select the exact match with the up arrow and lock it.
-                    // Another alternative could be to call function DoPreviousMatchL() from here
-                    
-                    TPtrC exactWord = ptiengine->FirstCandidate();
-                    ptiengine->HandleCommandL( EPtiCommandLockCurrentCandidate, NULL );
-                    
-                    fepMan->UpdateInlineEditL(exactWord, exactWord.Length());
-                    
-                    response = ETrue;
-                    break;
-                    }
-                    // fall through
-            case EKeyDownArrow:
-            case EKeyLeftArrow:
-            case EKeyRightArrow:
-            case EKeyBackspace:
-            	{
-                response = HandleNaviKeysL(aKey, aLength);
-            	}
-                break;
-            
-            case EStdKeyLeftShift:
-            case EStdKeyRightShift:
-            case EStdKeyLeftFunc:
-                {
-                if( EPtiCaseFnLower == fepMan->PtiEngine()->Case() )
-                    {
-                    if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-                        {
-                        fepMan->TryRemoveNoMatchesIndicatorL();
-                        }
-                    
-                    fepMan->UpdateCbaL(NULL);
-    
-                    /*if (fepMan->IsFlagSet(CAknFepManager::EFlagCompoundWord))
-                        { 
-                        if (fepMan->IsCursorAtEndOfWord())
-                            {
-                            fepMan->AddCompoundWordToUdbL();                
-                            }
-                        fepMan->ClearFlag(CAknFepManager::EFlagCompoundWord);
-                        }
-                        */
-    
-                    fepMan->RemoveSuggestedAdvanceCompletionL();
-                    ptiengine->CommitCurrentWord();
-                    fepMan->CommitInlineEditL();
-                    fepMan->TryCloseUiL();
-                    response = EFalse;
-                    }
-                }
-                break;
-                
-            default:
-                HandleShiftState(aKey);
-                response = HandleQwertyKeysL(aKey, aLength);
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-                if ( aLength == ELongKeyPress )
-                    {
-                    // Expire multitap timer after long press. 
-                    ptiengine->CancelTimerActivity();
-                    }
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-                break;
-            }
-        }
-        
-    if ( aKey == EStdKeyEnter)
-        {
-        iData = 0;
-        return 0;
-        }
-        
-    if (!iOwner->PtiEngine()->IsValidKey((TPtiKey)aKey))
-        {     
-        iData = 0;
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);        
-        fepMan->PtiEngine()->CancelTimerActivity();
-                
-        return response;
-        }
-        
-        
-    iData = aKey; // store the pressed key for future reference
-    return response;
-    }
-
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepUiInputStateEntryHalfQwertyWesternPredictive::HandleShiftState( TInt aKey )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    TPtiTextCase shiftedCase;
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-		shiftedCase = EPtiCaseFnLower;
-		}
-	else
- 		{
- 		shiftedCase= EPtiCaseLower;	
- 		}
-    
-    // Find out if the key is alphabetic
-    TBuf<KKeyMappingsLength> keyMappings; 
-    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseUpper );   
-    TBool isAlpha = ( keyMappings.Length() && TChar(keyMappings[0]).IsAlpha() );
-    
-    if (isAlpha && (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone))
-        {
-        switch ( caseMan->CurrentCase() )
-            {
-            case EAknEditorTextCase:
-                {
-                // Alphabetic characters are always capitalized in "Abc" mode 
-                // unless the shift is pressed
-                if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }          
-                }
-            break;
-            
-            case EAknEditorLowerCase:
-                {
-                // Pressing shift enters uppercae letters in the "abc" mode
-                if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-            
-            case EAknEditorUpperCase:
-                {
-                // In the "ABC" mode (capslock mode) the letters are uppercased
-                // unless the shift is pressed
-                if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-                
-            default:
-            break;
-            }
-
-        
-        }
-    else
-        {
-        // non-alphabetic keys are shifted if and only if shift is pressed, no matter what is the input state
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone))
-            {
-            shiftedCase = EPtiCaseUpper;
-            }
-        else if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && (fnKeyState  != CAknFepFnKeyManager::EFnKeyNone))
-	        {
-			shiftedCase = EPtiCaseFnUpper;
-	        }    
-        }
-
-    
-    // Handle the Chr key state
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    
-    ptiengine->SetCase(shiftedCase);
-    
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    }
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-
-TBool TAknFepUiInputStateEntryHalfQwertyWesternPredictive::HandleWordBreakingKeysL(TInt aKey)
-    {
-    TBool retVal = EFalse; // in most cases we let also the upper levels handle these key events
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-
-    // Up and down arrows break the inline word input only when shift or chr is held down
-    if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) &&
-         !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) &&
-         ( aKey==EStdKeyUpArrow || aKey==EStdKeyDownArrow ) )
-        {
-        return retVal;    
-        }
-
-
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-        {
-        TBool rightToLeftLang = fepMan->IsRightToLeftLanguage();
-        TInt tailLength = 0;
-	    ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-        switch (aKey)
-            {
-            case EStdKeyLeftArrow:
-            case EStdKeyRightArrow:    
-            	// In case the inline editing is ongoing and there is a word completion
-                // currently shown, the first backwards tap will remove the suggested 
-                // completion. 
-                if(tailLength > 0)
-	                {
-	                if ((rightToLeftLang && aKey == EStdKeyLeftArrow) 
-	                	|| (! rightToLeftLang && aKey == EStdKeyRightArrow ))
-	                    {
-					    ptiengine->HandleCommandL( EPtiCommandLockCurrentCandidate);
-					    TPtrC selectedWord = ptiengine->CurrentWord();
-                        fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-                        // To fix the bug: STAA-7GYBJC Suggested word is not committed when Arrow right key is pressed.
-                        ptiengine->CommitCurrentWord();
-                        fepMan->TryCloseUiL();
-                        // Asyncronous case update after the editor has handled the key
-                		fepMan->SimulateKeyEventL(EKeyF19); 
-	                    retVal = ETrue;
-	                    }
-	                else if((rightToLeftLang && aKey == EStdKeyRightArrow) 
-	                	|| (! rightToLeftLang && aKey == EStdKeyLeftArrow )) 
-		                {
-	                    fepMan->RemoveSuggestedAdvanceCompletionL();
-	                    retVal = ETrue;
-		                }    	
-	                }
-                else
-	                {
-	                ptiengine->CommitCurrentWord();
-	                retVal = EFalse;
-	                }
-            	break;
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-            case EStdKeyEnter:
-            case EStdKeySpace:
-            case EStdKeyTab:
-            {
-            	//retVal = ETrue;
-				
-				if ( ( aKey == EStdKeySpace || aKey == EStdKeyEnter ||aKey == EStdKeyTab)
-					 && fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) 
-					 && (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches)) )
-		            {
-		            fepMan->TryRemoveNoMatchesIndicatorL();
-		            fepMan->UpdateCbaL(NULL);
-		            }
-
-            	TBool wasInlineEditing = EFalse;	
-            	wasInlineEditing = fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction);            	
-                ptiengine->CommitCurrentWord();
-                fepMan->CommitInlineEditL();
-                /* Temporary Fix */
-                //EFlagInsideInlineEditingTransaction flag check is not required
-                //but just to make sure.
-                if(aKey == EStdKeySpace && wasInlineEditing)
-                	{
-                	_LIT(KSpace," ");                
-	                fepMan->StartInlineEditL();
-	                fepMan->UpdateInlineEditL(KSpace,0);
-	                fepMan->CommitInlineEditL();
-                	retVal = ETrue;
-                	}                
-                /* Temporary Fix */
-                fepMan->TryCloseUiL();                
-                // Asyncronous case update after the editor has handled the key
-                fepMan->SimulateKeyEventL(EKeyF19); 
-            	}                
-            break;
-            default:
-                __ASSERT_DEBUG( EFalse, AknFepPanic(EAknFepPanicNotSupportKey) );
-            }
-
-        }
-    else
-        {
-        iOwner->ChangeState( EInitial );
-        }
-
-    return retVal;
-    }
-
-
-/////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepUiInputStateEntryHalfQwertyWesternPredictive::HandleQwertyKeysL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-	TBool retVal = EFalse;
-    CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-    
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    
-    // Key is consumed if the PtiEngine maps it to some character
-    TBuf<KKeyMappingsLength> keyMappings; 
-    
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-	    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseFnLower);
-		}
-	else
- 		{
-	    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseLower);   
- 		}
-    //ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseLower);   
-    //ITI : Pti Engine can be asked to give the proper data for the keys under Fn Key.
-    TBool keyIsMapped = ( keyMappings.Length() > 0 );
-    
-    // The dead key handling inside the PtiDefaultCore assumes that no other key mapping queries
-    // have been made between handling the dead key and the next one (these queries change the
-    // internal state of the key mapping object). For this reason, we must return the key mappings
-    // to their previous state. This is quite dirty hack, but so is the dead key handling code which
-    // forces us to do this.
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-	    ptiengine->MappingDataForKey( (TPtiKey)iData, keyMappings, EPtiCaseFnLower);
-		}
-	else
- 		{
- 		ptiengine->MappingDataForKey( (TPtiKey)iData, keyMappings, EPtiCaseLower);
- 		}
- 		
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches) && fnKeyState  == CAknFepFnKeyManager::EFnKeyNone )            
-    	{
-    	//no matches, so just play tone
-        fepMan->PlaySound(EAvkonSIDConfirmationTone);   
-        return keyIsMapped;     
-        }  
-    
-    if ( keyIsMapped )
-        {
-       	if( fnKeyState  != CAknFepFnKeyManager::EFnKeyNone ) 
-        	{
-    	    //closing the UI will commit the current word and move to intial state
-	    
-        	// break the word    		
-        	if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-        	    {
-        	    fepMan->TryRemoveNoMatchesIndicatorL();
-        	    }
-        	fepMan->RemoveSuggestedAdvanceCompletionL();
-			TPtrC selectedWord = ptiengine->CurrentWord();
-            if( ptiengine->CurrentWord() != KNullDesC)
-            	{
-            	fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-        		ptiengine->CommitCurrentWord();	
-            	}
-            fepMan->TryCloseUiL(); 
-            ptiengine->SetCase(EPtiCaseFnLower);
-        	}
-        
-        if ( !(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)) )
-            { // 'new' inline edit                        
-            ptiengine->ClearCurrentWord();
-            if (caseMan->CurrentCase() == EAknEditorTextCase)
-                {
-                ptiengine->MarkAutoCapitalized();    
-                }            
-            
-            fepMan->StartInlineEditL();
-            }
-            
-		TPtrC newText;
-        
-        if( aKey == EStdKeyFullStop )
-        	{
-        	TInt tailLength = 0;
-        	ptiengine->HandleCommandL( EPtiCommandLockCurrentCandidate, &tailLength );
-/*        	if( fepMan->IsAutoCompleteOn() )
-        		{
-                TInt tailLength = 0;
-                ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-                if( tailLength > 0)
-                    {
-                    // if autoword part is visible update the input sequence
-                    newText.Set(ptiengine->CurrentWord() );
-                    ptiengine->ClearCurrentWord();
-                    ptiengine->SetCurrentWord(newText);
-                    }
-                }*/
-        	}
-        	
-        newText.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-        	
-        if ( aLength == EShortKeyPress )
-        	{
-        	SetShortKeyPressText(newText);
-        	}
-        if (ptiengine->NumberOfCandidates() > 0 )
-        	{
-                // more good words coming in from predictive text engine so carry on
-                if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	tempbuf.Append(newText[0]);
-		            	ConvertDigitToDigittype(digittype,tempbuf);
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());				                	
-	                	}
-	                if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)	
-	                	{
-            			ptiengine->CommitCurrentWord();
-        				fepMan->CommitInlineEditL();	                	
-	                	}
-           			}
-           		else 
-           			{
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-           			
-        	}
-        	
-        else 
-                {
-                // engine has run out of matches 
-                // we are not in the functionized state
-                fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);                
-                fepMan->SetFlag(CAknFepManager::EFlagNoMatches);
-                fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-                if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	tempbuf.Append(newText[0]);
-		            	ConvertDigitToDigittype(digittype,tempbuf);
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());					                	
-	                	}
-           			}
-           		else 
-           			{
-           			// Remove the autocompletion tail if present
-                    if (fepMan->IsAutoCompleteOn())
-                        {
-                        TInt tailLength = 0;
-                        ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-                        if(tailLength > 0)
-                            {
-							// To remove the autocompletion part, the below function is used. 
-							// DeleteKeyPress was used earlier. This is removed to fix the bug :
-							// enter characters to show autocompletion part. Now press a 
-							// character so that the no matches character is shown. Now press
-                            // backspace key, last character is not deleted.
-                            fepMan->RemoveSuggestedAdvanceCompletionL();
-                            fepMan->PlaySound(EAvkonSIDConfirmationTone);
-                            return ETrue;
-                            }
-                        }
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-                fepMan->PlaySound(EAvkonSIDConfirmationTone);
-                }
-
-        // Normally we update the case after key press. However, if Chr key is held down, the case update
-        // must not happen until when the Chr is released or the timer expires (in both of these cases
-        // the function KeyTimerExpired() will get callled).         
-        if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-            {
-       	    iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-       	    }
-    	else
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-            }
-       	
-        retVal = ETrue;
-        }
-    else
-        {
-        retVal = EFalse;
-        }
-        
-    if(ptiengine->IsValidKey((TPtiKey)aKey))
-       	retVal = ETrue;
-        
-    if( aKey!=EStdKeyBackspace && fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-        {
-        retVal = ETrue;        
-        }
-	if( !fepMan->IsFlagSet( CAknFepManager::EFlagLongShiftKeyPress ) &&
-	    fnKeyState  == CAknFepFnKeyManager::EFnKeyNext ) 
-    	{
-       	fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-       	}
-       	
-   	return retVal; 
-    }
-    
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepUiInputStateEntryHalfQwertyWesternPredictive::HandleNaviKeysL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        TBool comsumeKey;
-        if (!(fepMan->TryGetTextToUncommitL(textToUncommit, aKey, comsumeKey)))
-            {
-            // If T9 word length > 32, the navi key is consumed without action.
-            // Maybe should navigate inside word.
-            return comsumeKey;
-            }
-        ptiengine->ClearCurrentWord();
-        ptiengine->SetCurrentWord(textToUncommit); // this set the input sequence of PtiEngine
-        fepMan->StartInlineEditL(fepMan->UncommittedText(), textToUncommit, 
-        						 textToUncommit.Length(), EFalse);
-        }
-
-    if (aKey == EKeyBackspace)
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            fepMan->UpdateCbaL(NULL);
-            ptiengine->HandleCommandL(EPtiCommandSetFlagToUpdateCandidates);         
-            // Need to return as DeleteKeyPress should not be passed to ptiengine.
-            // This is because ptiengine does not maintain the input sequence
-            // if the key press does not increase the word length. So when no matches
-            // character is (?) is deleted, no need to pass to ptiengine. This is to done
-            // to solve the bug :enter characters till the no matches character is shown. Now press
-            // backspace, last character is not deleted.
-            return ETrue;
-            }
-        
-        TPtrC newText = ptiengine->DeleteKeyPress();
-        // remove autocompletion part if any
-		// this has to be done before updateinlineedit to avoid flickering
-        TInt tailLength = 0;
-        ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-                                            &tailLength );
-        if(tailLength > 0)
-            {
-            fepMan->RemoveSuggestedAdvanceCompletionL();
-            newText.Set(ptiengine->CurrentWord());
-            }
-        fepMan->UpdateInlineEditL(newText, newText.Length());
-
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}
-
-        iOwner->CaseMan()->UpdateCase(EBackspaceEvent);
-        fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);   
-        fepMan->CloseUiIfWordDeletedL();
-        }
-    
-    return ETrue;
-    }
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepUiInputStateEntryHalfQwertyWesternPredictive::LastWordInSelectionList()
-    {
-
-    }
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepUiInputStateEntryHalfQwertyWesternPredictive::FirstWordInSelectionList()
-    {   
-    }
-
-
-/////////////////////////////////////////////////////////////////
-//
-void TAknFepUiInputStateEntryHalfQwertyWesternPredictive::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-        fepMan->ClearFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        iData = 0;
-        }
-    }
-   
-void TAknFepUiInputStateEntryHalfQwertyWesternPredictive::ConvertDigitToDigittype(TDigitType& digittype,TDes& aConvertedNumeral)
-	{
-	TChar chchar(aConvertedNumeral[0]);
-	switch(digittype)
-    	{
-    	case EDigitTypeDevanagari:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToDevanagariDigitsDelta);
-	    	}
-        	break;	
-        case EDigitTypeArabicIndic:
-            {
-        	chchar = (aConvertedNumeral[0] + KLatinToArabicIndicDigitsDelta);
-	        }
-            break;
-    	case EDigitTypeEasternArabicIndic:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToEasternArabicIndicDigitsDelta);
-        	}
-    	}
-    aConvertedNumeral.Zero();
-    aConvertedNumeral.Append(chchar);
-	}
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +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 TAknFepUiInputStateEntryHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateEntryHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-#include <aknfep.rsg>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateEntryHiraganaKanji class.
- *
- */
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryHiraganaKanji::TAknFepUiInputStateEntryHiraganaKanji
-// Constractor
-// ---------------------------------------------------------------------------
-//
-
-TAknFepUiInputStateEntryHiraganaKanji::TAknFepUiInputStateEntryHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryHiraganaKanji::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryHiraganaKanji::InitializeStateL()
-    {
-    // Set on Underline visibility in inline editing
-    iOwner->SetInlineEditUnderlineVisibility(ETrue);
-
-    // Update of CBA
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TInt newResource = R_AKNFEP_SOFTKEYS_PREDICT_OTHER_COMMIT;
-    if(!fepMan->IsAbleToChangePrediction())
-        {
-        newResource = R_AKNFEP_SOFTKEYS_EMPTY_OTHER_COMMIT;
-        }
-
-    fepMan->UpdateCbaL(newResource);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryHiraganaKanji::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryHiraganaKanji::HandleNaviKeyL(TInt aKey,
-                                                            TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineCommand ptiCommand = EPtiCommandNone;
-
-    switch(aKey)
-        {
-        case EKeyLeftArrow:
-        case EStdKeyLeftArrow:      /* 0x0e */
-            {
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiCommand = EPtiCommandUserActionLeft;
-            }
-            break;
-        case EKeyRightArrow:
-        case EStdKeyRightArrow:     /* 0x0f */
-            {
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiCommand = EPtiCommandUserActionRight;
-            }
-            break;
-        case EKeyDownArrow:
-        case EStdKeyDownArrow:      /* 0x11 */
-        case EStdKeySpace:
-            {
-            ptiCommand = EPtiCommandUserActionConvert;
-            }
-            break;
-        case EKeyUpArrow:
-        case EStdKeyUpArrow:        /* 0x10 */
-            {
-            ptiCommand = EPtiCommandUserActionPrevious;
-            }
-            break;
-        default:
-            break;
-        }
-    ptiEngine->HandleCommandL(ptiCommand);
-    UpdateInlineEditingCharacterL();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 0)
-        {
-        switch(aKey)
-            {
-            case EKeyDownArrow:
-            case EStdKeyDownArrow:      /* 0x11 */
-            case EKeyUpArrow:
-            case EStdKeyUpArrow:        /* 0x10 */
-            case EStdKeySpace:
-                {
-                iOwner->ChangeState(EConversion);
-                // Set OFF Cursor unvisibility
-                fepMan->SetInlineEditingCursorVisibilityL(EFalse);
-                }
-                break;
-            default:
-                break;
-            }
-        ret = ETrue;
-        }
-
-    return ret;
-    }
-
-
-TBool TAknFepUiInputStateEntryHiraganaKanji::HandleNumericShortKeyL(TInt aKey)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->ConvertingString();
-    TBool ret = EFalse;
-
-    if (aKey == EStdKeySpace
-     && text.Length() > 0)
-        {
-        ret = HandleNaviKeyL(aKey, EShortKeyPress);
-        }
-    else
-        {
-        ret = TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericShortKeyL(aKey);
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryHiraganaKanji::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryHiraganaKanji::
-    HandleCommandL(TInt aCommandId)
-    {
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeyOtherModes:
-            {
-            // Change the status to Retroactive input
-            iOwner->ChangeState(ECandidateRetroActive);
-            }
-            break;
-        case EAknFepSoftkeyPredictiveOn:
-            {
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-            // Update of inline editing characters
-            const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-            TPtrC text = data->CompletedString();
-            TPtrC text2 = data->ConvertingString();
-            if (text.Length() >0)
-                {
-                iOwner->ChangeState(EMultiCompletion);
-                fepMan->CommitInlineEditL(text, text.Length());
-                if (fepMan->EditorHasFreeSpace())
-                    {
-                    iOwner->ChangeState(ENextWord);
-                    }
-                else
-                    {
-                    CloseUI();
-                    iOwner->ChangeState(EInitial);
-                    }
-                }
-            else if (text2.Length() > 0)
-                {
-                // Change to ConversionState
-                iOwner->ChangeState(EPredictiveInput);
-                fepMan->UpdateInlineEditL(text2, text2.Length());
-                }
-            }
-            break;
-        default:
-            TAknFepUiInputStateEntryJapaneseMultitap::HandleCommandL(aCommandId);
-            break;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryIndicPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +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 TAknFepInputStateEntryIndicPredictive Method.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryIndicPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepPanic.h"
-#include "AknFepManagerUIInterface.h"
-#include <aknfep.rsg>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateEntryIndicPredictive::TAknFepInputStateEntryIndicPredictive
-
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-
-TAknFepInputStateEntryIndicPredictive::
-TAknFepInputStateEntryIndicPredictive( MAknFepUIManagerStateInterface* aOwner, 
-                                       TLanguage /*aLanguage*/ )
-    :TAknFepInputStateEntryWesternPredictive( aOwner )
-    {
-  	}
-
-void TAknFepInputStateEntryIndicPredictive::LastWordInSelectionList()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    if (iMatchState != EWordMatchAfterLast)
-        {
-        TRAP_IGNORE(fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS));
-        iMatchState = EWordMatchLast;
-        }
-    }
-
-// End of File
--- a/fep/aknfep/src/AknFepUiInputStateEntryJapaneseMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +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 TAknFepUiInputStateEntryJapaneseMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-#include "AknFepUICtrlCandidatePaneInterface.h" // MAknFepUICtrlCandidatePaneInterface
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-
-// CONSTANTS
-const TText KAknFEPLineFeedSymbol = 0x21B2;
-const TText KAknFEPMirroredLineFeedSymbol = 0x21B3;
-
-/**
- *  TAknFepUiInputStateEntryJapaneseMultitap class.
- *
- */
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::
-//                                  TAknFepUiInputStateEntryJapaneseMultitap
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateEntryJapaneseMultitap::
-    TAknFepUiInputStateEntryJapaneseMultitap(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapaneseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-    }
-
-/**
- * MPtiObserver interface.
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::KeyTimerExpired
-// Call this function when Multitap timer of PtiEngine was time-out
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::KeyTimerExpired()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-
-    if (text.Length() > 0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        TRAP_IGNORE(fepMan->CommitInlineEditL());
-        iOwner->ChangeState(EInitial);
-        }
-    else
-        {
-        TPtrC text2 = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text2.Length() > 0)
-            {
-            if (text2[0] == KAknFEPLineFeedSymbol
-             || text2[0] == KAknFEPMirroredLineFeedSymbol)
-                {
-                iOwner->ChangeState(EInitial);
-                }
-            else
-                {
-                // Set on cursor visibility in inline editing
-                TRAPD(err, fepMan->SetInlineEditingCursorVisibilityL(ETrue));
-                if (err == KErrNone)
-                    {
-                    TRAP(err, fepMan->UpdateInlineEditL(text2, cursorpos));
-                    }
-                if (err != KErrNone)
-                    {
-                    TRAP_IGNORE(iOwner->FepMan()->SimulateKeyEventL(EKeyEscape, ETrue));
-                    }
-                }
-            }
-        }
-    }
-
-/**
- *  TAknFepUiInputStateEntryJapaneseMultitap class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericShortKeyL
-// HHandling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool cursorVisibility = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    if (aKey == EPtiKeyStar)
-        {
-        cursorVisibility = ETrue;
-        }
-    fepMan->SetInlineEditingCursorVisibilityL(cursorVisibility);
-    ptiEngine->AppendKeyPress((TPtiKey)aKey);
-    ret = UpdateInlineEditingCharacterL();
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericLongKeyL(TInt /*aKey*/)
-    {
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNaviKeyL
-// Handling navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNaviKeyL(TInt /*aKey*/,
-                                                               TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-    ret = UpdateInlineEditingCharacterL();
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleAuxKeyL(TInt aKey,
-                                                              TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    switch(aKey)
-        {
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-            {
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiEngine->DeleteKeyPress();
-            ret = UpdateInlineEditingCharacterL();
-            }
-            break;
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-            break;
-        default:
-            break;
-        }
-
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (!CommitInlineEditingCharacterL())
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text.Length() > 0)
-            {
-            if (State() == EConversion
-             || State() == ECandidate
-             || State() == ECandidateRetroActive
-             || State() == EPredictiveInput)
-            	{
-	            if (data->NumberOfPhrase() > 0)
-	                {
-	                TPtrC8 clauseChar = data->LengthOfPhrase();
-	                cursorpos = clauseChar[0];
-	                }
-            	}
-            fepMan->UpdateInlineEditL(text, cursorpos);
-            }
-        else
-            {
-            __ASSERT_DEBUG(text.Length() == 0,
-                RDebug::Print(
-                   _L("In TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL,\nINVALID DATA: ConvertingString. Roll back to initial State!")));
-            ptiEngine->ClearCurrentWord();
-            fepMan->CancelInlineEdit();
-            iOwner->ChangeState(EInitial);
-            }
-        ret = ETrue;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::CommitInlineEditingCharacterL()
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::
-    HandleCommandL(TInt aCommandId)
-    {
-    if(aCommandId == EAknFepSoftkeyCommit)
-        {
-        CPtiEngine* ptiEngine = iOwner->PtiEngine();
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC textConv = data->ConvertingString();
-        TPtrC textComp = data->CompletedString();
-        MAknFepUICtrlCandidatePaneInterface* candidatePane =
-            UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                         EJapaneseCandidatePane);
-        TInt curr = candidatePane->CurrentItemIndexOfCandidate();
-        if (curr > -1)
-            {
-            TInt old = 0;
-            ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &old);
-            while(curr > old)
-                {
-                ++old;
-                ptiEngine->HandleCommandL(EPtiCommandUserActionConvert);
-                }
-            while(curr < old)
-                {
-                --old;
-                ptiEngine->HandleCommandL(EPtiCommandUserActionPrevious);
-                }
-            }
-        candidatePane->HideWindow();
-        if (textConv.Length() > 0 || textComp.Length() > 0)
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-        else
-            {
-            iOwner->ChangeState(EInitial);
-            }
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryKatakana.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +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 TAknFepUiInputStateEntryKatakana methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateEntryKatakana.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                     // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-#include <avkon.rsg>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateEntryKatakana class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryKatakana::
-//                                  TAknFepUiInputStateEntryKatakana
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateEntryKatakana::TAknFepUiInputStateEntryKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryKatakana::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryKatakana::InitializeStateL()
-    {
-    // In case of Katakana and Hiragana input, underline and highlight aren't always shown.
-    iOwner->SetInlineEditUnderlineVisibility(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryKatakana::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryKatakana::HandleNumericShortKeyL(TInt aKey)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    if (aKey == EPtiKeyStar)
-        {
-        iOwner->FepMan()->SetInlineEditingCursorVisibilityL(ETrue);
-        }
-    ptiEngine->AppendKeyPress((TPtiKey)aKey);
-
-	if ( iOwner->IsQwerty() )
-		{
-		const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-		TPtrC text = data->CompletedString();
-		// In case of Katakana and Hiragana transitory input,
-		// underline and highlight are shown.
-		iOwner->SetInlineEditUnderlineVisibility(
-				(text.Length() > 0)? EFalse : ETrue);
-		}
-	else
-		{
-		// In case of Katakana and Hiragana input, underline and highlight aren't always shown .
-		iOwner->SetInlineEditUnderlineVisibility( EFalse );
-		}
-
-    ret = UpdateInlineEditingCharacterL();
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryLatinJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +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 TAknFepUiInputStateEntryLatinJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateEntryLatinJapanese.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"               // CAknFepCaseManager
-#include "AknFepManager.h"
-#include "AknFepGlobalEnums.h"
-
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateEntryLatinJapanese class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryLatinJapanese::
-//                                  TAknFepUiInputStateEntryLatinJapanese
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateEntryLatinJapanese::TAknFepUiInputStateEntryLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer)
-    {
-    }
-
-/**
- * MPtiObserver interface.
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryLatinJapanese::KeyTimerExpired
-// Call this function when Multitap timer of PtiEngine was time-out
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryLatinJapanese::KeyTimerExpired()
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-        if (fepMan->IsSupportsSecretText()
-         && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-            {
-            TRAP_IGNORE(fepMan->CommitInlineEditL());
-            // Update case without Qwerty
-            if (!iOwner->IsQwerty())
-                {
-                UpdateCase(text);
-                }
-            }
-        else
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            // Update case without Qwerty
-            if (!iOwner->IsQwerty())
-                {
-                UpdateCase(text);
-                }
-
-            // Commit a character
-            TRAP_IGNORE(iOwner->FepMan()->CommitInlineEditL(text, text.Length()));
-
-            // Update case with Qwerty
-            if (iOwner->IsQwerty())
-                {
-                CAknFepCaseManager* caseMan = iOwner->CaseMan();
-                caseMan->UpdateCase(ENullNaviEvent);
-                }
-            }
-        }
-    iData = 0;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->ClearCurrentWord();
-    iOwner->ChangeState(EInitial);
-   }
-
-/**
-*  TAknFepUiInputStateEntryLatinJapanese class.
-*
-*/
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryLatinJapanese::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryLatinJapanese::HandleNumericShortKeyL(TInt aKey)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = EFalse;
-
-    if (iData && iData != aKey)
-        {
-        if (!iOwner->IsQwerty()
-         && iOwner->FepMan()->IsSupportsSecretText()
-         && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-            {
-            const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-            TPtrC text = data->ConvertingString();
-            if (text.Length() > 0)
-                {
-                fepMan->CommitInlineEditL();
-                if (!iOwner->IsQwerty())
-                    {
-                    UpdateCase(text);
-                    }
-                }
-            ptiEngine->ClearCurrentWord();
-            iOwner->ChangeState(EInitial);
-            iData = 0;
-            ret = EFalse;
-            }
-        else
-            {
-            ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-            iOwner->ChangeState(EMultiCompletion);
-            }
-        }
-    else
-        {
-        iData = aKey;
-
-        const MPtiEngineCompositionDataInterface* previousData = ptiEngine->CompositionData();
-        TChar previousChar = 0;
-        TPtrC previousText(previousData->ConvertingString());
-        if (previousText.Length() > 0)
-            {
-            previousChar = previousText[0];
-            }
-
-        // Append a key to PtiEngine
-        ptiEngine->AppendKeyPress((TPtiKey)aKey);
-
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text(data->ConvertingString());
-        if (text.Length() > 0)
-            {
-            TChar ch = text[0];
-            TBool validNewCandidate = fepMan->CharIsValidInEditor(ch);
-            // Check if the character is valid for the editor.
-            if ( !validNewCandidate )
-                {
-                TChar firstNewCandidate = ch;
-                TBool goneThroughAllCandidates(EFalse);
-                TPtrC8 sequence = ptiEngine->CurrentInputSequence();
-
-                if ( sequence.Length() )
-                    {
-                    TPtiKey key = (TPtiKey)sequence[0];
-
-                    // Go through candidates and check if valid characters are found.
-                    do  {
-                        TPtrC text = ptiEngine->AppendKeyPress(key);
-                        ch = text[0];
-                        goneThroughAllCandidates = (ch == firstNewCandidate);
-                        validNewCandidate = fepMan->CharIsValidInEditor(ch);
-                        }
-                    while (!validNewCandidate && !goneThroughAllCandidates);
-                    }
-
-                if (!validNewCandidate)
-                    {
-                    // No valid characters at all.
-                    ptiEngine->DeleteKeyPress();
-                    iOwner->ChangeState(EMultiCompletion);
-                    ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-                    iOwner->FepMan()->CommitInlineEditL();
-                    ptiEngine->ClearCurrentWord();
-                    iOwner->ChangeState(EInitial);
-                    return ETrue;
-                    }
-                else if (ch == previousChar)
-                    {
-                    // The valid key loop count is 1.
-                    // The current characters are committed, and send the same key again.
-                    iOwner->ChangeState(EMultiCompletion);
-                    ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-                    iOwner->FepMan()->CommitInlineEditL();
-                    ptiEngine->ClearCurrentWord();
-                    iOwner->ChangeState(EInitial);
-                    iOwner->FepMan()->SimulateKeyEventL(aKey, ETrue);
-                    return ETrue;
-                    }
-                }
-            }
-
-        ret = UpdateInlineEditingCharacterL();
-        // Qwerty input without Secret input mode is continuing to Comleteion.
-        if (ret && iOwner->IsQwerty())
-            {
-            if (iOwner->FepMan()->IsSupportsSecretText()
-             || iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagPassNextKey))
-                {
-                iOwner->ChangeState(EMultiCompletion);
-                ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-                iOwner->FepMan()->CommitInlineEditL();
-                ptiEngine->ClearCurrentWord();
-                iOwner->ChangeState(EInitial);
-                ret = ETrue;
-                }
-            else
-                {
-                // Qwerty need to change status
-                ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-                iOwner->ChangeState(EMultiCompletion);
-                ret = EFalse;
-                }
-            }
-        }
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1010 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIInputStateMiniQwertyZhuyinPhrase methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepUICtrlPinyinPopup.h"		//Pinyin phrase
-#include "aknfepuictrleditpane.h"           //phrase creation
-#include "aknfepinputstateminiqwertyzhuyinkeymap.h"  //phrase creation
-#include <PtiEngine.h>
-#include <e32keys.h>
-#include <PtiDefs.h>    
-#include <avkon.rsg>            //keys
-#include <aknfep.rsg>
-
-const TInt KInputPaneLength = 32;
-_LIT(KSep, "'");
-_LIT(KReplace, "");
-_LIT(KLeftBracket, "(");
-_LIT(KRightBracket, ")");
-const TText KPinyinTone4Valid = 0x02D9;
-const TText KPinyinTone4Invalid = 0x0020;
-const TInt KMaxKeystrokeCount = 31;
-const TInt KKeystrokeMaxLength =5;
-const TInt KKeyBufferMaxLength =150;
-
-const TUint16 KSai = 0x311D;
-const TUint16 KToneMark1 = 0x0020;
-const TUint16 KToneMark2 = 0x02CA;
-const TUint16 KToneMark3 = 0x02c7;
-const TUint16 KToneMark4 = 0x02CB;
-const TUint16 KToneMark5 = 0x02D9;
-
-struct TToneZhuYinMap
-    {
-    TUint16 iValue;
-    TInt iInputTone;
-    };
-const TToneZhuYinMap ZhuyinToneMap[] =
-    {
-        {
-        KToneMark1, 1
-        },
-        {
-        KToneMark2, 2
-        },
-        {
-        KToneMark3, 3
-        },
-        {
-        KToneMark4, 4
-        },
-        {
-        KToneMark5, 5
-        }
-    };
-
-const TInt KMaxPhraseCount = 150;//This should be the same as that in pticpicore. 
-
-_LIT( KZhuyinNote,"\x9020\x65B0\x8BCD" );
-
-TAknFepInputStateEntryMiniQwertyZhuyinPhrase::TAknFepInputStateEntryMiniQwertyZhuyinPhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateEntryQwertyBaseChinesePhrase( aOwner, aUIContainer)
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutInput );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-    uiContainer->SetFepMan( iOwner->FepMan() );
-    
-    //For fix bug that the text in input pane could not be shown totally. 
-    if ( iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10 ||
-        iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty3x11)
-        {
-        uiContainer->PinyinPopupWindow()->SetInputLayoutMiniQwertyZhuyin();
-        }
-    
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    ImplicitlyUpdateSelection();
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    ClearDeliberateSelection();
-    UpdateIndicator();
-
-    iOwner->PtiEngine()->SetInputMode( EPtiEngineZhuyinPhraseQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    }
-
-TBool TAknFepInputStateEntryMiniQwertyZhuyinPhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    if ( iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10 ||
-        iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty3x11)
-        {
-        return HandleKeyForMiniQwertyL( aKey, aLength );
-        }
-    else
-        {
-        return HandleKeyForHalfAndCustomQwertyL( aKey, aLength );
-        }
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-
-    // set container's position
-    TPoint baseLine = TPoint( 0, 0 );
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent))
-    ;
-    if ( ret == KErrNone )
-        {
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-    if ( editPane->GetEffictiveLength() < keystroke->Count()
-        || pinyinCountWithoutToneMarks == popup->CurrentSelection() )
-        {
-        TBuf<KKeyBufferMaxLength> keystrokeBuf;
-        for (TInt i = 0; i < keystroke->Count(); i++ )
-            {
-            keystrokeBuf.Append( keystroke->MdcaPoint( i ) );
-            }
-        inputPane->SetText( keystrokeBuf );
-        }
-    else
-        {
-        TPtrC ptr = ptiengine->GetPhoneticSpelling( 1 );
-        TBuf<KInputPaneLength> currentText;
-        inputPane->GetText( currentText );
-        if ( ptr.Length() < currentText.Length() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        inputPane->SetText( ptr );
-        }
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::DeliberatelyUpdateSelection()
-    {
-    TPtr deliberateSelection = iOwner->GetLatestDeliberateSelection();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    TInt selected = popup->CurrentSelection();
-    ptiengine->EnableToneMarks( EFalse );
-    TPtrC spelling = ptiengine->GetPhoneticSpelling( selected + 1 ); // our index is zero based, engine index is one based
-    deliberateSelection
-        = spelling.Left( MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark );
-    ptiengine->EnableToneMarks( ETrue );
-    UIContainer()->PinyinPopupWindow()->SetFlag( MAknFepUICtrlPinyinPopup::ESpellingNavigation );
-    RefreshUI( popup->CurrentVisibleSelection() );
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::ImplicitlyUpdateSelection()
-    {
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    TInt oldDeliberateSelectionLength = oldDeliberateSelection.Length();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    // previously selected is compared in turn to each of the new candidates
-    ptiengine->EnableToneMarks( EFalse );
-    TInt pinyinCount = ptiengine->PhoneticSpellingCount();
-    TInt newSelection = 0;
-    for (TInt i = 0; i < pinyinCount; i++ )
-        {
-        TPtrC spelling = ptiengine->GetPhoneticSpelling( i + 1 ); // our index is zero based, engine index is one based
-        TInt spellingLength = spelling.Length();
-
-        // figure out how many characters we are comparing, this depends on the 
-        // direction of the edit
-        TInt compareLength = oldDeliberateSelectionLength <= spellingLength
-            ? oldDeliberateSelectionLength : spellingLength;
-
-        if ( oldDeliberateSelection.Left( compareLength )
-            == spelling.Left( compareLength ) )
-            {
-            // as soon as a substring match is found, the 
-            // highlight position is set to that candidate in the new list. 
-            // note that in the case of the first character entered, the
-            // oldBuf will be empty so it will always match... which is 
-            // fine as we want to select the top one anyway, so we will
-            // quit the loop early.
-            newSelection = i;
-            break;
-            }
-        }
-    ptiengine->EnableToneMarks( ETrue );
-    UIContainer()->PinyinPopupWindow()->SetFlag( MAknFepUICtrlPinyinPopup::ESpellingChanged );
-    RefreshUI( newSelection );
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::ClearDeliberateSelection()
-    {
-    // we must have just deleted the last character, 
-    // or we are starting a new zhuyin session, so wipe the last deliberate selection
-    CDesCArrayFlat* keystroke = UIContainer()->EditPaneWindow()->KeystrokeArray();
-    if ( keystroke->Count() == 0 )
-        {
-        TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-        oldDeliberateSelection = KNullDesC;
-        }
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::RefreshUI( TInt aSelection )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TBuf<KKeyBufferMaxLength> keystrokeBuf;
-
-    // get cursor position
-    TPoint baseLine = TPoint( 0, 0 );
-    TInt height = 0;
-    TInt ascent = 0;
-
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if ( ret == KErrNone )
-        {
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark( toneMark );
-    TBuf<1> validToneMarkBuf;
-    if ( toneMarkEntered )
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if ( toneMark == KPinyinTone4Invalid )
-            toneMark = KPinyinTone4Valid;
-        validToneMarkBuf.Append( toneMark );
-        }
-
-    // to start with, disable the tone marks so we can get the list of all zhuyin matches
-    // later we will figure out which ones are invalid
-    ptiengine->EnableToneMarks( EFalse );
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-
-    for (TInt i = 0; i < keystroke->Count(); i++ )
-        {
-        keystrokeBuf.Append( keystroke->MdcaPoint( i ) );
-        }
-
-    if ( pinyinCountWithoutToneMarks > 0 )
-        {
-        if ( popup->IsFlagSet( MAknFepUICtrlPinyinPopup::ESpellingChanged ) )
-            {
-            if ( editPane->GetEffictiveLength() < keystroke->Count() )
-                {
-                spelling->Reset();
-                spelling->Compress();
-                }
-            else
-                {
-                TRAPD(ignore, ptiengine->GetPhoneticSpellingsL(*spelling));
-                if ( ignore != KErrNone )
-                    {
-                    return;
-                    }
-                }
-
-            TRAPD( retOptimize, spelling->AppendL( keystrokeBuf ) );
-            if ( KErrNone != retOptimize )
-                {
-                return;
-                }
-
-            popup->SplitPhraseSpellingIntoPages();
-            }
-
-        // set display page for delibrate selection
-        popup->SetDisplayPage( aSelection );
-        popup->SetPhraseItemTexts();
-
-        // fill in input pane although it's invisible
-        if ( editPane->GetEffictiveLength() < keystroke->Count()
-            || pinyinCountWithoutToneMarks == popup->CurrentSelection() )
-            {
-            inputPane->SetText( keystrokeBuf );
-            }
-        else
-            {
-            inputPane->SetText( ptiengine->GetPhoneticSpelling( popup->CurrentSelection()
-                + 1 ) );
-            }
-        popup->PopupSizeChanged(); // phrase input
-        }
-    // turn tone marks back on so that we know where we are.
-    ptiengine->EnableToneMarks( ETrue );
-
-    // this is where we start to figure out whether the tonemarks are valid,
-    // whether the selected tonemark is valid, and what is the index of the 
-    // selected candidate in the list of candidates with tonemarks...
-    TBool selectionToneMarkValid = EFalse;
-    TInt selectionIndexAdjustedForToneMarkValidity =
-        popup->CurrentSelection();
-
-    // we only need to deal with tone marks if there is one
-    if ( toneMarkEntered )
-        {
-        if ( pinyinCountWithoutToneMarks > 0 )
-            {
-            for (TInt i = popup->CurrentSelection() + 1; i < pinyinCountWithoutToneMarks; i++ )
-                {
-                TBool valid = EFalse;
-
-                TBuf<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark>
-                    nextCandidateWithoutToneMark;
-                nextCandidateWithoutToneMark.Copy( ptiengine->GetPhoneticSpelling(i + 1).Left( MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark ) );
-
-                ptiengine->EnableToneMarks( EFalse );
-                ptiengine->SelectPhoneticSpelling( i + 1 );
-
-                valid = ptiengine->IsToneMarkValidForSpelling();
-                if ( valid )
-                    {
-                    ptiengine->EnableToneMarks( ETrue );
-                    TInt pinyinCountWithToneMarks =
-                        ptiengine->PhoneticSpellingCount();
-
-                    for (TInt j = popup->CurrentSelection() + 1; j < pinyinCountWithToneMarks; j++ )
-                        {
-                        // use j here not i as we are looking at the list with tonemarks
-                        TPtrC nextCandidateWithToneMark =
-                            ptiengine->GetPhoneticSpelling( j + 1 );
-                        if ( nextCandidateWithToneMark
-                            == nextCandidateWithoutToneMark )
-                            {
-                            if ( i == aSelection )
-                                {
-                                selectionToneMarkValid = ETrue;
-
-                                // fill in input pane even if it can't be seen, for when we have to hide popup window
-                                inputPane->SetText( nextCandidateWithoutToneMark );
-                                }
-                            break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    ptiengine->EnableToneMarks( EFalse );
-    ptiengine->SelectPhoneticSpelling( popup->CurrentSelection() + 1 );
-    // next two lines are for tonemark validity
-    ptiengine->EnableToneMarks( selectionToneMarkValid );
-    ptiengine->SelectPhoneticSpelling( selectionIndexAdjustedForToneMarkValidity
-        + 1 ); // our index is zero based, engine index is one based
-
-    // update the candidate pane.
-    if ( popup->IsFlagSet( MAknFepUICtrlPinyinPopup::ESpellingChanged )
-        || popup->IsFlagSet( MAknFepUICtrlPinyinPopup::ESpellingNavigation ) )
-        {
-        CDesCArrayFlat* phraseCandidates = uiContainer->CandidatePane()->CandidateArray();
-        if ( editPane->GetEffictiveLength() == keystroke->Count()
-            && pinyinCountWithoutToneMarks > popup->CurrentSelection() )
-            {
-            TRAPD(ignore, ptiengine->GetChinesePhraseCandidatesL(*phraseCandidates));
-            if ( ignore != KErrNone )
-                {
-                return;
-                }
-            }
-        else if ( keystroke->Count() != 0 )
-            {
-            phraseCandidates->Reset();
-            phraseCandidates->Compress();
-            TRAPD( retAddZhuyinNote, phraseCandidates->AppendL( KZhuyinNote ) );
-            if ( KErrNone != retAddZhuyinNote )
-                {
-                return;
-                }
-            }
-
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        popup->ClearFlag( MAknFepUICtrlPinyinPopup::ESpellingChanged
-            | MAknFepUICtrlPinyinPopup::ESpellingNavigation );
-        }
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable( ETrue );
-    // need to enable the pinyin popup after the container so that it is raised to the front
-    popup->Enable( pinyinCountWithoutToneMarks > 0 );
-    UpdateIndicator();
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::InitializeStateL( void )
-    {
-    iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-        
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-   
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-        }
-    
-    if ( editPane->GetEffictiveLength() < keystroke->Count() ||
-        pinyinCountWithoutToneMarks == popup->CurrentSelection() )
-        {
-        uiContainer->ShowVerticalScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->ShowVerticalScrollArrows(ETrue);
-        }
-    }
-
-TBool TAknFepInputStateEntryMiniQwertyZhuyinPhrase::CheckToneMarkBorderUpon()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TPtrC ptr = keystroke->MdcaPoint( keystroke->Count() - 1 );
-    TInt num = sizeof(ZhuyinToneMap )/( sizeof(ZhuyinToneMap[0]));
-    for (TInt i = 0; i< num; i++ )
-        {
-        //if ( ptr.Compare( ZhuyinToneMap[i].iValue) == 0 )
-        if ( ptr[0] == ZhuyinToneMap[i].iValue )
-            {
-            return ETrue;
-            }
-        }
-
-    return EFalse;
-    }
-
-TBool TAknFepInputStateEntryMiniQwertyZhuyinPhrase::HandleKeyForMiniQwertyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt keystrokeLength = keystroke->Count();
-
-    TBool ret = ETrue;
-
-    if ( (aKey == EPtiKeyQwertyE || aKey == EPtiKeyQwertyR || 
-        aKey == EPtiKeyQwertyY || aKey == EPtiKeyQwertyU || aKey == EStdKeySpace)
-        && (aLength == EShortKeyPress) )
-        {
-        if ( keystrokeLength == 0 )
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            CommitToneMarkL( aKey );
-            return ETrue;
-            }
-        
-        if ( keystrokeLength < KMaxKeystrokeCount && 
-            !CheckToneMarkBorderUpon() )
-            {
-            if ( editPane->GetEffictiveLength() == keystrokeLength )
-            	{
-            	TBool isToneValid = ptiengine->SetToneMark(aKey);
-				TInt stringAfterLength =
-						ptiengine->GetPhoneticSpelling(1).Length();
-				TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-				TInt spellSepLen = 0;
-				TInt keySepLen = 0;
-				for (TInt i = 0; i < stringAfterLength; i++)
-					{
-					if (ptr.Mid(i, 1).Compare(KSep) == 0)
-            		{
-            		spellSepLen++;
-            		}
-            	}
-            for ( TInt j = 0; j < keystrokeLength; j++ )
-            	{
-            	if ( keystroke->MdcaPoint( j ).Compare(KSep) == 0 )
-            		{
-						keySepLen++;
-						}
-					}
-
-				// +1 is for we had add tone mark to engine, perhaps it is legal, but 
-				// We had not add it to keystroke array
-				if ((stringAfterLength - spellSepLen) == (keystrokeLength
-						- keySepLen + 1) && isToneValid)
-					{
-					inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-
-					UIContainer()->ShowHorizontalScrollArrows(EFalse);
-					UIContainer()->ShowVerticalScrollArrows(ETrue);
-					SetInputPaneToneMark();
-					editPane->AddEffictiveLength();
-					}
-				}      
-
-            TBuf<KKeystrokeMaxLength> buf;
-            TAknFepInputStateMiniQwertyZhuyinKeyMap::GetKeyStroke(
-            		ptiengine, aKey, buf );
-            keystroke->AppendL( buf );
-            keycodeArray->AppendL( aKey );
-            ImplicitlyUpdateSelection();
-            }
-        else
-            {
-            UpdateIndicator();
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-
-        }
-    else if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyLock
-        == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyDown
-        == iOwner->FepMan()->FnKeyState() )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        }
-    else if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed )
-        || ((aKey == EStdKeyLeftFunc) && aLength == EShortKeyPress) )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey == EKeyLeftShift || aKey ==EKeyLeftCtrl || aKey
-        == EKeyRightCtrl || aKey ==EKeyRightFunc )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey == EStdKeyBackspace )
-        {
-        TBool state = ETrue;
-        if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            editPane->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            if ( editPane->GetEffictiveLength() == keystrokeLength )
-                {
-                if ( iOwner->PtiEngine()->DeleteKeyPress().Length() && keystrokeLength != 1 )
-                    {
-                    editPane->DecEffictiveLength();
-                    keystroke->Delete( keystrokeLength - 1 );
-                    keycodeArray->Remove( keystrokeLength - 1 );
-                    inputPane->SetFlag( MAknFepUICtrlInputPane::EPhoneticChanged );
-                    ImplicitlyUpdateSelection();
-                    }
-                else
-                    {
-                    ClearDeliberateSelection();
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    if ( aLength == ELongKeyPress )
-                        {
-                        iOwner->FepMan()->SetLongClearAfterCloseUI( ETrue );
-                        }
-                    }
-                }
-            else
-                {
-                keystroke->Delete( keystrokeLength - 1 );
-                keycodeArray->Remove( keystrokeLength - 1 );
-                ImplicitlyUpdateSelection();
-                }
-            }
-        }
-    else if ( aKey ==EStdKeyDevice1 )//sk2
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if ( aKey == EStdKeyRightArrow )
-        {
-        if ( popup->IsEnabled() )
-            {
-            if ( popup->SelectNextPhrase() )
-                {
-                DeliberatelyUpdateSelection();
-                UpdateIndicator();
-                }
-            }
-        }
-    else if ( aKey == EStdKeyLeftArrow )
-        {
-        if ( popup->IsEnabled() )
-            {
-            if ( popup->SelectPrevPhrase() )
-                {
-                DeliberatelyUpdateSelection();
-                UpdateIndicator();
-                }
-            }
-        }
-    else if ( aKey == EStdKeyDownArrow || aKey == EStdKeyDevice3 || aKey
-        == EStdKeyDevice0 )//selection key
-        {
-        editPane->SetChangeState( ETrue );
-        if ( editPane->GetEffictiveLength() == keystroke->Count()
-            && ptiengine->PhoneticSpellingCount()
-                > popup->CurrentSelection() )
-            {
-            if ( popup->IsEnabled() )
-                {
-                popup->Enable( EFalse );
-                }
-            iOwner->ChangeState( ECandidate );
-            }
-        else
-            {
-            if ( keystrokeLength > 0 && keystroke->MdcaPoint( 0 )[0] == KSai )
-                {
-                UIContainer()->SetControlInVisible( EFalse );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                }
-            else
-                {
-                ClearDeliberateSelection();
-                editPane->SetNeedClearDeliberateSelection( ETrue );
-                iOwner->ChangeState( EZhuyinSpelling );
-                }
-            }
-        }
-    else if ( aKey == EStdKeyEnter )//enter the characters in the entry pane into the editor
-        {
-        TInt currentIndex = uiContainer->PinyinPopupWindow()->CurrentSelection();
-        TBuf<KInputPaneLength> currentText;
-        if ( currentIndex < ptiengine->PhoneticSpellingCount() )
-            {
-            currentText.Copy(ptiengine->GetPhoneticSpelling( currentIndex + 1 ));
-            }
-        else
-            {
-            inputPane->GetText( currentText );
-            }
-        
-
-        while (currentText.Find( KSep )> 0 )
-            {
-            currentText.Replace( currentText.Find( KSep ), 1, KReplace );
-            }
-        while (currentText.Find( KLeftBracket ) >= 0 )
-            {
-            currentText.Replace( currentText.Find( KLeftBracket ), 1,
-                KReplace );
-            }
-        while (currentText.Find( KRightBracket ) >= 0 )
-            {
-            currentText.Replace( currentText.Find( KRightBracket ), 1,
-                KReplace );
-            }
-
-        if ( currentText.Length() )
-            {
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL( currentText );
-            fepMan->CommitInlineEditL();
-            if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                {
-                fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                }
-            }
-
-        iOwner->FepMan()->TryCloseUiL();
-
-        }
-    else if ( aLength == EShortKeyPress ) // don't want repeats on these keys
-        {
-        iOwner->FepMan()->SetCcpuFlag( CAknFepManager::ECcpuStateIgnoreStarUp );
-
-        if ( keystroke->Count() < KMaxKeystrokeCount
-            && (iOwner->IsValidChineseInputKeyQwerty( aKey ) || aKey
-                ==EStdKeySpace ) ) //seperator
-            {
-            TInt stringBeforeLength(0);
-            TInt stringAfterLength(0);
-
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-
-            if ( stringBeforeLength != stringAfterLength )
-                {
-                if ( ptiengine->GetPhoneticSpelling(1).Length() == 1 )
-                    {
-                    iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-                    }
-                editPane->AddEffictiveLength();
-                }
-
-            TBuf<KKeystrokeMaxLength> buf;
-            TAknFepInputStateMiniQwertyZhuyinKeyMap::GetKeyStroke(
-            		ptiengine, aKey, buf );
-            keystroke->AppendL( buf );
-            keycodeArray->AppendL( aKey );
-
-            ImplicitlyUpdateSelection();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        }
-    return ret;
-    }
-
-TBool TAknFepInputStateEntryMiniQwertyZhuyinPhrase::HandleKeyForHalfAndCustomQwertyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    TBool ret = ETrue;
-
-    if((aKey == EPtiKeyQwertyE || 
-        aKey == EPtiKeyQwertyR || 
-        aKey == EPtiKeyQwertyY || 
-        aKey == EPtiKeyQwertyU ||
-        aKey == EStdKeySpace) && 
-        (aLength == EShortKeyPress))        
-        {
-        if(ptiengine->SetToneMark(aKey))
-            {
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            
-            TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                    uiContainer->CandidatePane()->IsFirstPage());
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-            UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-            UIContainer()->ShowVerticalScrollArrows(multiplePages);
-            SetInputPaneToneMark();
-            ImplicitlyUpdateSelection();
-            }
-        }
-    if(( aKey == EStdKeyLeftFunc) && aLength == EShortKeyPress)     //chr key to tone mark   
-        {
-        if(ptiengine->IncrementToneMark(ETrue))
-            {
-            ImplicitlyUpdateSelection();
-            }
-        }
-    else if( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() ||
-        CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() ||
-        CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState())
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }                                               
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey == EKeyLeftShift || aKey ==EKeyLeftCtrl || aKey == EKeyRightCtrl)      
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey ==EKeyRightFunc)//fn
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }        
-    else if(aKey == EStdKeyBackspace )
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            ImplicitlyUpdateSelection();
-            }
-        else
-            {
-            ClearDeliberateSelection();
-            iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        } 
-    else if(aKey ==EStdKeyDevice1)//sk2
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyRightArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectNextPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if(aKey == EStdKeyLeftArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectPrevPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if (aKey == EStdKeyDownArrow || aKey == EStdKeyDevice3 || aKey == EStdKeyDevice0)//selection key
-        {
-        if(popup->IsEnabled())
-            {
-            popup->Enable(EFalse);
-            }
-        iOwner->ChangeState(ECandidate);
-        }   
-   else if (aKey == EStdKeyEnter)//enter the characters in the entry pane into the editor
-        {
-        TBuf<KInputPaneLength> currentText;
-        inputPane->GetText(currentText);
-        
-        while(currentText.Find(KSep)> 0)
-            {
-            currentText.Replace(currentText.Find(KSep), 1,KReplace);
-            }
-        
-        
-        if(currentText.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(currentText);
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                }
-            }
-            
-        iOwner->FepMan()->TryCloseUiL();  
-          
-        }
-    else if(aLength == EShortKeyPress) // don't want repeats on these keys
-        {
-        iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);            
-        
-        if(iOwner->IsValidChineseInputKeyQwerty(aKey) || aKey ==EStdKeySpace ) //seperator
-            {
-            TInt stringBeforeLength(0);
-            TInt stringAfterLength(0);
-        
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-            
-            if (stringBeforeLength != stringAfterLength)
-                {
-                if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                    {
-                    //iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);                           iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                    }
-                
-                ImplicitlyUpdateSelection();
-                }
-            
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }            
-            
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-    return ret;
-    }
-
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::CommitToneMarkL( TInt aKey )
-    {
-    TBuf<1> ToneMarkBuf;
-    switch ( aKey )
-        {
-        case EPtiKeyQwertyE:
-            ToneMarkBuf.Append( KToneMark3 );
-            break;
-
-        case EPtiKeyQwertyR:
-            ToneMarkBuf.Append( KToneMark4 );
-            break;
-
-        case EPtiKeyQwertyY:
-            ToneMarkBuf.Append( KToneMark2 );
-            break;
-
-        case EPtiKeyQwertyU:
-            ToneMarkBuf.Append( KToneMark5 );
-            break;
-        default:
-            break;
-        }
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    fepMan->NewCharacterL(ToneMarkBuf);
-    fepMan->CommitInlineEditL();
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-        {
-        fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyZhuyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryMiniQwertyZhuyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //     case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( popup->IsEnabled() )
-                {
-                popup->Enable( EFalse );
-                }
-            iOwner->ChangeState( ECandidate );
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file   
-
--- a/fep/aknfep/src/AknFepUiInputStateEntryPinyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,452 +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 CAknFepUIInputStatePinyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepPanic.h"
-#include "AknFepUiInputStateEntryPinyin.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <avkon.rsg>
-
-const TText KPinyinTone4Valid = 0x0020;
-const TText KPinyinTone4Invalid = 0x02D9;
-
-
-TAknFepInputStateEntryPinyin::TAknFepInputStateEntryPinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane(EFalse);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirst(); 
-    uiContainer->ShowVerticalScrollArrows(EFalse);
-    uiContainer->ShowHorizontalScrollArrows(EFalse);
-    uiContainer->InputPane()->SetOverrideFontId(0);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (ptiengine->InputMode() != EPtiEnginePinyin)
-        {
-        ptiengine->SetInputMode(EPtiEnginePinyin);
-        }
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    ptiengine->EnableToneMarks(ETrue); 
-
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    ImplicitlyUpdateSelection();
-
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    ClearDeliberateSelection();
-    }
-void TAknFepInputStateEntryPinyin::HandleCommandL(TInt /*aCommandId*/)
-	{	
-    DeliberatelyUpdateSelection();	
- 	}
-
-TBool TAknFepInputStateEntryPinyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    if(aKey == EKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            ImplicitlyUpdateSelection();
-            }
-        else
-            {
-            ClearDeliberateSelection();
-            iOwner->FepMan()->TryCloseUiL(); // no more keys, close the UI.
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if(aKey == EKeyRightArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectNextPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if(aKey == EKeyLeftArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectPrevPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if(aKey == EKeyOK || aKey == EKeyDownArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            popup->Enable(EFalse);
-            }
-        iOwner->ChangeState(ECandidate);        
-        }
-    else if (aLength == EShortKeyPress) // don't want repeats on these keys
-        {
-     	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);        
-        if(iOwner->IsValidChineseInputKey(aKey))
-            {
-            TInt stringBeforeLength(0);
-            TInt stringAfterLength(0);
-        
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-            
-            if (stringBeforeLength != stringAfterLength)
-                {
-                if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                    {
-                    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-                    }
-                
-                ImplicitlyUpdateSelection();
-                }
-            
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }           
-            }
-        else if(aKey == EPtiKeyStar) // we increment the tone mark.
-            {
-            if(ptiengine->IncrementToneMark(ETrue))
-                {
-                ImplicitlyUpdateSelection();
-                }
-            }
-        }
-        
-    return ETrue;
-    }
-
-void TAknFepInputStateEntryPinyin::DeliberatelyUpdateSelection()
-    {
-    TPtr deliberateSelection = iOwner->GetLatestDeliberateSelection();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    // the selected is based on whole spelling candidates, not only current display page
-    TInt selected = popup->CurrentSelection(); 
-    ptiengine->EnableToneMarks(EFalse);
-    TPtrC spelling = ptiengine->GetPhoneticSpelling(selected + 1); // our index is zero based, engine index is one based
-    deliberateSelection = spelling.Left(
-                MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark);
-    ptiengine->EnableToneMarks(ETrue);
-    
-    RefreshUI(selected);
-    }
-
-void TAknFepInputStateEntryPinyin::ImplicitlyUpdateSelection()
-    {
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    TInt oldDeliberateSelectionLength = oldDeliberateSelection.Length();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCount = ptiengine->PhoneticSpellingCount();
-    TInt maxUIPinyinCount = MAknFepUICtrlPinyinPopup::EMaxCandidates;
-    TInt visible = pinyinCount < maxUIPinyinCount ? pinyinCount : maxUIPinyinCount;
-    TInt newSelection = 0;
-    for(TInt i = 0; i < visible; i++)
-        {
-        TPtrC spelling = ptiengine->GetPhoneticSpelling(i + 1);  // our index is zero based, engine index is one based
-        TInt spellingLength = spelling.Length();
-
-        // figure out how many characters we are comparing
-        TInt compareLength = oldDeliberateSelectionLength <= spellingLength ? 
-            oldDeliberateSelectionLength : spellingLength;
-
-        if(oldDeliberateSelection.Left(compareLength) == spelling.Left(compareLength))
-            {
-            // as soon as a substring match is found, the 
-            // highlight position is set to that candidate in the new list. 
-            // note that in the case of the first character entered, the
-            // oldBuf will be empty so it will always match... which is 
-            // fine as we want to select the top one anyway, so we will
-            // quit the loop early.
-            newSelection = i;
-            break;
-            }
-        }
-    ptiengine->EnableToneMarks(ETrue);
-    UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-    RefreshUI(newSelection);
-    }
-
-void TAknFepInputStateEntryPinyin::ClearDeliberateSelection()
-    {
-    // we must have just deleted the last character, 
-    // or we are starting a new pinyin session, so wipe the last deliberate selection
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    oldDeliberateSelection = KNullDesC;
-    }
-
-void TAknFepInputStateEntryPinyin::RefreshUI(TInt aSelection)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);  
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TText invalidToneMark = toneMark;
-    TBuf<1> validToneMarkBuf;
-    TBuf<1> invalidToneMarkBuf;
-    if(toneMarkEntered)
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if(toneMark == KPinyinTone4Valid)
-            invalidToneMark = KPinyinTone4Invalid;
-        validToneMarkBuf.Append(invalidToneMark);
-        invalidToneMarkBuf.Append(invalidToneMark);
-        }
-
-    // to start with, disable the tone marks so we can get the list of all pinyin matches
-    // later we will figure out which are invalid
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-    TInt maxUIPinyinCount = popup->EMaxCandidates;
-    TInt visible = pinyinCountWithoutToneMarks < maxUIPinyinCount ? 
-            pinyinCountWithoutToneMarks : maxUIPinyinCount;
-    TInt visibleCount = 0;
-    TInt spellingStartIndex = 0;
-    TBool pinyinSpellingChanged = popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-    TBool pinyinDisplayPageChanged = popup->IsFlagSet(MAknFepUICtrlPinyinPopup::EDispPageChanged);
-
-    if(pinyinCountWithoutToneMarks > 0)
-        {
-        if(pinyinSpellingChanged)
-            {
-            visibleCount = visible;
-            spellingStartIndex = 0;
-            popup->SetVisibleCount(visible);
-            }
-        else if(pinyinDisplayPageChanged) 
-            {
-            visibleCount = popup->VisibleSelectionCount();
-            spellingStartIndex = popup->CurrentPageStartIndex();
-            }
-        if(pinyinDisplayPageChanged || pinyinSpellingChanged)
-            {
-            TInt index;
-            for(TInt i = 0; i < visibleCount; i++)
-                {
-                if(pinyinDisplayPageChanged)
-                    {
-                    index = spellingStartIndex + i;
-                    }
-                else
-                    {
-                    index = i;
-                    }
-                TPtrC spelling = ptiengine->GetPhoneticSpelling(index + 1);  // our index is zero based, engine index is one based
-                popup->SetItemText(i, spelling);
-                popup->SetToneMark(i, validToneMarkBuf); 
-                if(i == aSelection)
-                    {
-                    // fill in input pane even if it can't be seen, for when we have to hide popup window
-                    inputPane->SetText(spelling);
-                    inputPane->SetToneMark(validToneMarkBuf); 
-                    }
-                }
-            popup->ClearFlag(MAknFepUICtrlPinyinPopup::EDispPageChanged);
-            }
-        if(pinyinSpellingChanged)
-            {
-            popup->SplitSpellingIntoPages(visible);
-            }
-        popup->SetDisplayPage(aSelection);
-        
-        if(pinyinSpellingChanged)
-            {
-            popup->ClearFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-            visibleCount = popup->VisibleSelectionCount();
-            spellingStartIndex = popup->CurrentPageStartIndex();
-            TInt index;
-            for(TInt i = 0; i < visibleCount; i++)
-                {
-                index = spellingStartIndex + i;
-                
-                TPtrC spelling = ptiengine->GetPhoneticSpelling(index + 1);  // our index is zero based, engine index is one based
-                popup->SetItemText(i, spelling);
-                popup->SetToneMark(i, validToneMarkBuf); 
-                if(i == aSelection)
-                    {
-                    // fill in input pane even if it can't be seen, for when we have to hide popup window
-                    inputPane->SetText(spelling);
-                    inputPane->SetToneMark(validToneMarkBuf); 
-                    }
-                }
-            }
-        else
-            {
-            inputPane->SetText(ptiengine->GetPhoneticSpelling(aSelection + 1));
-            inputPane->SetToneMark(validToneMarkBuf); 
-            }
-        popup->PopupSizeChanged();
-        }
-
-    // turn tone marks back on so that we know where we are.
-    ptiengine->EnableToneMarks(ETrue);
-
-    // this is where we start to figure out whether the tonemarks are valid,
-    // whether the selected tonemark is valid, and what is the index of the 
-    // selected candidate in the list of candidates with tonemarks...
-    TBool selectionToneMarkValid = EFalse;
-    TInt selectionIndexAdjustedForToneMarkValidity = aSelection;
-
-    // we only need to deal with tone marks if there is one
-    if(toneMarkEntered)
-        {
-        if(pinyinCountWithoutToneMarks > 0)
-            {
-            visibleCount = visible;
-
-            for(TInt i = 0; i < visibleCount; i++)
-                {
-                TBool valid = EFalse;
-                
-                // compare the list of answers with the ones in the UI controls... 
-                // any missing from this list don't support the tone mark
-                TBuf<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> nextCandidateWithoutToneMark;
-                popup->GetItemText(i, nextCandidateWithoutToneMark);
-
-                // disable tone marks temporarily, as we need to switch the spelling, and it might have 
-                // no valid tonemarks
-                ptiengine->EnableToneMarks(EFalse); 
-
-                // temporarily change the current selection in the engine, so 
-                // that we can see what tonemarks would be valid for it
-                // we will set the real selection later on
-
-                ptiengine->SelectPhoneticSpelling(spellingStartIndex + i + 1);
-                // if it's valid, we need to find it's position in the with tonemark list
-                // as the lists may be ordered differently, and different lengths
-                valid = ptiengine->IsToneMarkValidForSpelling();
-                if(valid)
-                    {
-                    ptiengine->EnableToneMarks(ETrue); 
-                    TInt pinyinCountWithToneMarks = ptiengine->PhoneticSpellingCount();
-
-                    for(TInt j = 0; j < pinyinCountWithToneMarks; j++)
-                        {
-
-                        // use j here not i as we are looking at the list with tonemarks
-                        TPtrC nextCandidateWithToneMark = ptiengine->GetPhoneticSpelling(j + 1);  // our index is zero based, engine index is one based
-
-                        if(nextCandidateWithToneMark == nextCandidateWithoutToneMark)
-                            {
-                            // we are setting the tone mark for the i'th entry in the list without tonemarks
-                            // but if its tonemark is valid, the selection in the engine will have to be relative
-                            // to the list with tonemarks
-                            if( i + spellingStartIndex == aSelection)
-                                {
-                                selectionToneMarkValid = ETrue;
-                                selectionIndexAdjustedForToneMarkValidity =  j;
-
-                                // fill in input pane even if it can't be seen, for when we have to hide popup window
-                                inputPane->SetText(nextCandidateWithoutToneMark);
-                                }
-                            break;
-                            }
-                        }
-                    }
-                popup->SetItemToneMarkValidity(i, valid); 
-                popup->SetToneMark(i, valid ? validToneMarkBuf : invalidToneMarkBuf); 
-
-                // fill in input pane even if it can't be seen, for when we have to hide popup window
-                if(i == aSelection)
-                    {
-                    inputPane->SetToneMarkValidity(valid); 
-                    inputPane->SetToneMark(valid ? validToneMarkBuf : invalidToneMarkBuf); 
-                    }
-                
-                }
-            }
-    }
-    // set the spelling for the selection with no tone mark
-    ptiengine->EnableToneMarks(EFalse); 
-    ptiengine->SelectPhoneticSpelling(popup->CurrentSelection() + 1); // our index is zero based, engine index is one based
-    
-    // now switch the tonemark on only if the selection has a valid tonemark
-    // and then set the spelling to the adjusted tonemark position
-    ptiengine->EnableToneMarks(selectionToneMarkValid); 
-    ptiengine->SelectPhoneticSpelling(selectionIndexAdjustedForToneMarkValidity + 1); // our index is zero based, engine index is one based
-
-    // update the candidate pane.
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-    uiContainer->Enable(ETrue);
-
-    // need to enable the pinyin popup after the container so that it is raised to the front
-    popup->Enable(pinyinCountWithoutToneMarks > 0);
-    }
-
-void TAknFepInputStateEntryPinyin::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryPinyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1463 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIInputStatePinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepPanic.h"
-#include "AknFepUiInputStateEntryPinyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"		//Pinyin phrase
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <aknnotewrappers.h>
-
-const TText KPinyinTone0Valid = 0x02C9;
-const TText KPinyinTone1Valid = 0x02CA;
-const TText KPinyinTone2Valid = 0x02C7;
-const TText KPinyinTone3Valid = 0x02CB;
-const TText KPinyinTone4Valid = 0x02D9;
-const TText KPinyinTone4Invalid = 0x0020;
-
-const TInt KMaxPhraseCount = 100;
-const TInt KMaxKeystrokeCount = 100;
-const TInt KMaxShowKeystrokeCount = 31;
-
-const TInt KMaxPinyinLength = 60;
-
-const TInt KMaxStarCount = 5;
-
-const TInt KKey0Code = 48;
-const TInt KKey1Code = 49;
-const TInt KKey2Code = 50;
-const TInt KKey3Code = 51;
-const TInt KKey4Code = 52;
-const TInt KKey5Code = 53;
-const TInt KKey6Code = 54;
-const TInt KKey7Code = 55;
-const TInt KKey8Code = 56;
-const TInt KKey9Code = 57;
-
-_LIT( KPinyinListSeparator, "'" );
-_LIT( KPinyinStar, "*" );
-_LIT( KPinyinNote,"\x9020\x65B0\x8BCD" );
-_LIT( KPinyinManualSeparator, "\x002E");
-
-TAknFepInputStateEntryPinyinPhrase::TAknFepInputStateEntryPinyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane(EFalse);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-    uiContainer->ShowVerticalScrollArrows(ETrue);
-    uiContainer->ShowHorizontalScrollArrows(EFalse);
-    uiContainer->InputPane()->SetOverrideFontId(0);
-
-    iOwner->PtiEngine()->SetInputMode(EPtiEnginePinyinByPhrase);
-    iOwner->PtiEngine()->SetCandidatePageLength(KMaxPhraseCount);
-    uiContainer->PinyinPopupWindow()->SetTonemarkState( ETrue );
-    // set the state is in input state,
-    // so that it could handle EKeyCBA1
-    iOwner->FepMan()->EntryPhrase( ETrue );
-    uiContainer->SetFepMan( iOwner->FepMan() );
-    
-    ClearKeystrokeBuf();
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    ImplicitlyUpdateSelection();
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    if ( uiContainer->PinyinPopupWindow()->GetFromCandidateChangeStateFlag() )
-        {
-        uiContainer->PinyinPopupWindow()->SetFromCandidateChangeStateFlag( EFalse );
-        }
-    else
-        {
-        ClearDeliberateSelection();
-        }
-    
-    UpdateIndicator();
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-void TAknFepInputStateEntryPinyinPhrase::HandleCommandL( TInt aCommandId)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer( );
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow( );
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray( );
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray( );
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray( );
-    TInt currentSelect = popup->CurrentSelection( );
-    TInt inEffectSpellingCount = ptiengine->PhoneticSpellingCount( );
-    TBuf<KMaxKeystrokeCount> keystrokeBuf;
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeyCancel:
-            //  case (TUint16)EAknSoftkeyCancel: //the Cancle in soft CBA
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( (currentSelect < inEffectSpellingCount)
-                && (keystrokeArray->Count( )
-                    == inEffectKeystrokeArray->Count( ) )
-                && (popup->GetTonemarkState( ) ) )
-                {
-                if ( popup->IsEnabled( ) )
-                    {
-                    popup->Enable( EFalse );
-                    }
-                iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-                popup->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                }
-            else
-                {
-                GetKeystrokeBuf( *keystrokeArray, keystrokeBuf );
-                iOwner->FepMan()->PinyinPhraseCreation( ETrue );
-                popup->SetChangeState( ETrue );
-                popup->SetPhraseCreationState( ETrue );
-                if ( GetChangeState( ) )
-                    {
-                    ClearDeliberateSelection( );
-                    popup->Enable( EFalse );
-                    iOwner->ChangeState( ESpellingSelection );
-                    }
-                else
-                    {
-                    ClearDeliberateSelection( );
-                    popup->Enable( EFalse );
-                    iOwner->ChangeState( EKeySequenceEdit );
-                    }
-                }
-            break;
-        default:
-            DeliberatelyUpdateSelection( );
-            break;
-        }
-
-    }
-
-TBool TAknFepInputStateEntryPinyinPhrase::HandleKeyL( TInt aKey, TKeyPressLength aLength )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray();
-    TInt currentSelect = popup->CurrentSelection();
-    TInt inEffectSpellingCount = ptiengine->PhoneticSpellingCount();
-    TInt offset = 0;
-    
-    TBuf<1> keyBuf;
-    TBuf<1> keyShow;
-    TBuf<KMaxKeystrokeCount> keystrokeBuf;
-    
-    if(aKey == EKeyBackspace)
-        {
-        TBool state = ETrue;
-        if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            popup->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            DeleteCurrentKeystroke();
-            showKeystrokeArray->Delete( showKeystrokeArray->Count() - 1 );
-            showKeystrokeArray->Compress();
-            if ( inEffectKeystrokeArray->Count()> 0 )
-                {
-                ImplicitlyUpdateSelection();
-                }
-            else
-                {
-                ClearDeliberateSelection();
-                iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                if (aLength == ELongKeyPress)
-                    {
-                    iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                    }
-                }
-            }
-        }
-    else if(aKey == EKeyRightArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectNextPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if(aKey == EKeyLeftArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectPrevPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if( ( aKey == EKeyOK || aKey == EKeyDownArrow || aKey == EKeyCBA1)
-        && aLength == EShortKeyPress)
-        {
-        if ( ( currentSelect < inEffectSpellingCount) && 
-            ( keystrokeArray->Count() == inEffectKeystrokeArray->Count() ) &&
-            ( popup->GetTonemarkState() ) )
-            {
-            if(popup->IsEnabled())
-                {
-                popup->Enable(EFalse);
-                }
-            iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState(ECandidate);              
-            }
-        else
-            {
-            GetKeystrokeBuf( *keystrokeArray, keystrokeBuf );
-            iOwner->FepMan()->PinyinPhraseCreation( ETrue );
-            popup->SetChangeState( ETrue );
-            popup->SetPhraseCreationState( ETrue );
-            if ( GetChangeState() )
-                {
-                ClearDeliberateSelection();
-                popup->Enable( EFalse );
-                iOwner->ChangeState(ESpellingSelection);
-                }
-            else
-                {
-                ClearDeliberateSelection();
-                popup->Enable( EFalse );
-                iOwner->ChangeState(EKeySequenceEdit);
-                }
-            }
-        }
-    else if (aLength == EShortKeyPress) // don't want repeats on these keys
-        {
-    	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);            
-        
-        if ( ( iOwner->IsValidChineseInputKey(aKey) ) &&
-             ( CheckKeystroke( aKey, *keystrokeArray ) ) )
-            {
-            TInt stringBeforeLength(0);
-            TInt stringAfterLength(0);
-            GetKeystrokeNum( aKey, keyBuf );
-            keystrokeArray->AppendL( keyBuf );
-            showKeystrokeArray->AppendL( keyBuf );
-            
-            if ( popup->GetTonemarkState() )
-                {
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-                if (stringBeforeLength != stringAfterLength)
-                    {
-                    if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                        {
-                        iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT);
-                        }
-                    inEffectKeystrokeArray->AppendL(keyBuf);
-                    ImplicitlyUpdateSelection();
-                    }
-                else
-                    {
-                    ptiengine->EnableToneMarks(ETrue);
-                    UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-                    RefreshUI(0);
-                    } 
-                }
-            else
-                {
-                ImplicitlyUpdateSelection();
-                }
-            }
-        else if ( ( aKey == EPtiKeyStar ) &&  
-                  ( CheckKeystroke( aKey, *keystrokeArray ) ) ) // we increment the tone mark.
-            {
-            keyBuf.Append( EPtiKeyStar );
-            
-            if ( keystrokeArray->Count() == inEffectKeystrokeArray->Count() )
-                {
-                inEffectKeystrokeArray->AppendL(keyBuf);
-                keystrokeArray->AppendL( keyBuf );
-                GetPinyinToneMark( *keystrokeArray, keyShow );
-                ShowKeystrokeAppendL( *showKeystrokeArray, *keystrokeArray, keyShow );
-                CheckTonemarkL();
-                }
-            else
-                {
-                keystrokeArray->AppendL( keyBuf );
-                GetPinyinToneMark( *keystrokeArray, keyShow );
-                ShowKeystrokeAppendL( *showKeystrokeArray, *keystrokeArray, keyShow );
-                for ( TInt i = keystrokeArray->Count() - 1; i >= 0; i-- )
-                    {
-                    if ( 0 == keystrokeArray->MdcaPoint( i ).
-                            Compare( KPinyinStar ) )
-                        {
-                        offset = offset + 1;
-                        }
-                    else
-                        {
-                        break;
-                        }
-                    }
-                if ( offset > KMaxStarCount )
-                    {
-                    for ( TInt j = 0; j < KMaxStarCount; ++j )
-                        {
-                        keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-                        }
-                    keystrokeArray->Compress();
-                    }
-                }
-            ImplicitlyUpdateSelection();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Optimize spelling
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::OptimizeSpellingL( CDesCArrayFlat& aOptimizeBefore, CDesCArrayFlat& aOptimizeAfter )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    TBool checkSeparator = EFalse;
-    TBuf<KMaxPinyinLength> spellingBuf;
-    TInt bufLength = 0;
-    TInt countSeparator = 0;
-
-    TInt countBuf[KMaxPhraseCount];
-    memset( countBuf, 0, sizeof( countBuf ) );
-    
-    TInt position = 0;
-    TInt i = 0;
-    TInt j = 0;
-    
-    if ( 0 == inEffectKeystrokeArray->Count() )
-        {
-        return;
-        }
-    
-    for ( i = 0 ; i < inEffectKeystrokeArray->Count(); ++i )
-        {
-        if ( 0 == inEffectKeystrokeArray->MdcaPoint( i ).Compare( KPinyinListSeparator ) )
-            {
-            checkSeparator = ETrue;
-            countBuf[countSeparator] = j;
-            countSeparator = countSeparator + 1;
-            }
-        else
-            {
-            if (  0 == i  )
-                {
-                j = j + 1;
-                }
-            else
-                {
-                if ( ( 0 == inEffectKeystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) ) &&
-                    ( 0 != inEffectKeystrokeArray->MdcaPoint( i - 1 ).Compare( KPinyinStar ) ))
-                    {
-                    j = j + 1;
-                    }
-                else if ( 0 != inEffectKeystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-                    {
-                    j = j + 1;
-                    }
-                }
-            }
-        }
-  
-    j = 0;
-    for ( i = 0; i < aOptimizeBefore.Count(); ++i )
-        {
-        j = 0;
-        bufLength = 0;
-        position = 0;
-        spellingBuf.Size();
-        spellingBuf.Copy( aOptimizeBefore.MdcaPoint( i ) );
-        bufLength = spellingBuf.Length();
-        while( j < bufLength )
-            {
-            position = spellingBuf.Find( KPinyinListSeparator );
-            if ( position != KErrNotFound )
-                {
-                spellingBuf.Replace( position, 1, KPinyinManualSeparator );
-                j = position + 1;
-                }
-            else
-                {
-                break;
-                }
-            }
-        aOptimizeAfter.AppendL( spellingBuf );
-        }    
-    
-    if ( !checkSeparator )
-        {
-        return;
-        }
-    
-    aOptimizeBefore.Reset();
-    aOptimizeBefore.Compress();
-    
-    for ( i = 0; i < aOptimizeAfter.Count(); ++i )
-        {
-        aOptimizeBefore.AppendL( aOptimizeAfter.MdcaPoint( i ) );
-        }
-    
-    aOptimizeAfter.Reset();
-    aOptimizeAfter.Compress();
-    
-
-    for ( TInt k = 0; k < aOptimizeBefore.Count(); ++k )
-        {
-        j = 0;
-        bufLength = 0;
-        position = 0;
-        spellingBuf.Size();
-        spellingBuf.Copy( aOptimizeBefore.MdcaPoint( k ) );
-        bufLength = spellingBuf.Length();
-        for ( TInt kk = 0; kk < bufLength; ++kk )
-            {
-            if ( 0 == spellingBuf.Mid( kk, 1 ).Compare( KPinyinManualSeparator ) )
-                {
-                for ( TInt kkk = 0; kkk < countSeparator; ++kkk)
-                    {
-                    if ( j == countBuf[kkk] )
-                        {
-                        spellingBuf.Replace( kk, 1, KPinyinListSeparator );
-                        }
-                    }
-                }
-            else
-                {
-                j = j + 1;
-                }
-            }
-        aOptimizeAfter.AppendL( spellingBuf );
-        }
-    }
-void TAknFepInputStateEntryPinyinPhrase::DeliberatelyUpdateSelection()
-    {
-    TPtr deliberateSelection = iOwner->GetLatestDeliberateSelection();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    TInt selected = popup->CurrentSelection();
-    ptiengine->EnableToneMarks(EFalse);
-    TPtrC spelling = ptiengine->GetPhoneticSpelling(selected + 1); // our index is zero based, engine index is one based
-    deliberateSelection = spelling.Left(
-                        MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark);
-    ptiengine->EnableToneMarks(ETrue);
-    UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingNavigation);    
-    RefreshUI(popup->CurrentVisibleSelection());
-    }
-
-void TAknFepInputStateEntryPinyinPhrase::ImplicitlyUpdateSelection()
-    {
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    TInt oldDeliberateSelectionLength = oldDeliberateSelection.Length();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    // previously selected is compared in turn to each of the new candidates
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCount = ptiengine->PhoneticSpellingCount();
-    TInt newSelection = 0;
-    for(TInt i = 0; i < pinyinCount; i++)
-        {
-        TPtrC spelling = ptiengine->GetPhoneticSpelling(i + 1);  // our index is zero based, engine index is one based
-        TInt spellingLength = spelling.Length();
-
-        // figure out how many characters we are comparing, this depends on the 
-        // direction of the edit
-        TInt compareLength = oldDeliberateSelectionLength <= spellingLength ? 
-            oldDeliberateSelectionLength : spellingLength;
-
-        if(oldDeliberateSelection.Left(compareLength) == spelling.Left(compareLength))
-            {
-            // as soon as a substring match is found, the 
-            // highlight position is set to that candidate in the new list. 
-            // note that in the case of the first character entered, the
-            // oldBuf will be empty so it will always match... which is 
-            // fine as we want to select the top one anyway, so we will
-            // quit the loop early.
-            newSelection = i;
-            break;
-            }
-        }
-    
-        ptiengine->EnableToneMarks(ETrue);
-        UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-    	RefreshUI(newSelection);
-    }
-
-void TAknFepInputStateEntryPinyinPhrase::ClearDeliberateSelection()
-    {
-    // we must have just deleted the last character, 
-    // or we are starting a new pinyin session, so wipe the last deliberate selection
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    oldDeliberateSelection = KNullDesC;
-    }
-
-void TAknFepInputStateEntryPinyinPhrase::RefreshUI(TInt aSelection)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* optimizeSpelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* spelling = popup->OptimizeSpelling();
-        
-    TBuf<KMaxKeystrokeCount> keystrokeBuf;
-    
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-
-    TBool checkTonemark = popup->GetTonemarkState();
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> validToneMarkBuf;
-    if(toneMarkEntered)
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if(toneMark == KPinyinTone4Invalid)
-            toneMark = KPinyinTone4Valid;
-        validToneMarkBuf.Append(toneMark);
-        }
-
-    // to start with, disable the tone marks so we can get the list of all pinyin matches
-    // later we will figure out which ones are invalid
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-    if(pinyinCountWithoutToneMarks > 0)
-        {
-        if(popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingChanged))
-            {
-            if ( ( inEffectKeystrokeArray->Count() < keystrokeArray->Count() ) ||
-                ( !checkTonemark ) )
-                {
-                spelling->Reset();
-                optimizeSpelling->Reset();
-                spelling->Compress();
-                optimizeSpelling->Compress();
-                }
-            else
-                {
-                spelling->Reset();
-                optimizeSpelling->Reset();
-                spelling->Compress();
-                optimizeSpelling->Compress();
-            TRAPD(ignore, ptiengine->GetPhoneticSpellingsL(*spelling));
-            if (ignore != KErrNone)
-                    {
-                    return;
-                    }
-                
-                TRAPD( iOptimize, OptimizeSpellingL( *spelling, *optimizeSpelling ) );
-                if ( KErrNone != iOptimize )
-                    {
-                    return;
-                    }
-                }
-            
-            GetKeystrokeBuf( *showKeystrokeArray, keystrokeBuf );
-            
-            TRAPD( retOptimize, optimizeSpelling->AppendL( keystrokeBuf ) );
-            if ( KErrNone != retOptimize )
-                {
-                return;
-                }
-            popup->SplitPhraseSpellingIntoPages(); 
-            }
-
-        // set display page for delibrate selection
-        popup->SetDisplayPage(aSelection);
-        popup->SetPhraseItemTexts();
- 
-        // fill in input pane although it's invisible
-        if ( inEffectKeystrokeArray->Count() < keystrokeArray->Count() )
-            {
-            inputPane->SetText( keystrokeBuf );    
-            }
-        else
-            {
-            if ( optimizeSpelling->Count() > popup->CurrentSelection() )
-                {
-                inputPane->SetText( optimizeSpelling->MdcaPoint( popup->CurrentSelection() ) );
-                }
-            else
-                {
-                inputPane->SetText( KNullDesC );
-                }
-            }
-        popup->PopupSizeChanged(); // phrase input
-        }
-    // turn tone marks back on so that we know where we are.
-    ptiengine->EnableToneMarks(ETrue);
-
-    // this is where we start to figure out whether the tonemarks are valid,
-    // whether the selected tonemark is valid, and what is the index of the 
-    // selected candidate in the list of candidates with tonemarks...
-    TBool selectionToneMarkValid = EFalse;
-    TInt selectionIndexAdjustedForToneMarkValidity = popup->CurrentSelection();
-    
-    // we only need to deal with tone marks if there is one
-    if(toneMarkEntered)
-        {
-        if(pinyinCountWithoutToneMarks > 0)
-            {
-            for(TInt i = 0; i < pinyinCountWithoutToneMarks; i++)
-                {
-                TBool valid = EFalse;
-                
-                TBuf<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> nextCandidateWithoutToneMark;
-                nextCandidateWithoutToneMark.Copy(ptiengine->GetPhoneticSpelling(i + 1).Left(
-                      MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark));
-                
-                ptiengine->EnableToneMarks(EFalse); 
-                ptiengine->SelectPhoneticSpelling(i + 1);
-
-                valid = ptiengine->IsToneMarkValidForSpelling();
-                if(valid)
-                    {
-                    ptiengine->EnableToneMarks(ETrue); 
-                    TInt pinyinCountWithToneMarks = ptiengine->PhoneticSpellingCount();
-
-                    for(TInt j = 0; j < pinyinCountWithToneMarks; j++)
-                        {
-                        // use j here not i as we are looking at the list with tonemarks
-                        TPtrC nextCandidateWithToneMark = ptiengine->GetPhoneticSpelling(j + 1);  
-                        if(nextCandidateWithToneMark == nextCandidateWithoutToneMark)
-                            {
-                            if(i == aSelection)
-                                {
-                                selectionToneMarkValid = ETrue;
-                                
-                                // fill in input pane even if it can't be seen, for when we have to hide popup window
-                                inputPane->SetText(nextCandidateWithoutToneMark);
-                                }
-                            break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    ptiengine->EnableToneMarks(EFalse); 
-    ptiengine->SelectPhoneticSpelling(popup->CurrentSelection() + 1); 
-    // next two lines are for tonemark validity
-    ptiengine->EnableToneMarks(selectionToneMarkValid); 
-    ptiengine->SelectPhoneticSpelling(selectionIndexAdjustedForToneMarkValidity + 1); // our index is zero based, engine index is one based
-
-    // update the candidate pane.
-    if(popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingChanged) 
-        || popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingNavigation))
-        {
-        CDesCArrayFlat* phraseCandidates = uiContainer->CandidatePane()->CandidateArray();
-        if ( ( pinyinCountWithoutToneMarks > popup->CurrentSelection() ) && 
-             ( inEffectKeystrokeArray->Count() == keystrokeArray->Count() ) && 
-             checkTonemark )      
-            {
-            TRAPD(ignore, ptiengine->GetChinesePhraseCandidatesL(*phraseCandidates));
-            if (ignore != KErrNone)
-                {
-                return;
-                }            
-            }        
-        else if ( keystrokeArray->Count() != 0 )
-            {
-            phraseCandidates->Reset();
-            TRAPD( retAddPinyinNote, phraseCandidates->AppendL( KPinyinNote ) );
-            if ( KErrNone != retAddPinyinNote )
-                {
-                return;
-                }
-            }
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages(); 
-        popup->ClearFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged 
-                        | MAknFepUICtrlPinyinPopup::ESpellingNavigation);
-        }
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable(ETrue);
-    // need to enable the pinyin popup after the container so that it is raised to the front
-    popup->Enable(pinyinCountWithoutToneMarks > 0);
-    UpdateIndicator();
-    }
-
-void TAknFepInputStateEntryPinyinPhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT);
-    }
-    
-void TAknFepInputStateEntryPinyinPhrase::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-   
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-        }
-    else
-   	    {
-   	    uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-   	    }
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        candidatePane->IsFirstPage() )
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (candidatePane->IsLastPage() && 
-        (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    } 
-// ---------------------------------------------------------
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::DeleteCurrentKeystroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt i = keystrokeArray->Count() - 1;
-    TInt count = keystrokeArray->Count() - 1;
-    TInt inECTKeystrokeCount = inEffectKeystrokeArray->Count();
-    TInt validCount = 0;
-    
-    if ( keystrokeArray->Count() > inEffectKeystrokeArray->Count() )
-        {
-        for ( i = keystrokeArray->Count() - 1; i >= 0; i-- )
-            {
-            if ( 0 == keystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-                {
-                keystrokeArray->Delete( i );
-                }
-            else
-                {
-                if ( i == count )
-                    {
-                    keystrokeArray->Delete( i );
-                    break;
-                    }
-                break;
-                }
-           }
-        }
-    else
-        {
-        for ( TInt j = 0; j < inECTKeystrokeCount; ++j )
-            {            
-            if ( 0 != inEffectKeystrokeArray->
-                MdcaPoint( j ).Compare( KPinyinStar ) )
-                 {
-                 validCount = validCount + 1;
-                 }
-            if ( j > 1 )
-                {
-                if ( ( 0 != inEffectKeystrokeArray->MdcaPoint( j ).
-                    Compare( KPinyinStar ) ) && 
-                    ( 0 == inEffectKeystrokeArray->MdcaPoint( j - 1).
-                        Compare( KPinyinStar ) ) )
-                     {
-                     validCount = validCount + 1;
-                     }
-                if  ( ( j == inECTKeystrokeCount - 1 ) && 
-                    ( 0 == inEffectKeystrokeArray->MdcaPoint( j ).
-                        Compare( KPinyinStar ) ) )
-                    {
-                    validCount = validCount + 1;
-                    }
-                }
-            }
-        
-        if ( inEffectKeystrokeArray->Count() > 0 )
-            {
-            if ( 0 == inEffectKeystrokeArray->MdcaPoint( 
-                inEffectKeystrokeArray->Count() - 1 ).Compare( KPinyinStar ) )
-                {
-                popup->SetTonemarkState( ETrue );
-                }
-            }
-        
-        if ( 0 == keystrokeArray->MdcaPoint( keystrokeArray->Count() - 1 ).
-            Compare( KPinyinStar ) )
-            {
-            ptiengine->DeleteKeyPress();
-            for ( i = keystrokeArray->Count() - 1; i >= 0; i-- )
-                {
-                if ( 0 == keystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-                    {
-                    keystrokeArray->Delete( i );
-                    inEffectKeystrokeArray->Delete(i);
-                    }
-                else
-                    {
-                    break;
-                    }
-                }
-            }
-        else
-            {
-            keystrokeArray->Delete( i );
-            inEffectKeystrokeArray->Delete(i);
-            ptiengine->DeleteKeyPress();
-            }
-        }
-    keystrokeArray->Compress();
-    inEffectKeystrokeArray->Compress();
-    }
-
-// ---------------------------------------------------------
-// Add current keystroke.
-// ---------------------------------------------------------
-void TAknFepInputStateEntryPinyinPhrase::AddCurrentKeystrokeL( const TDesC& keystroke )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    const TInt offsetSize = 4;
-    TInt count = keystrokeArray->Count();
-    TInt offset = 0;
-    TInt i = count - 1;
-    
-    if ( 0 != keystroke.Compare( KPinyinStar ) )
-        {
-        if ( keystrokeArray->Count() > inEffectKeystrokeArray->Count() )
-            {
-            keystrokeArray->AppendL( keystroke );
-            keystrokeArray->Compress();
-            return;
-            }
-        else
-            {
-            keystrokeArray->AppendL( keystroke );
-            keystrokeArray->Compress();
-            inEffectKeystrokeArray->AppendL( keystroke );
-            inEffectKeystrokeArray->Compress();
-            return;
-            }
-        }
-    
-    for ( i = count - 1; i >= 0; i-- )
-        {
-        if ( 0 == keystrokeArray->MdcaPoint( i ).Compare( KPinyinStar ) )
-            {
-            offset = offset + 1;
-            }
-        else
-            {
-            break;
-            }
-        }     
-    if ( ( 0 <= offset ) && ( offset <= offsetSize ) )
-        {
-        if ( keystrokeArray->Count() > inEffectKeystrokeArray->Count() )
-            {
-            keystrokeArray->AppendL( keystroke );
-            keystrokeArray->Compress();
-            }
-        else
-            {
-            keystrokeArray->AppendL( keystroke );
-            keystrokeArray->Compress();
-            inEffectKeystrokeArray->AppendL( keystroke );
-            inEffectKeystrokeArray->Compress();
-            }
-        }
-    else
-        {
-        if ( keystrokeArray->Count() > inEffectKeystrokeArray->Count() )
-            {
-            for ( TInt ii = 0; ii < offsetSize; ++ii )
-            {
-                keystrokeArray->Delete( count - 1 -ii );
-            }
-            keystrokeArray->Compress();
-            }
-        else
-            {
-            for ( TInt ii = 0; ii < offsetSize; ++ii )
-            {
-                keystrokeArray->Delete( count - 1 -ii );
-                inEffectKeystrokeArray->Delete( count - 1 -ii );
-            }
-            keystrokeArray->Compress();
-            inEffectKeystrokeArray->Compress();
-            }
-        }    
-    }
-
-
-// ---------------------------------------------------------
-// Get the keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::GetKeystrokeNum( TInt aKey, TDes& aKeystroke ) 
-    {
-    switch(aKey)
-        {
-        case KKey0Code:
-            aKeystroke.Append( KPinyinListSeparator );
-            break;
-        case KKey1Code:
-            aKeystroke.Append( KPinyinListSeparator );
-            break;
-        case KKey2Code:
-            aKeystroke.Append(EPtiKey2);
-            break;
-        case KKey3Code:
-            aKeystroke.Append(EPtiKey3);
-            break;
-        case KKey4Code:
-            aKeystroke.Append(EPtiKey4);
-            break;
-        case KKey5Code:
-            aKeystroke.Append(EPtiKey5);
-            break;
-        case KKey6Code:
-            aKeystroke.Append(EPtiKey6);
-            break;
-        case KKey7Code:
-            aKeystroke.Append(EPtiKey7);
-            break;
-        case KKey8Code:
-            aKeystroke.Append(EPtiKey8);
-            break;
-        case KKey9Code:
-            aKeystroke.Append(EPtiKey9);
-            break;
-        default:
-            aKeystroke.Append(EPtiKeyStar);
-            break;
-        }
-    }
-
-// ---------------------------------------------------------
-// Get the keystroke buf.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::GetKeystrokeBuf(const CDesCArrayFlat& aKeystrokeArray, TDes& aKeystrokeBuf )
-    {
-    for ( TInt i = 0; i < aKeystrokeArray.Count(); ++i )
-        {
-        aKeystrokeBuf.Append(aKeystrokeArray.MdcaPoint(i));
-        }
-    }
-
-// ---------------------------------------------------------
-// clear keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::ClearKeystrokeBuf()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* chooseChineseArray = popup->ChooseChineseCharacterArray();
-    CDesCArrayFlat* chooseChienseKeystroke = popup->ChooseChineseCharacterArrayKeystroke();
-    
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt pinyinCount = ptiengine->PhoneticSpellingCount();
-    chooseChineseArray->Reset();
-    chooseChienseKeystroke->Reset();
-    
-    if ( 0 == pinyinCount )
-        {
-        keystrokeArray->Reset();
-        inEffectKeystrokeArray->Reset();
-        showKeystrokeArray->Reset();
-        }
-    }
-
-// ---------------------------------------------------------
-// Get tome mark.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::GetPinyinToneMark( const CDesCArrayFlat& aKeystrokeArray, TDes& aPinyinToneMark )
-    {
-    TInt starCount = 0;
-    TInt pinyinToneMark;
-    TBuf<1> buf;
-    TInt count = aKeystrokeArray.Count();
-    const TInt toneMark0 = 0;
-    const TInt toneMark1 = 1;
-    const TInt toneMark2 = 2;
-    const TInt toneMark3 = 3;
-    const TInt toneMark4 = 4;
-    
-    if ( 0 == count )
-        {
-        aPinyinToneMark.Append( KPinyinTone0Valid );
-        return;
-        }
-    
-    for ( TInt i = count - 1; i >= 0; --i )
-        {
-        buf = aKeystrokeArray.MdcaPoint( i );
-        if ( 0 == buf.Compare( KPinyinStar ) )
-            {
-            starCount = starCount + 1; 
-            }
-        else
-            {
-            break;
-            }
-        }
-    
-    if ( 0 == starCount )
-        {
-        aPinyinToneMark.Append( KPinyinTone0Valid );
-        }
-    else
-        {
-        pinyinToneMark = starCount % KMaxStarCount;
-        switch ( pinyinToneMark )
-            {
-            case toneMark0:
-                aPinyinToneMark.Append( KPinyinTone4Valid );
-                break;
-            case toneMark1:
-                aPinyinToneMark.Append( KPinyinTone0Valid );
-                break;
-            case toneMark2:
-                aPinyinToneMark.Append( KPinyinTone1Valid );
-                break;
-            case toneMark3:
-                aPinyinToneMark.Append( KPinyinTone2Valid );
-                break;
-            case toneMark4:
-                aPinyinToneMark.Append( KPinyinTone3Valid );
-                break;
-            default:
-               break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// Check keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryPinyinPhrase::CheckKeystroke( TInt aKey, const CDesCArrayFlat& aKeystrokeArray )
-    {
-    CDesCArrayFlat* showKeystrokeArray = UIContainer()->
-        PinyinPopupWindow()->ShowKeystrokeArray();
-    
-    TInt count = showKeystrokeArray->Count();
-    TBuf<1> keyBuf;
-    
-    if ( count >= KMaxShowKeystrokeCount )
-        {
-        if ( ( 0 != aKeystrokeArray.MdcaPoint( aKeystrokeArray.Count() - 1 ).
-            Compare( KPinyinStar ) ) || ( aKey != EPtiKeyStar )  )
-            {
-            return EFalse;
-            }
-        }
-    
-    GetKeystrokeNum( aKey, keyBuf );
-
-    if ( 0 == aKeystrokeArray.Count() )
-        {        
-        if ( ( 0 == keyBuf.Compare ( KPinyinStar ) ) || ( 0 == keyBuf.Compare ( KPinyinListSeparator ) ) )
-            {
-            return EFalse;
-            }        
-        }
-    else
-        {
-        if ( 0 == aKeystrokeArray.MdcaPoint( aKeystrokeArray.Count() - 1 ).Compare( KPinyinStar ) && 
-            ( 0 == keyBuf.Compare ( KPinyinListSeparator ) ) )
-            {
-            return EFalse;
-            }
-        
-        if ( 0 == aKeystrokeArray.MdcaPoint( aKeystrokeArray.Count() - 1 ).Compare( KPinyinListSeparator ) && 
-            ( 0 == keyBuf.Compare ( KPinyinStar ) ) )
-            {
-            return EFalse;
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Check tome mark.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::CheckTonemarkL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->OptimizeSpelling();
-
-    TInt tonemarkCount = 0;
-    TInt spellTonemarkCount = 0;
-    TInt keystrokeStarCount = 0;
-
-    TInt offset = 0;
-    TInt i = 0;
-    TBool checkReturn = EFalse;
-    
-    TBuf<1> buf;
-    TBuf<1> lastTonemark;
-    TBuf<1> lastSpellTonemark;
-    TBuf<1> tonmarkBuf0;
-    TBuf<1> tonmarkBuf1;
-    TBuf<1> tonmarkBuf2;
-    TBuf<1> tonmarkBuf3;
-    TBuf<1> tonmarkBuf4;
-    TBuf<KMaxPinyinLength> spellBuf;
-    
-    tonmarkBuf0.Append( KPinyinTone0Valid );
-    tonmarkBuf1.Append( KPinyinTone1Valid );
-    tonmarkBuf2.Append( KPinyinTone2Valid );
-    tonmarkBuf3.Append( KPinyinTone3Valid );
-    tonmarkBuf4.Append( KPinyinTone4Valid );
-    
-    if ( 0 == inEffectKeystrokeArray->Count() )
-        {
-        popup->SetTonemarkState( EFalse );
-        return;
-        }
-    
-    if ( keystrokeArray->Count() > inEffectKeystrokeArray->Count() )
-        {
-        popup->SetTonemarkState( EFalse );
-        return;
-        }
-    
-    for ( i = 0; i < showKeystrokeArray->Count(); ++i )
-        {
-        buf.Copy( showKeystrokeArray->MdcaPoint( i ) );
-        if ( 0 == buf.Compare( tonmarkBuf0 ) )
-            {
-            tonemarkCount = tonemarkCount + 1;
-            lastTonemark.Copy( showKeystrokeArray->MdcaPoint( i ) );
-            }
-        else if ( 0 == buf.Compare( tonmarkBuf1 ) )
-            {
-            tonemarkCount = tonemarkCount + 1;
-            lastTonemark.Copy( showKeystrokeArray->MdcaPoint( i ) );
-            }
-        else if ( 0 == buf.Compare( tonmarkBuf2 ) )
-            {
-            tonemarkCount = tonemarkCount + 1;
-            lastTonemark.Copy( showKeystrokeArray->MdcaPoint( i ) );
-            }
-        else if ( 0 == buf.Compare( tonmarkBuf3 ) )
-            {
-            tonemarkCount = tonemarkCount + 1;
-            lastTonemark.Copy( showKeystrokeArray->MdcaPoint( i ) );
-            }
-        else if ( 0 == buf.Compare( tonmarkBuf4 ) )
-            {
-            tonemarkCount = tonemarkCount + 1;
-            lastTonemark.Copy( showKeystrokeArray->MdcaPoint( i ) );
-            }
-        }
-    
-    if ( 0 == tonemarkCount )
-        {
-        popup->SetTonemarkState( ETrue );
-        return;
-        }
-
-    for( i = 0; i < inEffectKeystrokeArray->Count(); ++i )
-        {
-        if ( 0 == inEffectKeystrokeArray->MdcaPoint( 
-            inEffectKeystrokeArray->Count() - 1 - i ).Compare( KPinyinStar ) )
-            {
-            keystrokeStarCount = keystrokeStarCount + 1;
-            }
-        else
-            {
-            break;
-            }
-        }
-    if ( keystrokeStarCount > 1 )
-        {
-        ptiengine->DeleteKeyPress();
-        }
-    
-    if ( keystrokeStarCount > KMaxStarCount )
-        {
-        offset = 1;
-        for ( i = 0; i < KMaxStarCount; ++i )
-            {
-            keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-            inEffectKeystrokeArray->Delete( inEffectKeystrokeArray->Count() - 1 );
-            }
-        }
-    else
-        {
-        offset = keystrokeStarCount;
-        }
-    
-    if ( 0 == offset )
-        {
-        popup->SetTonemarkState( ETrue );
-        return;
-        }
-    else
-        {
-        for( i = 0; i < offset; ++i )
-            {
-            ptiengine->IncrementToneMark( ETrue );
-            spelling->Reset();
-            spelling->Compress();
-            ptiengine->GetPhoneticSpellingsL(*spelling);
-            for ( TInt j = 0; j < spelling->Count(); ++j )
-                {
-                spellTonemarkCount = 0;
-                spellBuf.Copy( spelling->MdcaPoint( j ) );
-                for ( TInt jj = 0; jj < spellBuf.Length(); ++jj )
-                    {
-                    if ( 0 == spellBuf.Mid( jj, 1 ).Compare( tonmarkBuf0 ) )
-                        {
-                        spellTonemarkCount = spellTonemarkCount + 1;
-                        lastSpellTonemark.Copy( tonmarkBuf0 );
-                        }
-                    else if ( 0 == spellBuf.Mid( jj, 1 ).Compare( tonmarkBuf1 ) )
-                        {
-                        spellTonemarkCount = spellTonemarkCount + 1;
-                        lastSpellTonemark.Copy( tonmarkBuf1 );
-                        }
-                    else if ( 0 == spellBuf.Mid( jj, 1 ).Compare( tonmarkBuf2 ) )
-                        {
-                        spellTonemarkCount = spellTonemarkCount + 1;
-                        lastSpellTonemark.Copy( tonmarkBuf2 );
-                        }
-                    else if ( 0 == spellBuf.Mid( jj, 1 ).Compare( tonmarkBuf3 ) )
-                        {
-                        spellTonemarkCount = spellTonemarkCount + 1;
-                        lastSpellTonemark.Copy( tonmarkBuf3 );
-                        }
-                    else if ( 0 == spellBuf.Mid( jj, 1 ).Compare( tonmarkBuf4 ) )
-                        {
-                        spellTonemarkCount = spellTonemarkCount + 1;
-                        lastSpellTonemark.Copy( tonmarkBuf4 );
-                        }
-                    }
-                
-                if ( ( tonemarkCount != spellTonemarkCount ) ||
-                    ( 0 != lastSpellTonemark.Compare( lastTonemark ) ))
-                    {
-                    checkReturn = EFalse;
-                    break;
-                    }
-                else
-                    {
-                    checkReturn = ETrue;
-                    }
-                }
-            if ( checkReturn )
-                {
-                break;
-                }
-            }
-        }
-    
-    spelling->Reset();
-    spelling->Compress();
-    
-    if ( checkReturn )
-        {
-        popup->SetTonemarkState( ETrue );
-        return;
-        }
-    else
-        {
-        popup->SetTonemarkState( EFalse );
-        return;
-        }
-    
-    }
-
-// ---------------------------------------------------------
-// Get change state.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryPinyinPhrase::GetChangeState()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* KeystrokeArray = popup->KeystrokeArray();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    TInt firstIndex = -1;
-    TInt count = inEffectKeystrokeArray->Count() - 1;
-    
-
-    
-    if ( 2 > inEffectKeystrokeArray->Count() )
-        {
-        return ETrue;
-        }
-    
-    for ( TInt i = count; i >= 0; i-- )
-        {
-        if ( 0 != inEffectKeystrokeArray->MdcaPoint( i ).
-            Compare( KPinyinStar ) )
-            {
-            firstIndex = i;
-            break;
-            }
-        }
-    
-    if ( ( 0 == firstIndex ) && ( !popup->GetTonemarkState() ) )
-        {
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Append show keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::ShowKeystrokeAppendL( 
-                                          CDesCArrayFlat& aShowKeystrokeArray, 
-                                          const CDesCArrayFlat& aKeystrokeArray, 
-                                          const TDesC& aPinyinToneMark )
-    {
-    TInt showCount = 0;
-    TInt count = 0;
-    TBuf<1> buf;
-    count = aKeystrokeArray.Count();
-    showCount = aShowKeystrokeArray.Count();
-    
-    if ( ( count > 2 ) && ( showCount > 1 ) )
-        {
-        if ( 0 == aKeystrokeArray.MdcaPoint( count - 2 ).Compare( KPinyinStar ) )
-            {
-            aShowKeystrokeArray.Delete( showCount - 1 );
-            aShowKeystrokeArray.Compress();
-            aShowKeystrokeArray.AppendL( aPinyinToneMark );
-            }
-        else
-            {
-            aShowKeystrokeArray.AppendL( aPinyinToneMark );
-            }
-        }
-    else
-        {
-        aShowKeystrokeArray.AppendL( aPinyinToneMark );
-        }
-    }
-
-// ---------------------------------------------------------
-// change  CBA.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhrase::ChangeCbaL()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TInt lastRes = popup->GetLastResouce();
-    if ( lastRes == R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT )
-        {
-        return;
-        }
-    iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-    popup->SetLastResouce( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepUIInputStateEntryQwertyBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateEntryQwertyBase.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TText KPinyinTone4Valid = 0x02D9;
-const TText KPinyinTone4Invalid = 0x0020;
-
-TAknFepInputStateEntryQwertyBase::TAknFepInputStateEntryQwertyBase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwerty(aOwner,aUIContainer)                           
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->ShowHorizontalScrollArrows(EFalse);
-    uiContainer->FocusCandidatePane(ETrue);
-
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->SelectFirst();
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    }
-
-TBool TAknFepInputStateEntryQwertyBase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TBool ret = ETrue;
-    
-    if(aKey == EStdKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-            UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-            uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = ptiengine->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-        UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-        uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-        SetInputPaneToneMark();
-        RefreshUI();
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyBase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyBase::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> validToneMarkBuf;
-    if(toneMarkEntered)
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if(toneMark == KPinyinTone4Invalid)
-            toneMark = KPinyinTone4Valid;
-        validToneMarkBuf.Append(toneMark);
-        }
-    
-    ptiengine->EnableToneMarks(ETrue);
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SelectFirst();
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    inputPane->SetToneMark(validToneMarkBuf);  
-    }
-
-void TAknFepInputStateEntryQwertyBase::SetInputPaneToneMark()
-    {
-    }
-
-void TAknFepInputStateEntryQwertyBase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyBaseChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of entry qwertybase chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateEntryQwertyBaseChinesePhrase.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TInt KMaxPhraseCount = 50;
-
-TAknFepInputStateEntryQwertyBaseChinesePhrase::TAknFepInputStateEntryQwertyBaseChinesePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinesePhrase(aOwner,aUIContainer)                           
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    iOwner->PtiEngine()->SetCandidatePageLength(KMaxPhraseCount);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->SelectFirstPhrase();
-    candidatePane->ShowCandidateOrdinals(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateEntryQwertyBaseChinesePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    TBool ret = ETrue;
-
-    if(aKey == EStdKeyBackspace)
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            SetInputPaneToneMark();
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        }
-    else if(aLength == EShortKeyPress && iOwner->IsValidChineseInputKeyQwerty(aKey) )
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                uiContainer->CandidatePane()->IsFirstPage()));
-        SetInputPaneToneMark();
-        inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        RefreshUI();
-        }
-    else
-        {
-        ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey,aLength);
-        }
-
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyBaseChinesePhrase::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    // layout candidate and fill candidate buffer for first display page
-    TInt candidateCount = 0;
-    if(inputPane->IsFlagSet(MAknFepUICtrlInputPane::EPhoneticChanged))
-        {
-        inputPane->ClearFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        TRAPD(ignore,
-              candidateCount = ptiengine->GetChinesePhraseCandidatesL(
-                    *(uiContainer->CandidatePane()->CandidateArray())));
-        if(candidateCount == 0 || ignore != KErrNone)
-            {
-            return;
-            }    
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        }
- 
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SetCandidateBuffer();
- 
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    UpdateIndicator();
-    }
-
-void TAknFepInputStateEntryQwertyBaseChinesePhrase::SetInputPaneToneMark()
-    {
-    }
-
-void TAknFepInputStateEntryQwertyBaseChinesePhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyBasePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,160 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepUIInputStateEntryQwertyBasePhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateEntryQwertyBasePhrase.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-TAknFepInputStateEntryQwertyBasePhrase::TAknFepInputStateEntryQwertyBasePhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyPhrase(aOwner,aUIContainer)                           
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->SelectFirstPhrase();
-    candidatePane->ShowCandidateOrdinals(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    }
-
-TBool TAknFepInputStateEntryQwertyBasePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    TBool ret = ETrue;
-
-    if(aKey == EStdKeyBackspace)
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            SetInputPaneToneMark();
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        }
-    else if(aLength == EShortKeyPress && iOwner->IsValidChineseInputKeyQwerty(aKey) )
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                uiContainer->CandidatePane()->IsFirstPage()));
-        SetInputPaneToneMark();
-        inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        RefreshUI();
-        }
-    else
-        {
-        ret = TAknFepInputStateCandidateQwertyBasePhrase::HandleKeyL(aKey,aLength);
-        }
-
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyBasePhrase::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    // layout candidate and fill candidate buffer for first display page
-    TInt candidateCount = 0;
-    if(inputPane->IsFlagSet(MAknFepUICtrlInputPane::EPhoneticChanged))
-        {
-        inputPane->ClearFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        TRAPD(ignore,
-              candidateCount = ptiengine->GetChinesePhraseCandidatesL(
-                   *(uiContainer->CandidatePane()->CandidateArray())));
-        if(candidateCount == 0 || ignore != KErrNone)
-            {
-            return;
-            }    
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        }
- 
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SetCandidateBuffer();
- 
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    }
-
-void TAknFepInputStateEntryQwertyBasePhrase::SetInputPaneToneMark()
-    {
-    }
-
-void TAknFepInputStateEntryQwertyBasePhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyCangJie.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepUIInputStateEntryQwertyCangJie methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUiInputStateEntryQwertyCangJie.h"
-#include "AknFepUICtrlCandidatePane.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.hrh>
-
-const TInt KEasyCangJieLengthLimit(2);      // Spelling limit for Easy CangJie is 2 characters
-const TInt KNormalAdvCangJieLengthLimit(5); // Spelling limit for Normal and Advanced CangJie is 5 characters
-
-TAknFepInputStateEntryQwertyCangJie::TAknFepInputStateEntryQwertyCangJie(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBase(aOwner,aUIContainer)                           
-    {
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->SetInputMode( ( TPtiEngineInputMode )iOwner->FepMan()->CangJieMode() );
-
-    // This is a must otherwise Engine cannot find keys in KeyMapping
-    ptiengine->SetCase(EPtiCaseLower);
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    }
-
-TBool TAknFepInputStateEntryQwertyCangJie::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TPtiEngineInputMode currentMode = ptiengine->InputMode();
-
-    TBool processKey = ETrue;
-
-    if (!IsValidCangJieCode(aKey))
-        return TAknFepInputStateEntryQwertyBase::HandleKeyL(aKey, aLength);
-    
-    TInt bufferLength = 0;
-    TInt lengthLimit = 0;
-    // Limit the length of the key append for different CangJie level
-    switch(currentMode)
-        {
-        case EPtiEngineEasyCangjieQwerty:
-            lengthLimit = KEasyCangJieLengthLimit;
-            break;
-        case EPtiEngineNormalCangjieQwerty:
-        case EPtiEngineAdvCangjieQwerty:
-            lengthLimit = KNormalAdvCangJieLengthLimit;
-            break;
-        default:
-            break;
-        }
-        
-    if (ptiengine->PhoneticSpellingCount() > 0)
-        {
-        TPtrC spellingBuf = ptiengine->GetPhoneticSpelling(1);
-        bufferLength = spellingBuf.Length();
-        
-        if (bufferLength >= lengthLimit)
-            {
-            processKey = EFalse;
-            fepMan->PlaySound(EAvkonSIDConfirmationTone);
-            }
-        }    
-
-    return processKey ? TAknFepInputStateEntryQwertyBase::HandleKeyL(aKey, aLength) : ETrue;
-    }
-
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyPinyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateEntryQwertyPinyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateEntryQwertyPinyin.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TText KPinyinTone4Valid = 0x02D9;
-const TText KPinyinTone4Invalid = 0x0020;
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateEntryQwertyPinyin::TAknFepInputStateEntryQwertyPinyin(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBase(aOwner,aUIContainer)                           
-    {
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetInputMode(EPtiEnginePinyinQwerty);
-    ptiengine->SetCase(EPtiCaseLower);
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateEntryQwertyPinyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();    
-    TBool ret = ETrue;
-
-    if((aKey == EStdKeyLeftFunc) && (aLength == EShortKeyPress))
-        {
-        if(ptiengine->IncrementToneMark(ETrue))
-            {
-            RefreshUI();
-            }
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }        
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-            {
-            iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-            }            
-            RefreshUI();
-            }
-	    else
-	        {
-	        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-	        }            
-        
-        if (ptiengine->GetPhoneticSpelling(1).Length() == 0)
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            }
-        }        
-    else if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                iOwner->FepMan()->NewCharacterL(text);
-                iOwner->FepMan()->CommitInlineEditL();
-                if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveInput);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyPinyin::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    SetInputPaneToneMark();    
-
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-  
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> validToneMarkBuf;
-    if(toneMarkEntered)
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if(toneMark == KPinyinTone4Invalid)
-            toneMark = KPinyinTone4Valid;
-        validToneMarkBuf.Append(toneMark);
-        }
-
-    ptiengine->EnableToneMarks(ETrue);
- 
-    if (ptr.Length() > 0)
-        {
-        TPtrC candidates = ptiengine->CandidatePage();
-        uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-        uiContainer->Enable(ETrue);
-        uiContainer->CandidatePane()->SelectFirst();
-        
-        inputPane->SetText(ptr);
-        inputPane->SetToneMark(validToneMarkBuf);  
-     
-        UpdateIndicator();
-        }
-    }
-    
-TBool TAknFepInputStateEntryQwertyPinyin::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            ptiengine->NumberOfCandidates() == 0)
-            {
-            return ETrue;
-            }
-        
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        UpdateIndicator();            
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        
-        if (bufLength != KMaxCandidateCountFromCore &&
-            candidatePane->SelectedIndex() == (bufLength -1))
-            {
-			return ETrue;
-            }
-        
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        UpdateIndicator();    
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateEntryQwertyPinyin::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() != 
-            KMaxCandidateCountFromCore)
-            {
-            return ETrue;
-            }
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() == 0)
-            {								 
-            return ETrue;
-            }
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    UpdateIndicator();
-    return ETrue;
-    }
- 
- void TAknFepInputStateEntryQwertyPinyin::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (bufLength != KMaxCandidateCountFromCore &&
-        candidatePane->SelectedIndex() == (bufLength -1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyPinyin::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
- void TAknFepInputStateEntryQwertyPinyin::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyPinyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateEntryQwertyPinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUiInputStateEntryQwertyPinyinPhrase.h"
-#include "AknFepManager.h"  
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TInt KInputPaneLength = 32;
-_LIT(KSep, "'");
-_LIT(KReplace, "");
-
-TAknFepInputStateEntryQwertyPinyinPhrase::TAknFepInputStateEntryQwertyPinyinPhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner,aUIContainer)                           
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEnginePinyinPhraseQwerty);
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    }
-
-TBool TAknFepInputStateEntryQwertyPinyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-
-    if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        if(ptiengine->IncrementToneMark(ETrue))
-            {
-            TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                    uiContainer->CandidatePane()->IsFirstPage());
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-            uiContainer->InputPane()->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        }
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) ||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        ret = ETrue;
-        }        
-    else if(aLength == EShortKeyPress && iOwner->IsValidChineseInputKeyQwerty(aKey) )
-        {
-        if (!uiContainer->IsEnabled() && 
-            (aKey == EPtiKeyQwertyI || aKey == EPtiKeyQwertyU || aKey == EPtiKeyQwertyV))
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            iOwner->ChangeState(EQwerty);
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            return ret;     
-            }
-
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                {
-                iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-                }
-            
-            TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                    uiContainer->CandidatePane()->IsFirstPage());
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);         
-            SetInputPaneToneMark();
-            uiContainer->InputPane()->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-            
-        if (ptiengine->GetPhoneticSpelling(1).Length() == 0)
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            }
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            SetInputPaneToneMark();
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-   else if (aKey == EStdKeyEnter)
-        {
-        TBuf<KInputPaneLength> currentText;
-        inputPane->GetText(currentText);
-        
-        while(currentText.Find(KSep)> 0)
-            {
-            currentText.Replace(currentText.Find(KSep), 1,KReplace);
-            }
-        
-        
-        if(currentText.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(currentText);
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL();                
-                }
-            }
-        }
-    else if (aKey == EStdKeySpace)
-        {
-        TInt index = MapKeyToIndex(EStdKeyDevice3);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        TPtrC text = candidatePane->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                }
-            }
-        else
-            {
-            // No candidates available. Back to Entry state.
-            iOwner->ChangeState(EEntry);
-            }
-        }
-    else 
-        {
-        ret = TAknFepInputStateEntryQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-        
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyStroke.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateEntryQwertyStroke methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUiInputStateEntryQwertyStroke.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateEntryQwertyStroke::TAknFepInputStateEntryQwertyStroke(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBase(aOwner,aUIContainer)                           
-    {
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (ptiengine->InputMode() != EPtiEngineStrokeQwerty)
-        {
-        ptiengine->SetInputMode(EPtiEngineStrokeQwerty);
-        }
-    
-    ptiengine->SetCase(EPtiCaseLower);
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    }
-
-TBool TAknFepInputStateEntryQwertyStroke::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TBool ret = ETrue;
-    
-    if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }            
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!( HandleVerticalNavigation(aKey) || HandleHorizontalNavigation(aKey) ))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveInput);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    else if (!iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-        
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyStroke::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SelectFirst();
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateEntryQwertyStroke::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            ptiengine->NumberOfCandidates() == 0)
-            {
-            return ETrue;
-            }
-        
-        if(!candidatePane->SelectPrev())
-            {
-            ptiengine->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectLast();
-            }
-        UpdateIndicator();            
-        response = ETrue;
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        
-        if (bufLength != KMaxCandidateCountFromCore &&
-            candidatePane->SelectedIndex() == (bufLength -1))
-            {
-			return ETrue;
-            }
-        
-        if(!candidatePane->SelectNext())
-            {
-            ptiengine->NextCandidatePage();
-            candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-            candidatePane->SelectFirst();
-            }
-        UpdateIndicator();    
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateEntryQwertyStroke::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() != 
-            KMaxCandidateCountFromCore)
-            {
-            return ETrue;
-            }
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() == 0)
-            {								 
-            return ETrue;
-            }
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    UpdateIndicator();
-    return ETrue;
-    }
- 
-void TAknFepInputStateEntryQwertyStroke::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (bufLength != KMaxCandidateCountFromCore &&
-        candidatePane->SelectedIndex() == (bufLength -1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyStroke::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-
-void TAknFepInputStateEntryQwertyStroke::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Stroke phrase Qwerty entry state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>
-
-// User includes
-#include "AknFepUiInputStateEntryQwertyStrokePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManagerUIInterface.h"      
-#include "AknFepManager.h"                 
-
-// Constant definition
-const TInt KMinCnadidateCount = 1;
-const TInt KEnginePhoneticIndex = 1;
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyStrokePhrase::
-// TAknFepInputStateEntryQwertyStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryQwertyStrokePhrase::TAknFepInputStateEntryQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    
-    if (EPtiEngineStrokePhraseQwerty != iOwner->PtiEngine()->InputMode())
-        {
-        iOwner->PtiEngine()->SetInputMode(EPtiEngineStrokePhraseQwerty);
-        }
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryQwertyStrokePhrase::HandleKeyL(TInt aKey, 
-                                                           TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    TBool ret = ETrue;
-    
-
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) ||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        ret = ETrue;
-        } 
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(KEnginePhoneticIndex).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }            
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-   else if (aKey == EStdKeyEnter)
-        {
-        return ret;
-        }
-    else
-        { 
-        ret = TAknFepInputStateEntryQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-        
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyStrokePhrase::RefreshUI
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryQwertyStrokePhrase::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // get cursor position
-    TPoint baseLine;
-    TInt height(0);
-    TInt ascent(0);
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);
-        }
-
-    // layout candidate and fill candidate buffer for first display page
-    TInt candidateCount(0);
-    TRAP(ret,
-         candidateCount = ptiengine->GetChinesePhraseCandidatesL(
-               *(uiContainer->CandidatePane()->CandidateArray())));
-    if(candidateCount == 0 || ret != KErrNone)
-        {
-        return;
-        }  
-          
-    uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-    uiContainer->CandidatePane()->SetCandidateBuffer(); 
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCnadidateCount;
-        
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(KEnginePhoneticIndex);
-    inputPane->SetText(ptr);
-    UpdateIndicator();
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,673 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateEntryQwertyWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryQwertyWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiManagerWestern.h"
-#include "AknFepManager.h"
-#include "AknFepPanic.h"
-#include "AknFepCaseManager.h"
-#include "AknFepPluginManager.h"
-
-#include <PtiEngine.h>              //CPtiEngine
-#include <PtiDefs.h>                //keys
-#include <PtiCompositionDataIF.h>   //MPtiEngineCompositionDataInterface
-#include <featmgr.h>                //FeatureManager
-#include <e32keys.h>
-#include <aknfep.rsg>
-
-
-static const TInt KKeyMappingsLength = 63;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TAknFepInputStateEntryQwertyWesternPredictive::
-TAknFepInputStateEntryQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    //this class insists on the existence of a case manager
-    __ASSERT_DEBUG(iOwner->CaseMan(), AknFepPanic(EAknFepPanicNoCaseManager));
-
-    iState = EEntry;
-    iMatchState = EWordMatchNone;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-
-    ptiengine->SetInputMode(EPtiEngineQwertyPredictive );    
-    ptiengine->SetCase(caseMode);
-    TBool isUnlimitedEditor = EFalse;
-    ptiengine->SetMaxLengthForAutoCompletedCandidates(
-              fepMan->EditorFreeSpaceForAutoWordCompletion(isUnlimitedEditor ));
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(fepMan->IsAutoCompleteOn())
-    {
-	    TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandEnableAutoCompletion ));
-    }
-    else
-    {
-	    TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandDisableAutoCompletion ));
-    }
-    TPtiErrorCorrectionLevel correctionLevel = 
-                    (TPtiErrorCorrectionLevel)fepMan->AdvancedPredictiveTypingCorrectionLevel();
-    TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetCorrectionLevel, 
-                                          &correctionLevel ));	
-	
-    TPtiKeyboardType keyboard = fepMan->KeyboardLayout();
-    ptiengine->SetKeyboardType(keyboard);
-	
-    TBool isNumberCandidateShown = fepMan->IsAdvancedPredictiveNumberCandidateShown();
-    TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, 
-                                          &isNumberCandidateShown ));
-	
-    TBool primaryCandidateState = fepMan->AdvancedPredictivePrimaryCandidate();
-    TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetProactiveCorrection, 
-                                          &primaryCandidateState ));
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    }
-
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepInputStateEntryQwertyWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-	if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-		ptiengine->SetCase(EPtiCaseFnLower);
-		}
-
-    // Handle the Chr cycling
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        if ( iData && (iData != aKey) )
-            {
-            // Chr key is still pressed down but character key was changed from previous one
-            // to new one. The previous character is committed and PtiEngine starts 
-            // prosessing new key.
-            ptiengine->CancelTimerActivity();
-            
-            if ( !fepMan->EditorHasFreeSpace() )
-                {
-                return EFalse;
-                }
-            }
-        fepMan->SetFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        }
-
-    TBool response = EFalse;
-
-
-    // Handle dead keys with space or backspace. These keys are not mapped in PtiEngine, so they cannot
-    // be handled there.
-    if ( ptiengine->HandleCommandL(EPtiCommandDeadKeyWaiting) == 1 )
-        {
-        if ( aKey == EStdKeyBackspace )
-            {
-            // Pending dead key is removed with backspace. No other characters are removed.
-            ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-            response = ETrue;
-            }
-        else if ( aKey == EStdKeySpace )
-            {
-            // Dead key followed by space enters the dead key root character
-            TText deadRoot = ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-            ptiengine->HandleCommandL( EPtiCommandAppendCharacter, &deadRoot );
-            
-            TPtrC newText = ptiengine->CurrentWord();
-            fepMan->UpdateInlineEditL( newText, newText.Length() );
-            iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-            
-            response = ETrue;
-            }
-        }		    
-
-    if (!response) // key not yet handled
-        {
-        switch (aKey)
-            {
-            case EStdKeySpace: //fall through
-            case EStdKeyEnter:
-            case EStdKeyTab:
-            case EStdKeyLeftArrow:
-            case EStdKeyRightArrow:
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-                response = HandleWordBreakingKeysL(aKey);
-                break;
-                
-            // Long press of shift key start copy event.     
-            // Its should handle by framework.    
-            case EStdKeyF21:
-            case EKeyF21:
-            // Soft key handle by framework
-            // Selection key handle by AknFepManeger.
-            case EStdKeyDevice0: // iCode:EKeyCBA1
-            case EStdKeyDevice1: //	iCode:EKeyCBA2
-            case EStdKeyDevice3: // iCode:EKeyOK
-            case EKeyCBA1:
-            case EKeyCBA2:
-            case EKeyOK:
-            	response = EFalse;
-            	break;
-
-            case EKeyUpArrow: 
-                if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-                    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT                    
-                    //fepMan->HideExactWordPopUp();
-                    // Select the exact match with the up arrow and lock it.
-                    // Another alternative could be to call function DoPreviousMatchL() from here
-                    TBool primaryCandidateState = fepMan->AdvancedPredictivePrimaryCandidate(); 
-                    TInt wordIndexToSelect = 0;
-            		if (EFalse == primaryCandidateState)
-            			{
-            			ptiengine->HandleCommandL( EPtiCommandUserActionGetIndexOfSecondaryCandidate, 
-        							&wordIndexToSelect );
-            			}
-            			
-            			if (fepMan->IsExactWordPopUpShown())
-            			{
-            			    fepMan->HideExactWordPopUp();			
-				        	ptiengine->HandleCommandL( 
-	                               EPtiCommandUserActionSetCurrentIndexOfCandidates, 
-	                			   &wordIndexToSelect );
-	                    	ptiengine->HandleCommandL( EPtiCommandLockCurrentCandidate );
-	                    	TPtrC selectedWord = ptiengine->CurrentWord();
-	                    	fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() ); 
-	                    	response = ETrue;        							
-	            			break;	
-            			}
-						else
-						{
-							fepMan->LaunchCandidatePopupListL( wordIndexToSelect );
-						    response = ETrue;        							
-	            			break;                 
-						}
-
-#endif // RD_INTELLIGENT_TEXT_INPUT            			
-                    }
-                    // fall through
-            case EKeyDownArrow:
-            case EKeyLeftArrow:
-            case EKeyRightArrow:
-            case EKeyBackspace:
-                response = HandleNaviKeysL(aKey, aLength);
-                break;
-            
-            
-            default:
-                HandleShiftState(aKey);
-                response = HandleQwertyKeysL(aKey);
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                if ( aLength == ELongKeyPress )
-                    {
-                    // Expire multitap timer after long press. 
-                    ptiengine->CancelTimerActivity();
-                    }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-                break;
-            }
-        }
-    
-    iData = aKey; // store the pressed key for future reference
-    return response;
-    }
-
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepInputStateEntryQwertyWesternPredictive::HandleShiftState( TInt aKey )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    TPtiTextCase shiftedCase;
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-		shiftedCase = EPtiCaseFnLower;
-		}
-	else
- 		{
- 		shiftedCase= EPtiCaseLower;	
- 		}
-    
-    // For addition of ITI features. 
-    // When FSQ is opened wiht ITI features enabled,
-    // after pressing keys, don't need to re-set current text case by editor's text or FN key state.
-    // Because FSQ's case doesn't obey editor's case and there is no fn key on FSQ.
-    if ( fepMan->PluginUIManager() 
-         && fepMan->PluginUIManager()->PluginInputMode() == EPluginInputModeFSQ
-         && fepMan->WesternPredictive() )
-        {
-        return;
-        }
-        
-    // Find out if the key is alphabetic
-    TBuf<KKeyMappingsLength> keyMappings; 
-    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseUpper );   
-    TBool isAlpha = ( keyMappings.Length() && TChar(keyMappings[0]).IsAlpha() );
-    
-    if (isAlpha && (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone))
-        {
-        switch ( caseMan->CurrentCase() )
-            {
-            case EAknEditorTextCase:
-                {
-                // Alphabetic characters are always capitalized in "Abc" mode 
-                // unless the shift is pressed 
-                // Thai language should not go to automatic capitalization in text case
-                // mode and predictive input. This is because it would lead to the character 
-                // mapped to upper case being displayed instead of the intended character.
-                // So below is what is essentially a XNOR condition - 
-                // 1) no-shiftkey and language with case    => upper case
-                // 2) no-shiftkey and language without case => lower case
-                // 3) shiftkey and language with case       => lower case
-                // 4) shiftkey and language without case    => upper case
-                TInt inputLang = ptiengine->CurrentLanguage()->LanguageCode();
-                if ( ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-                       fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) )  
-                      == ( inputLang == ELangThai ||
-					  	   inputLang == ELangArabic ||
-                           inputLang == ELangFarsi ||
-                           inputLang == ELangHebrew ||
-                           inputLang == ELangUrdu ||
-                           inputLang == ELangHindi ) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }          
-                }
-            break;
-            
-            case EAknEditorLowerCase:
-                {
-                // Pressing shift enters uppercae letters in the "abc" mode
-                if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-                     fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-            
-            case EAknEditorUpperCase:
-                {
-                // In the "ABC" mode (capslock mode) the letters are uppercased
-                // unless the shift is pressed
-                if ( !(fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)||
-                      fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress)) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-                
-            default:
-            break;
-            }
-
-        
-        }
-    else
-        {
-        // non-alphabetic keys are shifted if and only if shift is pressed, no matter what is the input state
-        if ( (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone) &&
-             ( fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) ||
-               fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ) )
-            {
-            shiftedCase = EPtiCaseUpper;
-            }
-        else if( (fnKeyState  == CAknFepFnKeyManager::EFnKeyNext) &&
-                 (caseMan->CurrentCase() == EAknEditorTextCase ||
-                  caseMan->CurrentCase() == EAknEditorUpperCase ||
-                  fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) || 
-                  fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)))
-            {
-            shiftedCase = EPtiCaseFnUpper;  
-            }
-        else if (( fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) || 
-        		  fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)) && 
-        		  (fnKeyState  != CAknFepFnKeyManager::EFnKeyNone))
-	        {
-			shiftedCase = EPtiCaseFnUpper;
-	        }    
-        }
-
-    
-    // Handle the Chr key state
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    
-    ptiengine->SetCase(shiftedCase);
-    
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    }
-
-
-//////////////////////////////////////////////////////////////////////////////////
-//
-
-TBool TAknFepInputStateEntryQwertyWesternPredictive::HandleWordBreakingKeysL(TInt aKey)
-    {
-    TBool retVal = EFalse; // in most cases we let also the upper levels handle these key events
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    
-
-    // Up and down arrows break the inline word input only when shift or chr is held down
-    if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) &&
-         !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) &&
-         ( aKey==EStdKeyUpArrow || aKey==EStdKeyDownArrow ) )
-        {
-        return retVal;    
-        }
-
-
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-        {
-        TBool rightToLeftLang = fepMan->IsRightToLeftLanguage();
-        TInt tailLength = 0;
-	    ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-        switch (aKey)
-            {
-            case EStdKeyLeftArrow:
-            case EStdKeyRightArrow:    
-            	// In case the inline editing is ongoing and there is a word completion
-                // currently shown, the first backwards tap will remove the suggested 
-                // completion. 
-                if(tailLength > 0)
-	                {
-	                if ((rightToLeftLang && aKey == EStdKeyLeftArrow) 
-	                	|| (! rightToLeftLang && aKey == EStdKeyRightArrow ))
-	                    {
-					    ptiengine->HandleCommandL( EPtiCommandLockCurrentCandidate);
-					    TPtrC selectedWord = ptiengine->CurrentWord();
-                        fepMan->UpdateInlineEditL( selectedWord, selectedWord.Length() );  //selection.iAnchorPosition
-                        // To fix the bug: STAA-7GYBJC Suggested word is not committed when Arrow right key is pressed.
-                        ptiengine->CommitCurrentWord();
-                        fepMan->TryCloseUiL();
-                        // Asyncronous case update after the editor has handled the key
-                		fepMan->SimulateKeyEventL(EKeyF19); 
-	                    retVal = ETrue;
-	                    }
-	                else if((rightToLeftLang && aKey == EStdKeyRightArrow) 
-	                	|| (! rightToLeftLang && aKey == EStdKeyLeftArrow )) 
-		                {
-	                    fepMan->RemoveSuggestedAdvanceCompletionL();
-	                    retVal = ETrue;
-		                }    	
-	                }
-                else
-	                {
-	                ptiengine->CommitCurrentWord();
-	                retVal = EFalse;
-	                }
-            break;  
-            case EStdKeyUpArrow:
-            case EStdKeyDownArrow:
-            case EStdKeyEnter:
-            case EStdKeySpace:
-            case EStdKeyTab:
-            {  
-            	//retVal = ETrue;
-            	TBool wasInlineEditing = EFalse;	
-            	wasInlineEditing = 
-                          fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction);
-            	ptiengine->CommitCurrentWord();
-                fepMan->CommitInlineEditL();
-                /* Temporary Fix */
-                //EFlagInsideInlineEditingTransaction flag check is not required
-                //but just to make sure.
-                if (aKey == EStdKeySpace && fnKeyState == CAknFepFnKeyManager::EFnKeyDown)
-                    fepMan->LaunchSelectModeMenuL();
-                else if(aKey == EStdKeySpace && wasInlineEditing)
-                	{
-                	_LIT(KSpace," ");                
-	                fepMan->StartInlineEditL();
-	                fepMan->UpdateInlineEditL(KSpace,0);
-	                fepMan->CommitInlineEditL();
-                	retVal = ETrue;
-                	}                
-                /* Temporary Fix */
-                fepMan->TryCloseUiL();                
-                // Asyncronous case update after the editor has handled the key
-                fepMan->SimulateKeyEventL(EKeyF19); 
-            	}                
-            break;
-            default:
-                __ASSERT_DEBUG( EFalse, AknFepPanic(EAknFepPanicNotSupportKey) );
-            }
-
-        }
-    else
-        {
-        iOwner->ChangeState( EInitial );
-        }
-
-    return retVal;
-    }
-
-
-/////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepInputStateEntryQwertyWesternPredictive::HandleQwertyKeysL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    
-    // Key is consumed if the PtiEngine maps it to some character
-    TBuf<KKeyMappingsLength> keyMappings; 
-    
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-		
-		// Try to know is there any mapping for function upper
-		// char. For user point of view this changes has been made.
-		if( ptiengine->Case() == EPtiCaseFnUpper )
-			{
-	    	ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseFnUpper);
-			}
-		else
-			{
-		   	ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseFnLower);			
-			}
-		}
-	else
- 		{
-	    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseLower);   
- 		}
-    //ITI : Pti Engine can be asked to give the proper data for the keys under Fn Key.
-    TBool keyIsMapped = ( keyMappings.Length() > 0 );
-    
-    // The dead key handling inside the PtiDefaultCore assumes that no other key mapping queries
-    // have been made between handling the dead key and the next one (these queries change the
-    // internal state of the key mapping object). For this reason, we must return the key mappings
-    // to their previous state. This is quite dirty hack, but so is the dead key handling code which
-    // forces us to do this.
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-		{
-	    ptiengine->MappingDataForKey( (TPtiKey)iData, keyMappings, EPtiCaseFnLower);
-		}
-	else
- 		{
- 		ptiengine->MappingDataForKey( (TPtiKey)iData, keyMappings, EPtiCaseLower);
- 		}
- 		
- 	// For user point of view this changes has been made.
- 	// If key does not map to function upper char, then try to insert
- 	// functionized char.
-	if( (EPtiCaseFnUpper == ptiengine->Case()) && !keyIsMapped )
-  		{
-        ptiengine->SetCase((TPtiTextCase)EPtiCaseFnLower);
-       	ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseFnLower);
-        keyIsMapped = ( keyMappings.Length() > 0 );
- 		}
-
-    if ( keyIsMapped )
-        {
-        if ( !(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)) )
-            { // 'new' inline edit                        
-            ptiengine->ClearCurrentWord();
-            if (caseMan->CurrentCase() == EAknEditorTextCase)
-                {
-                ptiengine->MarkAutoCapitalized();    
-                }            
-            
-            fepMan->StartInlineEditL();
-            }
-                       
-        TPtrC newText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-        fepMan->UpdateInlineEditL(newText, newText.Length());
-        
-        // Normally we update the case after key press. However, if Chr key is held down, the case update
-        // must not happen until when the Chr is released or the timer expires (in both of these cases
-        // the function KeyTimerExpired() will get callled).         
-        if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-            {
-       	    iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-       	    }
-    	else
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-            }
-           
-        return ETrue;
-        }
-        // MT error fixing : If any key does not map any functionized char, 
-        // its should not display any char fn mode, other behaviour as usual.
-        // If the Fn key stae indicate that fn key pres & we are looking for functionnized
-        // char, if its not availble it will do nothing. So we have to block the event
-        // go to framework.
-        if( aKey!=EStdKeyBackspace && fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-        	return ETrue;
-        
-        // Framework will handle the key event.
-       	return EFalse;
-    }
-    
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////
-//
-TBool TAknFepInputStateEntryQwertyWesternPredictive::HandleNaviKeysL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        TBool comsumeKey;
-        if (!(fepMan->TryGetTextToUncommitL(textToUncommit, aKey, comsumeKey)))
-            {
-            // If T9 word length > 32, the navi key is consumed without action.
-            // Maybe should navigate inside word.
-            return comsumeKey;
-            }
-        ptiengine->ClearCurrentWord();
-        ptiengine->SetCurrentWord(textToUncommit); // this set the input sequence of PtiEngine
-        fepMan->StartInlineEditL(fepMan->UncommittedText(), textToUncommit, 
-        						 textToUncommit.Length(), EFalse);
-        }
-
-    if (aKey == EKeyBackspace)
-        {
-        TInt activeIdx = KErrNone;
-        TPtrC newText = ptiengine->DeleteKeyPress();
-        // To fix the Backspace Key issue in which focused word needs to be present in the editor.
-        ptiengine->HandleCommandL( EPtiCommandUserActionSetCurrentIndexOfCandidates, &activeIdx );
-        TPtrC selectedWord = ptiengine->CurrentWord();
-        fepMan->UpdateInlineEditL(selectedWord, selectedWord.Length());
-
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}
-
-        iOwner->CaseMan()->UpdateCase(EBackspaceEvent);
-        fepMan->CloseUiIfWordDeletedL();
-        }
-    
-    return ETrue;
-    }
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepInputStateEntryQwertyWesternPredictive::LastWordInSelectionList()
-    {
-
-    }
-
-
-//////////////////////////////////////////////////////////////////////////////
-//
-void TAknFepInputStateEntryQwertyWesternPredictive::FirstWordInSelectionList()
-    {   
-    }
-
-
-/////////////////////////////////////////////////////////////////
-//
-void TAknFepInputStateEntryQwertyWesternPredictive::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-        fepMan->ClearFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        iData = 0;
-        }
-    }
-   
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyZhuyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,312 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateEntryQwertyZhuyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryQwertyZhuyin.h"
-#include "AknFepUIManagerStateInterface.h"
-
-#include <PtiEngine.h>
-#include <e32keys.h>
-#include <PtiDefs.h>                //keys
-
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateEntryQwertyZhuyin::TAknFepInputStateEntryQwertyZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (EPtiEngineZhuyinQwerty != ptiengine->InputMode())
-        {
-        ptiengine->SetInputMode(EPtiEngineZhuyinQwerty);
-        }
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->CandidatePane()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->CandidatePane()->ShowVerticalScrollArrows(multiplePages);
-        
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    _LIT(KToneNoneZhuyin, "");
-    inputPane->SetToneMark(KToneNoneZhuyin);
-
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStateEntryQwertyZhuyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool ret = ETrue;
-    
-    if((aKey == EPtiKey3 || 
-        aKey == EPtiKey4 || 
-        aKey == EPtiKey6 || 
-        aKey == EPtiKey7 ||
-        aKey == EStdKeySpace) && 
-        (aLength == EShortKeyPress))
-        {
-        ptiengine->CancelTimerActivity();
-        if(ptiengine->SetToneMark(aKey))
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-            UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-            UIContainer()->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-            UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-            uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        ptiengine->CancelTimerActivity();
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = ptiengine->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-        UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-        uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-        SetInputPaneToneMark();
-        RefreshUI();
-        }
-    else if(aKey == EStdKeyRightArrow || aKey == EStdKeyLeftArrow) 
-        {
-        ptiengine->CancelTimerActivity();
-        iOwner->ChangeState(ECandidate);
-        ret = EFalse;
-        }
-    else if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(!HandleVerticalNavigation(aKey))
-        {
-        // it may be one of the 'valid' numbers..
-        TInt index = MapKeyToIndex(aKey);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        if(candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey == EStdKeyEnter)
-            {
-            TPtrC text = candidatePane->CurrentCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }
-                }
-            else
-                {
-                // No candidates available. Back to Entry state.
-                iOwner->ChangeState(EEntry);
-                }
-            }
-        }
-    return ret;
-    }
-
-void TAknFepInputStateEntryQwertyZhuyin::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtrC candidates = ptiengine->CandidatePage();
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBool toneMarkValid = ptiengine->IsToneMarkValidForSpelling();
-    if(!candidates.Length() || (toneMarkEntered && !toneMarkValid))
-        {
-        MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-        ptiengine->DeleteKeyPress();
-        SetInputPaneToneMark();
-
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = ptiengine->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-        UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-        uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-        RefreshUI();
-        }
-    }
-    
-void TAknFepInputStateEntryQwertyZhuyin::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
- 
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    uiContainer->Enable(ETrue);
-    uiContainer->CandidatePane()->SelectFirst();
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    UpdateIndicator();
-   }
-
-void TAknFepInputStateEntryQwertyZhuyin::UpdateIndicator()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-        
-    if (candidatePane->SelectedIndex() == 0 && 
-        ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-        }
-        
-    if (bufLength != KMaxCandidateCountFromCore &&
-        candidatePane->SelectedIndex() == (bufLength -1))
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-        }
-    }
-
-TBool TAknFepInputStateEntryQwertyZhuyin::HandleVerticalNavigation(TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aKey == EStdKeyDownArrow || aKey == EStdKeySpace)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() != 
-            KMaxCandidateCountFromCore)
-            {
-            return ETrue;
-            }
-        ptiengine->NextCandidatePage();
-        }
-    else if (aKey == EStdKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() == 0)
-            {								 
-            return ETrue;
-            }
-        ptiengine->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    candidatePane->SelectFirst();
-    candidatePane->SetCandidateBuffer(ptiengine->CandidatePage());
-    UpdateIndicator();    
-    return ETrue;
-    }
-        
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryQwertyZhuyin::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryQwertyZhuyin::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-/*
-* Copyright (c) 2005 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 CAknFepUIInputStateQwertyZhuyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryQwertyZhuyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>
-#include <e32keys.h>
-#include <PtiDefs.h>                //keys
-
-const TInt KInputPaneLength = 32;
-_LIT(KSep, "'");
-_LIT(KReplace, "");
- 
-
-TAknFepInputStateEntryQwertyZhuyinPhrase::TAknFepInputStateEntryQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineZhuyinPhraseQwerty);
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    }
-
-TBool TAknFepInputStateEntryQwertyZhuyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        return ret;
-        }
-    
-    if((aKey == EPtiKey3 || 
-        aKey == EPtiKey4 || 
-        aKey == EPtiKey6 || 
-        aKey == EPtiKey7 ||
-        aKey == EStdKeySpace) && 
-        (aLength == EShortKeyPress))        
-        {
-        if(ptiengine->SetToneMark(aKey))
-            {
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            
-            TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                    uiContainer->CandidatePane()->IsFirstPage());
-            TInt bufLength = ptiengine->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-            UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-            UIContainer()->ShowVerticalScrollArrows(multiplePages);
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                    uiContainer->CandidatePane()->IsFirstPage()));
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        uiContainer->ShowVerticalScrollArrows(!(uiContainer->CandidatePane()->IsLastPage() &&
-                                                uiContainer->CandidatePane()->IsFirstPage()));
-        SetInputPaneToneMark();
-        RefreshUI();
-        }
-    else if (aKey == EStdKeyLeftArrow )  
-        {
-        if (candidatePane->SelectedIndex() == 0 && 
-            candidatePane->IsFirstPage())
-            {
-            return ETrue;    
-            }
-        else
-            {
-            iOwner->ChangeState(ECandidate);
-            return EFalse;
-            }
-        }
-    else if (aKey == EStdKeyRightArrow)
-        {
-        if (candidatePane->IsLastPage() && 
-           (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-            {
-            return ETrue;    
-            }
-        else
-            {
-            iOwner->ChangeState(ECandidate);
-            return EFalse;
-            }
-        }
-    else if(aKey == EStdKeyDevice3)
-        {
-        TInt index = MapKeyToIndex(aKey);
-
-        candidatePane->SelectIndex(index);
-        TPtrC text = candidatePane->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            iOwner->ChangeState(EPredictiveCandidate);
-            }
-        else
-            {
-            // No candidates available. Back to Entry state.
-            iOwner->ChangeState(EEntry);
-            }
-        }
-   else if (aKey == EStdKeyEnter)
-        {
-        TBuf<KInputPaneLength> currentText;
-        inputPane->GetText(currentText);
-        
-        while(currentText.Find(KSep)> 0)
-            {
-            currentText.Replace(currentText.Find(KSep), 1,KReplace);
-            }
-        
-        
-        if(currentText.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(currentText);
-            fepMan->CommitInlineEditL();
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL();                
-                }
-            }
-        }
-    else
-        {
-        ret = TAknFepInputStateEntryQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-    
-void TAknFepInputStateEntryQwertyZhuyinPhrase::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
- 
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    TBuf<KInputPaneLength> currentText;
-    inputPane->GetText(currentText);
-    if (ptr.Length() < currentText.Length())
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    inputPane->SetText(ptr);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryStroke.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,197 +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 TAknFepInputStateEntryStroke methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <fontids.hrh>
-#include <PtiEngine.h>
-
-#include "AknFepUiInputStateEntryStroke.h"
-
-#include "AknFepUIManagerStateInterface.h"
-
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateEntryStroke::TAknFepInputStateEntryStroke(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryZhuyinStrokeBase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirst(); 
-    uiContainer->InputPane()->SetOverrideFontId(KScreenFontUidStrokes);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if ( EPtiEngineStroke != ptiengine->InputMode() )
-    {
-    ptiengine->SetInputMode(EPtiEngineStroke);
-    }
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    }
-
-void TAknFepInputStateEntryStroke::HandleCommandL(TInt /*aCommandId*/)
-	{	
-    RefreshUI();	
- 	}
-
-TBool TAknFepInputStateEntryStroke::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    if(aKey == EKeyBackspace)
-        {
-        if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            RefreshUI();
-            SetInputPaneToneMark();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKey(aKey))
-        {
-    	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);        
-       
-        TInt stringBeforeLength(0);
-        TInt stringAfterLength(0);
-        
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-        
-        if (stringBeforeLength != stringAfterLength)
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-            uiContainer->ShowVerticalScrollArrows(multiplePages);
-            SetInputPaneToneMark();
-            RefreshUI();
-            }
-        else
-            {            
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-    else if(aKey == EKeyDownArrow)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() == 
-            KMaxCandidateCountFromCore)
-            {
-            ptiengine->NextCandidatePage();
-            RefreshUI();
-            }
-        }
-    else if(aKey == EKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() != 0)
-            {
-            ptiengine->PreviousCandidatePage();
-            RefreshUI();
-            }
-        }   
-    else if(aKey == EKeyOK || aKey == EKeyRightArrow || aKey == EKeyLeftArrow)
-        {
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-        
-    else if(aKey == EPtiKeyStar)
-    	{
-    	return ETrue;
-    	}
-    	
-    else if (!iOwner->IsValidChineseInputKey(aKey))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-        
-    return ETrue;
-    }
-
-void TAknFepInputStateEntryStroke::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
- 
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-
-    // Universal layout 
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    uiContainer->Enable(ETrue);
-
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(bufLength ? ETrue : EFalse);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,815 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Stroke phrase entry state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-
-// User includes
-#include "AknFepUiInputStateEntryStrokePhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepuictrleditpane.h" 
-#include "AknFepManager.h"
-
-// const param
-const TInt KMinCnadidateCount = 1;
-const TInt KMaxKeystrokeCount = 31;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KManualChangeState = 0; 
-const TInt KChangeStatebyBackSpce = 0x1000;//set popup flag for change state.
-//const TUint16 KSegment = 0x0020;
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-_LIT( KDelimiter, "\x2022");
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhrase::
-// TAknFepInputStateEntryStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryStrokePhrase::TAknFepInputStateEntryStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer) :
-    TAknFepInputStateStrokePhraseBase( aOwner, aUIContainer)
-    {  
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    
-    iState = EEntry;
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutKeystroke );
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->ShowCandidateOrdinals(EFalse);
-    candidatePane->SelectFirstPhrase();
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-    iOwner->FepMan()->EntryPhrase( ETrue );
-
-    RefreshUI( ETrue );
- 	}
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryStrokePhrase::HandleKeyL( 
-                                                    TInt aKey,
-                                                    TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    switch ( aKey )
-        {
-        case EPtiKeyStar:
-            {
-            break;
-            }
-        case EKeyUpArrow:
-            {
-            if ( !candidatePane->IsFirstPage() )
-                {
-                candidatePane->PreviousCandidatePage();  
-                RefreshCandidate();
-                }
-            else
-                {
-                popup->SetState( EFalse );
-                popup->SetState( KManualChangeState );
-                popup->SetChangeState( ETrue );
-                //change state to sequence edit
-                iOwner->ChangeState( EStrokeSequenceEdit );
-                }
-            break;
-            }
-        case EKeyDownArrow:
-            {
-            if ( CheckKeyNeedRepeat( aLength ) )
-                {
-                if ( candidatePane->IsLastPage( ) )
-                    {
-                    return ETrue;
-                    }
-                if ( candidatePane->NeedGetNewCandidatePage( ) )
-                    {
-                    if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                        {
-                        if ( candidatePane->IsLastPage( ) )
-                            {
-                            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                            return ETrue;
-                            }
-                        }
-                    else
-                        {
-                        CDesCArrayFlat* phraseCandidates =
-                            candidatePane->CandidateArray( );
-                        RPointerArray<HBufC> list;
-                        GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                        for (TInt i = 0; i < list.Count( ); ++i )
-                            {
-                            phraseCandidates->AppendL( *(list[i]) );
-                            }
-                        list.ResetAndDestroy();
-                        }
-                    }
-                candidatePane->NextCandidatePage();
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirstPhrase();
-                RefreshCandidate();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-            {
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState( ECandidate );
-            ret = EFalse;
-            break;
-            }
-        case EKeyCBA1:
-        case EKeyOK:
-            {
-            if ( CheckKeyNeedRepeat( aLength ) )
-                {
-                popup->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                ret = EFalse;
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        default:
-            return TAknFepInputStateStrokePhraseBase::HandleKeyL( aKey, aLength );
-        }
-    
-    return ret;
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryStrokePhrase::HandleCommandL( TInt aCommandId )
-    {
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            HandleCommitL();
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhrase::HandleCommit 
-// Handle CBA1,ok and select candidate phrase key press.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryStrokePhrase::HandleCommitL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if( text.Length() ) 
-        {
-        if ( CommitInlineEEPL( text ) )
-            {
-            if ( phrase->Count() >= KMaxPhraseCreationCount )
-                {
-                if ( keystrokeArray->Count() != 0 )
-                    {
-                    CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-                    errnote->SetTone( CAknNoteDialog::EWarningTone );
-                    errnote->ExecuteLD( KMaxPhraseNote );
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PhraseCreation( EFalse );
-                    iOwner->FepMan()->EntryPhrase( EFalse );
-                    iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-                    iOwner->FepMan()->EnableKeyStar( ETrue );
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    }
-                }
-            else
-                {
-                if ( !iOwner->FepMan()->IsPhraseCreation() )
-                    {
-                    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                        {
-                        iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagEditorFull);
-                        iOwner->FepMan()->TryCloseUiL();
-                        }
-                    else
-                        {
-                        iOwner->ChangeState( EPredictiveCandidate );
-                        }
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PhraseCreation( EFalse );
-                    iOwner->FepMan()->EntryPhrase( EFalse );
-                    iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-                    iOwner->FepMan()->EnableKeyStar( ETrue );
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    }
-                }
-            popup->ResetStrokeArray();
-            }
-        else
-            {
-            editPane->SetCursorIndexOfKeystroke( 0 );
-            if ( CheckFirstGroupStroke() )
-                {
-                popup->SetState( ETrue );
-                iOwner->ChangeState( EEntry );
-                }
-            else
-                {
-                popup->SetState( ETrue );
-                //change state to sequence edit
-                iOwner->ChangeState( EStrokeSequenceEdit );
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhrase::CommitInlineEEPL 
-// Commit phrase to the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryStrokePhrase::CommitInlineEEPL( 
-                                                        const TDesC& aText )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    CDesCArrayFlat* phraseKeystroke = 
-        popup->ChooseChineseCharacterArrayKeystrokeForStroke();
-    
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    
-    TInt textCount = aText.Length();
-    TInt allTextCount = 0;
-    TInt i = 0;
-    TInt j = 0;
-    // append character to chinese array
-    for ( i = 0; i < textCount; i++ )
-        {
-        phrase->AppendL( aText.Mid( i, 1 ) );
-        }
-    
-    TInt characterCount = phrase->Count();
-    
-    // if chinese character is more than 7 or not
-    // if more than 7 show a warning not
-    if ( characterCount >= KMaxPhraseCreationCount )
-        {
-        for ( i = 0; i < KMaxPhraseCreationCount; ++i )
-            {
-            phraseCreated.Append( phrase->MdcaPoint(i) );
-            }
-        AddPhraseToDB( phraseCreated );
-        iOwner->FepMan()->NewTextL( phraseCreated );
-        iOwner->FepMan()->CommitInlineEditL();
-        }
-    
-    // calculate the total number of character according to stroke
-    for ( i = 0; i < keystrokeArray->Count(); i++ )
-        {
-        if ( keystrokeArray->MdcaPoint( i ) == KDelimiter )
-            {
-            allTextCount = allTextCount + 1;
-            }
-        }
-    
-    allTextCount = allTextCount + 1;
-    if ( keystrokeArray->MdcaPoint( keystrokeArray->Count() - 1 ) ==  
-        KDelimiter )
-        {
-        allTextCount--;
-        }
-    
-    // if total number is less than the character's count which user has selected
-    // commit the character to editor and user db   
-    if ( allTextCount <= textCount && characterCount < KMaxPhraseCreationCount )
-        {
-        for ( i = 0; i < characterCount; ++i )
-            {
-            phraseCreated.Append( phrase->MdcaPoint(i) );
-            } 
-        iOwner->FepMan()->NewTextL( phraseCreated );
-        iOwner->FepMan()->CommitInlineEditL();
-        AddPhraseToDB( phraseCreated );
-        return ETrue;
-        }
-    
-    // add the stroke to chosen character array
-    // delete key stroke which charactor is corresponding
-    for ( j = 0; j < textCount; j++ )
-        {
-        TInt keyCount = 0;
-        TInt ret = keystrokeArray->Find( KDelimiter , 
-                                         keyCount, 
-                                         ECmpFolded );
-        
-        if ( ret != 0)
-            {
-            keyCount = keystrokeArray->Count();
-            j = textCount;
-            }
-        else
-            {
-            keyCount++;
-            }
-
-        TBuf<KMaxKeystrokeCount> keystroke;
-        for ( i = 0; i < keyCount; i++ )
-            {
-            keystroke.Append( keystrokeArray->MdcaPoint( 0 ) );
-            keystrokeArray->Delete( 0 );
-            }
-        phraseKeystroke->AppendL( keystroke );
-        }    
-    if ( keystrokeArray->Count() > 0 )
-        {
-        iOwner->FepMan()->PhraseCreation( ETrue );
-        }
-    if ( characterCount >= KMaxPhraseCreationCount )
-        {
-        return ETrue;
-        }
-
-    return EFalse;
-    }
-
-// End of file
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-TAknFepInputStateEditStrokePhrase::TAknFepInputStateEditStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateStrokePhraseBase( aOwner, aUIContainer)
-    {
-    iState = EStrokeSequenceEdit;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutKeystroke );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditStrokePhrase::HandleKeyL
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEditStrokePhrase::HandleKeyL( 
-                                                    TInt aKey,
-                                                    TKeyPressLength aLength )
-    {
-    return TAknFepInputStateStrokePhraseBase::HandleKeyL( 
-                                                   aKey, 
-                                                   aLength );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryStrokePhraseCreation::
-// TAknFepInputStateEntryStrokePhraseCreation
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateCandidateStrokePhrase::TAknFepInputStateCandidateStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateStrokePhraseBase(aOwner, aUIContainer)
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCnadidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->EditPaneWindow()->DisableCursor();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateStrokePhrase::HandleKeyL( 
-                                        TInt aKey, 
-                                        TKeyPressLength /*aLength*/ )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    // it may be one of the 'valid' numbers..
-    TInt index = MapKeyToIndex(aKey);
-
-    switch( aKey )
-        {
-        case EKeyBackspace:
-            {
-            editPane->EnableCursor();
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState( EEntry );
-            popup->SetFlag( KChangeStatebyBackSpce );
-            break;
-            }
-        case EKeyDownArrow:
-            {
-            if ( candidatePane->IsLastPage() )
-                {
-                return ETrue;
-                }
-            if ( candidatePane->NeedGetNewCandidatePage( ) )
-                {
-                if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                    {
-                    if ( candidatePane->IsLastPage() )
-                        {
-                        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                        return ETrue;
-                        }
-                    }
-                else
-                    {
-                    CDesCArrayFlat* phraseCandidates =
-                        candidatePane->CandidateArray( );
-                    RPointerArray<HBufC> list;
-                    GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                    for (TInt i = 0; i < list.Count( ); ++i )
-                        {
-                        phraseCandidates->AppendL( *(list[i]) );
-                        }
-                    list.ResetAndDestroy();
-                    }
-                }
-            candidatePane->NextCandidatePage( );
-            RefreshCandidate( );
-            break;
-            }
-        case EKeyUpArrow:
-            {
-            if( !candidatePane->IsFirstPage() )
-                {
-                candidatePane->PreviousCandidatePage();
-                RefreshCandidate();
-                }
-            else
-                {
-                popup->SetChangeState( ETrue );
-                popup->SetState( EFalse );
-                iOwner->ChangeState( EStrokeSequenceEdit );
-                }
-            break;
-            }
-        case EKeyLeftArrow:
-        case EKeyRightArrow:
-            {
-            HandleHorizontalNavigation( aKey );
-            break;
-            }
-        case EPtiKeyStar:
-            {
-            break;
-            }
-        case EKeyCBA2:
-            {
-            popup->ResetStrokeArray();
-            iOwner->FepMan()->EntryPhrase( EFalse );
-            iOwner->FepMan()->PhraseCreation( EFalse );
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        default:
-            {
-            if ( ( aKey == EKeyOK ) || aKey == EKeyCBA1 ||
-                        candidatePane->SelectIndex( index,EFalse ) )
-                {
-                HandleCommitL();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateStrokePhrase::HandleHorizontalNavigation 
-// Handle Horizontal Navigation.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateStrokePhrase::HandleHorizontalNavigation(
-                                                                   TInt aKey )
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {        
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        }
-    else if (aKey == EKeyRightArrow)
-        {              
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }        
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateStrokePhrase::HandleCommit 
-// Handle CBA1,ok and select candidate phrase key press.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateStrokePhrase::HandleCommitL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if( text.Length() ) 
-        {
-        if ( CommitInlineEEPL( text ) )
-            {
-            if ( phrase->Count() <= KMaxPhraseCreationCount && !iOwner->FepMan()->IsPhraseCreation() )
-                {
-                if ( !iOwner->FepMan()->IsPhraseCreation( ) )
-                    {
-                    if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                        {
-                        iOwner->FepMan()->ClearFlag( CAknFepManager::EFlagEditorFull );
-                        iOwner->FepMan()->TryCloseUiL( );
-                        }
-                    else
-                        {
-                        iOwner->ChangeState( EPredictiveCandidate );
-                        }
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PhraseCreation( EFalse );
-                    iOwner->FepMan()->EntryPhrase( EFalse );
-                    iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-                    iOwner->FepMan()->EnableKeyStar( ETrue );
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    }
-                }
-            else
-                {
-                if ( keystrokeArray->Count() != 0 && phrase->Count() >= KMaxPhraseCreationCount )
-                    {
-                    CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-                    errnote->SetTone( CAknNoteDialog::EWarningTone );
-                    errnote->ExecuteLD( KMaxPhraseNote );
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PhraseCreation( EFalse );
-                    iOwner->FepMan()->EntryPhrase( EFalse );
-                    iOwner->FepMan()->PinyinPhraseCreation( EFalse );
-                    iOwner->FepMan()->EnableKeyStar( ETrue );
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    }
-                }
-            popup->ResetStrokeArray();
-            }
-        else
-            {
-            editPane->SetCursorIndexOfKeystroke( 0 );
-            if ( CheckFirstGroupStroke() )
-                {
-                popup->SetState( ETrue );
-                iOwner->ChangeState( EEntry );
-                }
-            else
-                {
-                popup->SetState( ETrue );
-                //change state to sequence edit
-                iOwner->ChangeState( EStrokeSequenceEdit );
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateStrokePhrase::CommitInlineEEPL 
-// Commit phrase to the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidateStrokePhrase::CommitInlineEEPL( 
-                                                        const TDesC& aText )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    CDesCArrayFlat* phraseKeystroke = 
-        popup->ChooseChineseCharacterArrayKeystrokeForStroke();
-    
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    
-    TInt textCount = aText.Length();
-    TInt allTextCount = 0;
-    TInt i = 0;
-    TInt j = 0;
-    // append character to chinese array
-    for ( i = 0; i < textCount; i++ )
-        {
-        phrase->AppendL( aText.Mid( i, 1 ) );
-        }
-    
-    TInt characterCount = phrase->Count();
-    
-    // if chinese character is more than 7 or not
-    // if more than 7 show a warning not
-    if ( characterCount >= KMaxPhraseCreationCount )
-        {
-        for ( i = 0; i < KMaxPhraseCreationCount; ++i )
-            {
-            phraseCreated.Append( phrase->MdcaPoint(i) );
-            }
-        AddPhraseToDB( phraseCreated );
-        iOwner->FepMan()->NewTextL( phraseCreated );
-        iOwner->FepMan()->CommitInlineEditL();
-        }
-    
-    // calculate the total number of character according to stroke
-    for ( i = 0; i < keystrokeArray->Count(); i++ )
-        {
-        if ( keystrokeArray->MdcaPoint( i ) == KDelimiter )
-            {
-            allTextCount = allTextCount + 1;
-            }
-        }
-    
-    allTextCount = allTextCount + 1;
-    if ( keystrokeArray->MdcaPoint( keystrokeArray->Count() - 1 ) ==  
-        KDelimiter )
-        {
-        allTextCount--;
-        }
-    
-    // if total number is less than the character's count which user has selected
-    // commit the character to editor and user db   
-    if ( allTextCount <= textCount && characterCount < KMaxPhraseCreationCount )
-        {
-        for ( i = 0; i < characterCount; ++i )
-            {
-            phraseCreated.Append( phrase->MdcaPoint(i) );
-            } 
-        iOwner->FepMan()->NewTextL( phraseCreated );
-        iOwner->FepMan()->CommitInlineEditL();
-        AddPhraseToDB( phraseCreated );
-        return ETrue;
-        }
-    
-    // add the stroke to chosen character array
-    // delete key stroke which charactor is corresponding
-    for ( j = 0; j < textCount; j++ )
-        {
-        TInt keyCount = 0;
-        TInt ret = keystrokeArray->Find( KDelimiter , 
-                                         keyCount, 
-                                         ECmpFolded );
-        
-        if ( ret != 0)
-            {
-            keyCount = keystrokeArray->Count();
-            j = textCount;
-            }
-        else
-            {
-            keyCount++;
-            }
-
-        TBuf<KMaxKeystrokeCount> keystroke;
-        for ( i = 0; i < keyCount; i++ )
-            {
-            keystroke.Append( keystrokeArray->MdcaPoint( 0 ) );
-            keystrokeArray->Delete( 0 );
-            }
-        phraseKeystroke->AppendL( keystroke );
-        }    
-    if ( keystrokeArray->Count() > 0 )
-        {
-        iOwner->FepMan()->PhraseCreation( ETrue );
-        }    
-    
-    if ( characterCount >= KMaxPhraseCreationCount )
-        {
-        return ETrue;
-        }
-
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidateStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCandidateStrokePhrase::HandleCommandL( TInt aCommandId )
-    {
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //    case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            HandleCommitL();
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryThaiPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryThaiPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryThaiPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepPanic.h"
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>                             //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <e32keys.h>
-#include <aknfep.rsg>
-
-TAknFepInputStateEntryThaiPredictive::
-TAknFepInputStateEntryThaiPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateEntryWesternPredictive(aOwner)
-    {
-    //this class insists on the existence of a case manager
-    __ASSERT_DEBUG(iOwner->CaseMan(), AknFepPanic(EAknFepPanicNoCaseManager));
-
-    iState = EEntry;
-    iMatchState = EWordMatchNone;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    ptiengine->SetInputMode(EPtiEnginePredictive);
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool isUnlimitedEditor = EFalse;
-    ptiengine->SetMaxLengthForAutoCompletedCandidates(fepMan->EditorFreeSpaceForAutoWordCompletion(isUnlimitedEditor ));
-    // To set the input mode
-    if(fepMan->IsAutoCompleteOn())
-        {
-		TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandEnableAutoCompletion));
-        }
-    else
-        {
-		TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandDisableAutoCompletion));
-        }
-    
-    TPtiKeyboardType keyboard = fepMan->KeyboardLayout();
-    ptiengine->SetKeyboardType(keyboard);
-    TBool isNumberCandidateShown = fepMan->IsAdvancedPredictiveNumberCandidateShown();
-	TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, &isNumberCandidateShown ));
-#else
-    ptiengine->ClearCurrentWord();
-#ifdef RD_PRED_AW_COMPLETION
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    // To set the input mode
-    if(fepMan->IsAutoCompleteOn())
-        {
-        ptiengine->SetInputMode(EPtiEngineWordCompletion);
-        }
-    else
-#endif // RD_PRED_AW_COMPLETION
-        {
-        ptiengine->SetInputMode(EPtiEnginePredictive);
-        }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-    ptiengine->SetCase(EPtiCaseLower);
-    }
-
-TBool TAknFepInputStateEntryThaiPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool response = ETrue;
-
-    switch (aKey)
-        {
-    case EPtiKey1: //fall through
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-    case EPtiKey0:
-    case EPtiKeyStar:
-        response = HandleStandardNumericKeysL(aKey, aLength);
-        break;
-    case EKeyDownArrow:
-        response = HandleDownKeyL();
-        break;
-    case EKeyUpArrow:
-        response = HandleUpKeyL();
-        break;
-    case EKeyRightArrow: // fall through
-    case EKeyLeftArrow: 
-    case EKeyBackspace:
-        response = HandleNaviKeysL(aKey, aLength);
-        break;
-    default:
-        response = EFalse;
-        break;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateEntryThaiPredictive::HandleDownKeyL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        return EFalse;
-        }
-    else
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            //no more matches
-            fepMan->PlaySound(EAvkonSIDWarningTone);
-            }
-        else if (ptiengine->NumberOfCandidates()<=1)
-            { 
-            // only one match
-            if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                {
-                fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-                iMatchState = EWordMatchLast;
-                }
-            }
-        else
-            { 
-            // > 1 match
-            if (iMatchState == EWordMatchLast && !(ptiengine->LastEnteredKey() == EPtiKey1))
-                {
-                fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS);
-                }
-            else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                {
-                fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-                iMatchState = EWordMatchStd;
-                }
-            TPtrC newText = ptiengine->NextCandidate();
-            fepMan->UpdateInlineEditL(newText, 0);
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateEntryThaiPredictive::HandleUpKeyL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        return EFalse;
-        }    
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    TInt lastCandidateIndex = ptiengine->NumberOfCandidates() -1;
-    if(lastCandidateIndex >= 0)
-        {
-        // Get last word on list
-        fepMan->LaunchCandidatePopupListL( lastCandidateIndex );        
-        }
-    else
-        {
-        TInt wordIndexToSelect = 0;
-        // Get next word on list (wrap around if at end)
-        ptiengine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, 
-			&wordIndexToSelect );
-        wordIndexToSelect < lastCandidateIndex ? wordIndexToSelect++ : wordIndexToSelect = 0;
-        fepMan->LaunchCandidatePopupListL( wordIndexToSelect );        
-        }                        	                        	    
-	   
-#else      
-    if (!( (iMatchState == EWordMatchFirst) || !(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))))
-        {
-        if (iMatchState == EWordMatchLast || iMatchState == EWordMatchAfterLast)
-            {
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-            }
-        iMatchState = EWordMatchStd; 
-        TPtrC prevText = ptiengine->PreviousCandidate();
-        fepMan->UpdateInlineEditL(prevText, 0);
-        }
-        
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    return ETrue;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryVietnamesePredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +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 TAknFepUiInputStateEntryVietnamesePredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryVietnamesePredictive.h"
-#include "AknFepUIInputStateInitialVietnameseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepCaseManager.h"
-#include "AknFepVietnameseToneManager.h"
-
-#include <uikon.hrh>
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-#include "AknFepUiManagerWestern.h"
-TAknFepInputStateEntryVietnamesePredictive::
-TAknFepInputStateEntryVietnamesePredictive(MAknFepUIManagerStateInterface* aOwner)
-: TAknFepInputStateEntryWesternPredictive(aOwner)   
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (ptiengine->CurrentLanguage()->LanguageCode() != ELangVietnamese)
-        {
-        TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangVietnamese));
-        }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if(fepMan->IsAutoCompleteOn())
-    	{
-    	   ptiengine->SetInputMode(EPtiEngineWordCompletion);
-    	}
-    	else
-#endif
-        {
-        ptiengine->SetInputMode(EPtiEnginePredictive);
-        }
-    }
-
-TBool TAknFepInputStateEntryVietnamesePredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TBool response = ETrue;
-
-    switch (aKey)
-        {
-    case EPtiKey1: //fall through
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-        response = HandleStandardNumericKeysL(aKey, aLength);
-        break;
-    case EPtiKey0:
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-            if(fepMan->IsAutoCompleteOn())
-					{
-					fepMan->RemoveSuggestedCompletionL();
-					}
-#endif
-            }
-        fepMan->UpdateCbaL(NULL);
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagCompoundWord))
-            { 
-            if (fepMan->IsCursorAtEndOfWord())
-                {            
-                fepMan->AddCompoundWordToUdbL();
-                }
-            fepMan->ClearFlag(CAknFepManager::EFlagCompoundWord);
-            }
-        ptiengine->CommitCurrentWord();  // commit word after calling TryCloseUiL().
-        fepMan->TryCloseUiL();
-        response = EFalse;  //pass to initial state to handle key
-        break;
-    case EKeyLeftArrow: // fall through
-    case EKeyRightArrow:
-        response = HandleNaviKeysL(aKey, aLength);
-        break;    
-    case EKeyBackspace:
-        response = HandleDeleteKeysL(aKey, aLength);
-        break;
-    case EPtiKeyStar:
-        response = HandleStarKeyL(aLength);
-        break;
-    case EKeyDownArrow: // Japanese input required
-        if (fepMan->IsAbleScrollLatinPredictive())
-            {
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                DoNextMatch();
-                }
-            else
-                {
-                response = EFalse;
-                }
-            }
-        else
-            {
-            response = EFalse;
-            }
-        break;
-    case EKeyUpArrow: // Japanese input required
-        if (fepMan->IsAbleScrollLatinPredictive())
-            {
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                DoPreviousMatchL();
-                }
-            else
-                {
-                response = EFalse;
-                }
-            }
-        else
-            {
-            response = EFalse;
-            }
-        break;
-    default:
-        response = EFalse;
-        break;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateEntryVietnamesePredictive::HandleStarKeyL(TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aLength == ELongKeyPress)
-        { 
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-            {
-            // replace with previous match
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            iMatchState = EWordMatchStd;
-            TPtrC newText = ptiengine->PreviousCandidate();
-            fepMan->UpdateInlineEditL(newText, newText.Length());
-            }
-            
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        	// to rip off suggested completion when SCT is launched
-		if(fepMan->IsAutoCompleteOn()) 
-			{
-			fepMan->RemoveSuggestedCompletionL();	
-			}
-#endif
-       	if (!fepMan->EditSubmenuInUse())
-        	{
-        	fepMan->LaunchSpecialCharacterTableL();
-        	}            
-        }
-    else 
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-            {
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-                {
-                //no more matches
-                fepMan->PlaySound(EAvkonSIDWarningTone);
-                }
-            else if (ptiengine->NumberOfCandidates()<=1)
-                { 
-                // only one match
-                if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-                    iMatchState = EWordMatchLast;
-                    }
-                }
-            else
-                { 
-                // > 1 match
-                if (iMatchState == EWordMatchLast && !(ptiengine->LastEnteredKey() == EPtiKey1))
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS);
-                    }
-                else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-                    iMatchState = EWordMatchStd;
-                    }
-                TPtrC newText = ptiengine->NextCandidate();
-           		if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	switch(digittype)
-		                	{
-		                	case EDigitTypeDevanagari:
-			                	{
-			                	chchar = (newText[0] + KLatinToDevanagariDigitsDelta);
-	            		    	}
-			                	break;	
-			                case EDigitTypeArabicIndic:
-				                {
-			                	chchar = (newText[0] + KLatinToArabicIndicDigitsDelta);
-	            		        }
-				                break;
-		                	case EDigitTypeEasternArabicIndic:
-			                	{
-			                	chchar = (newText[0] + KLatinToEasternArabicIndicDigitsDelta);
-			                	}
-		                	}
-	            		tempbuf.Append(chchar);				                	
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());	
-	                	}
-           			}
-           		else 
-           			{
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-                }
-            }
-        else
-            {
-  			if (!fepMan->EditSubmenuInUse())
-        		{
-        		fepMan->LaunchSpecialCharacterTableL();
-        		}
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateEntryVietnamesePredictive::HandleDeleteKeysL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        if(fepMan->PreviousChar() == TText(0x0020))      // 0x0020 is space 
-        {
-        	return EFalse;
-        }
-        TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        TBool comsumeKey;
-        if (!(fepMan->TryGetTextToUncommitL(textToUncommit, aKey, comsumeKey)))
-            {
-            // If T9 word length > 32, the navi key is consumed without action.
-            // Maybe should navigate inside word.
-            return comsumeKey;
-            }
-        ptiengine->SetCurrentWord(textToUncommit);
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}        
-        fepMan->StartInlineEditL(fepMan->UncommittedText(), textToUncommit, 
-                                 textToUncommit.Length(), EFalse);
-        }
-  
-    if (aKey == EKeyBackspace)
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            fepMan->UpdateCbaL(NULL);
-            return ETrue;
-            }
-        else if (iMatchState != EWordMatchFirst)
-            {
-            //let FirstWordInSelectionList() reset the CBA
-            iMatchState = EWordMatchNone;
-            }
-        
-        TBuf<2> newText;
-        // Get the last character from the current editor
-        TText prevChar = fepMan->PreviousChar();
-        TBool vowelList = EFalse;
-        for (TInt index = 0; index < KNumberOfToneMarks; index ++)
-            {
-            if (VietToneMatrix[0][index] == prevChar)
-                {
-                vowelList = ETrue;
-                break;
-                }
-            }
-        
-        if (vowelList)
-            {
-                ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-            }
-        else
-            {
-            if (prevChar <= 0)
-                {
-                return EFalse;
-                }
-            
-            // Judge if the last character needs to be converted
-            if ( TAknFepInputStateInitialVietnameseMultitap::NeedsVietnameseBkDelSupport(prevChar,
-                                                                                         newText) )
-                {
-                ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-                }
-            else
-                {
-                TPtrC  updatedText = ptiengine->DeleteKeyPress();
-                if(ptiengine->InputMode() != EPtiEngineWordCompletion && newText.Length())
-                	{
-                	fepMan->UpdateInlineEditL(updatedText, newText.Length());
-                	}
-                else
-                	{
-                	fepMan->UpdateInlineEditL(updatedText, updatedText.Length());	
-                	}
-                }
-            }
-
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}
-
-        iOwner->CaseMan()->UpdateCase(EBackspaceEvent);
-        fepMan->CloseUiIfWordDeletedL();
-        }
-        
-    return ETrue;
-    }
-
-// End of file    
--- a/fep/aknfep/src/AknFepUiInputStateEntryWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,938 +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 TAknFepInputStateEntryWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepPanic.h"
-#include "AknFepCaseManager.h"
-#include "AknFepPluginManager.h"
-#include "AknFepManagerInterface.h" // MAknFepManagerInterface
-
-#include <aknedsts.h> 
-#include <PtiEngine.h>                             //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <featmgr.h>                //FeatureManager
-#include <e32keys.h>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-
-// The Maximum world size
-const TInt KMaxWordSize = 63;
-TAknFepInputStateEntryWesternPredictive::
-TAknFepInputStateEntryWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    //this class insists on the existence of a case manager
-    __ASSERT_DEBUG(iOwner->CaseMan(), AknFepPanic(EAknFepPanicNoCaseManager));
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    iState = EEntry;
-    iMatchState = EWordMatchNone;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-	ptiengine->SetInputMode(EPtiEnginePredictive);  
-
-#ifdef RD_SCALABLE_UI_V2
-
-    if (fepMan->PluginUIManager()->MatchCandidateList().Count() > 0)
-        {
-        fepMan->PluginUIManager()->ResetCandidateList();
-        }
-    
-        iIsLastWord = EFalse;        
-/*
-    if (fepMan->PluginUIManager()->GetSpellText())
-        {
-        TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        textToUncommit.Zero();
-        textToUncommit.Copy(*fepMan->PluginUIManager()->GetSpellText());
-        ptiengine->SetCurrentWord(textToUncommit); 
-        }
-*/        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    	ptiengine->SetInputMode(EPtiEnginePredictive);  
-        TBool isUnlimitedEditor = EFalse;
-        ptiengine->SetMaxLengthForAutoCompletedCandidates(
-                          fepMan->EditorFreeSpaceForAutoWordCompletion(isUnlimitedEditor ));
-        // To set the input mode
-        if(fepMan->IsAutoCompleteOn())
-        	{
-        	TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandEnableAutoCompletion));
-        	}
-        else
-        	{
-        	TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandDisableAutoCompletion));
-        	}
-
-        TPtiKeyboardType keyboard = fepMan->KeyboardLayout();
-    	ptiengine->SetKeyboardType(keyboard);
-
-    	TBool isNumberCandidateShown = fepMan->IsAdvancedPredictiveNumberCandidateShown();
-    	TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, 
-                 &isNumberCandidateShown ));
-#endif
-
-#else
-
-    ptiengine->ClearCurrentWord();
-        
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-
-    // To set the input mode
-    if(fepMan->IsAutoCompleteOn())
-    	{
-    	   ptiengine->SetInputMode(EPtiEngineWordCompletion);
-    	}
-#endif // RD_PRED_AW_COMPLETION
-#endif //RD_SCALABLE_UI_V2
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateEntryWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-#ifdef RD_SCALABLE_UI_V2
-
-    if (fepMan->PluginUIManager()->GetSpellText())
-        {
-        fepMan->PluginUIManager()->SpellText(NULL);
-        }    
-#endif //
-
-    TBool response = ETrue;
-
-    switch (aKey)
-        {
-    case EPtiKey1: //fall through
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);    
-#endif //RD_SCALABLE_UI_V2
-        
-        response = HandleStandardNumericKeysL(aKey, aLength);
-        break;
-    case EPtiKey0:
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
- 	    			// To rip off suggested word completion when user presses SPACE
-				if(fepMan->IsAutoCompleteOn())
-					{
-					fepMan->RemoveSuggestedCompletionL();
-					}
-#endif
-            }
-        fepMan->UpdateCbaL(NULL);
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagCompoundWord))
-            { 
-            if (fepMan->IsCursorAtEndOfWord())
-                {
-                fepMan->AddCompoundWordToUdbL();                
-                }
-            fepMan->ClearFlag(CAknFepManager::EFlagCompoundWord);
-            }		            
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-            {
-            ptiengine->CommitCurrentWord();
-			fepMan->CommitInlineEditL();
-            fepMan->TryCloseUiL();
-            response = EFalse;
-            }
-        else
-        	{
-#endif
-		fepMan->SetDelayedCommit(); // Delayed 'commit'. 				                                        	
-	    fepMan->TryCloseUiL();	                                
-        response = EFalse;  //pass to initial state to handle key
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        	}
-#endif        	
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);    
-#endif //RD_SCALABLE_UI_V2
-        break;
-    case EKeyLeftArrow: // fall through
-    case EKeyRightArrow:
-    case EKeyBackspace:
-        response = HandleNaviKeysL(aKey, aLength);
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);    
-#endif //RD_SCALABLE_UI_V2
-        break;
-    case EPtiKeyStar:
-            {
-            response = HandleStarKeyL(aLength);    
-            }
-        break;
-    case EKeyDownArrow: // Japanese input required
-        if (fepMan->IsAbleScrollLatinPredictive())
-            {
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                DoNextMatch();
-                }
-            else
-                {
-                response = EFalse;
-                }
-            }
-        else
-            {
-            response = EFalse;
-            }
-        break;
-    case EKeyUpArrow: // Japanese input required
-        if (fepMan->IsAbleScrollLatinPredictive())
-            {
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-                {
-                DoPreviousMatchL();
-                }
-            else
-                {
-                response = EFalse;
-                }
-            }
-        else
-            {
-            response = EFalse;
-            }
-        break;
-    default:
-        response = EFalse;
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);            
-#endif //RD_SCALABLE_UI_V2
-        break;
-        }
-    return response;
-    }
-
-void TAknFepInputStateEntryWesternPredictive::HandleCommandL(TInt aCommandId)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();    
-    if (aCommandId == EAknFepSoftkeyPrevious)
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        
-        __ASSERT_DEBUG(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction), 
-                       AknFepPanic(EAknFepPanicNotInsideInlineEdit));   
-
-        if (iMatchState == EWordMatchLast || iMatchState == EWordMatchAfterLast)
-            {
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-            }
-        iMatchState = EWordMatchStd; 
-        TPtrC prevText = ptiengine->PreviousCandidate();
-        if(prevText.Length() == 1)
-   			{
-        	TDigitType digittype = fepMan->LocalDigit();
-            TChar chchar(prevText[0]);
-            if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-            	{ 	
-            	fepMan->UpdateInlineEditL(prevText, prevText.Length());    
-            	}
-            else 
-            	{
-            	TBuf<1> tempbuf;
-	            tempbuf.Append(prevText[0]);
-            	ConvertDigitToDigittype(digittype,tempbuf);
-                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());	
-            	}
-   			}
-   		else 
-   			{        
-			fepMan->UpdateInlineEditL(prevText, prevText.Length());
-   			}
-        }
-    else if (aCommandId == ESignalSelectMatchSelectionText)
-        {
-        //fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_FINGER);
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-#endif //RD_SCALABLE_UI_V2
-        iOwner->ChangeState(EInitial);
-        }
-    else if (aCommandId == ESignalNaviLeftMatchSelectionText)
-        {
-        //fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_FINGER);
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-#endif //RD_SCALABLE_UI_V2
-        iOwner->ChangeState(EEntry);
-
-        TRawEvent event;
-        event.Set(TRawEvent::EKeyDown, EStdKeyLeftArrow);
-        CCoeEnv::Static()->WsSession().SimulateRawEvent(event);
-        
-        event.Set(TRawEvent::EKeyUp, EStdKeyLeftArrow);
-        CCoeEnv::Static()->WsSession().SimulateRawEvent(event);
-        }
-    else if (aCommandId == ESignalNaviRightMatchSelectionText)
-        {
-        //fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_FINGER);
-#ifdef RD_SCALABLE_UI_V2
-        fepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-#endif //RD_SCALABLE_UI_V2
-        iOwner->ChangeState(EEntry);
-
-        TRawEvent event;
-        event.Set(TRawEvent::EKeyDown, EStdKeyRightArrow);
-        CCoeEnv::Static()->WsSession().SimulateRawEvent(event);
-        
-        event.Set(TRawEvent::EKeyUp, EStdKeyRightArrow);
-        CCoeEnv::Static()->WsSession().SimulateRawEvent(event);
-        }        
-    }
-
-TBool TAknFepInputStateEntryWesternPredictive::HandleStandardNumericKeysL(TInt aKey, 
-                                                                          TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TBool response = ETrue;
-
-    if (aLength == ELongKeyPress)
-        {
-        if (!fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        	{
-        	// No edit transaction going on, we have ended here because of long
-        	// key press created editor on UI or some other similar non-standard situation.
-        	// We can't handle key press, so just consume it.
-        	return ETrue;	
-        	}
-                        
-        // try and insert a digit
-        if (!fepMan->TryRemoveNoMatchesIndicatorL())
-            { 
-            // remove last character
-            TPtrC newText = ptiengine->DeleteKeyPress();
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-            if(ptiengine->InputMode() == EPtiEngineWordCompletion 
-           && (newText.Length() > ptiengine->CurrentInputSequence().Length()))
-            	{
-            	    	fepMan->RemoveSuggestedCompletionL();
-            	}
-       		else
-#endif
-	       		{
-            fepMan->UpdateInlineEditL(newText, newText.Length());
-	            }
-            }
-        //closing the UI will commit the current word and move to intial state
-        fepMan->TryCloseUiL();
-        //this flag to ensures that initial state does not send us back 
-        //to this state as it would normally do for numeric keys
-        fepMan->SetFlag(CAknFepManager::EFlagSuppressInputStateChange);
-        response = EFalse;
-        }
-    else  // short keypress 
-        {
-        //To restrict up to 32 character..
-        
-        if(ptiengine->CurrentInputSequence().Length() >= KMaxWordSize)
-        	{
-            fepMan->SetFlag(CAknFepManager::EFlagNoMatches);
-            
-            // Enter word reach to max inline edit state
-            // if we call upadte inline edit, it will insert '?' mark
-            // which would be the 64th/33rd character
-           
-            // Not need to call appedkeypress/ updateinlineedit
-            // ignore the current key press
-            
-            //fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-            //TPtrC newText = ptiengine->CurrentWord();
-			//fepMan->UpdateInlineEditL(newText, newText.Length());
-            }
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            //no matches, so just play tone
-            fepMan->PlaySound(EAvkonSIDConfirmationTone);
-            }           
-        else //insert a letter
-            {
-            fepMan->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp |
-                                CAknFepManager::ECcpuStateNewPredictiveWord);
-            if (iMatchState == EWordMatchLast || iMatchState == EWordMatchAfterLast)
-                {
-                iMatchState = EWordMatchNone;
-                }
-            if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-                { // 'new' inline edit
-                ptiengine->ClearCurrentWord();
-                fepMan->StartInlineEditL();
-                fepMan->TryStartCompoundWord();
-                }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-  			TInt prevSeqLength = ptiengine->CurrentInputSequence().Length();
-#endif 
-            TPtrC newText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-
- 			fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);   
- 			
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- 			if (ptiengine->NumberOfCandidates() > 0)
-#else
-           if ((fepMan->IsMoreGoodWordsComing(newText.Length())
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-				&& (ptiengine->InputMode() != EPtiEngineWordCompletion))
-                || fepMan->IsMoreGoodAutoCompleteWordsComing(ptiengine->InputMode(), 
-                										  prevSeqLength, ptiengine->CurrentInputSequence().Length()
-#endif
-		))
-#endif
-                {
-                // more good words coming in from predictive text engine so carry on
-                if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	tempbuf.Append(newText[0]);
-		            	ConvertDigitToDigittype(digittype,tempbuf);
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());				                	
-	                	}
-           			}
-           		else 
-           			{
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-           			
-                TBool lastEnteredDigitOne = (ptiengine->LastEnteredKey() == EPtiKey1);
-                if (!lastEnteredDigitOne)
-                    {
-                    iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-                    }
-                fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);
-				if (ptiengine->NumberOfCandidates() <= 1)                    
-					{
-	                fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);                					
-					}
-                }
-            else 
-                {
-                // engine has run out of matches
-                fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);                
-                fepMan->SetFlag(CAknFepManager::EFlagNoMatches);
-                fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-                if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	tempbuf.Append(newText[0]);
-		            	ConvertDigitToDigittype(digittype,tempbuf);
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());					                	
-	                	}
-           			}
-           		else 
-           			{
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-           			// Remove the autocompletion tail if present
-                    if (fepMan->IsAutoCompleteOn())
-                        {
-                        TInt tailLength = 0;
-                        ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-                                                  &tailLength );
-                        if(tailLength > 0)
-                            {
-                            // To remove the autocompletion part, the below function is used. 
-                            // DeleteKeyPress was used earlier. This is removed to fix the bug :
-                            // enter characters to show autocompletion part. Now press a 
-                            // character so that the no matches character is shown. Now press
-                            // backspace key, last character is not deleted.
-                            fepMan->RemoveSuggestedAdvanceCompletionL();
-                            fepMan->PlaySound(EAvkonSIDConfirmationTone);
-                            return response;
-                            }
-                        }
-#endif
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-                fepMan->PlaySound(EAvkonSIDConfirmationTone);
-                }
-            }
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateEntryWesternPredictive::HandleNaviKeysL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-        {
-        TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        TBool comsumeKey;
-        if (!(fepMan->TryGetTextToUncommitL(textToUncommit, aKey, comsumeKey)))
-            {
-            // If T9 word length > 32, the navi key is consumed without action.
-            // Maybe should navigate inside word.
-            return comsumeKey;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        ptiengine->ClearCurrentWord(); // Clear the buffer or setting input may fail
-#endif
-        ptiengine->SetCurrentWord(textToUncommit);
-        if( ptiengine->CurrentWord().Length() != textToUncommit.Length())
-        	{
-        	TPtiUserDictionaryEntry newUdbEntry(textToUncommit);
-        	ptiengine->AddUserDictionaryEntry(newUdbEntry);
-        	ptiengine->SetCurrentWord(textToUncommit);
-        	}
-
-#ifdef   __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ 
-		// First generation ITUT support loops through candidate list on star key press. When we bring
-		// a word in inline edit by navigating with arrow keys, we need to fetch the candidate list in order
-		// to navigate through the predictive list if any or get spell CBA.
-        CDesCArrayFlat* matchesList=new(ELeave)CDesCArrayFlat(1);
-        CleanupStack::PushL(matchesList);
-        ptiengine->GetCandidateListL(*matchesList);
-        CleanupStack::PopAndDestroy();//matchesList
-#endif        
-        	
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}        
-        if (ptiengine->NumberOfCandidates() < 1)
-        	{
-            fepMan->SetFlag(CAknFepManager::EFlagNoMatches);
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);           	
-        	}
-			
-        fepMan->StartInlineEditL(fepMan->UncommittedText(), textToUncommit, 
-                                 textToUncommit.Length(), EFalse);
-        }
-    
-    if (aKey == EKeyBackspace)
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            fepMan->UpdateCbaL(NULL);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            ptiengine->HandleCommandL(EPtiCommandSetFlagToUpdateCandidates);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            // Need to return as DeleteKeyPress should not be passed to ptiengine.
-            // This is because ptiengine does not maintain the input sequence
-            // if the key press does not increase the word length. So when no matches
-            // character is (?) is deleted, no need to pass to ptiengine. This is to done
-            // to solve the bug :enter characters till the no matches character is shown. Now press
-            // backspace, last character is not deleted.
-            return ETrue;
-            }
-        else if (iMatchState != EWordMatchFirst)
-            {
-            //let FirstWordInSelectionList() reset the CBA
-            iMatchState = EWordMatchNone;
-            }
-        
-        TPtrC newText = ptiengine->DeleteKeyPress();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TPtiEngineInputMode inputMode = ptiengine->InputMode();
-        if((inputMode != EPtiEngineWordCompletion && inputMode != EPtiEnginePredictive )
-        	&& newText.Length() != ptiengine->CurrentInputSequence().Length())
-#else
-        if((ptiengine->InputMode() != EPtiEngineWordCompletion )
-            	&& newText.Length() != ptiengine->CurrentInputSequence().Length())
-#endif
-        {
-        	TBuf<CAknFepManager::EMaximumFepWordLength> textToUncommit;
-        	TBool comsumeKey;
-        	fepMan->TryGetTextToUncommitL(textToUncommit, aKey, comsumeKey);
-           	textToUncommit.SetLength(textToUncommit.Length() - 1);
-           	ptiengine->SetCurrentWord(textToUncommit);
-           	newText.Set(textToUncommit);
-        }
-        
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if (!fepMan->IsAutoCompleteOn())
-            {
-			// rip-off the autocompletion part if any, do this before updating the editor content
-			// this is done to avoid any flickering
-    	    TInt tailLength = 0;
-        	ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, 
-                                            &tailLength );
-	        if(tailLength > 0)
-    	        {
-        	    fepMan->RemoveSuggestedAdvanceCompletionL();
-				// text would have changed after ripping off the autocompletion part
-	            newText.Set(ptiengine->CurrentWord());
-    	        }
-            }
-#endif            
-            
-        fepMan->UpdateInlineEditL(newText, newText.Length());                    
-		fepMan->ClearFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           
-        if (ptiengine->NumberOfCandidates() <= 1)
-        	{
-			fepMan->SetFlag(CAknFepManager::EFlagRemoveMatchesMenuItem);           	
-        	}
-
-        iOwner->CaseMan()->UpdateCase(EBackspaceEvent);
-        fepMan->CloseUiIfWordDeletedL();
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateEntryWesternPredictive::HandleStarKeyL(TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    if (aLength == ELongKeyPress)
-        { 
-// Fix for BSAN-7G5944. 
-// In non-ITI mode, during long star key press, initially it is treated as short key press 
-// and the next candidate word is shown. So before displaying the SCT, we revert to
-// the previous candidate. In ITI, long star key press does not result in showing the next
-// candidate, as short key press only launches the candidate list.
-// So reverting to the previous candidate is not needed in ITI mode.        
-#ifndef RD_INTELLIGENT_TEXT_INPUT        
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-            {
-            // replace with previous match
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            iMatchState = EWordMatchStd;
-            TPtrC newText = ptiengine->PreviousCandidate();
-            fepMan->UpdateInlineEditL(newText, newText.Length());
-            }
-		// to rip off suggested completion when SCT is launched
-		if(fepMan->IsAutoCompleteOn()) 
-			{
-			fepMan->RemoveSuggestedCompletionL();	
-			}
-#endif
-            
-       	fepMan->LaunchSpecialCharacterTableL();
-        }
-    else 
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifndef FF_ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT
-        // Short key presses get filtered in AknFepKeyCatcher, so that short star
-        // key press only gets through when the key is lifted. This means we can
-        // launch the candidate popup without worrying about long keypress
-        if (fepMan->WesternPredictive() && aLength == EShortKeyPress && !fepMan->IsQwerty()
-        	&& fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)
-        	&& ptiengine->NumberOfCandidates() > 0 
-        	&& fepMan->PluginUIManager()->PluginInputMode() == EPluginInputModeNone )
-        	{
-    		// With short * key press and candidates remaining, override normal behaviour
-        	// and function like arrow down
-        	TInt wordIndexToSelect = 0;
-        	TInt lastCandidateIndex = ptiengine->NumberOfCandidates()-1;
-    		ptiengine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, 
-					&wordIndexToSelect );
-    		wordIndexToSelect < lastCandidateIndex ? wordIndexToSelect++ : wordIndexToSelect = 0;
-    		fepMan->LaunchCandidatePopupListL( wordIndexToSelect );
-    		return ETrue;
-        	}
-#endif // FF_ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT  
-#endif // RD_INTELLIGENT_TEXT_INPUT          
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-            {
-#ifdef RD_SCALABLE_UI_V2
-        	if ( (iIsLastWord || ptiengine->NumberOfCandidates() == 1) 
-       	         && ( fepMan->PluginUIManager()->PluginInputMode() == EPluginInputModeItut ) )
-        	    {
-                fepMan->PluginUIManager()->SetFingerMatchSelectionState(ETrue);
-        	    fepMan->PluginUIManager()->ShowAllCandidates();
-        	    iMatchState = EWordMatchNone;
-        	    iIsLastWord = EFalse;
-        	    return ETrue;
-        	    }
-            
-#endif //RD_SCALABLE_UI_V2
-            
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-                {
-                CAknFepManager* fepMgr = static_cast<CAknFepManager*>(fepMan);
-                if(( fepMgr->EditorState()->Flags() & EAknEditorFlagEnablePartialScreen ) &&
-                   ( fepMgr->PluginUIManager()->PluginInputMode() == EPluginInputModeItut ))
-                    {
-                    // launch full screen query for split itut
-                    fepMgr->LaunchEditWordQueryL();
-                    }
-                else
-                    {
-                    //no more matches
-                    fepMan->PlaySound(EAvkonSIDWarningTone);
-                    }
-                }
-            else if (ptiengine->NumberOfCandidates() <= 1) //1
-                { 
-                // only one match
-                if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-                    iMatchState = EWordMatchLast;
-                    }
-                }
-            else
-                {
-                if (iMatchState == EWordMatchLast && !(ptiengine->LastEnteredKey() == EPtiKey1))
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS);
-                    }
-                else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-                    {
-                    fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-                    iMatchState = EWordMatchStd;
-                    }
-                    
-                TPtrC newText = ptiengine->NextCandidate();
-           		if(newText.Length() == 1)
-           			{
-	            	TDigitType digittype = fepMan->LocalDigit();
-	                TChar chchar(newText[0]);
-	                if(!chchar.IsDigit() || (chchar.IsDigit() && !digittype))
-	                	{ 	
-	                	fepMan->UpdateInlineEditL(newText, newText.Length());    
-    	            	}
-	                else 
-	                	{
-	                	TBuf<1> tempbuf;
-	                	tempbuf.Append(newText[0]);
-		            	ConvertDigitToDigittype(digittype,tempbuf);
-		                fepMan->UpdateInlineEditL(tempbuf, tempbuf.Length());	
-	                	}
-           			}
-           		else 
-           			{
-           			fepMan->UpdateInlineEditL(newText, newText.Length());	
-           			}
-                }
-            }
-        else
-            {
-  			if (!fepMan->EditSubmenuInUse())
-        		{
-        		fepMan->LaunchSpecialCharacterTableL();
-        		}
-            }          
-        }
-    return ETrue;
-    }
-
-void TAknFepInputStateEntryWesternPredictive::LastWordInSelectionList()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    iIsLastWord = ETrue;
-    
-    if (iMatchState != EWordMatchAfterLast)
-        {
-        TInt newResource = R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS;
-        if (ptiengine->LastEnteredKey() == EPtiKey1)
-            {
-            newResource=R_AKNFEP_SOFTKEYS_SYMBOL_PREVIOUS;
-            }
-        TRAP_IGNORE(fepMan->UpdateCbaL(newResource));
-        iMatchState = EWordMatchLast;
-        }
-    }
-
-void TAknFepInputStateEntryWesternPredictive::FirstWordInSelectionList()
-    {   
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    iIsLastWord = EFalse;
-
-    if (iMatchState == EWordMatchLast)
-        {
-        //have cycled past the last word back to the beginning
-        iMatchState = EWordMatchAfterLast;
-        }
-    else if (iMatchState == EWordMatchNone || iMatchState == EWordMatchStd) // called on every new keypress so checked to stop constant update
-        {
-        //have started/restarted a word or
-        //have got back to the beginning using previous
-        TRAP_IGNORE(fepMan->UpdateCbaL(NULL));
-        iMatchState = EWordMatchFirst;
-        }
-    }
-
-void TAknFepInputStateEntryWesternPredictive::DoPreviousMatchL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        //no more matches
-        fepMan->PlaySound(EAvkonSIDWarningTone);
-        }
-    else if (ptiengine->NumberOfCandidates()<=1)
-        { 
-        // only one match
-        if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-            {
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY);
-            iMatchState = EWordMatchLast;
-            }
-        }
-    else
-        { 
-        // > 1 match
-        if (iMatchState == EWordMatchLast || iMatchState == EWordMatchAfterLast)
-            {
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-            }
-        else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-            {
-            fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS);
-            }
-        iMatchState = EWordMatchStd;
-        TPtrC newText = ptiengine->PreviousCandidate();
-        fepMan->UpdateInlineEditL(newText, newText.Length());
-        }
-    }
-
-void TAknFepInputStateEntryWesternPredictive::DoNextMatch()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        //no more matches
-        fepMan->PlaySound(EAvkonSIDWarningTone);
-        }
-    else if (ptiengine->NumberOfCandidates()<=1)
-        { 
-        // only one match
-        if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-            {
-            TRAP_IGNORE(fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY));
-            iMatchState = EWordMatchLast;
-            }
-        }
-    else
-        { 
-        // > 1 match
-        if (iMatchState == EWordMatchLast && !(ptiengine->LastEnteredKey() == EPtiKey1))
-            {
-            TRAP_IGNORE(fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS));
-            }
-        else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone)
-            {
-            TRAP_IGNORE(fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS));
-            iMatchState = EWordMatchStd;
-            }
-        TPtrC newText = ptiengine->NextCandidate();
-        TRAP_IGNORE(fepMan->UpdateInlineEditL(newText, newText.Length()));
-        }
-    }
-
-void TAknFepInputStateEntryWesternPredictive::ConvertDigitToDigittype(TDigitType& digittype,
-                                                                      TDes& aConvertedNumeral)
-	{
-	TChar chchar(aConvertedNumeral[0]);
-	switch(digittype)
-    	{
-    	case EDigitTypeDevanagari:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToDevanagariDigitsDelta);
-	    	}
-        	break;	
-        case EDigitTypeArabicIndic:
-            {
-        	chchar = (aConvertedNumeral[0] + KLatinToArabicIndicDigitsDelta);
-	        }
-            break;
-    	case EDigitTypeEasternArabicIndic:
-        	{
-        	chchar = (aConvertedNumeral[0] + KLatinToEasternArabicIndicDigitsDelta);
-        	}
-    	}
-    aConvertedNumeral.Zero();
-    aConvertedNumeral.Append(chchar);
-	}
-
-TBool TAknFepInputStateEntryWesternPredictive::IsMoreCandidate()
-    {
-    TBool ret = ETrue;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();    
-    
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-        {
-        ret = EFalse;
-        }
-
-    if (ptiengine->NumberOfCandidates() < 1)
-        { 
-        ret = EFalse;
-        }
-    else if (ptiengine->NextCandidate().Length() == 0)
-        {
-        ret = EFalse;
-        }
-    else
-        {
-        ptiengine->PreviousCandidate();    
-        }    
-    
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryWesternPredictiveJp.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
-* 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:            Provides the TAknFepInputStateEntryWesternPredictiveJp methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryWesternPredictiveJp.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepPanic.h"
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>                             //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <featmgr.h>                //FeatureManager
-#include <e32keys.h>
-#include <aknfep.rsg>
-
-TAknFepInputStateEntryWesternPredictiveJp::
-TAknFepInputStateEntryWesternPredictiveJp(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateEntryWesternPredictive(aOwner)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Handle Star-key event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryWesternPredictiveJp::HandleStarKeyL(TKeyPressLength aLength)
-    {
-    if (aLength == ELongKeyPress)
-        {
-        // Call the parent function
-        return TAknFepInputStateEntryWesternPredictive::HandleStarKeyL(aLength);
-        }
-
-    // Check whether it is possible to change other cases.
-    if (!iOwner->CaseMan()->IsAbleChangeCase())
-        {
-        return ETrue;
-        }
-
-    // Change next case mode (Lower->Upper->Text->Lower)
-    TInt oldCase = iOwner->CaseMan()->CurrentCase();
-    TInt newCase;
-    switch (oldCase)
-        {
-        default:
-        case EAknEditorLowerCase:
-            newCase = EAknEditorUpperCase;
-            break;
-        case EAknEditorUpperCase:
-            newCase = EAknEditorTextCase;
-            break;
-        case EAknEditorTextCase:
-            newCase = EAknEditorLowerCase;
-            break;
-        }
-    iOwner->CaseMan()->SetCurrentCase(newCase);
-    newCase = iOwner->CaseMan()->CurrentCase();
-    if (oldCase != newCase)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        TPtiTextCase caseMode = ptiengine->Case();
-        TPtrC text = ptiengine->CurrentWord();
-        HBufC* newText = HBufC::NewLC(text.Length());
-        TPtr newPtr(newText->Des());
-        newPtr.Copy(text);
-        switch (newCase)
-            {
-            default:
-            case EAknEditorLowerCase:    // For Japanese, T9 lower mode(abc)
-                newPtr.LowerCase();
-                caseMode = EPtiCaseLower;
-                break;
-            case EAknEditorUpperCase:   // For Japanese, T9 upper mode(ABC)
-                newPtr.UpperCase();
-                caseMode = EPtiCaseUpper;
-                break;
-            case EAknEditorTextCase:    // For Japanese, T9 capitalize mode(Abc)
-                newPtr.Capitalize();
-                caseMode = (newPtr.Length() > 1)?
-                            EPtiCaseUpper : EPtiCaseLower;
-                break;
-            }
-        fepMan->UpdateInlineEditL(newPtr, newPtr.Length());
-        ptiengine->SetCurrentWord(newPtr);
-        ptiengine->SetCase(caseMode);
-        CleanupStack::PopAndDestroy(newText); // newText
-        }
-    return ETrue;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryZhuyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +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 CAknFepUIInputStateZhuyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryZhuyin.h"
-#include "AknFepUIManagerStateInterface.h"
-
-#include <PtiEngine.h>
-
-#include <e32keys.h>
-#include <PtiDefs.h>                //keys
-
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-
-const TInt KMaxCandidateCountFromCore = 6;
-
-TAknFepInputStateEntryZhuyin::TAknFepInputStateEntryZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryZhuyinStrokeBase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirst(); 
-    uiContainer->InputPane()->SetOverrideFontId(0);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if (EPtiEngineZhuyin != ptiengine->InputMode())
-        {
-        ptiengine->SetInputMode(EPtiEngineZhuyin);
-        }
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-    
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
- 
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(bufLength ? ETrue : EFalse);
-    
-    iUseforResourcechange = EFalse;
-    }
-void TAknFepInputStateEntryZhuyin::HandleCommandL(TInt /*aCommandId*/)
-	{	
-    RefreshUI(iUseforResourcechange);	
- 	}
-TBool TAknFepInputStateEntryZhuyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-   	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);        
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-            
-    if((aKey == EPtiKeyStar) && (aLength == EShortKeyPress))
-        {
-        ptiengine->CancelTimerActivity();
-
-        if(ptiengine->IncrementToneMark(ETrue))
-            {
-            uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-            SetInputPaneToneMark();
-            iUseforResourcechange = EFalse;
-            RefreshUI(EFalse);
-            }
-        return ETrue;
-        }
-    else if(aKey == EKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-            uiContainer->ShowVerticalScrollArrows(multiplePages);
-            iUseforResourcechange = EFalse;
-            RefreshUI(EFalse);
-            SetInputPaneToneMark();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        return ETrue;    
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKey(aKey))
-        {
-     	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);        
-
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        SetInputPaneToneMark();
-        iUseforResourcechange = EFalse;
-        RefreshUI(EFalse);
-        return ETrue;
-        }
-    else if(aKey == EKeyDownArrow)
-        {
-        if (iOwner->PtiEngine()->CandidatePage().Length() == 
-            KMaxCandidateCountFromCore)
-            {
-            ptiengine->CancelTimerActivity();
-            ptiengine->NextCandidatePage();
-            iUseforResourcechange = ETrue;
-            RefreshUI(ETrue);
-            }
-        return ETrue;
-        }
-    else if(aKey == EKeyUpArrow)
-        {
-        if (ptiengine->NumberOfCandidates() != 0)
-            {
-            ptiengine->CancelTimerActivity();
-            ptiengine->PreviousCandidatePage();
-            iUseforResourcechange = ETrue;
-            RefreshUI(ETrue);
-            }
-        return ETrue;
-        }   
-    else if(aKey == EKeyOK || aKey == EKeyRightArrow || aKey == EKeyLeftArrow)
-        {
-        ptiengine->CancelTimerActivity();        
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-
-    return TAknFepInputStateEntryZhuyinStrokeBase::HandleKeyL(aKey, aLength);
-    }
-
-void TAknFepInputStateEntryZhuyin::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtrC candidates = ptiengine->CandidatePage();
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBool toneMarkValid = ptiengine->IsToneMarkValidForSpelling();
-    if(!candidates.Length() || (toneMarkEntered && !toneMarkValid))
-        {
-        MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-        if(toneMarkEntered)
-            {
-            ptiengine->ResetToneMark();
-            if( !candidates.Length() )  
-            	{
-            	ptiengine->DeleteKeyPress();
-            	}
-            }
-        else
-            {
-            ptiengine->DeleteKeyPress();
-            }
-        SetInputPaneToneMark();
- 
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = ptiengine->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-        
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-        uiContainer->ShowVerticalScrollArrows(ptiengine->MoreCandidatePages());
-        RefreshUI(EFalse);
-        }
-    }
-
-void TAknFepInputStateEntryZhuyin::RefreshUI(TBool aOrdinals)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-
-    // Universal layout 
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    uiContainer->Enable(ETrue);
-    if (aOrdinals)
-        {
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-        }
-
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-
-    if (ptiengine->NumberOfCandidates() == 0)
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
- 
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    uiContainer->CandidatePane()->ShowDownScrollArrows
-        (bufLength == KMaxCandidateCountFromCore ? ETrue : EFalse);
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(bufLength ? ETrue : EFalse);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIInputStateZhuyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryZhuyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"
-#include <PtiEngine.h>
-
-#include <e32keys.h>
-#include <PtiDefs.h>                //keys
-#include <aknnotewrappers.h>
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-#include "aknfepuictrleditpane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "aknfepzhuyinconvertion.h"
-#include "aknfepzhuyinkeyhandlerinterface.h"
-#include "AknFepZhuyinAnalyserDb.h"
-#include "AknFepZhuyinAnalyser.h"
-#include <PtiUserDicEntry.h>
-
-const TInt KMaxPhraseCount = 50;
-const TInt KInputPaneLength = 32;
-const TUint16 KSegment = 0x0020;
-
-const TInt KMaxBufLen = 100;
-const TInt KInputPhraseMaxLength = 7;
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-TAknFepInputStateEntryZhuyinPhrase::TAknFepInputStateEntryZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateZhuyinPhraseCreationBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutKeystroke);
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-    uiContainer->InputPane()->SetOverrideFontId(0);
-
-    if (iOwner->PtiEngine()->InputMode() != EPtiEngineZhuyinByPhrase)
-        {
-        iOwner->PtiEngine()->SetInputMode(EPtiEngineZhuyinByPhrase);
-        }
-    iOwner->PtiEngine()->SetCandidatePageLength(KMaxPhraseCount);
-    iOwner->FepMan()->EntryPhrase(ETrue);
-    uiContainer->SetFepMan(iOwner->FepMan());
-    uiContainer->EditPaneWindow()->DeactiveCursor();
-    UpdateEEPContent();
-    RefreshUI();
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryZhuyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryZhuyinPhrase::HandleCommandL( TInt aCommandId )
-    {
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeyCancel:
-            //  case (TUint16)EAknSoftkeyCancel: //the Cancle in soft CBA
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            HandleCommitL();
-            break;
-        default:
-            TAknFepInputStateZhuyinPhraseCreationBase::HandleCommandL(
-                aCommandId );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryZhuyinPhrase::HandleCommit 
-// Handle CBA1,ok and select candidate phrase key press.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryZhuyinPhrase::HandleCommitL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-
-    CDesCArrayFlat* zhuyinSymbols =
-        uiContainer->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped =
-        uiContainer->PinyinPopupWindow()->ChineseCharsDisped();
-    CDesCArrayFlat
-        * zhuyinSymbolsForChinese =
-            uiContainer->PinyinPopupWindow()->ZhuyinSymbolsForChineseCharsDisped();
-    CDesCArrayFlat* candidateList =
-        uiContainer->CandidatePane()->CandidateArray();
-    MZhuyinKeyHandler* zhuyinKeyHandler = iOwner->ZhuyinKeyHandler();
-
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if ( text.Length() == 0 )
-        {
-        return;
-        }
-    TBuf<KMaxBufLen> pinyinshown =
-        UIContainer()->PinyinPopupWindow()->GetEEPContent();
-    TInt count = TZhuyinSymbolsMethods::GetChineseCount( pinyinshown );
-    if ( count > text.Length() )
-        {
-        fepMan->PhraseCreation( ETrue );
-        }
-    if ( fepMan->IsPhraseCreation() )
-        {
-        TBuf<KMaxBufLen> buf;
-        buf.Copy( text );
-        TBool commit = TZhuyinSymbolsMethods::AppendChineseChar( buf,
-            fepMan->ZhuyinAnalyser(), zhuyinSymbols, chineseDisped,
-            zhuyinSymbolsForChinese );
-        TBool changeState = UpdateEEPContent();
-        if ( commit )
-            {
-            TBuf<KMaxBufLen> commitbuf;
-            TZhuyinSymbolsMethods::Convert2Des( chineseDisped, commitbuf );
-            fepMan->NewTextL( commitbuf );
-            fepMan->CommitInlineEditL();
-            AddPhraseToDB( commitbuf );
-            if ( chineseDisped->Count() < KInputPhraseMaxLength
-                || zhuyinSymbols->Count() == 0 )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                CAknWarningNote* errnote = new (ELeave) CAknWarningNote();
-                errnote->SetTone( CAknNoteDialog::EWarningTone );
-                errnote->ExecuteLD( KMaxPhraseNote );
-                fepMan->TryCloseUiL();
-                }
-            popup->ResetStrokeArray();
-            }
-        else
-            {
-            editPane->SetCursorIndexOfKeystroke( 0 );
-            if ( changeState )
-                {
-                for (TInt i = 0; i < candidateList->Count(); i++ )
-                    {
-                    if ( TZhuyinSymbolsMethods::IsZhuyinSymbol(
-                        candidateList->MdcaPoint( i ) ) )
-                        {
-                        candidateList->Delete( i, 1 );
-                        break;
-                        }
-                    }
-                if ( candidateList->Count() > 0 )
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ChangeState( EEntry );
-                    }
-                else
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ChangeState( EZhuyinSequenceEdit );
-                    }
-                }
-            else
-                {
-                popup->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinSequenceEdit );
-                }
-            }
-        }
-    else
-        {
-        TBuf<KMaxBufLen> textbuf;
-        for (TInt i = 0; i < chineseDisped->Count(); i++ )
-            {
-            textbuf.Append( chineseDisped->MdcaPoint( i ) );
-            }
-        textbuf.Append( text );
-        fepMan->NewTextL( textbuf );
-        fepMan->CommitInlineEditL();
-        AddPhraseToDB( textbuf );
-        popup->ResetStrokeArray();
-        if ( text.Length() <= KInputPhraseMaxLength
-            && !fepMan->IsPhraseCreation() )
-            {
-            if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                {
-                fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState( EPredictiveCandidate );
-                }
-            }
-        else
-            {
-            fepMan->TryCloseUiL();
-            }
-        }
-    }
-
-void TAknFepInputStateEntryZhuyinPhrase::AddPhraseToDB( TDes& aPhrase )
-    {
-    TPtiUserDictionaryEntry addUdbEntry( aPhrase );
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    }
-
-TBool TAknFepInputStateEntryZhuyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MZhuyinKeyHandler* zhuyinKeyHandler = iOwner->ZhuyinKeyHandler();
-    
-    CDesCArrayFlat* zhuyinSymbols = uiContainer->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = uiContainer->PinyinPopupWindow()->ChineseCharsDisped();
-
-    iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);            
-    
-    if((aKey == EPtiKeyStar) && (aLength == EShortKeyPress))
-        {
-        AddToneMarkL();
-        if ( !UpdateEEPContent( ) )
-            {
-            RefreshUI();
-            ChangeCbaL();
-            popup->SetChangeState( ETrue );
-            iOwner->ZhuyinKeyHandler()->SetState(1);
-            iOwner->ChangeState(EZhuyinSequenceEdit);
-            return ETrue;
-            }
-        RefreshUI();
-        ChangeCbaL();
-        return ETrue;
-        }
-    else if (aKey == EKeyLeftArrow )
-        {
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-    else if (aKey == EKeyRightArrow)
-        {
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-    else 
-        {
-        if(aKey == EKeyBackspace)
-            {
-            if ( aLength == ELongKeyPress
-                && zhuyinKeyHandler->GetStatusChgFlag() == MZhuyinKeyHandler::EFromCandidateToEntry )
-                {
-                return ETrue;
-                }
-            else
-                {
-                zhuyinKeyHandler->SetStatusChgFlag(MZhuyinKeyHandler::EInit);
-                }
-            
-            DeleteZhuyinSymbolOrChinese();
-            
-            if ( !UpdateEEPContent( ) )
-                {
-                RefreshUI();
-                popup->SetChangeState( ETrue );
-                iOwner->ZhuyinKeyHandler()->SetState(1);
-                ChangeCbaL();
-                iOwner->ChangeState(EZhuyinSequenceEdit);
-                if ( zhuyinSymbols->Count() == 0
-                    && chineseDisped->Count() == 0 )
-                    {
-                    iOwner->FepMan()->TryCloseUiL();
-                    if (aLength == ELongKeyPress)
-                        {
-                        iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                        }
-                    }
-                if ( 0 == chineseDisped->Count() )
-                    {
-                    iOwner->FepMan()->PhraseCreation( EFalse );
-                    }
-                return ETrue;
-                }
-            ChangeCbaL();
-            RefreshUI();
-            if ( zhuyinSymbols->Count() == 0
-                && chineseDisped->Count() == 0 )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                if (aLength == ELongKeyPress)
-                    {
-                    iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                    }
-                }
-            if ( 0 == chineseDisped->Count() )
-                {
-                iOwner->FepMan()->PhraseCreation( EFalse );
-                }
-            }
-        else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKey(aKey))
-            {
-            if ( AddKeystrokeL( aKey ) )
-                {
-                if ( !UpdateEEPContent( ) )
-                    {
-                    RefreshUI();
-                    popup->SetChangeState( ETrue );
-                    iOwner->ZhuyinKeyHandler()->SetState(1);
-                    iOwner->ChangeState(EZhuyinSequenceEdit);
-                    return ETrue;
-                    }
-                RefreshUI();
-                ChangeCbaL();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            return ETrue;
-            }
-        else if(aKey == EKeyDownArrow)
-            {
-            if ( aLength == ELongKeyPress
-                && zhuyinKeyHandler->GetStatusChgFlag() == MZhuyinKeyHandler::EFromSpellingEditingToEntry )
-                {
-                return ETrue;
-                }
-            else if (!candidatePane->IsLastPage())
-               {
-               zhuyinKeyHandler->SetStatusChgFlag(MZhuyinKeyHandler::EInit);
-               if ( candidatePane->NeedGetNewCandidatePage() )
-                   {
-                   if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                       {
-                       if ( candidatePane->IsLastPage() )
-                           {
-                           iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                           return ETrue;
-                           }
-                       }
-                   else
-                       {
-                       CDesCArrayFlat* phraseCandidates = candidatePane->CandidateArray();
-                       RPointerArray<HBufC> list;
-                       GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                       for (TInt i = 0; i < list.Count( ); ++i )
-                           {
-                           phraseCandidates->AppendL( *(list[i]) );
-                           }
-                       list.ResetAndDestroy();
-                       }
-                   }           
-               candidatePane->NextCandidatePage();
-               RefreshUI();
-               }
-            }
-        else if(aKey == EKeyUpArrow)
-            {
-            if(!candidatePane->IsFirstPage())
-                {
-                candidatePane->PreviousCandidatePage();
-                RefreshUI();
-                }
-            else
-                {
-                iOwner->ZhuyinKeyHandler()->SetState(0);
-                popup->SetState( EFalse );
-                iOwner->ChangeState(EZhuyinSequenceEdit);
-                return EFalse;
-                }
-            }   
-        else if ( (aKey == EKeyOK || aKey == EKeyCBA1 || aKey == EKeyRightArrow || aKey == EKeyLeftArrow)
-            && aLength == EShortKeyPress )
-            {
-            iOwner->ChangeState(ECandidate);
-            return EFalse;
-            }
-        return ETrue;
-        }
-    }
-
-void TAknFepInputStateEntryZhuyinPhrase::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    TBuf<KInputPaneLength> currentText;
-    inputPane->GetText(currentText);
-    if (ptr.Length() < currentText.Length())
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    UpdateIndicator();
-    }
-
-void TAknFepInputStateEntryZhuyinPhrase::GetNewCandidatesL(const TDesC& aSource, 
-                                                    RPointerArray<HBufC>& aList)
-    {
-    TInt start = 0;
-    TInt length = 0;
-
-    for (TInt ii = 0; ii < aSource.Length(); ii++)
-        {
-        if (aSource[ii] == KSegment)
-            {
-            TPtrC segment(aSource.Ptr() + start, length);
-            aList.AppendL(segment.AllocL());
-            start += (length + 1);
-            length = 0;
-            }
-        else
-            {
-            length++;
-            }
-        }
-
-    if (length)
-        {
-        TPtrC segm(aSource.Ptr() + start, length);
-        aList.AppendL(segm.AllocL());
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryZhuyinStrokeBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateEntryZhuyinStrokeBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryZhuyinStrokeBase.h"
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-TAknFepInputStateEntryZhuyinStrokeBase::TAknFepInputStateEntryZhuyinStrokeBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > 1;
-            
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(EFalse);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->ShowCandidateOrdinals(EFalse);//
-    candidatePane->SelectFirst();
-    iUseforResourcechange = EFalse;
-    }
-void TAknFepInputStateEntryZhuyinStrokeBase::HandleCommandL(TInt /*aCommandId*/)
-	{	
-    RefreshUI(iUseforResourcechange);	
- 	}
-
-TBool TAknFepInputStateEntryZhuyinStrokeBase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    if(aKey == EKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            TBool multiplePages = ptiengine->MoreCandidatePages();
-            TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-            TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-            uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-            uiContainer->ShowVerticalScrollArrows(multiplePages);
-            iUseforResourcechange = EFalse;
-            RefreshUI(EFalse);
-            SetInputPaneToneMark();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKey(aKey))
-        {
-     	iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);        
-        
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        
-        TBool multiplePages = ptiengine->MoreCandidatePages();
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        SetInputPaneToneMark();
-        iUseforResourcechange = EFalse;
-        RefreshUI(EFalse);
-        }
-    else if(aKey == EKeyDownArrow)
-        {
-        ptiengine->NextCandidatePage();
-        iUseforResourcechange = EFalse;
-        RefreshUI(EFalse);
-        }
-    else if(aKey == EKeyUpArrow)
-        {
-        ptiengine->PreviousCandidatePage();
-        iUseforResourcechange = EFalse;
-        RefreshUI(EFalse);
-        }   
-    else if(aKey == EKeyOK || aKey == EKeyRightArrow || aKey == EKeyLeftArrow)
-        {
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBase::RefreshUI(TBool aOrdinals)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-
-    // Universal layout 
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    TPtrC candidates = ptiengine->CandidatePage();
-    uiContainer->CandidatePane()->SetCandidateBuffer(candidates);
-    uiContainer->Enable(ETrue);
-    if (aOrdinals)
-        {
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-        }
-
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBase::SetInputPaneToneMark()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlInputPane* inputPane = UIContainer()->InputPane();
-
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> buf;
-    if(toneMarkEntered)
-        {
-        buf.Append(toneMark);
-        }
-    inputPane->SetToneMark(buf);
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBase::KeyTimerExpired()
-    {
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AVKON_SOFTKEYS_EMPTY);
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateEntryZhuyinStrokeBasePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateEntryZhuyinStrokeBasePhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateEntryZhuyinStrokeBasePhrase.h"
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-TAknFepInputStateEntryZhuyinStrokeBasePhrase::TAknFepInputStateEntryZhuyinStrokeBasePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    uiContainer->FocusCandidatePane(EFalse);
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->ShowCandidateOrdinals(EFalse);
-    candidatePane->SelectFirstPhrase();
-    }
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::HandleCommandL(TInt /*aCommandId*/)
-	{	
-    RefreshUI();	
- 	}
-
-TBool TAknFepInputStateEntryZhuyinStrokeBasePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-
-    if(aKey == EKeyBackspace)
-        {
-		if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-            {
-            inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-            RefreshUI();
-            SetInputPaneToneMark();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        }
-    else if((aLength == EShortKeyPress) && iOwner->IsValidChineseInputKey(aKey))
-        {
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        SetInputPaneToneMark();
-        inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        RefreshUI();
-        }
-    else if(aKey == EKeyDownArrow)
-        {
-        if (!candidatePane->IsLastPage())
-            {
-            candidatePane->NextCandidatePage();
-            RefreshUI();
-            }
-        }
-    else if(aKey == EKeyUpArrow)
-        {
-        if(!candidatePane->IsFirstPage())
-            {
-            candidatePane->PreviousCandidatePage();
-            RefreshUI();
-            }
-        }   
-    else if(aKey == EKeyOK || aKey == EKeyRightArrow || aKey == EKeyLeftArrow)
-        {
-        iOwner->ChangeState(ECandidate);
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::RefreshUI()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    // layout candidate and fill candidate buffer for first display page
-    TInt candidateCount = 0;
-    if(inputPane->IsFlagSet(MAknFepUICtrlInputPane::EPhoneticChanged))
-        {
-        inputPane->ClearFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-        TRAPD(ignore,candidateCount = ptiengine->GetChinesePhraseCandidatesL(
-                           *(uiContainer->CandidatePane()->CandidateArray())));
-        if(candidateCount == 0 || ignore != KErrNone)
-            {
-            return;
-            }    
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        }
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable(ETrue);
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    UpdateIndicator();
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::SetInputPaneToneMark()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlInputPane* inputPane = UIContainer()->InputPane();
-
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> buf;
-    if(toneMarkEntered)
-        {
-        buf.Append(toneMark);
-        }
-    inputPane->SetToneMark(buf);
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::KeyTimerExpired()
-    {
-    }
-
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT);
-    }
-    
-void TAknFepInputStateEntryZhuyinStrokeBasePhrase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TInt candidateCount = candidatePane->CandidateArray()->Count();
-        
-    if ( candidatePane->IsFirstPage() || candidateCount== 0 )
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->IsLastPage() || candidateCount== 0 )
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( ETrue );
-        }
-    }
-    
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateHalfQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,668 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       Provides the TAknFepInputStateHalfQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateHalfQwerty.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <PtiKeyMappings.h>
-#include <centralrepository.h> 
-#include <AknFepInternalCRKeys.h>       
-  
-
-TAknFepInputStateHalfQwerty::TAknFepInputStateHalfQwerty(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iState = EInitial;
-    iData = 0;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-    }
-
-TBool TAknFepInputStateHalfQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    if( ptiengine == NULL || aKey == EStdKeyNull || 
-    		aKey == EStdKeyF21 || aKey == EKeyF21 || aKey == EKeyF20 || aKey == EKeyF19 ||
-		aKey == EStdKeyLeftArrow || aKey == EStdKeyRightArrow || aKey == EStdKeyDownArrow || aKey == EStdKeyUpArrow )
-        return ret;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();    
-    TPtiTextCase CurCase = ptiengine->Case();
-
-    if (iData && (iData != aKey) )
-        {
-        ptiengine->CancelTimerActivity();        
-        fepMan->CommitInlineEditL();      
-        ptiengine->ClearCurrentWord();        
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        iData = 0;
-        }
-    // if it is a long key press of the punctuation key,
-		 
-	  if( aLength == ELongKeyPress && aKey == EStdKeyFullStop)
-	  	{
-	  	// Commit the current word and then do the usual stuff
-	  	ptiengine->CancelTimerActivity();	  		  	
-	  	}
-	if( !fepMan->EditorHasFreeSpace() && !iData )
-		{
-		// Do not proceed as we have reached max limit and timer has expired
-		ptiengine->CancelTimerActivity();
-		ptiengine->ClearCurrentWord();        
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        return 0;
-        }
-    
-    if( EStdKeyEnter == aKey )
-		{
-		// Asynchronous case update.
-		fepMan->SimulateKeyEventL(EKeyF19);
-		return 0;
-		}
-		
-    if (!iOwner->PtiEngine()->IsValidKey((TPtiKey)aKey))
-        {     
-        iData = 0;
-        ChrKeyTimerExpired();
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);        
-        ptiengine->CancelTimerActivity();		                
-        return ret;
-        }
-  TPtrC text;
-  /*
-        if ( fepMan->IsOnlyNumericPermitted() )    
-            {
-            ptiengine->CancelTimerActivity();       
-            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey)); 
-            TPtrC numericChars(KAllAllowedNumericChars, KNumAllowedIdleNumericChars);   
-            if (text.Length() && numericChars.Locate(text[0]) != KErrNotFound)
-                {
-                TBuf<1> chr;    
-                chr.Append(text[0]);
-                fepMan->NewCharacterL(chr);             
-                ptiengine->CancelTimerActivity();        
-                fepMan->CommitInlineEditL();      
-                ptiengine->ClearCurrentWord();                                      
-                }
-            
-            return ETrue;
-            }
- */
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	TInt origLanguage = ptiengine->CurrentLanguage()->LanguageCode();
-    TPtiEngineInputMode origInputMode = ptiengine->InputMode();
-    TBool languageChanged = EFalse;
-		
-    // In reverse fn key mapping filter the char applicable for
-    // Numeric editor.
-    if( fepMan->IsOnlyNumericPermitted() )
-        {
-        
-        if( EStdKeyLeftFunc == aKey )
-            {
-            TCallBack timerExpire(TimerExpire, this);
-            fepMan->MultitapThroughSCTCharL(timerExpire); 
-            return ETrue;
-            }
-        else 
-            {
-            ChrKeyTimerExpired();
-            }
-        if( !fepMan->IsValidCharForNumericInFnReverseL( aKey, iOwner->PtiEngine()->Case() ) )
-            {
-            if(CheckHasValidNumerKeyMappedL(aKey,languageChanged))
-                return ETrue;
-            }
-        }
-    
-#endif //__REVERSE_FN_KEY_SUPPORTED
-
-
-//    if( aLength == EShortKeyPress )
-        {
-        /*
-        if (aKey == EStdKeySpace && (fnKeyState == CAknFepFnKeyManager::EFnKeyNone))
-            {
-            _LIT(KSpaceCharacter, " ");
-            text.Set(KSpaceCharacter);        
-            }        
-        else*/ 
-   if( aKey == EStdKeySpace && fepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNone)
-    		{
-    		_LIT(KSpace," "); 
-			fepMan->StartInlineEditL();
-            fepMan->UpdateInlineEditL(KSpace,0);
-            fepMan->CommitInlineEditL();
-        	return ETrue;        		
-    		}    
-        else
-            {
-            TBool isCharacter = ETrue;
-            if (!iData)
-                {
-                isCharacter = IsCharacterKey(aKey);
-                }
-            HandleCaseChange(aKey, isCharacter);        
-            CurCase = ptiengine->Case();
-
-            if(( (fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-                    || fepMan->IsPhoneNumberEditor() )
-                    && fepMan->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-            {            
-            if( EStdKeyLeftFunc == aKey )
-                {
-                TCallBack timerExpire(TimerExpire, this);
-                fepMan->MultitapThroughSCTCharL(timerExpire); 
-                return ETrue;
-                }
-            else
-                { 
-                ChrKeyTimerExpired();
-                }	
-
-            if(!fepMan->IsPhoneNumberEditor())
-			{
-				TChar validchr;
-				if(!CheckHasValidNumerKeyMappedL(aKey,languageChanged))
-					ptiengine->SetCase((TPtiTextCase)EPtiCaseLower);
-				else
-					return ETrue;
-			}
-            }
-            if(!iData)
-            	{
-            	// this should be called after case change 
-            	// so that the shift state is taken care of
-            	#ifdef __HALF_QWERTY_PREVIEW_PANE
-                	fepMan->PreparePreviewPaneL((TPtiKey)aKey);
-				#endif //__HALF_QWERTY_PREVIEW_PANE
-            	}
-
-            // Over ride the case changes, force to fnLower for 
-            // long key press.
-            if( aLength == ELongKeyPress && aKey == EStdKeyFullStop)
-            	{
-            	iOwner->PtiEngine()->SetCase( EPtiCaseFnLower );
-            	}
-            	            
-            // Get keymapping from PtiEngine.                
-            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-
-            // send the text to be highlighted here
-            #ifdef __HALF_QWERTY_PREVIEW_PANE
-            	fepMan->ShowPaneL();
-			#endif //__HALF_QWERTY_PREVIEW_PANE            	
-            }
-            
-        if (text.Length() > 0)        
-             {               
-            TBuf<1> chr;    
-            chr.Append(text[0]);
-            if( fepMan->IsOnlyNumericPermitted() 
-            	&& !iOwner->FepMan()->IsValidCharInNumericEditorL(text[0]) )
-            	{
-            	ptiengine->CancelTimerActivity(); 
-            	
-#ifdef __REVERSE_FN_KEY_SUPPORTED            	
-	            if(languageChanged)
-    	            {
-        	        ptiengine->ActivateLanguageL(origLanguage);
-            	    ptiengine->SetInputMode(origInputMode );            		
-                	}            
-#endif                		
-	            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-					ptiengine->SetCase(CurCase);      		
-            	return ETrue;
-            	}            
-            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric()
-                                            && fepMan->FnKeyState() != CAknFepFnKeyManager::EFnKeyNone)
-                {
-                if(!iOwner->FepMan()->IsValidCharInNumericEditorL(text[0]) )
-                    {
-                    ptiengine->CancelTimerActivity(); 
-                                    
-#ifdef __REVERSE_FN_KEY_SUPPORTED               
-                    if(languageChanged)
-                        {
-                        ptiengine->ActivateLanguageL(origLanguage);
-                        ptiengine->SetInputMode(origInputMode );                    
-                        }            
-#endif  
-                    }
-            	}
-            fepMan->NewCharacterL(chr);
-            
-           // if ( aKey == EStdKeyEnter)
-           //     {
-           //     fepMan->CommitInlineEditL();      
-           //     ptiengine->ClearCurrentWord();                
-           //     iData = 0;
-           //     }
-           // else            
-           //     {    
-                iData = aKey;            
-                fepMan->SetFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);                   
-            //    }
-                                  
-            }
-        if((text.Length() > 0) || (IsKeymapped(aKey)))
-            {
-            ret = ETrue;
-            }
-        TBuf<32> mappedCharacters;
-        iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, iOwner->PtiEngine()->Case());
-        if( mappedCharacters.Length() < 2 )
-            {
-            ptiengine->CancelTimerActivity(); 
-            if( aLength == EShortKeyPress )
-            	{            	
-            	SetShortKeyPressText(text);
-            	}
-            }
-		if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-			ptiengine->SetCase(CurCase);
-    }
-    
-// else
-// //Long key press
-//    {
-//        if (aKey == EStdKeyEnter)
-//            {
-            // PtiEngine does not have mapping for the enter key.
-//            const TText KAknFEPLineFeedSymbol = 0x21B2;
-//            TBuf<1> lineFeed;
-//            lineFeed.Zero();
-//            lineFeed.Append(KAknFEPLineFeedSymbol);
-//            text.Set(lineFeed);
-//            }
-//        else
-//            {
-//            TBool isCharacter = ETrue;
-//            if (!iData)
-//            {
-//            isCharacter = IsCharacterKey(aKey);
-//            }
-//            //HandleCaseChange(aKey, isCharacter);
-//            //Forcing Fn mode for long key press
-//            
-//            /*
-//            //Start of Option-1
-//            ptiengine->SetCase(EPtiCaseFnLower);
-//            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-//            // End of Option-1
-//            */
-//
-//            //Start of Option-2
-//            //To do: Space key lower case being mapped and removing 
-//            //hard coding of space in UI State.
-//            TBuf<5> allFnMappedCharacters;
-//            ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-//            text.Set(allFnMappedCharacters);
-//            // End of Option-2
-//
-//            }
-//        #ifdef __HALF_QWERTY_PREVIEW_PANE
-//        // in any case hide the preview pane
-//        	fepMan->HidePane();
-//		#endif //__HALF_QWERTY_PREVIEW_PANE
-//            
-//        if (text.Length() > 0)        
-//            {               
-//            TBuf<1> chr;    
-//            chr.Append(text[0]);
-//            fepMan->NewCharacterL(chr);
-//            fepMan->CommitInlineEditL();      
-//            ptiengine->ClearCurrentWord();                
-//            iData = 0;
-//            /*
-//            if (aKey == EStdKeyEnter)
-//                {
-//                fepMan->CommitInlineEditL();      
-//          ptiengine->ClearCurrentWord();                
-//          iLastKey = 0;
-//                }
-//            else            
-//                {    
-//                iLastKey = aKey;            
-//                fepMan->SetFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);                   
-//                }
-//            */
-//                                  
-//            ret = ETrue;
-//            }
-//        else
-//            {
-//            // text.Length is zero. Handle long key.
-//            if( aKey == EStdKeyFullStop )
-//                {
-//                ptiengine->CancelTimerActivity();
-//                }
-//            }
-//        }
-    if( aKey!=EStdKeyBackspace && fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-    	return ETrue;
-        
-    if(ptiengine->IsValidKey((TPtiKey)aKey))
-       	ret = ETrue;
-        
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	if(languageChanged)
-    	{
-        ptiengine->ActivateLanguageL(origLanguage);
-        ptiengine->SetInputMode(origInputMode );            		
-        }    
-#endif  
-  
-    return ret;
-    }
-
-// Functions from MPtiObserver interface
-void TAknFepInputStateHalfQwerty::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-        #ifdef __HALF_QWERTY_PREVIEW_PANE
-        	fepMan->HidePane();
-		#endif //__HALF_QWERTY_PREVIEW_PANE
-        iData = 0;
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();    
-        if( !fepMan->IsFlagSet( CAknFepManager::EFlagLongShiftKeyPress ) )
-            {
-            if(fnKeyState == CAknFepFnKeyManager::EFnKeyNext)
-                fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-            }
-        }  
-    }
-    
-void TAknFepInputStateHalfQwerty::HandleCaseChange(TInt /*aKey*/, TBool aIsCharacter)
-    {
-    // Punctuation key multitapping should not change case
-    if( iData )
-        return;
-    
-    TPtiTextCase caseMode = EPtiCaseLower;
-
-    if (aIsCharacter)
-        {
-        if( iData == 0 || !( iOwner->FepMan()->IsOnlyNumericPermitted()  ) )
-            {
-            // use the Edwin case only when timer expires
-            // To handle cases like insert fn character empty editor
-            // followed by alpa character
-            switch(iOwner->CaseMan()->CurrentCase())
-               {
-                case EAknEditorLowerCase:
-                    caseMode = EPtiCaseLower;
-                    break;            
-                case EAknEditorTextCase:
-                case EAknEditorUpperCase:
-                   caseMode = EPtiCaseUpper;
-               default:
-                   break;
-               }
-            }
-        else
-            {
-            // user is still multitapping, use the existing PtiEngine case
-            caseMode = iOwner->PtiEngine()->Case();
-            }
-        }
-        
-    TPtiTextCase shiftedCase = caseMode;
-    
-    TPtiTextCase curCase = iOwner->PtiEngine()->Case();
-    if(curCase == EPtiCaseFnUpper || curCase == EPtiCaseFnLower)
-        return;
-
-    if ( iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && 
-        ( !aIsCharacter|| iOwner->CaseMan()->IsAbleChangeCase() ) )
-        {
-        // Case mode is changed to opposite because shift key is/was pressed and
-        // in case of character key case changes are allowed. In case of
-        // number or special key, shift mode is used always when 
-        // shift key is pressed
-        
-                
-        // clear this flag so that the shift key mode gets reset 
-        // when shift key up event is received
-        
-        iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-        
-		// Do not toggle case while multitapping
-        if( !iData )
-        	{
-        	switch ( caseMode )
-	            {
-	            case EPtiCaseUpper:
-	                shiftedCase = EPtiCaseLower;
-	                break;
-	            case EPtiCaseLower:
-	                shiftedCase = EPtiCaseUpper;
-	                break;
-	            default:
-	                break;
-	            }
-        	}
-        }
-        
-    if ( iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    iOwner->FepMan()->ClearFlag( CAknFepManager::EFlagNoActionDuringChrKeyPress );
-    iOwner->PtiEngine()->SetCase(shiftedCase);
-    
-    }
-
-TBool TAknFepInputStateHalfQwerty::IsCharacterKey(const TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();       
-    // Max length doesn't matter because we'll need only the first character.    
-    TBuf<KMaxName> lowerdata;   
-    
-    ptiengine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);        
-    if (lowerdata.Length() > 0)
-        {
-        TChar lower = lowerdata[0];        
-        TUint upper = lower.GetUpperCase();
-    
-        if ( TUint(lower) != upper )
-            {
-            return ETrue;   
-            }
-        }
-   
-     return EFalse;
-    }       
-TBool TAknFepInputStateHalfQwerty::TryGetValidCharForKey(const TInt& aKey, TChar& aChar)
-    {    
-    if( ! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseFnLower) )
-        {
-        if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseUpper))
-            {
-            if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseLower))
-                {
-                return EFalse;
-                }
-            }
-        }
-    return ETrue;
-    }
-TBool TAknFepInputStateHalfQwerty::TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase)
-    {
-    TBuf<KMaxName> mappedCharacters;
-
-    iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, aCase);        
-    TRAP_IGNORE(
-    for (TInt i = 0; i < mappedCharacters.Length(); i++ )
-        {
-        if( iOwner->FepMan()->IsValidCharInNumericEditorL( mappedCharacters[i] ) )
-            {
-            aChar = mappedCharacters[i];
-            return ETrue;
-            } 
-        }); 
-    return EFalse;
-    }
-TInt TAknFepInputStateHalfQwerty::TimerExpire(TAny* aPtr)
-    {
-    reinterpret_cast<TAknFepInputStateHalfQwerty*>(aPtr)->ChrKeyTimerExpired();
-    return 1;
-    }
-TInt TAknFepInputStateHalfQwerty::ChrKeyTimerExpired()
-    {
-    if(iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        // this function is only called for number only editors 
-
-        TRAP_IGNORE(iOwner->FepMan()->CommitInlineEditL());
-        }    
-    return 1;
-    }
-
-
-TBool TAknFepInputStateHalfQwerty::IsKeymapped(TInt aKey)
-    {
-    TBuf<20> mapData;
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    for(TInt count=0;count<EPtiCaseMax;count++)
-        {
-        ptiengine->MappingDataForKey(static_cast<TPtiKey>(aKey), mapData, static_cast<TPtiTextCase> (count)); 
-        if(mapData.Length())
-            {
-            ret = ETrue;
-            break;
-            }
-        }
-    return ret;
-    }
-
-TBool TAknFepInputStateHalfQwerty::CheckHasValidNumerKeyMappedL(TInt aKey, TBool &aLangChanged)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt origLanguage = ptiengine->CurrentLanguage()->LanguageCode();
-    TPtiEngineInputMode origInputMode = ptiengine->InputMode();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    //TBool languageChanged = EFalse;
-    
-                TChar chr;
-
-                if( ! TryGetValidCharForKey(aKey, chr) )
-                    {
-                    // If the key in not valid char in the current input language in Fn reverse mode,
-                    // then we will check if against English language. And if its valid then we will
-                    // insert the char based out of key for English input language and revert back 
-                    // the change in input language at the end.
-
-                    if(ptiengine->CurrentLanguage()->LanguageCode() == ELangEnglish)
-                        {
-                        if(fepMan->IsOnlyNumericPermitted())
-                            return ETrue;
-                        else
-                            return EFalse;
-                        }
-
-                    aLangChanged = ETrue;
-                    ptiengine->ActivateLanguageL(ELangEnglish);
-                    ptiengine->SetInputMode(EPtiEngineHalfQwerty); 
-
-                    if( !fepMan->IsValidCharForNumericInFnReverseL(aKey, iOwner->PtiEngine()->Case()) )
-                        {
-                        if( ! TryGetValidCharForKey(aKey, chr) )
-                            {
-                            ptiengine->ActivateLanguageL(origLanguage);
-                            ptiengine->SetInputMode(origInputMode );  
-                            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())    
-                                return EFalse;
-                            else
-                                return ETrue;
-                            }
-                        else
-                            {
-                            if(aLangChanged)
-                                {
-                                ptiengine->ActivateLanguageL(origLanguage);
-                                ptiengine->SetInputMode(origInputMode );                    
-                                }
-
-                            TBuf<1> buf;    
-                            buf.Append(chr);
-                            fepMan->NewCharacterL(buf);
-                            fepMan->CommitInlineEditL();      
-                            ptiengine->ClearCurrentWord();                
-                            iData = 0;
-                            ptiengine->CancelTimerActivity();
-                            return ETrue;                       
-                            }
-                        }
-                    }
-                else
-                    {
-                    if(aLangChanged)
-                        {
-                        ptiengine->ActivateLanguageL(origLanguage);
-                        ptiengine->SetInputMode(origInputMode );                    
-                        }
-
-                    TBuf<1> buf;    
-                    buf.Append(chr);
-                    fepMan->NewCharacterL(buf);
-                    fepMan->CommitInlineEditL();      
-                    ptiengine->ClearCurrentWord();                
-                    iData = 0;
-                    ptiengine->CancelTimerActivity();
-                    return ETrue;
-                    }
-                
-    
-    return EFalse;
-    }	
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialArabicHebrewMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2003 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 TAknFepInputStateInitialArabicHebrewMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialArabicHebrewMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-#include <uikon.hrh>
-
-#include <PtiEngine.h>
-
-TAknFepInputStateInitialArabicHebrewMultitap::
-TAknFepInputStateInitialArabicHebrewMultitap(MAknFepUIManagerStateInterface* aOwner)
-:TAknFepInputStateInitialLatinMultitap(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    // This can be removed now because the PTI engine is in use?
-    TPtiTextCase caseMode = ptiengine->Case();
-
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineMultitapping);
-
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialArabicHebrewMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-
-    if(iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-        }
-
-    iData = aKey;
-    if(aLength == EShortKeyPress)
-        {
-        if (aKey == EPtiKeyStar)
-            {
-  			if (!fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-        		{
-        		fepMan->LaunchSpecialCharacterTableL();
-        		}                        
-            }
-        else
-            {
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                }
-            }
-        }
-    else // long keypress
-        {
-	     if (aKey == EPtiKeyStar && fepMan->EditSubmenuInUse())
-            {
-       		fepMan->LaunchSpecialCharacterTableL();                
-            }
-		else
-			{					                    
-        	TChar ch(aKey);
-
-        	TBuf<1> buf;
-        	buf.Append(ch);
-        	fepMan->NewCharacterL(buf);
-        	fepMan->CommitInlineEditL();
-        	ptiengine->ClearCurrentWord();
-			}
-        }
-
-    return ret;
-    }
-
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialArabicHebrewPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateInitialArabicHebrewPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialArabicHebrewPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialArabicHebrewPredictive::
-TAknFepInputStateInitialArabicHebrewPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialWesternPredictive(aOwner)
-    {
-    }
-
-TBool TAknFepInputStateInitialArabicHebrewPredictive::HandleKeyL(TInt aKey, 
-                                                                 TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = ETrue;
-
-    if (aKey == EPtiKey0)
-        {
-        TAknFepInputStateInitialWesternPredictive::HandleKeyL(aKey, aLength);
-        }
-    else if (aKey == EPtiKeyStar)
-        {
-  		if (aLength == EShortKeyPress)
-			{	
-		    if (fepMan->IsFlagSet(CAknFepManager::EFlagLineFeedCharacter) && 
-			    fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-			    {
-			    // User is interrupting multitap timer with star key, but there
-			    // is line feed event waiting. Make sure that it is handled first.
-			    fepMan->CommitInlineEditL();
-			    }			
-							        
-        	if (!fepMan->EditSubmenuInUse())
-        		{
-        		if (fepMan->IsAbleToLaunchSCT())
-        			{
-	        		fepMan->LaunchSpecialCharacterTableL();        			
-        			}
-        		}
-			else
-				{
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);				
-				}        		               	        		
-        	}        	
-		else	        	
-			{
-			if (fepMan->EditSubmenuInUse())
-				{										
-				fepMan->LaunchSpecialCharacterTableL();           			
-				}
-			}               
-        }   
-    else 
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagSuppressInputStateChange))
-            {
-            // Long keypress of numeric keypress, we want to simply return EFalse
-            // to enter a number into the editor, rather than move back to 
-            // entry state, so just clear the flag
-            fepMan->ClearFlag(CAknFepManager::EFlagSuppressInputStateChange);
-            // Asyncronous case update is not needed in Arabic and Hebrew.
-            // Arabic indic digits are handled in FepManager.
-            }
-        else
-            {
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState(EEntry);
-            fepMan->SendUIActivatedNotification();
-            }
-        ret = EFalse;
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialChineseGeneric.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialChineseGeneric methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialChineseGeneric.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <e32keys.h>
-#include <PtiDefs.h>                //keys
-#include <uikon.hrh>
-
-TAknFepInputStateInitialChineseGeneric::TAknFepInputStateInitialChineseGeneric(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateInitialChineseMultitapBase(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStateInitialChineseGeneric::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TBool ret = ETrue;
-
-    if(iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        }
-    
-    //7,8,9 are not multitap in EStroke, so commit
-    if ((fepMan->InputMode() == EStroke) &&
-         (iData == EPtiKey7 || iData == EPtiKey8 || iData == EPtiKey9 ))
-    	{
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-    	}
-    
-    iData = aKey;
-
-    if(iOwner->IsValidChineseInputKey(aKey))
-        {
-        if ( aLength == EShortKeyPress )
-        	{
-            ptiengine->ClearCurrentWord();
-            ptiengine->ResetToneMark();
-
-            if(iOwner->ChangeState(EEntry) == EEntry)
-                {
-                iOwner->FepMan()->SendUIActivatedNotification();
-                }
-            ret = EFalse; //indicate we can't handle the key...
-        	}
-        else
-        	{
-        	return ETrue;
-        	}
-
-        }
-    else if(aKey == EPtiKey0 || aKey == EPtiKey1) // do multitap on zero key...
-        {
-        if(aLength == EShortKeyPress)
-            {
-            const TPtiTextCase oldCase = ptiengine->Case();
-            if (fepMan->InputMode() == EStroke)
-            	{
-            	ptiengine->SetCase(EPtiCaseUpper);
-            	}
-            TPtrC aText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            fepMan->NewCharacterL(aText);
-            ptiengine->SetCase(oldCase);
-            }
-        else
-            {
-            //don't want long keypresses to result in numbers as this would be inconsistent in
-            //Chinese modes, so commit the current character
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-            }
-        }
-    //do multitap on 7-9 key
-    else if ((fepMan->InputMode() == EStroke) &&
-             (aKey == EPtiKey7 || aKey == EPtiKey8 ||
-              aKey == EPtiKey9 ))    		   
-    	{
-    	if(aLength == EShortKeyPress)
-            {
-            const TPtiTextCase oldCase = ptiengine->Case();
-            ptiengine->SetCase(EPtiCaseUpper);            
-            
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            fepMan->NewCharacterL(text);
-            ptiengine->SetCase(oldCase);
-            }
-        else
-            {
-            //don't want long keypresses to result in numbers as this would be inconsistent in
-            //Chinese modes, so commit the current character
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-            }
-    	}
-    else if (aKey == EPtiKeyStar)
-        {
-        if (aLength == EShortKeyPress)
-        	{
-       		if (fepMan->EditSubmenuInUse())
-        		{
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-        		return ret;
-        		}                        
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }    	
-        	}
-        else
-        	{
-       		if (fepMan->EditSubmenuInUse())
-            	{
-       			fepMan->LaunchSpecialCharacterTableL();                
-        	    }        	
-            }
-        }
-    else if (aKey == EKeyOK)
-        {
-        ret = EFalse;   //don't consume OK key in initial state 
-        }
-
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialChineseGenericQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,410 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateInitialChineseGenericQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialChineseGenericQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-
-#include "AknFepManager.h"         //FepMan flag
-
-#include <PtiEngine.h>
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include <AknFepFnKeyManager.h>
-#endif
-const TText KZhuyinTone2 = 0x02CA; // qwerty key6
-const TText KZhuyinTone3 = 0x02C7; // qwerty key3
-const TText KZhuyinTone4 = 0x02CB; // qwerty key4
-const TText KZhuyinTone5 = 0x02D9; // qwerty key7
-
-TAknFepInputStateInitialChineseGenericQwerty::
-TAknFepInputStateInitialChineseGenericQwerty(MAknFepUIManagerStateInterface* aOwner, TInt aMode)
-    :TAknFepInputStateQwerty(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    MPtiLanguage* ptilang = ptiengine->CurrentLanguage(); 
-#endif
-    
-    switch( aMode )
-        {
-        case EPinyin:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if (ptilang->HasInputMode(EPtiEnginePinyinPhraseQwerty))
-                {         
-                ptiengine->SetInputMode(EPtiEnginePinyinPhraseQwerty);
-                }
-            else
-#endif
-            ptiengine->SetInputMode(EPtiEnginePinyinQwerty);
-            break;
-        case EStroke:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if (ptilang->HasInputMode(EPtiEngineStrokePhraseQwerty))         
-                ptiengine->SetInputMode(EPtiEngineStrokePhraseQwerty);
-            else
-#endif
-            ptiengine->SetInputMode(EPtiEngineStrokeQwerty);
-            break;
-        case EZhuyin:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if (ptilang->HasInputMode(EPtiEngineZhuyinPhraseQwerty))         
-                ptiengine->SetInputMode(EPtiEngineZhuyinPhraseQwerty);
-            else
-#endif
-            ptiengine->SetInputMode(EPtiEngineZhuyinQwerty);
-            break;
-        case ECangJie:
-            ptiengine->SetInputMode(EPtiEngineNormalCangjieQwerty);
-            break;
-        default:
-            break;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    ptiengine->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());        
-#endif
-    }
-
-TBool TAknFepInputStateInitialChineseGenericQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-	const TPtiKeyboardType keyboardType = ptiengine->KeyboardType();
-#endif
-
-    if(iData)
-        {
-        iData = 0;
-        }
-    
-    if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress) 
-        {
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsQwertyZhuyinToneMarkKey(aKey) &&
-        aLength == EShortKeyPress
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        && !fnKeyState   
-#endif
-        && !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)
-        && !fepMan->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)
-        && !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        TBuf<1> ToneMarkBuf;
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-        if( keyboardType == EPtiKeyboardQwerty4x12)
-            {
-#endif
-        switch(aKey)
-            {
-            case EPtiKeyQwerty3:
-                ToneMarkBuf.Append(KZhuyinTone3);
-                break;
-
-            case EPtiKeyQwerty4:
-                ToneMarkBuf.Append(KZhuyinTone4);
-                break;
-
-            case EPtiKeyQwerty6:
-                ToneMarkBuf.Append(KZhuyinTone2);
-                break;
-
-            case EPtiKeyQwerty7:
-                ToneMarkBuf.Append(KZhuyinTone5);
-                break;
-            default:
-                break;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-                }
-            else
-                if (keyboardType == EPtiKeyboardQwerty4x10 || keyboardType
-                        == EPtiKeyboardQwerty3x11)
-                    {
-                    switch (aKey)
-                        {
-                        case EPtiKeyQwertyE:
-                            ToneMarkBuf.Append(KZhuyinTone3);
-                            break;
-
-                        case EPtiKeyQwertyR:
-                            ToneMarkBuf.Append(KZhuyinTone4);
-                            break;
-
-                        case EPtiKeyQwertyY:
-                            ToneMarkBuf.Append(KZhuyinTone2);
-                            break;
-
-                        case EPtiKeyQwertyU:
-                            ToneMarkBuf.Append(KZhuyinTone5);
-                            break;
-                        default:
-                            break;
-                        }
-                    }
-#endif
-        
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        fepMan->NewCharacterL(ToneMarkBuf);
-        fepMan->CommitInlineEditL();
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        ret = ETrue;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey) && 
-            !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) && 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) &&
-            !fepMan->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) &&
-            !fnKeyState)
-#else
-            !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-#endif
-        {
-        if ( aLength == EShortKeyPress )
-        	{
-            ptiengine->ClearCurrentWord();
-            ptiengine->ResetToneMark();
-            
-            if(iOwner->ChangeState(EEntry) == EEntry)
-                {
-                iOwner->FepMan()->SendUIActivatedNotification();
-                }
-        	}
-        else
-        	{
-        	return ETrue;
-        	}
-        }
-    else if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && 
-             fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        ret = ETrue;
-        }
-    else if (IsCharacter(aKey) || IsSCTKey(aKey))
-        {
-        HandleKeyByShiftOrCharPressed(aKey,aLength);
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);        
-            }
-        ret = ETrue;
-        }
-    else if ((IsCharacter(aKey) || aKey == EPtiKeyQwertySpace) 
-           && fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        fepMan->ClearFlag(CAknFepManager::EFlagQwertyChrKeyDepressed);
-        fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if((aKey == EPtiKeyQwertySpace) &&EPtiKeyboardQwerty4x12 != ptiengine->KeyboardType())
-            {
-            TPtrC text;
-            _LIT(KSpaceCharacter, " ");
-            text.Set(KSpaceCharacter);        
-                
-            if (text.Length())
-                {
-                TBuf<1> chr;            
-                for (TInt jj = 0; jj < text.Length(); jj++)
-                   	{
-                   	chr.Zero();
-                   	chr.Append(text[jj]);
-                    fepMan->NewCharacterL(chr);               	         	                        
-               	    fepMan->CommitInlineEditL();
-                   	}
-                ret = ETrue;
-                }                
-            }
-#endif
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    else if(aKey == EPtiKeyQwertySpace)
-        {
-        if (fnKeyState == CAknFepFnKeyManager::EFnKeyDown)
-            {
-            fepMan->LaunchSelectModeMenuL();
-            ret = ETrue;
-            }
-        else
-            {
-	        TPtrC text;
-	        _LIT(KSpaceCharacter, " ");
-	        text.Set(KSpaceCharacter);        
-	            
-	        if (text.Length())
-	            {
-	            TBuf<1> chr;            
-	            for (TInt jj = 0; jj < text.Length(); jj++)
-	               	{
-	               	chr.Zero();
-	               	chr.Append(text[jj]);
-	                fepMan->NewCharacterL(chr);               	         	                        
-	           	    fepMan->CommitInlineEditL();
-	           	    //ptiengine->ClearCurrentWord();
-	               	}
-	            ret = ETrue;
-	            } 
-            }
-        }
-#endif
-    return ret;
-    }
-
-TBool TAknFepInputStateInitialChineseGenericQwerty::IsSCTKey(TInt aKey)
-    {
-    TBool response = EFalse;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    CPtiEngine* ptiengine = iOwner->PtiEngine();   
-    if(EPtiKeyboardQwerty4x12 == ptiengine->KeyboardType()) 
-        {
-#endif
-    if (IsNumberKey( aKey ) ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        }
-    else if(EPtiKeyboardQwerty4x10 == ptiengine->KeyboardType())
-        {
-        if(aKey == EPtiKeyQwertyComma ||
-           aKey == EPtiKeyQwertyFullstop ||
-           aKey == EPtiKeyQwertySlash ||
-           aKey == EStdKeySingleQuote ||
-           aKey == EStdKeySquareBracketRight ||
-           aKey == EStdKeySquareBracketLeft)
-            {
-            response = ETrue;
-            }
-        }
-    else if(EPtiKeyboardQwerty3x11 == ptiengine->KeyboardType())
-    	{
-    	 if(aKey == EPtiKeyQwertyComma ||
-    		aKey == EPtiKeyQwertyFullstop ||
-    	    aKey == EPtiKeyQwertySlash ||
-    	    aKey == EStdKeySingleQuote ||
-    	    aKey == EStdKeySquareBracketRight ||
-    	    aKey == EPtiKeyQwertyAtCharacter )
-    		 {
-    		 response = ETrue;
-    		 }
-    	}
-#endif
-    return response;
-    }
-
-TBool TAknFepInputStateInitialChineseGenericQwerty::IsCharacter(TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-    
-TBool TAknFepInputStateInitialChineseGenericQwerty::HandleKeyByShiftOrCharPressed(TInt aKey, 
-                                                                                  TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    
-    TPtiTextCase caseMode = EPtiCaseLower;
-    if (fepMan->IsOnlyNumericPermitted())
-        {
-        return ret;
-        }
-    TPtiTextCase shiftedCase = caseMode;
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode | CAknFepManager::EFlagShiftKeyDepressed)) 
-        {
-        shiftedCase = EPtiCaseUpper;
-        } 
-    
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        shiftedCase = EPtiCaseChrLower;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (fepMan->FnKeyState())
-        {
-        shiftedCase = EPtiCaseFnLower;
-        }
-#endif
-    
-    ptiengine->SetCase(shiftedCase);
-    
-
-    TPtrC text;
-    text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-        
-    if (text.Length())
-        {
-        TBuf<1> chr;            
-        for (TInt jj = 0; jj < text.Length(); jj++)
-           	{
-           	chr.Zero();
-           	chr.Append(text[jj]);
-           	TRAP_IGNORE(fepMan->NewCharacterL(chr));
-           	TRAP_IGNORE(fepMan->CommitInlineEditL());
-       	    ptiengine->ClearCurrentWord();
-           	}
-        ret = ETrue;
-        }
-
-    return ret;
-    }
-
-void TAknFepInputStateInitialChineseGenericQwerty::KeyTimerExpired()
-    {
-    
-    }    
-    
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialChineseMultitapBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialChineseMultitapBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialChineseMultitapBase.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepCaseManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialChineseMultitapBase::TAknFepInputStateInitialChineseMultitapBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineMultitapping);
-
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialChineseMultitapBase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-
-    if(iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-        }
-
-    iData = aKey;
-    if(aLength == EShortKeyPress)
-        {
-        if (aKey == EPtiKeyStar)
-            {
-            if (fepMan->EditSubmenuInUse())
-        		{
-     		    fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);                    
-        		return ret;
-        		}            
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        else
-            {
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                }
-            }
-        }
-    else // long keypress
-        {
-        if (aKey == EPtiKeyStar)
-            {
-            if (fepMan->EditSubmenuInUse())
-            	{
-       			fepMan->LaunchSpecialCharacterTableL();                
-        	    } 
-            }        
-        }
-
-    return ret;
-    }
-
-// Functions from MPtiObserver interface
-void TAknFepInputStateInitialChineseMultitapBase::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        //Changing the below line from "TRAPD(err," to TRAP_IGNORE 
-        //to remove compiler warning
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-        //do something if error??
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-
-        iData = 0;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialFullNumber.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +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 TAknFepUiInputStateInitialFullNumber methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialFullNumber.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <featmgr.h>                //FeatureManager
-#include <PtiCompositionDataIF.h>        // MPtiEngineCompositionDataInterface
-#include <jplangutil.h>
-
-// CONSTANTS
-const TInt KNumAllowedIdleNumericChars = 21;
-
-_LIT(KAknFepPlainNumbers, "1234567890");
-const TUint16 KAllAllowedNumericChars[] =
-    {'*','+','p','w','#','1','2','3','4','5','6','7','8','9','0', ';','.',',','-','E','?'};
-const TKeyEvent KEventsForSecondPass[]  =
-    {
-        {42, EStdKeyNkpAsterisk, 3, 0},
-        {43, EStdKeyNkpPlus, 3, 0},
-        {112, 80, EModifierAutorepeatable, 0},
-        {119, 87, EModifierAutorepeatable, 0},
-        {35, EStdKeyHash, EModifierAutorepeatable, 0},
-        {EPtiKey1, EPtiKey1, EModifierAutorepeatable, 0},
-        {EPtiKey2, EPtiKey2, EModifierAutorepeatable, 0},
-        {EPtiKey3, EPtiKey3, EModifierAutorepeatable, 0},
-        {EPtiKey4, EPtiKey4, EModifierAutorepeatable, 0},
-        {EPtiKey5, EPtiKey5, EModifierAutorepeatable, 0},
-        {EPtiKey6, EPtiKey6, EModifierAutorepeatable, 0},
-        {EPtiKey7, EPtiKey7, EModifierAutorepeatable, 0},
-        {EPtiKey8, EPtiKey8, EModifierAutorepeatable, 0},
-        {EPtiKey9, EPtiKey9, EModifierAutorepeatable, 0},
-        {EPtiKey0, EPtiKey0, EModifierAutorepeatable, 0},
-        {59,       EStdKeySemiColon, EModifierAutorepeatable, 0},
-        {46,       122, EModifierAutorepeatable, 0},
-        {44,       121, EModifierAutorepeatable, 0},
-        {45,       130, EModifierAutorepeatable, 0},
-        {101,      69,  EModifierAutorepeatable|EModifierLeftShift, 0},
-        {63,       EStdKeyForwardSlash, EModifierAutorepeatable|EModifierLeftShift, 0}
-    };
-
-/**
- *  AknFepUiInputStateInitialFullNumber class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialFullNumber::TAknFepUiInputStateInitialFullNumber
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialFullNumber::TAknFepUiInputStateInitialFullNumber(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialFullNumber::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialFullNumber::InitializeStateL()
-    {
-    TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-
-    // Setup PtiEngine
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const TWidthChar width = iOwner->FepMan()->CharacterWidth();
-    TPtiEngineInputMode inputmode = EPtiEngineInputModeNone;
-    switch(width)
-        {
-        case EHalfWidthChar:
-            inputmode = (iOwner->IsQwerty())?
-                            EPtiEngineQwerty
-                            : EPtiEngineNumeric;
-            break;
-
-        case EFullWidthChar:
-            inputmode = (iOwner->IsQwerty())?
-                            EPtiEngineFullWidthNumericQwerty
-                            : EPtiEngineFullWidthNumeric;
-            break;
-
-        default: // no operation
-            break;
-        }
-    if (inputmode != EPtiEngineInputModeNone)
-        {
-        ptiEngine->SetInputMode(inputmode);
-
-        if (inputmode == EPtiEngineNumeric)
-            {
-            TRAP_IGNORE(ptiEngine->SetExternalKeyMapL(EPtiEngineNumeric, EPtiKeyStar, 
-                                                     (TDesC&)iOwner->NumberModeKeyMapping(), 
-                                                      EPtiCaseLower))
-            }
-        }
-
-    ptiEngine->ClearCurrentWord();
-    }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool rtn = EFalse;
-
-    switch(ptiengine->InputMode())
-        {
-        case EPtiEngineNumeric:         // non-Qwerty number input
-            rtn = HandleOwnKeyL(aKey, aLength);
-            break;
-        case EPtiEngineQwerty:                  // Qwerty number input
-        case EPtiEngineFullWidthNumericQwerty:  // Qwerty full-width number input
-            rtn = HandleQwertyKeyL(aKey, aLength, fepMan->CharacterWidth());
-            break;
-        case EPtiEngineFullWidthNumeric:    // non-Qwerty full-width number input
-            rtn = TAknFepUiInputStateInitialJapaneseBase::HandleKeyL(aKey, aLength);
-            break;
-        default:
-            break;
-        }
-    return rtn;
-    }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleOwnKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    if (aLength == ELongKeyPress)
-        {
-        switch (aKey)
-            {
-        case EKeyRightArrow:
-        case EKeyLeftArrow:
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EKeyBackspace:
-            return EFalse;
-        case EPtiKeyStar:
-             if (!fepMan->HashKeySelectionInUse()
-              && fepMan->EditSubmenuInUse())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-        default:
-            return ETrue;
-            }
-        }
-
-    if(aKey == EPtiKeyStar)
-        {
-        TBool append = EFalse;
-        if (aLength == EShortKeyPress)
-            {
-            if (fepMan->EditSubmenuInUse())
-                {
-                if (fepMan->IsOnlyNumericPermitted())
-                    {
-                    append = ETrue;
-                    }
-                else
-                    {
-                    fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                    }
-                }
-            else
-                {
-                if (fepMan->IsAbleToLaunchSCT())
-                    {
-                    fepMan->LaunchSpecialCharacterTableL();
-                    }
-                else
-                    {
-                    append = ETrue;
-                    }
-                }
-            }
-        else
-            {
-            if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        if (append)
-            {
-            iData = aKey;
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-
-            // star key is inactive if keymapping is empty.
-            if (text.Length() > 0 && text[0] != 0)
-                {
-                fepMan->NewCharacterL(text);
-
-                // Commit immediately if there is only one character associated to the key.
-                TBuf<CAknFepManager::EMaximumFepWordLength> mapdata;
-                ptiengine->MappingDataForKey((TPtiKey)aKey, mapdata, ptiengine->Case());
-                if (mapdata.Length() <= 1)
-                    {
-                    fepMan->CommitInlineEditL();
-                    ptiengine->ClearCurrentWord();
-                    iData = 0;
-                    }
-                }
-            }
-
-        return ETrue;
-        }
-
-    if(iData)
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-
-        iData = 0;
-        }
-    return EFalse;
-    }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleQwertyKeyL(TInt aKey, 
-                                            TKeyPressLength /*aLength*/, const TWidthChar aWidth)
-    {
-    TBool rtn = EFalse;
-
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-
-    if ( fepMan->IsOnlyNumericPermitted() )
-        {
-        if (aKey == EStdKeySpace || aKey == EStdKeyEnter)
-            {
-            // return Consumed
-            return ETrue;
-            }
-        if (!IsQwertyKey(aKey))
-            {
-            // return Not Consumed
-            return EFalse;
-            }
-
-        TChar chr(0);
-        TKeyEvent numKey;
-
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        const MPtiEngineCompositionDataInterface* data = ptiengine->CompositionData();
-        TPtrC text = data->CompletedString();
-        if (text.Length() > 0 && text[0] != 0)
-            {
-            TChar compchar = text[0];
-            if (aWidth == EFullWidthChar)
-                {
-                TBuf<2> halfstring;
-                TInt convlen = JPLangUtil::ConvertFullToHalfWidth(
-                                text.Left(1), halfstring);
-                if (convlen > 0)
-                    {
-                    compchar = halfstring[0];
-                    }
-                }
-            for (TInt i = 0; i < KNumAllowedIdleNumericChars; i++)
-                {
-
-                if (compchar == KAllAllowedNumericChars[i])
-                    {
-                    numKey = KEventsForSecondPass[i];
-                    chr = KAllAllowedNumericChars[i];
-                    break;
-                    }
-                }
-            }
-
-        if ((chr != 0) &&
-            ((iOwner->NumberModeKeyMapping().Locate(chr) != KErrNotFound) ||
-             (KAknFepPlainNumbers().Locate(chr) != KErrNotFound)) ||
-             fepMan->IsAllowedKeymappingForNumberMode(chr))
-            {
-            if (aWidth == EFullWidthChar)
-                {
-                // Full-width characters are committed immediately.
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                }
-            else
-                {
-                // If editor is in number mode and incoming key press would produce
-                // any of the allowed number mode characters,
-                // resend suitable key event let it pass through FEP. That way phone idle
-                // receives the event too. This also takes care of remapping
-                // different qwerty keymap layouts to edwin events.
-                fepMan->SetFlag(CAknFepManager::EFlagPassNextKey);
-                CCoeEnv::Static()->SimulateKeyEventL(numKey, EEventKey);
-                }
-            }
-        ptiengine->ClearCurrentWord();
-
-        return ETrue;
-        }
-
-    return rtn;
-    }
-
-
-
-// Functions from MPtiObserver interface
-void TAknFepUiInputStateInitialFullNumber::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        iData = 0;
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialHalfQwertyWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,357 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialHalfQwertyWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialHalfQwertyWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-
-#include <PtiDefs.h>
-#include <PtiEngine.h>
-
-// TODO: Remove this include
-#include <AvkonInternalCRKeys.h>
-static const TInt KKeyMappingsLength = 32;
-TAknFepUiInputStateInitialHalfQwertyWesternPredictive::TAknFepUiInputStateInitialHalfQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    //:TAknFepInputStateBase(aOwner),
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    iData = 0;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-	// this is already being done in the base constructor
-	// should not be done again
-//    TPtiTextCase caseMode = ptiengine->Case();
-//    ptiengine->ClearCurrentWord();
-//    ptiengine->SetCase(caseMode);
-    ptiengine->SetInputMode( EPtiEngineHalfQwerty );
-    }
-
-TBool TAknFepUiInputStateInitialHalfQwertyWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    TBool retVal = EFalse;
-    TBuf<KKeyMappingsLength> mappedCharacters;
-    if (iData && (iData != aKey) && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        iOwner->PtiEngine()->CancelTimerActivity();        
-        fepMan->CommitInlineEditL();      
-        iOwner->PtiEngine()->ClearCurrentWord();        
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);             
-        iData = 0;
-        // if the current fn key state is FnNext, then clear it.
-        if( !fepMan->IsFlagSet( CAknFepManager::EFlagLongShiftKeyPress ) )
-            {
-            if( CAknFepFnKeyManager::EFnKeyNext == fepMan->FnKeyState())
-                {
-                fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-                }
-            }
-        }
-    HandleShiftState(aKey);
-    if((fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))&& (aKey !=EStdKeyBackspace) && (aKey!=EKeyBackspace))
-        {
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-            {
-            fepMan->TryRemoveNoMatchesIndicatorL();
-            }      
-        if (fepMan->IsAutoCompleteOn())
-            {
-            TInt tailLength = 0;
-            iOwner->PtiEngine()->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-            if(tailLength > 0)
-                {
-				// To remove the autocompletion part, the below function is used. 
-				// DeleteKeyPress was used earlier. This is removed to fix the bug :
-				// enter characters to show autocompletion part. Now press a 
-				// character so that the no matches character is shown. Now press
-                // backspace key, last character is not deleted.
-                fepMan->RemoveSuggestedAdvanceCompletionL();                
-                return ETrue;
-                }
-            }
-        // for long key press do not go to multitap base
-        if( EShortKeyPress == aLength )
-        	{
-        	TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength);
-        	}        	
-        else
-        	{		
-        	mappedCharacters.Zero();	
-	        iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey
-	        					, mappedCharacters, iOwner->PtiEngine()->Case());
-	        fepMan->NewCharacterL(mappedCharacters);
-	        fepMan->CommitInlineEditL();        
-        	}
-     // cancel the multitap timer if only one character is mapped to it   
-		mappedCharacters.Zero();
-		
-        iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, iOwner->PtiEngine()->Case());
-        
-        if( mappedCharacters.Length() < 2 )
-            {
-            iOwner->PtiEngine()->CancelTimerActivity(); 
-            }
-            
-        iData = aKey;
-        fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-        return ETrue;
-        }
-	// for long press of punct key, a stream of characters mapped to 
-	// that case should be shown both in predictive and non-predictive mode	
-    if ( aLength == ELongKeyPress && aKey == EStdKeyFullStop )    
-    	{
-    	// Long press should always input fnlower character
-    	iOwner->PtiEngine()->SetCase( EPtiCaseFnLower);
-    	
-    	mappedCharacters.Zero();
-        iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey
-        					, mappedCharacters, iOwner->PtiEngine()->Case());
-        fepMan->NewCharacterL(mappedCharacters);
-        fepMan->CommitInlineEditL();        
-        return ETrue;
-   		}
-    switch (aKey)
-        {
-        case EStdKeyLeftShift:
-        case EStdKeyRightShift:
-        case EStdKeyLeftFunc:
-            {
-            // Handle shift key seperately only if fn state is set.
-            if( CAknFepFnKeyManager::EFnKeyPressed == fepMan->FnKeyState() ||
-                      CAknFepFnKeyManager::EFnKeyDown == fepMan->FnKeyState() ||
-                      CAknFepFnKeyManager::EFnKeyForced == fepMan->FnKeyState() || 
-                      CAknFepFnKeyManager::EFnKeyNext == fepMan->FnKeyState() || 
-                      CAknFepFnKeyManager::EFnKeyPressedAgain == fepMan->FnKeyState() ||
-                      CAknFepFnKeyManager::EFnKeyLock == fepMan->FnKeyState())
-                {
-                fepMan->PtiEngine()->SetCase( EPtiCaseFnLower );
-                TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength);
-				// cancel the multitap timer if only one character is mapped to it   
-				mappedCharacters.Zero();
-        		iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, iOwner->PtiEngine()->Case());
-        
-        		if( mappedCharacters.Length() < 2 )
-            		{
-            		iOwner->PtiEngine()->CancelTimerActivity(); 
-            		}
-                }
-            }
-            break;
-            
-        case EStdKeyNull:
-            // Take no action if simulated key ends up here
-            break;
-            
-        case EStdKeySpace: //fall through
-            {
-        	_LIT(KSpace," "); 
-        	if( fepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNone)               
-        		{
-				fepMan->StartInlineEditL();
-	            fepMan->UpdateInlineEditL(KSpace,0);
-	            fepMan->CommitInlineEditL();
-	        	return ETrue;        		
-        		}
-        	else
-	        	{
-	            // Most keys activate the entry state and are handled there
-	            fepMan->TryCloseUiL(); //expires the multitap timer
-	            iOwner->ChangeState(EEntry);
-	            fepMan->SendUIActivatedNotification();
-	            }
-        	break;	
-	        }
-        case EStdKeyEnter:
-        case EStdKeyTab:
-        case EStdKeyBackspace:
-        case EStdKeyLeftArrow:
-        case EStdKeyRightArrow:
-        case EStdKeyUpArrow:
-        case EStdKeyDownArrow:
-            {
-            // Navigation keys do not activate the entry state. Instead they are handled by the editor directly.
-            
-            // Asyncronous case update is needed after the editor has handled the key
-            fepMan->SimulateKeyEventL(EKeyF19); 
-            if (((aKey == EStdKeyBackspace) || (aKey == EKeyBackspace)) &&  (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed)))
-                fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-            }
-            break;
-        default:        
-            {
-            // Most keys activate the entry state and are handled there
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState(EEntry);
-            fepMan->SendUIActivatedNotification();
-            }
-        }
-    
-    if ( aKey == EStdKeyEnter)
-        {
-        iData = 0;
-        return 0;
-        }
-    if( !iOwner->PtiEngine()->IsValidKey((TPtiKey)aKey))
-    	{
-    	iData = 0;
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);        
-        fepMan->PtiEngine()->CancelTimerActivity();
-                
-        return retVal;
-    	}
-    
-    iData = aKey;
-    
-    return retVal;
-    }
-
-void TAknFepUiInputStateInitialHalfQwertyWesternPredictive::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan();
-        
-        TAknFepInputStateInitialMultitapBase::KeyTimerExpired();
-        
-        caseMan->UpdateCase(ENullNaviEvent); 
-        fepMan->ClearFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction );
-        
-        iData = 0;
-        
-        // if the current fn key state is FnNext, then clear it.
-        if( !fepMan->IsFlagSet( CAknFepManager::EFlagLongShiftKeyPress ) )
-            {
-            if( CAknFepFnKeyManager::EFnKeyNext == fepMan->FnKeyState())
-                {
-                // This cannot be done in fn manager. It should happen only
-                // on timer expiry -> for shift key multitapping in fn mode 
-                // when prediction is ON.
-                fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNone );
-                }
-            }
-        }
-    }
-void TAknFepUiInputStateInitialHalfQwertyWesternPredictive::HandleShiftState( TInt aKey )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    TPtiTextCase shiftedCase;
-    if(fnKeyState  != CAknFepFnKeyManager::EFnKeyNone)
-        {
-        shiftedCase = EPtiCaseFnLower;
-        }
-    else
-        {
-        shiftedCase= EPtiCaseLower; 
-        }
-    
-    // Find out if the key is alphabetic
-    TBuf<KKeyMappingsLength> keyMappings; 
-    ptiengine->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseUpper );   
-    TBool isAlpha = ( keyMappings.Length() && TChar(keyMappings[0]).IsAlpha() );
-    
-    if (isAlpha && (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone))
-        {
-        switch ( caseMan->CurrentCase() )
-            {
-            case EAknEditorTextCase:
-                {
-                // Alphabetic characters are always capitalized in "Abc" mode 
-                // unless the shift is pressed
-                if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }          
-                }
-            break;
-            
-            case EAknEditorLowerCase:
-                {
-                // Pressing shift enters uppercae letters in the "abc" mode
-                if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-            
-            case EAknEditorUpperCase:
-                {
-                // In the "ABC" mode (capslock mode) the letters are uppercased
-                // unless the shift is pressed
-                if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-                    {
-                    shiftedCase = EPtiCaseUpper;
-                    }                
-                }
-            break;
-                
-            default:
-            break;
-            }
-
-        
-        }
-    else
-        {
-        // non-alphabetic keys are shifted if and only if shift is pressed, no matter what is the input state
-        if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && (fnKeyState  == CAknFepFnKeyManager::EFnKeyNone))
-            {
-            shiftedCase = EPtiCaseUpper;
-            }
-        else if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) && (fnKeyState  != CAknFepFnKeyManager::EFnKeyNone))
-            {
-            shiftedCase = EPtiCaseFnUpper;
-            }    
-        }
-
-    
-    // Handle the Chr key state
-    if ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    
-    ptiengine->SetCase(shiftedCase);
-    
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    }// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialHiragana.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +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 TAknFepUiInputStateInitialHiragana methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialHiragana.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-
-#include <PtiDefs.h>                // keys
-#include <PtiEngine.h>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateInitialHiragana class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiragana::TAknFepUiInputStateInitialHiragana
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialHiragana::TAknFepUiInputStateInitialHiragana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
-    {
-    
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiragana::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialHiragana::InitializeStateL()
-    {
-    TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-
-    // Setup PtiEngine
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    ptiEngine->ClearCurrentWord();
-    ptiEngine->SetInputMode( (iOwner->IsQwerty())? 
-                            EPtiEngineHiraganaQwerty
-                            : EPtiEngineHiragana);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiragana::HandleNumericShortKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialHiragana::HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool ret = EFalse;
-    if (aKey == EPtiKeyStar)
-        {
-        ret = ETrue;
-        }
-    else
-        {
-        iOwner->FepMan()->StartInlineEditL();
-        iOwner->ChangeState(EEntry);
-        }
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialHiraganaKanji.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +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 TAknFepUiInputStateInitialHiraganaKanji methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialHiraganaKanji.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                // keys
-#include <PtiEngine.h>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateInitialHiraganaKanji class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// -----------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiraganaKanji::TAknFepUiInputStateInitialHiraganaKanji
-// C++ default Constructor
-// -----------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialHiraganaKanji::TAknFepUiInputStateInitialHiraganaKanji(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiraganaKanji::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialHiraganaKanji::InitializeStateL()
-    {
-    TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-
-    // Setup of PtiEngine
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineInputMode inputmode;
-    if(iOwner->IsPredictive())
-        {
-        inputmode = (iOwner->IsQwerty())? 
-                        EPtiEngineHiraganaKanjiPredictiveQwerty
-                        : EPtiEngineHiraganaKanjiPredictive;
-        }
-    else
-        {
-        inputmode = (iOwner->IsQwerty())? 
-                        EPtiEngineHiraganaKanjiQwerty
-                        : EPtiEngineHiraganaKanji;
-        }
-    ptiEngine->SetInputMode(inputmode);
-    ptiEngine->ClearCurrentWord();
-    }
-
-// -----------------------------------------------------------------------------
-// TAknFepUiInputStateInitialHiraganaKanji::HandleNumericShortKeyL
-// Handling numeric short keypress event
-// -----------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialHiraganaKanji::
-    HandleNumericShortKeyL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = EFalse;
-    if (aKey == EPtiKeyStar)
-        { // Handling of launch special character table
-        if (!fepMan->HashKeySelectionInUse())
-            {
-            if (fepMan->EditSubmenuInUse())
-                {
-                fepMan->LaunchSelectModeMenuL();
-                }
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        ret = ETrue;
-        }
-    else
-        {
-        iOwner->FepMan()->StartInlineEditL();
-
-        // Clear RetroActive buffer on PtiEngine
-        CPtiEngine* ptiEngine = iOwner->PtiEngine();
-        ptiEngine->HandleCommandL(EPtiCommandUserActionRetroActiveClear);
-
-        // The numeric key will be handled by HandleNumericKeyL of
-        // EntryState or PredictiveInputState
-        if(iOwner->IsPredictive())
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            }
-        else
-            {
-            iOwner->ChangeState(EEntry);
-            }
-        }
-
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialIndicMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,712 +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 TAknFepInputStateInitialIndicMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIInputStateInitialIndicMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepUiManagerWestern.h"
-#include "AknFepUiIndicEnums.h"
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-
-#include <uikon.hrh>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <eikenv.h>
-
-#define PTI_CLEAR_CURRENTWORD( A, B ) \
-		( A )->ClearCurrentWord(); \
-		( B ) = ETrue; \
-
-	
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicMultitap::TAknFepInputStateInitialIndicMultitap
-
-// C++ default constructor can NOT contain any code, that
-// might leave or if it is absolutely necessary then MUST be trapped.
-// -----------------------------------------------------------------------------
-
-TAknFepInputStateInitialIndicMultitap::
-TAknFepInputStateInitialIndicMultitap( MAknFepUIManagerStateInterface* aOwner,
-																			TLanguage aLanguage )
-																			:TAknFepInputStateInitialMultitapBase( aOwner )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    iIsStarKeyPressed = EFalse;
-    iIsKeyTimerExpired = ETrue;
-    iIndicLanguage = aLanguage;
-    iIsHalantAllowed = EFalse;
-    iZWSPresent = EFalse;
-    iRephaPresent = EFalse;
-    iRakarPresent = EFalse;
-    iResponseInsertZWS = EFalse;
-    iLigaturePresent = EFalse;
-#ifdef RD_MARATHI
-	iPreviousCommittedChar 		= 0;
-	iEyeLashRaPresent 	        = EFalse;
-	iChandraAPresent 	        = EFalse;
-#endif // RD_MARATHI
-    TRAP_IGNORE( ptiengine->ActivateLanguageL( aLanguage ) )
-    ptiengine->SetCase( EPtiCaseLower );
-    }
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicMultitap::HandleKeyL
-
-// Handles the logic of Indic multitap input. This function first checks the validity
-// of the inputed text and then enters it.
-// -----------------------------------------------------------------------------
-
-TBool TAknFepInputStateInitialIndicMultitap::HandleKeyL( TInt aKey, TKeyPressLength aLength )
-	{
-	TBool                      result       	= ETrue;
-	MAknFepManagerUIInterface* fepMan       	= iOwner->FepMan();
-	CPtiEngine* 			   ptiengine 		= iOwner->PtiEngine();
-
-#ifdef RD_MARATHI
-	if( iIsKeyTimerExpired )
-		{
-		iPreviousCommittedChar = fepMan->PreviousChar( ETrue );
-		
-		if( iIndicLanguage == ELangMarathi )
-			{
-			HandleKeyMarathiL();
-			}
-		}
-#endif // RD_MARATHI
-
-	if(aKey == EPtiKey1)
-		{
-		iKey1Pressed = ETrue;	
-		}
-	else 
-		{
-		iKey1Pressed = EFalse;	
-		}	
-	if ( iData && ( iData != aKey ) )
-    	{
-#ifdef RD_MARATHI
-        iPreviousCommittedChar = fepMan->PreviousChar( ETrue );
-
-        if( iPreviousCommittedChar == ZERO_WIDTH_SPACE &&
-            aKey == EPtiKey2 )
-            {
-            // This is a scenario where the timer is forcefully
-            // expired by quickly pressing a different key.
-            // Should remove the ZWS from the editor.
-            fepMan->RemovePreviousCharacterL();
-            iZWSPresent = EFalse;
-            
-            // Reset the previous committed character.
-            iPreviousCommittedChar = fepMan->PreviousChar( ETrue );
-            }
-
-		if( iIndicLanguage == ELangMarathi )
-		    {
-		    HandleKeyMarathiL();
-		    }
-#endif // RD_MARATHI
-
-	    fepMan->CommitInlineEditL();
-	    PTI_CLEAR_CURRENTWORD( ptiengine, iIsKeyTimerExpired )
-
-	    if( iRephaPresent )
-	    	{
-	    	fepMan->AlignLogicalAndVisualCursorL( TTmDocPosSpec::ELeading, EFalse );
-	    	iRephaPresent = EFalse;
-	    	}
-	    if( iRakarPresent )
-	    	{
-	    	iRakarPresent = EFalse;
-	    	}
-
-#ifdef RD_MARATHI
-        // This check should be done only after the text is committed.
-	    if( iEyeLashRaPresent )
-            {
-            // Calls the overloaded method which used find doc pos.
-            // Reason: Unlike Repha, EyeLash Ra can be inserted in
-            // an empty editor. GetNextVisualCursorPosition would
-            // result in incorrect cursor alignment in this case.
-            fepMan->AlignLogicalAndVisualCursorL();
-            iEyeLashRaPresent = EFalse;
-            }
-#endif
-
-   		}
-
-	if ( aLength == EShortKeyPress )
-		{
-	    if ( aKey == EPtiKeyStar ) // Overriding Key
-            {
-            iIsStarKeyPressed = ETrue;
-            fepMan->RemoveZWSCharacterL( iKey1Pressed, EFalse, EFalse, iLigaturePresent );	
-    		}
-		else
-			{
-			TPtiTextCase newCase = ptiengine->Case();
-			
-			TIndicInputResponse keyResponse = 
-				TAknFepUiIndicInputManager::ValidateInput( aKey,
-														fepMan->PreviousChar( ETrue ),
-														NULL,NULL,
-														iIsHalantAllowed,
-														iIsStarKeyPressed,
-														iIsKeyTimerExpired,
-														newCase,
-														aLength,
-														iIndicLanguage
-#ifdef RD_MARATHI
-														, EFalse, EFalse, iChandraAPresent
-
-#endif // RD_MARATHI
-														 );
-				
-			ptiengine->SetCase( newCase );
-			TPtrC ptiText = ptiengine->AppendKeyPress( ( TPtiKey )aKey );
-			
-			if ( ptiText.Length() )
-				{
-				do
-					{
-					TText prChar;
-					// For Repha, use the Previous to Previous character
-					// only if multitap timer hasn't expired. This will
-					// handle cases like Matra attached to the consonant.
-					// Here, repha is not allowed and the character to 
-					// to checked is Matra. In cases like a consonant with
-					// Virama, all the characters should be skipped including
-					// repha. In this this case the timer is set to expired.
-					// So the previous character is Virama. And as per the 
-					// language rules, repha is not allowed after Virama.
-					if( TAknFepUiIndicInputManager::IsCharRepha( 
-						ptiText[0], iIndicLanguage ) && !iIsKeyTimerExpired )
-						{
-						prChar = fepMan->PreviousToPreviousChar( ETrue );
-#ifdef RD_MARATHI
-                        prChar = iPreviousCommittedChar;
-#endif // RD_MARATHI
-						}
-					else
-						{
-						prChar = fepMan->PreviousChar( ETrue );
-						}
-
-					// When a base consonant is already entered and the
-					// user starts multitapping, the second modifier in the
-					// key map will not be allowed if the previous character 
-					// is considered. The base consonant has to be used
-					// instead. This change had to be added after the new
-					// function, IsModifierAllowed was added.
-					if( TAknFepUiIndicInputManager::IsCharModifier(
-						ptiText[0], iIndicLanguage ) && !iIsKeyTimerExpired )
-						{
-						prChar = fepMan->PreviousToPreviousChar( ETrue );
-						}
-
-					if( TAknFepUiIndicInputManager::IsCharLigature( 
-						ptiText[0], iIndicLanguage ) && !iIsKeyTimerExpired )
-						{
-						if( fepMan->IsZWSCharacterPresent( ETrue ) )
-							{
-							iZWSPresent = ETrue;
-							}
-						iLigaturePresent = ETrue;
-						prChar = fepMan->PreviousToPreviousChar( ETrue );
-						}
-					else
-						{
-						iLigaturePresent = EFalse;
-						}
-
-#ifdef RD_MARATHI
-
-					// While multitapping after inserting a base consonant,
-					// modifiers will get inserted first, followed by the
-					// Nukta character. Hence, use Prev to prev char which 
-					// will be a base consonant.
-					if( TAknFepUiIndicInputManager::IsCharNukta(
-						ptiText[0], iIndicLanguage ) && !iIsKeyTimerExpired )
-						{
-						prChar = fepMan->PreviousToPreviousChar( ETrue );
-						}
-#endif // RD_MARATHI
-
-					keyResponse = 
-						TAknFepUiIndicInputManager::ValidateInput( aKey,
-        														prChar,
-																ptiText[0],
-        														NULL,
-        														iIsHalantAllowed,
-        														iIsStarKeyPressed,
-																iIsKeyTimerExpired,
-																newCase,
-																aLength,
-        														iIndicLanguage,
-        														iRakarPresent,
-        														iZWSPresent
-#ifdef RD_MARATHI
-										  						, iChandraAPresent 
-#endif // RD_MARATHI
-        														 );	
-
-					if( !IsFreeSpaceAvailable( keyResponse ) )
-						{
-						keyResponse = EIndicInputResponseInvalid;
-						}
-
-					if( keyResponse == EIndicInputResponseInvalid )
-						{
-						ptiText.Set( ptiengine->AppendKeyPress( ( TPtiKey )aKey ) );
-						}
-						
-					if( !ptiText.Length() )
-						{
-						break;
-						}
-						
-					}while( keyResponse == EIndicInputResponseInvalid );
-
-				if( iIsStarKeyPressed && 
-					aKey == EPtiKey0 && 
-					TAknFepUiIndicInputManager::IsCharOther( 
-						ptiText[0], iIndicLanguage ) )
-					{
-					// Forcefully keep the star key flag to true. Else when
-					// the ligatures are entered, this flag will be false 
-					// thus preventing the ligature formation.
-					iIsStarKeyPressed = ETrue;
-					}
-				else
-					{
-					iIsStarKeyPressed = EFalse;
-					}
-
-				result = HandleIndicKeyResponseL( aKey, keyResponse, ptiText );
-				}
-			}
-		}
-   	else
-    	{
-        /* Long press of a Key */
-        if ( aKey == EPtiKeyStar )
-	        {
-            /* Launch the SCT For Indic */
-   			if( fepMan->EditorHasFreeSpace() )
-				{
-				if (fepMan->IsAbleToLaunchSCT() && !fepMan->EditSubmenuInUse())
-        			{
-	            	fepMan->LaunchSpecialCharacterTableL();	
-	            	}
-				}
-		    }
-        else
-	        {
-	        TUint prevchar = fepMan->PreviousChar(ETrue);
-            if(!((aKey == EPtiKey1) && ((0x0031 == prevchar) || (0x0967 == prevchar)) ))
-		        {
-		        TChar ch( aKey );
-		        TBuf<1> buf;
-		        buf.Append( ch );
-		        fepMan->NewCharacterSequenceL( buf, EIndicInputResponseNumber );
-		        fepMan->CommitInlineEditL();			
-		        PTI_CLEAR_CURRENTWORD( ptiengine, iIsKeyTimerExpired )				
-				}
-	        }
-    	}
-    iData = aKey;
-    return( result );
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicMultitap::KeyTimerExpired
-
-// Handles the logic of post keytimerexpired event. This function commits 
-// the inline editing text to the editor.
-// -----------------------------------------------------------------------------
-
-void TAknFepInputStateInitialIndicMultitap::KeyTimerExpired()
-	{
-	iIsKeyTimerExpired = ETrue;
-	
-	if( iRakarPresent )
-		{
-		iRakarPresent = EFalse;
-		}
-		
-	if( iRephaPresent 
-#ifdef RD_MARATHI
-	|| ( iEyeLashRaPresent && 
-			TAknFepUiIndicInputManager::
-				IsCharBaseConsonant( iOwner->FepMan()->NextChar(), 
-									iIndicLanguage ) )
-#endif // RD_MARATHI
-	    )
-		{
-		TRAP_IGNORE( iOwner->FepMan()->AlignLogicalAndVisualCursorL( TTmDocPosSpec::ELeading, EFalse ) )
-		iRephaPresent = EFalse;
-		}
-
-#ifdef RD_MARATHI
-		iEyeLashRaPresent = EFalse;
-#endif // RD_MARATHI
-
-	if( iResponseInsertZWS || iZWSPresent )
-		{
-		iZWSPresent = EFalse;
-		iResponseInsertZWS = EFalse;
-		TRAP_IGNORE( iOwner->FepMan()->RemoveZWSCharacterL( iKey1Pressed, EFalse, 
-                                                        EFalse, iLigaturePresent ) )
-		}
-	iLigaturePresent = EFalse;
-
-#ifdef RD_MARATHI
-	iChandraAPresent = EFalse;
-#endif // RD_MARATHI
-
-	TAknFepInputStateInitialMultitapBase::KeyTimerExpired();
-	}
-
-TBool TAknFepInputStateInitialIndicMultitap::
-    HandleIndicKeyResponseL( TInt aKey, TIndicInputResponse aKeyResponse, TPtrC aPtiText )
-    {
-    TBool result = ETrue;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    switch( aKeyResponse )
-        {
-        case EIndicInputResponseNone:
-        	{
-        	if ( aPtiText.Length() && ( !iIsKeyTimerExpired || fepMan->EditorHasFreeSpace() ) )
-        		{
-            	if ( iIsKeyTimerExpired )
-            		{
-            		if ( iZWSPresent )
-            			{
-            			fepMan->RemoveZWSCharacterL( iKey1Pressed,EFalse, 
-                        TAknFepUiIndicInputManager::IsCharModifier(aPtiText[0], iIndicLanguage));
-            			iZWSPresent = EFalse;
-            			}
-            		
-            		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseNone );
-            		
-            		if ( fepMan->IsZWSCharacterPresent() )
-            			{
-            			iZWSPresent = ETrue;
-            			}
-            		}
-            	else
-            		{
-            		if ( aKey == EPtiKey1 )
-            			{
-            			if( iRephaPresent )
-            				{
-            				fepMan->RemoveRephaCharacterL();
-            				iRephaPresent = EFalse;
-            				}
-            			if( iZWSPresent )
-            				{						    				
-            				fepMan->RemoveZWSCharacterL( iKey1Pressed, ETrue );
-            				iZWSPresent = EFalse;
-            				}
-        				if( iRakarPresent )
-            				{
-            				// This is to handle the case when only
-            				// two spaces are left in the editor.
-            				fepMan->RemoveRakarCharacterL();
-            				iRakarPresent = EFalse;
-            				}
-#ifdef RD_MARATHI
-            			iEyeLashRaPresent = EFalse;
-#endif // RD_MARATHI
-            			}
-            		else if( aKey == EPtiKey2 )
-            			{
-#ifdef RD_MARATHI
-                        iChandraAPresent = EFalse;
-#endif // RD_MARATHI
-            			}
-            		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseNone );
-        			}
-        		}
-        	iIsKeyTimerExpired = EFalse;	
-        	}
-        	break;
-
-        case EIndicInputResponseZWSandCharacter:
-        	{
-        	if( fepMan->EditorHasFreeSpace( 2 ) )
-        		{
-        		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseZWSandCharacter );
-              	iZWSPresent = ETrue;
-              	iIsKeyTimerExpired = EFalse;
-        		}
-        	}
-        	break;
-        case EIndicInputResponseInsertZWS: 
-        	{
-        	//Already in multitapping so we need to check wheather 
-        	//there is additional single space for ZWS
-        	if( !iIsKeyTimerExpired || fepMan->EditorHasFreeSpace( 1 ) ) 
-        		{
-                fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertZWS );
-        		
-        		// Using a seperate flag here. Cannot use the flag
-        		// iZWSPresent. Consider the scenario:- User enters 
-        		// a consonant, then multitaps key-1 to insert halant.
-        		// Now consider that we set the flag to ETrue.
-        		// But before the key timer expires, key-5 is 
-        		// multitapped to insert another consonant.
-        		// In this case the code flow will go to the case
-        		// EIndicInputResponseNone. Here the condition, 
-        		// if ( iZWSPresent ) succeeds and ZWS is removed.
-        		// This causes direct ligature formation. It should
-        		// actually show the ligature formation after the timeout.
-        		iResponseInsertZWS = ETrue;
-        		}
-        	else // Remove already entered Modifier "Visarga" if there is no space
-        		{
-        		fepMan->RemovePreviousCharacterL();	
-        		}
-        	iIsKeyTimerExpired = EFalse;		
-        	}
-        	break;
-        case EIndicInputResponseInsertZWSandLigature:
-        	{
-        	if( fepMan->EditorHasFreeSpace( 3 )  )
-        		{
-        		if ( iIsKeyTimerExpired )
-            		{
-        			fepMan->RemoveZWSCharacterL( iKey1Pressed );
-        			}
-        		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertZWSandLigature );
-               	}
-        	iIsKeyTimerExpired = EFalse;
-        	iZWSPresent = ETrue;	
-        	}
-        	break;
-        case EIndicInputResponseIgnore:	
-        	break;
-
-        case EIndicInputResponseInsertRepha:
-        	{
-        	if( !iIsKeyTimerExpired )
-        		{
-        		if( iRakarPresent )
-        			{
-        			fepMan->RemoveRakarCharacterL();
-        			iRakarPresent = EFalse;
-        			}
-#ifdef RD_MARATHI
-        		else if( iEyeLashRaPresent )
-        			{
-        			// Remove eye lash ra
-        			TBuf<3>buf;
-
-        			// Get the EyeLashRa string.
-        			TAknFepUiIndicInputManager::
-        					GetEyeLashRa( buf, iIndicLanguage );
-        									
-        			fepMan->RemoveTextFromEditorL( buf.Length(), 0, ETrue );
-        			iEyeLashRaPresent = EFalse;
-        			}
-#endif // RD_MARATHI
-        		else if( TAknFepUiIndicInputManager::IsCharMatra( 
-                             fepMan->PreviousToPreviousChar( ETrue ), iIndicLanguage ) )
-        			{
-        			// Consider that a matra is applied to any base 
-        			// consonant and two nore spaces are left in the editor.
-        			// On multitapping, user will get the first four modifiers.
-        			// After that, rakar should be inserted which requires two
-        			// spaces. But since the modifier is present, only one
-        			// space is available. Here we need to free up the space 
-        			// by removing the previous character which is a modifier.
-        			// For inserting repha, the existing inline text needs to
-        			// be first committed and then removed.
-
-        			fepMan->RemovePreviousCharacterL();
-        			}
-
-        		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertRepha );
-        		iRephaPresent = ETrue;
-        		}
-        	}
-        	break;
-
-        case EIndicInputResponseInsertRakar:
-        	{
-        	if( !iIsKeyTimerExpired )
-        		{
-        		// RemoveZWS is not invoked here as we are in inline 
-        		// editing state and we can as well overwrite the previous
-        		// characters. Hence directly invoke NewCharacterSequenceL.
-        		// Secondly, the flag iZWSPresent is not reset here since
-        		// it will happen anyways after timeout.
-        		
-        		fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertRakar );
-        		iRakarPresent = ETrue;
-        		
-#ifdef RD_MARATHI
-        		// This check assumes that Rakar comes after EyelashRa in 
-        		// Key map order.
-        		iEyeLashRaPresent = EFalse;
-#endif
-        		}
-        	}
-        	break;
-        	
-        case EIndicInputResponseInsertDirectLigature:
-        	{
-        	if( !iIsKeyTimerExpired )
-        		{
-        		TBuf<3> ligature;
-        		ligature.Zero();
-        		TAknFepUiIndicInputManager::
-        			GetLigature( ligature, aPtiText[0], 
-        						iIndicLanguage );
-
-        		fepMan->NewCharacterSequenceL( ligature, 
-        			EIndicInputResponseInsertDirectLigature );
-        		}
-        	}
-        	break;
-
-        case EIndicInputResponseInsertViramaZWSandDirectLigature:
-        	{
-        	if( fepMan->EditorHasFreeSpace( 5 )  )
-        		{
-        		if ( iIsKeyTimerExpired )
-            		{
-        			fepMan->RemoveZWSCharacterL( iKey1Pressed );
-        			}
-
-        		TBuf<3> ligature;
-        		ligature.Zero();
-        		TAknFepUiIndicInputManager::
-        			GetLigature( ligature, aPtiText[0], 
-        						iIndicLanguage );
-        		fepMan->NewCharacterSequenceL( ligature, 
-        			EIndicInputResponseInsertViramaZWSandDirectLigature );
-               	}
-        	iIsKeyTimerExpired = EFalse;
-        	iZWSPresent = ETrue;	
-        	}
-        	break;
-
-        case EIndicInputResponseZWSandDirectLigature:
-        	{
-        	if( fepMan->EditorHasFreeSpace( 4 ) )
-        		{
-        		TBuf<3> ligature;
-        		ligature.Zero();
-        		TAknFepUiIndicInputManager::
-        			GetLigature( ligature, aPtiText[0], 
-        						iIndicLanguage );
-
-        		fepMan->NewCharacterSequenceL( ligature, 
-        			EIndicInputResponseZWSandDirectLigature );
-              	iZWSPresent = ETrue;
-              	iIsKeyTimerExpired = EFalse;
-        		}
-        	}
-        	break;
-
-#ifdef RD_MARATHI
-        case EIndicInputResponseInsertEyeLashRa:
-        	{
-        	fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertEyeLashRa );
-        	iIsKeyTimerExpired = EFalse;
-        	iEyeLashRaPresent = ETrue;
-        	}
-        	break;
-
-        case EIndicInputResponseInsertChandraA:
-        	{
-        	fepMan->NewCharacterSequenceL( aPtiText, EIndicInputResponseInsertChandraA );
-        	iChandraAPresent = ETrue;
-        	}
-        	break;
-#endif // RD_MARATHI
-
-        case EindicInputResponseLast:
-        	break;
-        default: 
-            {
-            }
-        	break;
-        }
-    return result;
-    }
-
-TBool TAknFepInputStateInitialIndicMultitap::IsFreeSpaceAvailable( 
-                                TIndicInputResponse aKeyResponse )
-    {
-    TBool result = ETrue;
-
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    TBool isUnlimitedSpaceEditor;
-
-	TInt freeSpaceLeft = 
-        fepMan->EditorFreeSpace( isUnlimitedSpaceEditor, ETrue );
-
-	// Check if space is available.
-	if( ( !isUnlimitedSpaceEditor ) && 
-		( ( ( aKeyResponse == EIndicInputResponseInsertRepha ||
-			aKeyResponse == EIndicInputResponseInsertRakar ) && ( freeSpaceLeft < 2 ) ) ||
-		( ( aKeyResponse == EIndicInputResponseInsertDirectLigature ) && ( freeSpaceLeft < 3 ) ) 
-#ifdef RD_MARATHI
-		|| ( ( aKeyResponse == EIndicInputResponseInsertEyeLashRa ) && ( freeSpaceLeft < 3 ) ) 
-		|| ( ( aKeyResponse == EIndicInputResponseInsertChandraA ) && ( freeSpaceLeft < 2 ) ) 
-#endif // RD_MARATHI
-		) )
-	    {
-        result = EFalse;
-	    }
-	    return result;
-    }
-
-#ifdef RD_MARATHI
-
-void TAknFepInputStateInitialIndicMultitap::HandleKeyMarathiL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    if( fepMan )
-        {
-        if( fepMan->IsChandraAPresentL() )
-            {
-            TBuf<1> buf;
-            TAknFepUiIndicInputManager::GetChandraA( buf, ETrue );
-        	iPreviousCommittedChar = buf[0];
-            }
-        }
-    }
-#endif // RD_MARATHI
-//End of File
--- a/fep/aknfep/src/AknFepUiInputStateInitialIndicPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +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 TAknFepInputStateInitialIndicPredictive Method.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialIndicPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPredictive::TAknFepInputStateInitialIndicPredictive
-
-// C++ default constructor can NOT contain any code, that
-// might leave or if it is absolutely necessary then MUST be trapped.
-// -----------------------------------------------------------------------------
-
-TAknFepInputStateInitialIndicPredictive::
-TAknFepInputStateInitialIndicPredictive( MAknFepUIManagerStateInterface* aOwner,
-                                         TLanguage aLanguage )
-    :TAknFepInputStateInitialMultitapBase( aOwner )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->ClearCurrentWord();
-    TRAP_IGNORE( ptiengine->ActivateLanguageL( aLanguage ) )
-    }
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPredictive::HandleKeyL
-
-// Handles the logic of Intial state Predictive Indic  input.
-// -----------------------------------------------------------------------------
-    
-TBool TAknFepInputStateInitialIndicPredictive::HandleKeyL( TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = ETrue;
-	
-	if ( aKey == EPtiKey0 )
-        {
-        TAknFepInputStateInitialMultitapBase::HandleKeyL( aKey, aLength );
-        }
-    else if ( aKey == EPtiKeyStar  )
-        {
-		if (aLength == EShortKeyPress)
-			{   
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagLineFeedCharacter) && 
-			    fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-			    {
-			    // User is interrupting multitap timer with star key, but there
-			    // is line feed event waiting. Make sure that it is handled first.
-			    fepMan->CommitInlineEditL();
-			    }				
-			     
-       		if (!fepMan->EditSubmenuInUse())
-        		{        		        	
-        		if (fepMan->IsAbleToLaunchSCT())
-        			{
-        			fepMan->LaunchSpecialCharacterTableL();
- 					return ( ETrue );        			
-        			}               	        		        		
-        		}     
-			else
-				{
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-				}            		   						
-			}
-		else
-			{
-			if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-				{										
-				fepMan->LaunchSpecialCharacterTableL();           			
-				}			
-			}			        
-        }
-    else 
-        {
-        if ( fepMan->IsFlagSet( CAknFepManager::EFlagSuppressInputStateChange ) )
-            {
-            // Long keypress of numeric keypress, we want to simply return EFalse
-            // to enter a number into the editor, rather than move back to 
-            // entry state, so just clear the flag
-            fepMan->ClearFlag( CAknFepManager::EFlagSuppressInputStateChange );
-            }
-        else
-            {
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState( EEntry );
-            fepMan->SendUIActivatedNotification();
-            }
-        ret = EFalse;
-        }
-    return ret;
-    }    
-
-// End of File
--- a/fep/aknfep/src/AknFepUiInputStateInitialJapaneseBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +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 TAknFepUiInputStateInitialJapaneseBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialJapaneseBase.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                // keys
-#include <PtiEngine.h>
-
-
-// CONSTANTS
-
-/**
- *  AknFepUIInputStateInitialJapanesBase class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::
-//                                    TAknFepUiInputStateInitialJapaneseBase
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialJapaneseBase::TAknFepUiInputStateInitialJapaneseBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapaneseBase(aOwner, aUIContainer)
-    {
-    iState = EInitial;
-
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialJapaneseBase::InitializeStateL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    fepMan->SendUIDeActivatedNotification();
-    TRAP_IGNORE(fepMan->UpdateCbaL(NULL));
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::HandleNumericShortKeyL
-// Handling numeric short keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialJapaneseBase::
-    HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    if(aKey == EPtiKeyStar)
-        { // Handling of launch special character table
-        if (!fepMan->HashKeySelectionInUse())
-            {
-            if (fepMan->EditSubmenuInUse())
-                {
-                fepMan->LaunchSelectModeMenuL();
-                }
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        ret = ETrue;
-        }
-    else
-        {
-        fepMan->StartInlineEditL();
-        iOwner->ChangeState(EEntry);
-        }
-    // All number keypress event must be handled by InputStateEntry.
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::HandleAuxKeyL
-// Handling OK and Backspace keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialJapaneseBase::
-    HandleAuxKeyL(TInt /*aKey*/,TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialKatakana.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +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 TAknFepUiInputStateInitialKatakana methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialKatakana.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-
-#include <PtiDefs.h>                // keys
-#include <PtiEngine.h>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateInitialKatakana class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialKatakana::TAknFepUiInputStateInitialKatakana
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialKatakana::TAknFepUiInputStateInitialKatakana(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialKatakana::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialKatakana::InitializeStateL()
-    {
-    TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-
-    // Setup PtiEngine
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    ptiEngine->ClearCurrentWord();
-    // Set Character Mode
-    SetInputMode(iOwner->FepMan()->CharacterWidth());
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialKatakana::HandleCommandL
-// Handling command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialKatakana::HandleCommandL(TInt aCommandId)
-    {
-    if (aCommandId == EJapanFepCmdModeFullWidth
-        || aCommandId == EJapanFepCmdModeHalfWidth)
-        {
-        // Set Character Mode
-        SetInputMode(iOwner->FepMan()->CharacterWidth());
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialKatakana::SetInputMode
-// Setting input mode to PtiEngine
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialKatakana::SetInputMode(const TWidthChar aWidth)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineInputMode inputmode = EPtiEngineInputModeNone;
-    switch(aWidth)
-        {
-        case EHalfWidthChar:
-            inputmode = (iOwner->IsQwerty())? 
-                            EPtiEngineKatakanaQwerty
-                            : EPtiEngineKatakana;
-            break;
-        
-        case EFullWidthChar:
-            inputmode = (iOwner->IsQwerty())? 
-                            EPtiEngineFullWidthKatakanaQwerty
-                            : EPtiEngineFullWidthKatakana;
-            break;
-        
-        default: // no operation
-            break;
-        }
-    if (inputmode != EPtiEngineInputModeNone)
-        {
-        ptiEngine->SetInputMode(inputmode);
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialKoreanMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateInitialKoreanMultitap methods.
-*
-*/
-
-#include "AknFepUiInputStateInitialKoreanMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialKoreanMultitap::TAknFepInputStateInitialKoreanMultitap(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    iState = EInitial; 
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-     TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangKorean, EPtiEngineMultitappingKorean))
-    ptiengine->SetInputMode(EPtiEngineMultitappingKorean);
-#else
-     TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangKorean, EPtiEngineMultitapping))
-    ptiengine->SetInputMode(EPtiEngineMultitapping);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialKoreanMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-       
-    if(aLength == EShortKeyPress)
-        {
-                     
-       	if(aKey == EKeyBackspace)
-        	{
-        	// Narat Geul engine tries first to disassemble hangul to jamos. if disassembly is not possible,
-        	// then clear character. 
-        	if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        		{
-        		TPtrC newText = ptiengine->DeleteKeyPress();
-       			fepMan->UpdateInlineEditL(newText, newText.Length());
-       			
-        		if (newText.Length() == 0)
-        			{
-	        		fepMan->CancelInlineEdit();
-   		     		ptiengine->ClearCurrentWord();
-        			}	      	
-        		}
-        	else
-        		{
-        		ret = EFalse;	
-        		}
-        	}
-        else
-            {
-	
-            if(aKey == EKeyLeftArrow ||
-            	aKey == EKeyRightArrow ||
-            	aKey == EKeyDownArrow ||
-            	aKey == EKeyUpArrow)
-            	{
-               	ret = EFalse;            
-            	}
-            else
-            	{
-            	if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))
-                	{ // 'new' inline edit
-             	  	ptiengine->ClearCurrentWord();
-                	fepMan->StartInlineEditL();
-                	fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-                	}
-                      	   	             
-            	TPtrC aText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            	fepMan->UpdateInlineEditL(aText, aText.Length());	
-   						
-            	// Force commit	when buffer length is 511. Needs to be commited in order to 
-            	// prevent ptiengines iTextBuffer overflow. Even though it is very unlikely
-            	// case
-            	if(aText.Length() >= 254)
-            		{
-            		if (CommitOrNot(aText.Right(CAknFepManager::ESingleCharacter), aKey))
-            			{
-            			TPtrC text = ptiengine->DeleteKeyPress();
-            			fepMan->UpdateInlineEditL(text, text.Length());
-            			fepMan->CommitInlineEditL();
-            			
-            			ptiengine->ClearCurrentWord();
-            			
-            			TPtrC newText = ptiengine->AppendKeyPress((TPtiKey)aKey);			
-            			fepMan->StartInlineEditL();
-            			fepMan->UpdateInlineEditL(newText, newText.Length());	
-            			}
-            		else if(aText.Length() >= 255)
-            			{// force commit 
-            			fepMan->CommitInlineEditL();	
-            			}
-            		}
-				else
-					{
-					fepMan->UpdateInlineEditL(aText, aText.Length());	
-					}           		
-            	}                                                              	  	                    				
-          	}    
-        }
-    else // long keypress
-        {  
-          
- 	    if (aKey == EPtiKeyStar)
-            {
-
-           	ptiengine->DeleteKeyPress();
-            TPtrC text = ptiengine->PreviousCandidate();
-            fepMan->UpdateInlineEditL(text, text.Length());
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-
-            fepMan->LaunchSelectModeMenuL();               
-            }
-		else
-			{
-			// Insert number through long key press.			                  
-        	if (aKey != EKeyBackspace)
-        		{
-        		if (!fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        			{
-        			// No edit transaction going on, we have ended here because of long
-        			// key press created editor on UI or some other similar non-standard situation.
-        			// We can't handle key press, so just consume it.
-        			return ETrue; 			
-        			}
-				
-			 	TPtrC text = ptiengine->PreviousCandidate();
-           	 	fepMan->UpdateInlineEditL(text, text.Length());
-               	fepMan->CommitInlineEditL();
-               	ptiengine->ClearCurrentWord();
-       			ret = EFalse;
-        		}
-        	else if (aKey == EKeyBackspace)
-        		{
-        		if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        			{
-					fepMan->CommitInlineEditL();
-					ptiengine->ClearCurrentWord();
-					fepMan->TryCloseUiL();
-        			}
-        		ret = EFalse;	
-        		}
-        	else
-        		{
-        		ret = EFalse;
-        		}       		
-			}
-		
-        } 
-    return ret;
-    } 
-     
-// Decides wheather text should be commited or not. Makes comparison between latest key input
-// and "seed" jamos. if latest input match with one of "seed" jamos and star or hash key cannot make
-// any changes to input, then commit.
-// NOTE; the "seed" jamos are characters that are printed on keymat. Narat geul engine compiles all
-// the hanguls from 12 jamos.  
-TBool TAknFepInputStateInitialKoreanMultitap::CommitOrNot(TPtrC aData, TInt aKey)
-	{
-	TBool commit = EFalse;
-	TBuf<CAknFepManager::EMaximumFepWordLength> mappings;
-	TInt len;
-	
-	CPtiEngine* ptiengine = iOwner->PtiEngine();	
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	
-	ptiengine->MappingDataForKey((TPtiKey)aKey, mappings, ptiengine->Case());
-	len = mappings.Length();
-	
-	for (TInt i = 0; i < len; i++ )
-		{
-		if(aData.Compare(mappings.Left(i + 1)) == 0)
-			{
-			commit = ETrue;
-			break;
-			}
-		}
-		
-	return commit;
-	}
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialLatinJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +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 TAknFepUiInputStateInitialLatinJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialLatinJapanese.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"               // CAknFepCaseManager
-#include "AknFepManager.h"
-
-#include <PtiDefs.h>                //keys
-#include <PtiEngine.h>
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateInitialLatinJapanese class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialLatinJapanese::TAknFepUiInputStateInitialLatinJapanese
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialLatinJapanese::TAknFepUiInputStateInitialLatinJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialLatinJapanese::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialLatinJapanese::InitializeStateL()
-    {
-    TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-    
-    // Setup PtiEngine
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TPtiEngineInputMode ptiInputMode = (iOwner->IsQwerty())? 
-                                        EPtiEngineQwerty
-                                        : EPtiEngineMultitapping;
-    if (iOwner->FepMan()->CharacterWidth() == EFullWidthChar)
-        {
-        ptiInputMode = (iOwner->IsQwerty())? 
-                            EPtiEngineFullWidthAlphabetQwerty
-                            : EPtiEngineFullWidthAlphabet;
-        }
-    ptiEngine->SetInputMode(ptiInputMode);
-    ptiEngine->ClearCurrentWord();
-
-    // Setup Case
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    TInt currentCase = caseMan->CurrentCase();
-    TPtiTextCase ptiCase = EPtiCaseUpper;
-    if (currentCase == EAknEditorLowerCase)
-        {
-        ptiCase = EPtiCaseLower;
-        }
-    ptiEngine->SetCase(ptiCase);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialLatinJapanese::HandleNumericShortKeyL
-// Handling numeric short keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialLatinJapanese::
-HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    if(aKey == EPtiKeyStar)
-        { // Handling of launch special character table
-        if (!fepMan->HashKeySelectionInUse())
-            {
-            if (fepMan->EditSubmenuInUse())
-                {
-                fepMan->LaunchSelectModeMenuL();
-                }
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        ret = ETrue;
-        }
-    else
-        {
-        fepMan->StartInlineEditL();
-        iOwner->ChangeState(EEntry);
-        }
-    // Setup Case without Qwerty
-	if (!iOwner->IsQwerty())
-		{
-	    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-	    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-	    TInt currentCase = caseMan->CurrentCase();
-	    TPtiTextCase ptiCase = EPtiCaseUpper;
-	    if (currentCase == EAknEditorLowerCase)
-	        {
-	        ptiCase = EPtiCaseLower;
-	        }
-	    ptiEngine->SetCase(ptiCase);
-		}
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialJapaneseBase::HandleAuxKeyL
-// Handling OK and Backspace keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateInitialLatinJapanese::
-    HandleAuxKeyL(TInt aKey,TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-
-    if (iOwner->IsQwerty())
-        {
-        switch (aKey)
-            {
-            case EStdKeyEnter:          /* 0x03 */
-            case EStdKeyNkpEnter:       /* 0x88 */
-                {
-                // PtiEngine does not have mapping for the enter key.
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                const TText KAknFEPLineFeedSymbol = 0x21B2;
-                TBuf<1> lineFeed;
-                lineFeed.Zero();
-                lineFeed.Append(KAknFEPLineFeedSymbol);
-                fepMan->NewCharacterL(lineFeed);
-                // Commit the character if chr key is not pressed.
-                fepMan->CommitInlineEditL();
-
-                ret = ETrue;
-                }
-                break;
-            default:
-                break;
-            }
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialLatinMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2003 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 TAknFepInputStateInitialLatinMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-#include <uikon.hrh>
-
-#include <PtiEngine.h>
-
-TAknFepInputStateInitialLatinMultitap::
-TAknFepInputStateInitialLatinMultitap(MAknFepUIManagerStateInterface* aOwner)
-:TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiTextCase caseMode = ptiengine->Case();
-    ptiengine->SetCase(caseMode);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialMultitapBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,184 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialMultitapBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialMultitapBase.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialMultitapBase::
-TAknFepInputStateInitialMultitapBase(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    TPtiTextCase caseMode = ptiengine->Case();
-#ifdef RD_INTELLIGENT_TEXT_INPUT  
-    // This part of code TSW error fixing  
-    // In case of ITU-T, whenever word is displaying along with autocompletion
-    // part and if some how editor will lose focus [example: launch candidate list, 
-    // launch option menu] word along with auto completion part get locked and come to inline editing.
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool clearCurrentword(ETrue);
-    TRAP_IGNORE(    
-	if( fepMan->WesternPredictive() )
-		{
-		TInt tailLength = 0;
-		ptiengine->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-		 if( tailLength > 0 )
-			 {
-			 clearCurrentword = EFalse;
-			 }
-		});
-
-	if( clearCurrentword )
-		{
-#endif	
-    ptiengine->ClearCurrentWord();
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-    	}
-#endif	
-    ptiengine->SetInputMode(EPtiEngineMultitapping);
-
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialMultitapBase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-
-    if(iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        }
-
-    iData = aKey;
-    if(aLength == EShortKeyPress)
-        {
-        if (aKey == EPtiKeyStar)
-            {
- 			if (fepMan->EditSubmenuInUse())
-        		{
-        		return ret;
-        		}                        
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-        else
-            {
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-
-            if( aKey == EPtiKey0 && text.Length())
-            	{
-            	MPtiLanguage* ptilang = ptiengine->CurrentLanguage();
-        		TInt currentPtiLang = ( ptilang )? ptilang->LanguageCode() : 0;
-            	if( TAknFepUiIndicInputManager::IsCharLigature( text[0], 
-                                                            ( TLanguage )currentPtiLang ) )
-            		{
-            		ptiengine->ClearCurrentWord();
-            		text.Set( ptiengine->AppendKeyPress( ( TPtiKey )aKey ) );
-            		}
-            	}
-
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                }
-            }
-        }
-    else // long keypress
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if (aKey == EPtiKeyStar)
-            {
-            if(fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }
-            }
-#else
-        if (aKey == EPtiKeyStar && fepMan->EditSubmenuInUse())
-            {
-            fepMan->LaunchSpecialCharacterTableL();                
-            }    
-#endif
-		else
-			{			                  
-        	if (aKey != EKeyBackspace)
-        		{
-                TChar ch(aKey);
-
-                TBuf<1> buf;
-                buf.Append(ch);
-        	    fepMan->NewCharacterL(buf);
-        	    fepMan->CommitInlineEditL();
-        	    ptiengine->ClearCurrentWord();
-        		}
-        	else
-        		{
-        		ret = EFalse;
-        		}
-			}
-        }
-
-    return ret;
-    }
-
-// Functions from MPtiObserver interface
-void TAknFepInputStateInitialMultitapBase::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        iData = 0;
-        }
-    }
-
-// Set the Star Key flag.    
-void TAknFepInputStateInitialMultitapBase::SetStarKeyFlag( TBool aSet)
-	{
-	TAknFepInputStateBase::SetStarKeyFlag( aSet );
-	}
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialNumber.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialNumber methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialNumber.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <featmgr.h>                //FeatureManager
-
-TAknFepInputStateInitialNumber::
-TAknFepInputStateInitialNumber(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetInputMode(EPtiEngineNumeric);
-
-    TRAP_IGNORE(ptiengine->SetExternalKeyMapL(EPtiEngineNumeric, EPtiKeyStar, 
-                       (TDesC&)iOwner->NumberModeKeyMapping(), EPtiCaseLower))
-    }
-
-TBool TAknFepInputStateInitialNumber::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    if (aLength == ELongKeyPress)
-        {
-        switch (aKey)
-            {
-        case EKeyRightArrow:
-        case EKeyLeftArrow:
-        case EKeyDownArrow:
-        case EKeyUpArrow:
-        case EKeyBackspace:
-            return EFalse;
-       	case EPtiKeyStar:
-       		 if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-       		 	{       		 
-       		 	if (ptiengine->CurrentLanguage()->LanguageCode() == ELangKorean)
-       		 		{
-       		 		fepMan->LaunchSelectModeMenuL();      		 
-       		 		}
-				else
-					{
-				 	fepMan->LaunchSpecialCharacterTableL();       
-					}
-       		 	}       	     
-        default:
-            return ETrue;
-            }
-        }
-   
-    if(aKey == EPtiKeyStar)
-        {
-        TBool append = EFalse;
-        if (aLength == EShortKeyPress)
-            {
-            if (fepMan->EditSubmenuInUse())
-                {
-                if (fepMan->IsOnlyNumericPermitted())   
-                    {
-                    append = ETrue;
-                    }
-                else
-                    {
-                    fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                    }   
-                }               
-            else
-                {
-                if (fepMan->IsAbleToLaunchSCT())            
-                    {
-                    fepMan->LaunchSpecialCharacterTableL();
-                    }
-                else
-                    {           
-                    append = ETrue;                         
-                    }
-                }
-            }
-        else
-            {
-            if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-                {                                       
-                fepMan->LaunchSpecialCharacterTableL();             
-                }
-            }   
-        if (append)
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT            
-
-	    // check editor is phonenumber editor or not.	    
-            TBool phoneNumberEditor = (fepMan->EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);
-
-            if( (fepMan->IsOnlyNumericPermitted()|| phoneNumberEditor ) && fepMan->GetNumericSCTResID())
-            	{
-            	TCallBack timerExpire(NumericResourceTimerTimeoutL, this);
-            	fepMan->MultitapThroughSCTCharL(timerExpire); 
-            	return ETrue;
-            	}
-           	else
-           		{
-           		NumericResourceKeyTimerTimeoutL();
-           		}
-
-#else           	
-            iData = aKey;
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-
-            // star key is inactive if keymapping is empty.
-            if (text.Length() > 0 && text[0] != 0)
-                {
-                fepMan->NewCharacterL(text);                   
-                
-                // Commit immediately if there is only one character associated to the key.
-                TBuf<CAknFepManager::EMaximumFepWordLength> mapdata;
-                ptiengine->MappingDataForKey((TPtiKey)aKey, mapdata, ptiengine->Case());
-                if (mapdata.Length() <= 1)
-                    {
-                    fepMan->CommitInlineEditL();
-                    ptiengine->ClearCurrentWord();
-                    iData = 0;                                          
-                    }                   
-	            } 
-#endif
-            }
- 
-        return ETrue;
-        }
-
-    if(iData)
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-
-        iData = 0;
-        }
-    return EFalse;
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-
-TInt TAknFepInputStateInitialNumber::NumericResourceTimerTimeoutL(TAny* aPtr)
-    {
-    reinterpret_cast<TAknFepInputStateInitialNumber*>(aPtr)->NumericResourceKeyTimerTimeoutL();
-    return 1;
-    }
-TInt TAknFepInputStateInitialNumber::NumericResourceKeyTimerTimeoutL()
-    {
-    if(iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-        {
-        // this function is only called for number only editors 
-
-        iOwner->FepMan()->CommitInlineEditL();
-        }    
-    return 1;
-    }
-    
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialQwertyWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialQwertyWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialQwertyWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialQwertyWesternPredictive::
-TAknFepInputStateInitialQwertyWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    }
-
-TBool TAknFepInputStateInitialQwertyWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    
-    switch (aKey)
-        {
-        case EStdKeyNull:
-            // Take no action if simulated key ends up here
-            break;
-            
-        case EStdKeySpace: //fall through
-            {     
-            if (fnKeyState == CAknFepFnKeyManager::EFnKeyDown)
-                {
-                fepMan->LaunchSelectModeMenuL();
-                }
-			else
-				{
-				_LIT(KSpace," ");                
-				fepMan->StartInlineEditL();
-				fepMan->UpdateInlineEditL(KSpace,0);
-				fepMan->CommitInlineEditL();
-        		return ETrue;
-            	}   
-            }
-        case EStdKeyEnter:
-        case EStdKeyTab:
-        case EStdKeyBackspace:
-        case EStdKeyLeftArrow:
-        case EStdKeyRightArrow:
-        case EStdKeyUpArrow:
-        case EStdKeyDownArrow:
-            {
-            // Navigation keys do not activate the entry state. Instead they are handled by the editor directly.
-            
-            // Asyncronous case update is needed after the editor has handled the key
-            fepMan->SimulateKeyEventL(EKeyF19); 
-            }
-            break;
-        // In case of Forward Deletion, we should not be doing anything        
-        case EStdKeyF21:
-        case EKeyLeftShift:
-            break;
-        default:        
-            {
-            // Most keys activate the entry state and are handled there
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState(EEntry);
-            fepMan->SendUIActivatedNotification();
-            }
-        }
-
-    return EFalse;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialThaiMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2003 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 TAknFepInputStateInitialThaiMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIInputStateInitialThaiMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-#include <uikon.hrh>
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-
-TAknFepInputStateInitialThaiMultitap::
-TAknFepInputStateInitialThaiMultitap(MAknFepUIManagerStateInterface* aOwner)
-:TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiTextCase caseMode = ptiengine->Case();
-    TRAP_IGNORE(ptiengine->ActivateLanguageL(ELangThai))
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialThaiMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    if(aLength == EShortKeyPress)
-        {
-        if (aKey == EPtiKey0 && fepMan->IsAbleToLaunchSCT())
-        	{			
-            fepMan->LaunchSpecialCharacterTableL(
-                     iOwner->ThaiSCTResourceId(fepMan->PreviousChar(),aKey));
-            return (ETrue);                    	
-        	}
-		else if (aKey == EPtiKeyStar)        	
-			{
-			if (!fepMan->EditSubmenuInUse())		
-				{
-				if (fepMan->IsAbleToLaunchSCT())
-        			{
-              		fepMan->LaunchSpecialCharacterTableL(
-              		   iOwner->ThaiSCTResourceId(fepMan->PreviousChar(),aKey));
-               		return (ETrue); 
-               		}        	
-				}
-			else
-				{
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);				
-				}							
-			}                        
-        }
-	else
-		{
-		if (aKey == EPtiKeyStar && fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-			{
-            fepMan->LaunchSpecialCharacterTableL(
-                     iOwner->ThaiSCTResourceId(fepMan->PreviousChar(),aKey));
-            return (ETrue);			
-			}		
-		}        
-
-    return (TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength));
-    }
-
-
-void TAknFepInputStateInitialThaiMultitap::HandleCommandL(TInt aCommandId)
-    {
-    if (aCommandId == EAknCmdEditInsertSymbol)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        fepMan->LaunchSpecialCharacterTableL(
-                     iOwner->ThaiSCTResourceId(fepMan->PreviousChar(),EPtiKeyStar));
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialThaiPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* Copyright (c) 2002-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:           
-*       Provides the TAknFepInputStateInitialThaiPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialThaiPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-
-#include <PtiDefs.h>
-
-
-TAknFepInputStateInitialThaiPredictive::
-TAknFepInputStateInitialThaiPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    }
-
-TBool TAknFepInputStateInitialThaiPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = ETrue;
-
-    if (aKey == EPtiKeyStar )
-        {
-        if (aLength == EShortKeyPress)
-            {
-            if (!fepMan->EditSubmenuInUse())
-                {
-                if (fepMan->IsAbleToLaunchSCT())
-                    {
-                    fepMan->LaunchSpecialCharacterTableL(iOwner->ThaiSCTResourceId(0x0020,aKey));
-                    return (ETrue);
-                    }
-                }
-            else
-                {
-                fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                }
-            }
-        else                
-            {
-            if (fepMan->EditSubmenuInUse())
-                {                                       
-                fepMan->LaunchSpecialCharacterTableL(iOwner->ThaiSCTResourceId(0x0020,aKey));
-                return (ETrue); 
-                }
-            }
-        }                        
-    else 
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagSuppressInputStateChange))
-            {
-            // Long keypress of numeric keypress, we want to simply return EFalse
-            // to enter a number into the editor, rather than move back to 
-            // entry state, so just clear the flag
-            fepMan->ClearFlag(CAknFepManager::EFlagSuppressInputStateChange);
-            }
-        else
-            {
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState(EEntry);
-            fepMan->SendUIActivatedNotification();
-            }
-        ret = EFalse;
-        }
-    return ret;
-    }
-
-void TAknFepInputStateInitialThaiPredictive::HandleCommandL(TInt aCommandId)
-    {
-    if (aCommandId == EAknCmdEditInsertSymbol)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        fepMan->LaunchSpecialCharacterTableL(
-                           iOwner->ThaiSCTResourceId(fepMan->PreviousChar(),EPtiKeyStar));
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialVietnameseMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,228 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateInitialVietnameseMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIInputStateInitialVietnameseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-
-#include "AknFepCaseManager.h"
-#include "AknFepVietnameseToneManager.h"
-
-#include <uikon.hrh>
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknSctDialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-#include "AknFepUiManagerWestern.h"
-
-TAknFepInputStateInitialVietnameseMultitap::
-TAknFepInputStateInitialVietnameseMultitap(MAknFepUIManagerStateInterface* aOwner)
-:TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiTextCase caseMode = ptiengine->Case();
-    ptiengine->SetCase(caseMode);
-    }
-
-TBool TAknFepInputStateInitialVietnameseMultitap::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool bHandled = EFalse;
-
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepUIManagerWestern* uiMan = static_cast<CAknFepUIManagerWestern*>(iOwner);
-    CAknFepVietnameseToneManager* toneMgr = uiMan->VietnameseToneManager();
-    CPtiEngine* ptiEng = fepMan->PtiEngine();
-
-    toneMgr->SetFepManager(fepMan);
-
-    if (aKey == EPtiKeyStar)
-        {
-        if (aLength == EShortKeyPress)
-            {
-            if (!toneMgr->IsLooping())
-                {
-                // Start looping status
-                if (toneMgr->StartToneMarkLooping())
-                    {
-                    // Save the vowel for undo back deletion
-                    toneMgr->SetDeletedVowel(fepMan->PreviousChar());
-                    
-                    ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();    // remove previous char
-                    }
-                }
-            
-            // Process the interim looping state
-            if (toneMgr->IsLooping())
-                {
-                // Get current tone mark
-                TText toneVowel = toneMgr->GetVowelWithToneMark();
-                toneMgr->IncrementToneMark();
-
-                TBuf<CAknFepManager::ESingleCharacter> aChr;
-                aChr.Append(toneVowel);
-
-                // Update inline character(s)
-                fepMan->CancelInlineEdit();
-                fepMan->NewCharacterL(aChr);
-
-                // Reset the engine timer so that we can get timer expired message
-                // We send the * key, and clear it in the next loop
-                ptiEng->ClearCurrentWord();
-                ptiEng->AppendKeyPress((TPtiKey)aKey);
-
-                bHandled = ETrue;
-                
-                if (fepMan->EditSubmenuInUse())
-                    {
-                    // Looping tone marks, supress edit-menu.
-                    fepMan->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                    }
-                }
-            }
-        else if (aLength == ELongKeyPress)
-            {
-            // Reset the key event so that the TAknFepInputStateInitialMultitapBase will
-            // parse this event as a short key event, default reaction is to launch SCT
-            aLength = EShortKeyPress;
-
-            if (toneMgr->IsLooping())
-                {
-                // Remove the previous EShortKeyPress message
-                fepMan->CancelInlineEdit();
-                toneMgr->StopToneMarkLooping();
-
-                // Undo the backdeletion
-                TText bkChr = toneMgr->GetDeletedVowel();
-
-                TBuf<CAknFepManager::ESingleCharacter> aChr;
-                aChr.Append(bkChr);
-
-                fepMan->NewCharacterL(aChr);
-                fepMan->CommitInlineEditL();
-                
-               	if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-        		    {
-        		    fepMan->LaunchSpecialCharacterTableL();
-        		    return ETrue;
-        		    }                         
-                }
-			else if (fepMan->EditSubmenuInUse())
-				{
-				aLength = ELongKeyPress;
-				}
-            }
-        }
-    
-    // Implementation for the Vietnamese back deletion
-    if (aKey == EKeyBackspace)
-        {
-        TBuf<2> newText;
-        // Get the last character from the current editor
-        TText prevChar = fepMan->PreviousChar();
-        
-        // Judge if the last character needs to be converted
-        if ( NeedsVietnameseBkDelSupport(prevChar, newText) )
-            {
-            // Delete the prev character and send the new character to editor
-            ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-            fepMan->NewCharacterL(newText);
-            fepMan->CommitInlineEditL();
-			// Stop looping for backspace operation
-			if( toneMgr->IsLooping() )
-			    {
-				toneMgr->StopToneMarkLooping();
-				}
-            return ETrue;
-            }
-        else
-            {
-            if ( prevChar )
-                {
-                ((CAknFepManager*)fepMan)->RemovePreviousCharacterL();
-                }
-            else
-                {
-                return EFalse;
-                }
-                
-            bHandled = EFalse;
-            }
-        }
-    
-    if(!bHandled && toneMgr->IsLooping())
-    	{
-    	toneMgr->StopToneMarkLooping();
-    	}
-    
-    return bHandled ? ETrue : TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength);
-    }
-
-void TAknFepInputStateInitialVietnameseMultitap::KeyTimerExpired()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepUIManagerWestern* uiMan = static_cast<CAknFepUIManagerWestern*>(iOwner);
-    CAknFepVietnameseToneManager* toneMgr = uiMan->VietnameseToneManager();  
-    CPtiEngine* ptiEng = fepMan->PtiEngine();
-
-    // Try commit inline editting and clean up for future input attemps
-    TRAP_IGNORE(fepMan->CommitInlineEditL());
-
-    toneMgr->StopToneMarkLooping();
-    ptiEng->ClearCurrentWord();
-    }
-    
-TBool TAknFepInputStateInitialVietnameseMultitap::NeedsVietnameseBkDelSupport(
-                                         TText aGlyphToDelete, TDes& aNewText)
-    {
-    TBool needBkDelSupport(EFalse);
-
-    const TInt KMatrixColumn = sizeof(VietToneMatrix) / sizeof(TText) / KNumberOfToneMarks;
-
-    aNewText.Zero();
-
-    // Loop of the ToneMatrix columns starts from 1 because the first column of the ToneMatrix stores the vowels 
-    for (TUint i = 1; (i < KMatrixColumn) && (!needBkDelSupport); ++i)
-        {
-        for (TUint j = 0; j < KNumberOfToneMarks; ++j)
-            {
-            if (VietToneMatrix[i][j] == aGlyphToDelete)
-                {
-                needBkDelSupport = ETrue;
-                aNewText.Append(VietVowelList[i - 1]);
-                break;
-                }
-            }
-        }
-
-    return needBkDelSupport;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialWesternPredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialWesternPredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialWesternPredictive.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepManager.h"
-#include "AknFepCaseManager.h"                  //CAknFepCaseManager
-#include "AknFepUiIndicInputManager.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-
-TAknFepInputStateInitialWesternPredictive::
-TAknFepInputStateInitialWesternPredictive(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateInitialMultitapBase(aOwner)
-    {
-    }
-
-TBool TAknFepInputStateInitialWesternPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBool ret = ETrue;
-
-    if (aKey == EPtiKey0)
-        {
-        TAknFepInputStateInitialMultitapBase::HandleKeyL(aKey, aLength);
-        }
-    else if (aKey == EPtiKeyStar)
-        {     
-		if (aLength == EShortKeyPress)
-			{			
-			if (fepMan->IsFlagSet(CAknFepManager::EFlagLineFeedCharacter) && 
-			    fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-			    {
-			    // User is interrupting multitap timer with star key, but there
-			    // is line feed event waiting. Make sure that it is handled first.
-			    fepMan->CommitInlineEditL();
-			    }
-					        
-        	if (!fepMan->EditSubmenuInUse())
-        		{        		        	
-        		if (fepMan->IsAbleToLaunchSCT())
-        			{
-        			fepMan->LaunchSpecialCharacterTableL();
-        			}               	        		        		
-        		}        	        	
-			else
-				{
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-				}        		
-			}
-		else	        	
-			{
-			if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
-				{										
-				fepMan->LaunchSpecialCharacterTableL();           			
-				}
-			}
-        }   
-    else 
-        {
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagSuppressInputStateChange))
-            {
-            // Long keypress of numeric keypress, we want to simply return EFalse
-            // to enter a number into the editor, rather than move back to 
-            // entry state, so just clear the flag
-            fepMan->ClearFlag(CAknFepManager::EFlagSuppressInputStateChange);
-
-            // Asyncronous case update after the number has been entered to the editor.
-            fepMan->SimulateKeyEventL(EKeyF19); 
-            }
-        else
-            {
-            fepMan->TryCloseUiL(); //expires the multitap timer
-            iOwner->ChangeState(EEntry);
-            fepMan->SendUIActivatedNotification();
-            }
-        ret = EFalse;
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateInitialZhuyinFind.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialZhuyinFind methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialZhuyinFind.h"
-#include "AknFepUIManagerStateInterface.h"
-
-#include <PtiEngine.h>
-
-TAknFepInputStateInitialZhuyinFind::TAknFepInputStateInitialZhuyinFind(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateInitialChineseMultitapBase(aOwner, aUIContainer)
-    {
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateJapaneseBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,459 +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 TAknFepUiInputStateJapaneseBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateJapaneseBase.h"
-#include "AknFepUIManagerStateInterface.h"   //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"               // CAknFepCaseManager
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-#include <PtiDefs.h>                // keys
-#include <avkon.rsg>
-
-// CONSTANTS
-#define EFirstHalfUpperChar  0x0041
-#define ELastHalfUpperChar   0x005A
-#define EFirstFullUpperChar  0xff21
-#define ELastFullUpperChar   0xff3A
-#define EFirstHalfLowerChar  0x0061
-#define ELastHalfLowerChar   0x007A
-#define EFirstFullLowerChar  0xff41
-#define ELastFullLowerChar   0xff5A
-
-/**
- *  TAknFepUiInputStateJapaneseBase class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::TAknFepUiInputStateJapaneseBase
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateJapaneseBase::
-TAknFepUiInputStateJapaneseBase(MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iUIContainer = aUIContainer;
-    if (aOwner)
-        {
-        aOwner->FepMan()->SendUIActivatedNotification();
-        }
-    }
-
-/**
- * MPtiObserver interface.
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::KeyTimerExpired
-// Call this function when Multitap timer of PtiEngine was time-out
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::KeyTimerExpired()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::LastWordInSelectionList
-// not-use Japanese state
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::LastWordInSelectionList()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::FirstWordInSelectionList
-// not-use Japanese state
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::FirstWordInSelectionList()
-    {
-    }
-
-/**
- *  TAknFepUiInputStateJapaneseBase class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleKeyL
-// Hnadling Keypress events. This Method is called by CAknFepUIManagerJapanese
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::
-    HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    if(iState == EInitial)
-        {
-        ret = EFalse;
-        }
-
-    if (iOwner->IsQwerty())
-        {
-        switch(aKey)
-            {
-            case EStdKeyLeftArrow:      /* 0x0e */
-            case EStdKeyRightArrow:     /* 0x0f */
-            case EStdKeyUpArrow:        /* 0x10 */
-            case EStdKeyDownArrow:      /* 0x11 */
-                {
-                // Long and short keypress is same Handling
-                ret = HandleNaviKeyL(aKey, aLength);
-                }
-                break;
-            case EKeyOK:
-            case EStdKeyEnter:          /* 0x03 */
-            case EStdKeyNkpEnter:       /* 0x88 */
-            case EStdKeyDevice3:        /* 0xA7 */
-                {
-                ret = HandleAuxKeyL(aKey, aLength);
-                }
-                break;
-            case EStdKeyBackspace:      /* 0x01 */
-            case EStdKeyEscape:         /* 0x04 */
-                {
-                // Long and short keypress is same Handling
-                ret = HandleAuxKeyL(aKey, aLength);
-                }
-                break;
-            case EStdKeySpace:
-                if( iState == EConversion
-                 || iState == ECandidate
-                 || iState == ECandidateRetroActive )
-                    {
-                    ret = HandleNaviKeyL(aKey, aLength);
-                    }
-                else
-                    {
-                    ret = HandleNumericShortKeyL(aKey);
-                    }
-                break;
-            default:
-                // for Qwerty
-                if (aLength == EShortKeyPress
-                 && IsQwertyKey(aKey))
-                    {
-                    ret = HandleNumericShortKeyL(aKey);
-                    }
-                break;
-            }
-        }
-    else
-        {
-        switch(aKey)
-            {
-            case EPtiKey0:
-            case EPtiKey1:
-            case EPtiKey2:
-            case EPtiKey3:
-            case EPtiKey4:
-            case EPtiKey5:
-            case EPtiKey6:
-            case EPtiKey7:
-            case EPtiKey8:
-            case EPtiKey9:
-            case EPtiKeyStar:
-                {
-                if(aLength == ELongKeyPress)
-                    {
-                    if (aKey != EPtiKeyStar)
-                        {
-                        ret = HandleNumericLongKeyL(aKey);
-                        }
-                    else
-                        {
-                        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                        if (fepMan->HashKeySelectionInUse())
-                            {
-                            ret = ETrue;
-                            }
-                        }
-                    }
-                else if (aLength == EShortKeyPress)
-                    {
-                    ret = HandleNumericShortKeyL(aKey);
-                    }
-                }
-                break;
-            case EKeyLeftArrow:
-            case EKeyRightArrow:
-            case EKeyDownArrow:
-            case EKeyUpArrow:
-                {
-                // Long and short keypress is same Handling
-                ret = HandleNaviKeyL(aKey, aLength);
-                }
-                break;
-            case EKeyOK:
-                {
-                ret = HandleAuxKeyL(aKey, aLength);
-                }
-                break;
-            case EKeyBackspace:
-                {
-                // Long and short keypress is same Handling
-                ret = HandleAuxKeyL(aKey, aLength);
-                }
-                break;
-            default:
-                {
-                AknFepPanic(EAknFepPanicNotSupportKey);
-                }
-                break;
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleCommandL
-// Handling Command events. This Method is called by CAknFepUIManagerJapanese.
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::HandleCommandL(TInt /*aCommandId*/)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::operator=
-// A patch to force the vtable to be copied during an assignment.
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::operator=(const TAknFepInputStateBase& aState)
-    {
-    Mem::Copy(this, &aState, sizeof(TAknFepUiInputStateJapaneseBase));
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleNumericKeyL
-// Handling short keypress events of the numeric and the star.
-// HandleKeyEventL() call this method.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleNumericLongKeyL
-// Handling Numeric long keypress event. HandleKeyEventL() call this method.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::HandleNumericLongKeyL(TInt /*aKey*/)
-    {
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleNaviKeyL
-// Handling navigate keypress event. HandleKeyEventL() call this method.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::HandleNaviKeyL(TInt /*aKey*/,
-                                                      TKeyPressLength /*aLength*/)
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace.
-// HandleKeyEventL() call this method.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::HandleAuxKeyL(TInt /*aKey*/,
-                                                     TKeyPressLength /*aLength*/)
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::UpdateInlineEditingCharacterL()
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::CommitInlineEditingCharacterL()
-    {
-    return EFalse;
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::UIContainer()
-// Getting UI container object
-// ---------------------------------------------------------------------------
-//
-
-MAknFepUICtrlContainerJapanese* TAknFepUiInputStateJapaneseBase::UIContainer()
-    {
-    return static_cast<MAknFepUICtrlContainerJapanese*>(iUIContainer);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::UpdateCase
-// Update character case
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapaneseBase::UpdateCase(TPtrC& aChar)
-    {
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    if (IsDiffrentCase(aChar))
-        {
-        caseMan->ManualCaseUpdate();
-        }
-    else
-        {
-        caseMan->UpdateCase(ENullNaviEvent);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::IsDiffrentCase
-// Check whether last catacter case and current catacter case is same
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::IsDiffrentCase(TPtrC& aChar) const
-    {
-    TBool ret = EFalse;
-    CAknFepCaseManager* caseMan = iOwner->CaseMan();
-    TInt currentCase = caseMan->CurrentCase();
-    switch(currentCase)
-        {
-        case EAknEditorUpperCase:
-            {
-            if (IsLowerCase(aChar))
-                {
-                ret = ETrue;
-                }
-            }
-            break;
-        case EAknEditorLowerCase:
-            {
-            if (IsUpperCase(aChar))
-                {
-                ret = ETrue;
-                }
-            }
-        case EAknEditorTextCase:
-            break;
-        default: // Panic
-            {
-            AknFepPanic(EAknFepPanicBadCase);
-            }
-            break;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::IsUpperCase
-// Check a caracter case is upper
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::IsUpperCase(TPtrC& aChar) const
-    {
-    if ((EFirstHalfUpperChar <= aChar[0] && aChar[0] <= ELastHalfUpperChar)
-     || (EFirstFullUpperChar <= aChar[0] && aChar[0] <= ELastFullUpperChar))
-        {
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapaneseBase::IsLowerCase
-// Check a caracter case is lower
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapaneseBase::IsLowerCase(TPtrC& aChar) const
-    {
-    if ((EFirstHalfLowerChar <= aChar[0] && aChar[0] <= ELastHalfLowerChar)
-     || (EFirstFullLowerChar <= aChar[0] && aChar[0] <= ELastFullLowerChar))
-        {
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-TBool TAknFepUiInputStateJapaneseBase::HandleQwertyShortKeyL(TInt /*aKey*/)
-    {
-    return EFalse;
-    }
-
-TBool TAknFepUiInputStateJapaneseBase::IsNumberKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepUiInputStateJapaneseBase::IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        IsNumberKey( aKey ) ||
-        aKey == EStdKeySpace ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateJapanesePredictiveBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +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
-*                TAknFepUiInputStateJapanesePredictiveBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateJapanesePredictiveBase.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"  // MAknFepUICtrlContainerJapanese
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                        // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"                                       
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-#include <aknfep.rsg>
-
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateJapanesePredictiveBase class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::
-//                      TAknFepUiInputStateJapanesePredictiveBase
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateJapanesePredictiveBase::
-    TAknFepUiInputStateJapanesePredictiveBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapaneseBase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::CloseUI
-// Closing UI
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateJapanesePredictiveBase::CloseUI()
-    {
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    // Closeing candidate pop-up list
-    predictivePane->HideWindow();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapanesePredictiveBase::HandleNumericLongKeyL(TInt /*aKey*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    // Not handling long keypress events if exist transitory input string
-    TPtrC text = data->ConvertingString();
-    if (text.Length() > 1)
-        {
-        return ETrue;
-        }
-    // Long keypress events are handled by HandleNumericLongKeyL of
-    // CompletionState
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapanesePredictiveBase::
-  HandleNaviKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    TBool ret = EFalse;
-	if (predictivePane->CurrentItemIndexOfCandidate() > -1)
-		{
-	    TAknFepUICtrlScroll direction = EScrollNone;
-
-	    // move hightlight of candidate in cadidate pop-up list
-	    switch(aKey)
-	        {
-	        case EKeyLeftArrow:
-	        case EStdKeyLeftArrow:      /* 0x0e */
-	            {
-	            direction = EScrollLeft;
-	            }
-	            break;
-	        case EKeyRightArrow:
-	        case EStdKeyRightArrow:     /* 0x0f */
-	            {
-	            direction = EScrollRight;
-	            }
-	            break;
-	        case EKeyDownArrow:
-	        case EStdKeyDownArrow:      /* 0x11 */
-	            {
-	            direction = EScrollDown;
-	            }
-	            break;
-	        case EKeyUpArrow:
-	        case EStdKeyUpArrow:        /* 0x10 */
-	            {
-	            direction = EScrollUp;
-	            }
-	            break;
-	        default:
-	            break;
-	        }
-	    
-	    predictivePane->MoveItem(direction);
-	    TInt index = predictivePane->CurrentItemIndexOfCandidate();
-	    ptiEngine->HandleCommandL(EPtiCommandUserActionSetCurrentIndexOfCandidates ,&index);
-	    ret = ETrue;
-		}
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapanesePredictiveBase::UpdateInlineEditingCharacterL()
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    // Check ComposirionData
-    __ASSERT_DEBUG(data->CompletedString().Length() <= 0,
-        RDebug::Print(_L("In TAknFepUiInputStateJapanesePredictiveBase::UpdateInlineEditingCharacterL,\nINVALID DATA: CompletedString. CompletedString was not OperaOperated!")));
-    
-    TPtrC text = data->ConvertingString();
-
-    if (text.Length() > 0)
-        {
-        // Update of inline editing characters
-        fepMan->UpdateInlineEditL(text, text.Length());
-        ret = ETrue;
-        }
-    else
-        {
-        // Check ConvertingString length
-        __ASSERT_DEBUG(text.Length() == 0,
-            RDebug::Print(
-               _L("In TAknFepUiInputStateJapanesePredictiveBase::UpdateInlineEditingCharacterL,\nINVALID DATA: ConvertingString. Roll back to initial State!")));
-        
-        MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-        MAknFepUICtrlCandidatePaneInterface* predictivePane =
-            uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                       EJapanesePredictiveCandidatePane);
-        ptiEngine->ClearCurrentWord();
-        fepMan->CancelInlineEdit();
-        predictivePane->HideWindow();
-        iOwner->ChangeState(EInitial);
-        
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::UpdateCandidateListL
-// 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateJapanesePredictiveBase::UpdateCandidateListL(TInt aIndex /*= 0*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    // Get coordinate of input area
-    TPoint  leftSideOfBaseLine;
-    TInt    height;
-    TInt    ascent;
-    TInt    documentOffset = data->CursorPosition() > 0 ? data->CursorPosition() : 0;
-    
-    fepMan->GetScreenCoordinatesL(leftSideOfBaseLine,
-                                  height,
-                                  ascent,
-                                  documentOffset);
-    // show candidate pop-up list
-    predictivePane->SetWindowPosition(leftSideOfBaseLine, height, ascent);            
-    predictivePane->ShowCandidateListL(candidateArray, aIndex, iCbaResourceID);
-    return ETrue;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateNextWordJapanesePredictive.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +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 TAknFepUiInputStateNextWordJapanesePredictive methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateNextWordJapanesePredictive.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"  // MAknFepUICtrlContainerJapanese
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                       // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-#include <aknfep.rsg>
-
-
-// CONSTANTS
-
-/**
- *  TAknFepUiInputStateNextWordJapanesePredictive class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateNextWordJapanesePredictive::
-//                              TAknFepUiInputStateNextWordJapanesePredictive
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateNextWordJapanesePredictive::
-    TAknFepUiInputStateNextWordJapanesePredictive(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapanesePredictiveBase(aOwner, aUIContainer)
-    {
-    iState = ENextWord;
-    iCbaResourceID = R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_SELECT;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateNextWordJapanesePredictive::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateNextWordJapanesePredictive::InitializeStateL()
-    {
-    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-    iOwner->PtiEngine()->GetNextWordCandidateListL(*candidateArray);
-    UpdateCandidateListL();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateNextWordJapanesePredictive::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateNextWordJapanesePredictive::HandleCommandL(TInt aCommandId)
-    {
-    if (aCommandId == EAknFepAllCompletion)
-        {
-        iOwner->PtiEngine()->ClearCurrentWord();
-        iOwner->ChangeState(EInitial);
-        }
-    else if (aCommandId == EAknFepSoftkeyCloseWindow)
-        {
-        CloseUI();
-        iOwner->ChangeState(EInitial);
-        }
-    else if(aCommandId == EAknFepSoftkeySelectCandidate)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        fepMan->StartInlineEditL();
-        iOwner->ChangeState(EMultiCompletion);
-        }
-    else if(aCommandId == EAknFepResourceChanged)
-        {
-        MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-        MAknFepUICtrlCandidatePaneInterface* predictivePane =
-            uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                       EJapanesePredictiveCandidatePane);
-        TInt index = predictivePane->CurrentItemIndexOfCandidate();
-        predictivePane->HideWindow();
-        UpdateCandidateListL(index);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateNextWordJapanesePredictive::HandleNumericKeyL
-// Handling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateNextWordJapanesePredictive::HandleNumericShortKeyL(TInt /*aKey*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-
-    ptiEngine->ClearCurrentWord();
-    predictivePane->HideWindow();
-    iOwner->ChangeState(EInitial);
-    // This State doesn't Handle numeric key, always return false.
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateNextWordJapanesePredictive::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateNextWordJapanesePredictive::HandleAuxKeyL(TInt aKey,
-                                                                   TKeyPressLength /*aLength*/)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    TBool ret = EFalse;
-
-    switch(aKey)
-        {
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            fepMan->StartInlineEditL();
-            iOwner->ChangeState(EMultiCompletion);
-            }
-            break;
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-        case EStdKeyEscape:         /* 0x04 */
-            {
-            ptiEngine->ClearCurrentWord();
-            predictivePane->HideWindow();
-            iOwner->ChangeState(EInitial);
-            ret = ETrue;
-            }
-            break;
-        default: // Panic
-            {
-            AknFepPanic(EAknFepPanicNotSupportKey);
-            }
-            break;
-        }
-
-    return ret;
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidate.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidate methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidate.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidate::TAknFepInputStatePredictiveCandidate(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-
-    // for some reason needs to feed back to ptiengine current Chinese char just before get the prediction
-    TPtrC text = uiContainer->CandidatePane()->CurrentCandidate();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-//  Do standard candidate pane init...
-    }
-
-
-TBool TAknFepInputStatePredictiveCandidate::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    if(aLength == ELongKeyPress) 
-        {
-        return ret;
-        }
-    if(iOwner->IsValidChineseInputKey(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    if(!HandleVerticalNavigation(aKey))
-        {
-        if (aKey == EKeyLeftArrow || aKey == EKeyRightArrow || aKey == EKeyOK)
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            ret = EFalse; //passes to predictive input state to handle the key
-            }
-        else if(aKey == EKeyBackspace)
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else if (aKey == EPtiKeyStar)
-            {
-            ret = TAknFepInputStateCandidateBase::HandleKeyL(aKey, aLength);
-            }   
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive candidate chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidateChinesePhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidateChinesePhrase::
-TAknFepInputStatePredictiveCandidateChinesePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    candidatePane->SelectFirstPhrase(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        candidatePane->ShowCandidateOrdinals(EFalse);
-        UpdateIndicator();
-        }
-    }
-
-TBool TAknFepInputStatePredictiveCandidateChinesePhrase::HandleKeyL(TInt aKey, 
-                                                                    TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if(iOwner->IsValidChineseInputKey(aKey) && aLength != ELongKeyPress)
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // needs to clear current word for current engine, otherwise buffer is not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    if(!HandleVerticalNavigation(aKey))
-        {
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-        // Do navigation...
-        if (aKey == EKeyLeftArrow && aLength != ELongKeyPress)
-            {
-//            if (candidatePane->SelectedIndex() == 0 && 
-//                candidatePane->IsFirstPage() )
-//                {
-//                return ETrue;
-//                }
-//            else 
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                ret = EFalse; //passes to predictive input state to handle the key
-                } 
-            }
-        else if (aKey == EKeyRightArrow && aLength != ELongKeyPress)
-            {
-            if (candidatePane->IsLastPage() && 
-               (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-                {
-                return ETrue;    
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                return EFalse;
-                }
-            }
-        else if ( ( aKey == EKeyOK || aKey == EKeyCBA1 ) && aLength != ELongKeyPress)
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            ret = EFalse; //passes to predictive input state to handle the key
-            }
-        else if(aKey == EKeyBackspace && aLength != ELongKeyPress)
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else if (aKey == EPtiKeyStar && aLength != ELongKeyPress)
-            {
-            ret = TAknFepInputStateCandidateBaseChinesePhrase::HandleKeyL(aKey, aLength);
-            }   
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,297 +0,0 @@
-/*
-* Copyright (c) 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:            Implementation of Pinyin phrase predictive candidate MiniQwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      
-
-// User includes
-#include "AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManagerUIInterface.h" 
-#include "AknFepManager.h"      
-#include "AknFepUICtrlCandidatePane.h"
-#include "aknfepuictrleditpane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase::
-TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveInputQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase::HandleKeyL(
-    TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TBool ret = ETrue;
-
-    if ( aKey == EPtiKeyQwertyComma || aKey == EStdKeyForwardSlash|| aKey
-        == EStdKeySquareBracketRight )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        ret = ETrue;
-        }
-    else if ( aKey == EStdKeyFullStop )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey == EStdKeyLeftFunc )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        iOwner->FepMan()->LaunchSelectModeMenuL();
-        }
-    else if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyShiftMode )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed ) )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyLock
-        == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyDown
-        == iOwner->FepMan()->FnKeyState() ) // for fn + a character
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey ==EKeyLeftCtrl || aKey == EKeyRightCtrl )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey == EStdKeyBackspace )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if ( aKey ==EKeyRightFunc )//fn key
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( aKey ==EStdKeySpace )
-        {
-        if ( ECangJie ==iOwner->FepMan()->InputMode() )
-            {
-            TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if ( text.Length() )
-                {
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            return ETrue;
-            }
-        else if ( EZhuyin ==iOwner->FepMan()->InputMode()&&
-        EPtiKeyboardHalfQwerty == iOwner->FepMan()->KeyboardLayout() )
-            {
-            popup->SetPreStateIsPredictive( ETrue );
-            iOwner->ChangeState( EEntry );
-            ret = EFalse;
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            ret = EFalse;
-            }
-        }
-    else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice3 || aKey
-        == EStdKeyEnter ) // Add for SK1, selection,enter
-        {
-        TBool state = ETrue;
-        if ( UIContainer()->EditPaneWindow()->IsChangeState() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            UIContainer()->EditPaneWindow()->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if ( text.Length() )
-                {
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            }
-        }
-    else if ( aKey == EStdKeyRightArrow )
-        {
-        iOwner->ChangeState( EPredictiveInput );
-        UIContainer()->CandidatePane()->SelectNext();
-        }
-    else if ( aKey == EStdKeyLeftArrow )
-        {
-        iOwner->ChangeState( EPredictiveInput );
-        UIContainer()->CandidatePane()->SelectLastPhrase();
-        }
-    else if ( iOwner->IsValidChineseInputKeyQwerty( aKey ) )
-        {
-        if ( aLength == ELongKeyPress )
-            {
-            TBool state = ETrue;
-            if ( popup->IsChangeStatet() )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                popup->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                return EFalse;
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                return ETrue;
-                }
-            }
-
-        if ( EPinyin ==iOwner->FepMan()->InputMode() )
-            {
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            // it is needed when we use phrase input engine, otherwise it seems not cleared
-            ptiengine->ClearCurrentWord();
-            ptiengine->ResetToneMark();
-
-            popup->SetPreStateIsPredictive( ETrue );
-            iOwner->ChangeState( EEntry );
-            ret = EFalse; //passes to entry state to handle the key
-            }
-        else if ( EZhuyin ==iOwner->FepMan()->InputMode() ||
-        ECangJie ==iOwner->FepMan()->InputMode() ||
-        EStroke ==iOwner->FepMan()->InputMode() )
-            {
-            if ( EZhuyin ==iOwner->FepMan()->InputMode() &&
-            ( aKey == EPtiKeyQwertyQ ||
-                aKey == EPtiKeyQwertyA ||
-                aKey == EPtiKeyQwertyO ||
-                aKey == EPtiKeyQwertyL ||
-                aKey == EPtiKeyQwertyZ ) )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                return EFalse;
-                }
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            // it is needed when we use phrase input engine, otherwise it seems not cleared
-            ptiengine->ClearCurrentWord();
-            ptiengine->ResetToneMark();
-
-            popup->SetPreStateIsPredictive( ETrue );
-            iOwner->ChangeState( EEntry );
-            ret = EFalse; //passes to entry state to handle the key
-            }
-        }
-    else if ( aKey == EStdKeyDevice2 )//sk2
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if ( aKey == EPtiKeyQwertyQ ||
-            aKey == EPtiKeyQwertyW ||
-            aKey == EPtiKeyQwertyO ||
-            aKey == EPtiKeyQwertyP ||
-            aKey == EPtiKeyQwertyA ||
-            aKey == EPtiKeyQwertyS ||
-            aKey == EPtiKeyQwertyL ||
-            aKey == EPtiKeyQwertyZ ||
-            aKey == EPtiKeyQwertyX ||
-            aKey == EPtiKeyQwertyC ||
-            aKey == EPtiKeyQwertyV ||
-            aKey == EPtiKeyQwertyB ||
-            aKey == EPtiKeyQwertyN ||
-            aKey == EPtiKeyQwertyM )
-        {
-        if ( EStroke ==iOwner->FepMan()->InputMode() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            iOwner->FepMan()->TryCloseUiL();
-            return EFalse;
-            }
-        }
-    else if ( (aKey == EPtiKeyQwerty7 ||
-    		aKey == EPtiKeyQwerty8 ||
-    		aKey == EPtiKeyQwerty9) &&
-    		iOwner->FepMan()->InputMode() == EStroke )
-    	{
-    	if ( aLength == EShortKeyPress )
-    		{
-            iOwner->FepMan()->TryCloseUiL();
-            ret = EFalse;
-            }
-    	}
-    else
-        {
-        ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(
-            aKey, aLength );
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-/*
-* Copyright (c) 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:            Implementation of Pinyin phrase predictive candidate MiniQwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      
-
-// User includes
-#include "AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManagerUIInterface.h" 
-#include "AknFepManager.h"      
-#include "AknFepUICtrlCandidatePane.h"
-#include "aknfepuictrleditpane.h"
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::
-TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveInputQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::HandleKeyL(
-                                           TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if(iOwner->IsValidChineseSymbol(aKey))
-    	{
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        ret = ETrue;
-        }
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed)||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() ||
-              CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() ||
-              CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState()) // for fn + a character
-        {
-    	iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-   else if ( aKey ==EKeyLeftCtrl || aKey == EKeyRightCtrl)      
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey == EStdKeyEnter)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey == EStdKeyBackspace) 
-        {
-    	iOwner->FepMan()->TryCloseUiL();
-        }
-    else if (aKey ==EKeyRightFunc)//fn key
-    	{
-    	iOwner->FepMan()->TryCloseUiL();
-    	ret = EFalse;
-    	}
-    else if ( aKey ==EStdKeySpace)
-    	{
-    	if (ECangJie ==iOwner->FepMan()->InputMode())
-    		{
-    		TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-	        if(text.Length())
-	            {            
-	            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	            fepMan->NewTextL(text);
-	            fepMan->CommitInlineEditL();
-	            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-	            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-	                {
-	                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-	                iOwner->FepMan()->TryCloseUiL();
-	                }
-	            else
-	                {
-	                iOwner->ChangeState(EPredictiveCandidate);
-	                }
-	            }
-	        return ETrue;
-    		}
-    	else 
-    		{
-             iOwner->FepMan()->TryCloseUiL();
-             ret = EFalse; 
-    		}
-    	}	    
-   else if ( aKey == EStdKeyDevice0 || aKey == EStdKeyDevice3 ) // Add for SK1 and selection 
-        {
-        TBool state = ETrue;
-        if ( UIContainer()->EditPaneWindow()->IsChangeState() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            UIContainer()->EditPaneWindow()->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if(text.Length())
-                {            
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-                fepMan->NewTextL(text);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    }           
-                }
-            }
-        }
-    else if(aKey == EStdKeyRightArrow )
-        {
-    	iOwner->ChangeState(EPredictiveInput);  
-    	UIContainer()->CandidatePane()->SelectNext(); 
-        }
-    else if (aKey == EStdKeyLeftArrow)  
-    	{
-    	iOwner->ChangeState(EPredictiveInput);  
-        UIContainer()->CandidatePane()->SelectLastPhrase();
-    	}    
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        if ( aLength == ELongKeyPress )
-            {
-            return ETrue;
-            }
-        
-        if(EPinyin ==iOwner->FepMan()->InputMode())
-    		{
-			CPtiEngine* ptiengine = iOwner->PtiEngine();
-			// it is needed when we use phrase input engine, otherwise it seems not cleared
-    		ptiengine->ClearCurrentWord(); 
-			ptiengine->ResetToneMark();
-
-			iOwner->ChangeState(EEntry);
-			ret = EFalse; //passes to entry state to handle the key
-    		}
-    	else if(EZhuyin  ==iOwner->FepMan()->InputMode() || 
-    	        ECangJie ==iOwner->FepMan()->InputMode() ||
-    	        EStroke  ==iOwner->FepMan()->InputMode() )	
-    		{
-    	 	CPtiEngine* ptiengine = iOwner->PtiEngine();
-			// it is needed when we use phrase input engine, otherwise it seems not cleared
-        	ptiengine->ClearCurrentWord(); 
-			ptiengine->ResetToneMark();
-
-			iOwner->ChangeState(EEntry);
-			ret = EFalse; //passes to entry state to handle the key
-    		}
-
-    	}
-    else if(    aKey == EPtiKeyQwertyQ ||
-    		    aKey == EPtiKeyQwertyW ||
-    		    aKey == EPtiKeyQwertyO ||
-    		    aKey == EPtiKeyQwertyP ||
-    		    aKey == EPtiKeyQwertyA ||
-    		    aKey == EPtiKeyQwertyS ||
-    		    aKey == EPtiKeyQwertyL ||
-    		    aKey == EPtiKeyQwertyZ ||
-    		    aKey == EPtiKeyQwertyX ||
-    		    aKey == EPtiKeyQwertyC ||
-    		    aKey == EPtiKeyQwertyV ||
-    		    aKey == EPtiKeyQwertyB ||
-    		    aKey == EPtiKeyQwertyN ||
-    		    aKey == EPtiKeyQwertyM )
-    	{
-    	 if(EStroke ==iOwner->FepMan()->InputMode())
-    	 	{
-    	 	iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-    		//iOwner->FepMan()->TryCloseUiL();
-    	 	}	
-    	}
-    else
-    {
-    ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-    }        		    
-      
-    return ret;
- }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TBool state = ETrue;
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            // case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( UIContainer()->EditPaneWindow()->IsChangeState( ) )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                UIContainer()->EditPaneWindow()->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-                if ( text.Length( ) )
-                    {
-                    MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-                    fepMan->NewTextL( text );
-                    fepMan->CommitInlineEditL( );
-                    iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                    if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                        {
-                        fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                        iOwner->FepMan()->TryCloseUiL( );
-                        }
-                    else
-                        {
-                        iOwner->ChangeState( EPredictiveCandidate );
-                        }
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveCandidatePhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidatePhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidatePhrase::TAknFepInputStatePredictiveCandidatePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBasePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    candidatePane->SelectFirstPhrase(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        candidatePane->ShowCandidateOrdinals(EFalse);
-        }
-    }
-
-TBool TAknFepInputStatePredictiveCandidatePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if(aLength == ELongKeyPress) 
-        {
-        return ret;
-        }
-    if(iOwner->IsValidChineseInputKey(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // needs to clear current word for current engine, otherwise buffer is not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    if(!HandleVerticalNavigation(aKey))
-        {
-        if (aKey == EKeyLeftArrow || aKey == EKeyRightArrow || aKey == EKeyOK)
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            ret = EFalse; //passes to predictive input state to handle the key
-            }
-        else if(aKey == EKeyBackspace)
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else if (aKey == EPtiKeyStar)
-            {
-            ret = TAknFepInputStateCandidateBasePhrase::HandleKeyL(aKey, aLength);
-            }   
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePinyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidatePinyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidatePinyin.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-TAknFepInputStatePredictiveCandidatePinyin::TAknFepInputStatePredictiveCandidatePinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveCandidate(aOwner, aUIContainer)
-    {
-    }
-
-TBool TAknFepInputStatePredictiveCandidatePinyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if ((aKey == EPtiKey0) || (aKey == EPtiKey1))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-    else
-        {
-        return TAknFepInputStatePredictiveCandidate::HandleKeyL(aKey, aLength);
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidatePinyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveCandidatePinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidatePinyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidatePinyinPhrase::TAknFepInputStatePredictiveCandidatePinyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveCandidateChinesePhrase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-     
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-            
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveCandidatePinyinPhrase::HandleKeyL(TInt aKey, 
-                                                                   TKeyPressLength aLength)
-    {
-    if(((aKey == EPtiKey0) || (aKey == EPtiKey1)) && aLength == EShortKeyPress )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-    else
-        {
-        return TAknFepInputStatePredictiveCandidateChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateQwertyZhuyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveCandidateQwertyZhuyin methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidateQwertyZhuyin.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidateQwertyZhuyin::TAknFepInputStatePredictiveCandidateQwertyZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinese(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveCandidateQwertyZhuyin::HandleKeyL(TInt aKey, 
-                                                                   TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsQwertyZhuyinToneMarkKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else if(!HandleVerticalNavigation(aKey))
-        {
-        if (aKey == EStdKeyLeftArrow || aKey == EStdKeyRightArrow)
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            ret = EFalse; //passes to predictive input state to handle the key
-            }
-        else
-            {
-            ret = TAknFepInputStateCandidateQwertyChinese::HandleKeyL(aKey, aLength);
-            }
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase::
-TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    candidatePane->SelectFirstPhrase(); 
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-    
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = ptiengine->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-        candidatePane->ShowCandidateOrdinals(EFalse);
-        UpdateIndicator();    
-        }
-    }
-
-TBool TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase::HandleKeyL(TInt aKey, 
-                                                                         TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return  EFalse;
-        }    
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsQwertyZhuyinToneMarkKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else if (aKey == EStdKeyEnter || aKey == EStdKeySpace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        iOwner->ChangeState(EQwerty);
-        return EFalse;
-        }
-    else if(!HandleVerticalNavigation(aKey))
-        {
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-      
-        if (aKey == EStdKeyLeftArrow )
-            {
-            if (candidatePane->SelectedIndex() == 0 && 
-                candidatePane->IsFirstPage())
-                {
-                return ETrue;    
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                return EFalse;
-                }
-            }				
-        else if (aKey == EStdKeyRightArrow)
-            {
-            if (candidatePane->IsLastPage() && 
-               (candidatePane->SelectedIndex() == candidatePane->VisibleCandidateCount() - 1))
-                {
-                return ETrue;    
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                return EFalse;
-                }
-            }
-        else
-            {
-            ret = TAknFepInputStateCandidateQwertyChinesePhrase::HandleKeyL(aKey, aLength);
-            }
-        }
-        
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateStroke.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStatePredictiveCandidateStroke methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveCandidateStroke.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"      //MAknFepUICtrlCandidatePane
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveCandidateStroke::TAknFepInputStatePredictiveCandidateStroke(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateChinese(aOwner, aUIContainer)
-    {
-    iState = EPredictiveCandidate;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-
-    // for some reason needs to feed back to ptiengine current Chinese char just before get the prediction
-    TPtrC text = uiContainer->CandidatePane()->CurrentCandidate();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);    
-    }
-
-TBool TAknFepInputStatePredictiveCandidateStroke::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    if (aKey == EPtiKey0 || aKey == EPtiKey7 ||
-        aKey == EPtiKey8 || aKey == EPtiKey9)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-        
-    TBool ret = ETrue;
-    if(aLength == ELongKeyPress) 
-        {
-        return ret;
-        }
-    if(iOwner->IsValidChineseInputKey(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-        
-    if(!HandleVerticalNavigation(aKey))
-        {
-        if (aKey == EKeyLeftArrow || aKey == EKeyRightArrow || aKey == EKeyOK)
-            {
-            iOwner->ChangeState(EPredictiveInput);
-            ret = EFalse; //passes to predictive input state to handle the key
-            }
-        else if(aKey == EKeyBackspace)
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else if (aKey == EPtiKeyStar)
-            {
-            ret = TAknFepInputStateCandidateChinese::HandleKeyL(aKey, aLength);
-            }   
-        }
-    return ret;
-    }
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveCandidateStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Stroke phrase predictive candidate state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      
-
-// User includes
-#include "AknFepUiInputStatePredictiveCandidateStrokePhrase.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManagerUIInterface.h"       
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-
-// Constant definition
-const TInt KMinCnadidateCount = 1;
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateStrokePhrase::
-// TAknFepInputStatePredictiveCandidateStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStatePredictiveCandidateStrokePhrase::TAknFepInputStatePredictiveCandidateStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveCandidateChinesePhrase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCnadidateCount;
-            
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveCandidateStrokePhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStatePredictiveCandidateStrokePhrase::HandleKeyL(TInt aKey, 
-                                                                   TKeyPressLength aLength)
-    {
-    if(aKey == EPtiKey0 || aKey == EPtiKey7 ||
-       aKey == EPtiKey8 || aKey == EPtiKey9)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        return EFalse;
-        }
-
-    return TAknFepInputStatePredictiveCandidateChinesePhrase::HandleKeyL(aKey, aLength);
-    }
-    
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInput.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +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 TAknFepInputStatePredictiveInput methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiInputStatePredictiveInput.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInput::TAknFepInputStatePredictiveInput(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    uiContainer->CandidatePane()->SelectFirst(); 
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    }
-
-TBool TAknFepInputStatePredictiveInput::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool response = ETrue;
-     
-    switch (aKey)
-        {
-    case EKeyOK:        //fall through
-    case EPtiKey0:
-    case EPtiKey1:
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-        TAknFepInputStateCandidateBase::HandleKeyL(aKey, aLength);
-        break;
-    case EKeyBackspace: //fall through
-        iOwner->FepMan()->TryCloseUiL();
-        break;
-    default:
-        response = TAknFepInputStateCandidateBase::HandleKeyL(aKey, aLength);
-        break;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputChinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of ITUT preditive input state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      //CPtiEngine
-
-// User includes
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiInputStatePredictiveInputChinese.h"
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputChinese::
-// TAknFepInputStatePredictiveInputChinese
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStatePredictiveInputChinese::TAknFepInputStatePredictiveInputChinese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateChinese(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirst(); 
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > 1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputChinese::
-// HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStatePredictiveInputChinese::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool response = ETrue;
-     
-    switch (aKey)
-        {
-        case EKeyOK:        //fall through
-        case EPtiKey0:
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey5:
-        case EPtiKey6:
-        case EPtiKey7:
-        case EPtiKey8:
-        case EPtiKey9:
-            TAknFepInputStateCandidateChinese::HandleKeyL(aKey, aLength);
-            break;
-        case EKeyBackspace: //fall through
-            iOwner->FepMan()->TryCloseUiL();
-        break;
-        default:
-            response = TAknFepInputStateCandidateChinese::HandleKeyL(aKey, aLength);
-        break;
-        }
-        
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive input phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiInputStatePredictiveInputChinesePhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputChinesePhrase::TAknFepInputStatePredictiveInputChinesePhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    candidatePane->SelectFirstPhrase(); 
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputChinesePhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool response = ETrue;
-     
-    switch (aKey)
-        {
-    case EKeyOK:        //fall through
-    case EPtiKey0:
-    case EPtiKey1:
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-        TAknFepInputStateCandidateBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        break;
-    case EKeyBackspace: //fall through
-        iOwner->FepMan()->TryCloseUiL();
-        break;
-    default:
-        response = TAknFepInputStateCandidateBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        break;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,497 +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
-*                TAknFepUiInputStatePredictiveInputJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStatePredictiveInputJapanese.h"
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       // MAknFepManagerUIInterface
-#include "AknFepUICtrlContainerJapanese.h"  // MAknFepUICtrlContainerJapanese
-#include "AknFepUICtrlCandidatePaneInterface.h"
-                                       // MAknFepUICtrlCandidatePaneInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepPanic.h"
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-#include <aknfep.rsg>
-#include <avkon.rsg>
-
-// CONSTANTS
-const TText KAknFEPLineFeedSymbol = 0x21B2;
-const TText KAknFEPMirroredLineFeedSymbol = 0x21B3;
-
-/**
- *  TAknFepUiInputStatePredictiveInputJapanese class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::
-//                      TAknFepUiInputStatePredictiveInputJapanese
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStatePredictiveInputJapanese::
-    TAknFepUiInputStatePredictiveInputJapanese(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapanesePredictiveBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    iCbaResourceID = R_AKNFEP_SOFTKEYS_CONVERT_OTHER_SELECT;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::KeyTimerExpired
-// Call this function when Multitap timer of PtiEngine was time-out
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStatePredictiveInputJapanese::KeyTimerExpired()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-
-    TPtrC text = data->ConvertingString();
-    TInt cursorpos = data->CursorPosition();
-    if (text.Length() > 0)
-        {
-        if (text[0] == KAknFEPLineFeedSymbol
-         || text[0] == KAknFEPMirroredLineFeedSymbol)
-            {
-            iOwner->ChangeState(EInitial);
-            }
-        else
-            {
-            // Set on cursor visibility in inline editing
-            TRAPD(err, fepMan->SetInlineEditingCursorVisibilityL(ETrue));
-            if (err == KErrNone)
-                {
-                TRAP(err, fepMan->UpdateInlineEditL(text, cursorpos));
-                }
-            if (err != KErrNone)
-                {
-                TRAP_IGNORE(iOwner->FepMan()->SimulateKeyEventL(EKeyEscape, ETrue));
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStatePredictiveInputJapanese::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(ETrue);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStatePredictiveInputJapanese::
-    HandleCommandL(TInt aCommandId)
-    {
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeySelectCandidate:
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            CPtiEngine* ptiEngine = iOwner->PtiEngine();
-            const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-            TPtrC textConv = data->ConvertingString();
-            TPtrC textComp = data->CompletedString();
-            if (textConv.Length() > 0 || textComp.Length() > 0)
-                {
-                iOwner->ChangeState(EMultiCompletion);
-                }
-            else
-                {
-                iOwner->ChangeState(EInitial);
-                }
-            }
-            break;
-        case EAknFepSoftkeyConvert:
-            {
-            // change state to conversion
-            ChangeStateToConversionL();
-            }
-            break;
-        case EAknFepSoftkeyOtherModes:
-            {
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            CPtiEngine* ptiEngine = iOwner->PtiEngine();
-            MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-            MAknFepUICtrlCandidatePaneInterface* predictivePane =
-                uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                           EJapanesePredictiveCandidatePane);
-            // Closeing candidate pop-up list
-            predictivePane->HideWindow();
-            // Update of CBA
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            // Delete Cursor
-            fepMan->SetInlineEditingCursorVisibilityL(EFalse);
-            // Change the status to Retroactive input
-            iOwner->ChangeState(ECandidateRetroActive);
-            }
-            break;
-        case EAknFepSoftkeyPredictiveOn:
-            {
-            CPtiEngine* ptiEngine = iOwner->PtiEngine();
-            // normal operation
-            if (UpdateInlineEditingCharacterL())
-                {
-                CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-                ptiEngine->GetCandidateListL(*candidateArray);
-                UpdateCandidateListL();
-                }
-            }
-            break;
-        case EAknFepResourceChanged:
-            {
-            MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-            MAknFepUICtrlCandidatePaneInterface* predictivePane =
-                uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                           EJapanesePredictiveCandidatePane);
-            TInt index = predictivePane->CurrentItemIndexOfCandidate();
-            predictivePane->HideWindow();
-            UpdateCandidateListL(index);
-            }
-            break;
-        default:
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::HandleNumericShortKeyL
-// Handling numeric keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStatePredictiveInputJapanese::
-    HandleNumericShortKeyL(TInt aKey)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool cursornisibility = EFalse;
-    TBool inputcontinue = ETrue;
-
-    if (aKey == EStdKeySpace)
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->ConvertingString();
-        if (text.Length() > 0)
-            {
-            HandleCommandL(EAknFepSoftkeyConvert);
-            inputcontinue = EFalse;
-            }
-        }
-
-    if (inputcontinue)
-        {
-        if (aKey == EPtiKeyStar)
-            {
-            cursornisibility = ETrue;
-            }
-        // Setting Cursor visibility
-        fepMan->SetInlineEditingCursorVisibilityL(cursornisibility);
-
-        // To send a key to PtiEngine
-        // Notice: AppendKeyPress() must be called after SetInlineEditingCursorVisibilityL().
-        ptiEngine->AppendKeyPress((TPtiKey)aKey);
-
-        // this process run if completion character (line feed or space) exist.
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->CompletedString();
-        if (text.Length() > 0)
-            {
-            CloseUI();
-            return ETrue;
-            }
-        // normal operation
-        if (UpdateInlineEditingCharacterL())
-            {
-            // for Qwerty input, if including latin characters,
-            // close candidate list.
-            if (!iOwner->IsQwerty()
-             || !IsFullWidthAlphaChar(data->ConvertingString()))
-                {
-                CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-                ptiEngine->GetCandidateListL(*candidateArray);
-                UpdateCandidateListL();
-                }
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStatePredictiveInputJapanese::HandleAuxKeyL(TInt aKey,
-                                                                TKeyPressLength /*aLength*/)
-    {
-    TBool ret = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-
-    switch(aKey)
-        {
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            iOwner->FepMan()->UpdateCbaL(NULL);
-            iOwner->ChangeState(EMultiCompletion);
-            ret = EFalse;
-            }
-            break;
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-        case EStdKeyEscape:         /* 0x04 */
-            {
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiEngine->DeleteKeyPress();
-
-            if (UpdateInlineEditingCharacterL())
-                {
-                // get composition data.
-                const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-                // for Qwerty input, if including latin characters,
-                // close candidate list.
-                if (!iOwner->IsQwerty()
-                 || !IsFullWidthAlphaChar(data->ConvertingString()))
-                    {
-                    CDesCArrayFlat* candidateArray = iOwner->CandidateArray();
-                    ptiEngine->GetCandidateListL(*candidateArray);
-                    UpdateCandidateListL();
-                    }
-                else
-                    {
-                    // Update of CBA
-                    TInt newResource = R_AVKON_SOFTKEYS_EMPTY;
-                    fepMan->UpdateCbaL(newResource);
-                    }
-                }
-            ret = ETrue;
-            }
-            break;
-        default: // Panic
-            {
-            AknFepPanic(EAknFepPanicNotSupportKey);
-            }
-            break;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateJapanesePredictiveBase::HandleNaviKeyL
-// Handling Navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStatePredictiveInputJapanese::
-  HandleNaviKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = EFalse;
-    switch(aKey)
-        {
-        case EKeyDownArrow:
-        case EStdKeyDownArrow:      /* 0x11 */
-        case EKeyUpArrow:
-        case EStdKeyUpArrow:        /* 0x10 */
-        case EKeyLeftArrow:
-        case EStdKeyLeftArrow:      /* 0x0e */
-            {
-            CPtiEngine* ptiEngine = iOwner->PtiEngine();
-            MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-            MAknFepUICtrlCandidatePaneInterface* predictivePane =
-                uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                           EJapanesePredictiveCandidatePane);
-            if (predictivePane->CurrentItemIndexOfCandidate() == 0
-             && ptiEngine->NumberOfCandidates() == 1)
-                {
-                // change state to entry
-                ChangeStateToEntryL();
-                // go through the key event.
-                return EFalse;
-                }
-            }
-            break;
-        default:
-            break;
-        }
-    if (!ret)
-        {
-        ret = TAknFepUiInputStateJapanesePredictiveBase::HandleNaviKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::IsFullWidthAlphaChar
-// Check full-width alphabet character
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStatePredictiveInputJapanese::IsFullWidthAlphaChar(TPtrC aPtr)
-    {
-    const TUint KFullAlphaLargeA = 0xFF21;
-    const TUint KFullAlphaLargeZ = 0xFF3A;
-    const TUint KFullAlphaSmallA = 0xFF41;
-    const TUint KFullAlphaSmallZ = 0xFF5A;
-
-    TBool isAlpha = EFalse;
-    for (TInt i=aPtr.Length()-1; i >= 0 && !isAlpha; i--)
-        {
-        TUint ch = aPtr[i];
-        isAlpha = (KFullAlphaLargeA <= ch && ch <= KFullAlphaLargeZ)
-                 || (KFullAlphaSmallA <= ch && ch <= KFullAlphaSmallZ);
-        }
-    return isAlpha;
-    }
-
-/**
- * TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToConversionL();
- * Change state to conversion
- */
-void TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToConversionL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    // Closeing candidate pop-up list
-    predictivePane->HideWindow();
-    // Update of CBA
-    iOwner->FepMan()->UpdateCbaL(NULL);
-    // Delete Cursor
-    fepMan->SetInlineEditingCursorVisibilityL(EFalse);
-
-    // Update of inline editing characters
-    ptiEngine->HandleCommandL(EPtiCommandUserActionConvert);
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    TPtrC text2 = data->ConvertingString();
-    if (text.Length() >0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        fepMan->CommitInlineEditL(text, text.Length());
-        if (fepMan->EditorHasFreeSpace())
-            {
-            iOwner->ChangeState(ENextWord);
-            }
-        else
-            {
-            CloseUI();
-            }
-        }
-    else if (text2.Length() > 0)
-        {
-        // Change to ConversionState
-        iOwner->ChangeState(EConversion);
-        fepMan->UpdateInlineEditL(text2, text2.Length());
-        }
-    }
-
-/**
- * TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToEntryL();
- * Change state to Entry
- */
-void TAknFepUiInputStatePredictiveInputJapanese::ChangeStateToEntryL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-    // Closeing candidate pop-up list
-    predictivePane->HideWindow();
-    // Update of CBA
-    iOwner->FepMan()->UpdateCbaL(NULL);
-    // Delete Cursor
-    fepMan->SetInlineEditingCursorVisibilityL(EFalse);
-
-    // Change to EntryState
-    iOwner->ChangeState(EEntry);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::CloseUI
-// Closing UI
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStatePredictiveInputJapanese::CloseUI()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerJapanese* uicontainer = UIContainer();
-    MAknFepUICtrlCandidatePaneInterface* predictivePane =
-        uicontainer->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                   EJapanesePredictiveCandidatePane);
-
-    const MPtiEngineCompositionDataInterface* currentdata = ptiEngine->CompositionData();
-    if (currentdata->ConvertingString().Length() >0)
-        {
-        TInt index = predictivePane->CurrentItemIndexOfCandidate();
-        if (index > -1)
-            {
-            TRAP_IGNORE( ptiEngine->HandleCommandL(EPtiCommandUserActionCompleteCandidate, &index));
-            }
-        else
-            {
-            TRAP_IGNORE( ptiEngine->HandleCommandL(EPtiCommandUserActionComplete));
-            }
-        }
-    const MPtiEngineCompositionDataInterface* commitdata = ptiEngine->CompositionData();
-    TPtrC text = commitdata->CompletedString();
-    if (text.Length() >0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        TRAP_IGNORE( fepMan->CommitInlineEditL(text, text.Length()));
-        }
-
-    ptiEngine->ClearCurrentWord();
-    // Closing candidate pop-up list
-    predictivePane->HideWindow();
-    iOwner->ChangeState(EInitial);
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStatePredictiveInputPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiInputStatePredictiveInputPhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputPhrase::TAknFepInputStatePredictiveInputPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateBasePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    candidatePane->SelectFirstPhrase(); 
-
-    TBool multiplePages = iOwner->PtiEngine()->MoreCandidatePages();
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    UIContainer()->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->ShowCandidateOrdinals(ETrue);
-    }
-
-TBool TAknFepInputStatePredictiveInputPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool response = ETrue;
-     
-    switch (aKey)
-        {
-    case EKeyOK:        //fall through
-    case EPtiKey0:
-    case EPtiKey1:
-    case EPtiKey2:
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-    case EPtiKey7:
-    case EPtiKey8:
-    case EPtiKey9:
-        TAknFepInputStateCandidateBasePhrase::HandleKeyL(aKey, aLength);
-        break;
-    case EKeyBackspace: //fall through
-        iOwner->FepMan()->TryCloseUiL();
-        break;
-    default:
-        response = TAknFepInputStateCandidateBasePhrase::HandleKeyL(aKey, aLength);
-        break;
-        }
-    return response;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwerty.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwerty::TAknFepInputStatePredictiveInputQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChineseBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-
-    // for some reason needs to feed back to ptiengine current Chinese char just before get the prediction
-    TPtrC text = uiContainer->CandidatePane()->CurrentCandidate();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyChineseBase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwerty::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveInputQwerty::HandleCommandL( TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyChinesePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive input qwerty chinese phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyChinesePhrase::
-TAknFepInputStatePredictiveInputQwertyChinesePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    candidatePane->SelectFirstPhrase();
-    if(iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) ||
-       iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction))
-    	{// SetPredictiveChineseChar() should be called just after call fepMan->CommitInlineEditL() usually at some where
-    	TPtrC text = candidatePane->CurrentPhraseCandidate();
-    	ptiengine->SetPredictiveChineseChar(text);
-    	}
-    
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-        UpdateIndicator();
-        }
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyChinesePhrase::HandleKeyL(TInt aKey, 
-                                                                      TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress) // launch sct table
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwertyPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyPhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyPhrase::TAknFepInputStatePredictiveInputQwertyPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBasePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    candidatePane->SelectFirstPhrase(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-        }
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress) // launch sct table
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyBasePhrase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPinyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,154 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyPinyin.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyPinyin::TAknFepInputStatePredictiveInputQwertyPinyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChineseBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-
-    // for some reason needs to feed back to ptiengine current Chinese char just before get the prediction
-    TPtrC text = uiContainer->CandidatePane()->CurrentCandidate();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyPinyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (IsValidEntryKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        if (IsValidPinyinKey(aKey))
-            {
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            // it is needed when we use phrase input engine, otherwise it seems not cleared
-            ptiengine->ClearCurrentWord(); 
-            ptiengine->ResetToneMark();
-
-            iOwner->ChangeState(EEntry);
-            ret = EFalse; //passes to entry state to handle the key
-            }
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyChineseBase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-TBool  TAknFepInputStatePredictiveInputQwertyPinyin::IsValidPinyinKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if (aKey == EPtiKeyQwertyU || aKey == EPtiKeyQwertyV ||
-        aKey == EPtiKeyQwertyI )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        response = EFalse;
-        }
-
-    return response;
-    }
-    
-TBool  TAknFepInputStatePredictiveInputQwertyPinyin::IsValidEntryKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if ((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        (aKey >= EStdKeyLeftArrow && aKey <= EStdKeyDownArrow) ||
-        (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9) ||
-         aKey == EStdKeyBackspace || aKey == EStdKeyLeftFunc ||
-         aKey == EStdKeyDevice1)
-        {
-        response = EFalse;
-        }
-
-    return response;
-    }    
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of Pinyin phrase predictive Qwerty state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>                      
-
-// User includes
-#include "AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyPhrase.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManagerUIInterface.h" 
-#include "AknFepManager.h"      
-#include "AknFepUICtrlCandidatePane.h"
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase::
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStatePredictiveInputQwertyPinyinPhrase::
-TAknFepInputStatePredictiveInputQwertyPinyinPhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePredictiveInputQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStatePredictiveInputQwertyPinyinPhrase::HandleKeyL(TInt aKey, 
-                                                                     TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (aKey == EStdKeyEnter)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        iOwner->ChangeState(EQwerty);
-        return EFalse;
-        }
-    else if (IsValidEntryKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        if (IsValidPinyinKey(aKey))
-            {
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            // it is needed when we use phrase input engine, otherwise it seems not cleared
-            ptiengine->ClearCurrentWord(); 
-            ptiengine->ResetToneMark();
-
-            iOwner->ChangeState(EEntry);
-            ret = EFalse; //passes to entry state to handle the key
-            }
-         else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDWarningTone);
-            }
-        }
-    else if (aKey == EStdKeySpace)
-        {
-        TInt index = MapKeyToIndex(EStdKeyDevice3);
-        MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-        candidatePane->SelectIndex(index);
-        TPtrC text = candidatePane->CurrentPhraseCandidate();
-        if(text.Length())
-            {            
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->NewTextL(text);
-            fepMan->CommitInlineEditL();
-            iOwner->PtiEngine()->SetPredictiveChineseChar(text);
-            if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                {
-                fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            else
-                {
-                iOwner->ChangeState(EPredictiveInput);
-                }
-            }
-        else
-            {
-            // No candidates available. Back to Entry state.
-            iOwner->ChangeState(EEntry);
-            }
-        }
-    else 
-        {
-        ret = TAknFepInputStatePredictiveInputQwertyChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-        
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase::IsValidPinyinKey
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//    
-TBool  TAknFepInputStatePredictiveInputQwertyPinyinPhrase::IsValidPinyinKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if (aKey == EPtiKeyQwertyU || aKey == EPtiKeyQwertyV ||
-        aKey == EPtiKeyQwertyI )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        response = EFalse;
-        }
-
-    return response;
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase::IsValidEntryKey
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//    
-TBool  TAknFepInputStatePredictiveInputQwertyPinyinPhrase::IsValidEntryKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if ((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        (aKey >= EStdKeyLeftArrow && aKey <= EStdKeyDownArrow) ||
-        (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9) ||
-         aKey == EStdKeyBackspace || aKey == EStdKeyLeftFunc ||
-         aKey == EStdKeyDevice1 || aKey == EStdKeySpace || 
-         aKey == EStdKeyDevice0 ||aKey == EStdKeyDevice3)
-        {
-        response = EFalse;
-        }
-
-    return response;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyPinyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveInputQwertyPinyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-    //    case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( text.Length( ) )
-                {
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL( );
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL( );
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyStroke.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive input qwertystroke state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyStroke.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyStroke::TAknFepInputStatePredictiveInputQwertyStroke(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChineseBase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->SetCandidatePageLength(MAknFepUICtrlContainerChinese::ELayoutInput);
-
-    // for some reason needs to feed back to ptiengine current Chinese char just before get the prediction
-    TPtrC text = uiContainer->CandidatePane()->CurrentCandidate();
-    uiContainer->CandidatePane()->SelectFirst(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    uiContainer->CandidatePane()->SetCandidateBuffer(ptiengine->CandidatePage());
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyStroke::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (IsValidEntryKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else if(aKey == EStdKeyDevice1)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else
-        {
-        ret = TAknFepInputStateCandidateQwertyChineseBase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-TBool  TAknFepInputStatePredictiveInputQwertyStroke::IsValidEntryKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if ((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        (aKey >= EStdKeyLeftArrow && aKey <= EStdKeyDownArrow) ||
-        (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9) ||
-         aKey == EStdKeyBackspace || aKey == EStdKeyLeftFunc ||
-         aKey == EStdKeyDevice1)
-        {
-        response = EFalse;
-        }
-
-    return response;
-    }    
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyStroke::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveInputQwertyStroke::HandleCommandL(
-    TInt aCommandId )
-    {
-    TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyStrokePhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of predictive input qwertystroke phrase state
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyStrokePhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyStrokePhrase::
-TAknFepInputStatePredictiveInputQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // set container window position to follow cursor
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    // for some reason needs to feed back to ptiengine current Chinese phrase just before get the prediction
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    candidatePane->SelectFirstPhrase(); 
-    ptiengine->SetPredictiveChineseChar(text);
-    
-    TRAPD(ignore,ptiengine->GetChinesePhraseCandidatesL(*(candidatePane->CandidateArray())));
-    if (ignore == KErrNone)
-        {
-        candidatePane->SplitPhraseCandidatesIntoPages(); 
-        uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutCandidate);
-        candidatePane->SetCandidateBuffer();
-
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-        TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-        UIContainer()->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-        UIContainer()->ShowVerticalScrollArrows(multiplePages);
-        uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-        UpdateIndicator();
-        }
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyStrokePhrase::HandleKeyL(TInt aKey, 
-                                                                     TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if (IsValidEntryKey(aKey))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress) // launch sct table
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if (aKey == EStdKeyEnter)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        iOwner->ChangeState(EQwerty);
-        return EFalse;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    
-    return ret;
-    }
-    
-TBool  TAknFepInputStatePredictiveInputQwertyStrokePhrase::IsValidEntryKey(TInt aKey)
-    {
-    TBool response = ETrue;
-
-    if ((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        (aKey >= EStdKeyLeftArrow && aKey <= EStdKeyDownArrow) ||
-        (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9) ||
-         aKey == EStdKeyBackspace || aKey == EStdKeyLeftFunc ||
-         aKey == EStdKeyDevice1 || aKey == EStdKeyDevice3 ||
-         aKey == EStdKeyDevice0)
-        {
-        response = EFalse;
-        }
-
-    return response;
-    }    
-// ---------------------------------------------------------------------------
-// TAknFepInputStatePredictiveInputQwertyStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStatePredictiveInputQwertyStrokePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-     //   case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( text.Length( ) )
-                {
-                MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-                fepMan->NewTextL( text );
-                fepMan->CommitInlineEditL( );
-                iOwner->PtiEngine()->SetPredictiveChineseChar( text );
-                if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-                    {
-                    fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-                    iOwner->FepMan()->TryCloseUiL( );
-                    }
-                else
-                    {
-                    iOwner->ChangeState( EPredictiveCandidate );
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyZhuyin.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyZhuyin.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepManagerUIInterface.h"
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyZhuyin::TAknFepInputStatePredictiveInputQwertyZhuyin(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinese(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    uiContainer->CandidatePane()->SelectFirst(); 
-
-    TBool multiplePages = ptiengine->MoreCandidatePages();
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);    
-    UpdateIndicator();
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyZhuyin::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey) && 
-            !(aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9))
-        {
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        // it is needed when we use phrase input engine, otherwise it seems not cleared
-        ptiengine->ClearCurrentWord(); 
-        ptiengine->ResetToneMark();
-
-        iOwner->ChangeState(EEntry);
-        ret = EFalse; //passes to entry state to handle the key
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyChinese::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStatePredictiveInputQwertyPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepManagerUIInterface.h"
-
-#include <PtiEngine.h>                      //CPtiEngine
-
-TAknFepInputStatePredictiveInputQwertyZhuyinPhrase::
-TAknFepInputStatePredictiveInputQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyChinesePhrase(aOwner, aUIContainer)
-    {
-    iState = EPredictiveInput;
-    
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = ptiengine->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-    
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue); 
-    UpdateIndicator();   
-    }
-
-TBool TAknFepInputStatePredictiveInputQwertyZhuyinPhrase::HandleKeyL(TInt aKey, 
-                                                                     TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))
-        {
-        return ret;
-        }
-        
-    if(aKey == EStdKeyBackspace)
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else if(aKey == EStdKeyLeftFunc && aLength == EShortKeyPress &&
-            iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagNoActionDuringChrKeyPress)) 
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->IsAbleToLaunchSCT())
-            {
-            fepMan->LaunchSpecialCharacterTableL();
-            }
-        }
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-        return ret;
-        }
-    else if(iOwner->IsValidChineseInputKeyQwerty(aKey) &&
-        !(aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9))
-        {
-        ret = ret; //passes to entry state to handle the key
-        }
-    else if (aKey == EStdKeyEnter || aKey == EStdKeySpace)
-        {
-        return ret;
-        }
-    else 
-        {
-        ret = TAknFepInputStateCandidateQwertyChinesePhrase::HandleKeyL(aKey, aLength);
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1221 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateQwerty.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <PtiKeyMappings.h>
-#include <PtiDefs.h>        
-#include <centralrepository.h> 
-#include <AknFepInternalCRKeys.h>       
-#ifdef RD_HINDI_PHONETIC_INPUT	
-#include <PtiIndicDefs.h>       
-#endif
-const TInt KEventIndexForW = 3;
-const TInt KEventIndexForP = 2;
-const TInt KPtiCapitalEIndex = 19;
-const TInt KPtiStarIndex = 0;
-const TInt KPtiPlusIndex = 1;
-const TInt KPtiMinusIndex = 18;
-const TInt KPtiCommaIndex = 17;
-const TInt KPtiHashIndex = 4;
-const TInt KMaxOutputSizeForAKeyPress = 10;
-
-_LIT(KAknFepPlainNumbers, "1234567890");
-const TInt KNumAllowedIdleNumericChars = 22;    
-const TUint16 KAllAllowedNumericChars[] =
- 	{'*','+','p','w','#','1','2','3','4','5','6','7','8','9','0', ';','.',',','-','E','?','/'};
-const TKeyEvent KEventsForSecondPass[]  = 
-	{
-		{42, EStdKeyNkpAsterisk, 3, 0}, 
-    	{43, EStdKeyNkpPlus, 3, 0},
-        {112, 80, EModifierAutorepeatable, 0},
-        {119, 87, EModifierAutorepeatable, 0},                                           
-        {35, EStdKeyHash, EModifierAutorepeatable, 0},
-        {EPtiKey1, EPtiKey1, EModifierAutorepeatable, 0},
-        {EPtiKey2, EPtiKey2, EModifierAutorepeatable, 0},
-        {EPtiKey3, EPtiKey3, EModifierAutorepeatable, 0},
-        {EPtiKey4, EPtiKey4, EModifierAutorepeatable, 0},
-        {EPtiKey5, EPtiKey5, EModifierAutorepeatable, 0},
-        {EPtiKey6, EPtiKey6, EModifierAutorepeatable, 0},
-        {EPtiKey7, EPtiKey7, EModifierAutorepeatable, 0},
-        {EPtiKey8, EPtiKey8, EModifierAutorepeatable, 0},
-        {EPtiKey9, EPtiKey9, EModifierAutorepeatable, 0},
-        {EPtiKey0, EPtiKey0, EModifierAutorepeatable, 0},
-        {59,       EStdKeySemiColon, EModifierAutorepeatable, 0},        
-        {46,       122, EModifierAutorepeatable, 0},
-        {44,       121, EModifierAutorepeatable, 0},
-   		{45,       130, EModifierAutorepeatable, 0},
-   		{101,      69,  EModifierAutorepeatable|EModifierLeftShift, 0}, 
-   		{63,       EStdKeyForwardSlash, EModifierAutorepeatable|EModifierLeftShift, 0},
-        {47,       123, EModifierAutorepeatable, 0} 
-    };
-
-const TInt KFull_SimpleSymbolMapNumber = 8;
-const TUint16 KFull_SimpleSymbolMaps[KFull_SimpleSymbolMapNumber][2] = 
-      { {0xFF0A,'*'},{0xFF0B,'+'},{0xFF0D,'-'},{0xFF03,'#'},
-        {0xFF1B,';'},{0xFF0E,'.'},{0xFF0C,','},{0x3002, '.'}};
-
-const TInt KNumCharKeyExceptions = 14;
-const TUint16 CharKeyExceptions[] = {0x00f2, 0x00e0, 0x00e8, 0x00e9, 0x00e7, 0x00f9,
-                                     0x0161, 0x010d, 0x017e, 0x00fd, 0x00e1, 0x00ed,
-                                     0x00e9, 0x00ec};
-
-TAknFepInputStateQwerty::TAknFepInputStateQwerty(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateBase(aOwner)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Predictive QWERTY (XT9) changes ---->
-    // The order of the following two commands has been swapped. This way the Xt9 core will keep its
-    // internal state while a dialog with no prediction is opened on top (like the "Edit word" query).
-    ptiengine->SetInputMode(EPtiEngineQwerty);
-    ptiengine->ClearCurrentWord();
-    // Predictive QWERTY (XT9) changes <----
-
-    MAknFepManagerUIInterface *fepMan = iOwner->FepMan();
-    TPtiKeyboardType keyLayout  = fepMan->KeyboardLayout();
-    ptiengine->SetKeyboardType(keyLayout);
-    if (keyLayout == EPtiKeyboardHalfQwerty)
-        {
-        ptiengine->SetInputMode(EPtiEngineHalfQwerty);        
-        }    
-#else 
-    ptiengine->ClearCurrentWord();
-    ptiengine->SetInputMode(EPtiEngineQwerty);
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    }
-
-TBool TAknFepInputStateQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-#endif
-    const TInt KDeleteKeyScanCode = 1;
-
-	if (aKey == KDeleteKeyScanCode 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	        || CAknFepFnKeyManager::EFnKeyNone != fnKeyState
-#endif
-	        ) 
-		{
-		// Pending dead key is handled as a special case.
-		if (ptiengine->HandleCommandL(EPtiCommandDeadKeyWaiting, NULL) == 1)
-			{
-			ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar, NULL);
-			return ETrue;
-			}			
-		if (iFakeDelete)
-			{
-			ptiengine->HandleCommandL(EPtiCommandClearVowelSeq, NULL);
-			ptiengine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar, NULL);						
-			}
-		else
-			{
-			ptiengine->HandleCommandL(EPtiCommandResetVietnameseVowelSeqAndToneMark, NULL);										
-			}
-		}
-	else if (aKey == EPtiKeyQwertySpace
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	         && (fnKeyState == CAknFepFnKeyManager::EFnKeyNone)
-#endif
-	        )
-		{
-		// Space clears vietnamese vowels and tones.
-		ptiengine->HandleCommandL(EPtiCommandResetVietnameseVowelSeqAndToneMark, NULL);								
-		}
-	if( aLength == ELongKeyPress )
-		{
-		// the vowel seq tone mark of the short key press should be reset
-		ptiengine->HandleCommandL(EPtiCommandResetVietnameseVowelSeqAndToneMark, NULL);
-		}
-	iFakeDelete = EFalse;	
-	iCharKeyException = EFalse;		
-	
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	CPtiCoreLanguage* langCur = static_cast<CPtiCoreLanguage*>(ptiengine->CurrentLanguage());	
-	TBool chinese = EFalse;
-	if(langCur->LanguageCode()==ELangPrcChinese ||
-	        langCur->LanguageCode()==ELangHongKongChinese ||
-	        langCur->LanguageCode()==ELangTaiwanChinese )
-	    {
-	    chinese = ETrue;
-	    }
-    if (chinese && fepMan->IsOnlyNumericPermitted())
-        {
-        ptiengine->ActivateLanguageL(ELangEnglish);
-        ptiengine->SetInputMode(EPtiEngineQwerty);
-        ptiengine->SetKeyboardType( iOwner->FepMan()->KeyboardLayout());
-        }
-    const TBool isQwertyKey = ptiengine->IsValidKey((TPtiKey)aKey);
-#else	
-	const TBool isQwertyKey = IsQwertyKey(aKey);
-#endif	
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (aKey == EStdKeyEnter)
-		{
-		fepMan->SimulateKeyEventL(EKeyF19); // Asynchronous case update.
-		}
-#endif	
-    
-    if ( !isQwertyKey )
-        {
-        return EFalse;
-        }
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-#endif
-    CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-
-    fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	//Reverse Fn key mapping needs to be checked.
-	if ( fepMan->IsOnlyNumericPermitted() && !fepMan->IsReverseFnkeyInput())    
-#else
-	if ( fepMan->IsOnlyNumericPermitted() )    
-#endif //__REVERSE_FN_KEY_SUPPORTED
-		{
-		if ((fnKeyState == CAknFepFnKeyManager::EFnKeyNone) && 
-		    (aKey == EStdKeySpace || aKey == EStdKeyEnter))
-#else
-	if ( fepMan->IsOnlyNumericPermitted() )    
-		{ 
-		if (aKey == EStdKeyEnter)
-			{
-			return EFalse;
-			}
-		if (aKey == EStdKeySpace)
-#endif
-			{
-			return ETrue;
-			}
-		
-		return CheckForValidNumberEntryForqwerty(aKey);
-		}    
-    
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) &&
-        iData && (iData != aKey) )
-        {
-        // Chr key is still pressed down but character key was changed from previous one
-        // to new one. The previous character is committed to the editor and we continue 
-        // prosessing new key.
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        iData = 0;
-        caseMan->UpdateCase(ENullNaviEvent); 
-        }
-
-    TBool isCharacter = ETrue;
-    if (!iData)
-        {
-        isCharacter = IsCharacterKey(aKey);
-        }
-
-	HandleCaseChange(aKey, isCharacter);
-	    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	
-	TInt origLanguage = ptiengine->CurrentLanguage()->LanguageCode();
-	TPtiEngineInputMode origInputMode = ptiengine->InputMode();
-	TBool languageChanged = EFalse;
-    // In reverse fn key mapping filter the char applicable for
-    // Numeric editor.
-    if( fepMan->IsOnlyNumericPermitted() &&  fepMan->IsReverseFnkeyInput())
-        {
-        if( !fepMan->IsValidCharForNumericInFnReverseL(aKey, iOwner->PtiEngine()->Case()) )
-            {
-             TChar chr;
-
-            if( ! TryGetValidCharForKey(aKey, chr) )
-                {
-                // If the key in not valid char in the current input language in Fn reverse mode,
-                // then we will check if against English language. And if its valid then we will
-                // insert the char based out of key for English input language and revert back 
-                // the change in input language at the end.
-
-                if(ptiengine->CurrentLanguage()->LanguageCode() == ELangEnglish)
-                    {
-                    return ETrue;
-                    }
-
-                languageChanged = ETrue;
-                ptiengine->ActivateLanguageL(ELangEnglish);
-       		    ptiengine->SetInputMode(EPtiEngineQwerty);            		
-
-                if( !fepMan->IsValidCharForNumericInFnReverseL(aKey, iOwner->PtiEngine()->Case()) )
-                    {
-                    if( ! TryGetValidCharForKey(aKey, chr) )
-	                    {
-	                    ptiengine->ActivateLanguageL(origLanguage);
-    	                ptiengine->SetInputMode(origInputMode );  
-	
-    	                return ETrue;
-    	                }
-    	            else
-    	            	{
-    	            	if(languageChanged)
-    	            		{
-        	        		ptiengine->ActivateLanguageL(origLanguage);
-            	    		ptiengine->SetInputMode(origInputMode );            		
-                			}
-
-	            		TBuf<1> buf;    
-	    	        	buf.Append(chr);
-    	    	    	fepMan->NewCharacterL(buf);
-        	    		fepMan->CommitInlineEditL();      
-	        	    	ptiengine->ClearCurrentWord();                
-    	        		iData = 0;
-        	    		ptiengine->CancelTimerActivity();
-            			return ETrue;    	                
-    	            	}
-                    }
-                }
-			else
-            	{
-	            if(languageChanged)
-    	            {
-        	        ptiengine->ActivateLanguageL(origLanguage);
-            	    ptiengine->SetInputMode(origInputMode );            		
-                	}
-
-	            TBuf<1> buf;    
-    	        buf.Append(chr);
-        	    fepMan->NewCharacterL(buf);
-            	fepMan->CommitInlineEditL();      
-	            ptiengine->ClearCurrentWord();                
-    	        iData = 0;
-        	    ptiengine->CancelTimerActivity();
-            	return ETrue;
-            	}
-            }
-        }
-    
-#endif //__REVERSE_FN_KEY_SUPPORTED
-#endif //RD_INTELLIGENT_TEXT_INPUT
-
-    iData = aKey;
-
-    TBool keyEventHandledByFep = ETrue;
-    TInt languageCode = 0;
-    MPtiLanguage* curlang = ptiengine->CurrentLanguage();
-    if (curlang)
-        {
-        languageCode = curlang->LanguageCode();
-        }
-
-   TBuf<KMaxOutputSizeForAKeyPress> filtered;   
-    if ( keyEventHandledByFep &&
-        (isCharacter || isQwertyKey) )
-        {        
-        TPtrC text;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-        TBool fnCaseActive = (ptiengine->Case()==EPtiCaseFnLower || ptiengine->Case()==EPtiCaseFnUpper);
-        if (aKey == EStdKeySpace && !fnCaseActive /*(fnKeyState == CAknFepFnKeyManager::EFnKeyNone)*/)
-
-#else
-        if (aKey == EStdKeySpace && (fnKeyState == CAknFepFnKeyManager::EFnKeyNone))
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__       
-#else 
-        if (aKey == EStdKeySpace)
-#endif
-            {
-            // PtiEngine does not have mapping for the space key.
-            TUint16 deadRoot = ptiengine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-            if (deadRoot)
-            	{
-            	// There was a dead key press waiting. Space will cancel it and
-            	// insert the root char.
-            	TBuf<1> dbuf;
-            	dbuf.Append(deadRoot);
-            	text.Set(dbuf);
-            	}
-            else
-            	{
-                _LIT(KSpaceCharacter, " ");
-            	text.Set(KSpaceCharacter);
-            	}
-            }
-        else if (aKey == EStdKeyEnter)
-            {
-            // PtiEngine does not have mapping for the enter key.
-            const TText KAknFEPLineFeedSymbol = 0x21B2;
-            TBuf<1> lineFeed;
-            lineFeed.Zero();
-            lineFeed.Append(KAknFEPLineFeedSymbol);
-            text.Set(lineFeed);
-            }
-        else
-            {
-            TPtiTextCase CurCase = ptiengine->Case();
-            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-                {
-                if(CheckForValidNumberEntryForqwerty(aKey))
-                    ptiengine->SetCase((TPtiTextCase)EPtiCaseFnLower);
-                else
-                    ptiengine->SetCase((TPtiTextCase)EPtiCaseLower);
-                } 
-            // Get keymapping from PtiEngine.                
-            text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-            // Handle all exception cases.
-            CustomFilter(text, filtered, languageCode, caseMan->CurrentCase(), 
-                    ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)|| 
-                      fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress)));                        
-            text.Set(filtered);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-			SetShortKeyPressText(text);
-            if( text.Length() == 0 ) // no mapping available
-                {
-                if( ( EStdKeySpace == aKey || EKeySpace == aKey ))
-                    {
-					// Launching the Edit menu on press of Fn key and space
-					if(fnKeyState == CAknFepFnKeyManager::EFnKeyDown)
-						fepMan->LaunchSelectModeMenuL();
-					else
-						{
-						// Editor should insert space when function key is in 
-						// locked state and space key is pressed.
-						_LIT(KSpaceCharacter, " ");
-            			text.Set(KSpaceCharacter);
-						}
-					}
-                }
-#endif
-            if(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-                ptiengine->SetCase(CurCase);
-            }
-        
-        TBuf<5> replacedText;
-        if (text.Length())
-            {
-            MPtiLanguage* lang = ptiengine->CurrentLanguage();
-            if (lang->LanguageCode() == ELangVietnamese)
-            	{
-            	 if (ptiengine->HandleCommandL(EPtiCommandGetAndClearVowelSequence, NULL) > 0)
-            	 	{
-            	 	// This key press produced Vietnamese vowel sequence.
-            	 	// Delete previous char, it will be replaced with accented char.
-            	 	// This is done by sending delete event before accented character is
-            	 	// added to buffer.
-            	 	TInt lastChar = ptiengine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar,
-            	 	                                          NULL);
-            	 	iFakeDelete = ETrue;            	 	
-            	 	TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0};        
-        	 		CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey);				 		
-        	 		// Restore last char.
-					ptiengine->HandleCommandL(EPtiCommandSetVietnameseLastChar, (TAny*)lastChar);        	 		
-            	 	}  
-            	 else 
-            	 	{            	 
-            	 	TUint16 replaced = ptiengine->HandleCommandL(EPtiCommandQueryReplacePrevious, NULL);
-            	 	if (replaced)            	 	
-            	 		{
-            	 		// Remember last key press, since delete will destroy it.
-						TInt last = ptiengine->HandleCommandL(EPtiCommandGetVietnameseLastKey, NULL);            	 		
-    					if(!fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-    					    iFakeDelete = ETrue;
- 						TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0};        
-        	 			CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey);  
-        	 			replacedText.Append(replaced);
-        	 			replacedText.Append(text);
-        	 			text.Set(replacedText);   	       	 			
-        	 			// Restore last key.
-        	 			ptiengine->HandleCommandL(EPtiCommandSetLastKeyForVietnamese, (TAny*)last);
-            	 		}            	 	
-            	 	}            	
-            	}
-            
-            // Because of dead key functionality there may be several characters waiting.
-            TBuf<1> chr;            
-            for (TInt jj = 0; jj < text.Length(); jj++)
-              	{
-              	chr.Zero();
-               	chr.Append(text[jj]);
-	            fepMan->NewCharacterL(chr);               	         	                        
-            	if ( !fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) ||
-            	     (ELongKeyPress == aLength) )
-            	    {
-               		// Commit the character if chr key is not pressed.
-               	    fepMan->CommitInlineEditL();
-               	    ptiengine->ClearCurrentWord();
-               	    iData = 0;
-                	}
-            	else
-                   {
-                   fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringChrKeyPress);
-                   }
-              	}
-            ret = ETrue;
-            }
-        else
-            {
-            if (ptiengine->HandleCommandL(EPtiCommandDeadKeyWaiting, NULL) == 1)
-            {
-            if (caseMan->CurrentCase() == EAknEditorTextCase
-             || caseMan->CurrentCase() == EAknEditorUpperCase)
-            	{
-            	ptiengine->SetCase(EPtiCaseUpper);	            	
-            	}            
-            else if (fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) || 
-                    fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress))
-            	{
-            	ptiengine->SetCase(EPtiCaseLower);	
-            	}
-           	}
-#ifdef RD_INTELLIGENT_TEXT_INPUT           	
-           	else
-           	    {
-                fepMan->SimulateKeyEventL(EKeyF19); 
-           	    }
-#endif            	
-            ret = ETrue;
-            }
-        }
-    
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-	
-    if(languageChanged)
-        {
-       	ptiengine->ActivateLanguageL(origLanguage);
-     	ptiengine->SetInputMode(origInputMode );            		
-        }
-    
-#endif //__REVERSE_FN_KEY_SUPPORTED
-#endif //RD_INTELLIGENT_TEXT_INPUT    
-
-    return ret;
-    }
-
-// Functions from MPtiObserver interface
-void TAknFepInputStateQwerty::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-        //do something if error??
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-
-        iData = 0;
-        }
-    }
-
-
-
-TBool TAknFepInputStateQwerty::IsExceptionChar(TUint16 aChar)
-	{
-    for (TInt i = 0; i < KNumCharKeyExceptions; i++)
-      	{
-       	if (CharKeyExceptions[i] == aChar)	
-       		{ 		
-       		return ETrue;
-       		}
-   		} 	
-	
-	return EFalse;		
-	}
-
-
-TBool TAknFepInputStateQwerty::IsCharacterKey(const TInt aKey)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    // Max length doesn't matter because we'll need only the first character.    
-    TBuf<KMaxName> lowerdata;   
-    
-    ptiengine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);        
-    if (lowerdata.Length() > 0)
-    	{
-        TChar lower = lowerdata[0];
-        
-        if (IsExceptionChar(lower))
-       	    {
-       	    TBuf<KMaxName> upperdata; 
-			ptiengine->MappingDataForKey((TPtiKey)aKey, upperdata, EPtiCaseUpper);                   	    
-			if (upperdata.Length() > 0)
-				{
-				TChar upperchr = upperdata[0];
-				upperchr.LowerCase();
-				if (upperchr != lower)
-					{
-		        	iCharKeyException = ETrue;       		
-	    	    	return EFalse;        													
-					}								
-				}       	    
-       		} 
-        
-    	TUint upper = lower.GetUpperCase();
-    
-	    if ( TUint(lower) != upper )
-    	    {
-   			return ETrue; 	
-       		}
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-	    //Characters from languages without case changes like Arabic/Urdu 
-	    //cannot be identified with above logic. Hence, a special check below:
-	    else if ( IsLanguageWithoutCaseChanges() && fepMan->IsOnlyNumericPermitted() && lower.IsAlpha() )
-	        {
-	        return ETrue;
-	        }
-#endif
-     	}
-    
-    return EFalse;
-    }
-
-TBool TAknFepInputStateQwerty::IsNumberKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-TBool TAknFepInputStateQwerty::IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        IsNumberKey( aKey ) ||
-        aKey == EStdKeySpace ||
-        aKey == EStdKeyEnter ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        || aKey == EPtiKeyQwertyAtCharacter
-#endif 
-        )
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TBool TAknFepInputStateQwerty::IsCharacterNumber(TChar aChar)
-    {
-    TBool isNumber;
-    isNumber =     (iOwner->NumberModeKeyMapping().Locate(aChar) != KErrNotFound) || 
-        (KAknFepPlainNumbers().Locate(aChar) != KErrNotFound) || 
-        iOwner->FepMan()->IsAllowedKeymappingForNumberMode(aChar);
-    return isNumber;
-    }
-#endif
-        
-void TAknFepInputStateQwerty::NumericCharacterForQwertyKey(TInt aInScanCode,
-                                                           TKeyEvent& aEvent,
-                                                           TBool aShifted, TChar& aResult)
-	{  
- 	CPtiEngine* ptiengine = iOwner->PtiEngine();	
-#ifdef RD_INTELLIGENT_TEXT_INPUT
- 	MAknFepManagerUIInterface *fepMan = iOwner->FepMan();			
-#endif
-	aResult = 0;
-	TUint16 firstChar;
-	
-	const TInt KMaxNumCharsPerCase = 50;
-	TBuf<KMaxNumCharsPerCase> keys;	
-	TInt langCode = 0;
-	
-	CPtiCoreLanguage* lang = static_cast<CPtiCoreLanguage*>(ptiengine->CurrentLanguage());		
-	if (lang)
-		{
-		langCode = lang->LanguageCode();
-		if (langCode == ELangFarsi || langCode == ELangUrdu || langCode == ELangHindi 
-		 || langCode == ELangPrcChinese || langCode == ELangHongKongChinese 
-		 || langCode == ELangTaiwanChinese || langCode == ELangArabic
-		 || TAknFepUiIndicInputManager :: IsIndicLangauge((TLanguage) langCode )
-#ifdef RD_HINDI_PHONETIC_INPUT	
-		 || TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage( (TLanguage)langCode )
-#endif
-		)
-			{
-			lang = static_cast<CPtiCoreLanguage*>(ptiengine->GetLanguage(ELangEnglish));			
-			}				
-		}
-	
-	if (lang)
-		{
-		
-		// If the key have scancode EPtiKeyQwertyW, EPtiKeyQwertyP map to any valid
-		// numeric character that valid numeric character never be inserted.
-		// Earlier this was not happening, because key map with numeric key always
-
-		
-		CPtiQwertyKeyMappings* maps = static_cast<CPtiQwertyKeyMappings*>(lang->GetQwertyKeymappings());
-        TBool keyNotMapToNumeric(ETrue);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if(maps)
-            {
-            maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseFnLower);
-            keyNotMapToNumeric = !(keys.Length() && IsCharacterNumber(keys[0]));
-            }
-#endif
-		
-		if (keyNotMapToNumeric && langCode == ELangVietnamese && aInScanCode == EPtiKeyQwertyW &&
-			!aShifted)
-			{
-			// This is handled as a special case because 'w' is normally produced by double press
-			// of w-key in Vitenamese but in number mode that can't be done.
-			aResult = 'w';
-			aEvent = KEventsForSecondPass[KEventIndexForW];
-			return;
-			}
-			
-		if (langCode == ELangHindi 
-#ifdef RD_MARATHI
-		|| langCode == ELangMarathi
-#endif // RD_MARATHI
-		    )
-			{
-			if (aInScanCode == EPtiKeyQwertyPlus && aShifted)
-				{
-				aResult = '-';
-				aEvent = KEventsForSecondPass[KPtiMinusIndex];
-				return;													
-				}
-			else if (aInScanCode == EPtiKeyQwertyMinus && !aShifted)
-				{
-				return;
-				}				
-			}
-			
-		if (langCode == ELangArabic)
-			{				
-			if (aInScanCode == EPtiKeyQwertyComma && !aShifted)			
-				{
-				aResult = ',';
-				aEvent = KEventsForSecondPass[KPtiCommaIndex];
-				return;					
-				}				
-			else if (aInScanCode == EPtiKeyQwertyE && aShifted)	
-				{				
-				aResult = 'E';
-				aEvent = KEventsForSecondPass[KPtiCapitalEIndex];
-				return;									
-				}				
-			}
-			
-		if (langCode == ELangFarsi)	
-			{
-			// Farsi uses english numeric keymappings with following exceptions.
-			if ((aInScanCode == EPtiKeyQwertyPlus && !aShifted) ||
-			    (aInScanCode == EPtiKeyQwertyComma && !aShifted))
-				{
-				return;   // Block
-				}
-			
-			if (aInScanCode == EPtiKeyQwerty7 && aShifted)
-				{
-				aResult = '*';
-				aEvent = KEventsForSecondPass[KPtiStarIndex];
-				return;					
-				}
-			if (aInScanCode == EPtiKeyQwerty8 && aShifted)
-				{
-				aResult = '-';
-				aEvent = KEventsForSecondPass[KPtiMinusIndex];
-				return;					
-				}				
-			if (aInScanCode == EPtiKeyQwerty9 && aShifted)
-				{
-				aResult = '+';
-				aEvent = KEventsForSecondPass[KPtiPlusIndex];
-				return;									
-				}				
-			if (aInScanCode == EPtiKeyQwerty2 && aShifted)
-				{
-				aResult = ',';
-				aEvent = KEventsForSecondPass[KPtiCommaIndex];
-				return;									
-				}								
-			}
-		else if (langCode == ELangUrdu)	
-			{
-			// urdu uses english numeric keymappings with following exceptions.	
-			if (aInScanCode == EPtiKeyQwerty0 && aShifted)
-				{
-				aResult = '+';
-				aEvent = KEventsForSecondPass[KPtiPlusIndex];
-				return;					
-				}			
-			if (aInScanCode == EPtiKeyQwerty3 && aShifted)
-				{
-				aResult = '#';
-				aEvent = KEventsForSecondPass[KPtiHashIndex];
-				return;					
-				}			
-			if (aInScanCode == EPtiKeyQwertyP)
-				{
-				if (iOwner->NumberModeKeyMapping().Locate('p') == KErrNotFound)
-					{
-					if (!aShifted)
-						{
-						aResult = '-';
-						aEvent = KEventsForSecondPass[KPtiMinusIndex];
-						return;											
-						}
-					else
-						{											
-						return;																	
-						}
-					}
-				else
-					{
-					if (aShifted)
-						{
-						aResult = '-';
-						aEvent = KEventsForSecondPass[KPtiMinusIndex];
-						return;															
-						}
-					else
-						{
-						aResult = 'p';
-						aEvent = KEventsForSecondPass[KEventIndexForP];
-						return;					
-						
-						}					
-					}									
-				}							
-			}
-		
-		// Handle other languages, which don't have 'p' and 'w' in normal keymapping data.		
-		
-        if( keyNotMapToNumeric &&
-		    (langCode == ELangGreek || langCode == ELangRussian ||
-		    langCode == ELangArabic || langCode == ELangHebrew || 
-		    langCode == ELangBulgarian || langCode == ELangThai ||
-		    langCode == ELangUkrainian) && !aShifted)	
-		   {
-		   if (aInScanCode == EPtiKeyQwertyW)
-		   	   {
-		   	   aResult = 'w';
-			   aEvent = KEventsForSecondPass[KEventIndexForW];
-			   return;
-		   	   }
-		   else if (aInScanCode == EPtiKeyQwertyP)
-		       {
-	   	   	   aResult = 'p';
-			   aEvent = KEventsForSecondPass[KEventIndexForP];
-			   return;		   		
-		   	   }		   		   
-		   }
-							
-
-		if (maps)
-			{
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            if(aShifted)
-                {
-                maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseUpper);
-                }
-            else
-                {            
-                maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseFnLower);
-                if( !(keys.Length() && IsCharacterNumber(keys[0])))
-                    maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseFnUpper);
-                if( !(keys.Length() && IsCharacterNumber(keys[0])))
-                    maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseLower);
-                if( !(keys.Length() && IsCharacterNumber(keys[0])))
-                    maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseUpper);                
-                if( !(keys.Length() && IsCharacterNumber(keys[0])))
-                    keys.SetLength(0);
-                }
-                          
-#else 
-			if (aShifted)
-				{
-				maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseUpper);				
-				}
-			else
-				{
-				maps->GetDataForKey((TPtiKey)aInScanCode, keys, EPtiCaseLower);				
-				}
-#endif
-			if ( keys.Length() > 0 )
-			    {
-        		switch (keys[0])		
-        			{
-        			case KPtiPinyinMarker:
-        			case KPtiStrokeMarker:
-        			case KPtiZhuyinMarker:
-        			case KPtiCangjieMarker:
-					case KPtiGetAllMarker:        			
-        			     if (keys.Length() > 1)
-        			        firstChar = keys[1];
-        			     else
-        			        firstChar = 0;
-        			     break;
-        			default:			     
-        				 firstChar =  keys[0];			     
-        			}
-        						
-                for (TInt j = 0; j < KFull_SimpleSymbolMapNumber; j++)
-                    {
-                    if (firstChar == KFull_SimpleSymbolMaps[j][0])
-                        {
-                        firstChar = KFull_SimpleSymbolMaps[j][1];
-                        break;
-                        }             
-                    }  
-                    										
-			for (TInt i = 0; i < KNumAllowedIdleNumericChars; i++)
-				{			
-				if (firstChar == KAllAllowedNumericChars[i])								
-					{
-					aEvent = KEventsForSecondPass[i];
-					aResult = KAllAllowedNumericChars[i];																					
-					break;						
-						}									
-					}						
-			    }			    
-			}
-		}			
-	}    
-        
-           
-    
-void TAknFepInputStateQwerty::CustomFilter(TPtrC aInput, TDes& aOutput, TInt /*aLanguage*/, 
-                                           TInt aCurrentCase, TBool /*aShiftDown*/)
-    {   
-    aOutput.Zero();
-    
-    if (aInput.Length() && aInput.Length() <= aOutput.MaxLength())
-        {
-        aOutput.Copy(aInput);       
-        }
-
-    if (aOutput.Length())       
-        {      
-        if (aCurrentCase == EAknEditorTextCase || aCurrentCase == EAknEditorUpperCase)
-            {                                  
-            if (iCharKeyException && IsExceptionChar(aOutput[0]))
-            	{           
-            	TChar chr = aOutput[0];
-            	chr.UpperCase();
-            	aOutput[0] = chr;            	
-            	}
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-            else if (aLanguage == ELangCzech)	
-            	{
-            	if (aOutput[0] == '/' && !aShiftDown)
-            		{
-            		aOutput[0] = 0x00c4;
-            		}				   			            		            		            	            	
-            	}                                                  
-#endif // RD_INTELLIGENT_TEXT_INPUT
-            }
-        }       
-    }
-    
-void TAknFepInputStateQwerty::HandleCaseChange(TInt aKey, TBool aIsCharacter)
-	{
-    TPtiTextCase caseMode = EPtiCaseLower;
-
-    if (aIsCharacter)
-        {
-        if( !( iOwner->FepMan()->IsOnlyNumericPermitted() && !IsNumberKey(aKey) ) )
-        	{
-        	switch(iOwner->CaseMan()->CurrentCase())
-           		{
-            	case EAknEditorLowerCase:
-                	caseMode = EPtiCaseLower;
-	                break;            
-    	        case EAknEditorTextCase:
-        	    case EAknEditorUpperCase:
-            	   caseMode = EPtiCaseUpper;
-	            default:
-    	           break;
-        	    }
-        	}
-        else
-        	{
-        	caseMode = iOwner->PtiEngine()->Case();
-        	}
-       	}
- 
-    TPtiTextCase shiftedCase = caseMode;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    
-    // If Fn key state is EFnKeyNone, Synchronise PtiEngine Textcase 
-    if( CAknFepFnKeyManager::EFnKeyNone == iOwner->FepMan()->FnKeyState() )
-        {
-        iOwner->PtiEngine()->SetCase((TPtiTextCase)EPtiCaseLower);
-        }
-    else
-        {
-        if( (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) ))
-            {
-            iOwner->PtiEngine()->SetCase((TPtiTextCase)EPtiCaseFnUpper);
-            }        
-            
-        TPtiTextCase curCase = iOwner->PtiEngine()->Case();
-        if( EPtiCaseFnUpper  == curCase || EPtiCaseFnLower  == curCase )
-    	    {    	    
-    		if( EPtiCaseFnUpper == curCase )
-    			{
-    	    	TBuf<32> keyMappings;
-    	    	iOwner->PtiEngine()->MappingDataForKey( (TPtiKey)aKey, keyMappings, EPtiCaseFnUpper);
-    			
-    			if( keyMappings.Length() == 0)	
-    				{
-    		    	iOwner->PtiEngine()->SetCase((TPtiTextCase)EPtiCaseFnLower);
-    				}
-    			}    	    
-    	    return;	      	
-    	    }
-        }
-#endif
-    if ( (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)||
-          iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) )&& 
-       ( !aIsCharacter || iOwner->CaseMan()->IsAbleChangeCase() ) )
-        {
-        // Case mode is changed to opposite because shift key is/was pressed and
-        // in case of character key case changes are allowed. In case of
-        // number or special key, shift mode is used always when 
-        // shift key is pressed
-        switch ( caseMode )
-            {
-            case EPtiCaseUpper:
-                shiftedCase = EPtiCaseLower;
-                break;
-            case EPtiCaseLower:
-                shiftedCase = EPtiCaseUpper;
-                break;
-            default:
-                break;
-            }
-        }
-    
-    if ( iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) )
-        {
-        // Chr key is pressed down. Chr mode is used.
-        if (shiftedCase == EPtiCaseLower)
-            {
-            shiftedCase = EPtiCaseChrLower;
-            }
-        else if (shiftedCase == EPtiCaseUpper)
-            {
-            shiftedCase = EPtiCaseChrUpper;
-            }
-        }
-    
-    iOwner->PtiEngine()->SetCase(shiftedCase);
-	
-	}
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TBool TAknFepInputStateQwerty::TryGetValidCharForKey(const TInt& aKey, TChar& aChar)
-    {    
-    if( ! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseLower) )
-        {
-        if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseUpper))
-            {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            //Do not check for FnUpper and FnLower case for Greek/Cyrillic/Hebrew script.
-            //This is for handling special characters in numeric editors.
-            if ( IsSpecialNonLatinScript() )
-                {
-                return EFalse;
-                }
-#endif
-            if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseFnLower))
-                {
-                if(! TryGetValidCharForKeyAndCase( aKey, aChar, EPtiCaseFnUpper))
-                	{
-                	return EFalse;	
-                	}
-                }
-            }
-        }
-    return ETrue;
-    }
-    
-TBool TAknFepInputStateQwerty::TryGetValidCharForKeyAndCase(const TInt& aKey, TChar& aChar, TPtiTextCase aCase)
-    {
-    TBuf<KMaxName> mappedCharacters;
-
-    iOwner->PtiEngine()->MappingDataForKey((TPtiKey)aKey, mappedCharacters, aCase);        
-    for (TInt i = 0; i < mappedCharacters.Length(); i++ )
-        {
-        if( iOwner->FepMan()->IsValidCharInNumericEditorL( mappedCharacters[i] ) )
-            {
-            aChar = mappedCharacters[i];
-            return ETrue;
-            }
-        }    
-    return EFalse;
-    }	
-
-TBool TAknFepInputStateQwerty::IsLanguageWithoutCaseChanges()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt currLanguageCode = ptiengine->CurrentLanguage()->LanguageCode();
-    //update below list as and when required.
-    if (    ELangArabic == currLanguageCode ||
-            ELangFarsi == currLanguageCode ||
-            ELangHebrew == currLanguageCode ||
-            ELangHindi == currLanguageCode ||
-            ELangUrdu == currLanguageCode
-        )
-        {
-        return ETrue;
-        }
-    return EFalse;        
-    }
-
-TBool TAknFepInputStateQwerty::IsSpecialNonLatinScript()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TInt currLanguageCode = ptiengine->CurrentLanguage()->LanguageCode();
-    //update below list as and when required.
-    if (    ELangGreek == currLanguageCode ||
-            ELangRussian == currLanguageCode ||
-            ELangUkrainian == currLanguageCode ||
-            ELangBulgarian == currLanguageCode ||
-            ELangHebrew == currLanguageCode 
-        )
-        {
-        return ETrue;
-        }
-    return EFalse;    
-    }
-#endif
-
-TBool TAknFepInputStateQwerty::CheckForValidNumberEntryForqwerty(TInt aKey)
-    {
-    TChar chr;							
-    TKeyEvent numKey;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    NumericCharacterForQwertyKey(aKey, numKey,
-                                 ( fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)|| 
-                                       fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) ), chr);																							 	
-    if ((chr != 0) &&
-        ((iOwner->NumberModeKeyMapping().Locate(chr) != KErrNotFound) ||
-         (KAknFepPlainNumbers().Locate(chr) != KErrNotFound)) ||
-         fepMan->IsAllowedKeymappingForNumberMode(chr)) 
-        {					
-        if (chr == 'E')
-            {
-            TBuf<1> chrTmp;
-            chrTmp.Append(chr);
-            fepMan->NewCharacterL(chrTmp);               	         	                        
-            fepMan->CommitInlineEditL();			
-            }
-        else
-            {							
-            // If editor is in number mode and incoming key press would produce
-            // any of the allowed number mode characters, 
-            // resend suitable key event let it pass through FEP. That way phone idle
-            // receives the event too. This also takes care of remapping
-            // different qwerty keymap layouts to edwin events.
-            if(!(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric()))
-                fepMan->SetFlag(CAknFepManager::EFlagPassNextKey);   						 			
-            CPtiEngine* ptiengine = iOwner->PtiEngine();
-            CPtiCoreLanguage* lang = static_cast<CPtiCoreLanguage*>(ptiengine->CurrentLanguage());
-            
-            if (lang && (numKey.iScanCode >= EPtiKeyQwerty0 && numKey.iScanCode <= EPtiKeyQwerty9))
-                {
-                const TInt langCode = lang->LanguageCode();
-                    
-                if(langCode == ELangUrdu || langCode == ELangFarsi)
-                    {
-                    numKey.iCode += KLatinToEasternArabicIndicDigitsDelta;
-                    numKey.iModifiers = numKey.iModifiers|EModifierSpecial;	
-                    }
-                else if (langCode == ELangArabic && fepMan->ArabicIndicDigitsInUse())
-                    {
-                    numKey.iCode += KLatinToArabicIndicDigitsDelta;
-                    numKey.iModifiers = numKey.iModifiers|EModifierSpecial;
-                    }
-                else if(TAknFepUiIndicInputManager::IsIndicLangauge(TLanguage(langCode))
-#ifdef RD_HINDI_PHONETIC_INPUT
-                || TAknFepUiIndicInputManager::IsIndicPhoneticLanguage(TLanguage(langCode))
-#endif
-                )
-                    {
-                    numKey.iCode += KLatinToDevanagariDigitsDelta;							
-                    numKey.iModifiers = numKey.iModifiers|EModifierSpecial;							
-                    }
-                }
-            // Disable UI framewroks's qwerty iCode conversion for simulated event.	
-            numKey.iModifiers |= EModifierSpecial;					
-            if(!(fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric()))
-                {
-                CCoeEnv::Static()->SimulateKeyEventL(numKey, EEventKey);                        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                CCoeEnv::Static()->SimulateKeyEventL(numKey, EEventKeyUp);
-#endif
-                }
-            }
-        }										  						 	                                  
-						
-    if((fepMan->IsHybridAplhaEditor() && !fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-                &&(numKey.iCode == 112 /*p*/ || numKey.iCode == 119/*w*/))
-        return EFalse;    
-    else if(!fepMan->IsHybridAplhaEditor() || fepMan->IsHybridAlphaModeChangedtoAplhanumeric())
-        return ETrue;
-    else if(!fepMan->IsHybridAlphaModeChangedtoAplhanumeric() && 
-            (chr !=0 || (chr==0 && fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))))
-        return ETrue;
-    else
-        return EFalse; 
-    }
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateStrokeFindQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,183 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateStrokeFindQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStatelStrokeFindQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-
-#include <e32keys.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-
-TAknFepInputStateStrokeFindQwerty::TAknFepInputStateStrokeFindQwerty(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseFindQwerty(aOwner, aUIContainer)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineStrokeQwerty);
-    }
-                                
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TAknFepInputStateStrokeFindMiniQwerty::TAknFepInputStateStrokeFindMiniQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericQwerty(aOwner, aMode)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineStrokePhraseQwerty);
-
-    iOwner->PtiEngine()->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateStrokeFindMiniQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CAknFepFnKeyManager::TFnKeyState fnKeyState  = fepMan->FnKeyState();
-    TBool ret = EFalse;
-
-    if (aLength == EShortKeyPress && CAknFepFnKeyManager::EFnKeyNone
-            == iOwner->FepMan()->FnKeyState()
-            && iOwner->IsValidChineseInputKeyQwerty(aKey))
-        {
-        HandleCaseChange(aKey, ETrue);
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        TPtrC text = ptiengine->GetPhoneticSpelling(1);
-
-        if (text.Length())
-            {
-            fepMan->NewCharacterL(text);
-            fepMan->CommitInlineEditL();
-            ptiengine->ClearCurrentWord();
-            ret = ETrue;
-            }
-        }
-    else if ( CAknFepFnKeyManager::EFnKeyNone == fnKeyState 
-    		&& (aLength == EShortKeyPress && aKey >=EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ ))
-    	{
-    	ret = ETrue;
-    	}
-    else if ( fnKeyState != CAknFepFnKeyManager::EFnKeyNone 
-    		&& aKey >=EPtiKeyQwertyA 
-    		&& aKey <= EPtiKeyQwertyZ )
-    	{
-    	ret = TAknFepInputStateQwerty::HandleKeyL( aKey, aLength );
-    	}
-    else
-        {
-        return TAknFepInputStateInitialChineseGenericQwerty::HandleKeyL(aKey,
-                aLength);
-        }
-    return ret;
-    } 
-
-
-
-#ifdef __HALF_QWERTY_KEYPAD
-TAknFepInputStateStrokeFindHalfQwerty::TAknFepInputStateStrokeFindHalfQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericHalfQwerty(aOwner, aMode)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineStrokePhraseHalfQwerty);
-
-    iOwner->PtiEngine()->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateStrokeFindHalfQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (iOwner->IsValidChineseInputKeyQwerty(aKey)
-            && CAknFepFnKeyManager::EFnKeyNone == iOwner->FepMan()->FnKeyState() && aLength == EShortKeyPress)
-        {
-
-        ptiengine->SetCase(EPtiCaseLower);
-        ptiengine->SetInputMode(EPtiEngineStrokePhraseHalfQwerty);
-
-        ptiengine->AppendKeyPress((TPtiKey)aKey);
-        TPtrC text = ptiengine->GetPhoneticSpelling(1);
-
-        if (text.Length())
-            {
-			fepMan->StartInlineEditL();
-			fepMan->UpdateInlineEditL(text,0);
-			fepMan->CommitInlineEditL();
-//            fepMan->NewCharacterL(aText);
-//            fepMan->CommitInlineEditL();
-//            ptiengine->ClearCurrentWord();
-            ret = ETrue;
-            }
-        }
-    else if( iOwner->IsValidChineseInputKeyQwerty(aKey) && aLength == ELongKeyPress )
-    	{   	
-    	TPtrC text;
-        TBuf<5> allFnMappedCharacters;
-        ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-        text.Set(allFnMappedCharacters);
-        if (text.Length())
-        	{
-        	TBuf<1> chr;   
-            chr.Append( text[0] );
-            fepMan->RemovePreviousCharacterL();
-            fepMan->NewCharacterL(chr);
-            fepMan->CommitInlineEditL();      
-            ptiengine->ClearCurrentWord();                
-            iData = 0;
-        	}                                 
-        ret = ETrue;
-    	}
-    else
-        {
-        TPtiTextCase caseMode = ptiengine->Case();
-        if (ptiengine->InputMode()!=EPtiEngineHalfQwerty)
-            {
-            ptiengine->ClearCurrentWord();
-            ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-            }
-        ptiengine->SetCase(caseMode);
-        
-        return TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyL(
-                aKey, aLength);
-                
-                
-        /*if (fepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNext)
-                    fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);*/
-        }
-
-    return ret;
-    }
-#endif
-
-#endif 
-// End of file
--- a/fep/aknfep/src/AknFepUiInputStateZhuyinFindQwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-/*
-* Copyright (c) 2005 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 TAknFepInputStateZhuyinFindQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateZhuyinFindQwerty.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepCaseManager.h"
-
-#include <e32keys.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-
-TAknFepInputStateZhuyinFindQwerty::TAknFepInputStateZhuyinFindQwerty(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer) :
-    TAknFepInputStateChineseFindQwerty(aOwner, aUIContainer)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineZhuyinQwerty);
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TAknFepInputStateZhuyinFindMiniQwerty::TAknFepInputStateZhuyinFindMiniQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericQwerty(aOwner, aMode)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->SetInputMode(EPtiEngineInputModeZhuyinMiniQwertyFind);
-    ptiengine->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateZhuyinFindMiniQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (iData != aKey)
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        CAknFepCaseManager* caseMan = iOwner->CaseMan();
-        caseMan->UpdateCase(ENullNaviEvent);
-        }
-
-    iData = aKey;
-    if ( aLength == EShortKeyPress && CAknFepFnKeyManager::EFnKeyNone
-        == iOwner->FepMan()->FnKeyState() && (!fepMan->IsFlagSet(
-        CAknFepManager::EFlagQwertyShiftMode
-            | CAknFepManager::EFlagShiftKeyDepressed )) )
-        {
-        if (ptiengine->InputMode()!= EPtiEngineInputModeZhuyinMiniQwertyFind)
-            {
-            ptiengine->SetInputMode(EPtiEngineInputModeZhuyinMiniQwertyFind);
-            }
-        switch (aKey)
-            {
-            case EPtiKeyQwerty1:
-                aKey = EPtiKeyQwertyQ;
-                break;
-            case EPtiKeyQwerty2:
-                aKey = EPtiKeyQwertyW;
-                break;
-            case EPtiKeyQwerty3:
-                aKey = EPtiKeyQwertyE;
-                break;
-            case EPtiKeyQwerty4:
-                aKey = EPtiKeyQwertyR;
-                break;
-            case EPtiKeyQwerty5:
-                aKey = EPtiKeyQwertyT;
-                break;
-            case EPtiKeyQwerty6:
-                aKey = EPtiKeyQwertyY;
-                break;
-            case EPtiKeyQwerty7:
-                aKey = EPtiKeyQwertyU;
-                break;
-            case EPtiKeyQwerty8:
-                aKey = EPtiKeyQwertyI;
-                break;
-            case EPtiKeyQwerty9:
-                aKey = EPtiKeyQwertyO;
-                break;
-            case EPtiKeyQwerty0:
-                aKey = EPtiKeyQwertyP;
-                break;
-            default:
-                break;
-            }
-
-        if (aKey == EPtiKeyQwertyE || aKey == EPtiKeyQwertyR || aKey
-                == EPtiKeyQwertyY || aKey == EPtiKeyQwertyU)
-            {
-            ret= ETrue;
-            }
-        else if (iOwner->IsValidChineseInputKeyQwerty(aKey) )
-            {
-        	HandleCaseChange(aKey, ETrue);
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                ret = ETrue;
-                }
-            }
-        else if (aKey == EStdKeyBackspace)
-            {
-            iOwner->PtiEngine()->DeleteKeyPress();
-            }
-        else if ( EPtiKeyQwertyComma == aKey )
-        	{
-        		//show the width comma 
-            TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            if (text.Length())
-                {
-                fepMan->NewCharacterL(text);
-                ret = ETrue;
-                }
-        	}
-        }
-    else
-        {
-        ptiengine->SetInputMode( EPtiEngineZhuyinPhraseQwerty );
-        ptiengine->ClearCurrentWord();        
-        if ( !fepMan->IsFlagSet( CAknFepManager::EFlagQwertyShiftMode
-            | CAknFepManager::EFlagShiftKeyDepressed ) )
-            {
-            // the case for Fn mode
-            fepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNext );
-            }
-        ret = TAknFepInputStateInitialChineseGenericQwerty::HandleKeyL( aKey,
-            aLength );
-        }
-    return ret;
-    }
-
-void TAknFepInputStateZhuyinFindMiniQwerty::KeyTimerExpired()
-    {
-
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL())
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        }
-
-    }
-
-#ifdef __HALF_QWERTY_KEYPAD
-
-TAknFepInputStateZhuyinFindHalfQwerty::TAknFepInputStateZhuyinFindHalfQwerty(
-        MAknFepUIManagerStateInterface* aOwner, TInt aMode) :
-    TAknFepInputStateInitialChineseGenericHalfQwerty(aOwner, aMode)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-
-    ptiengine->SetInputMode(EPtiEngineZhuyinPhraseHalfQwerty);
-    ptiengine->SetKeyboardType(iOwner->FepMan()->KeyboardLayout());
-
-    }
-
-TBool TAknFepInputStateZhuyinFindHalfQwerty::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        fepMan->ClearFlag(
-                CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-        }
-
-    iData = aKey;
-    
-    if (IsValidZhuyinKey(aKey) && CAknFepFnKeyManager::EFnKeyNone
-			== iOwner->FepMan()->FnKeyState() && aLength == EShortKeyPress )
-		{
-		TPtrC text;
-		switch (aKey)
-			{
-			case EPtiKeyQwertyE:
-				aKey = EPtiKey1;
-				break;
-			case EPtiKeyQwertyT:
-                aKey = EPtiKey2;
-                break;
-            case EPtiKeyQwertyU:
-                aKey = EPtiKey3;
-                break;
-            case EPtiKeyQwertyD:
-                aKey = EPtiKey4;
-                break;
-            case EPtiKeyQwertyG:
-                aKey = EPtiKey5;
-                break;
-            case EPtiKeyQwertyJ:
-                aKey = EPtiKey6;
-                break;
-            case EPtiKeyQwertyC:
-                aKey = EPtiKey7;
-                break;
-            case EPtiKeyQwertyB:
-                aKey = EPtiKey8;
-                break;
-            case EPtiKeyQwertyM:
-                aKey = EPtiKey9;
-                break;
-            case EPtiKeyQwertySpace:
-                aKey = EPtiKey0;
-                break;
-			default:
-				break;
-			}
-			ptiengine->SetCase(EPtiCaseLower);
-			ptiengine->SetInputMode(EPtiEngineZhuyinPhraseHalfQwerty);
-			text.Set(ptiengine->AppendKeyPress((TPtiKey)aKey));
-			if (text.Length())
-				{
-				fepMan->StartInlineEditL();
-				fepMan->UpdateInlineEditL(text,0);
-				fepMan->CommitInlineEditL();
-				ret = ETrue;
-				}
-			}
-    else if ( IsValidZhuyinKey(aKey) && aLength == ELongKeyPress)
-    	{
-    	TPtrC text;
-        TBuf<5> allFnMappedCharacters;
-        ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-        text.Set(allFnMappedCharacters);
-        if (text.Length())
-        	{
-        	TBuf<1> chr;   
-            chr.Append( text[0] );
-            fepMan->RemovePreviousCharacterL();
-            fepMan->NewCharacterL(chr);
-            fepMan->CommitInlineEditL();      
-            ptiengine->ClearCurrentWord();                
-            iData = 0;
-        	}                                 
-        ret = ETrue;
-    	}
-    else if (IsValidZhuyinKey(aKey) && aLength == ELongKeyPress
-            && CAknFepFnKeyManager::EFnKeyLock
-                    != iOwner->FepMan()->FnKeyState())
-        {
-        ret = EFalse;
-        }
-    else if (fepMan->EditorHasFreeSpace())
-        {
-        TPtiTextCase caseMode = ptiengine->Case();
-        if (ptiengine->InputMode() != EPtiEngineHalfQwerty)
-            {
-            ptiengine->ClearCurrentWord();
-            ptiengine->SetInputMode(EPtiEngineHalfQwerty);
-            }
-        ptiengine->SetCase(caseMode);
-
-        ret = TAknFepInputStateInitialChineseGenericHalfQwerty::HandleKeyL(
-                aKey, aLength);          
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateZhuyinFindHalfQwerty::KeyTimerExpired
-// 
-// Functions from MPtiObserver interface
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateZhuyinFindHalfQwerty::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        if (fepMan->EditorHasFreeSpace())
-            {
-                TRAP_IGNORE(fepMan->CommitInlineEditL())
-            }
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        fepMan->ClearFlag(
-                CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        CAknFepFnKeyManager::TFnKeyState fnKeyState = fepMan->FnKeyState();
-        if ( !fepMan->IsFlagSet(CAknFepManager::EFlagLongShiftKeyPress) )
-            {
-            if (fnKeyState == CAknFepFnKeyManager::EFnKeyNext)
-                fepMan->SetFnKeyState(CAknFepFnKeyManager::EFnKeyNone);
-            }
-        }
-    }
-
-TBool TAknFepInputStateZhuyinFindHalfQwerty::IsValidZhuyinKey(TInt aKey)
-    {
-    if (aKey == EPtiKeyQwertyE|| aKey == EPtiKeyQwertyT|| aKey
-            == EPtiKeyQwertyU|| aKey == EPtiKeyQwertyD|| aKey
-            == EPtiKeyQwertyG|| aKey == EPtiKeyQwertyJ|| aKey
-            == EPtiKeyQwertyC|| aKey == EPtiKeyQwertyB|| aKey
-            == EPtiKeyQwertyM|| aKey == EPtiKeyQwertySpace)
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-
-    }
-#endif //__HALF_QWERTY_KEYPAD
-
-#endif //RD_INTELLIGENT_TEXT_INPUT
-// End of file
--- a/fep/aknfep/src/AknFepUiInputstateInitialStrokeFind.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialStrokeFind methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUiInputStateInitialStrokeFind.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManagerUIInterface.h"
-
-#include <e32keys.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>                //keys
-
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-
-TAknFepInputStateInitialStrokeFind::TAknFepInputStateInitialStrokeFind(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    iState = EInitial;
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineStroke);
-    }
-
-TBool TAknFepInputStateInitialStrokeFind::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-    
-    if (aKey == EKeyBackspace || aKey == EKeyOK)
-        {
-        ret = EFalse;
-        }
-    
-    else if (aLength == EShortKeyPress) 
-        {
-        if (aKey == EPtiKeyStar)
-            {
-       	    if (fepMan->EditSubmenuInUse())
-        	    {
-				fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-        	    return ret;
-        	    }                        
-            else if (fepMan->IsAbleToLaunchSCT())
-                {
-                fepMan->LaunchSpecialCharacterTableL();
-                }    
-            }   
-        else if (iOwner->IsValidChineseInputKey(aKey))
-            {
-            ptiengine->AppendKeyPress((TPtiKey)aKey);
-            TPtrC text = ptiengine->GetPhoneticSpelling(1);
-
-            if(text.Length()) 
-                {
-                fepMan->NewCharacterL(text);
-                fepMan->CommitInlineEditL();
-                ptiengine->ClearCurrentWord();
-                }
-            else
-                {
-                ret = EFalse;
-                }
-            }
-        }
-    else
-        {
-        if (aKey == EPtiKeyStar)
-            {
-            if (fepMan->EditSubmenuInUse())
-            	{
-       			fepMan->LaunchSpecialCharacterTableL();                
-        	    } 
-            }
-        }
-    return ret;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiManagerBase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1020 +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 CAknFepUIManagerBase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32keys.h>
-#include <e32svr.h> // RDebug stuff...
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepUiManagerBase.h"
-
-// Western input
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-#include "AknFepUiInputStateInitialNumber.h"
-#include "AknFepUiInputStateInitialWesternPredictive.h"
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-
-#include "AknFepCaseManager.h"
-#include "AknFepPanic.h"
-
-#include <aknfep.rsg>
-#include <AknIndicatorContainer.h>  // CAknIndicatorContainer::TIndicatorContext
-#include <PtiEngine.h> 
-#include <PtiDefs.h>
-
-// CONSTANTS
-const TInt KNumberOfKeymapResources = 8;
-const TInt KNumericKeymapResourceIds[KNumberOfKeymapResources] = 
-    {
-    R_AKNFEP_NUMBER_MODE_KEYMAP_STANDARD,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_PLAIN,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_CALCULATOR,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_CONVERTER,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_TO_FIELD,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_FIXED_DIALLING,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_SAT,
-    R_AKNFEP_NUMBER_MODE_KEYMAP_SAT_HIDDEN
-    };
-
-#define EAknEditorNativeKeysNumberModeKeymap EAknEditorReservedInternalUseKeymap
-
-/**
-*  CAknFepUIManagerBase class.
-* 
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::NewL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerBase* CAknFepUIManagerBase::NewL(MAknFepManagerUIInterface* aFepMan, 
-                                                 CAknFepCaseManager* aCaseMan, TLanguage aLanguage)
-    {   
-    CAknFepUIManagerBase* self = new(ELeave)CAknFepUIManagerBase(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::~CAknFepUIManagerBase
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerBase::~CAknFepUIManagerBase()
-    {
-    CloseUI();
-    delete iNumericKeymapBuffer;
-    }
-
-/**
- *  MAknFepManagerInterface class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetMode
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-void CAknFepUIManagerBase::SetMode(TInt aMode, 
-									TBool aPredictive, 
-									TBool aQwertyInputMode, 
-									TInt aKeyboardType)
-#else
-void CAknFepUIManagerBase::SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode)
-#endif
-    {
-    iMode=aMode;
-    iPredictive = aPredictive;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    iQwertyInputMode = aQwertyInputMode; // predictive QWERTY changes (e.g. XT9)
-#endif //RD_INTELLIGENT_TEXT_INPUT
-    if (aQwertyInputMode 
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    && !aPredictive // predictive QWERTY changes (e.g. XT9): added second condition
-#endif //RD_INTELLIGENT_TEXT_INPUT
-	) 
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        if (aKeyboardType == EPtiKeyboardHalfQwerty)
-            {
-            ChangeState(EHalfQwerty);                        
-            }
-        else
-            {
-#endif            
-        ChangeState(EQwerty);
-#ifdef RD_INTELLIGENT_TEXT_INPUT                                
-            }                       
-#endif            
-        }
-    else
-        {
-        ChangeState(EInitial);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetCase
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetCase(TCase aCase)
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    TPtiTextCase newCase = EPtiCaseLower;
-    
-    TBool noResetCase = EFalse;
-    
-    switch( aCase )
-        {
-        case EUpperCase:
-            {
-            newCase = EPtiCaseUpper;
-            }
-            break;
-        case ELowerCase:
-            {
-            newCase = EPtiCaseLower;
-            }
-            break;    
-        case EFnKeyLowerCase:
-            {
-            newCase = EPtiCaseFnLower;
-            }
-            break;
-            
-        case EFnKeyUpperCase:
-            {
-            newCase = EPtiCaseFnUpper;
-            noResetCase = ETrue;
-            }
-            break;
-            
-        default:
-        break;
-        }
-
-    CAknFepFnKeyManager::TFnKeyState fnKeyState = iFepMan->FnKeyState();
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-    // For Reverse Fn key mapping
-    if(!iFepMan->IsReverseFnkeyInput())
-    	{
-#endif //__REVERSE_FN_KEY_SUPPORTED
-    switch (fnKeyState)
-        {
-        case CAknFepFnKeyManager::EFnKeyLock:
-        case CAknFepFnKeyManager::EFnKeyForced:
-        case CAknFepFnKeyManager::EFnKeyDown:
-            if( !noResetCase )
-            newCase = EPtiCaseFnLower;
-            break;
-        case CAknFepFnKeyManager::EFnKeyNone:
-        case CAknFepFnKeyManager::EFnKeyPressed:
-        case CAknFepFnKeyManager::EFnKeyNext:
-        case CAknFepFnKeyManager::EFnKeyPressedAgain:
-        default:
-            break;
-        }
-#ifdef __REVERSE_FN_KEY_SUPPORTED
-        }
-#endif //__REVERSE_FN_KEY_SUPPORTED
-    PtiEngine()->SetCase( newCase );
-#else 
-    PtiEngine()->SetCase((aCase == EUpperCase)? EPtiCaseUpper : EPtiCaseLower);
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetNumberModeKeyMappingL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetNumberModeKeyMappingL(
-     TAknEditorNumericKeymap aAknEditorNumericKeymap)
-    {
-    __ASSERT_DEBUG(
-        (aAknEditorNumericKeymap >= 0 && aAknEditorNumericKeymap < KNumberOfKeymapResources) ||
-        (aAknEditorNumericKeymap == EAknEditorAlphanumericNumberModeKeymap) ||
-        (aAknEditorNumericKeymap == EAknEditorNativeKeysNumberModeKeymap), 
-        AknFepPanic(EAknFepPanicIllegalNumberModeKeymapping));
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    if (aAknEditorNumericKeymap == EAknEditorAlphanumericNumberModeKeymap && iNumericKeymapBuffer)
-        {
-        delete iNumericKeymapBuffer;
-        iNumericKeymapBuffer = NULL;
-        return;
-        }
-#endif
-    
-    // Fep does not handle keys when EAknEditorNativeKeysNumberModeKeymap is used.
-    if (aAknEditorNumericKeymap != EAknEditorNativeKeysNumberModeKeymap && 
-        aAknEditorNumericKeymap != EAknEditorAlphanumericNumberModeKeymap)
-        {
-        TInt keymapResourceId = KNumericKeymapResourceIds[aAknEditorNumericKeymap];
-        if (iNumericKeymapResourceId != keymapResourceId || !iNumericKeymapBuffer)
-            {
-            delete iNumericKeymapBuffer;
-            iNumericKeymapBuffer = NULL;
-            iNumericKeymapBuffer = CCoeEnv::Static()->AllocReadResourceL( keymapResourceId );
-            iNumericKeymapResourceId = keymapResourceId;
-            }
-        }
-    }
-
-const TDesC& CAknFepUIManagerBase::NumberModeKeyMapping() const
-    {
-    if (iNumericKeymapBuffer)
-        {
-        return *iNumericKeymapBuffer;
-        }
-    return KNullDesC;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::HandleKeyL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/)
-    {
-    if (!iStatePtr)
-        {
-        return EFalse;
-        }
-    
-    TUIState currentState = iStatePtr->State();
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__        
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // Calculate and store the number of characters now and the delta with 
-    // the last key press to be used when long press substitutes the initial
-    // character.
-    
-    // This change is done for fixing the error :- Long keypress 
-    // inputs the alphabet as well along with number/special character 
-    // when candidate list is open.
-    
-    TInt curInputSeqLen = 0;
-    TInt curEditorTextLen = 0;
-    TInt curWordLen = 0;
-    if (aLength == EShortKeyPress)
-    	{
-        curInputSeqLen = PtiEngine()->CurrentInputSequence().Length();
-        curWordLen =  PtiEngine()->CurrentWord().Length();
-        curEditorTextLen = FepMan()->DocumentLength();
-    	iCaseBeforeLongKey = CaseMan()->CurrentCase();
-    	}
-
-    if ( aLength == ELongKeyPress )
-        {
-        if ( HandleLongKeyL( aKey ) )
-            {
-            return ETrue;
-            }
-        }
-        
-    TInt retVal = ETrue;
-    TBool handledKey = iStatePtr->HandleKeyL(aKey, aLength);
-    if(!handledKey)
-        {
-        if(currentState != iStatePtr->State()) //Check to see if we've changed state.
-            {
-            retVal = iStatePtr->HandleKeyL(aKey, aLength);
-            }
-        else
-            {
-            retVal = EFalse; // we've failed to handle it..
-            }
-        }
-	
-	// The delta is calculated after the short key press character is entered.
-	// The check with EStdKeyF21 is done to fix the bug :
-	// When prediction is off, keep shift key pressed down. 
-	// Just before the editor enters the selection mode, 
-	// do a long press of a number key. Along with the number 
-	// even the alphabet is entered.
-    if (aLength == EShortKeyPress && (handledKey || retVal) && (aKey!=EStdKeyF21))
-   	    {
-		// for the punctuation key, the autocompletion part is accepted, 
-		// because of which the delta has to be calculated 
-		// based on the current word length
-    	if( aKey == EStdKeyFullStop && EPtiKeyboardHalfQwerty == FepMan()->KeyboardLayout())	
-    	    {
-    	    iInputSeqLenDeltaWithLastKey = PtiEngine()->CurrentWord().Length() - curWordLen;
-    	    }
-    	else
-    	    {
-    	    iInputSeqLenDeltaWithLastKey = PtiEngine()->CurrentInputSequence().Length() - curInputSeqLen;
-    	    }
-    	iEditorTextLenDeltaWithLastKey = FepMan()->DocumentLength() - curEditorTextLen;
-    	// This change is done to fix the bug : Select the text
-    	// using shift key. Do a long press of a key. Along 
-    	// with the number even the alphabet is entered.
-    	if(iEditorTextLenDeltaWithLastKey <= 0)
-    		{
-    		iEditorTextLenDeltaWithLastKey = iStatePtr->GetShortKeyPressTxtLength();
-    		}
-        }
-    
-    else if ( aLength == EShortKeyPress && 
-            EPtiKeyboardHalfQwerty == FepMan()->KeyboardLayout() && 
-            EFalse == retVal && PtiEngine()->IsValidKey((TPtiKey)aKey))
-        {
-        // reset the two deltas
-        iInputSeqLenDeltaWithLastKey = 0;
-        iEditorTextLenDeltaWithLastKey = 0;
-        }
-
-    return retVal;
-#endif // RD_INTELLIGENT_TEXT_INPUT  
-#else 
-
-    if(!iStatePtr->HandleKeyL(aKey, aLength))
-        {
-        if(currentState != iStatePtr->State()) //Check to see if we've changed state.
-            {
-            return iStatePtr->HandleKeyL(aKey, aLength);
-            }
-        return EFalse; // we've failed to handle it..
-        }
-    return ETrue; //we're ok.
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::HandleCommandL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::HandleCommandL(TInt aCommandId)
-    {
-    iStatePtr->HandleCommandL(aCommandId);
-    }
-
-void CAknFepUIManagerBase::HandleCommandL(TInt aCommandId, TInt /*aParam*/)
-    {
-    iStatePtr->HandleCommandL(aCommandId);
-    }
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::CloseUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::CloseUI()
-    {
-    ChangeState(EInitial);
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ExpireMultitapTimer
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::ExpireMultitapTimer()
-    {
-    PtiEngine()->CancelTimerActivity();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsValidNumericLongKeyPress
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsValidNumericLongKeyPress(TInt aKey) const
-    {
-    TBool response = EFalse;
-
-    switch(aKey)
-        {
-        case EPtiKey0:
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey5:
-        case EPtiKey6:
-        case EPtiKey7:
-        case EPtiKey8:
-        case EPtiKey9:            
-            if (iInitialFepUIState == EInitial || 
-                iInitialFepUIState == EPredictiveCandidate)
-                {
-                response = ETrue;
-                }
-            break;
-        default:
-            break;
-        }
-    return response;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::AddTextToUserDictionaryL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::AddTextToUserDictionaryL(const TDesC& /*aText*/)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::GetFormatOfFepInlineText
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::GetFormatOfFepInlineText(TCharFormat& /*aFormat*/, TInt& /*aNumberOfCharactersWithSameFormat*/, TInt /*aPositionOfCharacter*/) const
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SupportLanguage
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerBase::SupportLanguage(TInt /*aMode*/) const
-    {
-    return iLanguage;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetInputLanguageL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetInputLanguageL(TLanguage aLanguage)
-    {
-    iLanguage = aLanguage;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsValidShiftKeyPress
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsValidShiftKeyPress() const
-    {
-    return ETrue;
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-TBool CAknFepUIManagerBase::IsValidFnKeyPress() const
-    {
-    return ETrue;
-    }
-
-
-TBool CAknFepUIManagerBase::IsValidLongChrKeyPress() const
-    {
-    return ETrue;
-    }
-
-#endif
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetEditorContext
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetEditorContext(TInt /*aContext*/)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ActivateUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::ActivateUI()
-    {
-    }
-
-/**
- *  MAknFepUIManagerStateInterface class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::State
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TUIState CAknFepUIManagerBase::State() const
-    {
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ChangeState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TUIState CAknFepUIManagerBase::ChangeState(TUIState aState)
-    {
-//    iFepUiState = TAknFepInputStateBase(this);
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: New State: %d"), iStatePtr->State());
-#endif
-    return aState;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::FepMan
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-MAknFepManagerUIInterface* CAknFepUIManagerBase::FepMan() const
-    {
-    return iFepMan;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::PtiEngine
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CPtiEngine* CAknFepUIManagerBase::PtiEngine() const
-    {
-    return iPtiEngine;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsValidChineseInputKey
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsValidChineseInputKey(TInt /*aKey*/) const
-    {
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsValidChineseInputKeyQwerty
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsValidChineseInputKeyQwerty(TInt /*aKey*/) const
-    {
-    return ETrue;
-    }
-    
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::UpdateCangJieState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::UpdateCangJieState()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsValidChineseSymbol
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsValidChineseSymbol(TInt /*akey*/) const
-	{
-	return ETrue;
-	}
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsQwertyZhuyinToneMarkKey
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsQwertyZhuyinToneMarkKey(TInt /*aKey*/) const
-    {
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::GetLanguage
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TLanguage CAknFepUIManagerBase::GetLanguage() const
-    {
-    return iLanguage;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::CaseMan
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepCaseManager* CAknFepUIManagerBase::CaseMan() const
-    {
-    return iCaseMan;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::GetLatestDeliberateSelection
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TPtr CAknFepUIManagerBase::GetLatestDeliberateSelection() const
-    {
-    return TPtr(NULL, 0, 0);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ThaiSCTResourceId
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerBase::ThaiSCTResourceId(TUint /*aPrewChar*/,TInt /*aKey*/)
-    {
-    return 0;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::CandidateArray
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUIManagerBase::CandidateArray()
-    {
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsPredictive
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsPredictive() const
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetInlineEditUnderlineVisibility
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetInlineEditUnderlineVisibility(TBool /*aFlag*/)
-    {
-    }
-
-/**
- *  CAknFepUIManagerBase class.
- * 
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::CAknFepUIManagerBase
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerBase::CAknFepUIManagerBase(MAknFepManagerUIInterface* aFepMan, 
-                                           CAknFepCaseManager* aCaseMan)
-    :iMode(ENumber), 
-    iFepMan(aFepMan),
-    iCaseMan(aCaseMan)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ConstructL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::ConstructL(TLanguage aLanguage)
-    {   
-    iPtiEngine = iFepMan->PtiEngine(); // Get PtiEngine
-    iLanguage = aLanguage;
-    iStatePtr = FepUIState();
-    SetNumberModeKeyMappingL(EAknEditorStandardNumberModeKeymap);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::FepUIState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerBase::FepUIState()
-    {
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::IsQwerty
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::IsQwerty() const
-    {
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetFepAwareEditorText
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetFepAwareEditorText(const TFepInputContextFieldData& /*aIcfData*/)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::EditorMaxLength
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerBase::EditorMaxLength()
-    {
-    return 0;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SizeChanged
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-const TInt KResourceChanged =  1;
-void CAknFepUIManagerBase::ResourceChanged(TInt /*aType*/)
-    {
-    if ( !iStatePtr )
-        {
-        return;
-        }
-
-    TRAP_IGNORE(iStatePtr->HandleCommandL(KResourceChanged));	
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetNextFepUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetNextFepUI(MAknFepManagerInterface* /*aNextUi*/)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetStarKeyFlag
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerBase::SetStarKeyFlag( TBool aSet )
-	{
-	if ( iStatePtr )
-        {
-        iStatePtr->SetStarKeyFlag( aSet );
-        }
-	}
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::HandleLongKeyL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::HandleLongKeyL( TInt aKey )
-    {
-#ifdef _DEBUG
-    RDebug::Print( _L("HandleLongKeyL(%c)"), aKey );
-#endif
-    
-    TBool consume = EFalse;
-    
-    if ( iQwertyInputMode &&                                         // Long press implementation for non-QWERTY modes is elsewhere
-         iFepMan->LongPressNumberEntryOnQwerty() &&                  // Is long press number entry supported
-         iFepMan->FnKeyState() == CAknFepFnKeyManager::EFnKeyNone && // Long press is handled differently only in non-Fn modes
-         iFepMan->KeyMapsDifferentCharacterWithFn( (TPtiKey)aKey ) ) // Does the given key have a different character in Fn mode 
-        {
-        TBool charRemoved = RollbackPreviousCharL();
-        
-        // Continue only if there's space left in the editor field after the rollback.
-        // In case of secret editor, the removal of the initial character is asynchronous.
-        // In that case the editor may still seem to be filled up although we have already
-        // queued the rollback event.
-        if ( iFepMan->EditorHasFreeSpace() || charRemoved )
-            {
-            // Long key press load, if editor in textcase mode reload the 
-            // text case mode, because shrot key press reset textcase mode.
-            CaseMan()->SetCurrentCase(iCaseBeforeLongKey);
-            
-            iFepMan->SetFnKeyState( CAknFepFnKeyManager::EFnKeyNext );
-
-            // Figure out the used case (upper/lower)
-            TPtiTextCase ptiCase = EPtiCaseFnLower;
-            
-            if ( CaseMan()->CurrentCase() == EAknEditorTextCase ||
-                 CaseMan()->CurrentCase() == EAknEditorUpperCase )
-                {
-                ptiCase = EPtiCaseFnUpper;
-                }
-
-            if ( iFepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) &&
-                 CaseMan()->IsAbleChangeCase() )
-                {
-                // QWERTY shift mode => swap the case
-                if ( ptiCase == EPtiCaseFnLower ) 
-                    ptiCase = EPtiCaseFnUpper;
-                else 
-                    ptiCase = EPtiCaseFnLower;
-                }
-
-            // In case we are in uppercase mode but there's no characters mapped to that mode,
-            // use the lower case instead.
-            if ( ptiCase == EPtiCaseFnUpper )
-                {
-                TBuf<1> upperFnMapping;
-                iPtiEngine->MappingDataForKey( (TPtiKey)aKey, upperFnMapping, EPtiCaseFnUpper );
-                if ( !upperFnMapping.Length() )
-                    {
-                    ptiCase = EPtiCaseFnLower;
-                    }
-                }
-
-            iPtiEngine->SetCase( ptiCase );
-            }
-        else
-            {
-            consume = ETrue;
-            }
-        }
-    return consume;    
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::RollbackPreviousCharL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerBase::RollbackPreviousCharL()
-    {
-    TBool characterRemoved = ETrue;
-    
-    if( iFepMan->KeyboardLayout() == EPtiKeyboardHalfQwerty )
-    	{
-        if (iFepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            iFepMan->TryRemoveNoMatchesIndicatorL();
-            iFepMan->UpdateCbaL(NULL);
-            // make sure that the candidates 
-            // will be updated the next time
-            iPtiEngine->HandleCommandL(EPtiCommandSetFlagToUpdateCandidates);
-            // Need to return as DeleteKeyPress should not be passed to ptiengine.
-            // This is because ptiengine does not maintain the input sequence
-            // if the key press does not increase the word length. So when no matches
-            // character is (?) is deleted, no need to pass to ptiengine. This is to done
-            // to solve the bug :enter characters till the no matches character is shown. Now press
-            // backspace, last character is not deleted.
-            return ETrue;
-            }
-    	}
-    
-    // It depends on the editor type and input mode, how the previous character
-    // can be rolled back.
-    if ( iPtiEngine->HandleCommandL(EPtiCommandDeadKeyWaiting) > 0 )
-        {
-        // The previous key entered a dead character
-        iPtiEngine->HandleCommandL(EPtiCommandGetAndClearDeadKeyRootChar);
-        }
-    else if ( iInputSeqLenDeltaWithLastKey > 0 )
-        {
-        // The previous key entered chracter(s) to input sequence of PtiEngine
-        for ( TInt i=0 ; i<iInputSeqLenDeltaWithLastKey ; ++i )
-            {
-            iPtiEngine->DeleteKeyPress();
-            }
-        if ( iFepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction) )
-            {
-            TPtrC curWord = iPtiEngine->CurrentWord();
-            iFepMan->UpdateInlineEditL( curWord, curWord.Length() );
-            }
-		if ( iFepMan->IsSupportsSecretText() )
-        	{
-            // Fep communicates with secret text editors using simulated events.
-            iFepMan->SimulateKeyEventL(EKeyF20);
-            iFepMan->ClearFlag( CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-            }    
-    
-        }
-    else if ( iEditorTextLenDeltaWithLastKey > 0 )
-        {
-        // The previous key entered character(s) directly to the editor
-        for ( TInt i=0 ; i<iEditorTextLenDeltaWithLastKey ; ++i )
-            {
-            if ( iFepMan->IsSupportsSecretText() )
-                {
-                // Fep communicates with secret text editors using simulated events.
-                iFepMan->SimulateKeyEventL(EKeyF20);
-                iFepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-                }
-            else
-                {
-                // In normal editors, the character can be removed directly
-                iFepMan->RemovePreviousCharacterL();
-                }
-            }
-        }
-    else
-        {
-        // The previous key press produced no characters => do nothing
-        characterRemoved = EFalse;
-        }
-        
-    return characterRemoved;   
-    }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__	
-
-// add for phrase creation
-MZhuyinKeyHandler* CAknFepUIManagerBase::ZhuyinKeyHandler()
-    {
-    return iFepMan->ZhuyinKeyHandler();
-    }
-//add for phrase creation
-CAknFepZhuyinAnalyser* CAknFepUIManagerBase::ZhuyinAnalyser()
-    {
-    return iFepMan->ZhuyinAnalyser();
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiManagerChinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1744 +0,0 @@
-/*
-* Copyright (c) 2003-2005 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 CAknFepUIManagerChinese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32svr.h> // RDebug stuff...
-#include <e32keys.h>
-
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiManagerChinese.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"
-#include "AknFepUiInputStateCandidate.h"
-#include "AknFepUiInputStateCandidateChinese.h"
-#include "AknFepUiInputStatePredictiveCandidate.h"
-#include "AknFepUiInputStatePredictiveInput.h"
-#include "AknFepUiInputStatePredictiveInputChinese.h"
-#include "AknFepUiInputStateInitialChineseGeneric.h"
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-#include "AknFepUiInputStateInitialNumber.h"
-#include "AknFepUiInputStateEntryPinyin.h"
-#include "AknFepUiInputStateEntryZhuyin.h"
-#include "AknFepUiInputStateInitialZhuyinFind.h"
-#include "AknFepUiInputStateInitialStrokeFind.h"
-#include "AknFepUiInputStateEntryStroke.h"
-#include "AknFepUiInputStateInitialWesternPredictive.h"
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-#include "AknFepUiInputStatePredictiveCandidatePinyin.h"
-#include "AknFepUiInputStatePredictiveCandidateStroke.h"
-#include "AknFepCaseManager.h"
-#include "AknFepPanic.h"
-
-#include "AknFepUiCtrlContainerChinese.h"				// phrase input container
-#include "AknFepUiInputStateEntryPinyinPhrase.h"		// phrase pinyin entry state class
-#include "aknfepuiinputstateentrypinyinphrasecreation.h"   // pinyin phrase creation
-#include "aknfepinputstatespellingpinyinphrasecreation.h"  // pinyin phrase creation
-#include "aknfepinputstatecandidatepinyinphrasecreation.h" // pinyin phrase creation
-#include "aknfepuiinputstateentryzhuyinphrasecreation.h"     // zhuyin phrase creation
-#include "AknFepUiInputStateEntryZhuyinPhrase.h"		// phrase zhuyin entry state class
-#include "AknFepUiInputStateEntryStrokePhrase.h"		// phrase Stroke entry state class
-#include "AknFepUiInputStateCandidateChinesePhrase.h"          // phrase candidate state class
-#include "aknfepuictrleditpane.h"           //phrase EEP control
-#include "AknFepUiInputStateCandidatePinyinAndStrokePhrase.h"
-#include "AknFepUiInputStatePredictiveInputPhrase.h"
-#include "AknFepUiInputStatePredictiveInputChinesePhrase.h"
-// Qwerty input
-#include "AknFepUiInputStateInitialChineseGenericQwerty.h"
-#include "AknFepUiInputStateEntryQwertyPinyin.h"
-#include "AknFepUiInputStateEntryQwertyStroke.h"
-#include "AknFepUiInputStateEntryQwertyCangJie.h"
-#include "AknFepUiInputStateEntryQwertyZhuyin.h"
-#include "AknFepUiInputStateCandidateQwertyZhuyin.h"
-#include "AknFepUiInputStatePredictiveCandidateQwertyZhuyin.h"
-#include "AknFepUiInputStatePredictiveInputQwerty.h"
-#include "AknFepUiInputStatePredictiveInputQwertyPinyin.h"
-#include "AknFepUiInputStatePredictiveInputQwertyZhuyin.h"
-#include "AknFepUiInputStatePredictiveCandidatePinyinPhrase.h"
-#include "AknFepUiInputStatePredictiveCandidateStrokePhrase.h"
-#include "AknFepUiInputStatePredictiveCandidatePhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyStroke.h"
-// Qwerty phrase input
-#include "AknFepUiInputStateEntryQwertyStrokePhrase.h"
-#include "AknFepUiInputStateEntryQwertyPinyinPhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyChinesePhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyPinyinPhrase.h"
-#include "AknFepUiInputStateEntryQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStateCandidateQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStatePredictiveCandidateQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStatePredictiveInputQwertyStrokePhrase.h"
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-#include "AknFepUIInputStateEntryMiniQwertyPinyinPhrase.h"
-#include "AknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase.h"
-#include "AknFepUiInputStatePredictiveInputMiniQwertyChinesePhrase.h"
-#include "AknFepUiInputStatePredictiveCandidateMiniQwertyChinesePhrase.h"
-#include "AknFepUiInputStateEntryMiniQwertyZhuyinPhrase.h"
-#include "AknFepUiInputStateCandidateMiniQwertyZhuyinPhrase.h"
-#include "aknfepuiinputstateminiqwertyzhuyinphrase.h"//phrase creation for mini qwerty zhuyin
-#include "aknfepuiinputstateminiqwertystrokephrase.h"
-#include "AknFepUIInputStateEntryMiniQwertyCangJie.h"
-#include "aknfepuiinputstateentryhalfqwertyphrase.h"
-#include "AknFepUiInputStateCandidateHalfQwertyChinesePhrase.h"
-#include "AknFepUiInputStateInitialChineseGenericHalfQwerty.h"
-#include "AknFepUiInputStatePredictiveCandidateHalfQwertyChinesePhrase.h"
-#endif
-// Qwerty Chinese find
-#include "AknFepUiInputStatelStrokeFindQwerty.h"
-#include "AknFepUiInputStateZhuyinFindQwerty.h"
-#include <AknIndicatorContainer.h>  
-
-#include <PtiEngine.h> 
-#include <PtiDefs.h>
-
-#include <avkon.rsg>        //phrase creation
-#include <aknfep.rsg>
-
-// CONSTANTS
-const TInt16 KStrokeHorizontalValue = 0x4e00; 
-const TInt16 KStrokeVerticalValue = 0x4e28;
-const TInt16 KStrokeDownToLeftValue = 0x4e3f;
-const TInt16 KStrokeDownToRightValue = 0x4e36;
-const TInt16 KStrokeBendingValue = 0x4e5b;
-const TInt16 KStrokeQuestionValue = 0x003f;
-const TInt16 KStrokeUnicode = 0x2461;
-const TInt16 KZhuyinIndicator = 0x2462;
-/**
-*  CAknFepUIManagerChinese class.
-* 
-*/
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::NewL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerChinese* CAknFepUIManagerChinese::NewL(MAknFepManagerUIInterface* aFepMan, 
-                                       CAknFepCaseManager* aCaseMan, TLanguage aLanguage)
-    {   
-    CAknFepUIManagerChinese* self = new(ELeave)CAknFepUIManagerChinese(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::~CAknFepUIManagerChinese
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerChinese::~CAknFepUIManagerChinese()
-    {
-    delete iContainerPane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::HandleKeyL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerChinese::HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode aEventCode)
-    {
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT    
-    // In the initial state, use the base implementation which support long
-    // press number entry on QWERTY. In other states the long press is not
-    // handled.
-    if ( (aLength == EShortKeyPress && iFepUiState.State() == EInitial) ||
-         (aLength == ELongKeyPress && iInitialFepUIState == EInitial) )
-        {
-        return CAknFepUIManagerBase::HandleKeyL( aKey, aLength );
-        }
-    else if ( iFepMan->EditorHasFreeSpace() )
-        {
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-    TUIState currentState = iFepUiState.State();
-    
-    //when the state is EEntry and input mode is pinyin or zhuyin and akey = starkey
-    //just handles EEventKey
-    if( EPtiKeyStar == aKey && currentState == EEntry 
-    		&& ( iFepMan->InputMode() == EPinyin || iFepMan->InputMode() == EZhuyin )
-    		&& aEventCode != EEventKey )
-    	{
-    	return EFalse;
-    	}
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-
-    if(!iStatePtr->HandleKeyL(aKey, aLength))
-        {
-        if(currentState != iStatePtr->State()) //Check to see if we've changed state.
-            {
-            return iStatePtr->HandleKeyL(aKey, aLength);
-            }
-        return EFalse; // we've failed to handle it..
-        }
-    return ETrue; //we're ok.
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        }
-    else
-        {
-        // FepManager must let some long press events to pass here even when
-        // editor has no space, because long press may still work. But if
-        // the long press was not handled, then the key event should not be
-        // handled at all in this case.
-        return EFalse;
-        }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__    
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::CloseUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::CloseUI()
-    {
-    // update cba
-    TRAP_IGNORE(FepMan()->UpdateCbaL(NULL));
-    iContainerPane->EditPaneWindow()->SetCurrentCBAResID( 0 );
-    
-    if (iQwertyMode)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-        if ( EPtiKeyboardHalfQwerty == iPtiEngine->KeyboardType() )
-            {
-            ChangeState(EHalfQwerty);
-            }
-        else
-#endif
-            {
-            ChangeState(EQwerty);
-            }
-        }
-    else
-        {
-        ChangeState(EInitial);
-        }
-    if (iContainerPane)
-        {
-        iContainerPane->CandidatePane()->ResetCandidateState();
-        iContainerPane->EditPaneWindow()->ResetAllArray();
-        iContainerPane->Enable(EFalse);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::GetFormatOfFepInlineText
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::GetFormatOfFepInlineText(TCharFormat& aFormat, 
-         TInt& aNumberOfCharactersWithSameFormat, TInt aPositionOfCharacter) const
-    {
-    if (iPredictive && iFepUiState.State() == EEntry)   // EInitial???
-        {
-        aFormat.iFontPresentation.iUnderline = EUnderlineOn;
-        if (iFepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            aFormat.iFontPresentation.iHighlightStyle = 
-                                   TFontPresentation::EFontHighlightNoMatchesIndicator;
-            }
-        TCursorSelection uncommit = iFepMan->UncommittedText();
-        if (uncommit.Length()-aPositionOfCharacter>0)                   
-            {
-            aNumberOfCharactersWithSameFormat=uncommit.Length() - aPositionOfCharacter;
-            }
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::SupportLanguage
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerChinese::SupportLanguage(TInt aMode) const
-    {
-    TInt lang = iLanguage;
-    switch (aMode)
-        {
-        case ELatin:
-            {
-            lang = ELangEnglish;
-            }
-            break;
-        case ENumber:
-        case EPinyin:
-        case EStroke:
-        case ECangJie:
-        case EStrokeFind:
-        case EZhuyin:
-        case EZhuyinFind:
-        default:
-            break;
-        }
-    return lang;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::SetEditorContext
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::SetEditorContext(TInt aContext)
-    {
-    if(iContainerPane)
-        {
-        iContainerPane->SetIsShownWithPopupWindows(
-            aContext == CAknIndicatorContainer::EQueryEditorIndicators);
-        }
-   }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::ChangeState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TUIState CAknFepUIManagerChinese::ChangeState(TUIState aState)
-    {
-    // ask pti engine if phrase input is supported
-    if(iPrevMode != iMode)
-        {
-        iPrevMode = iMode;
-        ResetFlags();
-        }
-    if(!IsFlagSet(EQueryPtiEngineAlready))  
-        {
-        QueryPtiEngine();
-        }
-     
-    // distinguish if Qwerty input in editing window state
-    if(aState == EQwerty)
-        {
-        iQwertyMode = ETrue;
-        }
-    else if(aState == EInitial)
-        {
-        iQwertyMode = EFalse;
-        }
-
-    if(iQwertyMode)
-        {
-        ChangeStateQwerty(aState);
-        }
-    else
-        {
-        ChangeStatetItut(aState);
-        }
-        
-    iPtiEngine->SetObserver(&iFepUiState);
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: New State: %d"), iFepUiState.State());
-#endif
-    // cba update: when input window exists, softkeys are not shown.
-    TRAPD(err, iStatePtr->InitializeStateL());
-    if(err != KErrNone)
-        {
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: Initial Error: Mode = %d, State = %d"), 
-                    iMode, iStatePtr->State());
-#endif
-        }
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::IsValidChineseInputKey
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerChinese::IsValidChineseInputKey(TInt aKey) const
-    {
-    // This doesn't include checking for the 'tone' key, which is different...
-
-    TBool response = ETrue;
-    switch(aKey)
-        {
-    case EPtiKey0:
-        if(((iMode == EPinyin) && (!IsFlagSet(ESupportPinyinPhrase) || 
-            !iContainerPane->IsEnabled())) ||
-           ((iMode == EStroke) && (!IsFlagSet(ESupportStrokePhrase) || 
-            !iContainerPane->IsEnabled()))  || (iMode == EStrokeFind)) 
-            {
-            response = EFalse;
-            }
-        break;
-    case EPtiKey1:
-        if((iMode == EPinyin)&& (!IsFlagSet(ESupportPinyinPhrase) || !iContainerPane->IsEnabled()))
-            {
-            response = EFalse;
-            }
-        break;
-    case EPtiKey2: //fall through
-    case EPtiKey3:
-    case EPtiKey4:
-    case EPtiKey5:
-    case EPtiKey6:
-        break;  //always valid
-    case EPtiKey7: //fall through
-    case EPtiKey8:
-    case EPtiKey9:
-        if((iMode == EStroke) || (iMode == EStrokeFind))
-            response = EFalse;
-        break;
-    default:
-        response = EFalse;
-        break;
-        }
-    return response;
-    }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::IsKeyMappedStroke
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-
-TBool  CAknFepUIManagerChinese::IsKeyMappedStroke(TInt aKey) const
-    {
-    TBuf<KMaxName> lowerdata;   
-    iPtiEngine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);  
-    TInt StrokeUnicodePosition =0;
-    
-    if(lowerdata.Length()>0)
-        {
-        for(TInt i=0;i<lowerdata.Length();i++)
-            {
-            if(lowerdata[i]==KStrokeUnicode)
-                {
-                StrokeUnicodePosition = i+1;
-                break;
-                }
-            }
-        }
-    if(lowerdata.Length() > StrokeUnicodePosition)
-        {
-        if (lowerdata[StrokeUnicodePosition] == KStrokeHorizontalValue || 
-                lowerdata[StrokeUnicodePosition] == KStrokeVerticalValue || 
-                lowerdata[StrokeUnicodePosition] == KStrokeDownToLeftValue || 
-                lowerdata[StrokeUnicodePosition] == KStrokeDownToRightValue || 
-                lowerdata[StrokeUnicodePosition] == KStrokeBendingValue ||
-                lowerdata[StrokeUnicodePosition] == KStrokeQuestionValue)
-            {
-            return ETrue;
-            }
-        }
-    
-    return EFalse;
-    }
-#endif
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::IsValidChineseInputKeyQwerty
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerChinese::IsValidChineseInputKeyQwerty(TInt aKey) const
-    {
-    TBool response = EFalse;
-#ifdef RD_INTELLIGENT_TEXT_INPUT     
-    
-    TPtiKeyboardType keyboardType = EPtiKeyboardNone;
-    if( iPtiEngine != NULL )        
-        {
-        keyboardType = iPtiEngine->KeyboardType();
-        }
-#endif
-
-    if(iMode == EPinyin)
-        {
-        if( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        	(aKey >= EPtiKeyQwerty1 && aKey <= EPtiKeyQwerty9) ||
-            (IsFlagSet(ESupportPinyinPhrase) && aKey == EPtiKeyQwertyApostrophe 
-             && State() != EInitial))
-            {
-            response = ETrue;
-            }
-#ifdef RD_INTELLIGENT_TEXT_INPUT          
-        if ( State() == EInitial && EPtiKeyboardHalfQwerty == keyboardType &&
-           ( aKey == EPtiKeyQwertyU || aKey == EPtiKeyQwertyI || aKey == EPtiKeyQwerty3 ))
-            {
-            response = EFalse;
-            }
-#endif
-        }
-
-    if(iMode == EStroke || iMode == EStrokeFind)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        if(EPtiKeyboardQwerty4x10 == keyboardType ||EPtiKeyboardQwerty3x11 == keyboardType )
-            {            
-            if( IsKeyMappedStroke(aKey)|| EPtiKeyQwertySpace == aKey)
-                {
-                response = ETrue;
-                if(aKey == EPtiKeyQwertySpace && (State() == EInitial || State() ==EPredictiveInput))
-                    {
-                    response = EFalse;
-                    }
-                }
-            }
-        else if( EPtiKeyboardHalfQwerty == keyboardType ||
-           EPtiKeyboardCustomQwerty == keyboardType)
-            {
-            MPtiLanguage *lang = NULL;
-            RArray < TPtiNumericKeyBinding > keybinding;
-            TBool IsStrokeKey = EFalse;
-            if(iPtiEngine)
-            { 
-            	  lang = iPtiEngine->CurrentLanguage();
-            }
-            if( iPtiEngine && lang )
-                {
-                TRAP_IGNORE(iPtiEngine->GetNumericModeKeysForQwertyL(
-                						lang->LanguageCode(),
-                				 		keybinding, keyboardType));
-                TInt numericKeysCount = keybinding.Count();
-                while ( numericKeysCount-- )
-                    {
-                    TPtiNumericKeyBinding numKeyBind = keybinding[numericKeysCount];
-                    if ( (numKeyBind.iChar >= 0x31 && numKeyBind.iChar <= 0x36)&&(aKey == numKeyBind.iKey))
-                        {
-                           IsStrokeKey = ETrue;
-                           break;              
-                        }
-                    }
-                }
-            keybinding.Reset();
-            if(IsStrokeKey || (aKey == EPtiKeyQwertySpace))
-                {
-                if((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-                   (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty6) ||		
-                   (aKey == EPtiKeyQwertySpace))
-                    {
-                    response = ETrue;
-                    if(aKey == EPtiKeyQwertySpace && 
-                    	(State() == EInitial || State() ==EPredictiveInput))
-                        {
-                        response = EFalse;
-                        }                  
-                    }
-                }               
-            }
-        else
-            {
-#endif
-        switch(aKey)
-            {
-            case EPtiKeyQwertyQ:
-            case EPtiKeyQwertyW:
-            case EPtiKeyQwertyE:
-            case EPtiKeyQwertyA:
-            case EPtiKeyQwertyS:
-            case EPtiKeyQwertyD:
-            case EPtiKeyQwertyI:
-            case EPtiKeyQwertyO:
-            case EPtiKeyQwertyP:
-            case EPtiKeyQwertyJ:
-            case EPtiKeyQwertyK:
-            case EPtiKeyQwertyL:
-            case EPtiKeyQwertySpace:
-                {
-                response = ETrue;
-                if(aKey == EPtiKeyQwertySpace && (State() == EInitial 
-                || State() ==EPredictiveInput))
-                    {
-                    response = EFalse;
-                    }
-                }
-                break;
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        }
-#endif
-    
-    if(iMode == ECangJie)
-        {
-        if (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ)
-            {
-            response = ETrue;
-            }
-        }
-    
-    if(iMode == EZhuyin || iMode == EZhuyinFind)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        if(EPtiKeyboardQwerty4x10 == keyboardType ||
-           EPtiKeyboardQwerty3x11 == keyboardType )
-            {
-            TBuf<KMaxName> lowerdata;
-            iPtiEngine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);
-       //     TInt ZhuyinUnicodeCur =0;
-            for(TInt i=0;i<lowerdata.Length();i++)
-                {
-                if(lowerdata[i]==KZhuyinIndicator)
-                    {
-                response = ETrue;
-                }   
-                }
-            }
-        else if( EPtiKeyboardCustomQwerty == keyboardType)        
-            {
-			if((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ))
-    			{
-				response = ETrue;        
-    			}       	
-            }
-        else if (  EPtiKeyboardHalfQwerty == keyboardType )
-            {
-            if((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) || 
-                    (aKey >= EPtiKey0 && aKey <= EPtiKey9) ||
-                    aKey == EPtiKeyQwertySpace )
-                {
-                response = ETrue;        
-                }  
-            }
-        else
-            {
-#endif
-        if((aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-            (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)||
-            (aKey == EPtiKeyQwertySemicolon) ||
-            (aKey == EPtiKeyQwertyApostrophe) ||
-            (aKey == EPtiKeyQwertyComma) ||
-            (aKey == EPtiKeyQwertyFullstop) ||
-            (aKey == EPtiKeyQwertySlash))
-            {
-            response = ETrue;        
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        }
-#endif        
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    
-    if( iPtiEngine != NULL && EPtiKeyboardQwerty4x12 == iPtiEngine->KeyboardType())
-        {
-#endif
-    if(iMode == EZhuyin && IsFlagSet(ESupportZhuyinPhrase) && aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        }
-#endif
-    return response;
-    }
-
-TBool CAknFepUIManagerChinese::IsQwertyZhuyinToneMarkKey(TInt aKey) const
-    {
-    // only return ETrue when qwerty and zhuyin symbol input supported for corresponding key
-    TInt supportSCTToneMarks = EFalse;
-    MPtiCoreInfo* ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineZhuyin);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    TPtiKeyboardType keyboardType = iPtiEngine->KeyboardType();
-#endif
-
-    if(ptiCoreInfo)
-        {
-        supportSCTToneMarks = ptiCoreInfo->CapsBits() & ESupportSCTToneMarks;
-        }
-
-    ptiCoreInfo = iPtiEngine->CoreInfo(EPtiEngineZhuyinByPhrase);
-    if(ptiCoreInfo)    
-        {
-        supportSCTToneMarks = 
-                    supportSCTToneMarks || (ptiCoreInfo->CapsBits() & ESupportSCTToneMarks);
-        }
-
-    if(iQwertyMode && (iMode == EZhuyin) && supportSCTToneMarks)
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-        if( keyboardType == EPtiKeyboardQwerty4x12)
-            {
-#endif            
-            if(aKey == EPtiKeyQwerty3 || aKey == EPtiKeyQwerty4 || aKey == EPtiKeyQwerty6 || aKey == EPtiKeyQwerty7)
-                {
-                return ETrue;
-                }
-            else
-                {
-                return EFalse;
-                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-            }
-        else if( keyboardType == EPtiKeyboardQwerty4x10 || keyboardType == EPtiKeyboardQwerty3x11)
-            {
-            if(aKey == EPtiKeyQwertyE || aKey == EPtiKeyQwertyR || aKey == EPtiKeyQwertyY || aKey == EPtiKeyQwertyU)
-                {
-                return ETrue;
-                }
-            else
-                {
-                return EFalse;
-                }
-            }
-#endif        
-        }
-    else 
-        {
-        return EFalse;
-        }
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::GetLatestDeliberateSelection
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TPtr CAknFepUIManagerChinese::GetLatestDeliberateSelection() const
-    {
-    // need to cast around constness, as this is a const get but needs to call Des which isn't const
-    typedef TBufC<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> pinyinBuffer;
-    pinyinBuffer* bufPtr = CONST_CAST(pinyinBuffer*, &iLatestDeliberateSelection);
-    return TPtr(bufPtr->Des());
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::FepUIState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerChinese::FepUIState()
-    {
-    return &iFepUiState;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::UIContainer
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-MAknFepUICtrlContainerChinese* CAknFepUIManagerChinese::UIContainer() const
-    {
-    return iContainerPane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::IsValidShiftKeyPress
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerChinese::IsValidShiftKeyPress() const
-    {
-    TUIState state = State();
-    TInt mode = FepMan()->InputMode();
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    TPtiKeyboardType kbdType = iFepMan->KeyboardLayout();
-    if (EPtiKeyboardQwerty4x12 == kbdType)
-        {
-#endif
-    if (mode == EPinyin || mode == EZhuyin || mode == EStroke || mode == ECangJie)
-        {
-        if (mode == EZhuyin && state == EPredictiveInput)
-            {
-            return EFalse;
-            }
-        if (mode == EZhuyin && state == EPredictiveCandidate)
-            {
-            return ETrue;
-            }
-        
-        if (state == EEntry || state == ECandidate || state == EPredictiveCandidate)
-            {
-            return EFalse;
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-        }
-    else if(EPtiKeyboardQwerty4x10 == kbdType ||
-            EPtiKeyboardQwerty3x11 == kbdType ||
-            EPtiKeyboardHalfQwerty == kbdType ||
-            EPtiKeyboardCustomQwerty == kbdType)
-        {
-    	if (mode == EPinyin || mode == EZhuyin || mode == EStroke || mode == ECangJie)
-            {
-            if ( state == EEntry || state == ECandidate || /*state == EPredictiveCandidate ||*/ 
-                state == EPredictiveInput || state == EMiniQwertyEdit || 
-                state == EZhuyinSpelling || state == EZhuyinCandidate )
-                {
-                return EFalse;
-                }         
-            }
-        }
-#endif    
-    
-    return ETrue;
-    }
-
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-TBool CAknFepUIManagerChinese::IsValidFnKeyPress() const
-    {
-    TUIState uiState = State();
-    TInt mode = FepMan()->InputMode();
-    if (mode == EPinyin || mode == EZhuyin || mode == EStroke || mode == ECangJie)
-        {
-        //if (uiState == EPredictiveCandidate || uiState == ECandidate)
-        if (uiState == EEntry || 
-        	uiState == ECandidate ||
-        	uiState == EPredictiveCandidate || 
-            uiState == EPredictiveInput ||
-            uiState == EMiniQwertyEdit || uiState == EZhuyinSpelling ||
-            uiState == EZhuyinCandidate )
-            {
-            return EFalse;
-            }         
-        }
-    							   
-    return ETrue;
-    }
-
-TBool CAknFepUIManagerChinese::IsValidLongChrKeyPress() const
-    {
-    TUIState state = State();
-    TInt mode = FepMan()->InputMode();
-    if ( mode == EPinyin || mode == EZhuyin || mode == EStroke )
-        {
-        if ( state == EEntry || state == EPredictiveInput )
-            {
-            return EFalse;
-            }
-        }
-    return ETrue;
-    }
-
-#endif
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::SetInputLanguageL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::SetInputLanguageL(TLanguage aLanguage)
-    {
-    iLanguage = aLanguage;
-    CloseUI();
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::CAknFepUIManagerChinese
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerChinese::CAknFepUIManagerChinese(MAknFepManagerUIInterface* aFepMan, 
-                                                 CAknFepCaseManager* aCaseMan)
-    : CAknFepUIManagerBase(aFepMan, aCaseMan),
-      iFepUiState(NULL, NULL),
-      iPrevMode(ENumber),
-      iQwertyMode(ETrue)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::ConstructL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::ConstructL(TLanguage aLanguage)
-    {
-    CAknFepUIManagerBase::ConstructL(aLanguage);
-    iContainerPane = FepMan()->UiInterface()->NewAknFepUICtrlContainerChineseL();
-    ResetFlags();  
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::QueryPtiEngine
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerChinese::QueryPtiEngine(void)
-    {
-    MPtiLanguage* ptiLang = iPtiEngine->CurrentLanguage();
-
-    // query ptiengine 
-    if(ptiLang)
-        {
-        SetFlag(EQueryPtiEngineAlready);
-        if(ptiLang->HasInputMode(EPtiEnginePinyinByPhrase))
-            {
-            SetFlag(ESupportPinyinPhrase);
-            }
-            
-        if(ptiLang->HasInputMode(EPtiEngineZhuyinByPhrase))
-            {
-            SetFlag(ESupportZhuyinPhrase);
-            }
-            
-        if (ptiLang->HasInputMode(EPtiEngineStrokeByPhrase))
-            {
-            SetFlag(ESupportStrokePhrase);
-            }
-        }
-    }
-
-void CAknFepUIManagerChinese::ChangeStatetItut(TUIState aState)
-    {
-    switch(aState)
-        {
-        case EInitial:
-            {
-            switch(iMode)
-            {
-            case EPinyin:
-            case EZhuyin:
-            case EStroke:
-            case ECangJie: 
-                iFepUiState = TAknFepInputStateInitialChineseGeneric(this, iContainerPane);
-                break;
-            case EZhuyinFind:
-                iFepUiState = TAknFepInputStateInitialZhuyinFind(this, iContainerPane);
-                break;
-            case EStrokeFind:
-                iFepUiState = TAknFepInputStateInitialStrokeFind(this, iContainerPane);
-                break;
-            case ELatin:
-                {
-                if (iPredictive)
-                    {
-                    iFepUiState = TAknFepInputStateInitialWesternPredictive(this);
-                    }
-                else
-                    {
-                    iFepUiState = TAknFepInputStateInitialLatinMultitap(this);
-                    }
-                }
-                break;
-            case ENumber:
-                {
-                // Map directly to the resources...
-                iFepUiState = TAknFepInputStateInitialNumber(this);
-                break;
-                }
-            default:
-                AknFepPanic(EAknFepPanicBadInputState);
-            }
-            break;
-            }
-        case EEntry:
-            {
-            switch(iMode)
-                {
-                case EPinyin:
-                    if(IsFlagSet(ESupportPinyinPhrase))
-                        {
-                        iFepUiState = TAknFepInputStateEntryPinyinPhrase(this,iContainerPane);
-                        }
-                    else 
-                        {
-                        iFepUiState = TAknFepInputStateEntryPinyin(this,iContainerPane);
-                        }
-                    break;
-                case EZhuyin:
-                    if(IsFlagSet(ESupportZhuyinPhrase))
-                        {	
-                        iFepUiState = TAknFepInputStateEntryZhuyinPhrase(this,iContainerPane);
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryZhuyin(this,iContainerPane);
-                        }
-                    break;
-                case EStroke:
-                    if (IsFlagSet(ESupportStrokePhrase))
-                        {
-                        iFepUiState = TAknFepInputStateEntryStrokePhrase(this,iContainerPane);
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryStroke(this,iContainerPane);
-                        }
-                    break;
-                case ELatin:
-                    iFepUiState = TAknFepInputStateEntryWesternPredictive(this);
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                }
-            }
-            break;
-        case ECandidate:
-            {
-            // modify for phrase creation
-            FepMan()->EntryPhrase( ETrue );
-            FepMan()->EnableKeyStar( EFalse );
-            switch ( iMode )
-                {
-                case EPinyin:
-                    {
-                    if ( IsFlagSet( ESupportPinyinPhrase ) )
-                        {
-                        iFepUiState
-                            = TAknFepUiInputStateCandidatePinyinAndStrokePhrase(
-                                this, iContainerPane );
-                        }
-                    }
-                    break;
-                case EStroke:
-                    {
-                    if ( IsFlagSet( ESupportStrokePhrase ) )
-                        {
-                        iFepUiState
-                            = TAknFepInputStateCandidateStrokePhrase(
-                                this, iContainerPane );
-                        }
-                    }
-                    break;
-                case EZhuyin:
-                    {
-                    if ( IsFlagSet( ESupportZhuyinPhrase ) )
-                        {
-                        iFepUiState
-                            = TAknFepInputStateCandidateChinesePhrase( this,
-                                iContainerPane );
-                        }
-                    }
-                    break;
-                default:
-                    {
-                    iFepUiState = TAknFepInputStateCandidateChinese( this,
-                        iContainerPane );
-                    }
-                }
-            }
-            break;
-            
-        case EPredictiveCandidate:
-            {
-            // add for phrase creation
-            FepMan()->PhraseCreation( EFalse );
-            FepMan()->PinyinPhraseCreation( EFalse );
-            FepMan()->EntryPhrase( ETrue );
-            FepMan()->EnableKeyStar( ETrue );
-            TRAP_IGNORE( FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT ) );
-            iContainerPane->PinyinPopupWindow()->ResetStrokeArray();
-            switch(iMode)
-                {
-                case EPinyin:
-                    if(IsFlagSet(ESupportPinyinPhrase))
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidatePinyinPhrase(
-                                                                    this,iContainerPane);
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidatePinyin(
-                                                             this,iContainerPane);     
-                        }
-                    break;
-                case EStroke:
-                    if (IsFlagSet(ESupportStrokePhrase))
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateStrokePhrase(
-                                                                   this,iContainerPane);     
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateStroke(
-                                                              this,iContainerPane);     
-                        } 
-                    break;
-                case EZhuyin:
-                        if(IsFlagSet(ESupportZhuyinPhrase))
-                            {
-                            iFepUiState = TAknFepInputStatePredictiveCandidateChinesePhrase(
-                                                                        this,iContainerPane);
-                            }
-                        else
-                            {
-                            iFepUiState = TAknFepInputStatePredictiveCandidate(this,iContainerPane);
-                            }
-                    break;
-                default:
-                AknFepPanic(EAknFepPanicBadInputState);
-                }
-            }
-            break;
-        case EPredictiveInput:
-            if((IsFlagSet(ESupportPinyinPhrase) || IsFlagSet(ESupportZhuyinPhrase) 
-             || IsFlagSet(ESupportStrokePhrase)) 
-               && (iMode != ECangJie))
-                {
-                iFepUiState = TAknFepInputStatePredictiveInputChinesePhrase(this, iContainerPane);
-                }
-            else
-                {
-                iFepUiState = TAknFepInputStatePredictiveInputChinese(this, iContainerPane);
-                }
-            break;
-        // add for phrase creation
-        case EStrokeSequenceEdit:
-            if ( IsFlagSet( ESupportStrokePhrase ) && ( iMode != ECangJie ) )
-                {
-                FepMan()->EnableKeyStar( EFalse );
-                iFepUiState = TAknFepInputStateEditStrokePhrase( this, iContainerPane ); 
-                }
-            break;
-        // add for phrase creation
-        case EKeySequenceEdit:
-            if ( IsFlagSet( ESupportPinyinPhrase ) && ( iMode != ECangJie ) )
-                {
-                iFepUiState = TAknFepInputStateEntryPinyinPhraseCreation( this, iContainerPane );
-                }
-            break;
-        // add for phrase creation
-        case EZhuyinSequenceEdit:
-            if ( IsFlagSet( ESupportZhuyinPhrase ) && ( iMode != ECangJie ) )
-                {
-                iFepUiState = TAknFepInputStateEntryZhuyinPhraseCreation( this, iContainerPane );
-                }
-            break;
-        // add for phrase creation
-        case ESpellingSelection:
-            if ( IsFlagSet( ESupportPinyinPhrase ) && (iMode != ECangJie) )
-                {
-                FepMan()->EnableKeyStar( EFalse );
-                iFepUiState = TAknFepInputStateSpellingPinyinPhraseCreation( this, iContainerPane );
-                }
-            break;
-        // add for phrase creation
-        case ECandidateSelection:
-            if ( IsFlagSet (ESupportPinyinPhrase) && ( iMode != ECangJie ) )
-                {
-                FepMan()->EnableKeyStar( EFalse );
-                iFepUiState = TAknFepInputStateCandidatePinyinPhraseCreation( this, iContainerPane );
-                }
-            break;
-        default:
-            AknFepPanic(EAknFepPanicBadInputState);
-        }
-    
-    }
-    
-void CAknFepUIManagerChinese::ChangeStateQwerty(TUIState aState)
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-    TPtiKeyboardType kbdType = iFepMan->KeyboardLayout();    
-#endif    
-    switch(aState)
-        {
-        case EQwerty:
-            if(iMode == EPinyin || iMode == EStroke || iMode == EZhuyin || iMode == ECangJie)
-                {
-                iFepUiState = TAknFepInputStateInitialChineseGenericQwerty(this, iMode);
-                }
-            else if(iMode == EStrokeFind)
-                {
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-                if(EPtiKeyboardQwerty4x10 == kbdType ||
-                   EPtiKeyboardQwerty3x11 == kbdType)
-                    {
-                    iFepUiState = TAknFepInputStateStrokeFindMiniQwerty(this,iMode);
-                    }
-                else
-                    {
-#endif //RD_INTELLIGENT_TEXT_INPUT                
-                iFepUiState = TAknFepInputStateStrokeFindQwerty(this,iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-                    }
-#endif                
-                }
-            else if(iMode == EZhuyinFind)
-                {
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-                if(EPtiKeyboardQwerty4x10 == kbdType ||
-                   EPtiKeyboardQwerty3x11 == kbdType)
-                    {
-                    iFepUiState = TAknFepInputStateZhuyinFindMiniQwerty(this,iMode);
-                    }
-                else
-                    {
-#endif //RD_INTELLIGENT_TEXT_INPUT                 
-                iFepUiState = TAknFepInputStateZhuyinFindQwerty(this,iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-                    }
-#endif  
-                }
-            break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#ifdef __HALF_QWERTY_KEYPAD
-        case EHalfQwerty: 
-            if (iMode == EPinyin || iMode == EStroke || iMode == EZhuyin)
-                {
-                iFepUiState = TAknFepInputStateInitialChineseGenericHalfQwerty(
-                        this, iMode);
-                }
-            else if(iMode ==EStrokeFind)
-                {
-                iFepUiState = TAknFepInputStateStrokeFindHalfQwerty(this,
-                                            iMode);
-                }    
-            else if(iMode ==EZhuyinFind)
-                {
-                iFepUiState = TAknFepInputStateZhuyinFindHalfQwerty(this,
-                                                            iMode);
-                }
-            break;
-#endif
-#endif
-        case EEntry:
-            {
-            switch(iMode)
-                {
-                case EZhuyin:
-                    if(IsFlagSet(ESupportZhuyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)
-                           {
-                           iFepUiState = TAknFepInputStateEntryMiniQwertyZhuyinPhrase(this, iContainerPane); 
-                           }
-                        else if(EPtiKeyboardHalfQwerty == kbdType)
-                           {
-                           iFepUiState = TAknFepInputStateEntryHalfQwertyZhuyinPhrase(this, iContainerPane);
-                           }
-                        else
-                           {
-#endif
-                        iFepUiState = TAknFepInputStateEntryQwertyZhuyinPhrase(this, 
-                                                                               iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                           }   
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryQwertyZhuyin(this, iContainerPane);
-                        }
-                    
-                    break;
-                case EPinyin:
-                    if(IsFlagSet(ESupportPinyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                            
-                            { 
-                            iFepUiState = TAknFepInputStateEntryMiniQwertyPinyinPhrase(this, iContainerPane);
-                            }
-                        else if (EPtiKeyboardHalfQwerty == kbdType)
-                            {
-                            iFepUiState = TAknFepInputStateEntryHalfQwertyPinyinPhrase(this, iContainerPane);
-                            }
-                        else
-                            {
-#endif
-                        iFepUiState = TAknFepInputStateEntryQwertyPinyinPhrase(
-                                                           this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                            }
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryQwertyPinyin(this, iContainerPane);
-                        }
-                    break;
-                case EStroke:
-                    if (IsFlagSet(ESupportStrokePhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                        	
-                            {
-                            iFepUiState = TAknFepInputStateEntryMiniQwertyStrokePhrase(
-                                                                  this, iContainerPane);
-                        	}
-                        else if (EPtiKeyboardHalfQwerty == kbdType)
-                            {
-                            iFepUiState= TAknFepInputStateEntryHalfQwertyStrokePhrase(this, iContainerPane);
-                            }
-                        else
- 	                       {
-#endif
-                        	iFepUiState = TAknFepInputStateEntryQwertyStrokePhrase(
-                                                             this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
- 	                       }	
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryQwertyStroke(this, iContainerPane);
-                        }
-                    break;
-                case ECangJie:
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                        {
-                        iFepUiState = TAknFepInputStateEntryMiniQwertyCangJie(this, iContainerPane);                    	
-                    	}
-                    else
-                    	{
-#endif
-                    	iFepUiState = TAknFepInputStateEntryQwertyCangJie(this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                    	}
-#endif
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                }
-            }
-            break;
-        case ECandidate:
-            if(iMode == EZhuyin)
-                {
-                if(IsFlagSet(ESupportZhuyinPhrase))
-                    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                    	{
-                    	iFepUiState = TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase(
-                                                                  this, iContainerPane);
-                    	}
-#ifdef __HALF_QWERTY_KEYPAD
-                        else if ( EPtiKeyboardHalfQwerty == kbdType )
-                            {
-                            iFepUiState = TAknFepUiInputStateCandidateHalfQwertyChinesePhrase(
-                                                                                              this, iContainerPane);
-                            }
-#endif
-                    else
-         	            {
-#endif
-         	            iFepUiState = TAknFepInputStateCandidateQwertyZhuyinPhrase(
-                                                            this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-         	            }	
-#endif
-                    }
-                else
-                    {
-                    iFepUiState = TAknFepInputStateCandidateQwertyZhuyin(this, iContainerPane);
-                    }
-                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-            else if(iMode == EPinyin)
-                {
-                if(IsFlagSet(ESupportPinyinPhrase))
-                    {
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                        { 
-                        iFepUiState = TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase(this, iContainerPane);
-                        }
-                        else if(EPtiKeyboardHalfQwerty == kbdType)
-                        {
-                        iFepUiState=TAknFepUiInputStateCandidateHalfQwertyChinesePhrase(
-                                                                             this, iContainerPane);
-                        }
-                    }                 
-                }
-            else if(iMode == EStroke)
-            	{
-                 if (IsFlagSet(ESupportStrokePhrase))
-                        {
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                        	{
-                            iFepUiState = TAknFepUiInputStateCandidateMiniQwertyStrokePhrase(this, iContainerPane);
-                            }
-                        else if ( EPtiKeyboardHalfQwerty == kbdType )
-                            {
-                            iFepUiState=TAknFepUiInputStateCandidateHalfQwertyChinesePhrase( this, iContainerPane);
-                            }
-                       }
-            	}
-	        else if(iMode == ECangJie)
-	        	{
-                if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                     EPtiKeyboardQwerty3x11 == kbdType ||
-                     EPtiKeyboardHalfQwerty == kbdType ||
-                     EPtiKeyboardCustomQwerty == kbdType)                    	
-                {
-                iFepUiState = TAknFepUiInputStateCandidateMiniQwertyPinyinAndStrokePhrase(
-                                                                     this, iContainerPane);
-                }
-	        	}
-#endif      
-            break;
-        case EPredictiveCandidate:
-            if(iMode == EZhuyin)
-                {
-                if(IsFlagSet(ESupportZhuyinPhrase))
-                    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                    if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                         EPtiKeyboardQwerty3x11 == kbdType ||
-                         EPtiKeyboardCustomQwerty == kbdType)                    	
-                        {
-                    	iFepUiState = TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-                                                                          this, iContainerPane);
-                    	}
-#ifdef __HALF_QWERTY_KEYPAD
-                    else if( EPtiKeyboardHalfQwerty == kbdType )
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase(
-                                                                           this, iContainerPane);
-                        }
-#endif
-                    else
-                    	{
-#endif
-                    	iFepUiState = TAknFepInputStatePredictiveCandidateQwertyZhuyinPhrase(
-                                                                      this, iContainerPane);                    	
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        }	
-#endif
-                    }
-                else
-                    {
-                    iFepUiState = TAknFepInputStatePredictiveCandidateQwertyZhuyin(
-                                                              this, iContainerPane);
-                    }
-                
-                }
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-            else if(iMode == EPinyin)
-                {
-                if(IsFlagSet(ESupportPinyinPhrase))
-                    {
-                    if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                         EPtiKeyboardQwerty3x11 == kbdType ||
-                         EPtiKeyboardCustomQwerty == kbdType)                    	
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-                                                                             this, iContainerPane);
-                        }
-#ifdef __HALF_QWERTY_KEYPAD
-                    else if( EPtiKeyboardHalfQwerty == kbdType )
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase(
-                                                                           this, iContainerPane);
-                        }
-#endif
-                    }                 
-                }
-           else if(iMode == EStroke)
-            	{
-                 if (IsFlagSet(ESupportStrokePhrase))
-                        {
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                        	{
-                            iFepUiState = 
-                                   TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-                                                                          this, iContainerPane);
-                        	}
-#ifdef __HALF_QWERTY_KEYPAD
-                    else if( EPtiKeyboardHalfQwerty == kbdType )
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveCandidateHalfQwertyChinesePhrase(
-                                                                           this, iContainerPane);
-                        }
-#endif
-                       }
-	
-            	}
-            else if(iMode == ECangJie)
-            	{
-
-                if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                     EPtiKeyboardQwerty3x11 == kbdType ||
-                     EPtiKeyboardHalfQwerty == kbdType ||
-                     EPtiKeyboardCustomQwerty == kbdType)                    	
-                 {
-                 iFepUiState = TAknFepInputStatePredictiveCandidateMiniQwertyChinesePhrase(
-                                                                       this, iContainerPane);
-                 }
-
-            	}
-#endif
-            break;
-        case EPredictiveInput:
-            {
-            switch(iMode)
-                {
-                case EPinyin:
-                    if(IsFlagSet(ESupportPinyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                            {
-                            iFepUiState = TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase/*TAknFepInputStatePredictiveInputQwertyPinyinPhrase*/(this, iContainerPane);
-                            }
-                        else
-                            {
-#endif
-                            iFepUiState = TAknFepInputStatePredictiveInputQwertyPinyinPhrase(
-                                                                        this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-							}
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveInputQwertyPinyin(
-                                                              this, iContainerPane);
-                        }
-                    break;
-                case EStroke:                
-                    if(IsFlagSet(ESupportStrokePhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                      	   {
-                           iFepUiState = TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase(
-                                                                             this, iContainerPane);
-                       	   }
-                        else
-         	               {
-#endif
-         	               iFepUiState = TAknFepInputStatePredictiveInputQwertyStrokePhrase(
-                                                                     this, iContainerPane);                        	
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-         	               }
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveInputQwertyStroke(
-                                                              this, iContainerPane);
-                        }
-                    break;
-                case ECangJie:
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                    if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                         EPtiKeyboardQwerty3x11 == kbdType ||
-                         EPtiKeyboardHalfQwerty == kbdType ||
-                         EPtiKeyboardCustomQwerty == kbdType)                    	
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase(
-                                                                          this,iContainerPane);
-
-                        }
-                    else 
-                    	{
-#endif
-                    	iFepUiState = TAknFepInputStatePredictiveInputQwerty(this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                    	}    
-#endif
-                    break;
-                case EZhuyin:
-                    if(IsFlagSet(ESupportZhuyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                    	
-                        	{
-                            iFepUiState = TAknFepInputStatePredictiveInputMiniQwertyChinesePhrase/*TAknFepInputStatePredictiveInputQwertyPinyinPhrase*/(this, iContainerPane);
-                        	}
-                        else
-                        	{
-#endif
-                        	iFepUiState = TAknFepInputStatePredictiveInputQwertyZhuyinPhrase(
-                                                                       this, iContainerPane);
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        	}
-#endif
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStatePredictiveInputQwertyZhuyin(
-                                                              this, iContainerPane);
-                        }
-                    break;  
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                }
-            }
-            break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT 
-        case EMiniQwertyEdit:
-            {
-            switch(iMode)
-                {
-                case EZhuyin:
-                    if(IsFlagSet(ESupportZhuyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)
-                           {
-                           iFepUiState = TAknFepInputStateEditingMiniQwertyZhuyinPhrase( this, iContainerPane );
-                           }
-#endif
-                        }
-                    break;
-                case EPinyin:
-                    if(IsFlagSet(ESupportPinyinPhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                            
-                            { 
-                            iFepUiState = 
-                                TAknFepInputStateEditinigMiniQwertyPinyinPhrase( 
-                                                             this,
-                                                             iContainerPane );
-                            }                            
-#endif
-                        }
-                    break;
-                case EStroke:
-                    if (IsFlagSet(ESupportStrokePhrase))
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT        
-                        if ( EPtiKeyboardQwerty4x10 == kbdType ||
-                             EPtiKeyboardQwerty3x11 == kbdType ||
-                             EPtiKeyboardHalfQwerty == kbdType ||
-                             EPtiKeyboardCustomQwerty == kbdType)                           
-                            {
-                            iFepUiState = 
-                                TAknFepInputStateEditingMiniQwertyStrokePhrase(
-                                                              this, 
-                                                              iContainerPane);
-                            }
-#endif
-                        }
-                    break;
-                default:
-                    break;
-                }   
-            }
-            break;
-        case EZhuyinSpelling:
-            {
-            iFepUiState = TAknFepInputStateSpellingMiniQwertyZhuyin( this, iContainerPane );
-            }
-            break;
-        case EZhuyinCandidate:
-            {
-            iFepUiState = TAknFepInputStateCanindateSelectingMiniQwertyZhuyin( this, iContainerPane );
-            }
-            break;
-#endif
-        default:
-            AknFepPanic(EAknFepPanicBadInputState);
-    }
-}
-    
-void CAknFepUIManagerChinese::UpdateCangJieState()
-    {
-    // Reset mode
-    if (iMode == ECangJie)
-        {
-        ChangeStateQwerty( EQwerty );
-        }
-    }
-
-TBool CAknFepUIManagerChinese::IsValidChineseSymbol(TInt aKey) const
-	{
-	TBool respond = EFalse;
-	if((aKey >= EStdKeyComma && aKey <= EStdKeyNkpPlus)|| aKey == EPtiKeyStar )
-		{
-		respond = ETrue;
-		}
-	return respond;
-	}
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerChinese::RollbackPreviousCharL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerChinese::RollbackPreviousCharL()
-    {
-    if ( iInputSeqLenDeltaWithLastKey > 0 )
-        {
-        HandleKeyL( EStdKeyBackspace, EShortKeyPress );
-        return ETrue;
-        }
-    else
-        {
-        return CAknFepUIManagerBase::RollbackPreviousCharL();
-        }
-    }
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-// End of file
--- a/fep/aknfep/src/AknFepUiManagerJapanese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,866 +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 CAknFepUIManagerJapanese methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32svr.h> // RDebug stuff...
-#include <txtfrmat.h>
-#include <e32keys.h>
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepUiManagerBase.h"
-#include "AknFepUIManagerJapanese.h"
-#include "AknFepManagerInterface.h"         // MAknFepManagerInterface
-#include "AknFepUIManagerStateInterface.h"  // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepCaseManager.h"
-
-#include "AknFepUiInputStateInitialHiraganaKanji.h"
-#include "AknFepUiInputStateInitialHiragana.h"
-#include "AknFepUiInputStateInitialKatakana.h"
-#include "AknFepUiInputStateInitialLatinJapanese.h"
-#include "AknFepUiInputStateInitialFullNumber.h"
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-#include "AknFepUiInputStateEntryHiraganaKanji.h"
-#include "AknFepUiInputStateEntryKatakana.h"
-#include "AknFepUiInputStateEntryLatinJapanese.h"
-#include "AknFepUiInputStateConversionHiraganaKanji.h"
-#include "AknFepUiInputStateCandidateHiraganaKanji.h"
-#include "AknFepUiInputStateCompletionHiraganaKanji.h"
-#include "AknFepUiInputStateCompletionPredictiveHiraganaKanji.h"
-#include "AknFepUiInputStateCompletionJapaneseMultitap.h"
-#include "AknFepUiInputStateCompletionKatakana.h"
-#include "AknFepUiInputStateCompletionLatinJapanese.h"
-#include "AknFepUiInputStatePredictiveInputJapanese.h"
-#include "AknFepUiInputStateNextWordJapanesePredictive.h"
-#include "AknFepUICtrlContainerJapanese.h"
-#include "AknFepPanic.h"
-#include "AknFepUiInputStateCandidateRetroActive.h"
-
-#include <AknIndicatorContainer.h>  // CAknIndicatorContainer::TIndicatorContext
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>   // MPtiEngineCompositionDataInterface
-#include <PtiDefs.h>                // keys
-
-// CONSTANTS
-
-// LOCAL FUNCTION PROTOTYPES
-static TBool IsNumericKey(TInt aKey);
-static TBool IsQwertyKey(TInt aKey);
-
-//============================ LOCAL FUNCTIONS ==============================
-
-// -----------------------------------------------------------------------------
-// IsNumericKey
-//
-// Returns: ETrue is returned if aKey is number key
-//
-// -----------------------------------------------------------------------------
-//
-static TBool IsNumericKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if (aKey >= EPtiKeyQwerty0 && aKey <= EPtiKeyQwerty9)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-// -----------------------------------------------------------------------------
-// IsQwertyKey
-//
-// Returns: ETrue is returned if aKey is qwerty key
-//
-// -----------------------------------------------------------------------------
-//
-static TBool IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ) ||
-        IsNumericKey( aKey ) ||
-        aKey == EStdKeySpace ||
-        aKey == EPtiKeyQwertyPlus ||
-        aKey == EPtiKeyQwertyMinus ||
-        aKey == EPtiKeyQwertyComma ||
-        aKey == EPtiKeyQwertySemicolon ||
-        aKey == EPtiKeyQwertyFullstop ||
-        aKey == EPtiKeyQwertyHash ||
-        aKey == EPtiKeyQwertySlash ||
-        aKey == EPtiKeyQwertyApostrophe)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-
-/**
- *  CAknFepUIManagerJapanese class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::NewL
-//
-//
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerJapanese* CAknFepUIManagerJapanese::NewL(MAknFepManagerUIInterface* aFepMan,
-                                                         CAknFepCaseManager* aCaseMan,
-                                                         TLanguage aLanguage)
-    {
-    CAknFepUIManagerJapanese* self = new(ELeave)CAknFepUIManagerJapanese(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::~CAknFepUIManagerJapanese
-//
-//
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerJapanese::~CAknFepUIManagerJapanese()
-    {
-    delete iCandidateArray;
-    delete iContainerPane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::SetCase
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::SetCase(TCase aCase)
-    {
-    CAknFepUIManagerBase::SetCase(aCase);
-
-    if (iMode != ENumber)
-        {
-        if (!iCaseMan->IsAbleChangeCase())
-            {
-            if (iCaseMan->CurrentCase() == EAknEditorLowerCase)
-                {
-                TRAP_IGNORE(iPtiEngine->HandleCommandL(EPtiCommandUseLatinCaseLowerOnlyKeyMap));
-                }
-            else if (iCaseMan->CurrentCase() == EAknEditorUpperCase)
-                {
-                TRAP_IGNORE(iPtiEngine->HandleCommandL(EPtiCommandUseLatinCaseUpperOnlyKeyMap));
-                }
-            }
-        else
-            {
-            TRAP_IGNORE(iPtiEngine->HandleCommandL(EPtiCommandUseLatinDefaultKeyMap));
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::HandleKeyL
-//
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerJapanese::HandleKeyL(TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/)
-    {
-    TUIState currentState = iFepUiState.State();
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-
-    // If current input mode is Number or Hiragana,
-    // numeric long keypress doesn't operate.
-    if (iMode == ENumber || iMode == EHiragana)
-        {
-        if (IsNumericKey(aKey) && aLength == ELongKeyPress)
-            {
-            return ETrue;
-            }
-        }
-
-    if (iMode == EHiragana)
-        {
-        if( aKey == EPtiKeyStar && aLength == ELongKeyPress)
-            {
-            return ETrue;
-            }
-        }
-    // CBA keypress is valid when input state is Initial, Entry
-    // Predictive input or NextWord.
-    switch (aKey)
-        {
-        case EKeyCBA1:          // ITU-T left softkey
-        case EKeyCBA2:          // ITU-T right softkey
-        case EStdKeyDevice0:    // Qwerty left softkey (=0xa4)
-        case EStdKeyDevice1:    // Qwerty right softkey(=0xa5)
-            // In case of Latin and Number, all characters must be committed.
-            if (iMode != EHiraganaKanji)
-                {
-                CloseUI();
-                }
-            switch (iStatePtr->State())
-                {
-                case EInitial:
-                case EEntry:
-                case EPredictiveInput:
-                case ENextWord:
-                    return EFalse;
-                default:
-                    return ETrue;
-                }
-            //break;  not needed
-        default:
-            // move to next line
-            break;
-        }
-
-    TPtiTextCase oldPtiCaseMode = iPtiEngine->Case();
-    TPtiTextCase caseMode = EPtiCaseLower;
-    TPtiTextCase shiftedCase = caseMode;
-    if (IsQwerty())
-        {
-        caseMode = EPtiCaseLower;
-        if (!FepMan()->IsOnlyNumericPermitted())
-            {
-            caseMode = oldPtiCaseMode;
-            if (iMode & (EHiraganaKanji|EHiragana|EKatakana))
-                {
-                if (CaseMan()->CurrentCase() == EAknEditorTextCase
-                 && caseMode == EPtiCaseUpper
-                 && iStatePtr->State() == EInitial)
-                    {
-                    iPtiEngine->SetCase(EPtiCaseLower);
-                    caseMode = EPtiCaseLower;
-                    oldPtiCaseMode = EPtiCaseLower;
-                    }
-                }
-            else if (iMode == ELatin)
-                {
-                switch (CaseMan()->CurrentCase())
-                    {
-                    case EAknEditorUpperCase:
-                    case EAknEditorTextCase:
-                        caseMode = EPtiCaseUpper;
-                        break;
-                    case EAknEditorLowerCase:
-                    default:
-                        caseMode = EPtiCaseLower;
-                        break;
-                    }
-                }
-            }
-        shiftedCase = caseMode;
-        if ( FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode) )
-            {
-            // while pressing Shift key
-            if ( aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ )
-                {
-                shiftedCase = (caseMode != EPtiCaseUpper)? EPtiCaseUpper : EPtiCaseLower;
-                }
-            else
-                {
-                // except alpha key
-                shiftedCase = EPtiCaseUpper;
-                }
-            }
-        else if (!(aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ))
-            {
-            // out of A-Z key
-            shiftedCase = EPtiCaseLower;
-            }
-
-        if (shiftedCase != oldPtiCaseMode)
-            {
-            iPtiEngine->SetCase(shiftedCase);
-            }
-        }
-
-    TBool ret = iStatePtr->HandleKeyL(aKey, aLength);
-    // If the state was changed by keypress event and not handle keypress event,
-    // changed state handle it keypress event.
-    while (!ret && currentState != iFepUiState.State())
-        {
-        // If editor was filled by characters,
-        // don't handle no more numeric keypress or qwerty keypress
-        if (iStatePtr->State() == EInitial
-         && !FepMan()->EditorHasFreeSpace())
-            if (!IsQwerty() && IsNumericKey(aKey))
-                {
-                return ETrue;
-                }
-            else if (IsQwerty() && IsQwertyKey(aKey))
-                {
-                return ETrue;
-                }
-
-        if ( (IsQwerty())
-          && (iPtiEngine->Case() != shiftedCase) )
-            {
-            iPtiEngine->SetCase(shiftedCase);
-            }
-
-        currentState = iFepUiState.State();
-        ret = iFepUiState.HandleKeyL(aKey, aLength);
-        }
-
-    if (IsQwerty())
-        {
-        if (oldPtiCaseMode != iPtiEngine->Case())
-            {
-            iPtiEngine->SetCase(oldPtiCaseMode);
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::CloseUI
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::CloseUI()
-    {
-    if (iStatePtr->State() != EInitial)
-        {
-        iStatePtr->CloseUI();
-        if (iStatePtr->State() == EMultiCompletion)
-            {
-            ChangeState(EInitial);
-            }
-        else
-            {
-            // Commit Uncommited string
-            if (iStatePtr->State() != ENextWord)
-                {
-                ChangeState(EMultiCompletion);
-                }
-            TRAP_IGNORE(iStatePtr->HandleCommandL(EAknFepAllCompletion));
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::GetFormatOfFepInlineText
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::GetFormatOfFepInlineText(TCharFormat& aFormat,
-                                                        TInt& aNumberOfCharactersWithSameFormat,
-                                                        TInt aPositionOfCharacter) const
-    {
-    TRgb highlightColor1 = AKN_LAF_COLOR_STATIC(244);
-    TRgb highlightColor2 = AKN_LAF_COLOR_STATIC(210);
-    TRgb textColor = AKN_LAF_COLOR_STATIC(0);
-    if ((iFepUiState.State() == EEntry)
-     || (iFepUiState.State() == EConversion)
-     || (iFepUiState.State() == ECandidate)
-     || (iFepUiState.State() == ECandidateRetroActive)
-     || (iFepUiState.State() == EPredictiveInput))
-        {
-        const MPtiEngineCompositionDataInterface* data = PtiEngine()->CompositionData();
-        TInt length = 0;
-        TInt clauseCount = 0;
-        TInt preLength = 0;
-        TPtrC8 clauseChar = data->LengthOfPhrase();
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        if ( clauseChar.Length() )
-           {
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__        
-        for (; length < aPositionOfCharacter; ++clauseCount)
-            {
-            preLength = length;
-            length += clauseChar[clauseCount];
-            }
-        if (length == aPositionOfCharacter)
-            aNumberOfCharactersWithSameFormat = clauseChar[clauseCount];
-        else
-            {
-            --clauseCount;
-            aNumberOfCharactersWithSameFormat = clauseChar[clauseCount]
-                                                + preLength
-                                                - aPositionOfCharacter;
-            }
-        switch (data->AttributeOfPhrase()[clauseCount])
-            {
-            //Input phase
-            case MPtiEngineCompositionDataInterface::EPtiAttributeTransitoryInput:
-                {
-                if (iFlagInlineEditUnderline)
-                    {
-                    aFormat.iFontPresentation.iHighlightColor = highlightColor1;
-                    aFormat.iFontPresentation.iHighlightStyle = TFontPresentation::
-                                                                EFontHighlightNormal;
-                    }
-                else
-                    {
-                    }
-                }
-                break;
-            // Conversion phase(no target phrase)
-            case MPtiEngineCompositionDataInterface::EPtiAttributeNonTargetConvert:
-                {
-                aFormat.iFontPresentation.iHighlightColor = highlightColor1;
-                aFormat.iFontPresentation.iHighlightStyle = TFontPresentation::
-                                                            EFontHighlightNormal;
-                }
-                break;
-            // Conversion phase(target Phrase)
-            case MPtiEngineCompositionDataInterface::EPtiAttributeTargetConvert:
-                {
-                aFormat.iFontPresentation.iTextColor = textColor;
-                aFormat.iFontPresentation.iHighlightColor = highlightColor2;
-                aFormat.iFontPresentation.iHighlightStyle = TFontPresentation::
-                                                            EFontHighlightNormal;
-                }
-                break;
-            default:
-                break;
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-						}
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__              
-            }
-        }
-        else if (iFepUiState.State() == EMultiCompletion)
-            {
-            const MPtiEngineCompositionDataInterface* data = PtiEngine()->CompositionData();
-            TInt length = data->CompletedString().Length();
-            // Panic in case (aNumberOfCharactersWithSameFormat < 1)
-            if( !(length > 0) )
-               {
-               length = 1;
-               }
-
-            aNumberOfCharactersWithSameFormat = length;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::IsValidShiftKeyPress
-//
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerJapanese::IsValidShiftKeyPress() const
-    {
-    TBool ret = ETrue;
-    switch (iMode)
-        {
-        case EHiraganaKanji:
-            // ITU-T has to check Edit-key(= Shift-key). If the state is Initial
-            // or NextWord, Edit-key is valid, the other states are invalid.
-            // However, in Qwerty input, shift-key is used for changing Case mode,
-            // so, shift-key is always valid even if the statue is anything.
-            if (!iQwerty)
-                {
-                if (iStatePtr->State() == EInitial || iStatePtr->State()== ENextWord)
-                    {
-                    ret = ETrue;
-                    }
-                else
-                    {
-                    ret = EFalse;
-                    }
-                }
-            break;
-        case EHiragana:
-            ret = EFalse;
-            break;
-        case EKatakana:
-        default:
-            break;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::ChangeState
-//
-//
-// ---------------------------------------------------------------------------
-//
-TUIState CAknFepUIManagerJapanese::ChangeState(TUIState aState)
-    {
-    switch(aState)
-        {
-        case EInitial:
-            {
-            switch(iMode)
-                {
-                case EHiragana:
-                    iFepUiState = TAknFepUiInputStateInitialHiragana(this, UIContainer());
-                    break;
-                case EHiraganaKanji:
-                    iFepUiState = TAknFepUiInputStateInitialHiraganaKanji(this, UIContainer());
-                    break;
-                case EKatakana:
-                    iFepUiState = TAknFepUiInputStateInitialKatakana(this, UIContainer());
-                    break;
-                case ELatin:
-                    {
-                    iFepUiState = TAknFepUiInputStateInitialLatinJapanese(this, UIContainer());
-                    }
-                    break;
-                case ENumber:
-                    iFepUiState = TAknFepUiInputStateInitialFullNumber(this, UIContainer());
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            break;
-            }
-        case EEntry:
-            {
-            switch(iMode)
-                {
-                case EHiraganaKanji:
-                   iFepUiState = TAknFepUiInputStateEntryHiraganaKanji(this, UIContainer());
-                   break;
-                case EHiragana:
-                case EKatakana:
-                   iFepUiState = TAknFepUiInputStateEntryKatakana(this, UIContainer());
-                   break;
-                case ELatin:
-                   iFepUiState = TAknFepUiInputStateEntryLatinJapanese(this, UIContainer());
-                   break;
-                case ENumber:
-                   iFepUiState = TAknFepUiInputStateEntryJapaneseMultitap(this, UIContainer());
-                   break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            }
-            break;
-        case ECandidate:
-            iFepUiState = TAknFepUiInputStateCandidateHiraganaKanji(this, UIContainer());
-            break;
-        case EPredictiveInput:
-            iFepUiState = TAknFepUiInputStatePredictiveInputJapanese(this, UIContainer());
-            break;
-        case EConversion:
-            iFepUiState = TAknFepUiInputStateConversionHiraganaKanji(this, UIContainer());
-            break;
-        case EMultiCompletion: // Only Japanese version uses this flag.
-            switch(iMode)
-                {
-                case EHiraganaKanji:
-                    if(iPredictive)
-                        {
-                        if(iFepUiState.State() == EPredictiveInput ||
-                           iFepUiState.State() == ENextWord)
-                            {
-                            iFepUiState = TAknFepUiInputStateCompletionPredictiveHiraganaKanji(this, UIContainer());
-                            }
-                        else
-                            {
-                            iFepUiState = TAknFepUiInputStateCompletionHiraganaKanji(this, UIContainer());
-                            }
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepUiInputStateCompletionHiraganaKanji(this, UIContainer());
-                        }
-                    break;
-                case EHiragana:
-                case EKatakana:
-                        {
-                        iFepUiState = TAknFepUiInputStateCompletionKatakana(this, UIContainer());
-                        }
-                    break;
-                case ENumber:
-                    iFepUiState = TAknFepUiInputStateCompletionJapaneseMultitap(this, UIContainer());
-                    break;
-                case ELatin:
-                    iFepUiState = TAknFepUiInputStateCompletionLatinJapanese(this, UIContainer());
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-                break;
-        case ENextWord: // Only Japanese version uses this flag
-            {
-            switch(iMode)
-                {
-                case EHiraganaKanji:
-                    if(iPredictive)
-                        {
-                        iFepUiState = TAknFepUiInputStateNextWordJapanesePredictive(this, UIContainer());
-                        break;
-                        }
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            }
-            break;
-        case ECandidateRetroActive:
-            {
-            switch(iMode)
-                {
-                case EHiraganaKanji:
-                    iFepUiState = TAknFepUiInputStateCandidateRetroActive(this, UIContainer());
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            }
-            break;
-        default:
-            AknFepPanic(EAknFepPanicBadInputState);
-        }
-
-    PtiEngine()->SetObserver(&iFepUiState);
-
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: New State: %d"), iFepUiState.State());
-#endif
-    TRAPD(err, iStatePtr->InitializeStateL());
-    if (err != KErrNone)
-        {
-#ifdef _DEBUG
-        RDebug::Print(_L("UI Manager: Setup Error: Mode = %d, State = %d"),
-                      iMode, iStatePtr->State());
-#endif
-        CloseUI();
-        }
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::CandidateArray
-//
-//
-// ---------------------------------------------------------------------------
-//
-CDesCArrayFlat* CAknFepUIManagerJapanese::CandidateArray()
-    {
-    return iCandidateArray;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::IsPredictive
-//
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerJapanese::IsPredictive() const
-   {
-   return iPredictive;
-   }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::SetInlineEditUnderlineVisibility
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::SetInlineEditUnderlineVisibility(TBool aFlag)
-    {
-    iFlagInlineEditUnderline = aFlag;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::SetMode
-//
-//
-// ---------------------------------------------------------------------------
-//
-#ifdef __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-void CAknFepUIManagerJapanese::SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode, TInt aKeyboardType)
-#else
-void CAknFepUIManagerJapanese::SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode)
-#endif // RD_INTELLIGENT_TEXT_INPUT
-#else
-void CAknFepUIManagerJapanese::SetMode(TInt aMode, TBool aPredictive, TBool aQwertyInputMode)
-#endif // __ITI_LONGPRESS_NUM_SHIFT_COPYPASTE__
-    {
-    iMode=aMode;
-    iPredictive = aPredictive;
-    iQwerty = aQwertyInputMode;
-    ChangeState(EInitial);
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::FepUIState
-//
-//
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerJapanese::FepUIState()
-    {
-    return &iFepUiState;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::UIContainer
-//
-//
-// ---------------------------------------------------------------------------
-//
-MAknFepUICtrlContainerJapanese* CAknFepUIManagerJapanese::UIContainer() const
-    {
-    return iContainerPane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::CAknFepUIManagerJapanese
-//
-//
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerJapanese::CAknFepUIManagerJapanese(MAknFepManagerUIInterface* aFepMan,
-                                                   CAknFepCaseManager* aCaseMan)
-    : CAknFepUIManagerBase(aFepMan, aCaseMan),
-      iFepUiState(NULL,NULL),
-      iFlagInlineEditUnderline(ETrue)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::ConstructL
-//
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::ConstructL(TLanguage aLanguage)
-    {
-    CAknFepUIManagerBase::ConstructL(aLanguage);
-
-    PtiEngine()->ActivateLanguageL(aLanguage, EPtiEngineInputModeNone);
-
-    iCandidateArray = new(ELeave) CDesCArrayFlat(1);
-    iContainerPane  = FepMan()->UiInterface()->NewAknFepUICtrlContainerJapaneseL(this);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::IsQwerty
-//
-//
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerJapanese::IsQwerty() const
-    {
-    return iQwerty;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerJapanese::HandleCommandL
-//
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::HandleCommandL(TInt aCommandId)
-    {
-    switch (aCommandId)
-        {
-        case EAknFepSoftkeyCommit:
-        case EAknFepSoftkeySelectCandidate:
-            {
-            TUIState currentState = iFepUiState.State();
-            iStatePtr->HandleCommandL(aCommandId);
-            if (currentState != iFepUiState.State())
-                {
-                if (iFepUiState.State() == EMultiCompletion)
-                    {
-                    iFepUiState.HandleKeyL(EKeyOK, EShortKeyPress);
-                    }
-                }
-            }
-            break;
-        case EAknFepSoftkeyPredictiveOn:
-            {
-            MAknFepManagerUIInterface* fepMan = FepMan();
-            CPtiEngine* ptiEngine = PtiEngine();
-
-            // Update of inline editing characters
-            TPtiEngineInputMode inputmode = (IsQwerty())?
-                        EPtiEngineHiraganaKanjiPredictiveQwerty
-                        : EPtiEngineHiraganaKanjiPredictive;
-            ptiEngine->SetInputMode(inputmode);
-            const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-            TPtrC text = data->CompletedString();
-            TPtrC text2 = data->ConvertingString();
-            if (text.Length() >0)
-                {
-                ChangeState(EMultiCompletion);
-                fepMan->CommitInlineEditL(text, text.Length());
-                if (fepMan->EditorHasFreeSpace())
-                    {
-                    ChangeState(ENextWord);
-                    }
-                else
-                    {
-                    CloseUI();
-                    ChangeState(EInitial);
-                    }
-                }
-            else if (text2.Length() > 0)
-                {
-                // Change to Predictive State
-                ChangeState(EPredictiveInput);
-                iPredictive = ETrue;
-                iStatePtr->HandleCommandL(aCommandId);
-                }
-            }
-            break;
-        default:
-            iStatePtr->HandleCommandL(aCommandId);
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerBase::ResourceChanged
-// This API is called when FEP control handles the changing resource event.
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerJapanese::ResourceChanged(TInt /*aType*/)
-    {
-    TRAP_IGNORE( iStatePtr->HandleCommandL(EAknFepResourceChanged));
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepUiManagerKorean.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +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 CAknFepUIManagerKorean Methods.
-*
-*/
-
-// INCLUDE FILES
-#include <e32svr.h> // RDebug stuff...
-#include <e32keys.h>
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManagerInterface.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiManagerKorean.h"
-
-// Western input
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-#include "AknFepUiInputStateInitialNumber.h"
-
-//Korean input
-#include "AknFepUiInputStateInitialKoreanMultitap.h"
-#include "AknFepUiInputStateQwertyKorean.h"
-#include "AknFepPanic.h"
-
-#include <AknIndicatorContainer.h>  // CAknIndicatorContainer::TIndicatorContext
-#include <PtiEngine.h> 
-#include <PtiDefs.h>
-
-// CONSTANTS
-
-/**
- *  CAknFepUIManagerKorean class.
- * 
- */
-
-//============================ MEMBER FUNCTIONS ==============================
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::NewL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerKorean* CAknFepUIManagerKorean::NewL(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan, TLanguage aLanguage)
-    {   
-    CAknFepUIManagerKorean* self = new(ELeave)CAknFepUIManagerKorean(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::~CAknFepUIManagerKorean
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerKorean::~CAknFepUIManagerKorean()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::HandleKeyL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerKorean::HandleKeyL( TInt aKey, TKeyPressLength aLength,
-		                                  TEventCode /*aEventCode*/ )
-    {
-    TUIState currentState = iFepUiState.State();
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-
-    if(!iStatePtr->HandleKeyL(aKey, aLength))
-        {       
-        if(currentState != iStatePtr->State()) //Check to see if we've changed state.
-            {
-			return iStatePtr->HandleKeyL(aKey, aLength);                                     
-            }
-        return EFalse; // we've failed to handle it..       
-        }
-    return ETrue; //we're ok.
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::CloseUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerKorean::CloseUI()
-    {
-    ChangeState(EInitial);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::SupportLanguage
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerKorean::SupportLanguage(TInt aMode) const
-    {
-    TInt lang = iLanguage;
-    switch (aMode)
-        {
-        case ELatin:
-            {
-            lang = ELangEnglish;
-            }
-            break;
-        case EHangul:
-        case ENumeric:
-        default:
-            break;
-        }
-    return lang;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::ActivateUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerKorean::ActivateUI()
-    {
-    ChangeState(EEntry);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::ChangeState
-// 
-// 
-// ---------------------------------------------------------------------------
-// MAknFepUIManagerStateInterface
-TUIState CAknFepUIManagerKorean::ChangeState(TUIState aState)
-    {
-    switch(aState)
-        {
-        case EInitial:
-            {
-            switch(iMode)
-                {
-                case ELatin:
-                    {
-                    iFepUiState = TAknFepInputStateInitialLatinMultitap(this);
-                    break;               
-                    }
-                case EHangul:
-                	{
-                    iFepUiState = TAknFepInputStateInitialKoreanMultitap(this);	         
-                	break;
-                	}
-                case ENumber:
-                case ENativeNumber:
-                    {
-                    //Map directly to the resources...
-                    iFepUiState = TAknFepInputStateInitialNumber(this);
-                    break;
-                    }
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            break;
-            }
-        case EEntry:
-            {
-            switch(iMode)
-                {
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            break;  
-            }   	
-        case ECandidate:
-        	{
-        	switch(iMode)
-        		{
-        		default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-        		}
-        	break;
-        	}
-        	
-        case EPredictiveCandidate:
-        	{
-        	switch(iMode)
-        		{
-        		default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-        		}
-            break;
-        	}
-        	
-        case EQwerty:
-            {
-            switch(iMode)
-                {
-                case ELatin:
-                    {
-                    iFepUiState = TAknFepInputStateQwertyKorean(this);
-                    break;               
-                    }
-                default:
-			AknFepPanic(EAknFepPanicBadInputState);	
-           	break;
-                }
-               break;
-            }
-            
-        case EPredictiveInput:
-            AknFepPanic(EAknFepPanicBadInputState);
-            break;
-            
-        default:
-            AknFepPanic(EAknFepPanicBadInputState);
-         	break;   
-        }
-    
-    iPtiEngine->SetObserver(&iFepUiState);
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: New State: %d"), iFepUiState.State());
-#endif
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::CAknFepUIManagerKorean
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerKorean::CAknFepUIManagerKorean(MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan)
-    : CAknFepUIManagerBase(aFepMan, aCaseMan),
-      iFepUiState(NULL)
-
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::ConstructL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerKorean::ConstructL(TLanguage aLanguage)
-    {   
-    CAknFepUIManagerBase::ConstructL(aLanguage);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerKorean::FepUIState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerKorean::FepUIState()
-    {
-    return &iFepUiState;
-    }
-    
-// End of file
--- a/fep/aknfep/src/AknFepUiManagerWestern.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,710 +0,0 @@
-/*
-* Copyright (c) 2003-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 CAknFepUIManagerWestern methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32svr.h> // RDebug stuff...
-#include <e32keys.h>
-#include <AknsUtils.h>
-
-#include "AknFepGlobalEnums.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManagerInterface.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUiManagerBase.h"
-#include "AknFepUiManagerWestern.h"
-
-// Western input
-#include "AknFepUiInputStateInitialLatinMultitap.h"
-#include "AknFepUiInputStateInitialNumber.h"
-#include "AknFepUiInputStateInitialWesternPredictive.h"
-#include "AknFepUiInputStateEntryWesternPredictive.h"
-#include "AknFepUiInputStateInitialHalfQwertyWesternPredictive.h"
-#include "AknFepUiInputStateEntryHalfQwertyWesternPredictive.h"
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY changes ---->
-#include "AknFepUiInputStateInitialQwertyWesternPredictive.h"
-#include "AknFepUiInputStateEntryQwertyWesternPredictive.h"
-// Predictive QWERTY changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-#include "AknFepPluginManager.h"
-
-// Arabic & Hebrew input
-#include "AknFepUiInputStateInitialArabicHebrewMultitap.h"
-#include "AknFepUiInputStateInitialArabicHebrewPredictive.h"
-#include "AknFepUiInputStateEntryArabicHebrewPredictive.h"
-
-// Thai input
-#include "AknFepUIInputStateInitialThaiMultitap.h"
-#include "AknFepUiInputStateInitialThaiPredictive.h"
-#include "AknFepUiInputStateEntryThaiPredictive.h"
-
-#include "AknFepThaiSCTSelector.h"
-
-//Hindi Input
-#include "AknFepUIInputStateInitialIndicMultitap.h"
-#include "AknFepUiInputStateInitialIndicPredictive.h"
-#include "AknFepUiInputStateEntryIndicPredictive.h"
-#include "AknFepUiIndicInputManager.h"
-
-// Qwerty input
-#include "AknFepUiInputStateQwerty.h"
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-#include "AknFepUiInputStateHalfQwerty.h"
-#endif
-
-#ifdef RD_HINDI_PHONETIC_INPUT	
-#include "aknfepuiinputstateinitialindicphoneticmultitap.h"
-#include "aknfepuiinputstateindicphoneticqwerty.h"
-#endif
-// Vietnamese input
-#include "AknFepUIInputStateInitialVietnameseMultitap.h"
-#include "AknFepVietnameseToneManager.h"
-#include "AknFepUiInputStateEntryVietnamesePredictive.h"
-#include "AknFepCaseManager.h"
-#include "AknFepPanic.h"
-
-// Japanese input
-#include "AknFepUiInputStateEntryWesternPredictiveJp.h"
-
-#include <AknIndicatorContainer.h>  // CAknIndicatorContainer::TIndicatorContext
-#include <PtiEngine.h> 
-#include <PtiDefs.h>
-#include <PtiUserDicEntry.h>
-#include <aknfep.rsg>
-// CONSTANTS
-
-/**
- *  CAknFepUIManagerWestern class.
- * 
- */
-
-//============================ MEMBER FUNCTIONS ==============================
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::NewL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerWestern* CAknFepUIManagerWestern::NewL(MAknFepManagerUIInterface* aFepMan, 
-                                                       CAknFepCaseManager* aCaseMan, 
-                                                       TLanguage aLanguage)
-    {   
-    CAknFepUIManagerWestern* self = new(ELeave)CAknFepUIManagerWestern(aFepMan, aCaseMan);
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::~CAknFepUIManagerWestern
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerWestern::~CAknFepUIManagerWestern()
-    {
-    delete iAknFepThaiSCTSelector;
-    delete iVietToneMarkMgr;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::HandleKeyL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerWestern::HandleKeyL( TInt aKey, TKeyPressLength aLength, 
-		                                   TEventCode /*aEventCode*/ )
-    {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // The implementation is anyway identical with the base class, so we can
-    // as well call the base implementation.
-    return CAknFepUIManagerBase::HandleKeyL(aKey, aLength);
-#else    
-    TUIState currentState = iFepUiState.State();
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-
-    if(!iStatePtr->HandleKeyL(aKey, aLength))
-        {
-        if(currentState != iStatePtr->State()) //Check to see if we've changed state.
-            {
-            return iStatePtr->HandleKeyL(aKey, aLength);
-            }
-        return EFalse; // we've failed to handle it..
-        }
-    return ETrue; //we're ok.
-#endif // RD_INTELLIGENT_TEXT_INPUT  
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::CloseUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerWestern::CloseUI()
-    {
-    ChangeState(EInitial);
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::AddTextToUserDictionaryL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerWestern::AddTextToUserDictionaryL(const TDesC& aText)
-    {
-    HBufC* udbTextBuf = HBufC::NewLC(CAknFepManager::EMaximumFepWordLength); // buffer for text
-    TPtr udbText=udbTextBuf->Des();
-    TChar ch;
-
-    TInt textLengthToAdd = Min((TInt)CAknFepManager::EMaximumFepWordLength, aText.Length());
-
-    for (TInt ii=0; ii < textLengthToAdd; ii++)
-        {
-        ch = STATIC_CAST(TChar, aText[ii]);
-        udbText.Append(ch);
-        if (ch.IsSpace() || ii == textLengthToAdd-1)
-            {
-            if (ch.IsSpace())
-                {
-                udbText.Delete(udbText.Length()-1, CAknFepManager::ESingleCharacter);
-                }
-            if (udbText.Length())
-                {
-                // add the contents of udbText to the user dictionary.
-                CPtiEngine* ptiengine = PtiEngine();
-                TPtiUserDictionaryEntry newUdbEntry(udbText);
-                TPtiEngineInputMode currentInputMode = ptiengine->InputMode();
-                // PtiEngine needs to be in predictive mode when the word is added to UDB.
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                if(iQwertyInputMode)
-	                {
-#ifdef __HALF_QWERTY_KEYPAD	              
-                	if( EPtiKeyboardHalfQwerty == iFepMan->KeyboardLayout())
-                		{
-                		ptiengine->SetInputMode( EPtiEngineHalfQwertyPredictive );
-                		}
-                	else	
-#endif //__HALF_QWERTY_KEYPAD                	
-						{
-						ptiengine->SetInputMode(EPtiEngineQwertyPredictive );	
-						}
-	                } 	                
-                else
-#endif //RD_INTELLIGENT_TEXT_INPUT
-	                {
-					ptiengine->SetInputMode(EPtiEnginePredictive);	                	
-	                }
-                ptiengine->AddUserDictionaryEntry(newUdbEntry);
-                ptiengine->SetInputMode(currentInputMode);
-                }
-            udbText.Zero();
-            }
-        }
-    CleanupStack::PopAndDestroy();  // udbTextBuf
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::GetFormatOfFepInlineText
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerWestern::GetFormatOfFepInlineText(TCharFormat& aFormat, 
-                                                       TInt& aNumberOfCharactersWithSameFormat, 
-                                                       TInt aPositionOfCharacter) const
-    {
-    if ( (iPredictive && iFepUiState.State() == EEntry ) 
-#ifdef RD_HINDI_PHONETIC_INPUT    
-//adding condition to underline uncommitted text for hindi phonetic
-    	  || TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage( ( TLanguage )iLanguage )
-#endif
-       )   // EInitial???
-        {
-        aFormat.iFontPresentation.iUnderline = EUnderlineOn;
-        if (iFepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-            {
-            aFormat.iFontPresentation.iHighlightStyle = 
-                                             TFontPresentation::EFontHighlightNoMatchesIndicator;
-            }
-        TCursorSelection uncommit = iFepMan->UncommittedText();
-        TInt lengthOfRemainderOfInlineText = uncommit.Length()-aPositionOfCharacter;
-#ifndef RD_INTELLIGENT_TEXT_INPUT
-        if(iFepMan->IsAutoCompleteOn())
-        	{
-        	// For AutoWord Completion - the suggested completion has to be gray slated
-        	CPtiEngine* ptiengine = PtiEngine();
-        	TInt actualLength = (ptiengine->CurrentInputSequence()).Length();
-        
-	        if(lengthOfRemainderOfInlineText>0)
-		        {   
-      		    if(actualLength < lengthOfRemainderOfInlineText)
-			        {
-			        if(iLanguage == ELangHindi)
-			        	{
-			        	TBuf<CAknFepManager::EMaximumFepWordLength> currentWord(ptiengine->CurrentWord());	//
-			        // AutoComplete - Fix - Begin
-			        	if(actualLength < currentWord.Length())
-			        		{
-			        		TUint currentchar = TUint(currentWord[actualLength]);
-			    			while((TAknFepUiIndicInputManager::IsIndicDependantCharacter(currentchar, iLanguage)))
-				    			{
-				    			actualLength++;
-				    			if(!(actualLength < currentWord.Length()))
-				    			break;
-				    			currentchar = TUint(currentWord[actualLength]);
-				    			}
-	        		// AutoComplete - Fix - Begin			        	
-				    		}
-			        	}
-			        }
-        
-		        if (aPositionOfCharacter<actualLength && (lengthOfRemainderOfInlineText>0))
-			        {
-			        aFormat.iFontPresentation.iUnderline = EUnderlineOn;
-			        aNumberOfCharactersWithSameFormat = actualLength;
-			        }
-				else
-			        {	
-			        // Display the autocompleted text in gray colour
-			        TRgb autoTextColor; 
-			        MAknsSkinInstance *skin = AknsUtils::SkinInstance();
-			        TInt err = AknsUtils::GetCachedColor( skin, autoTextColor, KAknsIIDQsnTextColors, 
-                                                    EAknsCIQsnTextColorsCG64 );
-			        if (!err)
-			            {
-			            aFormat.iFontPresentation.iTextColor = autoTextColor;
-			            }
-			        else
-			            {
-			            // In case of error occurs, display text in hardcoded slate gray color
-			            aFormat.iFontPresentation.iTextColor = KSLATEGRAY; 			            
-			            }
-			            			        
-			        aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
-			       	}
-	            }
-	        }
-        else
-#endif
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-// Predictive QWERTY (XT9) changes ---->
-        TInt wordLength = uncommit.Length();
-        if ( lengthOfRemainderOfInlineText > 0 )
-           {
-            TInt tailLength = 0;
-            //TInt err = PtiEngine()->HandleCommandL( EPtiCommandGetAutoCompletionTailLength, &tailLength );
-            TRAP_IGNORE( PtiEngine()->HandleCommandL( 
-            									EPtiCommandGetAutoCompletionTailLength,
-            									&tailLength ));
-
-            if ( aPositionOfCharacter < wordLength-tailLength )
-    	        {
-    			aFormat.iFontPresentation.iUnderline = EUnderlineOn;
-    			aNumberOfCharactersWithSameFormat = lengthOfRemainderOfInlineText-tailLength;
-                }
-            else
-                {
-                aFormat.iFontPresentation.iUnderline = EUnderlineOff;
-                aFormat.iFontPresentation.iTextColor = KSLATEGRAY;
-	            aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
-	            }
-            }
-#else
-#ifdef RD_HINDI_PHONETIC_INPUT
-			//for phonetic, space character needs to be checked explicitly so that it is not underlined
-			//for predictive when space is entered it gets committed and changes to initial state, hence check is not present
-             if(TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage( ( TLanguage )iLanguage )	)
-             	{
-             		TChar tempChar(0);
-             		iFepUiState.GetPhoneticLatinChar(tempChar);
-             		if(tempChar.IsSpace())
-             		    aFormat.iFontPresentation.iUnderline = EUnderlineOff;
-	            }	
-	#else
-        	if (lengthOfRemainderOfInlineText>0)                   
-	            {
-	            aFormat.iFontPresentation.iUnderline = EUnderlineOn;
-	            aNumberOfCharactersWithSameFormat=lengthOfRemainderOfInlineText;
-		            }	
-	#endif	            
-// Predictive QWERTY (XT9) changes <----
-#endif //RD_INTELLIGENT_TEXT_INPUT
-            }
-        }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::SupportLanguage
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerWestern::SupportLanguage(TInt aMode) const
-    {
-    TInt lang = iLanguage;
-    switch (aMode)
-        {
-        case ELatin:
-            {
-            if ( iLanguage == ELangTaiwanChinese ||
-                 iLanguage == ELangHongKongChinese ||
-                 iLanguage == ELangPrcChinese ||
-                 iLanguage == ELangJapanese || 
-                 iLanguage == ELangHindi )
-                {
-                // Chinese and Japanese languages uses always English as a latin language.
-                lang = ELangEnglish;
-                }
-            else
-                {
-                lang = iLanguage;
-                }
-            }
-            break;
-        case ENumber:
-            {
-            if ( iLanguage == ELangJapanese )
-                {
-                // Japanese languages uses always English as a number language for qwerty.
-                lang = ELangEnglish;
-                }
-            else
-                {
-                lang = iLanguage;
-                }
-            }
-            break;
-        case EHindi:
-        case ENativeNumber:
-            lang = iLanguage;
-            break;
-        
-            
-        default:
-            break;
-        }
-    return lang;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::ActivateUI
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerWestern::ActivateUI()
-    {
-    ChangeState(EEntry);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::ChangeState
-// 
-// 
-// ---------------------------------------------------------------------------
-// MAknFepUIManagerStateInterface
-TUIState CAknFepUIManagerWestern::ChangeState(TUIState aState)
-    {
-#ifdef RD_SCALABLE_UI_V2    
-    if (iFepMan->PluginUIManager() &&
-        iFepMan->PluginUIManager()->IsMatchState() && 
-        !iFepMan->PluginUIManager()->IsSpellVisible())
-        {
-        //TRAP_IGNORE(iFepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_FINGER));
-        iFepMan->PluginUIManager()->SetFingerMatchSelectionState(EFalse);
-        }
-        
-    // For addition of ITI features on FSQ
-    // When candidate list on FSQ is opened, some HW keys may cause state change,
-    // e.g. left/right keys, need to hide candidate list
-    if ( iFepMan->PluginUIManager() 
-         && iFepMan->PluginUIManager()->EnableITIOnFSQ() )
-        {
-        TRAP_IGNORE( iFepMan->PluginUIManager()->HideCandidateListL() );
-        }
-    
-#endif //RD_SCALABLE_UI_V2
-    switch(aState)
-        {
-        case EInitial:
-            {
-            switch(iMode)
-                {
-                case ELatin:
-                    {
-                    if (iPredictive)
-                        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                        // Predictive QWERTY (XT9) changes ---->
-                        if (iQwertyInputMode)
-                            {
-#ifdef __HALF_QWERTY_KEYPAD
-                            if( EPtiKeyboardHalfQwerty == iFepMan->KeyboardLayout())
-                                {
-                                iFepUiState = TAknFepUiInputStateInitialHalfQwertyWesternPredictive( this );
-                                }
-                            else
-#endif // Half Qwerty
-                            iFepUiState = TAknFepInputStateInitialQwertyWesternPredictive(this);
-                            } // Predictive QWERTY (XT9) changes <----
-                        else 
-#endif // RD_INTELLIGENT_TEXT_INPUT
-                        if (  iLanguage == ELangArabic || iLanguage == ELangHebrew 
-                           || iLanguage == ELangFarsi  || iLanguage == ELangUrdu )
-                            {
-                            iFepUiState = TAknFepInputStateInitialArabicHebrewPredictive(this);
-                            }
-                        else if (iLanguage == ELangThai)
-                            {
-                            iFepUiState = TAknFepInputStateInitialThaiPredictive(this);
-                            }
-                        // Indic Script
-                        else
-                            {
-                            iFepUiState = TAknFepInputStateInitialWesternPredictive(this);
-                            }
-                        }
-                    else
-                        {
-                        if (  iLanguage == ELangArabic || iLanguage == ELangHebrew 
-                           || iLanguage == ELangFarsi  || iLanguage == ELangUrdu )
-                            {
-                            iFepUiState = TAknFepInputStateInitialArabicHebrewMultitap(this);
-                            }
-                        else if (iLanguage == ELangThai)
-                            {
-                            iFepUiState = TAknFepInputStateInitialThaiMultitap(this);
-                            }
-                        /* Indic Script */
-
-#ifdef RD_HINDI_PHONETIC_INPUT	
-        
-                        else if(TAknFepUiIndicInputManager :: IsIndicPhoneticLanguage( 
-                                                            ( TLanguage )iLanguage ) )
-                        {
-                        iFepUiState = TAknFepInputStateInitialIndicPhoneticMultitap(
-                                                            this, KLangHindiPhonetic);	
-                        }
-#endif    
-                        else if(iLanguage == ELangVietnamese)
-                            {
-                            iFepUiState = TAknFepInputStateInitialVietnameseMultitap(this);
-                            }
-                        else
-                            {
-                            iFepUiState = TAknFepInputStateInitialLatinMultitap(this);
-                            }
-                        }
-                    }
-                    break;
-                case EHindi:
-                    iFepUiState = TAknFepInputStateInitialIndicMultitap(this, iLanguage);
-                    break;
-                case ENumber:
-                case ENativeNumber:
-                    {
-                    // Map directly to the resources...
-                    iFepUiState = TAknFepInputStateInitialNumber(this);
-                    break;
-                    }
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                }
-            break;
-            }
-        case EEntry:
-            {
-            switch(iMode)
-                {
-                case ELatin:
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-                        // Predictive QWERTY (XT9) changes ---->
-                        if (iQwertyInputMode)
-                            {
-#ifdef __HALF_QWERTY_KEYPAD
-                            if( EPtiKeyboardHalfQwerty == iFepMan->KeyboardLayout())
-                                {
-                                iFepUiState = TAknFepUiInputStateEntryHalfQwertyWesternPredictive( this );
-                                }
-                            else
-#endif // Half Qwerty
-	                        iFepUiState = TAknFepInputStateEntryQwertyWesternPredictive(this);
-                            } // Predictive QWERTY (XT9) changes <----
-                        else 
-#endif // RD_INTELLIGENT_TEXT_INPUT
-                    if (  iLanguage == ELangArabic || iLanguage == ELangHebrew 
-                       || iLanguage == ELangFarsi  || iLanguage == ELangUrdu)
-                        {
-                        iFepUiState = TAknFepInputStateEntryArabicHebrewPredictive(this);
-                        }
-                    else if (iLanguage == ELangThai)
-                        {
-                        iFepUiState = TAknFepInputStateEntryThaiPredictive(this);
-                        }
-					/* Indic Script */
-                    else if (iLanguage == ELangVietnamese)
-                        {
-                        iFepUiState = TAknFepInputStateEntryVietnamesePredictive(this);
-                        }
-                    else if (iLanguage == ELangJapanese)
-                        {
-                        iFepUiState = TAknFepInputStateEntryWesternPredictiveJp(this);
-                        }
-                    else
-                        {
-                        iFepUiState = TAknFepInputStateEntryWesternPredictive(this);
-                        }
-                    break;
-                case EHindi:
-                    iFepUiState = TAknFepInputStateEntryIndicPredictive(this, iLanguage);
-                    break;
-                default:
-                    AknFepPanic(EAknFepPanicBadInputState);
-                    break;
-                }
-            }
-            break;
-        case EQwerty:
-#ifdef RD_HINDI_PHONETIC_INPUT	
-        
-        	if(iLanguage == KLangHindiPhonetic)
-        		{
-        		iFepUiState = TAknFepInputStateIndicPhoneticQwerty(this);	
-        		}
-        	else
-        		{
-#endif
-            iFepUiState = TAknFepInputStateQwerty(this);
-#ifdef RD_HINDI_PHONETIC_INPUT	
-      
-        		}
-#endif
-            break;
-#ifdef RD_INTELLIGENT_TEXT_INPUT            
-        case EHalfQwerty:
-             iFepUiState = TAknFepInputStateHalfQwerty(this);        
-             break;    
-#endif             
-        case ECandidate:
-            AknFepPanic(EAknFepPanicBadInputState);
-            break;
-        case EPredictiveCandidate:
-            {
-            AknFepPanic(EAknFepPanicBadInputState);
-            }
-            break;
-        case EPredictiveInput:
-            AknFepPanic(EAknFepPanicBadInputState);
-            break;
-        default:
-            AknFepPanic(EAknFepPanicBadInputState);
-        }
-    
-    iPtiEngine->SetObserver(&iFepUiState);
-#ifdef _DEBUG
-    RDebug::Print(_L("UI Manager: New State: %d"), iFepUiState.State());
-#endif
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::ThaiSCTResourceId
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerWestern::ThaiSCTResourceId(TUint aPrewChar,TInt aKey)
-    {
-    TInt resourceId = 0;
-    if (iAknFepThaiSCTSelector)
-        {
-        resourceId = iAknFepThaiSCTSelector->ThaiSCRResourceId(aPrewChar,aKey);
-        }
-    return resourceId;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::VietnameseToneManager
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepVietnameseToneManager* CAknFepUIManagerWestern::VietnameseToneManager() const
-    {
-    return iVietToneMarkMgr;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::CAknFepUIManagerWestern
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerWestern::CAknFepUIManagerWestern(MAknFepManagerUIInterface* aFepMan, 
-                                                 CAknFepCaseManager* aCaseMan)
-    : CAknFepUIManagerBase(aFepMan, aCaseMan),
-      iFepUiState(NULL)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::ConstructL
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerWestern::ConstructL(TLanguage aLanguage)
-    {   
-    CAknFepUIManagerBase::ConstructL(aLanguage);
-    iAknFepThaiSCTSelector = CAknFepThaiSCTSelector::NewL();
-    iVietToneMarkMgr = CAknFepVietnameseToneManager::NewL();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUIManagerWestern::FepUIState
-// 
-// 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerWestern::FepUIState()
-    {
-    return &iFepUiState;
-    }
-
-// End of file
--- a/fep/aknfep/src/AknFepVietnameseToneManager.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2009 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:          
-*
-*/
-
-
-
-
-
-
-
-
-
-
-#include "AknFepVietnameseToneManager.h"
-#include "AknFepManager.h"
-
-
-CAknFepVietnameseToneManager::CAknFepVietnameseToneManager()
-    {
-    }
-
-CAknFepVietnameseToneManager::~CAknFepVietnameseToneManager()
-    {
-    }
-
-CAknFepVietnameseToneManager* CAknFepVietnameseToneManager::NewL()
-    {
-    CAknFepVietnameseToneManager* self = new (ELeave) CAknFepVietnameseToneManager;
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-    return self;
-    }
-
-void CAknFepVietnameseToneManager::ConstructL()
-    {
-    }
-
-void CAknFepVietnameseToneManager::StopToneMarkLooping()
-    {
-    iToneIndex = 0;
-    iVowelIndex = 0;
-    iIsLooping = EFalse;
-    }
-
-TBool CAknFepVietnameseToneManager::StartToneMarkLooping()
-    {
-    __ASSERT_DEBUG(iFepMan != NULL, 
-        RDebug::Print(
-        _L("In CAknFepVietnameseToneManager::StartLooping,\nINVALID PARAM: Empty Fep Manager!")));
-
-    StopToneMarkLooping();
-
-    const TText prevChr = iFepMan->PreviousChar();
-    
-    // Judge if the prevChr is a vowel or not
-    for (TUint i = 0; i < sizeof(VietVowelList) / sizeof(TText); ++i)
-        {
-        if (prevChr == VietVowelList[i])
-            {
-            iIsLooping = ETrue;
-            iVowelIndex = i;
-            break;
-            }
-        }
-
-    return iIsLooping;
-    }
-
-TText CAknFepVietnameseToneManager::GetVowelWithToneMark() const
-    {
-    // First vowel row lists those tone marks themselves
-    return VietToneMatrix[iVowelIndex+1][iToneIndex];
-    }
--- a/fep/aknfep/src/AknFepZhuyinAnalyser.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,481 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of the vkb data manager
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// system includes
-
-
-// user includes
-#include "AknFepZhuyinAnalyser.h"
-#include "AknFepZhuyinAnalyserDb.h"
-
-class TSpellBand
-    {
-public:
-    int iStart;
-    int iCount;
-    };
-
-class TSpellAnalysis : public TPriQueLink
-    {
-public:
-    RArray<TInt> iSeparators;
-    TSpellAnalysis( )
-        {
-        iPriority = -0x10000;
-        }
-    ~TSpellAnalysis( )
-        {
-        iSeparators.Close( );
-        }
-
-    TSpellAnalysis( const TSpellAnalysis& aSource )
-        {
-        iPriority = aSource.iPriority;
-        for (TInt i = 0; i < aSource.iSeparators.Count( ); ++i )
-            {
-            iSeparators.Append( aSource.iSeparators[i] );
-            }
-        }
-    void Calculate( )
-        {
-        iPriority = (iSeparators.Count() + 1) << 16;
-        TInt multi = 12;
-        for (TInt i = 0; i < iSeparators.Count(); ++i )
-            {
-            iPriority += ( 6 - iSeparators[i]) << multi;
-            if ( multi >= 3 )
-                {
-                multi -= 3;
-                }
-            }
-        iPriority = -iPriority;
-        }
-    TInt GetStartPos( )
-        {
-        if ( iSeparators.Count() == 0 )
-            {
-            return 0;
-            }
-        else
-            {
-            return iSeparators[ iSeparators.Count() - 1 ];
-            }
-        }
-    void AddSeparator( TInt aPos )
-        {
-        iSeparators.Append( aPos );
-        Calculate( );
-        }
-    };
-
-// -----------------------------------------------------------------------------
-// CAknFepVkbPinyinAnalyser::CAknFepVkbPinyinAnalyser
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepZhuyinAnalyser::CAknFepZhuyinAnalyser( )
-    {
-    iAnalysisFlag = EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepVkbPinyinAnalyser::NewL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepZhuyinAnalyser* CAknFepZhuyinAnalyser::NewL( CZhuyinAnalyserDbFeed* aDb )
-    {
-    CAknFepZhuyinAnalyser* self = new ( ELeave ) CAknFepZhuyinAnalyser();
-    CleanupStack::PushL( self );
-    self->ConstructL( aDb );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAknFepVkbPinyinAnalyser::~CAknFepVkbPinyinAnalyser
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CAknFepZhuyinAnalyser::~CAknFepZhuyinAnalyser( )
-    {
-    delete []iParagraph;
-    delete []iSpellLibrary;
-    delete iLastResult;
-    delete iDb;
-    }
-
-void CAknFepZhuyinAnalyser::ConstructL( CZhuyinAnalyserDbFeed* aDb )
-    {
-    ASSERT( aDb != NULL );
-    iDb = aDb;
-
-    TInt length = iDb->GetSpellCount( );
-
-    iSpellLibrary = new(ELeave) TPtrC[length];
-    for (TInt i = 0; i < length; ++i )
-        {
-        iSpellLibrary[i].Set( aDb->GetSpellByIndex( i ) );
-        }
-
-    TInt current = 0;
-    TInt pinyinElementCount = iDb->GetSpellElementCount( );
-    iParagraph = new(ELeave) TSpellBand[pinyinElementCount];
-    iParagraph[current].iStart = 0;
-    for (TInt i = 0; i < length; ++i )
-        {
-        if ( iSpellLibrary[i][0] != iDb->GetSpellElementByIndex( current ) )
-            {
-            iParagraph[current].iCount = i - iParagraph[current].iStart;
-            current++;
-            iParagraph[current].iStart = i;
-            while (iSpellLibrary[i][0]
-                != iDb->GetSpellElementByIndex( current ) )
-                {
-                iParagraph[current].iCount = 0;
-                current ++;
-                iParagraph[current].iStart = i;
-                }
-            }
-        }
-
-    iParagraph[current].iCount = length - iParagraph[current].iStart;
-
-    }
-
-HBufC* CAknFepZhuyinAnalyser::LastAnalysisResult( )
-    {
-    return iLastResult;
-    }
-
-TBool CAknFepZhuyinAnalyser::AnalyzeL( const TDesC& aInputString )
-    {
-    delete iLastResult;
-    iLastResult = NULL;
-
-    iLastResult = HBufC::NewL( aInputString.Length( ) * 2 );
-
-    if ( aInputString.Length( ) < 1 )
-        {
-        return ETrue;
-        }
-
-    if ( aInputString.Length( ) == 1 )
-        {
-        iLastResult->Des().Append( aInputString[0] );
-        if ( iDb->IsFirstElement( aInputString[0] ) )
-            {
-            return ETrue;
-            }
-        else
-            {
-            return EFalse;
-            }
-        }
-
-    if ( !iDb->IsFirstElement( aInputString[0] ) )
-        {
-        iLastResult->Des().Append( aInputString );
-        return EFalse;
-        }
-
-    int first = 0, second = 1;
-    TBool seriateTonemark = EFalse;
-    for (; second < aInputString.Length( ); first++, second++ )
-        {
-        if ( iDb->IsToneMark( aInputString[first], aInputString[second] ) )
-            {
-            iLastResult->Des().Append( aInputString );
-            seriateTonemark = ETrue;
-            break;
-            }
-        }
-
-    first = 0;
-    second = 1;
-    int previous = 0;
-    iAnalysisFlag = ETrue;
-    //rough spilit
-    for (; second < aInputString.Length( ) && !seriateTonemark; first++, second++ )
-        {
-        if ( !iDb->IsNormalElement( aInputString[first] ) )
-            {
-            //go to detail analysis
-            if ( first > previous )
-                {
-                TPtrC toanalysis = aInputString.Mid( previous, first
-                    - previous );
-                DetailAnalyseL( toanalysis );
-                }
-
-            iLastResult->Des().Append( aInputString[first] );
-            previous = first + 1;
-            }
-        else if ( !iDb->IsNormalElement( aInputString[second] ) )
-            {
-            //go to detail analysis
-            if ( second > previous )
-                {
-                TPtrC toanalysis = aInputString.Mid( previous, second
-                    - previous );
-                DetailAnalyseL( toanalysis );
-                }
-
-            iLastResult->Des().Append( aInputString[second] );
-            previous = second + 1;
-            first ++;
-            second ++;
-            }
-        else if ( iDb->GetSpellElementType( aInputString[first] )
-            == ESpellVowel || iDb->GetSpellElementType( aInputString[second] )
-            == ESpellVowel )
-            {
-            continue;
-            }
-        else if ( iDb->GetSpellElementType( aInputString[first] )
-            == ESpellConsonant
-            || iDb->GetSpellElementType( aInputString[second] )
-                == ESpellConsonant )
-            {
-            //go to detail analysis
-            TPtrC toanalysis = aInputString.Mid( previous, second - previous );
-            DetailAnalyseL( toanalysis );
-            iLastResult->Des().Append( KProgramSeparator );
-            previous = second;
-            }
-        else
-            {
-            if ( (aInputString[second] == L'h'&& ( aInputString[first] == L'z' || aInputString[first] == L'c' || aInputString[first] == L's')) || //ch, sh, zh
-            (aInputString[second] == L'g' && aInputString[first] == L'n') || //ng
-            (aInputString[second] == L'n' && aInputString[first] == L'h') //hn 
-            )
-                {
-                }
-            else
-                {
-                //go to detail analysis
-                TPtrC toanalysis = aInputString.Mid(previous, second - previous);
-                DetailAnalyseL(toanalysis);
-                iLastResult->Des().Append(KProgramSeparator);
-                previous = second;
-                }
-            }
-        }
-
-    if( aInputString.Length() <= previous 
-    		|| second> aInputString.Length() 
-    		|| seriateTonemark )
-        {
-        return TRUE;
-        }
-
-    TPtrC toanalysis = aInputString.Mid(previous, second - previous);
-    DetailAnalyseL(toanalysis);
-    return iAnalysisFlag;
-    }
-
-TBool CAknFepZhuyinAnalyser::DetailAnalyseL( const TDesC& aInputString )
-    {
-    TPriQue<TSpellAnalysis> open;
-    TSpellAnalysis* p = new(ELeave) TSpellAnalysis();
-
-    open.Add( *p );
-
-    int sameLength;
-    int startPos;
-    TBool findRes;
-    TSpellAnalysis* pNext= NULL;
-
-    while ( !open.IsEmpty( ) )
-        {
-        pNext = open.First( );
-        pNext->Deque( );
-
-        startPos = pNext->GetStartPos( );
-        findRes = FindSpell( aInputString.Mid( startPos ), sameLength );
-
-        if ( findRes || sameLength + startPos == aInputString.Length( ) )
-            {
-            //got it!
-            int start = 0;
-            for (TInt j = 0; j < pNext->iSeparators.Count( ); ++j )
-                {
-                iLastResult->Des().Append( aInputString.Mid( start, pNext->iSeparators[j]
-                    - start ) );
-                start = pNext->iSeparators[j];
-                iLastResult->Des().Append( KProgramSeparator );
-                }
-
-            iLastResult->Des().Append( aInputString.Mid( start, aInputString.Length( )
-                - start ) );
-            break;
-            }
-        else if ( sameLength == 0 )
-            {
-            delete pNext;
-            pNext = NULL;
-            }
-        else
-            {
-            int partLength = sameLength - 1;
-            while (partLength > 0 )
-                {
-                int templen;
-                if ( FindSpell( aInputString.Mid( startPos, partLength ),
-                    templen ) )
-                    {
-                    TSpellAnalysis* q = new TSpellAnalysis(*pNext);
-                    q->AddSeparator( startPos + partLength );
-                    open.Add( *q );
-                    }
-                partLength --;
-                }
-            pNext->AddSeparator( startPos + sameLength );
-            open.Add( *pNext );
-            }
-        }
-    if ( pNext )
-        {
-        delete pNext;
-        pNext = NULL;
-        while ( !open.IsEmpty( ) )
-            {
-            TSpellAnalysis* p = open.First( );
-            p->Deque( );
-            delete p;
-            }
-        return true;
-        }
-    else
-        {
-        //not found
-        /*
-         FindSpell(aInputString, sameLength);
-         int offset = 0;
-         TBool rtn = sameLength > 0;
-         while( sameLength > 0 )
-         {
-         iLastResult->Des().Append(aInputString.Mid(offset, sameLength));
-         iLastResult->Des().Append(KProgramSeparator);
-         offset += sameLength;
-         FindSpell(aInputString.Mid(offset), sameLength);
-         }
-         */
-        //FindSpell(aInputString, sameLength);
-        int offset = 0;
-
-        while (offset < aInputString.Length( ) )
-            {
-            FindSpell( aInputString.Mid( offset ), sameLength );
-
-            if ( sameLength )
-                {
-                iLastResult->Des().Append( aInputString.Mid( offset, sameLength ) );
-                iLastResult->Des().Append( KProgramSeparator );
-                offset += sameLength;
-                }
-            else
-                {
-                iLastResult->Des().Append( aInputString.Mid( offset, 1 ) );
-
-                iLastResult->Des().Append( KProgramSeparator );
-
-                offset += 1;
-                }
-            }
-        if ( iLastResult->Des()[ iLastResult->Length() - 1 ] == KProgramSeparator )
-            {
-            iLastResult->Des().SetLength( iLastResult->Length( ) - 1 );
-            }
-        iAnalysisFlag = EFalse;
-        return EFalse;
-        }
-    }
-
-TBool CAknFepZhuyinAnalyser::FindSpell( const TDesC& aSpell, TInt& aSameLength )
-    {
-    int index = aSpell[0] - iDb->GetSpellElementByIndex( 0 );
-
-    int start = iParagraph[index].iStart;
-    int end = iParagraph[index].iCount + iParagraph[index].iStart - 1;
-    int mid = (start + end ) >> 1;
-    int result = 0;
-    aSameLength = 0;
-    while (mid > start && mid < end )
-        {
-        result = Compare( iSpellLibrary[mid], aSpell, aSameLength );
-        if ( result == 0 )
-            {
-            return true;
-            }
-        else if ( result < 0 )
-            {
-            start = mid;
-            mid = (start + end ) >> 1;
-            }
-        else
-            {
-            end = mid;
-            mid = (start + end) >> 1;
-            }
-        }
-    int newLength;
-    if ( result > 0 )
-        {
-        result = Compare( iSpellLibrary[start], aSpell, newLength );
-        }
-    else
-        {
-        result = Compare( iSpellLibrary[end], aSpell, newLength );
-        }
-    newLength > aSameLength ? aSameLength = newLength : aSameLength;
-
-    return result == 0;
-    }
-
-TInt CAknFepZhuyinAnalyser::Compare( const TDesC& aFirst,
-    const TDesC& aSecond, TInt& aSameLength )
-    {
-    aSameLength = 0;
-
-    TInt length = aFirst.Length( ) > aSecond.Length( ) ? aSecond.Length( )
-        : aFirst.Length( );
-
-    for (TInt i = 0; i < length; ++i )
-        {
-        if ( aFirst[i] != aSecond[i] )
-            {
-            return aFirst[i] - aSecond[i];
-            }
-
-        aSameLength ++;
-        }
-
-    return aFirst.Length( ) - aSecond.Length( );
-    }
-
--- a/fep/aknfep/src/AknFepZhuyinAnalyserDb.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1067 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:            Implementation of the vkb data manager
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepZhuyinAnalyserDb.h"
-// constant define 
-
-// Zhuyin DB data
-const TUint16 KZhuyinBase = 0x3105;
-const TInt16  KZhuyinElementCount = 37;
-const TUint16 KZhuyinSpellsLength[] = 
-    {
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
-    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 
-    0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
-    0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 0x2, 0x3, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x2, 0x3, 0x3, 0x3, 
-    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x3, 0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 
-    0x3, 0x3, 0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 
-    0x3, 0x3, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 
-    0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 
-    0x1, 0x1, 0x1, 0x1, 0x1, 0x2, 0x2, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
-    0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x2, 0x2, 
-    0x2, 0x2
-    };
-const TUint16 KZhuyinSpellsLib[] =
-    {
-    0x3105, 0x311a, 
-    0x3105, 0x311b, 
-    0x3105, 0x311e, 
-    0x3105, 0x311f, 
-    0x3105, 0x3120, 
-    0x3105, 0x3122, 
-    0x3105, 0x3123, 
-    0x3105, 0x3124, 
-    0x3105, 0x3125, 
-    0x3105, 0x3127, 
-    0x3105, 0x3127, 0x311d, 
-    0x3105, 0x3127, 0x3120, 
-    0x3105, 0x3127, 0x3122, 
-    0x3105, 0x3127, 0x3123, 
-    0x3105, 0x3127, 0x3125, 
-    0x3105, 0x3128, 
-    0x3106, 0x311a, 
-    0x3106, 0x311b, 
-    0x3106, 0x311e, 
-    0x3106, 0x311f, 
-    0x3106, 0x3120, 
-    0x3106, 0x3121, 
-    0x3106, 0x3122, 
-    0x3106, 0x3123, 
-    0x3106, 0x3124, 
-    0x3106, 0x3125, 
-    0x3106, 0x3127, 
-    0x3106, 0x3127, 0x311d, 
-    0x3106, 0x3127, 0x3120, 
-    0x3106, 0x3127, 0x3122, 
-    0x3106, 0x3127, 0x3123, 
-    0x3106, 0x3127, 0x3125, 
-    0x3106, 0x3128, 
-    0x3107, 0x311a, 
-    0x3107, 0x311b, 
-    0x3107, 0x311c, 
-    0x3107, 0x311e, 
-    0x3107, 0x311f, 
-    0x3107, 0x3120, 
-    0x3107, 0x3121, 
-    0x3107, 0x3122, 
-    0x3107, 0x3123, 
-    0x3107, 0x3124, 
-    0x3107, 0x3125, 
-    0x3107, 0x3127, 
-    0x3107, 0x3127, 0x311d, 
-    0x3107, 0x3127, 0x3120, 
-    0x3107, 0x3127, 0x3121, 
-    0x3107, 0x3127, 0x3122, 
-    0x3107, 0x3127, 0x3123, 
-    0x3107, 0x3127, 0x3125, 
-    0x3107, 0x3128, 
-    0x3108, 0x311a, 
-    0x3108, 0x311b, 
-    0x3108, 0x311f, 
-    0x3108, 0x3121, 
-    0x3108, 0x3122, 
-    0x3108, 0x3123, 
-    0x3108, 0x3124, 
-    0x3108, 0x3125, 
-    0x3108, 0x3128, 
-    0x3109, 0x311a, 
-    0x3109, 0x311c, 
-    0x3109, 0x311e, 
-    0x3109, 0x311f, 
-    0x3109, 0x3120, 
-    0x3109, 0x3121, 
-    0x3109, 0x3122, 
-    0x3109, 0x3124, 
-    0x3109, 0x3125, 
-    0x3109, 0x3127, 
-    0x3109, 0x3127, 0x311d, 
-    0x3109, 0x3127, 0x3120, 
-    0x3109, 0x3127, 0x3121, 
-    0x3109, 0x3127, 0x3122, 
-    0x3109, 0x3127, 0x3125, 
-    0x3109, 0x3128, 
-    0x3109, 0x3128, 0x311b, 
-    0x3109, 0x3128, 0x311f, 
-    0x3109, 0x3128, 0x3122, 
-    0x3109, 0x3128, 0x3123, 
-    0x3109, 0x3128, 0x3125, 
-    0x310a, 0x311a, 
-    0x310a, 0x311c, 
-    0x310a, 0x311e, 
-    0x310a, 0x3120, 
-    0x310a, 0x3121, 
-    0x310a, 0x3122, 
-    0x310a, 0x3124, 
-    0x310a, 0x3125, 
-    0x310a, 0x3127, 
-    0x310a, 0x3127, 0x311d, 
-    0x310a, 0x3127, 0x3120, 
-    0x310a, 0x3127, 0x3122, 
-    0x310a, 0x3127, 0x3125, 
-    0x310a, 0x3128, 
-    0x310a, 0x3128, 0x311b, 
-    0x310a, 0x3128, 0x311f, 
-    0x310a, 0x3128, 0x3122, 
-    0x310a, 0x3128, 0x3123, 
-    0x310a, 0x3128, 0x3125, 
-    0x310b, 0x311a, 
-    0x310b, 0x311c, 
-    0x310b, 0x311e, 
-    0x310b, 0x311f, 
-    0x310b, 0x3120, 
-    0x310b, 0x3121, 
-    0x310b, 0x3122, 
-    0x310b, 0x3123, 
-    0x310b, 0x3124, 
-    0x310b, 0x3125, 
-    0x310b, 0x3127, 
-    0x310b, 0x3127, 0x311d, 
-    0x310b, 0x3127, 0x3120, 
-    0x310b, 0x3127, 0x3121, 
-    0x310b, 0x3127, 0x3122, 
-    0x310b, 0x3127, 0x3123, 
-    0x310b, 0x3127, 0x3124, 
-    0x310b, 0x3127, 0x3125, 
-    0x310b, 0x3128, 
-    0x310b, 0x3128, 0x311b, 
-    0x310b, 0x3128, 0x3122, 
-    0x310b, 0x3128, 0x3125, 
-    0x310b, 0x3129, 
-    0x310b, 0x3129, 0x311d, 
-    0x310c, 0x311a, 
-    0x310c, 0x311c, 
-    0x310c, 0x311e, 
-    0x310c, 0x311f, 
-    0x310c, 0x3120, 
-    0x310c, 0x3121, 
-    0x310c, 0x3122, 
-    0x310c, 0x3124, 
-    0x310c, 0x3125, 
-    0x310c, 0x3127, 
-    0x310c, 0x3127, 0x311a, 
-    0x310c, 0x3127, 0x311d, 
-    0x310c, 0x3127, 0x3120, 
-    0x310c, 0x3127, 0x3121, 
-    0x310c, 0x3127, 0x3122, 
-    0x310c, 0x3127, 0x3123, 
-    0x310c, 0x3127, 0x3124, 
-    0x310c, 0x3127, 0x3125, 
-    0x310c, 0x3128, 
-    0x310c, 0x3128, 0x311b, 
-    0x310c, 0x3128, 0x3122, 
-    0x310c, 0x3128, 0x3123, 
-    0x310c, 0x3128, 0x3125, 
-    0x310c, 0x3129, 
-    0x310c, 0x3129, 0x311d, 
-    0x310c, 0x3129, 0x3122, 
-    0x310d, 0x311a, 
-    0x310d, 0x311c, 
-    0x310d, 0x311e, 
-    0x310d, 0x311f, 
-    0x310d, 0x3120, 
-    0x310d, 0x3121, 
-    0x310d, 0x3122, 
-    0x310d, 0x3123, 
-    0x310d, 0x3124, 
-    0x310d, 0x3125, 
-    0x310d, 0x3128, 
-    0x310d, 0x3128, 0x311a, 
-    0x310d, 0x3128, 0x311b, 
-    0x310d, 0x3128, 0x311e, 
-    0x310d, 0x3128, 0x311f, 
-    0x310d, 0x3128, 0x3122, 
-    0x310d, 0x3128, 0x3123, 
-    0x310d, 0x3128, 0x3124, 
-    0x310d, 0x3128, 0x3125, 
-    0x310e, 0x311a, 
-    0x310e, 0x311c, 
-    0x310e, 0x311e, 
-    0x310e, 0x3120, 
-    0x310e, 0x3121, 
-    0x310e, 0x3122, 
-    0x310e, 0x3123, 
-    0x310e, 0x3124, 
-    0x310e, 0x3125, 
-    0x310e, 0x3128, 
-    0x310e, 0x3128, 0x311a, 
-    0x310e, 0x3128, 0x311b, 
-    0x310e, 0x3128, 0x311e, 
-    0x310e, 0x3128, 0x311f, 
-    0x310e, 0x3128, 0x3122, 
-    0x310e, 0x3128, 0x3123, 
-    0x310e, 0x3128, 0x3124, 
-    0x310e, 0x3128, 0x3125, 
-    0x310f, 0x311a, 
-    0x310f, 0x311c, 
-    0x310f, 0x311e, 
-    0x310f, 0x311f, 
-    0x310f, 0x3120, 
-    0x310f, 0x3121, 
-    0x310f, 0x3122, 
-    0x310f, 0x3123, 
-    0x310f, 0x3124, 
-    0x310f, 0x3125, 
-    0x310f, 0x3128, 
-    0x310f, 0x3128, 0x311a, 
-    0x310f, 0x3128, 0x311b, 
-    0x310f, 0x3128, 0x311e, 
-    0x310f, 0x3128, 0x311f, 
-    0x310f, 0x3128, 0x3122, 
-    0x310f, 0x3128, 0x3123, 
-    0x310f, 0x3128, 0x3124, 
-    0x310f, 0x3128, 0x3125, 
-    0x3110, 0x3127, 
-    0x3110, 0x3127, 0x311a, 
-    0x3110, 0x3127, 0x311d, 
-    0x3110, 0x3127, 0x3120, 
-    0x3110, 0x3127, 0x3121, 
-    0x3110, 0x3127, 0x3122, 
-    0x3110, 0x3127, 0x3123, 
-    0x3110, 0x3127, 0x3124, 
-    0x3110, 0x3127, 0x3125, 
-    0x3110, 0x3129, 
-    0x3110, 0x3129, 0x311d, 
-    0x3110, 0x3129, 0x3122, 
-    0x3110, 0x3129, 0x3123, 
-    0x3110, 0x3129, 0x3125, 
-    0x3111, 0x3127, 
-    0x3111, 0x3127, 0x311a, 
-    0x3111, 0x3127, 0x311d, 
-    0x3111, 0x3127, 0x3120, 
-    0x3111, 0x3127, 0x3121, 
-    0x3111, 0x3127, 0x3122, 
-    0x3111, 0x3127, 0x3123, 
-    0x3111, 0x3127, 0x3124, 
-    0x3111, 0x3127, 0x3125, 
-    0x3111, 0x3129, 
-    0x3111, 0x3129, 0x311d, 
-    0x3111, 0x3129, 0x3122, 
-    0x3111, 0x3129, 0x3123, 
-    0x3111, 0x3129, 0x3125, 
-    0x3112, 0x3127, 
-    0x3112, 0x3127, 0x311a, 
-    0x3112, 0x3127, 0x311d, 
-    0x3112, 0x3127, 0x3120, 
-    0x3112, 0x3127, 0x3121, 
-    0x3112, 0x3127, 0x3122, 
-    0x3112, 0x3127, 0x3123, 
-    0x3112, 0x3127, 0x3124, 
-    0x3112, 0x3127, 0x3125, 
-    0x3112, 0x3129, 
-    0x3112, 0x3129, 0x311d, 
-    0x3112, 0x3129, 0x3122, 
-    0x3112, 0x3129, 0x3123, 
-    0x3112, 0x3129, 0x3125, 
-    0x3113, 
-    0x3113, 0x311a, 
-    0x3113, 0x311c, 
-    0x3113, 0x311e, 
-    0x3113, 0x311f, 
-    0x3113, 0x3120, 
-    0x3113, 0x3121, 
-    0x3113, 0x3122, 
-    0x3113, 0x3123, 
-    0x3113, 0x3124, 
-    0x3113, 0x3125, 
-    0x3113, 0x3128, 
-    0x3113, 0x3128, 0x311a, 
-    0x3113, 0x3128, 0x311b, 
-    0x3113, 0x3128, 0x311e, 
-    0x3113, 0x3128, 0x311f, 
-    0x3113, 0x3128, 0x3122, 
-    0x3113, 0x3128, 0x3123, 
-    0x3113, 0x3128, 0x3124, 
-    0x3113, 0x3128, 0x3125, 
-    0x3114, 
-    0x3114, 0x311a, 
-    0x3114, 0x311c, 
-    0x3114, 0x311e, 
-    0x3114, 0x3120, 
-    0x3114, 0x3121, 
-    0x3114, 0x3122, 
-    0x3114, 0x3123, 
-    0x3114, 0x3124, 
-    0x3114, 0x3125, 
-    0x3114, 0x3128, 
-    0x3114, 0x3128, 0x311b, 
-    0x3114, 0x3128, 0x311e, 
-    0x3114, 0x3128, 0x311f, 
-    0x3114, 0x3128, 0x3122, 
-    0x3114, 0x3128, 0x3123, 
-    0x3114, 0x3128, 0x3124, 
-    0x3114, 0x3128, 0x3125, 
-    0x3115, 
-    0x3115, 0x311a, 
-    0x3115, 0x311c, 
-    0x3115, 0x311e, 
-    0x3115, 0x311f, 
-    0x3115, 0x3120, 
-    0x3115, 0x3121, 
-    0x3115, 0x3122, 
-    0x3115, 0x3123, 
-    0x3115, 0x3124, 
-    0x3115, 0x3125, 
-    0x3115, 0x3128, 
-    0x3115, 0x3128, 0x311a, 
-    0x3115, 0x3128, 0x311b, 
-    0x3115, 0x3128, 0x311e, 
-    0x3115, 0x3128, 0x311f, 
-    0x3115, 0x3128, 0x3122, 
-    0x3115, 0x3128, 0x3123, 
-    0x3115, 0x3128, 0x3124, 
-    0x3116, 
-    0x3116, 0x311c, 
-    0x3116, 0x3120, 
-    0x3116, 0x3121, 
-    0x3116, 0x3122, 
-    0x3116, 0x3123, 
-    0x3116, 0x3124, 
-    0x3116, 0x3125, 
-    0x3116, 0x3128, 
-    0x3116, 0x3128, 0x311b, 
-    0x3116, 0x3128, 0x311f, 
-    0x3116, 0x3128, 0x3122, 
-    0x3116, 0x3128, 0x3123, 
-    0x3116, 0x3128, 0x3125, 
-    0x3117, 
-    0x3117, 0x311a, 
-    0x3117, 0x311c, 
-    0x3117, 0x311e, 
-    0x3117, 0x311f, 
-    0x3117, 0x3120, 
-    0x3117, 0x3121, 
-    0x3117, 0x3122, 
-    0x3117, 0x3123, 
-    0x3117, 0x3124, 
-    0x3117, 0x3125, 
-    0x3117, 0x3128, 
-    0x3117, 0x3128, 0x311b, 
-    0x3117, 0x3128, 0x311f, 
-    0x3117, 0x3128, 0x3122, 
-    0x3117, 0x3128, 0x3123, 
-    0x3117, 0x3128, 0x3125, 
-    0x3118, 
-    0x3118, 0x311a, 
-    0x3118, 0x311c, 
-    0x3118, 0x311e, 
-    0x3118, 0x3120, 
-    0x3118, 0x3121, 
-    0x3118, 0x3122, 
-    0x3118, 0x3123, 
-    0x3118, 0x3124, 
-    0x3118, 0x3125, 
-    0x3118, 0x3128, 
-    0x3118, 0x3128, 0x311b, 
-    0x3118, 0x3128, 0x311f, 
-    0x3118, 0x3128, 0x3122, 
-    0x3118, 0x3128, 0x3123, 
-    0x3118, 0x3128, 0x3125, 
-    0x3119, 
-    0x3119, 0x311a, 
-    0x3119, 0x311c, 
-    0x3119, 0x311e, 
-    0x3119, 0x3120, 
-    0x3119, 0x3121, 
-    0x3119, 0x3122, 
-    0x3119, 0x3123, 
-    0x3119, 0x3124, 
-    0x3119, 0x3125, 
-    0x3119, 0x3128, 
-    0x3119, 0x3128, 0x311b, 
-    0x3119, 0x3128, 0x311f, 
-    0x3119, 0x3128, 0x3122, 
-    0x3119, 0x3128, 0x3123, 
-    0x3119, 0x3128, 0x3125, 
-    0x311a, 
-    0x311b, 
-    0x311c, 
-    0x311e, 
-    0x311f, 
-    0x3120, 
-    0x3121, 
-    0x3122, 
-    0x3123, 
-    0x3124, 
-    0x3125, 
-    0x3126, 
-    0x3127, 
-    0x3127, 0x311a, 
-    0x3127, 0x311b, 
-    0x3127, 0x311d, 
-    0x3127, 0x311e, 
-    0x3127, 0x3120, 
-    0x3127, 0x3121, 
-    0x3127, 0x3122, 
-    0x3127, 0x3123, 
-    0x3127, 0x3124, 
-    0x3127, 0x3125, 
-    0x3128, 
-    0x3128, 0x311a, 
-    0x3128, 0x311b, 
-    0x3128, 0x311e, 
-    0x3128, 0x311f, 
-    0x3128, 0x3122, 
-    0x3128, 0x3123, 
-    0x3128, 0x3124, 
-    0x3128, 0x3125, 
-    0x3129, 
-    0x3129, 0x311d, 
-    0x3129, 0x3122, 
-    0x3129, 0x3123, 
-    0x3129, 0x3125
-    };
-    
-const TUint16 KZhuyinTypeTable[] = 
-    {
-    // 21 ESpellConsonant
-    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
-    ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant,
-    ESpellSpecialConsonnant, ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellConsonant,
-    ESpellConsonant, ESpellConsonant, ESpellConsonant, ESpellSpecialConsonnant, ESpellSpecialConsonnant,
-    ESpellSpecialConsonnant,
-    //16 ESpellVowel
-    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
-    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
-    ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel, ESpellVowel,
-    ESpellVowel
-
-    };    
-
-const TUint16 KZhuyinNoFirstElem[] =
-    {
-    //0x311D
-    0x0020, 0x02CA, 0x02C7, 0x02CB, 0x02D9    
-    };
-
-// Pinyin DB data
-const TUint16 KPinyinBase = L'a';
-const TUint16  KPinyinElementCount = 26;
-const TUint16 KPinyinSpellsLength[] = 
-    {
-    1,2,2,3,2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,
-    2,2,3,3,4,3,2,3,4,3,4,4,5,4,3,4,5,3,5,4,
-    3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,3,2,3,3,4,
-    3,2,3,3,4,2,3,4,4,3,4,3,4,3,2,4,3,3,3,1,
-    2,2,3,2,2,3,4,3,3,4,2,3,2,2,3,3,4,3,2,3,
-    3,4,4,3,2,3,4,4,5,3,3,3,2,3,3,4,3,2,3,3,
-    4,2,3,4,3,2,3,4,4,5,3,3,3,2,3,4,5,4,3,3,
-    4,5,3,2,4,3,3,2,3,3,4,3,2,3,3,4,4,3,2,3,
-    4,4,5,3,3,3,2,3,3,4,3,2,3,4,2,3,4,5,4,3,
-    3,4,3,2,4,3,2,4,3,3,2,3,1,2,3,3,4,3,2,3,
-    3,4,2,4,4,3,3,4,3,2,3,2,1,2,3,3,4,3,2,3,
-    3,4,2,2,3,4,5,4,3,3,4,3,4,3,2,4,3,2,3,1,
-    2,2,3,3,4,3,3,3,4,2,4,4,3,3,4,2,3,2,2,3,
-    4,5,4,3,3,4,5,3,2,4,3,3,3,4,3,2,3,4,2,4,
-    3,2,4,3,3,3,2,3,3,4,3,2,3,4,3,4,4,5,4,3,
-    4,4,5,3,4,3,4,5,5,6,4,4,4,2,4,3,2,4,3,3,
-    3,2,3,3,4,3,2,4,2,4,4,3,4,4,3,2,4,3,3,3,
-    2,3,3,4,3,3,4,2,2,2,3,4,5,4,3,3,4,5,3,2,
-    4,3,3,2,3,4,3,2,2,3,4,2,4,3,2,4,3,3,2,3,
-    3,4,3,2,3,3,4,3,4,4,5,4,3,4,4,5,3,5,4,3,
-    4,5,5,6,4,4,4,2,4,3,2,4,3,3,3
-    };
-const TUint16 KPinyinSpellsLib[] =
-    {
-    0x61, //a
-    0x61, 0x69, //ai
-    0x61, 0x6e, //an
-    0x61, 0x6e, 0x67, //ang
-    0x61, 0x6f, //ao
-    0x62, 0x61, //ba
-    0x62, 0x61, 0x69, //bai
-    0x62, 0x61, 0x6e, //ban
-    0x62, 0x61, 0x6e, 0x67, //bang
-    0x62, 0x61, 0x6f, //bao
-    0x62, 0x65, 0x69, //bei
-    0x62, 0x65, 0x6e, //ben
-    0x62, 0x65, 0x6e, 0x67, //beng
-    0x62, 0x69, //bi
-    0x62, 0x69, 0x61, 0x6e, //bian
-    0x62, 0x69, 0x61, 0x6f, //biao
-    0x62, 0x69, 0x65, //bie
-    0x62, 0x69, 0x6e, //bin
-    0x62, 0x69, 0x6e, 0x67, //bing
-    0x62, 0x6f, //bo
-    0x62, 0x75, //bu
-    0x63, 0x61, //ca
-    0x63, 0x61, 0x69, //cai
-    0x63, 0x61, 0x6e, //can
-    0x63, 0x61, 0x6e, 0x67, //cang
-    0x63, 0x61, 0x6f, //cao
-    0x63, 0x65, //ce
-    0x63, 0x65, 0x6e, //cen
-    0x63, 0x65, 0x6e, 0x67, //ceng
-    0x63, 0x68, 0x61, //cha
-    0x63, 0x68, 0x61, 0x69, //chai
-    0x63, 0x68, 0x61, 0x6e, //chan
-    0x63, 0x68, 0x61, 0x6e, 0x67, //chang
-    0x63, 0x68, 0x61, 0x6f, //chao
-    0x63, 0x68, 0x65, //che
-    0x63, 0x68, 0x65, 0x6e, //chen
-    0x63, 0x68, 0x65, 0x6e, 0x67, //cheng
-    0x63, 0x68, 0x69, //chi
-    0x63, 0x68, 0x6f, 0x6e, 0x67, //chong
-    0x63, 0x68, 0x6f, 0x75, //chou
-    0x63, 0x68, 0x75, //chu
-    0x63, 0x68, 0x75, 0x61, //chua
-    0x63, 0x68, 0x75, 0x61, 0x69, //chuai
-    0x63, 0x68, 0x75, 0x61, 0x6e, //chuan
-    0x63, 0x68, 0x75, 0x61, 0x6e, 0x67, //chuang
-    0x63, 0x68, 0x75, 0x69, //chui
-    0x63, 0x68, 0x75, 0x6e, //chun
-    0x63, 0x68, 0x75, 0x6f, //chuo
-    0x63, 0x69, //ci
-    0x63, 0x6f, 0x6e, 0x67, //cong
-    0x63, 0x6f, 0x75, //cou
-    0x63, 0x75, //cu
-    0x63, 0x75, 0x61, 0x6e, //cuan
-    0x63, 0x75, 0x69, //cui
-    0x63, 0x75, 0x6e, //cun
-    0x63, 0x75, 0x6f, //cuo
-    0x64, 0x61, //da
-    0x64, 0x61, 0x69, //dai
-    0x64, 0x61, 0x6e, //dan
-    0x64, 0x61, 0x6e, 0x67, //dang
-    0x64, 0x61, 0x6f, //dao
-    0x64, 0x65, //de
-    0x64, 0x65, 0x69, //dei
-    0x64, 0x65, 0x6e, //den
-    0x64, 0x65, 0x6e, 0x67, //deng
-    0x64, 0x69, //di
-    0x64, 0x69, 0x61, //dia
-    0x64, 0x69, 0x61, 0x6e, //dian
-    0x64, 0x69, 0x61, 0x6f, //diao
-    0x64, 0x69, 0x65, //die
-    0x64, 0x69, 0x6e, 0x67, //ding
-    0x64, 0x69, 0x75, //diu
-    0x64, 0x6f, 0x6e, 0x67, //dong
-    0x64, 0x6f, 0x75, //dou
-    0x64, 0x75, //du
-    0x64, 0x75, 0x61, 0x6e, //duan
-    0x64, 0x75, 0x69, //dui
-    0x64, 0x75, 0x6e, //dun
-    0x64, 0x75, 0x6f, //duo
-    0x65, //e
-    0x65, 0x69, //ei
-    0x65, 0x6e, //en
-    0x65, 0x6e, 0x67, //eng
-    0x65, 0x72, //er
-    0x66, 0x61, //fa
-    0x66, 0x61, 0x6e, //fan
-    0x66, 0x61, 0x6e, 0x67, //fang
-    0x66, 0x65, 0x69, //fei
-    0x66, 0x65, 0x6e, //fen
-    0x66, 0x65, 0x6e, 0x67, //feng
-    0x66, 0x6f, //fo
-    0x66, 0x6f, 0x75, //fou
-    0x66, 0x75, //fu
-    0x67, 0x61, //ga
-    0x67, 0x61, 0x69, //gai
-    0x67, 0x61, 0x6e, //gan
-    0x67, 0x61, 0x6e, 0x67, //gang
-    0x67, 0x61, 0x6f, //gao
-    0x67, 0x65, //ge
-    0x67, 0x65, 0x69, //gei
-    0x67, 0x65, 0x6e, //gen
-    0x67, 0x65, 0x6e, 0x67, //geng
-    0x67, 0x6f, 0x6e, 0x67, //gong
-    0x67, 0x6f, 0x75, //gou
-    0x67, 0x75, //gu
-    0x67, 0x75, 0x61, //gua
-    0x67, 0x75, 0x61, 0x69, //guai
-    0x67, 0x75, 0x61, 0x6e, //guan
-    0x67, 0x75, 0x61, 0x6e, 0x67, //guang
-    0x67, 0x75, 0x69, //gui
-    0x67, 0x75, 0x6e, //gun
-    0x67, 0x75, 0x6f, //guo
-    0x68, 0x61, //ha
-    0x68, 0x61, 0x69, //hai
-    0x68, 0x61, 0x6e, //han
-    0x68, 0x61, 0x6e, 0x67, //hang
-    0x68, 0x61, 0x6f, //hao
-    0x68, 0x65, //he
-    0x68, 0x65, 0x69, //hei
-    0x68, 0x65, 0x6e, //hen
-    0x68, 0x65, 0x6e, 0x67, //heng
-    0x68, 0x6d, //hm
-    0x68, 0x6e, 0x67, //hng
-    0x68, 0x6f, 0x6e, 0x67, //hong
-    0x68, 0x6f, 0x75, //hou
-    0x68, 0x75, //hu
-    0x68, 0x75, 0x61, //hua
-    0x68, 0x75, 0x61, 0x69, //huai
-    0x68, 0x75, 0x61, 0x6e, //huan
-    0x68, 0x75, 0x61, 0x6e, 0x67, //huang
-    0x68, 0x75, 0x69, //hui
-    0x68, 0x75, 0x6e, //hun
-    0x68, 0x75, 0x6f, //huo
-    0x6a, 0x69, //ji
-    0x6a, 0x69, 0x61, //jia
-    0x6a, 0x69, 0x61, 0x6e, //jian
-    0x6a, 0x69, 0x61, 0x6e, 0x67, //jiang
-    0x6a, 0x69, 0x61, 0x6f, //jiao
-    0x6a, 0x69, 0x65, //jie
-    0x6a, 0x69, 0x6e, //jin
-    0x6a, 0x69, 0x6e, 0x67, //jing
-    0x6a, 0x69, 0x6f, 0x6e, 0x67, //jiong
-    0x6a, 0x69, 0x75, //jiu
-    0x6a, 0x75, //ju
-    0x6a, 0x75, 0x61, 0x6e, //juan
-    0x6a, 0x75, 0x65, //jue
-    0x6a, 0x75, 0x6e, //jun
-    0x6b, 0x61, //ka
-    0x6b, 0x61, 0x69, //kai
-    0x6b, 0x61, 0x6e, //kan
-    0x6b, 0x61, 0x6e, 0x67, //kang
-    0x6b, 0x61, 0x6f, //kao
-    0x6b, 0x65, //ke
-    0x6b, 0x65, 0x69, //kei
-    0x6b, 0x65, 0x6e, //ken
-    0x6b, 0x65, 0x6e, 0x67, //keng
-    0x6b, 0x6f, 0x6e, 0x67, //kong
-    0x6b, 0x6f, 0x75, //kou
-    0x6b, 0x75, //ku
-    0x6b, 0x75, 0x61, //kua
-    0x6b, 0x75, 0x61, 0x69, //kuai
-    0x6b, 0x75, 0x61, 0x6e, //kuan
-    0x6b, 0x75, 0x61, 0x6e, 0x67, //kuang
-    0x6b, 0x75, 0x69, //kui
-    0x6b, 0x75, 0x6e, //kun
-    0x6b, 0x75, 0x6f, //kuo
-    0x6c, 0x61, //la
-    0x6c, 0x61, 0x69, //lai
-    0x6c, 0x61, 0x6e, //lan
-    0x6c, 0x61, 0x6e, 0x67, //lang
-    0x6c, 0x61, 0x6f, //lao
-    0x6c, 0x65, //le
-    0x6c, 0x65, 0x69, //lei
-    0x6c, 0x65, 0x6e, 0x67, //leng
-    0x6c, 0x69, //li
-    0x6c, 0x69, 0x61, //lia
-    0x6c, 0x69, 0x61, 0x6e, //lian
-    0x6c, 0x69, 0x61, 0x6e, 0x67, //liang
-    0x6c, 0x69, 0x61, 0x6f, //liao
-    0x6c, 0x69, 0x65, //lie
-    0x6c, 0x69, 0x6e, //lin
-    0x6c, 0x69, 0x6e, 0x67, //ling
-    0x6c, 0x69, 0x75, //liu
-    0x6c, 0x6f, //lo
-    0x6c, 0x6f, 0x6e, 0x67, //long
-    0x6c, 0x6f, 0x75, //lou
-    0x6c, 0x75, //lu
-    0x6c, 0x75, 0x61, 0x6e, //luan
-    0x6c, 0x75, 0x6e, //lun
-    0x6c, 0x75, 0x6f, //luo
-    0x6c, 0x76, //lv
-    0x6c, 0x76, 0x65, //lve
-    0x6d, //m
-    0x6d, 0x61, //ma
-    0x6d, 0x61, 0x69, //mai
-    0x6d, 0x61, 0x6e, //man
-    0x6d, 0x61, 0x6e, 0x67, //mang
-    0x6d, 0x61, 0x6f, //mao
-    0x6d, 0x65, //me
-    0x6d, 0x65, 0x69, //mei
-    0x6d, 0x65, 0x6e, //men
-    0x6d, 0x65, 0x6e, 0x67, //meng
-    0x6d, 0x69, //mi
-    0x6d, 0x69, 0x61, 0x6e, //mian
-    0x6d, 0x69, 0x61, 0x6f, //miao
-    0x6d, 0x69, 0x65, //mie
-    0x6d, 0x69, 0x6e, //min
-    0x6d, 0x69, 0x6e, 0x67, //ming
-    0x6d, 0x69, 0x75, //miu
-    0x6d, 0x6f, //mo
-    0x6d, 0x6f, 0x75, //mou
-    0x6d, 0x75, //mu
-    0x6e, //n
-    0x6e, 0x61, //na
-    0x6e, 0x61, 0x69, //nai
-    0x6e, 0x61, 0x6e, //nan
-    0x6e, 0x61, 0x6e, 0x67, //nang
-    0x6e, 0x61, 0x6f, //nao
-    0x6e, 0x65, //ne
-    0x6e, 0x65, 0x69, //nei
-    0x6e, 0x65, 0x6e, //nen
-    0x6e, 0x65, 0x6e, 0x67, //neng
-    0x6e, 0x67, //ng
-    0x6e, 0x69, //ni
-    0x6e, 0x69, 0x61, //nia
-    0x6e, 0x69, 0x61, 0x6e, //nian
-    0x6e, 0x69, 0x61, 0x6e, 0x67, //niang
-    0x6e, 0x69, 0x61, 0x6f, //niao
-    0x6e, 0x69, 0x65, //nie
-    0x6e, 0x69, 0x6e, //nin
-    0x6e, 0x69, 0x6e, 0x67, //ning
-    0x6e, 0x69, 0x75, //niu
-    0x6e, 0x6f, 0x6e, 0x67, //nong
-    0x6e, 0x6f, 0x75, //nou
-    0x6e, 0x75, //nu
-    0x6e, 0x75, 0x61, 0x6e, //nuan
-    0x6e, 0x75, 0x6f, //nuo
-    0x6e, 0x76, //nv
-    0x6e, 0x76, 0x65, //nve
-    0x6f, //o
-    0x6f, 0x75, //ou
-    0x70, 0x61, //pa
-    0x70, 0x61, 0x69, //pai
-    0x70, 0x61, 0x6e, //pan
-    0x70, 0x61, 0x6e, 0x67, //pang
-    0x70, 0x61, 0x6f, //pao
-    0x70, 0x65, 0x69, //pei
-    0x70, 0x65, 0x6e, //pen
-    0x70, 0x65, 0x6e, 0x67, //peng
-    0x70, 0x69, //pi
-    0x70, 0x69, 0x61, 0x6e, //pian
-    0x70, 0x69, 0x61, 0x6f, //piao
-    0x70, 0x69, 0x65, //pie
-    0x70, 0x69, 0x6e, //pin
-    0x70, 0x69, 0x6e, 0x67, //ping
-    0x70, 0x6f, //po
-    0x70, 0x6f, 0x75, //pou
-    0x70, 0x75, //pu
-    0x71, 0x69, //qi
-    0x71, 0x69, 0x61, //qia
-    0x71, 0x69, 0x61, 0x6e, //qian
-    0x71, 0x69, 0x61, 0x6e, 0x67, //qiang
-    0x71, 0x69, 0x61, 0x6f, //qiao
-    0x71, 0x69, 0x65, //qie
-    0x71, 0x69, 0x6e, //qin
-    0x71, 0x69, 0x6e, 0x67, //qing
-    0x71, 0x69, 0x6f, 0x6e, 0x67, //qiong
-    0x71, 0x69, 0x75, //qiu
-    0x71, 0x75, //qu
-    0x71, 0x75, 0x61, 0x6e, //quan
-    0x71, 0x75, 0x65, //que
-    0x71, 0x75, 0x6e, //qun
-    0x72, 0x61, 0x6e, //ran
-    0x72, 0x61, 0x6e, 0x67, //rang
-    0x72, 0x61, 0x6f, //rao
-    0x72, 0x65, //re
-    0x72, 0x65, 0x6e, //ren
-    0x72, 0x65, 0x6e, 0x67, //reng
-    0x72, 0x69, //ri
-    0x72, 0x6f, 0x6e, 0x67, //rong
-    0x72, 0x6f, 0x75, //rou
-    0x72, 0x75, //ru
-    0x72, 0x75, 0x61, 0x6e, //ruan
-    0x72, 0x75, 0x69, //rui
-    0x72, 0x75, 0x6e, //run
-    0x72, 0x75, 0x6f, //ruo
-    0x73, 0x61, //sa
-    0x73, 0x61, 0x69, //sai
-    0x73, 0x61, 0x6e, //san
-    0x73, 0x61, 0x6e, 0x67, //sang
-    0x73, 0x61, 0x6f, //sao
-    0x73, 0x65, //se
-    0x73, 0x65, 0x6e, //sen
-    0x73, 0x65, 0x6e, 0x67, //seng
-    0x73, 0x68, 0x61, //sha
-    0x73, 0x68, 0x61, 0x69, //shai
-    0x73, 0x68, 0x61, 0x6e, //shan
-    0x73, 0x68, 0x61, 0x6e, 0x67, //shang
-    0x73, 0x68, 0x61, 0x6f, //shao
-    0x73, 0x68, 0x65, //she
-    0x73, 0x68, 0x65, 0x69, //shei
-    0x73, 0x68, 0x65, 0x6e, //shen
-    0x73, 0x68, 0x65, 0x6e, 0x67, //sheng
-    0x73, 0x68, 0x69, //shi
-    0x73, 0x68, 0x6f, 0x75, //shou
-    0x73, 0x68, 0x75, //shu
-    0x73, 0x68, 0x75, 0x61, //shua
-    0x73, 0x68, 0x75, 0x61, 0x69, //shuai
-    0x73, 0x68, 0x75, 0x61, 0x6e, //shuan
-    0x73, 0x68, 0x75, 0x61, 0x6e, 0x67, //shuang
-    0x73, 0x68, 0x75, 0x69, //shui
-    0x73, 0x68, 0x75, 0x6e, //shun
-    0x73, 0x68, 0x75, 0x6f, //shuo
-    0x73, 0x69, //si
-    0x73, 0x6f, 0x6e, 0x67, //song
-    0x73, 0x6f, 0x75, //sou
-    0x73, 0x75, //su
-    0x73, 0x75, 0x61, 0x6e, //suan
-    0x73, 0x75, 0x69, //sui
-    0x73, 0x75, 0x6e, //sun
-    0x73, 0x75, 0x6f, //suo
-    0x74, 0x61, //ta
-    0x74, 0x61, 0x69, //tai
-    0x74, 0x61, 0x6e, //tan
-    0x74, 0x61, 0x6e, 0x67, //tang
-    0x74, 0x61, 0x6f, //tao
-    0x74, 0x65, //te
-    0x74, 0x65, 0x6e, 0x67, //teng
-    0x74, 0x69, //ti
-    0x74, 0x69, 0x61, 0x6e, //tian
-    0x74, 0x69, 0x61, 0x6f, //tiao
-    0x74, 0x69, 0x65, //tie
-    0x74, 0x69, 0x6e, 0x67, //ting
-    0x74, 0x6f, 0x6e, 0x67, //tong
-    0x74, 0x6f, 0x75, //tou
-    0x74, 0x75, //tu
-    0x74, 0x75, 0x61, 0x6e, //tuan
-    0x74, 0x75, 0x69, //tui
-    0x74, 0x75, 0x6e, //tun
-    0x74, 0x75, 0x6f, //tuo
-    0x77, 0x61, //wa
-    0x77, 0x61, 0x69, //wai
-    0x77, 0x61, 0x6e, //wan
-    0x77, 0x61, 0x6e, 0x67, //wang
-    0x77, 0x65, 0x69, //wei
-    0x77, 0x65, 0x6e, //wen
-    0x77, 0x65, 0x6e, 0x67, //weng
-    0x77, 0x6f, //wo
-    0x77, 0x75, //wu
-    0x78, 0x69, //xi
-    0x78, 0x69, 0x61, //xia
-    0x78, 0x69, 0x61, 0x6e, //xian
-    0x78, 0x69, 0x61, 0x6e, 0x67, //xiang
-    0x78, 0x69, 0x61, 0x6f, //xiao
-    0x78, 0x69, 0x65, //xie
-    0x78, 0x69, 0x6e, //xin
-    0x78, 0x69, 0x6e, 0x67, //xing
-    0x78, 0x69, 0x6f, 0x6e, 0x67, //xiong
-    0x78, 0x69, 0x75, //xiu
-    0x78, 0x75, //xu
-    0x78, 0x75, 0x61, 0x6e, //xuan
-    0x78, 0x75, 0x65, //xue
-    0x78, 0x75, 0x6e, //xun
-    0x79, 0x61, //ya
-    0x79, 0x61, 0x6e, //yan
-    0x79, 0x61, 0x6e, 0x67, //yang
-    0x79, 0x61, 0x6f, //yao
-    0x79, 0x65, //ye
-    0x79, 0x69, //yi
-    0x79, 0x69, 0x6e, //yin
-    0x79, 0x69, 0x6e, 0x67, //ying
-    0x79, 0x6f, //yo
-    0x79, 0x6f, 0x6e, 0x67, //yong
-    0x79, 0x6f, 0x75, //you
-    0x79, 0x75, //yu
-    0x79, 0x75, 0x61, 0x6e, //yuan
-    0x79, 0x75, 0x65, //yue
-    0x79, 0x75, 0x6e, //yun
-    0x7a, 0x61, //za
-    0x7a, 0x61, 0x69, //zai
-    0x7a, 0x61, 0x6e, //zan
-    0x7a, 0x61, 0x6e, 0x67, //zang
-    0x7a, 0x61, 0x6f, //zao
-    0x7a, 0x65, //ze
-    0x7a, 0x65, 0x69, //zei
-    0x7a, 0x65, 0x6e, //zen
-    0x7a, 0x65, 0x6e, 0x67, //zeng
-    0x7a, 0x68, 0x61, //zha
-    0x7a, 0x68, 0x61, 0x69, //zhai
-    0x7a, 0x68, 0x61, 0x6e, //zhan
-    0x7a, 0x68, 0x61, 0x6e, 0x67, //zhang
-    0x7a, 0x68, 0x61, 0x6f, //zhao
-    0x7a, 0x68, 0x65, //zhe
-    0x7a, 0x68, 0x65, 0x69, //zhei
-    0x7a, 0x68, 0x65, 0x6e, //zhen
-    0x7a, 0x68, 0x65, 0x6e, 0x67, //zheng
-    0x7a, 0x68, 0x69, //zhi
-    0x7a, 0x68, 0x6f, 0x6e, 0x67, //zhong
-    0x7a, 0x68, 0x6f, 0x75, //zhou
-    0x7a, 0x68, 0x75, //zhu
-    0x7a, 0x68, 0x75, 0x61, //zhua
-    0x7a, 0x68, 0x75, 0x61, 0x69, //zhuai
-    0x7a, 0x68, 0x75, 0x61, 0x6e, //zhuan
-    0x7a, 0x68, 0x75, 0x61, 0x6e, 0x67, //zhuang
-    0x7a, 0x68, 0x75, 0x69, //zhui
-    0x7a, 0x68, 0x75, 0x6e, //zhun
-    0x7a, 0x68, 0x75, 0x6f, //zhuo
-    0x7a, 0x69, //zi
-    0x7a, 0x6f, 0x6e, 0x67, //zong
-    0x7a, 0x6f, 0x75, //zou
-    0x7a, 0x75, //zu
-    0x7a, 0x75, 0x61, 0x6e, //zuan
-    0x7a, 0x75, 0x69, //zui
-    0x7a, 0x75, 0x6e, //zun
-    0x7a, 0x75, 0x6f //zuo
-    };
-    
-const TUint16 KPinyinTypeTable[] = 
-{
-    //a, b, c, d, e, f
-    ESpellVowel, ESpellConsonant, ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellConsonant,
-    //g, h, i, j, k, l
-    ESpellSpecialConsonnant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
-    //m, n, o, p, q, r
-    ESpellConsonant, ESpellSpecialConsonnant, ESpellVowel, ESpellConsonant, ESpellConsonant, ESpellConsonant,
-    //s, t, u, v, w, x
-    ESpellSpecialConsonnant, ESpellConsonant, ESpellVowel, ESpellVowel, ESpellConsonant, ESpellConsonant,
-    //y, z
-    ESpellConsonant, ESpellSpecialConsonnant
-};
-
-const TUint16 KPinyinNoFirstElem[] =
-    {
-    0x69, 0x76, 0x75
-    };
-    
-// -----------------------------------------------------------------------------
-// CPinyinAnalyserDbFeed::NewL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CZhuyinAnalyserDbFeed* CZhuyinAnalyserDbFeed::NewL( TPinyinAnalyserDbType aType )
-    {
-    CZhuyinAnalyserDbFeed* self = new ( ELeave ) CZhuyinAnalyserDbFeed();
-    CleanupStack::PushL(self);
-    self->ConstructL( aType ); 
-    CleanupStack::Pop();
-    return self;    
-    }
-    
-CZhuyinAnalyserDbFeed::~CZhuyinAnalyserDbFeed()
-    {
-    
-    }
-// -----------------------------------------------------------------------------
-// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-CZhuyinAnalyserDbFeed::CZhuyinAnalyserDbFeed()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CPinyinAnalyserDbFeed::~CPinyinAnalyserDbFeed
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//    
-void CZhuyinAnalyserDbFeed::ConstructL( TPinyinAnalyserDbType aType )
-    {
-    
-    if ( aType == EPinyinAnalyserTypePinyin )
-        {
-        iSpellBuf.Set( KPinyinSpellsLib, sizeof( KPinyinSpellsLib ) / sizeof( KPinyinSpellsLib[0] ) );
-        iSpellLenBuf.Set( KPinyinSpellsLength, sizeof( KPinyinSpellsLength ) / sizeof ( KPinyinSpellsLength[0] ) );
-        iSpellElemBase = KPinyinBase;
-        iSpellElemLen  = KPinyinElementCount;
-        iSpellTypeBuf.Set( KPinyinTypeTable, sizeof( KPinyinTypeTable ) / sizeof ( KPinyinTypeTable[0] ) );
-        iNoFirstElements.Set( KPinyinNoFirstElem, sizeof( KPinyinNoFirstElem) / sizeof( KPinyinNoFirstElem[0] ) );
-        }
-    else if ( aType == EPinyinAnalyserTypeZhuyin )
-        {
-        iSpellBuf.Set( KZhuyinSpellsLib, sizeof( KZhuyinSpellsLib ) / sizeof( KZhuyinSpellsLib[0] ) );
-        iSpellLenBuf.Set( KZhuyinSpellsLength, sizeof( KZhuyinSpellsLength ) / sizeof ( KZhuyinSpellsLength[0] ) );
-        iSpellElemBase = KZhuyinBase;
-        iSpellElemLen  = KZhuyinElementCount;
-        iSpellTypeBuf.Set( KZhuyinTypeTable, sizeof( KZhuyinTypeTable ) / sizeof ( KZhuyinTypeTable[0] ) );
-        iNoFirstElements.Set( KZhuyinNoFirstElem, sizeof( KZhuyinNoFirstElem) / sizeof( KZhuyinNoFirstElem[0] ) );
-        }
-    else
-        {
-        ASSERT( 0 );    
-        }
-    
-    }
-
-TBool CZhuyinAnalyserDbFeed::IsToneMark( TUint16 acoseFirst, TUint16 aCodeSecond )
-    {
-    TBool first = EFalse;
-    TBool seconde = EFalse;
-    
-    for ( TInt i = 0; i < iNoFirstElements.Length(); ++i )
-        {
-        if ( iNoFirstElements[i] == acoseFirst )
-            {
-            first = ETrue;
-            }
-        if ( iNoFirstElements[i] == aCodeSecond )
-            {
-            seconde = ETrue;
-            }    
-        }
-    
-    if ( first && seconde )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
--- a/fep/aknfep/src/aknfepinputstatecandidatepinyinphrasecreation.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-/*
-* 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 aknfepinputstatecandidatepinyinphrasecreation definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>   
-#include <avkon.rsg>
-#include <aknfep.rsg>
-//#include <aknquerydialog.h> //CAknQueryDialog  
-
-// User includes
-#include "aknfepinputstatecandidatepinyinphrasecreation.h"
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h"     
-
-// Constant definition
-const TInt KMinCnadidateCount = 1;
-const TInt KMaxSpellingLength = 10;
-const TInt KMaxPhraseCreationCount = 7;
-
-//add  the max phrase is seven
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-
-// ---------------------------------------------------------------------------
-// AknFepUiInputStateCandidatePinyinAndStrokePhrase::
-// TAknFepUiInputStateCandidatePinyinAndStrokePhrase
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateCandidatePinyinPhraseCreation::
-    TAknFepInputStateCandidatePinyinPhraseCreation(
-        MAknFepUIManagerStateInterface* aOwner,
-        MAknFepUICtrlContainerChinese* aUIContainer) :
-        TAknFepInputStatePinyinPhraseCreationBase( aOwner, aUIContainer)
-    {
-    iState = ECandidateSelection;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength > KMinCnadidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(ETrue);
-    uiContainer->FocusCandidatePane(ETrue);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(ETrue);
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->SetFepMan( iOwner->FepMan() );
-    
-    UpdateIndicator();
-    ChangeCba();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCandidatePinyinPhraseCreation::HandleKeyL
-// (other items were commented in a header).
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCandidatePinyinPhraseCreation::HandleKeyL(TInt aKey,
-                                                                 TKeyPressLength aLength)
-    {
-    switch( aKey )
-        {
-        case EKeyBackspace:
-            KeyBackspace();
-            break;
-        case EKeyCBA2:
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-        default:
-            HandleKeyUpDownLeftRightArrowOrKeyCBA1OKL( aKey, aLength );
-            break;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Update indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidatePinyinPhraseCreation::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-        
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    if ( candidatePane->IsLastPage() )
-       {
-       uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);
-       }
-    else
-       {
-       uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-       }
-    }
-
-// ---------------------------------------------------------
-// Handle horizontal navigation.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateCandidatePinyinPhraseCreation::HandleHorizontalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {
-        if( !candidatePane->SelectPrev() )
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {                  
-        if( !candidatePane->SelectNext() )
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-        
-    if (response)
-        {
-        UpdateIndicator();
-        }   
-             
-    return response;
-    }
-
-// ---------------------------------------------------------
-// Handle vertical navigation.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateCandidatePinyinPhraseCreation::HandleVerticalNavigation(TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-    if (aKey == EKeyDownArrow)
-        {
-        if (candidatePane->IsLastPage())
-            {
-            return ETrue;
-            }                
-        candidatePane->NextCandidatePage();
-        }
-    else if (aKey == EKeyUpArrow)
-        {
-        if (candidatePane->IsFirstPage() )
-            {
-            return ETrue;   
-            }       
-        candidatePane->PreviousCandidatePage();
-        }
-    else
-        {
-        return EFalse;
-        }
-    candidatePane->SetCandidateBuffer();
-    candidatePane->SelectFirstPhrase();
-    UpdateIndicator(); 
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Commit inline to the EEP ctrl.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateCandidatePinyinPhraseCreation::CommitInlineEEPL( const TDesC& aText )
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* keystrokeArray = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* chooseChineseCharacterArray = 
-        popup->ChooseChineseCharacterArray();
-    CDesCArrayFlat* chooseChineseCharacterArrayKeystroke = 
-        popup->ChooseChineseCharacterArrayKeystroke();
-    TInt keyCount = validKeystroke->Count();
-    
-    TBuf<KMaxSpellingLength> keystroke;
-    
-    popup->SetPhraseCreationState( ETrue );
-    
-    for ( TInt i = 0; i < keyCount; i++ )
-        {
-        keystroke.Append( keystrokeArray->MdcaPoint( 0 ) );
-        keystrokeArray->Delete( 0 );
-        }
-    
-    chooseChineseCharacterArray->AppendL( aText );
-    chooseChineseCharacterArrayKeystroke->AppendL( keystroke );
-    validKeystroke->Reset();
-    
-    if ( chooseChineseCharacterArray->Count() >= KMaxPhraseCreationCount )
-        {
-        keystrokeArray->Reset();
-        CDesCArrayFlat* phraseCandidates = 
-            UIContainer()->CandidatePane()->CandidateArray();
-        phraseCandidates->Reset();
-        phraseCandidates->AppendL( KMaxPhraseNote );
-        RefreshUI( 0 );
-        return EFalse;
-        }  
-    return keystrokeArray->Count();
-    }
-
-// ---------------------------------------------------------
-// KeyBackspace.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidatePinyinPhraseCreation::KeyBackspace()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    // there is  "ChangeCba()" before 
-    popup->SetChangeState( ETrue );
-    iOwner->ChangeState(ESpellingSelection);
-    }
-
-// ---------------------------------------------------------
-// Key Up,Down,Left,RightArrow Or Key CBA1,OK.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidatePinyinPhraseCreation::HandleKeyUpDownLeftRightArrowOrKeyCBA1OKL( 
-                                     TInt aKey, 
-                                     TKeyPressLength aLength )
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TInt index = MapKeyToIndex(aKey);
-           
-    if ( aKey == EKeyUpArrow &&
-        iOwner->FepMan()->InputMode() == EPinyin &&
-        candidatePane->IsFirstPage())
-        {
-        popup->SetChangeState( ETrue );
-        iOwner->ChangeState(ESpellingSelection);
-        return;
-        }
-    TBool state = ETrue;
-    if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-        {
-        state = EFalse;
-        }
-    else
-        {
-        popup->SetChangeState( EFalse );
-        }
-    
-    if ( state )
-       {
-       if ( !(HandleVerticalNavigation( aKey )
-           || HandleHorizontalNavigation( aKey ) ) )
-         {
-              // it may be one of the 'valid' numbers..
-           if ( candidatePane->SelectIndex( index, EFalse ) || aKey == EKeyOK
-               || aKey == EKeyCBA1 )
-              {
-               ChangeStateOrNotL(); 
-              }
-           ChangeCba();
-          }
-       }
-    }
-   
-// ---------------------------------------------------------
-// change the state or not 
-// ---------------------------------------------------------
-//
-void TAknFepInputStateCandidatePinyinPhraseCreation::ChangeStateOrNotL()
-	{
-	 MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-	 MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if ( text.Length() )
-        {
-        CDesCArrayFlat* chooseChineseCharacterArray =
-            popup->ChooseChineseCharacterArray();
-        //here need Commit text to EEP and change 
-        //state to EEP entry state if keystroke is empty
-        //else keep spelling state 
-        if ( chooseChineseCharacterArray->Count() < KMaxPhraseCreationCount )
-            {
-            if ( !CommitInlineEEPL( text ) )
-                {
-                popup->SetChangeState( ETrue );
-                iOwner->ChangeState( EKeySequenceEdit );
-                TBool visible =
-                    ( chooseChineseCharacterArray->Count() == KMaxPhraseCreationCount );
-                UIContainer()->SetControlInVisible( visible );
-                }
-            else
-                {
-                if ( !popup->IsEnabled() )
-                    {
-                    popup->Enable( ETrue );
-                    }
-                if ( !GetValidKeystroke() )
-                    {
-                    UIContainer()->SetControlInVisible( EFalse );
-                    popup->SetChangeState( ETrue );
-                    iOwner->ChangeState( EKeySequenceEdit );
-                    }
-                else
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ChangeState( ESpellingSelection );
-                    }
-                }
-            }
-        else
-            {
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState( EKeySequenceEdit );
-            }
-        }
-    else
-        {
-        // No candidates available. Back to Entry state.
-        popup->SetChangeState( ETrue );
-        iOwner->ChangeState( EKeySequenceEdit );
-        }
-    }
-
-
-// End of file
--- a/fep/aknfep/src/aknfepinputstateminiqwertyzhuyinkeymap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* 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:            This file contains classes of phrase creation layout data management
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepinputstateminiqwertyzhuyinkeymap.h"
-#include <PtiDefs.h>
-
-const TInt16  KZhuyinSymbolUnicode = 0x2462;
-
-_LIT(KToneMark1, "\x02D9");
-_LIT(KToneMark2, "\x02CA");
-_LIT(KToneMark3, "\x02C7");
-_LIT(KToneMark4, "\x02CB");
-_LIT(KToneMark5, "\x0020");
-_LIT(KRightBracket, "(");
-_LIT(KLeftBracket, ")");
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateMiniQwertyZhuyinKeyMap::GetKeyStroke
-// Get the key stroke.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateMiniQwertyZhuyinKeyMap::GetKeyStroke(
-    CPtiEngine* aPtiEngine, TInt& aKey, TDes& aKeystroke )
-    {
-    TBuf<KMaxName> lowerdata;
-    aPtiEngine->MappingDataForKey( (TPtiKey)aKey, lowerdata, EPtiCaseLower );
-
-    TBuf<2> zhuyinStoke;
-    if ( lowerdata.Length( ) > 0 )
-        {
-        for (TInt i=0; i<lowerdata.Length()-1; i++ )
-            {
-            if ( lowerdata[i]==KZhuyinSymbolUnicode )
-                {
-                zhuyinStoke.Append( lowerdata.Mid( i+1, 1 ) );
-                }
-            }
-        }
-
-    if ( zhuyinStoke.Compare( KToneMark1 ) == 0
-        || zhuyinStoke.Compare( KToneMark2 ) == 0
-        || zhuyinStoke.Compare( KToneMark3 ) == 0
-        || zhuyinStoke.Compare( KToneMark4 ) == 0
-        || zhuyinStoke.Compare( KToneMark5 ) == 0 )
-        {
-        aKeystroke.Copy( zhuyinStoke );
-        }
-    else
-        {
-        aKeystroke.Append( KRightBracket );
-        aKeystroke.Append( zhuyinStoke );
-        aKeystroke.Append( KLeftBracket );
-        }
-    }
-
-// End of File
--- a/fep/aknfep/src/aknfepinputstatepinyinphrasecreationbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1084 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryPinyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiUserDicEntry.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-#include "aknfepinputstatepinyinphrasecreationbase.h"
-#include "AknFepPanic.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlPinyinPopup.h"    //Pinyin phrase
-#include "aknfepuictrleditpane.h" 
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-
-const TUint16 KToneMarkLib[] = 
-    {
-    0x02C9, 0x02CA, 0x02C7, 0x02CB, 0x02D9
-    };
-
-const TUint16 KDelimiter =0x0027; 
-const TInt KToneMarkMax = 5;
-const TInt KMaxKeystrokeCount = 31;
-const TInt KMaxPhraseCreationCount = 7;
-
-_LIT( KKey2, "2");
-_LIT( KKey3, "3");
-_LIT( KKey4, "4");
-_LIT( KKey5, "5");
-_LIT( KKey6, "6");
-_LIT( KKey7, "7");
-_LIT( KKey8, "8");
-_LIT( KKey9, "9");
-//KMaxPhraseNote means the max phrase is seven
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-TAknFepInputStatePinyinPhraseCreationBase::TAknFepInputStatePinyinPhraseCreationBase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateCandidateBase( aOwner, aUIContainer )
-    {    
-    }
-
-// ---------------------------------------------------------
-// Add keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AddKeystroke( TInt aKey )
-    {
-    TBool result = ETrue;
-    TRAPD( ret, result = AddKeystrokeL( aKey ) );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return result;
-    }
-
-// ---------------------------------------------------------
-// Add tone mark.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AddToneMark()
-    {
-    TBool result = ETrue;
-    TRAPD( ret, result = AddToneMarkL() );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return result;
-    }
-
-// ---------------------------------------------------------
-// get the valid keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::GetValidKeystroke()
-    {
-    TBool result = ETrue;
-    TRAPD( ret, result = GetValidKeystrokeL() );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return result;
-    }
-
-// ---------------------------------------------------------
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::DeleteCurrentKeystroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( 0 == index )
-        {
-        return EFalse;
-        }
-    
-    showKeystroke->Delete( index - 1 );
-    editPane->SetCursorIndexOfKeystroke( index - 1 );
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::ChineseRevertKeystroke()
-    {
-    TBool result = ETrue;
-    TRAPD( ret, result = ChineseRevertKeystrokeL() );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return result;
-    }
-
-// ---------------------------------------------------------
-// show info to the eep ctrl.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::ShowInfo()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* chinese = popup->ChooseChineseCharacterArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    TBuf<KMaxKeystrokeCount> buf;
-    
-    for ( TInt i = 0; i < chinese->Count(); ++i )
-        {
-        buf.Append( chinese->MdcaPoint( i ) );
-        }
-    
-    for ( TInt i = 0; i < showKeystroke->Count(); ++i )
-        {
-        buf.Append( showKeystroke->MdcaPoint( i ) );
-        }
-    
-    if ( showKeystroke->Count() == 0 )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        index = 0;
-        }
-    
-    editPane->SetText( buf, chinese->Count() + index );
-    }
-
-// ---------------------------------------------------------
-// set the show info warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::SetWarningColor()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt showKeystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TInt validKeytrokeCount = popup->KeystrokeArray()->Count();
-    if ( 0 == validKeytrokeCount )
-        {
-        editPane->SetHighlight( chineseCount, chineseCount + showKeystrokeCount );
-        }
-    }
-
-// ---------------------------------------------------------
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::GetCandidate( TInt aSelection )
-    {
-    TRAP_IGNORE( GetCandidateL( aSelection ) );
-    }
-
-// ---------------------------------------------------------
-// Change CBA
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::ChangeCba()
-    {
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-// ---------------------------------------------------------
-// Refresh UI
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::RefreshCandidate()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* candidateArray = 
-        uiContainer->CandidatePane()->CandidateArray();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    // have valid keystroke.
-    if ( validKeystroke->Count() > 0 )
-        {
-        uiContainer->SetControlInVisible( ETrue );
-        // set display page for delibrate selection
-        ClearDeliberateSelection();
-        GetCandidate( );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( ETrue );
-        }
-    else
-        {
-        candidateArray->Reset();
-        if ( KMaxPhraseCreationCount == chineseCount )
-            {
-            uiContainer->SetControlInVisible( ETrue );
-            TRAP_IGNORE( candidateArray->AppendL( KMaxPhraseNote ) );
-            }
-        else
-            {
-            uiContainer->SetControlInVisible( EFalse );
-            }
-        
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }    
-        
-    if (  EKeySequenceEdit == iState )
-        {
-        //popup->SetNoneHighlighted();
-        }
-    uiContainer->Enable(ETrue);
-    popup->Enable( validKeystroke->Count() > 0 );    
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------
-// Refresh UI
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::RefreshUI(TInt aSelection)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* candidateArray = 
-        uiContainer->CandidatePane()->CandidateArray();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    // have valid keystroke.
-    if ( validKeystroke->Count() > 0 )
-        {
-        uiContainer->SetControlInVisible( ETrue );
-        popup->SplitPhraseSpellingIntoPages();
-        inputPane->SetText( spelling->MdcaPoint( aSelection ) );
-        // set display page for delibrate selection
-        popup->SetDisplayPage(aSelection);
-        popup->SetPhraseItemTexts();
-        popup->PopupSizeChanged();
-        GetCandidate( aSelection );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( ETrue );
-        }
-    else
-        {
-        candidateArray->Reset();
-        if ( KMaxPhraseCreationCount == chineseCount )
-            {
-            uiContainer->SetControlInVisible( ETrue );
-            TRAP_IGNORE( candidateArray->AppendL( KMaxPhraseNote ) );
-            }
-        else
-            {
-            uiContainer->SetControlInVisible( EFalse );
-            }
-        
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }    
-        
-    if (  EKeySequenceEdit == iState )
-        {
-        popup->SetNoneHighlighted();
-        }
-    uiContainer->Enable(ETrue);
-    popup->Enable( validKeystroke->Count() > 0 );    
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------
-// clear selection.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::ClearDeliberateSelection()
-    {
-    // we must have just deleted the last character, 
-    // or we are starting a new pinyin session, so wipe the last deliberate selection
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    oldDeliberateSelection = KNullDesC;
-    }
-
-// ---------------------------------------------------------
-// clear the keystroke of PtiEngine.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::ClearPtiEngineKeystroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    for ( TInt i = 0; i < KMaxKeystrokeCount; ++i )
-        {
-        ptiengine->DeleteKeyPress();
-        }
-    }
-
-
-// ---------------------------------------------------------
-// Get the code of Keystroke in ITUT.
-// ---------------------------------------------------------
-//
-TInt TAknFepInputStatePinyinPhraseCreationBase::GetKeystrokeCode(
-                                                       TPtiKey& aKey, 
-                                                       const TDesC& aKeystroke )
-    {    
-    if ( aKeystroke.Length() < 1 )
-        {
-        return EKeyStrokeNull;
-        }
-    
-    // the input key is delimiter the return -1.
-    if ( KDelimiter == aKeystroke[0] )
-        {
-        aKey = EPtiKey1;
-        return EKeyDelimiter;
-        }
-    // the input key is tone mark return tone mark.
-    for ( TInt i = 0; i < KToneMarkMax; ++i )
-        {
-        if ( KToneMarkLib[i] == aKeystroke[0] )
-            {
-            return i + 1;
-            }
-        }
-    // the keystroke is 2 - 9.
-    if ( 0 == aKeystroke.Compare( KKey2 ) )
-        {
-        aKey = EPtiKey2;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey3 ) )
-        {
-        aKey = EPtiKey3;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey4 ) )
-        {
-        aKey = EPtiKey4;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey5 ) )
-        {
-        aKey = EPtiKey5;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey6 ) )
-        {
-        aKey = EPtiKey6;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey7 ) )
-        {
-        aKey = EPtiKey7;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey8 ) )
-        {
-        aKey = EPtiKey8;
-        }
-    else if ( 0 == aKeystroke.Compare( KKey9 ) )
-        {
-        aKey = EPtiKey9;
-        }
-    return EkeyNumber;
-    }
-
-
-// ---------------------------------------------------------
-// Append the key to the ptiengine.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AppendKeyPressL( 
-                                                 TPtiKey& aKey,
-                                                 TBool aAddSpellingFlag
-                                                 )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* tempSpelling = popup->TempSpelling();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* afterCheck = popup->OptimizeSpelling();
-    
-    tempSpelling->Reset();
-    afterCheck->Reset();
-    TInt stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-    TInt stringAfterLength = ptiengine->AppendKeyPress(aKey).Length();
-    // the pti can't append key.
-    if ( stringBeforeLength == stringAfterLength )
-        {
-        return EFalse;
-        }
-    // get the spelling by pti.
-    ptiengine->GetPhoneticSpellingsL( *tempSpelling );
-    // delete the phrase spelling.
-    CheckSpellingL( tempSpelling, afterCheck );
-    if ( afterCheck->Count() > 0 )
-        {
-        if ( !aAddSpellingFlag )
-            {
-            for( TInt i = afterCheck->Count() - 1; i >= 0; --i )
-                {
-                spelling->InsertL( 0, afterCheck->MdcaPoint( i ) );
-                }
-            }
-        return ETrue;            
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// Append the tone mark to the ptiengine.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AppendToneMarkL( TInt& aToneMark )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* tempSpelling = popup->TempSpelling();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();    
-    
-    for ( TInt i = 0; i < aToneMark; ++i )
-        {
-        tempSpelling->Reset();
-        ptiengine->IncrementToneMark( ETrue );
-        // get the spelling by pti.
-        ptiengine->GetPhoneticSpellingsL( *tempSpelling );
-        if ( CheckToneMark( aToneMark ) )
-            {
-            break;
-            }
-        }
-    
-    if ( tempSpelling->Count() > 0 )
-        {
-        for ( TInt i = tempSpelling->Count() - 1; i >= 0; --i )
-            {
-            spelling->InsertL( 0, tempSpelling->MdcaPoint( i ) );
-            }
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// check the spelling delete the phrase spelling.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::CheckSpellingL(
-                                               CDesCArrayFlat* aTempSpelling,
-                                               CDesCArrayFlat* aAfterCheck
-                                               )
-    {
-    TBuf<1> buf;
-    buf.Append( KDelimiter );
-    for (TInt i = 0; i < aTempSpelling->Count(); ++i )
-        {
-        if ( KErrNotFound == aTempSpelling->MdcaPoint(i).Find( buf ) )
-            {
-            aAfterCheck->AppendL( aTempSpelling->MdcaPoint(i) );
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// check the tone mark and delete the phrase spelling.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::CheckToneMark( TInt& aToneMark )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* tempSpelling = popup->TempSpelling();
-    TBuf<1> delimiter;
-    delimiter.Append( KDelimiter );
-    
-    for ( TInt i = tempSpelling->Count() - 1; i >= 0; --i )
-        {
-        if ( KErrNotFound != tempSpelling->MdcaPoint( i ).Find( delimiter ) )
-            {
-            tempSpelling->Delete( i );
-            }
-        else
-            {
-            if ( KToneMarkLib[ aToneMark - 1 ] != 
-                tempSpelling->MdcaPoint( i ).Right( 1 )[0] )
-                {
-                tempSpelling->Delete( i );
-                }
-            }
-        }
-    tempSpelling->Compress();
-    return tempSpelling->Count();
-    }
-
-
-// ---------------------------------------------------------
-// Add keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AddKeystrokeL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TBuf<1> key;
-    
-    if ( showKeystroke->Count() + chineseCount >= KMaxKeystrokeCount )
-        {
-        return EFalse;
-        }
-    
-    if ( KMaxPhraseCreationCount == chineseCount )
-        {
-        return EFalse;
-        }
-    
-    switch( (TPtiKey)aKey )
-        {
-        case EPtiKey0:
-            key.Append( KDelimiter );
-            break;
-        case EPtiKey1:
-            key.Append( KDelimiter );
-            break;
-        case EPtiKey2:
-            key.Append( EPtiKey2 );
-            break;
-        case EPtiKey3:
-            key.Append( EPtiKey3 );
-            break;
-        case EPtiKey4:
-            key.Append( EPtiKey4 );
-            break;
-        case EPtiKey5:
-            key.Append( EPtiKey5 );
-            break;
-        case EPtiKey6:
-            key.Append( EPtiKey6 );
-            break;  
-        case EPtiKey7:
-            key.Append( EPtiKey7 );
-            break;
-        case EPtiKey8:
-            key.Append( EPtiKey8 );
-            break;
-        case EPtiKey9:
-            key.Append( EPtiKey9 );
-            break;
-        default:
-            return EFalse;
-        }
-    
-    if ( index > showKeystroke->Count() )
-        {
-        index = showKeystroke->Count();
-        }
-    
-    showKeystroke->InsertL( index, key );
-    editPane->SetCursorIndexOfKeystroke( index + 1 );
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Add tone mark.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::AddToneMarkL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TBuf<1> key;
-    TInt toneMark( 0 );
-    
-    if ( KMaxPhraseCreationCount == chineseCount )
-        {
-        return EFalse;
-        }
-    
-    if ( showKeystroke->Count() + chineseCount >= KMaxKeystrokeCount )
-        {
-        if ( 0 == index )
-            {
-            return EFalse;
-            }
-        for ( TInt i = 0; i < KToneMarkMax; ++i )
-            {
-            if ( KToneMarkLib[i] == showKeystroke->MdcaPoint( index - 1 )[0] )
-                {
-                toneMark = i + 1;
-                break;
-                }
-            }
-        if ( 0 == toneMark )
-            {
-            return EFalse;
-            }
-        }
-    
-    if ( 0 == index )
-        {
-        key.Append( KToneMarkLib[0] );
-        showKeystroke->InsertL( 0, key );
-        editPane->SetCursorIndexOfKeystroke( 1 );
-        return ETrue;
-        }
-    
-    for ( TInt i = 0; i < KToneMarkMax; ++i )
-        {
-        if ( KToneMarkLib[i] == showKeystroke->MdcaPoint( index - 1 )[0] )
-            {
-            toneMark = i + 1;
-            break;
-            }
-        }
-    
-    if ( 0 == toneMark )
-        {
-        key.Append( KToneMarkLib[0] );
-        showKeystroke->InsertL( index, key );
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    else if ( KToneMarkMax == toneMark )
-        {
-        key.Append( KToneMarkLib[0] );
-        showKeystroke->Delete( index - 1 );
-        showKeystroke->InsertL( index - 1, key );
-        }
-    else
-        {
-        key.Append( KToneMarkLib[toneMark] );
-        showKeystroke->Delete( index - 1 );
-        showKeystroke->InsertL( index - 1, key );
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-//  check the keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::IsToneMark( const TDesC& aInput )
-    {
-    for ( TInt i = 0; i < KToneMarkMax; ++i )
-        {
-        if ( KToneMarkLib[i] == aInput[0] )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-// ---------------------------------------------------------
-//  check the keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::CheckKeystroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    TBuf<1> buf;
-    buf.Append( KDelimiter );
-    // if the keystroke is null then the keystroke is invalid.
-    if ( 0 == showKeystroke->Count() )
-        {
-        return EFalse;
-        }
-    // if the first keystroke is delimiter then keytroke is invalid. 
-    if ( KDelimiter == showKeystroke->MdcaPoint( 0 )[0] )
-        {
-        return EFalse;
-        }
-    // if the first keystroke is Tone mark then keytroke is invalid.
-    for ( TInt i = 0; i < KToneMarkMax; ++i )
-        {
-        if ( KToneMarkLib[i] == showKeystroke->MdcaPoint( 0 )[0] )
-            {
-            return EFalse;
-            }            
-        }
-    // the first keystroke is not delimiter and tone mark, if the number of keystroke
-    // is not more than two then must the keytroke are all valid.
-    if ( showKeystroke->Count() <= 2 )
-        {
-        return ETrue;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// get the valid keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::GetValidKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* allValidKeystroke = popup->KeystrokeArray();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    TInt allValidKeyLen = allValidKeystroke->Count();
-    TPtiKey key;
-    TInt retCode(0);
-    TBool nextIsToneMark = EFalse;
-    TBuf<1> delimiter;
-    TBuf<KMaxKeystrokeCount> beforeBuf;
-    TBuf<KMaxKeystrokeCount> afterBuf;
-    
-    delimiter.Append( KDelimiter );
-    
-    for ( TInt i = 0; i < allValidKeyLen; ++i )
-        {
-        if ( 0 == allValidKeystroke->MdcaPoint( i ).Compare( delimiter ) )
-            {
-            break;
-            }
-        beforeBuf.Append( allValidKeystroke->MdcaPoint( i ) );
-        }
-    
-    spelling->Reset();
-    validKeystroke->Reset();
-    allValidKeystroke->Reset();
-    
-    ClearPtiEngineKeystroke();
-    if ( !CheckKeystroke() )
-        {
-        if ( allValidKeyLen > 0 )
-            {
-            popup->SetValidKeystrokeChange( ETrue );
-            }
-        else
-            {
-            popup->SetValidKeystrokeChange( EFalse );
-            }
-        return EFalse;
-        }
-    
-    // the firts keystroke is key 2 - 9.    
-    for ( TInt i = 0; i < showKeystroke->Count(); ++i )
-        {
-        retCode = GetKeystrokeCode( key, showKeystroke->MdcaPoint( i ) );
-        //the keystroke is delimiter.
-        if ( -1 == retCode )
-            {
-            validKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-            allValidKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-            break;
-            }
-        //the keystroke is 2 - 9
-        else if ( 0 == retCode )
-            {
-            //if the next keystroke is tone mark, then current keystroke and 
-            //the next keystroke need to whole check. 
-            if ( i < showKeystroke->Count() - 1 )
-                {
-                TPtiKey keyTmp;
-                if ( GetKeystrokeCode( keyTmp, 
-                    showKeystroke->MdcaPoint( i  + 1) ) > 0 )
-                    {
-                    nextIsToneMark = ETrue;
-                    }
-                }
-            if ( AppendKeyPressL( key, nextIsToneMark ) )
-                {
-                //the next keystroke is not tone mark.
-                if ( !nextIsToneMark )
-                    {
-                    validKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-                    allValidKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-                    }
-                }
-            else
-                {
-                break;
-                }
-            }
-        else
-            {
-            if ( AppendToneMarkL( retCode ) )
-                {
-                validKeystroke->AppendL( showKeystroke->MdcaPoint( i - 1 ) );
-                validKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-                allValidKeystroke->AppendL( showKeystroke->MdcaPoint( i - 1 ) );
-                allValidKeystroke->AppendL( showKeystroke->MdcaPoint( i ) );
-                }
-            break;
-            }
-        }
-    for ( TInt i = 0; i < allValidKeystroke->Count(); ++i )
-        {
-        if ( 0 == allValidKeystroke->MdcaPoint( i ).Compare( delimiter ) )
-            {
-            break;
-            }
-        afterBuf.Append( allValidKeystroke->MdcaPoint( i ) );
-        }
-    
-    if ( allValidKeystroke->Count() > 0 )
-        {
-        if ( ( 0 == allValidKeyLen ) ||  
-            ( 0 != afterBuf.Compare( beforeBuf ) ) )
-            {
-            popup->SetValidKeystrokeChange( ETrue );
-            }
-        else
-            {
-            popup->SetValidKeystrokeChange( EFalse );
-            }
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// Revert the current chinse to keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStatePinyinPhraseCreationBase::ChineseRevertKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* chinese = popup->ChooseChineseCharacterArray();
-    CDesCArrayFlat* chineseKeystroke = 
-        popup->ChooseChineseCharacterArrayKeystroke();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( ( 0 != index ) || ( 0 == chinese->Count() ) )
-        {
-        return EFalse;
-        }
-    
-    if ( chineseKeystroke->MdcaPoint( chineseKeystroke->Count() - 1 ).Length() < 1 )
-        {
-        return EFalse;
-        }
-    
-    for( TInt i = chineseKeystroke->MdcaPoint( chineseKeystroke->Count() - 1 ).
-        Length() - 1; i >= 0 ; --i )
-        {
-        showKeystroke->InsertL( 0, chineseKeystroke->MdcaPoint( 
-            chineseKeystroke->Count() - 1 ).Mid( i, 1 ) );
-        }
-    
-    editPane->SetCursorIndexOfKeystroke( 
-        chineseKeystroke->MdcaPoint( chineseKeystroke->Count() - 1 ).Length() );
-    chinese->Delete( chinese->Count() - 1 );
-    chineseKeystroke->Delete( chineseKeystroke->Count() - 1 );
-    
-    // if the show inof's length more than KMaxKeystrokeCount, delete more inof.   
-    for ( TInt i = chinese->Count() + showKeystroke->Count() - KMaxKeystrokeCount; 
-        i > 0; --i )
-        {
-        showKeystroke->Delete( showKeystroke->Count() - 1 );
-        }
-        
-    showKeystroke->Compress();
-    chinese->Compress();
-    chineseKeystroke->Compress();
-    return ETrue;
-    }
-
-
-// ---------------------------------------------------------
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::GetCandidateL( TInt aSelection )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* phraseCandidates = 
-        uiContainer->CandidatePane()->CandidateArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    
-    phraseCandidates->Reset();
-    if ( ( aSelection > spelling->Count() ) || ( 0 == spelling->Count() ) )
-        {
-        return;
-        }
-    extern void CleanArray( TAny* aAny );
-    RPointerArray<HBufC> list;
-    TCleanupItem cleanitem( CleanArray, &list );
-    CleanupStack::PushL( cleanitem );
-    TPtrC curSpell = spelling->MdcaPoint( aSelection );
-    HBufC* retString = ptiengine->GetCandidatesByInputString( 
-                                              spelling->MdcaPoint( aSelection ), 
-                                              list,
-                                              EFalse );
-    
-    CleanupStack::PushL( retString );
-    for (int index = 0; index < ptiengine->PhoneticSpellingCount(); index++)
-        {
-        TPtrC ptr = ptiengine->GetPhoneticSpelling(index + 1);               
-        if (ptr.Length() == curSpell.Length())
-            {
-            ptiengine->SelectPhoneticSpelling(index + 1);
-            ptiengine->GetChinesePhraseCandidatesL(*phraseCandidates);
-            break;
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( retString );
-    CleanupStack::PopAndDestroy(); // cleanitem   
-    }
-
-// ---------------------------------------------------------
-// Change CBA
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::ChangeCbaL()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TInt validKeystrokeCount = popup->InEffectKeystrokeArray()->Count();
-    TInt lastRes = popup->GetLastResouce();
-
-    if ( ( chineseCount == KMaxPhraseCreationCount ) ||
-        ( ( 0 == keystrokeCount ) && ( chineseCount > 1 ) ) )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE )
-            {
-            return;
-            }
-        //User cba done-done-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        }
-    else if ( ( 0 != keystrokeCount ) && ( 0 != validKeystrokeCount ) )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT )
-            {
-            return;
-            }
-        //User cba select-select-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        }
-    else
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY )
-            {
-            return;
-            }
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        }
-    }
-
-// ---------------------------------------------------------
-// Update Indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputStatePinyinPhraseCreationBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    if ( candidatePane->IsFirstPage() )
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->IsLastPage() )
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->SelectedIndex() == 0
-        && candidatePane->IsFirstPage() )
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowLeftScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->IsLastPage() && (candidatePane->SelectedIndex()
-        == candidatePane->VisibleCandidateCount() - 1 ) )
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowRightScrollArrows( ETrue );
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepinputstatespellingpinyinphrasecreation.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,402 +0,0 @@
-/*
-* Copyright (c) 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 CAknFepUIInputStatePinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiDefs.h>                            //keys
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <aknnotewrappers.h>
-
-#include "AknFepPanic.h"
-#include "aknfepinputstatespellingpinyinphrasecreation.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"		//Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepManager.h"
-
-const TUint16 KDelimiter =0x0027;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KMaxSpellingLength = 10;
-
-// ---------------------------------------------------------
-// C++ construct.
-// ---------------------------------------------------------
-//
-TAknFepInputStateSpellingPinyinPhraseCreation::TAknFepInputStateSpellingPinyinPhraseCreation(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStatePinyinPhraseCreationBase( aOwner, aUIContainer )
-    {
-    iState = ESpellingSelection;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane(EFalse);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutPhraseCreation);
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-    uiContainer->ShowVerticalScrollArrows(ETrue);
-    uiContainer->ShowHorizontalScrollArrows(EFalse);
-    uiContainer->InputPane()->SetOverrideFontId(0);
-    uiContainer->SetFepMan( iOwner->FepMan() );
-    uiContainer->EditPaneWindow()->DeactiveCursor();
-    
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    if ( uiContainer->PinyinPopupWindow()->GetFromEditToSpellingFlag() )
-        {
-        TInt validCount = uiContainer-> 
-            PinyinPopupWindow()->InEffectKeystrokeArray()->Count();
-        TInt chineseCount = uiContainer-> 
-            PinyinPopupWindow()->ChooseChineseCharacterArray()->Count();
-        TInt index = 0;
-        if ( !uiContainer->PinyinPopupWindow()->GetPhraseCreationEditingState() )
-            {
-            index = uiContainer->PinyinPopupWindow()->CurrentSelection();
-            }        
-        uiContainer->EditPaneWindow()->SetCursorIndexOfKeystroke( validCount );
-        ShowInfo();
-        uiContainer->EditPaneWindow()->
-            SetUnderline( chineseCount, chineseCount + validCount - 1 );
-        uiContainer->InputPane()->SetText( uiContainer->
-            PinyinPopupWindow()->PhoneticSpellingArray()->MdcaPoint( index ) );
-        uiContainer->PinyinPopupWindow()->SetFromEditToSpellingFlag();
-        uiContainer->PinyinPopupWindow()->SplitPhraseSpellingIntoPages();
-        uiContainer->PinyinPopupWindow()->SetDisplayPage( index );
-        uiContainer->PinyinPopupWindow()->SetPhraseItemTexts();
-        uiContainer->PinyinPopupWindow()->PopupSizeChanged(); // phrase input
-        uiContainer->PinyinPopupWindow()->Enable( ETrue );
-        }
-    else
-        {
-        ImplicityShowInfo( ETrue );
-        }
-    
-    ChangeCba();
-    }
-
-// ---------------------------------------------------------
-// HandleKeyL
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateSpellingPinyinPhraseCreation::HandleKeyL(
-                                 TInt aKey, 
-                                 TKeyPressLength aLength )
-    {
-    switch( aKey )
-        {
-        case EKeyBackspace:
-        case EKeyUpArrow:
-            HandleKeyBackspaceOrKeyUpArrow( aLength );
-            break;
-        case EKeyRightArrow:
-            HandleKeyRightArrow();
-            break;
-        case EKeyLeftArrow:
-            HandleKeyLeftArrow();
-            break;
-        case EKeyOK:
-        case EKeyDownArrow:
-        case EKeyCBA1:    
-             HandleKeyOKOrKeyDownArrowOrKeyCBA1( aLength );
-            break;
-        case EKeyCBA2:
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-        default:
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            break;
-        }
-        return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Initialize state
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT);
-    }
-
-// ---------------------------------------------------------
-// Implicity the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::ImplicityShowInfo( 
-                                                 TBool aGetScreenCoordinates )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TInt selection(0);
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    if ( aGetScreenCoordinates )
-        {
-        TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-        if (ret == KErrNone)
-            {
-            uiContainer->SetContainerPosition(baseLine, height);    
-            }
-        }
-    if ( popup->GetPhraseCreationState() )
-        {
-        GetValidKeystroke();
-        editPane->SetCursorIndexOfKeystroke( validKeystroke->Count() );
-        }
-    else
-        {
-        editPane->SetCursorIndexOfKeystroke( validKeystroke->Count() );
-        }
-    
-    ShowInfo();
-    editPane->SetUnderline( chineseCount, chineseCount + 
-        validKeystroke->Count() - 1 );
-    if ( popup->GetPhraseCreationState() )
-        {
-        ClearDeliberateSelection();        
-        }
-    else
-        {
-        selection = popup->CurrentSelection();
-        }
-    RefreshUI( selection );
-    if ( popup->GetPhraseCreationState() )
-        {
-        popup->SetPhraseCreationState( EFalse );
-        }
-    }
-
-// ---------------------------------------------------------
-// Refresh the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::RefreshShowInfo()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* candidateArray = 
-        uiContainer->CandidatePane()->CandidateArray();
-    TInt selection = popup->CurrentSelection();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TPtr deliberateSelection = iOwner->GetLatestDeliberateSelection();
-    
-    editPane->SetCursorIndexOfKeystroke( validKeystroke->Count() );
-    ShowInfo();
-    editPane->SetUnderline( chineseCount, chineseCount + 
-        validKeystroke->Count() - 1 );
-    inputPane->SetText( spelling->MdcaPoint( selection ) );
-    deliberateSelection = spelling->MdcaPoint( selection );
-    
-    popup->SplitPhraseSpellingIntoPages();
-    popup->SetDisplayPage(selection);
-    popup->SetPhraseItemTexts();
-    popup->PopupSizeChanged();
-    popup->Enable( validKeystroke->Count() );
-    GetCandidate( selection );
-    uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------
-// KeyBackspace Or KeyUpArrow
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::HandleKeyBackspaceOrKeyUpArrow( 
-    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    
-    TBool state = ETrue;
-    if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-        {
-        state = EFalse;
-        }
-    else
-        {
-        popup->SetChangeState( EFalse );
-        }
-    if ( state )
-        {
-        popup->SetChangeState( ETrue );
-        //change state to EKeySequenceEdit
-        popup->SetFromEditToSpellingFlag( ETrue );
-        iOwner->ChangeState( EKeySequenceEdit );
-        }
-    }
-
-// ---------------------------------------------------------
-// KeyOK Or KeyDownArrow Or KeyCBA1
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::HandleKeyOKOrKeyDownArrowOrKeyCBA1( 
-    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TBool state = ETrue;
-    if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-        {
-        state = EFalse;
-        }
-    else
-        {
-        popup->SetChangeState( EFalse );
-        }
-
-    TBool changeState = ( popup->ChooseChineseCharacterArray()->Count() != 
-        KMaxPhraseCreationCount ) && ( popup->KeystrokeArray()->Count() != 0 );
-    
-    if ( changeState && state )
-        {
-        if(popup->IsEnabled())
-            {
-            popup->Enable(EFalse);
-            }
-        popup->SetChangeState( ETrue );
-        iOwner->ChangeState(ECandidateSelection);     
-        }
-    }
-
-// ---------------------------------------------------------
-// KeyRightArrow
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::HandleKeyRightArrow()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TBuf<KMaxSpellingLength> spelling;
-    popup->SetPhraseCreationState( EFalse );
-    if( popup->SelectNextPhrase() )
-        {
-        if ( RefreshValidKeystroke() )
-            {
-            RefreshShowInfo();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    }
-
-// ---------------------------------------------------------
-// KeyRightArrow
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::HandleKeyLeftArrow()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    if( popup->SelectPrevPhrase() )
-        {
-        if ( RefreshValidKeystroke() )
-            {
-            RefreshShowInfo();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    }
-
-// ---------------------------------------------------------
-// Refresh Valid Keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateSpellingPinyinPhraseCreation::RefreshValidKeystroke()
-    {
-    TRAPD( ret, RefreshValidKeystrokeL() );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Refresh Valid Keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingPinyinPhraseCreation::RefreshValidKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* validKeystroke = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* keystroke = popup->ShowKeystrokeArray();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();    
-    TInt selection = popup->CurrentSelection();
-    validKeystroke->Reset();
-    TInt spellLength = spelling->MdcaPoint( selection ).Length();
-    
-    for ( TInt i = 0; ( i < spellLength ) && ( spellLength <= 
-        keystroke->Count() ); ++i )
-        {
-        validKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-        }
-    
-    if ( spellLength < keystroke->Count() )
-        {
-        if ( KDelimiter == keystroke->MdcaPoint( spellLength )[0] )
-            {
-            validKeystroke->AppendL( keystroke->MdcaPoint( spellLength ) );
-            }
-        }
-    
-    validKeystroke->Compress();
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuifingeritutinputstategeneric.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,208 +0,0 @@
-/*
-* Copyright (c) 2002 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 TAknFepInputStateInitialChineseGeneric methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <PtiEngine.h>
-#include <e32keys.h>
-#include <PtiDefs.h>
-
-#include "aknfepuifingeritutinputstategeneric.h"
-#include "AknFepCaseManager.h"
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepManager.h"
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUIFingerItutInputStateChineseGeneric::TAknFepUIFingerItutInputStateChineseGeneric(
-    MAknFepUIManagerStateInterface* aOwner/*,
-    MAknFepUICtrlContainerChinese* aUIContainer*/)
-    :TAknFepInputStateBase(aOwner),//TAknFepInputStateInitialChineseMultitapBase(aOwner, aUIContainer),
-    iPreObserver(NULL)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Handle key event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUIFingerItutInputStateChineseGeneric::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBool ret = ETrue;
-    
-    if (aLength == ELongKeyPress &&
-       (aKey >= EPtiKey0 && aKey <= EPtiKey9))
-        {
-        TChar ch(aKey);
-        TBuf<1> buf;
-        buf.Append(ch);
-	    fepMan->NewCharacterL(buf);
-	    fepMan->CommitInlineEditL();
-	    ptiengine->ClearCurrentWord();
-        return ret;
-        }
-    
-    if(iData && (iData != aKey))
-        {
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-        }
-
-    //7,8,9 are not multitap in EStroke, so commit
-    if ((fepMan->InputMode() == EStroke) &&
-         (iData == EPtiKey7 || iData == EPtiKey8 || iData == EPtiKey9 ))
-    	{
-        fepMan->CommitInlineEditL();
-        ptiengine->ClearCurrentWord();
-    	}
-
-    iData = aKey;
-
-    switch(aKey)
-        {
-        case EPtiKey0:
-        case EPtiKey1:
-            {
-            const TPtiTextCase oldCase = ptiengine->Case();
-            if (fepMan->InputMode() == EStroke)
-                {
-                ptiengine->SetCase(EPtiCaseUpper);
-                }
-            SetPreObserver(ptiengine->Observer());
-            ptiengine->SetObserver(this);
-            TPtrC retText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-            fepMan->NewCharacterL(retText);
-            ptiengine->SetCase(oldCase);
-            }
-        break;
-        case EPtiKey7:
-        case EPtiKey8:
-        case EPtiKey9:
-           {
-            if (fepMan->InputMode() == EStroke)
-                {
-                const TPtiTextCase oldCase = ptiengine->Case();
-                ptiengine->SetCase(EPtiCaseUpper);
-                
-                SetPreObserver(ptiengine->Observer());
-                ptiengine->SetObserver(this);
-                
-                TPtrC retText = ptiengine->AppendKeyPress((TPtiKey)aKey);
-                fepMan->NewCharacterL(retText);
-                ptiengine->SetCase(oldCase);
-                }
-            }
-        break;
-        case EPtiKeyStar:
-            {
-            if (aLength == EShortKeyPress)
-                {
-                if (fepMan->EditSubmenuInUse())
-                    {
-                    fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                    }
-               else if (fepMan->IsAbleToLaunchSCT())
-                    {
-                    fepMan->LaunchSpecialCharacterTableL();
-                    }
-                }
-            else
-                {
-                if (fepMan->EditSubmenuInUse())
-                    {
-                    fepMan->LaunchSpecialCharacterTableL();
-                    }
-                }
-            }
-        break;
-        case EStdKeyNull:
-            {
-            ret = EFalse; 
-            }
-        break;
-        case EKeyOK:
-        case EKeyBackspace:
-        default:
-            {
-            ret = EFalse; 
-            }
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// Set Previous ptiengine observer
-// ---------------------------------------------------------------------------
-//
-void TAknFepUIFingerItutInputStateChineseGeneric::SetPreObserver(MPtiObserver* aPreObserver)
-    {
-    if (aPreObserver != this)
-        {
-    	  iPreObserver = aPreObserver; 
-    	  }
-    }
-    
-// ---------------------------------------------------------------------------
-// Get Previous ptiengine observer
-// ---------------------------------------------------------------------------
-//
-MPtiObserver* TAknFepUIFingerItutInputStateChineseGeneric::PreObserver()
-    {
-    return iPreObserver;
-    }
-    
-// ---------------------------------------------------------------------------
-// Key timer expired called by ptiengine 
-// ---------------------------------------------------------------------------
-//
-void TAknFepUIFingerItutInputStateChineseGeneric::KeyTimerExpired()
-    {
-    if (iData)
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        TRAP_IGNORE(fepMan->CommitInlineEditL());
-
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        ptiengine->ClearCurrentWord();
-
-        CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-        caseMan->UpdateCase(ENullNaviEvent); 
-
-        iData = 0;
-        
-        ptiengine->SetObserver(PreObserver());
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuiinputminiqwertypinyinphrasebase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2684 +0,0 @@
-/*
-* 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 TAknFepInputStateStrokePhraseCreationBase definition.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32cmn.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-// User includes
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-#include "aknfepuiinputminiqwertypinyinphrasebase.h"
-
-// Constant definition
-const TInt KMaxPhraseCount = 50;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KMaxKeystrokeCount = 31;
-const TInt KInvalidToneMark = -1;
-const TUint16 KAutoDLT = 0x002E;
-const TUint16 KManualDLT = 0x0027;
-const TUint16 KPYa = 0x0061;
-const TUint16 KPYb = 0x0062;
-const TUint16 KPYc = 0x0063;
-const TUint16 KPYd = 0x0064;
-const TUint16 KPYe = 0x0065;
-const TUint16 KPYf = 0x0066;
-const TUint16 KPYg = 0x0067;
-const TUint16 KPYh = 0x0068;
-const TUint16 KPYi = 0x0069;
-const TUint16 KPYj = 0x006A;
-const TUint16 KPYk = 0x006B;
-const TUint16 KPYl = 0x006C;
-const TUint16 KPYm = 0x006D;
-const TUint16 KPYn = 0x006E;
-const TUint16 KPYo = 0x006F;
-const TUint16 KPYp = 0x0070;
-const TUint16 KPYq = 0x0071;
-const TUint16 KPYr = 0x0072;
-const TUint16 KPYs = 0x0073;
-const TUint16 KPYt = 0x0074;
-const TUint16 KPYu = 0x0075;
-const TUint16 KPYv = 0x0076;
-const TUint16 KPYw = 0x0077;
-const TUint16 KPYx = 0x0078;
-const TUint16 KPYy = 0x0079;
-const TUint16 KPYz = 0x007A;
-
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-const TMiniQwertyKeyMap StrokeMap[] =
-    {
-    {KPYa, EPtiKeyQwertyA},
-    {KPYb, EPtiKeyQwertyB},
-    {KPYc, EPtiKeyQwertyC},
-    {KPYd, EPtiKeyQwertyD},
-    {KPYe, EPtiKeyQwertyE},
-    {KPYf, EPtiKeyQwertyF},
-    {KPYg, EPtiKeyQwertyG},
-    {KPYh, EPtiKeyQwertyH},
-    {KPYi, EPtiKeyQwertyI},
-    {KPYj, EPtiKeyQwertyJ},
-    {KPYk, EPtiKeyQwertyK},
-    {KPYl, EPtiKeyQwertyL},
-    {KPYm, EPtiKeyQwertyM},
-    {KPYn, EPtiKeyQwertyN},
-    {KPYo, EPtiKeyQwertyO},
-    {KPYp, EPtiKeyQwertyP},
-    {KPYq, EPtiKeyQwertyQ},
-    {KPYr, EPtiKeyQwertyR},
-    {KPYs, EPtiKeyQwertyS},
-    {KPYt, EPtiKeyQwertyT},
-    {KPYu, EPtiKeyQwertyU},
-    {KPYv, EPtiKeyQwertyV},
-    {KPYw, EPtiKeyQwertyW},
-    {KPYx, EPtiKeyQwertyX},
-    {KPYy, EPtiKeyQwertyY},
-    {KPYz, EPtiKeyQwertyZ},
-    {KManualDLT, EPtiKeyQwertySpace}
-    };
-
-const TMiniQwertyToneMap PinyinToneMap[] =
-    {
-    {0x02C9, 1},
-    {0x02CA, 2},
-    {0x02C7, 3},
-    {0x02CB, 4},
-    {0x02D9, 5}
-    };
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseCreationBase::TAknFepInputStateStrokePhraseCreationBase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputMiniQwertyPinyinPhraseBase::TAknFepInputMiniQwertyPinyinPhraseBase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer) :
-    TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    if (iOwner->PtiEngine()->InputMode() != EPtiEnginePinyinPhraseQwerty)
-        {
-        iOwner->PtiEngine()->SetInputMode(EPtiEnginePinyinPhraseQwerty);
-        }
-    iOwner->PtiEngine()->SetCandidatePageLength(KMaxPhraseCount);
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && uiContainer->CandidatePane()->IsFirstPage());
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyL(TInt aKey,
-    TKeyPressLength aLength)
-    {
-    //
-    switch (aKey)
-        {
-        case EKeyLeftShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EStdKeyDevice1:// CBA2    
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EKeyRightFunc:
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            break;
-            }
-        case EStdKeyLeftFunc: //tone mark.
-            {
-            HandlToneMarkL();
-            break;
-            }
-        case EStdKeyBackspace:
-            {
-            if (CheckKeyNeedRepeat(aLength) )
-                {
-                HandleKeyBackspaceL(aLength);
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EStdKeyEnter://Enter keypress.
-            {
-            HandlEnterKeyL();
-            break;
-            }
-        case EStdKeyDevice0:// CBA1
-        case EStdKeyDevice3:// CBASelect
-            {
-            HandleCommitL();
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            if (EMiniQwertyEdit == iState)
-                {
-                if (CheckFirstGroupStroke() )
-                    {
-                    iOwner->ChangeState(EEntry);
-                    }
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if (EMiniQwertyEdit == iState)
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EManualChangeState );
-                MoveCursorLeft();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EStdKeyRightArrow:
-            {
-            if (EMiniQwertyEdit == iState)
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EManualChangeState );
-                MoveCursorRight();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EStdKeySpace:
-            {
-            if (EShortKeyPress == aLength)
-                {
-                HandlSpaceKeyL();
-                break;
-                }
-            break;
-            }
-        default:
-            {
-            if (CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyLock
-                    == iOwner->FepMan()->FnKeyState()
-                    || ( CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState() && iState != ECandidate ))
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                return ETrue;
-                }
-            else
-                if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)
-                        || iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-                    {
-                    iOwner->FepMan()->TryCloseUiL();
-                    return EFalse;
-                    }
-                else
-                    if ( (EShortKeyPress == aLength )
-                            && (iOwner->IsValidChineseInputKeyQwerty(aKey) ))
-                        {
-                        if (iState == ECandidate)
-                            {
-                            HandleKeyFromCandidateL(aKey, aLength);
-                            }
-                        else
-                            {
-                            HandleDefaultKeyL(aKey);
-                            }
-                        }
-                    else
-                        {
-                        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                        }
-            break;
-            }
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::RefreshUI
-// Update input window.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::RefreshUI(TBool aRefresh)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // get cursor position
-    if (aRefresh)
-        {
-        TPoint baseLine;
-        TInt height(0);
-        TInt ascent(0);
-        TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent))
-        ;
-        if (ret == KErrNone)
-            {
-            uiContainer->SetContainerPosition(baseLine, height);
-            }
-        }
-    if ( (uiContainer->EditPaneWindow()->KeystrokeArray()->Count() > 0 ) || 
-        (uiContainer->EditPaneWindow()->PhraseArray()->Count() > 0 ) )
-        {
-        ShowInfoOnEEPPane();
-        SetWarningColor();
-        ShowInfoOnCandidatePane();
-        UpdateIndicator();
-        TRAP_IGNORE( ChangeCbaL() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckFirstGroupStroke
-// check the first group stroke of keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckFirstGroupStroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keyCode = 0;
-    TInt toneMark = 0;
-    if ( 0 == showKeystroke->Count() )
-        {
-        return EFalse;
-        }
-
-    if (KInvalidToneMark != ToneMark(showKeystroke->MdcaPoint( 0) ) )
-        {
-        return EFalse;
-        }
-
-    ClearPtiEngineKeystroke();
-    for (TInt i = 0; i < showKeystroke->Count(); ++i)
-        {
-        if (CheckSpellingDLT(showKeystroke->MdcaPoint(i) ) )
-            {
-            if ( 0 == i)
-                {
-                return EFalse;
-                }
-            else
-                {
-                return ETrue;
-                }
-            }
-        toneMark = ToneMark(showKeystroke->MdcaPoint(i) );
-        if (KInvalidToneMark != toneMark)
-            {
-            for (TInt j = 0; j < toneMark; ++j)
-                {
-                ptiengine->IncrementToneMark(ETrue);
-                TPtrC ptr0 = getCurrentLeastDLTSpell();
-                if (ptr0.Length() > 0)
-                    {
-                    if ( 0
-                            == ptr0.Mid( ptr0.Length() - 1, 1 ).Compare(showKeystroke->MdcaPoint(i) ) )
-                        {
-                        return ETrue;
-                        }
-                    }
-                }
-            TPtrC ptr = getCurrentLeastDLTSpell();
-            if ( 0 == ptr.Mid( ptr.Length() - 1, 1 ).Compare(showKeystroke->MdcaPoint(i) ) )
-                {
-                return ETrue;
-                }
-            else
-                {
-                return EFalse;
-                }
-            }
-        GetKeystrokeCode(keyCode, showKeystroke->MdcaPoint(i) );
-        stringBeforeLength = getCurrentLeastDLTSpell().Length();
-        ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-        stringAfterLength = getCurrentLeastDLTSpell().Length();
-        //the keystroke is invalid.
-        if (stringBeforeLength == stringAfterLength)
-            {
-            return EFalse;
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandlEnterKey
-// Handle Enter key press
-// ---------------------------------------------------------------------------
-//
-TInt TAknFepInputMiniQwertyPinyinPhraseBase::GetCursorPos()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt pos = 0;
-    TInt count = 0;
-    TBuf<1> autoDLT;
-    autoDLT.Append(KAutoDLT);
-
-    if ( 0 == index)
-        {
-        pos = phraseCount;
-        }
-    else
-        if (keystroke->Count() == index)
-            {
-            pos = phraseCount + showKeystroke->Count();
-            }
-        else
-            {
-            for (TInt i = 0; i < showKeystroke->Count(); ++i)
-                {
-                if ( 0 != showKeystroke->MdcaPoint( i ).Compare(autoDLT) )
-                    {
-                    count = count + 1;
-                    }
-                if (count == index)
-                    {
-                    pos = phraseCount + i + 1;
-                    break;
-                    }
-                }
-            }
-    return pos;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandlEnterKeyL
-// Handle Enter key press
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandlEnterKeyL()
-    {
-    TBuf<KMaxKeystrokeCount> currentText;
-    MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* showkeyStoke = editpane->ShowKeystrokeArray();
-    CDesCArrayFlat* phraseArray = editpane->PhraseArray();
-    TInt phraseCount = phraseArray->Count();
-    TInt keyStrokeCount = showkeyStoke->Count();
-    TInt i = 0;
-    TBuf<1> autoDLT;
-    autoDLT.Append(KAutoDLT);
-
-    for (i = 0; i < phraseCount; i++)
-        {
-        currentText.Append(phraseArray->MdcaPoint(i) );
-        }
-    for (i = 0; i < keyStrokeCount; i++)
-        {
-        currentText.Append(showkeyStoke->MdcaPoint(i) );
-        }
-
-    while (currentText.Find(autoDLT)> 0)
-        {
-        currentText.Replace(currentText.Find(autoDLT), 1, KNullDesC);
-        }
-
-    if (currentText.Length() )
-        {
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        fepMan->NewTextL(currentText);
-        fepMan->CommitInlineEditL();
-        if (keyStrokeCount == 0 && currentText.Length() > 1)
-            {
-            AddPhraseToDB(currentText);
-            }
-
-        UIContainer()->EditPaneWindow()->ResetAllArray();
-        UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-
-        if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-            {
-            fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandlToneMarkL
-// Handle tone mark key press.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandlSpaceKeyL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt showKeystrokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBuf<1> manualDLT;
-    TBuf<1> autoDLT;
-    manualDLT.Append( KManualDLT );
-    autoDLT.Append( KAutoDLT );
-    
-    TBool firstGroup = CheckFirstGroupStroke();
-
-    keystrokeArray->InsertL(index, manualDLT);
-    editPane->SetCursorIndexOfKeystroke(index + 1);
-    AnalyseL();
-    
-    if ( editPane->ShowKeystrokeArray()->Count() > KMaxKeystrokeCount )
-        {
-        keystrokeArray->Delete( index );
-        editPane->SetCursorIndexOfKeystroke( index );
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        AnalyseL();
-        return;
-        }
-    
-    //Auto change from EMiniQwertyEdit state to EEntry state. 
-    if (EMiniQwertyEdit == iState)
-        {
-        if ( ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            if ( EAutoChangeStateFromCandidate == editPane->GetAutoChangeStateFlag() )
-                {
-                RefreshUI();
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(ECandidate);
-                }
-            else if ( EAutoChangeStateFromInput == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(EEntry);
-                }
-            else
-                {
-                RefreshUI();
-                }
-            return;
-            }
-        }
-
-    //Auto change from EEntry state to EMiniQwertyEdit state.
-    if (EEntry == iState)
-        {
-        if ( !CheckFirstGroupStroke() )
-            {
-            editPane->SetAutoChangeStateFlag(EAutoChangeStateFromInput);
-            editPane->SetChangeState(ETrue);
-            iOwner->ChangeState(EMiniQwertyEdit);
-            return;
-            }
-        }
-
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandlToneMarkL
-// Handle tone mark key press.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandlToneMarkL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TBool firstGroup = CheckFirstGroupStroke();
-    AddToneMarkL();
-    AnalyseL();
-    //Auto change from EMiniQwertyEdit state to EEntry state. 
-    if (EMiniQwertyEdit == iState)
-        {
-        if ( ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            if ( EAutoChangeStateFromCandidate == editPane->GetAutoChangeStateFlag() )
-                {
-                RefreshUI();
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(ECandidate);
-                }
-            else if ( EAutoChangeStateFromInput == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(EEntry);
-                }
-            else
-                {
-                RefreshUI();
-                }
-            return;
-            }
-        }
-
-    //Auto change from EEntry state to EMiniQwertyEdit state.
-    if (EEntry == iState)
-        {
-        if ( !CheckFirstGroupStroke() )
-            {
-            editPane->SetAutoChangeStateFlag(EAutoChangeStateFromInput);
-            editPane->SetChangeState(ETrue);
-            iOwner->ChangeState(EMiniQwertyEdit);
-            return;
-            }
-        }
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckManualDelimiter
-// Check the delimiter that wether is manual delimiter.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckManualDelimiter(
-    const TInt aCount, const TDesC& aKeystroke)
-    {
-    TInt keyCount = 0;
-    for (TInt i = 0; i < aKeystroke.Length(); ++i)
-        {
-        if (KManualDLT != aKeystroke[i])
-            {
-            keyCount = keyCount + 1;
-            }
-        if (aCount == keyCount)
-            {
-            break;
-            }
-        }
-
-    if (keyCount != aCount)
-        {
-        return EFalse;
-        }
-
-    if (aKeystroke.Length() == keyCount)
-        {
-        return EFalse;
-        }
-
-    if (KManualDLT != aKeystroke[keyCount])
-        {
-        return EFalse;
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingL
-// Analyse Pinyin spelling.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingL(
-    const TDesC& aKeystroke, const TDesC& aSpelling,
-    CDesCArrayFlat* aShowKeystroke)
-    {
-    TInt count = 0;
-    TBuf<1> manualDLT;
-    TBuf<1> autoDLT;
-    manualDLT.Append(KManualDLT);
-    autoDLT.Append(KAutoDLT);
-
-    if ( 0 == aSpelling.Compare(aKeystroke) )
-        {
-        for (TInt i = 0; i < aKeystroke.Length(); ++i)
-            {
-            aShowKeystroke->AppendL(aKeystroke.Mid(i, 1) );
-            }
-        return;
-        }
-
-    for (TInt i = 0; i < aSpelling.Length(); ++i)
-        {
-        if (KManualDLT == aSpelling[i])
-            {
-            //Manual delimiter
-            if (CheckManualDelimiter(count, aKeystroke) )
-                {
-                aShowKeystroke->AppendL(manualDLT);
-                }
-            else
-                {
-                aShowKeystroke->AppendL(autoDLT);
-                }
-            }
-        else
-            {
-            aShowKeystroke->AppendL(aSpelling.Mid(i, 1) );
-            count = count + 1;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingAddToneMarkL
-// Analyse spelling after user press tone mark.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingAddToneMarkL(
-                                               TInt aI,
-                                               TInt aToneMarkCount,
-                                               CDesCArrayFlat* aKeystroke,
-                                               CDesCArrayFlat* aShowKeystroke )
-    {
-    TBuf<1> atuoDLT;
-    TBuf<1> manualDLT;
-    atuoDLT.Append(KAutoDLT);
-    manualDLT.Append(KManualDLT);
-    if ( CheckSpellingDLT( aKeystroke->MdcaPoint( aI - 1 ) ) || 
-        ( KInvalidToneMark != ToneMark( aKeystroke->MdcaPoint( aI - 1 ) ) ) )
-        {
-        aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) ); 
-        }
-    else
-        {
-        if ( CheckSpellingAddToneMarkToPTIL( aToneMarkCount ) )
-            {
-            aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI - 1 ) ); 
-            aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-            }
-        else
-            {
-            if ( aShowKeystroke->Count() == 0 )
-                {
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI - 1 ) ); 
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-                }
-            else
-                {
-                if ( ( !CheckSpellingDLT(aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) && 
-                    ( KInvalidToneMark == ToneMark( aShowKeystroke->
-                        MdcaPoint( aShowKeystroke->Count() - 1 ) ) ) )
-                    {
-                    aShowKeystroke->AppendL( atuoDLT );
-                    }
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI - 1 ) ); 
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingAddKeyL
-// Analyse spelling after user press key that is not tone mark.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseSpellingAddKeyL(
-                                            TInt& aI,
-                                            TInt aDelimterPos,
-                                            CDesCArrayFlat* aKeystroke,
-                                            CDesCArrayFlat* aShowKeystroke )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TBuf<1> atuoDLT;
-    TBuf<1> manualDLT;
-    atuoDLT.Append(KAutoDLT);
-    manualDLT.Append(KManualDLT);
-    if ( 0 == aI )
-        {
-        if ( aI + 1 < aKeystroke->Count() )
-            {
-            if ( ( KInvalidToneMark != ToneMark( aKeystroke->MdcaPoint( aI + 1 ) ) ) ||
-                ( CheckSpellingDLT( aKeystroke->MdcaPoint( aI + 1 ) ) ) )
-                {
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI + 1 ) );
-                aI = aI + 1;
-                }
-            else
-                {
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-                aShowKeystroke->AppendL( atuoDLT );
-                }
-            }
-        else
-            {
-            aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-            }
-        }
-    else if ( aI + 1 == aKeystroke->Count() )
-        {
-        if ( ( 1 == aDelimterPos ) || ( -1 == aDelimterPos ) )
-            {
-            if ( ( !CheckSpellingDLT( aShowKeystroke->
-                    MdcaPoint( aShowKeystroke->Count() - 1 ) ) &&
-                ( KInvalidToneMark == ToneMark( aShowKeystroke->
-                    MdcaPoint( aShowKeystroke->Count() - 1 ) ) ) ) )
-                {
-                aShowKeystroke->AppendL( atuoDLT );
-                }
-            aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-            }
-        else
-            {
-            for ( TInt ii = 0; ii < aDelimterPos - 1; ++ii )
-                {
-                aShowKeystroke->Delete( aShowKeystroke->Count() - 1 );
-                }
-            if ( ( !CheckSpellingDLT( aShowKeystroke->
-                    MdcaPoint( aShowKeystroke->Count() - 1 ) ) ) &&
-                ( KInvalidToneMark == ToneMark( aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) )
-                {
-                aShowKeystroke->AppendL( atuoDLT );
-                }
-            aI = aI - aDelimterPos;
-            }
-        }
-    else
-        {
-        if ( -1 == aDelimterPos )
-            {
-            if ( ( !CheckSpellingDLT( aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) &&
-                ( KInvalidToneMark == ToneMark( aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) )
-                {
-                aShowKeystroke->AppendL( atuoDLT );
-                }
-            if ( 0 == getCurrentLeastDLTSpell().Length() )
-                {
-                aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI ) );
-                if ( KInvalidToneMark != ToneMark( aKeystroke->MdcaPoint( aI + 1 ) ) ) 
-                    {
-                    aShowKeystroke->AppendL( aKeystroke->MdcaPoint( aI + 1 ) );
-                    aI = aI + 1;                            
-                    }
-                }
-            else
-                {
-                aI = aI - 1;
-                }
-            }
-        else
-            {
-            for ( TInt ii = 0; ii < aDelimterPos - 1; ++ii )
-                {
-                aShowKeystroke->Delete( aShowKeystroke->Count() - 1 );
-                }
-            if ( ( !CheckSpellingDLT( aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) &&
-                ( KInvalidToneMark == ToneMark( aShowKeystroke->MdcaPoint( 
-                    aShowKeystroke->Count() - 1 ) ) ) )
-                {
-                aShowKeystroke->AppendL( atuoDLT );
-                }
-            aI = aI - aDelimterPos;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseL
-// Analyse key storke.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::AnalyseL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    //user pressed keystroke sequence
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    //stroke to be shown
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    TInt start = 0;
-    TInt toneMarkCount = KInvalidToneMark;
-    TInt delimiterPosition = 0;
-    showKeystroke->Reset();
-    TBuf<1> atuoDLT;
-    TBuf<1> manualDLT;
-    atuoDLT.Append(KAutoDLT);
-    manualDLT.Append(KManualDLT);
-    TBuf<KMaxKeystrokeCount> keyTmp;
-
-    if ( keystroke->Count() == 0 )
-        {
-        return;
-        }
-
-    //if the first keystroke is delimiter or ToneMark, analyse frome the next one
-    if ( CheckSpellingDLT( keystroke->MdcaPoint( 0 ) ) || 
-        ( KInvalidToneMark != ToneMark( keystroke->MdcaPoint( 0 ) ) ) )
-        {
-        showKeystroke->AppendL(keystroke->MdcaPoint( 0 ) );
-        start = 1;
-        }
-    
-    ClearPtiEngineKeystroke();
-    
-    for ( TInt i = start; i < keystroke->Count(); ++i )
-        {
-        toneMarkCount = ToneMark( keystroke->MdcaPoint( i ) );
-        // current keystroke is delimiter
-        if ( CheckSpellingDLT( keystroke->MdcaPoint( i ) ) )
-            {
-            showKeystroke->AppendL(keystroke->MdcaPoint( i ) );
-            ClearPtiEngineKeystroke();
-            }
-        // current keystroke is tone mark
-        else if ( KInvalidToneMark != toneMarkCount )
-            {
-            AnalyseSpellingAddToneMarkL( i, toneMarkCount, keystroke, showKeystroke );
-            ClearPtiEngineKeystroke();
-            }
-        // current keystroke is A - Z
-        else
-            {
-            delimiterPosition = CheckSpellingAddKeyToPTIL( keystroke->MdcaPoint( i ) );
-            if ( 0 == delimiterPosition )
-                {
-                if ( ( 0 != i ) && 
-                    ( 1 == this->getCurrentLeastDLTSpell().Length() ) )
-                    {
-                    if ( ( !CheckSpellingDLT( showKeystroke->
-                        MdcaPoint( showKeystroke->Count() - 1 ) ) ) && 
-                        ( KInvalidToneMark == ToneMark( showKeystroke->
-                            MdcaPoint( showKeystroke->Count() - 1 ) ) ) )
-                        {
-                        showKeystroke->AppendL( atuoDLT );
-                        }
-                    }
-                if ( i + 1 < keystroke->Count() ) 
-                    {
-                    if ( KInvalidToneMark == ToneMark( keystroke->MdcaPoint( i + 1 ) ) )
-                        {
-                        showKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-                        }
-                    }
-                else
-                    {
-                    showKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-                    }
-                }
-            else
-                {
-                AnalyseSpellingAddKeyL( i, delimiterPosition, keystroke, showKeystroke );
-                ClearPtiEngineKeystroke();
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleCommitL
-// Handle CBA1 or select event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandleCommitL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keyCount = editPane->KeystrokeArray()->Count();
-    TInt showKeyCount = editPane->ShowKeystrokeArray()->Count();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    TInt cdtCount = uiContainer->CandidatePane()->CandidateArray()->Count();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
-    if (EMiniQwertyEdit == iState)
-        {
-        if ( ( showKeyCount > 0 ) && (cdtCount > 0 ) )
-            {
-            UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-            iOwner->ChangeState(ECandidate);
-            return;
-            }
-
-        if ( keyCount > 0 )
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            return;
-            }
-        }
-
-    if ( ( 0 == keyCount ) && (phrase->Count() <= 1 ) )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return;
-        }
-
-    if ( ( 0 == keyCount ) && (phrase->Count() > 1 ) )
-        {
-        TBuf<KMaxPhraseCreationCount> phraseCreated;
-        for (TInt i = 0; ( (i < phrase->Count() ) && (i
-                < KMaxPhraseCreationCount ) ); ++i )
-            {
-            phraseCreated.Append(phrase->MdcaPoint( i ) );
-            AddPhraseToDB(phraseCreated);
-            }
-        fepMan->NewTextL(phraseCreated);
-        fepMan->CommitInlineEditL();
-        if ( !UIContainer()->EditPaneWindow()->GetPhraseCreationFlag() )
-            {
-            UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-            iOwner->PtiEngine()->SetPredictiveChineseChar(phraseCreated);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-            UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-            if (EPtiKeyboardQwerty4x10 == iOwner->FepMan()->KeyboardLayout() ||
-                 EPtiKeyboardQwerty3x11 == iOwner->FepMan()->KeyboardLayout() )
-                {
-                iOwner->ChangeState(EPredictiveCandidate);
-                }
-#endif
-            }
-        else
-            {
-            UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        return;
-        }
-
-    TPtrC text = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-    if (text.Length() == 0)
-        {
-        return;
-        }
-
-    if ( !CommitInlineEEPL(text) )
-        {
-        DoActionAfterCommit();
-        }
-    else
-        {
-        if ( !CheckFirstGroupStroke() )
-            {
-            if ( iState == EEntry )
-                {
-                editPane->SetAutoChangeStateFlag(EAutoChangeStateFromInput);
-                }
-            else
-                {
-                editPane->SetAutoChangeStateFlag(EAutoChangeStateFromCandidate);
-                }
-            iOwner->ChangeState(EMiniQwertyEdit);
-            return;
-            }
-        else
-            {
-            if ( iState == EEntry )
-                {
-                UIContainer()->EditPaneWindow()->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                }
-            }
-        AnalyseL();
-        RefreshUI();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyBackspaceL
-// Handle KeyBackspace event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyBackspaceL(
-    TKeyPressLength aLength)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TBool firstGroup = CheckFirstGroupStroke();
-
-    if ( ( 0 == index ) && (phraseCount != 0 ) )
-        {
-        RevertPhraseToKeystrokeL();
-        }
-    else
-        if ( ( 0 == index ) && (keystroke->Count() > 0 ) )
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        else
-            {
-            if ( !DeleteKeystrokeL() )
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            }
-
-    //if the keystroke is null and phrase is null then close input window.
-    if ( ( 0 == phraseCount ) && (keystroke->Count() == 0 ))
-        {
-        iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-        if (aLength == ELongKeyPress)
-            {
-            iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-            }
-        return;
-        }
-
-    AnalyseL();
-    //Auto change from EMiniQwertyEdit state to EEntry state. 
-    if (EMiniQwertyEdit == iState)
-        {
-        if ( ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            if ( EAutoChangeStateFromCandidate == editPane->GetAutoChangeStateFlag() )
-                {
-                RefreshUI();
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(ECandidate);
-                }
-            else if ( EAutoChangeStateFromInput == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(EEntry);
-                }
-            else
-                {
-                RefreshUI();
-                }
-            return;
-            }
-        }
-
-    //Auto change from EEntry state to EMiniQwertyEdit state.
-    if (EEntry == iState)
-        {
-        if ( (firstGroup ) && ( !CheckFirstGroupStroke() ))
-            {
-            editPane->SetChangeState(EFalse);
-            editPane->SetAutoChangeStateFlag(EAutoChangeStateFromInput);
-            iOwner->ChangeState(EMiniQwertyEdit);
-            return;
-            }
-        }
-
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleDefaultKeyL
-// Handle default key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandleDefaultKeyL(TInt aKey)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TBool firstGroup = CheckFirstGroupStroke();
-
-    if ( !AddKeystrokeL(aKey) )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return;
-        }
-
-    AnalyseL();
-
-    //Auto change from EMiniQwertyEdit state to EEntry state. 
-    if (EMiniQwertyEdit == iState)
-        {
-        if ( ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            if ( EAutoChangeStateFromCandidate == editPane->GetAutoChangeStateFlag() )
-                {
-                RefreshUI();
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(ECandidate);
-                }
-            else if ( EAutoChangeStateFromInput == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState(ETrue);
-                iOwner->ChangeState(EEntry);
-                }
-            else
-                {
-                RefreshUI();
-                }
-            return;
-            }
-        }
-
-    //Auto change from EEntry state to EMiniQwertyEdit state.
-    if (EEntry == iState)
-        {
-        if ( !CheckFirstGroupStroke() )
-            {
-            editPane->SetAutoChangeStateFlag(EAutoChangeStateFromInput);
-            editPane->SetChangeState(ETrue);
-            iOwner->ChangeState(EMiniQwertyEdit);
-            return;
-            }
-        }
-
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::ShowInfoOnEEPPane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    TBuf<KMaxKeystrokeCount> showInfo;
-    TBuf<KMaxKeystrokeCount> keyBuf;
-    for (TInt i = 0; i < phrase->Count(); ++i)
-        {
-        showInfo.Append(phrase->MdcaPoint(i) );
-        }
-
-    for (TInt ii = 0; ii < showKeystroke->Count(); ++ii)
-        {
-        showInfo.Append(showKeystroke->MdcaPoint(ii) );
-        }
-
-    for (TInt j = 0; j < keystrokeArray->Count(); ++j)
-        {
-        keyBuf.Append(keystrokeArray->MdcaPoint(j) );
-        }
-
-    editPane->SetTextForZhuyin(showInfo, GetCursorPos(), phrase->Count(),
-        keyBuf, editPane->GetCursorIndexOfKeystroke() );
-
-    if (iState == ECandidate)
-        {
-        editPane->DisableCursor();
-        }
-    else
-        if (iState == EEntry)
-            {
-            editPane->EnableCursor();
-            editPane->DeactiveCursor();
-            }
-        else
-            if (iState == EMiniQwertyEdit)
-                {
-                editPane->EnableCursor();
-                editPane->ActiveCursor();
-                }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::ShowInfoOnCandidatePane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CDesCArrayFlat* phrase = uiContainer->CandidatePane()->CandidateArray();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    if (KMaxPhraseCreationCount == editPane->PhraseArray()->Count() )
-        {
-        phrase->Reset();
-        TRAP_IGNORE( phrase->AppendL( KMaxPhraseNote ) );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable(ETrue);
-        uiContainer->ShowHorizontalScrollArrows(EFalse);
-        uiContainer->ShowVerticalScrollArrows(EFalse);
-        }
-
-    TRAP_IGNORE( GetCandidateL() );
-    if (phrase->Count() > 0)
-        {
-        // layout candidate and fill candidate buffer for first display page
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable(ETrue);
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && uiContainer->CandidatePane()->IsFirstPage());
-        uiContainer->ShowVerticalScrollArrows(multiplePages);
-        if (iState == EMiniQwertyEdit)
-            {
-            UIContainer()->FocusCandidatePane(EFalse);
-            }
-        else
-            {
-            UIContainer()->FocusCandidatePane(ETrue);
-            UIContainer()->CandidatePane()->SelectFirstPhrase();
-            }
-        }
-    else
-        {
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable(ETrue);
-        uiContainer->ShowHorizontalScrollArrows(EFalse);
-        uiContainer->ShowVerticalScrollArrows(EFalse);
-        uiContainer->SetControlInVisible( EFalse );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::GetShowKeystroke
-//Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::GetShowKeystroke(TInt aKey,
-    TDes& aKeystroke)
-    {
-    TInt count = sizeof(StrokeMap )/sizeof(StrokeMap[0] );
-    for (TInt i = 0; i < count; i++)
-        {
-        if (aKey == StrokeMap[i].iKeyCode)
-            {
-            aKeystroke.Append(StrokeMap[i].iValue);
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleHorizontalNavigation
-//Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::HandleHorizontalNavigation(
-    TInt aKey)
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EStdKeyLeftArrow)
-        {
-        if (!candidatePane->SelectPrev())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else
-        if (aKey == EStdKeyRightArrow)
-            {
-            if (!candidatePane->SelectNext())
-                {
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirstPhrase();
-                }
-            response = ETrue;
-            }
-
-    if (response)
-        {
-        UpdateIndicator();
-        }
-
-    return response;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::UpdateIndicator
-// Update Indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);
-        }
-
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10)
-        {
-        if (candidatePane->VisibleCandidateCount()==1)
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-    else
-        {
-#endif
-        if (candidatePane->SelectedIndex() == 0
-                && candidatePane->IsFirstPage() )
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            }
-
-        if (candidatePane->IsLastPage() && (candidatePane->SelectedIndex()
-                == candidatePane->VisibleCandidateCount() - 1))
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    }
-#endif    
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::DeleteMoreKeystrokeL
-// Delete more keystroke than max leng.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::DeleteMoreKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBuf<1> autoDLT;
-    autoDLT.Append( KAutoDLT );
-    AnalyseL();
-    // the count keystroke more than max length.
-    TInt count = showKeystroke->Count() - KMaxKeystrokeCount; 
-    
-    for ( TInt i = 0; i < count; ++i )
-        {
-        if ( 0 != showKeystroke->MdcaPoint( showKeystroke->Count() - 1 ).Compare( autoDLT ) )
-            {
-            showKeystroke->Delete( showKeystroke->Count() - 1 );
-            keystroke->Delete( keystroke->Count() - 1 );
-            }
-        }
-    
-    if ( index > keystroke->Count() )
-        {
-        editPane->SetCursorIndexOfKeystroke( keystroke->Count() );
-        }    
-    }
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::DeleteKeystrokeL
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::DeleteKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt showKeyCount = editPane->ShowKeystrokeArray()->Count();
-    
-    if ( ( 0 == index ) || (keystroke->Count() == 0 ))
-        {
-        return EFalse;
-        }
-    if ( 1 == index )
-        {
-        editPane->Reset();
-        }
-    if (index >= keystroke->Count() )
-        {
-        keystroke->Delete(keystroke->Count() - 1);
-        editPane->SetCursorIndexOfKeystroke(keystroke->Count() );
-        }
-    else
-        {
-        keystroke->Delete(index - 1);
-        editPane->SetCursorIndexOfKeystroke(index - 1);
-        }
-    
-    if ( showKeyCount >= KMaxKeystrokeCount - 1 )
-        {
-        DeleteMoreKeystrokeL();
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AddPhraseToDB
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::AddPhraseToDB(
-    const TDesC& aPhraseAdd)
-    {
-    TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry(addUdbEntry);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::RefreshCandidate
-// Refresh candidate
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::RefreshCandidate()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable(ETrue);
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && 
-            uiContainer->CandidatePane()->IsFirstPage());
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckKeyNeedRepeat
-//  Check key whether need repeat.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckKeyNeedRepeat(
-    TKeyPressLength aLength)
-    {
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    if (editPane->IsChangeState() && aLength == ELongKeyPress)
-        {
-        return EFalse;
-        }
-    else
-        {
-        editPane->SetChangeState(EFalse);
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CommitInlineEEPL
-// Commint text to EEP or editor
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CommitInlineEEPL(
-    const TDesC& aDes)
-    {
-    TInt charCount = aDes.Length();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* showkeyStoke = editpane->ShowKeystrokeArray();
-    CDesCArrayFlat* keyStoke = editpane->KeystrokeArray();
-    CDesCArrayFlat* phraseArray = editpane->PhraseArray();
-    CDesCArrayFlat* phraseShowKeyStroke =
-            editpane->PhraseShowKeyStrokeArray();
-    TBuf<KMaxKeystrokeCount> buf;
-    TBuf<1> autoDLT;
-    autoDLT.Append(KAutoDLT);
-
-    if (phraseArray->Count() == 0)
-        {
-        editpane->SetPhraseCreationFlag(EFalse);
-        }
-    phraseArray->AppendL(aDes);
-
-    TInt delCount = 0;
-    for (TInt i = 0; i < showkeyStoke->Count() && charCount
-            && keyStoke->Count() != 0; i++)
-        {
-        TPtrC showptr = showkeyStoke->MdcaPoint(i);
-        TPtrC ptr = keyStoke->MdcaPoint( 0);
-        if (CheckSpellingDLT(showptr) || (KInvalidToneMark
-                != ToneMark(showptr) ))
-            {
-            charCount--;
-            }
-        if (showptr.Compare(autoDLT) != 0)
-            {
-            buf.Append(ptr);
-            keyStoke->Delete( 0);
-            }
-        delCount++;
-        }
-
-    TInt phraseCount = phraseArray->Count();
-    if (phraseCount > KMaxPhraseCreationCount)
-        {
-        phraseCount = KMaxPhraseCreationCount;
-        }
-
-    if (keyStoke->Count() == 0 || phraseCount == KMaxPhraseCreationCount)
-        {
-        TBuf<KMaxPhraseCreationCount> phraseCreated;
-        for (TInt ii = 0; ii < phraseCount; ++ii)
-            {
-            phraseCreated.Append(phraseArray->MdcaPoint(ii) );
-            }
-        fepMan->NewTextL(phraseCreated);
-        fepMan->CommitInlineEditL();
-        iOwner->PtiEngine()->SetPredictiveChineseChar(phraseCreated);
-        AddPhraseToDB(phraseCreated);
-        return EFalse;
-        }
-
-    for (TInt j = 0; j < delCount; j++)
-        {
-        showkeyStoke->Delete( 0);
-        }
-    phraseShowKeyStroke->AppendL(buf);
-
-    editpane->SetCursorIndexOfKeystroke( 0);
-    editpane->DisableCursor();
-    editpane->SetPhraseCreationFlag(ETrue);
-    return ETrue;
-    }
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::ClearPtiEngineKeystroke
-// clear the ptiengine keystroke;
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::ClearPtiEngineKeystroke()
-    {
-    iOwner->PtiEngine()->ClearCurrentWord();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AddKeystrokeL
-// Add keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::AddKeystrokeL(TInt aKey)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt showKeystrokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBuf<1> keystroke;
-    
-    if ( phraseCount + showKeystrokeCount >= KMaxKeystrokeCount )
-        {
-        return EFalse;
-        }
-
-    GetShowKeystroke(aKey, keystroke);
-    if ( index >= keystrokeArray->Count() )
-        {
-        keystrokeArray->AppendL(keystroke);
-        editPane->SetCursorIndexOfKeystroke(keystrokeArray->Count() );
-        }
-    else
-        {
-        keystrokeArray->InsertL(index, keystroke);
-        editPane->SetCursorIndexOfKeystroke(index + 1);
-        }
-    
-    if ( phraseCount + showKeystrokeCount >= KMaxKeystrokeCount - 1 )
-        {
-        AnalyseL();
-        if ( phraseCount + editPane->ShowKeystrokeArray()->Count() <= KMaxKeystrokeCount )
-            {
-            return ETrue;
-            }
-        else
-            {
-            keystrokeArray->Delete( index );
-            editPane->SetCursorIndexOfKeystroke( index );
-            AnalyseL();
-            return EFalse;
-            }
-        }
-        
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::AddToneMarkL
-// Add tone mark.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::AddToneMarkL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt showKeystrokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt i = 0;
-    const TInt MaxToneMark = 4;
-    if ( phraseCount + showKeystrokeCount >= KMaxKeystrokeCount )
-        {
-        if ( 0 == index )
-            {
-            return EFalse;
-            }
-        else
-            {
-            if ( KInvalidToneMark == ToneMark( keystrokeArray->MdcaPoint( index - 1 ) ) )
-                {
-                return EFalse;
-                }
-            }
-        }
-
-    TBuf<1> toneMark;
-
-    if ( 0 == index )
-        {
-        toneMark.Append(PinyinToneMap[0].iValue);
-        keystrokeArray->InsertL( 0, toneMark);
-        editPane->SetCursorIndexOfKeystroke( 1);
-        return ETrue;
-        }
-    
-    TInt num = sizeof(PinyinToneMap )/( sizeof(PinyinToneMap[0]));
-    for ( i = 0; i < num; ++i )
-        {
-        if (PinyinToneMap[i].iValue == keystrokeArray->MdcaPoint( index - 1 )[0])
-            {
-            break;
-            }
-        }
-
-    if ( i > MaxToneMark )
-        {
-        toneMark.Append(PinyinToneMap[0].iValue);
-        keystrokeArray->InsertL(index, toneMark);
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    else
-        {
-        if ( MaxToneMark == i )
-            {
-            toneMark.Append(PinyinToneMap[0].iValue);
-            }
-        else
-            {
-            toneMark.Append(PinyinToneMap[ i + 1 ].iValue);
-            }
-        keystrokeArray->Delete(index - 1);
-        keystrokeArray->InsertL(index - 1, toneMark);
-        }
-
-    if ( phraseCount + showKeystrokeCount >= KMaxKeystrokeCount - 1 )
-        {
-        AnalyseL();
-        if ( phraseCount + editPane->ShowKeystrokeArray()->Count() > KMaxKeystrokeCount )
-            {
-            if ( i > MaxToneMark )
-                {
-                keystrokeArray->Delete( index );
-                editPane->SetCursorIndexOfKeystroke( index );
-                }
-            else
-                {
-                toneMark.Zero();
-                toneMark.Append( PinyinToneMap[i].iValue );
-                keystrokeArray->Delete( index - 1 );
-                keystrokeArray->InsertL( index - 1, toneMark );
-                }
-            AnalyseL();
-            return EFalse;
-            }
-        }
-        
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::GetCandidateL
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::GetCandidateL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* phraseCandidates = 
-        uiContainer->CandidatePane()->CandidateArray();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    phraseCandidates->Reset();
-    TBuf<KMaxKeystrokeCount> buf;
-    TBuf<1> delimiter;
-    delimiter.Append( KManualDLT );
-    TInt keyCode;
-    TInt count = KInvalidToneMark;
-    ClearPtiEngineKeystroke();
-    
-    if ( showKeystroke->Count() == 0 )
-        {
-        return;
-        }
-
-    if ( CheckAllGroupStroke() && ( phraseCount == 0 ) )
-        {
-        getCurrentLeastDLTSpell();
-        ptiengine->GetChinesePhraseCandidatesL( *phraseCandidates ); 
-        return;
-        }
-    
-    if ( CheckFirstGroupStroke() )
-        {
-        ClearPtiEngineKeystroke();
-        for ( TInt i = 0; i < showKeystroke->Count(); ++i )
-            {
-            count = ToneMark( keystroke->MdcaPoint( i ) );
-            if ( CheckSpellingDLT( showKeystroke->MdcaPoint( i ) ) )
-                {
-                break;
-                }
-            else if ( KInvalidToneMark != count )
-                {
-                for ( TInt j = 0; j < count; ++j )
-                    {
-                    ptiengine->IncrementToneMark( ETrue );
-                    }
-                break;
-                }
-            else
-                {
-                GetKeystrokeCode( keyCode, keystroke->MdcaPoint( i ) );
-                ptiengine->AppendKeyPress((TPtiKey)keyCode);
-                }
-            }
-        }
-    else
-        {
-        return;
-        }
-    getCurrentLeastDLTSpell();
-    ptiengine->GetChinesePhraseCandidatesL( *phraseCandidates );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::GetKeystrokeCode
-// get Code of the key stroke. 
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::GetKeystrokeCode(TInt& aKey,
-    const TDesC& aKeystroke)
-    {
-    TInt count = sizeof(StrokeMap )/sizeof(StrokeMap[0] );
-    for (TInt i = 0; i < count; i++)
-        {
-        TBuf<1> buf;
-        buf.Append(StrokeMap[i].iValue);
-        if (0 == aKeystroke.Compare(buf))
-            {
-            aKey = StrokeMap[i].iKeyCode;
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::RevertPhraseToKeystrokeL
-// Revert the phrase to keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::RevertPhraseToKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    CDesCArrayFlat* shownKeystrokeArray = editPane->ShowKeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    CDesCArrayFlat* phraseStroke = editPane->PhraseShowKeyStrokeArray();
-    TBuf<KMaxKeystrokeCount> buf;
-    if ( (phrase->Count() == 0 ) || (phraseStroke->Count() == 0 ))
-        {
-        return;
-        }
-
-    buf.Append(phraseStroke->MdcaPoint(phraseStroke->Count() - 1) );
-    for (TInt i = buf.Length() - 1; i >= 0; --i)
-        {
-        keystrokeArray->InsertL( 0, buf.Mid(i, 1) );
-        }
-    phrase->Delete(phrase->Count() - 1);
-    phraseStroke->Delete(phraseStroke->Count() - 1);
-    AnalyseL();
-    TInt showCount = editPane->ShowKeystrokeArray()->Count();
-    TInt leng = phrase->Count() + showCount;
-    TInt deleteCount = 0;
-    if (leng > KMaxKeystrokeCount)
-        {
-        for (TInt i = 0; i < leng - KMaxKeystrokeCount; ++i)
-            {
-            if (KAutoDLT != shownKeystrokeArray->MdcaPoint( shownKeystrokeArray->Count() - 1 )[0])
-                {
-                deleteCount = deleteCount + 1;
-                }
-            shownKeystrokeArray->Delete(shownKeystrokeArray->Count() - 1);
-            }
-        if (KAutoDLT == shownKeystrokeArray->MdcaPoint( shownKeystrokeArray->Count() - 1 )[0])
-            {
-            shownKeystrokeArray->Delete(shownKeystrokeArray->Count() - 1);
-            }
-        }
-    for (TInt i = 0; i < deleteCount; ++i)
-        {
-        keystrokeArray->Delete(keystrokeArray->Count() - 1);
-        }
-
-    editPane->SetCursorIndexOfKeystroke(buf.Length() );
-    keystrokeArray->Compress();
-    phrase->Compress();
-    phraseStroke->Compress();
-
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::SetWarningColor(
-                                           TInt aCount,
-                                           TInt aIndex,
-                                           TInt aI,
-                                           TInt aPhraseCount,
-                                           TInt aToneMark,
-                                           TBool aValid,
-                                           CDesCArrayFlat* aShowKeystroke
-                                           )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    if ( ( !aValid ) || CheckSpellingDLT(aShowKeystroke->MdcaPoint(aI
-            - 1) ) || (KInvalidToneMark
-            != ToneMark( aShowKeystroke->MdcaPoint( aI - 1 ) ) ))
-        {
-        editPane->SetHighlight(aPhraseCount + aIndex, aPhraseCount
-                + aIndex + aCount - 1 );
-        }
-    else
-        {
-        TPtrC ptr1 = getCurrentLeastDLTSpell();
-        for (TInt j = 0; j < aToneMark; ++j)
-            {
-            ptiengine->IncrementToneMark(ETrue);
-            TPtrC ptr0 = getCurrentLeastDLTSpell();
-            if (ptr0.Length() > 0)
-                {
-                if ( 0 == ptr0.Mid( ptr0.Length() - 1, 1 ).
-                Compare(aShowKeystroke->MdcaPoint( aI ) ) )
-                    {
-                    break;
-                    }
-                }
-            }
-        TPtrC ptr2 = getCurrentLeastDLTSpell();
-        if ( ( ( 1 + ptr1.Length() ) != ptr2.Length() ) || ( 0
-                != ptr2.Mid( ptr2.Length() - 1, 1 ).
-                CompareC( aShowKeystroke->MdcaPoint( aI ) ) ))
-            {
-            editPane->SetHighlight( aPhraseCount + aIndex, aPhraseCount
-                    + aIndex + aCount - 1);
-            }
-        }
-    ClearPtiEngineKeystroke();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::SetWarningColor()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TBool valid = ETrue;
-    TInt index = 0;
-    TInt count = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt start = 0;
-    TInt keyCode = 0;
-    TInt toneMark = KInvalidToneMark;
-
-    if (showKeystroke->Count() == 0)
-        {
-        return;
-        }
-
-    if (CheckAllGroupStroke() )
-        {
-        return;
-        }
-    ClearPtiEngineKeystroke();
-    if (CheckSpellingDLT(showKeystroke->MdcaPoint( 0) ) || (KInvalidToneMark
-            != ToneMark(showKeystroke->MdcaPoint( 0) ) ))
-        {
-        start = 1;
-        editPane->SetHighlight(phraseCount, phraseCount);
-        index = 1;
-        }
-
-    for ( TInt i = start; i < showKeystroke->Count(); ++i )
-        {
-        count = count + 1;
-        // tone mark
-        toneMark = ToneMark(showKeystroke->MdcaPoint(i) );
-        if ( KInvalidToneMark != toneMark )
-            {
-            SetWarningColor( count, 
-                             index, 
-                             i, 
-                             phraseCount, 
-                             toneMark, 
-                             valid, 
-                             showKeystroke );
-            index = i + 1;
-            count = 0;
-            valid = ETrue;
-            }
-        else
-            if ( CheckSpellingDLT(showKeystroke->MdcaPoint(i) ) )
-                {
-                if ( ( !valid )
-                        || CheckSpellingDLT(showKeystroke->MdcaPoint(i - 1) )
-                        || (KInvalidToneMark
-                                != ToneMark(showKeystroke->MdcaPoint(i - 1) ) ))
-                    {
-                    editPane->SetHighlight(phraseCount + index, phraseCount
-                            + index + count - 1);
-                    }
-                ClearPtiEngineKeystroke();
-                index = i + 1;
-                count = 0;
-                valid = ETrue;
-                }
-            else
-                {
-                if ( valid )
-                    {
-                    GetKeystrokeCode(keyCode, showKeystroke->MdcaPoint(i) );
-                    stringBeforeLength = getCurrentLeastDLTSpell().Length();
-                    ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-                    stringAfterLength = getCurrentLeastDLTSpell().Length();
-                    if ( stringBeforeLength == stringAfterLength )//the keystroke is invalid
-                        {
-                        ClearPtiEngineKeystroke();
-                        valid = EFalse;
-                        }
-                    }
-                }
-
-        if ( ( showKeystroke->Count() == i + 1 ) && ( !valid ) )
-            {
-            editPane->SetHighlight(
-                                phraseCount + index, 
-                                phraseCount + index + count - 1 );
-            ClearPtiEngineKeystroke();
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::ChangeCbaL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan( );
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow( );
-    TInt candidateCount = UIContainer()->CandidatePane()->CandidateArray()->Count( );
-    TInt keyStrokeCount = editPane->KeystrokeArray()->Count( );
-    TInt phraseCount = editPane->PhraseArray()->Count( );
-    TInt currentCBAResId = editPane->GetCurrentCBAResID( );
-    if ( (candidateCount == 0 && keyStrokeCount != 0 ) || (phraseCount == 1
-        && keyStrokeCount == 0 ) )
-        {
-        if ( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            }
-
-        }
-    else if ( keyStrokeCount == 0 )
-        {
-        if ( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            }
-        }
-    else if ( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL != currentCBAResId )
-        {
-        fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::MoveCursorLeft
-// Move the cursor to Left.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::MoveCursorLeft()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeyStoke = editPane->ShowKeystrokeArray();
-    TInt showKeyStokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt indexOfKeystroke = editPane->GetCursorIndexOfKeystroke();
-    TInt cursorPos = editPane->GetCursor() - editPane->PhraseArray()->Count();
-
-    TBuf<1> autoDLT;
-    autoDLT.Append(KAutoDLT);
-    const TInt offset = 2;
-    if (cursorPos <= 0)
-        {
-        cursorPos = 0;
-        }
-    else
-        if (cursorPos >= showKeyStokeCount)
-            {
-            cursorPos = showKeyStokeCount;
-            }
-
-    if (cursorPos == 0)
-        {
-        editPane->SetCursorIndexOfKeystroke(editPane->KeystrokeArray()->Count() );
-        ShowInfoOnEEPPane();
-        SetWarningColor();
-        }
-    else
-        if (cursorPos == 1)
-            {
-            editPane->SetCursorIndexOfKeystroke( 0);
-            ShowInfoOnEEPPane();
-            SetWarningColor();
-            }
-        else
-            {
-            if (showKeyStoke->MdcaPoint( cursorPos - 2 ).Compare(autoDLT) == 0)
-                {
-                editPane->MoveCursorLeft(offset);
-                editPane->SetCursorIndexOfKeystroke(indexOfKeystroke - 1);
-                }
-            else
-                {
-                editPane->MoveCursorLeft();
-                editPane->SetCursorIndexOfKeystroke(indexOfKeystroke - 1);
-                }
-            }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::MoveCursorRight
-// Move the cursor to Right.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::MoveCursorRight()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeyStoke = editPane->ShowKeystrokeArray();
-    TInt showKeyStokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt indexOfKeystroke = editPane->GetCursorIndexOfKeystroke();
-    TInt cursorPos = editPane->GetCursor() - editPane->PhraseArray()->Count();
-    TBuf<1> autoDLT;
-    autoDLT.Append(KAutoDLT);
-    const TInt offset = 2;
-
-    if (cursorPos <= 0)
-        {
-        cursorPos = 0;
-        }
-    else
-        if (cursorPos >= showKeyStokeCount)
-            {
-            cursorPos = showKeyStokeCount;
-            }
-
-    if (cursorPos == showKeyStokeCount)
-        {
-        editPane->SetCursorIndexOfKeystroke( 0);
-        ShowInfoOnEEPPane();
-        SetWarningColor();
-        }
-    else
-        if (cursorPos == showKeyStokeCount - 1)
-            {
-            editPane->MoveCursorRight();
-            editPane->SetCursorIndexOfKeystroke(editPane->KeystrokeArray()->Count() );
-            ShowInfoOnEEPPane();
-            SetWarningColor();
-            }
-        else
-            {
-            if (showKeyStoke->MdcaPoint( cursorPos ).Compare(autoDLT) == 0)
-                {
-                editPane->MoveCursorRight(offset);
-                editPane->SetCursorIndexOfKeystroke(indexOfKeystroke + 1);
-                }
-            else
-                {
-                editPane->MoveCursorRight();
-                editPane->SetCursorIndexOfKeystroke(indexOfKeystroke + 1);
-                }
-            }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpecialKey
-// Check the special keystroke( i,u,v ).
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpecialKey(const TInt aKey)
-    {
-    if ( (aKey == EPtiKeyQwertyI ) || (aKey == EPtiKeyQwertyU ) || (aKey
-            == EPtiKeyQwertyV ))
-        {
-        return ETrue;
-        }
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpellingDLT
-// Check the delimiter of spelling.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpellingDLT(
-    const TDesC& aKeystroke)
-    {
-    if ( aKeystroke.Length() == 0 )
-        {
-        return EFalse;
-        }
-    
-    if ( ( KAutoDLT == aKeystroke[0] ) || ( KManualDLT == aKeystroke[0] ) )
-        {
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::ToneMark
-// Get pinyin tone mark.
-// ---------------------------------------------------------
-//
-TInt TAknFepInputMiniQwertyPinyinPhraseBase::ToneMark(const TDesC& aKeystroke)
-    {
-    TInt numOfToneMark = sizeof (PinyinToneMap)/sizeof(PinyinToneMap[0]);
-    for (TInt i = 0; i < numOfToneMark; i++)
-        {
-        if (PinyinToneMap[i].iValue == aKeystroke[0])
-            return PinyinToneMap[i].iInputTone;
-        }
-    return KInvalidToneMark;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::ToneMark
-// Get pinyin tone mark.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpellingAddToneMarkToPTIL(
-                                                        const TInt aToneMark )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TBuf<1> toneMark;
-    TBuf<1> delimiter;
-    
-    toneMark.Append( PinyinToneMap[aToneMark - 1].iValue );
-    delimiter.Append( KManualDLT );
-    
-    for ( TInt i = 0; i < aToneMark; ++i )
-        {
-        ptiengine->IncrementToneMark(ETrue);
-        TPtrC ptr = getCurrentLeastDLTSpell();
-        if ( ( 0 == ptr.Mid( ptr.Length() - 1, 1 ).Compare( toneMark ) ) &&
-            ( KErrNotFound == ptr.Find( delimiter ) )
-            )
-            {
-            return ETrue;
-            }
-        }
-
-    
-    return EFalse;
-    }
-TPtrC TAknFepInputMiniQwertyPinyinPhraseBase::getCurrentLeastDLTSpell()
-	{
-	CPtiEngine* ptiengine = iOwner->PtiEngine();
-	CDesC16ArrayFlat* allSpell = new CDesC16ArrayFlat(1);
-	TPtrC  currentSpell;
-	TBuf<1> delimiter;
-	TBuf<KMaxKeystrokeCount> preDltPosizeArr;
-	TBuf<KMaxKeystrokeCount> curDltPosizeArr;
-	preDltPosizeArr.FillZ(KMaxKeystrokeCount);
-	preDltPosizeArr.SetLength(KMaxKeystrokeCount);
-	curDltPosizeArr.FillZ(KMaxKeystrokeCount);
-	curDltPosizeArr.SetLength(KMaxKeystrokeCount);
-	
-	TInt index = 1;
-	delimiter.Append( KManualDLT );
-	TRAP_IGNORE( ptiengine->GetPhoneticSpellingsL(*allSpell));
-	TInt allCount = ptiengine->PhoneticSpellingCount();
-	
-	
-	for( TInt i = 0; i < allCount; i++)
-		{
-		
-		currentSpell.Set(allSpell->MdcaPoint(i));
-		TInt dltIndex = 0;
-		curDltPosizeArr.FillZ(KMaxKeystrokeCount);
-		curDltPosizeArr.SetLength(KMaxKeystrokeCount);
-		TInt preIndex = 0;
-		for (TInt j = 0; j < currentSpell.Length(); j++)
-			{
-		
-			if (currentSpell.Mid(j, 1).Compare(delimiter) == 0 )
-				{	
-				curDltPosizeArr[dltIndex] = j - preIndex - 1;
-				preIndex = j;
-				dltIndex++;
-				}
-			else if ((j+1) == currentSpell.Length())
-				{
-				curDltPosizeArr[dltIndex] = j - preIndex;
-				}
-			
-			}
-		
-		for (TInt k = 0; k < KMaxKeystrokeCount; k++)
-			{
-			
-			if (preDltPosizeArr[k] < curDltPosizeArr[k] )
-				{
-				preDltPosizeArr.Copy(curDltPosizeArr);
-				index = i + 1;
-				break;
-				}
-			else if (preDltPosizeArr[k] > curDltPosizeArr[k] )
-				{
-				break;
-				}
-			}
-			
-		}
-	
-	if (allSpell)
-		{
-		delete allSpell;
-		}
-	ptiengine->SelectPhoneticSpelling( index );
-	return ptiengine->GetPhoneticSpelling(index);
-	
-	}
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpellingAddKeyToPTIL
-// Check the spelling after add key to the PTI.
-// ---------------------------------------------------------
-//
-TInt TAknFepInputMiniQwertyPinyinPhraseBase::CheckSpellingAddKeyToPTIL(
-                                                     const TDesC& aKeystroke )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    
-    TBuf<1> delimiter;
-    TInt keyCode = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt delimiterIndex = 0;
-    delimiter.Append( KManualDLT );
-    
-    GetKeystrokeCode( keyCode, aKeystroke );
-    //get the string before append this keystroke
-    TPtrC ptr = getCurrentLeastDLTSpell();
-    stringBeforeLength = ptr.Length();
-    //get the string after append this keystroke
-    ptiengine->AppendKeyPress((TPtiKey)keyCode);
-    TPtrC ptr1 = getCurrentLeastDLTSpell();
-    stringAfterLength = ptr1.Length();
-    
-    if ( stringBeforeLength != stringAfterLength )
-        {
-        TPtrC ptr = getCurrentLeastDLTSpell();
-        if ( KErrNotFound == ptr.Find( delimiter ) )
-            {
-            return 0;
-            }
-        else
-            {
-            delimiterIndex = ptr.Length() - ptr.Find( delimiter ) - 1;
-            return delimiterIndex;
-            }
-        }
-    else
-        {
-        return -1;
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyFromCandidateL
-// Handle key from candidate.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandleKeyFromCandidateL(
-    TInt aKey, TKeyPressLength /*aLength*/)
-    {
-    TInt index = 0;
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // it may be one of the 'valid' numbers..
-    TPtiKeyboardType keyboardtype = iOwner->FepMan()->KeyboardLayout();
-    if (EPtiKeyboardQwerty4x10 == keyboardtype || EPtiKeyboardQwerty3x11
-            == keyboardtype || EPtiKeyboardHalfQwerty == keyboardtype
-            || EPtiKeyboardCustomQwerty == keyboardtype)
-        {
-        MPtiLanguage *lang= NULL;
-        RArray <TPtiNumericKeyBinding> keybinding;
-        TBool validnumkey = EFalse;
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        
-        if( ptiengine != NULL )
-            {
-            lang = ptiengine->CurrentLanguage();
-            }
-        if (ptiengine && lang)
-            {
-            TRAP_IGNORE(ptiengine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), keybinding, keyboardtype));
-            TInt numericKeysCount = keybinding.Count();
-            while (numericKeysCount--)
-                {
-                TPtiNumericKeyBinding numKeyBind =
-                        keybinding[numericKeysCount];
-                if ( (numKeyBind.iChar >= 0x31 && numKeyBind.iChar <= 0x36)
-                        &&(aKey == numKeyBind.iKey))
-                    {
-                    index = numKeyBind.iChar - EPtiKey0 -1;
-                    validnumkey = ETrue;
-                    break;
-                    }
-                }
-            }
-        keybinding.Reset();
-        keybinding.Close();
-        if ( !validnumkey)
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            return;
-            }
-        }
-    else
-        {
-#endif
-        index = MapKeyToIndex(aKey);
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        }
-#endif
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-
-    if (candidatePane->SelectIndex(index) || aKey == EStdKeyDevice3 || aKey
-            == EStdKeyEnter)
-        {
-        TPtrC text = candidatePane->CurrentPhraseCandidate();
-        if (text.Length() )
-            {
-            if ( !CommitInlineEEPL(text) )
-                {
-                DoActionAfterCommit();
-                }
-            else
-                {
-                if (CheckFirstGroupStroke() )
-                    {
-                    RefreshUI(EFalse);
-                    UIContainer()->CandidatePane()->SelectFirstPhrase();
-                    }
-                else
-                    {
-                    UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag(EAutoChangeStateFromCandidate);
-                    iOwner->ChangeState(EMiniQwertyEdit);
-                    }
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::CheckAllGroupStroke
-// check the all group stroke of keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyPinyinPhraseBase::CheckAllGroupStroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt keyCode = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt toneMarkCount = KInvalidToneMark;
-
-    ClearPtiEngineKeystroke();
-
-    //If there is phrase on the entry pane then the all keystroke is invalid.
-    if ( phraseCount > 0 )
-        {
-        return EFalse;
-        }
-
-    //If the first keystroke is delimiter or tone mark 
-    //then all keystroke is invalid.
-    if ( ( keystroke->Count() == 0 )
-            || (CheckSpellingDLT(keystroke->MdcaPoint( 0 ) ) )
-            || (KInvalidToneMark != ToneMark(keystroke->MdcaPoint( 0 ) ) ) )
-        {
-        return EFalse;
-        }
-
-    for (TInt i = 0; i < keystroke->Count(); ++i )
-        {
-        toneMarkCount = ToneMark(keystroke->MdcaPoint( i ) );
-        if ( KInvalidToneMark != toneMarkCount )
-            {
-            if ( (CheckSpellingDLT(keystroke->MdcaPoint( i - 1 ) ) )
-                    || (KInvalidToneMark != ToneMark(keystroke->MdcaPoint( i - 1 ) ) ) )
-                {
-                return EFalse;
-                }
-            for (TInt j =0; j < toneMarkCount; ++j)
-                {
-                ptiengine->IncrementToneMark(ETrue);
-                TPtrC ptr1 = getCurrentLeastDLTSpell();
-                if (ptr1.Length() > 0)
-                    {
-                    if ( 0 == ptr1.Mid( ptr1.Length() - 1 ).Compare(keystroke->MdcaPoint( i ) ) )
-                        {
-                        break;
-                        }
-                    }
-                }
-            TPtrC ptr = getCurrentLeastDLTSpell();
-            if ( 0 != ptr.Mid( ptr.Length() - 1, 1 ).Compare(keystroke->MdcaPoint( i ) ) )
-                {
-                return EFalse;
-                }
-            }
-        else
-            {
-            if ( (CheckSpellingDLT(keystroke->MdcaPoint( i ) ) )
-                    && (KInvalidToneMark != ToneMark(keystroke->MdcaPoint( i - 1 ) ) ) )
-                {
-                return EFalse;
-                }
-            GetKeystrokeCode(keyCode, keystroke->MdcaPoint(i) );
-            stringBeforeLength = getCurrentLeastDLTSpell().Length();
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-            stringAfterLength = getCurrentLeastDLTSpell().Length();
-            if ( stringBeforeLength == stringAfterLength )
-                {
-                return EFalse;
-                }
-            }
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::DoActionAfterCommit
-// Do action afer commit, change state to predictive or not.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::DoActionAfterCommit()
-    {
-    TRAP_IGNORE( DoActionAfterCommitL() );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::DoActionAfterCommitL
-// Do action afer commit, change state to predictive or not.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::DoActionAfterCommitL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull) )
-        {
-        UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-        fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-        UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-        if (UIContainer()->EditPaneWindow()->KeystrokeArray()->Count() != 0)
-            {
-            UIContainer()->EditPaneWindow()->ResetAllArray();
-            UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-            CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-            errnote->SetTone(CAknNoteDialog::EWarningTone);
-            errnote->ExecuteLD(KMaxPhraseNote);
-            }
-        iOwner->FepMan()->TryCloseUiL();
-        }
-    else
-        {
-        if (UIContainer()->EditPaneWindow()->KeystrokeArray()->Count() != 0)
-            {
-            UIContainer()->EditPaneWindow()->ResetAllArray();
-            UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-            CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-            errnote->SetTone(CAknNoteDialog::EWarningTone);
-            errnote->ExecuteLD(KMaxPhraseNote);
-            }
-        else
-            {
-            UIContainer()->EditPaneWindow()->ResetAllArray();
-            if ( !UIContainer()->EditPaneWindow()->GetPhraseCreationFlag() )
-                {
-                UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-                UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-                iOwner->ChangeState(EPredictiveCandidate);
-                }
-            else
-                {
-                UIContainer()->EditPaneWindow()->SetPhraseCreationFlag(EFalse);
-                iOwner->FepMan()->TryCloseUiL();
-                }
-            }
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyPinyinPhraseBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyPinyinPhraseBase::HandleCommandL( TInt aCommandId )
-    {
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            HandleCommitL( );
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/aknfepuiinputminiqwertystrokephrasebase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1469 +0,0 @@
-/*
-* 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 TAknFepInputStateStrokePhraseCreationBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32cmn.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-
-// User includes
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepuictrleditpane.h"           //Stroke phrase creation
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-#include "aknfepuiinputminiqwertystrokephrasebase.h"
-
-// CONSTANTS
-
-const TInt KMaxPhraseCount = 50;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KMaxKeystrokeCount = 31;
-const TInt16 KStrokeDelimiter = 0x2022;
-const TInt16  KStrokeUnicode = 0x2461;
-const TInt16 KKey1 = 0x31;
-const TInt16 KKey6 = 0x36;
-
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseCreationBase::TAknFepInputStateStrokePhraseCreationBase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputMiniQwertyStrokePhraseBase::TAknFepInputMiniQwertyStrokePhraseBase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateCandidateQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    iOwner->PtiEngine()->SetInputMode(EPtiEngineStrokePhraseQwerty);
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool multiplePages = !(candidatePane->IsLastPage() &&
-                            candidatePane->IsFirstPage());
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    }
-    
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyL( 
-                                        TInt aKey, 
-                                        TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    const TPtiKeyboardType keyboardType = iOwner->PtiEngine()->KeyboardType();
-    
-    switch( aKey )
-        {
-        case EKeyLeftShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EStdKeyLeftFunc:    
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            ret = EFalse;
-            break;
-            }
-        case EStdKeyDevice1:// CBA2
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeyUpArrow:
-        case EStdKeyDownArrow:    
-        case EKeyRightFunc:
-        case EStdKeyEnter:     
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            break;
-            }
-        case EStdKeyBackspace:
-            {
-            HandleKeyBackspaceL( aLength );
-            break;
-            }
-        case EStdKeyDevice0:// CBA1
-        case EStdKeyDevice3:// CBASelect
-            {
-            HandleCommitL( aLength );
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if ( !MoveCursorLeft() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }    
-        case EStdKeyRightArrow:
-            {            
-            if ( !MoveCursorRight() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }            
-            break;
-            }
-        default:
-            {
-            ret = HandleDefaultL( aKey, aLength );
-            break;
-            }
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::RefreshUI
-// Update input window.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::RefreshUI()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // get cursor position
-    if ( ( uiContainer->EditPaneWindow()->KeystrokeArray()->Count() == 0 ) && 
-        ( uiContainer->EditPaneWindow()->PhraseArray()->Count() == 0 ) )
-        {
-        TPoint baseLine;
-        TInt height(0);
-        TInt ascent(0);
-        TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-        if (ret == KErrNone)
-            {
-            uiContainer->SetContainerPosition(baseLine, height);    
-            }
-        }
-    if ( ( uiContainer->EditPaneWindow()->KeystrokeArray()->Count() > 0 ) ||
-        ( uiContainer->EditPaneWindow()->PhraseArray()->Count() > 0 ) )
-        {
-        ShowInfoOnEEPPane();
-        SetWarningColor();
-        ShowInfoOnCandidatePane();
-        UpdateIndicator();
-        TRAP_IGNORE( ChangeCbaL() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::CheckFirstGroupStroke
-// check the first group stroke of keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::CheckFirstGroupStroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keyCode = 0;
-    TInt pos = 0;
-    TBuf<1> delimiter;
-    
-    if ( 0 == keystroke->Count() )
-        {
-        return EFalse;
-        }
-    
-    delimiter.Append( KStrokeDelimiter );
-    
-    //the keystroke is not delimiter the all keystroke is first group keystroke.
-    if ( 0 != keystroke->Find( delimiter, pos ) )
-        {
-        pos = keystroke->Count();
-        }
-    //first keystroke is delimiter then first group keystroke is invalid.
-    if ( 0 == pos )
-        {
-        return EFalse;
-        }
-    
-    ClearPtiEngineKeystroke();
-    
-    for ( TInt i = 0; i < pos; ++i )
-        {
-        //GetKeystrokeCode( keyCode, keystroke->MdcaPoint( i ) );
-        keyCode = (*keycodeArray)[i];
-        stringBeforeLength = 
-            ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = 
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-        //the keystroke is invalid.
-        if ( stringBeforeLength == stringAfterLength )
-            {
-            return EFalse;
-            }
-        } 
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleCommitL
-// Handle CBA1 or select event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::HandleCommitL( 
-                                                     TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keyCount = editPane->KeystrokeArray()->Count();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    TInt cdtCount = uiContainer->CandidatePane()->CandidateArray()->Count(); 
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    
-    if ( !CheckKeyNeedRepeat( aLength ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    
-    if ( EMiniQwertyEdit == iState )
-        {
-        if ( cdtCount > 0 )
-            {
-            UIContainer()->EditPaneWindow()->SetChangeState( ETrue );
-            iOwner->ChangeState( ECandidate );            
-            return;
-            }
-        
-        if ( keyCount > 0 )
-            {
-            fepMan->PlaySound( EAvkonSIDErrorTone );
-            return;
-            }
-        }
-    
-    if ( phrase->Count( ) <= 1 )
-        {
-        fepMan->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    for (TInt i = 0; i < phrase->Count( ); ++i )
-        {
-        phraseCreated.Append( phrase->MdcaPoint( i ) );
-        }
-    fepMan->NewTextL( phraseCreated );
-    fepMan->CommitInlineEditL( );
-    AddPhraseToDB( phraseCreated );
-    fepMan->TryCloseUiL( );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleAutoChangeState
-// Auto change state.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::HandleAutoChangeState()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBool FirstStrokeValid = CheckFirstGroupStroke();
-    //Auto change from EMiniQwertyEdit state to EEntry state. 
-    if ( EMiniQwertyEdit == iState )
-        {
-        if ( FirstStrokeValid )
-            {
-            if ( EAutoChangeStateFromInput == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState( EFalse );
-                iOwner->ChangeState( EEntry );
-                return ETrue;
-                }
-            else if ( EAutoChangeStateFromCandidate == editPane->GetAutoChangeStateFlag() )
-                {
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                return ETrue;
-                }
-            }
-        }
-    
-    //Auto change from EEntry state to EMiniQwertyEdit state.
-    if ( EEntry == iState )
-        {
-        if ( ( 0 <= index ) && ( !FirstStrokeValid ) )
-            {
-            editPane->SetChangeState( EFalse );
-            editPane->SetAutoChangeStateFlag( EAutoChangeStateFromInput );
-            iOwner->ChangeState( EMiniQwertyEdit );
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyBackspaceL
-// Handle KeyBackspace event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyBackspaceL(
-                                                    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-
-    if ( !CheckKeyNeedRepeat( aLength ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    
-    if ( ( 0 == index ) && ( phraseCount != 0 ) )
-        {
-        RevertPhraseToKeystrokeL();
-        }
-    else if ( ( 0 == index ) && ( keystroke->Count() > 0 ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    else
-        {
-        if ( !DeleteKeystroke() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return;
-            }
-        }
-    
-    //if the keystroke is null and phrase is null then close input window.
-    if ( ( 0 == phraseCount ) && ( keystroke->Count() == 0 ) )
-        {
-        iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-        if ( aLength == ELongKeyPress )
-            {
-            iOwner->FepMan()->SetLongClearAfterCloseUI( ETrue );
-            }
-        return;
-        }
-    
-    if ( !HandleAutoChangeState() )
-        {
-        RefreshUI();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleDefaultL
-// Handle default event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::HandleDefaultL( 
-                                                     TInt aKey,
-                                                     TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    if( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() ||
-             CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() ||
-             ( CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState() && iState != ECandidate ))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    else if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed) ||
-             iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }
-    else if ( ( EShortKeyPress == aLength ) && 
-        ( iOwner->IsValidChineseInputKeyQwerty( aKey ) ) )
-        {
-        if ( iState == ECandidate )
-            {
-            HandleKeyFromCandidateL( aKey, aLength );
-            }
-        else
-            {
-            HandleDefaultKeyL( aKey );
-            }
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleDefaultKeyL
-// Handle default key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::HandleDefaultKeyL( TInt aKey )
-    {
-    if ( !AddKeystrokeL( aKey ) )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return;
-        }
-    
-    if ( !HandleAutoChangeState() )
-        {
-        RefreshUI();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::ShowInfoOnEEPPane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBuf<KMaxKeystrokeCount> showInfo;
-    
-    for ( TInt i = 0; i < phrase->Count(); ++i )
-        {
-        showInfo.Append( phrase->MdcaPoint( i ) );
-        }
-
-    for ( TInt ii = 0; ii < keystroke->Count(); ++ii )
-        {
-        showInfo.Append( keystroke->MdcaPoint( ii ) );
-        }
-    
-    editPane->SetText( showInfo, index + phrase->Count() );
-    
-    switch ( iState )
-        {
-        case ECandidate:
-            editPane->DisableCursor();
-            break;
-        case EEntry:
-            editPane->EnableCursor();
-            editPane->DeactiveCursor();
-            break;
-        case EMiniQwertyEdit:
-            editPane->EnableCursor();
-            editPane->ActiveCursor();
-            break;
-        default:
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::ShowInfoOnCandidatePane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CDesCArrayFlat* phrase = uiContainer->CandidatePane()->CandidateArray();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    if ( KMaxPhraseCreationCount == editPane->PhraseArray()->Count() )
-        {
-        phrase->Reset();
-        TRAP_IGNORE( phrase->AppendL( KMaxPhraseNote ) );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }
-    
-    TRAP_IGNORE( GetCandidateL() );
-    if ( phrase->Count() > 0 )
-        {
-        // layout candidate and fill candidate buffer for first display page
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                                uiContainer->CandidatePane()->IsFirstPage());
-        uiContainer->ShowVerticalScrollArrows( multiplePages );
-        if ( iState == EMiniQwertyEdit )
-            {
-            UIContainer()->FocusCandidatePane( EFalse );
-            }
-        else
-            {
-            UIContainer()->FocusCandidatePane( ETrue );
-            UIContainer()->CandidatePane()->SelectFirstPhrase();
-            }
-        }
-    else
-        {
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        uiContainer->SetControlInVisible( EFalse );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleHorizontalNavigation
-//Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::HandleHorizontalNavigation(
-                                                                   TInt aKey )
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if ( aKey == EStdKeyLeftArrow )
-        {        
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if ( aKey == EStdKeyRightArrow )
-        {              
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-        
-    if (response)
-        {
-        UpdateIndicator();
-        }   
-             
-    return response;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::UpdateIndicator
-// Update Indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);
-        }
-
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10)
-        {
-        if (candidatePane->VisibleCandidateCount()==1)
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-    else
-        {
-#endif
-        if (candidatePane->SelectedIndex() == 0
-                && candidatePane->IsFirstPage() )
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            }
-
-        if (candidatePane->IsLastPage() && (candidatePane->SelectedIndex()
-                == candidatePane->VisibleCandidateCount() - 1))
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    }
-#endif    
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::DeleteKeystroke
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::DeleteKeystroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( ( 0 == index ) || ( keystroke->Count() == 0 ) )
-        {
-        return EFalse;
-        }
-
-    if ( 1 == index )
-        {
-        editPane->Reset();
-        }
-    
-    if ( index >= keystroke->Count() )
-        {
-        keystroke->Delete( keystroke->Count() - 1 );
-        keycodeArray->Remove( keycodeArray->Count() - 1 );
-        editPane->SetCursorIndexOfKeystroke( keystroke->Count() );
-        }
-    else
-        {
-        keystroke->Delete( index - 1 );
-        keycodeArray->Remove( index - 1 );
-        editPane->SetCursorIndexOfKeystroke( index - 1 );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::AddPhraseToDB
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::AddPhraseToDB( 
-                                                     const TDesC& aPhraseAdd )
-    {   
-    TPtiUserDictionaryEntry addUdbEntry( aPhraseAdd );
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::RefreshCandidate
-// Refresh candidate
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::RefreshCandidate()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable( ETrue );
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && 
-            uiContainer->CandidatePane()->IsFirstPage());
-    uiContainer->ShowVerticalScrollArrows( multiplePages );
-
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::CheckKeyNeedRepeat
-//  Check key whether need repeat.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::CheckKeyNeedRepeat( TKeyPressLength aLength )
-    {
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-        {
-        return EFalse;
-        }
-    else
-        {
-        editPane->SetChangeState( EFalse );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::CommitInlineEEPL
-// Commint text to EEP or editor
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::CommitInlineEEPL( const TDesC& aDes )
-    {
-    TInt charCount = aDes.Length();
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-	CDesCArrayFlat* keyStoke = editpane->KeystrokeArray();
-	RArray<TInt>* keycode = editpane->KeycodeArray();
-	CDesCArrayFlat* phraseArray = editpane->PhraseArray();
-	CDesCArrayFlat* phraseShowKeyStroke = editpane->PhraseShowKeyStrokeArray();
-	RArray<TInt>* phraseKeycode = editpane->PhraseKeycodeArray();
-	TBuf<KMaxKeystrokeCount> buf;
-	TBuf<1> strokeDLT;
-	strokeDLT.Append( KStrokeDelimiter );
-
-	phraseArray->AppendL( aDes );
-
-	TInt phraseCount = phraseArray->Count();
-	TInt index = 0;
-	TInt isFound = keyStoke->Find( strokeDLT, index );
-
-	//phrase creation state
-	if ( phraseCount > 1 || ( 0 == isFound && charCount <= 1 ))
-		{
-		editpane->SetPhraseCreationFlag( ETrue );
-		if ( 0 == isFound && phraseCount < 7 && index < keyStoke->Count() - 1 )
-			{
-			for ( TInt i = 0; i <= index; i++ )
-				{
-				TPtrC ptr = keyStoke->MdcaPoint( 0 );
-				buf.Append( ptr );
-				keyStoke->Delete( 0);
-				phraseKeycode->AppendL( (*keycode)[0]);
-				keycode->Remove( 0 );
-				}
-			phraseShowKeyStroke->AppendL( buf );
-			editpane->SetCursorIndexOfKeystroke( 0 );
-			editpane->DisableCursor();			
-			return ETrue;
-			}
-		else
-			{
-			TBuf<KMaxPhraseCreationCount> phraseCreated;
-			for ( TInt ii = 0; ii < phraseCount; ++ii )
-				{
-				phraseCreated.Append( phraseArray->MdcaPoint(ii) );
-				}
-			if ( 0 != isFound || ( 0 == isFound && index == keyStoke->Count() - 1 ) )
-				{
-				editpane->ResetAllArray();
-				}
-			fepMan->NewTextL( phraseCreated );
-			fepMan->CommitInlineEditL();
-			AddPhraseToDB( phraseCreated );
-			return EFalse;
-			}
-		}
-	else
-		{
-		TBuf<KMaxPhraseCreationCount> phraseCreated;
-		for ( TInt ii = 0; ii < phraseCount; ++ii )
-			{
-			phraseCreated.Append( phraseArray->MdcaPoint( ii ) );
-			}
-		editpane->ResetAllArray();
-		editpane->SetPhraseCreationFlag( EFalse );
-		fepMan->NewTextL( phraseCreated );
-		fepMan->CommitInlineEditL();
-		iOwner->PtiEngine()->SetPredictiveChineseChar( phraseCreated );
-		return EFalse;
-		}
-	}
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::ClearPtiEngineKeystroke
-// clear the ptiengine keystroke;
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::ClearPtiEngineKeystroke()
-    {
-    iOwner->PtiEngine()->ClearCurrentWord();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::AddKeystrokeL
-// Add keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::AddKeystrokeL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt keystrokeCount = keystrokeArray->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( phraseCount + keystrokeCount >= KMaxKeystrokeCount )
-        {
-        return EFalse;
-        }
-    
-    
-    TBuf<1> keystroke;
-    GetShowKeystroke( aKey, keystroke );
-    if ( index >= keystrokeCount )
-        {
-        keystrokeArray->AppendL( keystroke );
-        keycodeArray->AppendL( aKey );
-        editPane->SetCursorIndexOfKeystroke( keystrokeCount + 1 );
-        }
-    else
-        {
-        keystrokeArray->InsertL( index, keystroke );
-        keycodeArray->InsertL( aKey, index );
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::GetCandidateL
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::GetCandidateL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* phraseCandidates = 
-        uiContainer->CandidatePane()->CandidateArray();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    phraseCandidates->Reset();
-
-    if ( keystrokeArray->Count() == 0 )
-        {
-        return;
-        }
-    
-    if ( ( 0 == phraseCount ) && editPane->GetAllValidFlag() )
-        {
-        ptiengine->GetChinesePhraseCandidatesL( *phraseCandidates ); 
-        return;
-        }
-    
-    if ( !CheckFirstGroupStroke() )
-        {
-        return;
-        }
-    
-    ptiengine->GetChinesePhraseCandidatesL( *phraseCandidates );    
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::GetShowKeystroke
-// get the show keystroke.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::GetShowKeystroke(
-                                                      TInt aKey,
-                                                      TDes& aKeystroke
-                                                          )
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBuf<KMaxName> lowerdata;   
-    ptiEngine->MappingDataForKey((TPtiKey)aKey, lowerdata, EPtiCaseLower);  
-    TInt StrokeUnicodePosition =0;
-   
-    if(lowerdata.Length()>0)
-        {
-        for(TInt i=0;i<lowerdata.Length()-1;i++)
-            {
-            if(lowerdata[i]==KStrokeUnicode)
-                {
-                StrokeUnicodePosition = i+1;
-                break;
-                }
-            }
-        if ( StrokeUnicodePosition < lowerdata.Length() )
-            {
-            aKeystroke.Copy( lowerdata.Mid( StrokeUnicodePosition, 1 ) );
-            }
-        }
-    
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::RevertPhraseToKeystrokeL
-// Revert the phrase to keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::RevertPhraseToKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    RArray<TInt>* phraseKeycodeArray = editPane->PhraseKeycodeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    CDesCArrayFlat* phraseStroke = editPane->PhraseShowKeyStrokeArray();
-    
-    TBuf<KMaxKeystrokeCount> buf;
-    
-    if ( ( phrase->Count() == 0 ) || ( phraseStroke->Count() == 0 ) )
-        {
-        return;
-        }
-    
-    buf.Append( phraseStroke->MdcaPoint( phraseStroke->Count() - 1 ) );
-    
-    for ( TInt i = buf.Length() - 1; i >= 0; --i )
-        {
-        keystrokeArray->InsertL( 0, buf.Mid( i, 1 ) );
-        keycodeArray->Insert( (*phraseKeycodeArray)[phraseKeycodeArray->Count()-1], 0 );
-        phraseKeycodeArray->Remove( phraseKeycodeArray->Count()-1 );
-        }
-    phrase->Delete( phrase->Count() - 1 );
-    phraseStroke->Delete( phraseStroke->Count() - 1 );
-    
-    TInt leng = phrase->Count() + keystrokeArray->Count();
-    if ( leng > KMaxKeystrokeCount )
-        {
-        for ( TInt i = 0; i < leng - KMaxKeystrokeCount; ++i )
-            {
-            if (  keystrokeArray->Count() == 0 )
-                {
-                break;
-                }
-            keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-            keycodeArray->Remove( keycodeArray->Count() - 1 );
-            }
-        }
-    
-    editPane->SetCursorIndexOfKeystroke( buf.Length() );
-    keystrokeArray->Compress();
-    phrase->Compress();
-    phraseStroke->Compress();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::SetWarningColor()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt keystrokeCount = keystrokeArray->Count();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TBool valid = ETrue;
-    TInt index = 0;
-    TInt count = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keyCode = 0;
-    TInt invalidPos = 0;
-    TBuf<1> delimiter;
-    delimiter.Append( KStrokeDelimiter );
-    
-    //set warning color stroke after 7th group when it's more than 7 groups.
-    if ( 0 == keystrokeCount )
-        {
-        return;
-        }
-    
-    if ( CheckAllGroupStroke() )
-        {
-        return;
-        }
-    
-    TInt delimiterCount = phraseCount + editPane->GetDelimiterCount();
-    invalidPos = editPane->GetInvalidIndex();
-    index = invalidPos;
-    ClearPtiEngineKeystroke();
-    for ( TInt i = invalidPos; i < keystrokeCount; ++i )
-        {
-        count = count + 1;
-        //GetKeystrokeCode( keyCode, keystrokeArray->MdcaPoint( i ) );
-        keyCode = (*keycodeArray)[i];
-        if ( EPtiKeyQwertySpace == keyCode )
-            {
-            delimiterCount = delimiterCount + 1;
-            if ( delimiterCount == KMaxPhraseCreationCount )
-                {
-                if ( !valid )
-                    {
-                    editPane->SetHighlight( 
-                            phraseCount + index, 
-                            phraseCount + keystrokeCount - 1 );
-                    }
-                else
-                    {
-                    editPane->SetHighlight( 
-                            phraseCount + i, 
-                            phraseCount + keystrokeCount - 1 );
-                    }
-                break;
-                }
-            if ( ( !valid ) || ( 0 == i ) )
-                {
-                editPane->SetHighlight( 
-                        phraseCount + index, 
-                        phraseCount + index + count - 1 );
-                }
-            else if ( i > 0 )
-                {
-                if ( 0 == keystrokeArray->MdcaPoint( i - 1 ).Compare( delimiter ) )
-                    {
-                    editPane->SetHighlight( 
-                            phraseCount + index, 
-                            phraseCount + index + count - 1 );
-                    }
-                }
-            valid = ETrue;
-            index = i + 1;
-            count = 0;
-            ClearPtiEngineKeystroke();
-            }
-        else if ( valid )
-            {
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = 
-                ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-            if ( stringBeforeLength == stringAfterLength )
-                {
-                valid = EFalse;
-                }  
-            }
-        
-        if ( ( !valid ) && 
-            ( keystrokeCount == i + 1 ) && 
-            ( EPtiKeyQwertySpace != keyCode ) )
-            {
-            editPane->SetHighlight( 
-                    phraseCount + index, 
-                    phraseCount + index + count - 1 );
-            }
-        }
-    
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::ChangeCbaL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt candidateCount = UIContainer()->CandidatePane()->CandidateArray()->Count();
-    TInt keyStrokeCount = editPane->KeystrokeArray()->Count();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt currentCBAResId = editPane->GetCurrentCBAResID();
-    if ( ( candidateCount == 0 && keyStrokeCount != 0 ) || 
-        ( phraseCount == 1 && keyStrokeCount == 0 ) )
-        {
-        if (R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            }
-
-        }
-    else if ( keyStrokeCount == 0 )
-        {
-        if ( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            }
-        }
-    else if ( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL != currentCBAResId )
-        {
-        fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::MoveCursorLeft
-// Move the cursor to Left.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::MoveCursorLeft()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keystrokeCount = editPane->KeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-
-    if ( EMiniQwertyEdit != iState )
-        {
-        return EFalse;
-        }    
-    if ( 0 == keystrokeCount )
-        {
-        return EFalse;
-        }
-    
-    if ( 0 == index )
-        {
-        editPane->SetCursorIndexOfKeystroke( keystrokeCount );
-        ShowInfoOnEEPPane();
-        SetWarningColor();        
-        }
-    else if ( ( phraseCount > 0 ) && ( 1 == index ) )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        ShowInfoOnEEPPane();
-        SetWarningColor();    
-        }
-    else
-        {
-        editPane->MoveCursorLeft();
-        editPane->SetCursorIndexOfKeystroke( index - 1 );
-        }
-    
-    editPane->SetAutoChangeStateFlag( EManualChangeState );
-    
-    return ETrue;    
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::MoveCursorRight
-// Move the cursor to Right.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::MoveCursorRight()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keystrokeCount = editPane->KeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();  
-    
-    if ( EMiniQwertyEdit != iState )
-        {
-        return EFalse;
-        }
-    if ( 0 == keystrokeCount )
-        {
-        return EFalse;
-        }
-    if ( index >= keystrokeCount )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        ShowInfoOnEEPPane();
-        SetWarningColor(); 
-        }
-    else
-        {
-        editPane->MoveCursorRight();
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    
-    editPane->SetAutoChangeStateFlag( EManualChangeState );
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyFromCandidateL
-// Handle key from candidate.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyFromCandidateL(
-    TInt aKey, TKeyPressLength /*aLength*/ )
-    {
-    TInt index = 0;
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    // it may be one of the 'valid' numbers..
-    TPtiKeyboardType keyboardtype = iOwner->FepMan()->KeyboardLayout();
-    if ( EPtiKeyboardQwerty4x10 == keyboardtype || EPtiKeyboardQwerty3x11
-        == keyboardtype || EPtiKeyboardHalfQwerty == keyboardtype
-        || EPtiKeyboardCustomQwerty == keyboardtype )
-        {
-        MPtiLanguage *lang= NULL;
-        RArray < TPtiNumericKeyBinding > keybinding;
-        TBool validnumkey = EFalse;
-        CPtiEngine* ptiengine = iOwner->PtiEngine();
-        
-        if( ptiengine != NULL )
-            {
-            lang = ptiengine->CurrentLanguage();
-            }
-        if ( ptiengine && lang )
-            {
-            TRAP_IGNORE(ptiengine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), keybinding, keyboardtype));
-            TInt numericKeysCount = keybinding.Count();
-            while (numericKeysCount-- )
-                {
-                TPtiNumericKeyBinding numKeyBind =
-                    keybinding[numericKeysCount];
-                if ( (numKeyBind.iChar >= KKey1 && numKeyBind.iChar <= KKey6)
-                    &&(aKey == numKeyBind.iKey) )
-                    {
-                    index = numKeyBind.iChar - EPtiKey0 -1;
-                    if ( candidatePane->SelectIndex( index ) )
-                        {
-                        validnumkey = ETrue;
-                        }
-                    break;
-                    }
-                }
-            }
-        keybinding.Reset();
-        keybinding.Close();
-        if ( !validnumkey )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return;
-            }
-        }
-    else
-        {
-#endif
-        index = MapKeyToIndex( aKey );
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        }
-#endif
-    TPtrC text = candidatePane->CurrentPhraseCandidate();
-    if ( text.Length( ) )
-        {
-        if ( !CommitInlineEEPL( text ) )
-            {
-            DoActionAfterCommit( );
-            }
-        else
-            {
-            if ( CheckFirstGroupStroke( ) )
-                {
-                RefreshUI( );
-                UIContainer()->CandidatePane()->SelectFirstPhrase( );
-                }
-            else
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( EAutoChangeStateFromCandidate );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::CheckAllGroupStroke
-// check the all group stroke of keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::CheckAllGroupStroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt keystrokeCount = keystroke->Count();
-    TInt keyCode = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt lastDLTPos = 0;
-    TBool check = ETrue;
-    TInt delimiterCount = 0;
-    //If has phrase on the entry pane then the all keystroke is invalid.
-    if ( ( phraseCount > 0 ) || ( 0 == keystrokeCount ) )
-        {
-        editPane->SetAllValidFlag( EFalse );
-        editPane->SetDelimiterCount( 0 );
-        editPane->SetInvalidIndex( 0 );
-        return EFalse;
-        }
-    
-    ClearPtiEngineKeystroke();
-    for ( TInt i = 0; i < keystrokeCount; ++i )
-        {
-        //GetKeystrokeCode( keyCode, keystroke->MdcaPoint( i ) );
-        keyCode = (*keycodeArray)[i];
-        if ( EPtiKeyQwertySpace == keyCode )
-            {
-            //If first keystroke is delimiter then all keystroke is not valid.
-            if ( i == 0 )
-                {
-                editPane->SetAllValidFlag( EFalse );
-                editPane->SetDelimiterCount( 0 );
-                editPane->SetInvalidIndex( 0 );
-                return EFalse;
-                }
-            //If two delimiter is border upon then the check evaluate EFalse.
-            else if ( lastDLTPos == ( i - 1 ) )
-                {
-                check = EFalse;
-                }
-            //lastDLTPos evaluate last delimiter that has not border upon deliminter. 
-            else if ( check )
-                {
-                delimiterCount = delimiterCount + 1;
-                lastDLTPos = i;
-                }
-            }
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-        stringAfterLength = 
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-        if ( stringBeforeLength == stringAfterLength )
-            {
-            editPane->SetAllValidFlag( EFalse );
-            if ( 0 == lastDLTPos )
-                {
-                editPane->SetDelimiterCount( 0 );
-                editPane->SetInvalidIndex( 0 );
-                }
-            else
-                {
-                editPane->SetDelimiterCount( delimiterCount );
-                editPane->SetInvalidIndex( lastDLTPos + 1 );
-                }            
-            return EFalse;
-            }          
-        }
-    
-    editPane->SetAllValidFlag( ETrue );
-    editPane->SetDelimiterCount( 0 );
-    editPane->SetInvalidIndex( 0 );
-    return ETrue;
-    }
-
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::DoActionAfterCommit
-// Do action afer commit, change state to predictive or not.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::DoActionAfterCommit()
-    {
-    TRAP_IGNORE( DoActionAfterCommitL() ); 
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::DoActionAfterCommitL
-// Do action afer commit, change state to predictive or not.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::DoActionAfterCommitL( )
-    {
-    if ( UIContainer()->EditPaneWindow()->KeystrokeArray()->Count( ) != 0 )
-        {
-        UIContainer()->EditPaneWindow()->ResetAllArray( );
-        CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-        errnote->SetTone( CAknNoteDialog::EWarningTone );
-        errnote->ExecuteLD( KMaxPhraseNote );
-        }
-    else if ( !UIContainer()->EditPaneWindow()->GetPhraseCreationFlag( ) )
-        {
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-        TBool isEditorFull = iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagEditorFull);
-        if ( !isEditorFull )
-            {
-            iOwner->ChangeState( EPredictiveCandidate );
-            UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-            }
-        else
-            {
-            iOwner->FepMan()->ClearFlag(CAknFepManager::EFlagEditorFull);
-            iOwner->FepMan()->TryCloseUiL();
-            }
-#endif
-        }
-    else
-        {
-        iOwner->FepMan()->TryCloseUiL( );
-        }
-    }
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::CheckSpellingDLT
-// Check the delimiter of spelling.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyStrokePhraseBase::CheckSpellingDLT( const TDesC& aKeystroke )
-    {
-    if ( aKeystroke.Length() == 0 )
-        {
-        return EFalse;
-        }
-    if (  KStrokeDelimiter == aKeystroke[0]  )
-        {
-        return ETrue;
-        }    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyStrokePhraseBase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyStrokePhraseBase::HandleCommandL( TInt aCommandId )
-    {
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            HandleCommitL( EShortKeyPress );
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-// End of file
--- a/fep/aknfep/src/aknfepuiinputminiqwertyzhuyinphrasebase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,625 +0,0 @@
-/*
-* 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 TAknFepInputMiniQwertyZhuyinPhraseBase definition.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <e32cmn.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-// User includes
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-#include "aknfepuiinputminiqwertyzhuyinphrasebase.h"
-#include "aknfepinputstateminiqwertyzhuyinkeymap.h"
-
-const TInt KMaxPhraseCount = 100;
-const TInt KMaxBufLength = 150;
-const TInt KMaxPhraseCreationCount = 7;
-//KMaxPhraseNote means the max phrase is seven
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::TAknFepInputMiniQwertyZhuyinPhraseBase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputMiniQwertyZhuyinPhraseBase::TAknFepInputMiniQwertyZhuyinPhraseBase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer) :
-    TAknFepInputStateCandidateQwertyBaseChinesePhrase( aOwner, aUIContainer )
-    {
-    if (iOwner->PtiEngine()->InputMode() != EPtiEngineZhuyinPhraseQwerty)
-        {
-        iOwner->PtiEngine()->SetInputMode( EPtiEngineZhuyinPhraseQwerty );
-        }
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutPhraseCreation );
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyZhuyinPhraseBase::HandleKeyL(
-	                                             TInt /*aKey*/ ,
-                                                 TKeyPressLength /*aLength*/ )
-    {
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystroke
-// Get the valid keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystroke()
-    {
-    TBool result = ETrue;
-    TRAPD( ret, result = GetValidKeystrokeL() );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    return result;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshEditPane
-// Refresh editing pane.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshEditPane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    
-    TInt validCount = editPane->GetEffictiveLength();
-    TInt underLineLen = 0;
-    TBuf<KMaxBufLength> buf;
-    
-    for ( TInt i = 0; i < phrase->Count(); ++i )
-        {
-        buf.Append( phrase->MdcaPoint( i ) );
-        }
-    
-    for ( TInt i = 0; i < keystroke->Count(); ++i )
-        {
-        buf.Append( keystroke->MdcaPoint( i ) );
-        if ( i < validCount )
-            {
-            underLineLen = underLineLen + keystroke->MdcaPoint( i ).Length();
-            }
-        }
-    editPane->SetCursorIndexOfKeystroke( validCount );
-    editPane->SetText( buf, phrase->Count() + underLineLen, ETrue );
-    if ( 0 == validCount )
-        {
-        editPane->SetHighlight( phrase->Count(), buf.Length() );
-        }
-    
-    if ( EMiniQwertyEdit == iState )
-        {
-        editPane->ActiveCursor();
-        editPane->EnableCursor();
-        }
-    else if ( EZhuyinSpelling == iState )
-        {
-        editPane->DeactiveCursor();
-        editPane->EnableCursor();
-        editPane->SetUnderline( phrase->Count(), phrase->Count() + underLineLen - 1 );
-        }
-    else if ( EZhuyinCandidate == iState )
-        {
-        editPane->DisableCursor();
-        editPane->SetUnderline( phrase->Count(), phrase->Count() + underLineLen - 1 );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshSpellingPane
-// Refresh spelling pane.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshSpellingPane( TBool aClearSelection )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    TInt selection = 0;
-    if ( !aClearSelection )
-        {
-        selection = popup->CurrentSelection();
-        if ( selection >= spelling->Count() )
-            {
-            selection = 0;
-            }
-        }
-    popup->SplitPhraseSpellingIntoPages( );
-    if ( spelling->Count( ) == 0 )
-        {
-        uiContainer->SetControlInVisible( EFalse );
-        }
-    else
-        {
-        // set display page for delibrate selection
-        inputPane->SetText( spelling->MdcaPoint( selection ) );
-        popup->SetDisplayPage( selection );
-        popup->SetPhraseItemTexts( );
-        popup->PopupSizeChanged( );
-        uiContainer->Enable( ETrue );  
-        }
-
-    if ( EMiniQwertyEdit == iState )
-        {
-        //popup need to add none high lighted interface.
-        popup->SetNoneHighlighted();
-        }
-    popup->Enable( spelling->Count( ) > 0 );
-    uiContainer->Enable( ETrue );    
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshSpellingPane
-// Refresh spelling pane.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::RefreshCandidatePane( TBool aClearSelection )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt validCount = editPane->ShowKeystrokeArray()->Count();
-    CDesCArrayFlat* candidateArray = 
-        uiContainer->CandidatePane()->CandidateArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    // have valid keystroke.
-    if ( validCount > 0 )
-        {
-        // set display page for delibrate selection
-        ClearDeliberateSelection();
-        GetCandidate( aClearSelection );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->ShowVerticalScrollArrows( ETrue );
-        uiContainer->Enable( ETrue );
-        }
-    else
-        {
-        candidateArray->Reset();
-        if ( KMaxPhraseCreationCount == phraseCount )
-            {
-            TRAP_IGNORE( candidateArray->AppendL( KMaxPhraseNote ) );
-            }
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }    
-    uiContainer->Enable(ETrue);
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::UpdateIndicator
-// Update Indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);
-        }
-
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    if (iOwner->FepMan()->KeyboardLayout() == EPtiKeyboardQwerty4x10)
-        {
-        if (candidatePane->VisibleCandidateCount()==1)
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-    else
-        {
-#endif
-        if (candidatePane->SelectedIndex() == 0
-                && candidatePane->IsFirstPage() )
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowLeftScrollArrows(ETrue);
-            }
-
-        if (candidatePane->IsLastPage() && (candidatePane->SelectedIndex()
-                == candidatePane->VisibleCandidateCount() - 1))
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);
-            }
-        else
-            {
-            uiContainer->CandidatePane()->ShowRightScrollArrows(ETrue);
-            }
-        }
-#ifdef RD_INTELLIGENT_TEXT_INPUT
-    }
-#endif    
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::ClearDeliberateSelection
-// clear selection.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::ClearDeliberateSelection()
-    {
-    // we must have just deleted the last character, 
-    // or we are starting a new pinyin session, 
-    // so wipe the last deliberate selection
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    oldDeliberateSelection = KNullDesC;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::ClearPtiEngineKeystroke
-// clear the ptiengine keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::ClearPtiEngineKeystroke()
-    {
-    iOwner->PtiEngine()->ClearCurrentWord();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetCandidateL
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::GetCandidate( TBool aClearSelection )
-    {
-    TRAP_IGNORE( GetCandidateL( aClearSelection ) );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::ChangeCbaL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt candidateCount = UIContainer()->CandidatePane()->CandidateArray()->Count();
-    TInt keyStrokeCount = editPane->KeystrokeArray()->Count();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt currentCBAResId = editPane->GetCurrentCBAResID();
-    if ( ( candidateCount == 0 && keyStrokeCount != 0 ) || 
-        ( phraseCount == 1 && keyStrokeCount == 0 ) )
-        {
-        if (R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_EMPTY_CANCEL_EMPTY );
-            }
-
-        }
-    else if ( keyStrokeCount == 0 )
-        {
-        if ( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE != currentCBAResId )
-            {
-            fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-            }
-        }
-    else if ( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL != currentCBAResId )
-        {
-        fepMan->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        editPane->SetCurrentCBAResID( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::CheckPhraseSpellingL
-// Check the spelling whether is phrase spelling.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyZhuyinPhraseBase::CheckPhraseSpellingL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* spelling = 
-        uiContainer->PinyinPopupWindow()->PhoneticSpellingArray();
-    CDesCArrayFlat* tmpArray = editPane->TempArray();
-    const TUint16 specZhuyin = 0x311D;
-    _LIT( delimiter, "\x0027" );
-    TInt validSpellingCount = 0;
-    tmpArray->Reset();
-    
-    if ( 0 == ptiengine->GetPhoneticSpellingsL( *tmpArray ) )
-        {
-        return EFalse;
-        }
-    
-    for ( TInt i = 0; i < tmpArray->Count(); ++i )
-        {
-        if ( ( KErrNotFound == tmpArray->MdcaPoint( i ).Find( delimiter ) ) &&
-            ( specZhuyin != tmpArray->MdcaPoint( i )[0] ) )
-            {
-            validSpellingCount = validSpellingCount + 1;
-            spelling->InsertL( 0, tmpArray->MdcaPoint( i ) );
-            }
-        }
-    
-    if ( 0 == validSpellingCount )
-        {
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystroke
-// Get the valid keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystrokeL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* showKeystroke = editPane->ShowKeystrokeArray();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    CDesCArrayFlat* spelling = 
-        uiContainer->PinyinPopupWindow()->PhoneticSpellingArray();
-    TInt keyCode = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    
-    spelling->Reset();
-    spelling->Compress();
-    showKeystroke->Reset();
-    showKeystroke->Compress();
-    
-    editPane->SetEffictiveLength( 0 );
-    if ( KMaxPhraseCreationCount == phraseCount )
-        {
-        if ( keystroke->Count() > 0 )
-            {
-            keystroke->Reset();
-            }
-        return EFalse;
-        }
-    
-    if ( 0 == keystroke->Count() )
-        {
-        return EFalse;
-        }
-    
-    if ( 1 == keystroke->MdcaPoint( 0 ).Length() )
-        {
-        return EFalse;
-        }
-   
-    if ( CheckToneMarkBorderUpon() )
-        {
-        return EFalse;
-        }
-    
-    ClearPtiEngineKeystroke();
-    for ( TInt i = 0; ( i < keystroke->Count() ) && 
-        ( i < keycodeArray->Count() ); ++i )
-        {
-        keyCode = (*keycodeArray)[i];
-        if ( keyCode == EPtiKeyQwertyE || 
-            keyCode == EPtiKeyQwertyR || 
-            keyCode == EPtiKeyQwertyY || 
-            keyCode == EPtiKeyQwertyU ||
-            keyCode == EStdKeySpace )
-            {
-            if( ptiengine->SetToneMark( keyCode ) )
-                {
-                if ( !CheckPhraseSpellingL() )
-                    {
-                    break;
-                    }
-                else
-                    {
-                    showKeystroke->AppendL( keystroke->MdcaPoint( i - 1 ) );
-                    showKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-                    }
-                }
-            break;
-            }
-        else
-            {
-            stringBeforeLength = 
-                ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = 
-                ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-            if ( stringBeforeLength != stringAfterLength )
-                {
-                if ( i + 1 < keystroke->Count() )
-                    {
-                    if ( 1 != keystroke->MdcaPoint( i + 1 ).Length() )
-                        {
-                        if ( !CheckPhraseSpellingL() )
-                            {
-                            break;
-                            }
-                        showKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-                        }
-                    }
-                else
-                    {
-                    if ( CheckPhraseSpellingL() )
-                        {
-                        showKeystroke->AppendL( keystroke->MdcaPoint( i ) );
-                        }
-                    }
-                }
-            else
-                {
-                break;
-                }
-            }
-        }
-    
-    editPane->SetEffictiveLength( showKeystroke->Count() );
-    if ( 0 == showKeystroke->Count() )
-        {
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetValidKeystroke
-// Get the valid keystroke.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputMiniQwertyZhuyinPhraseBase::CheckToneMarkBorderUpon()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    
-    if ( keystroke->Count() > 1 )
-        {
-        for ( TInt i = 1; i < keystroke->Count(); ++i )
-            {
-            if ( ( 1 == keystroke->MdcaPoint( i - 1 ).Length() ) &&
-                ( 1 == keystroke->MdcaPoint( i ).Length() ) )
-                {
-                return ETrue;
-                }
-            }
-        }
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputMiniQwertyZhuyinPhraseBase::GetCandidateL
-// Get candidate info.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputMiniQwertyZhuyinPhraseBase::GetCandidateL( TBool aClearSelection )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    CDesCArrayFlat* candidateArray = candidatePane->CandidateArray();
-    candidateArray->Reset();
-    candidateArray->Compress();
-    
-    if ( 0 == spelling->Count() )
-        {
-        return;
-        }
-    
-    TInt selection = 0;
-    if ( !aClearSelection )
-        {
-        selection = popup->CurrentSelection();
-        if ( selection >= spelling->Count() )
-            {
-            selection = 0;
-            }
-        }
-    RPointerArray<HBufC> list;
-    extern void CleanArray( TAny* aAny );
-    TCleanupItem cleanitem( CleanArray, &list );
-    CleanupStack::PushL( cleanitem );
-    HBufC* retString = ptiengine->GetCandidatesByInputString( 
-                                              spelling->MdcaPoint( selection ), 
-                                              list,
-                                              EFalse );
-    
-    delete retString;
-    retString = NULL;
-    
-    for ( TInt i = 0; i < list.Count(); ++i )
-        {
-        if ( 1 == spelling->MdcaPoint( selection ).Length() )
-            {
-            if ( 0 != spelling->MdcaPoint( selection ).Compare( *(list[i]) ) )
-                {
-                candidateArray->AppendL( *(list[i]) );
-                }
-            }
-        else
-            {
-            candidateArray->AppendL( *(list[i]) );
-            }
-        }
-    
-    CleanupStack::PopAndDestroy(); // cleanitem  
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuiinputstateentryhalfqwertyphrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1243 +0,0 @@
-/*
-* 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  TAknFepInputStateEntryMiniQwertyPinyinPhrase methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "AknFepUIManagerStateInterface.h"  //MAknFepUIManagerStateInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepManagerUIInterface.h"       //MAknFepManagerUIInterface
-#include "AknFepUICtrlCandidatePane.h"
-#include "aknfepuiinputstateentryhalfqwertyphrase.h"
-
-#include "AknFepManager.h"                  //FepMan flag
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "AknFepUiCtrlContainerChinese.h"
-#include <aknfep.rsg>
-#include <PtiEngine.h>      //CPtiEngine
-#include <e32keys.h>        //keys  
-#include <avkon.rsg>
-
-const TInt KFnMappedCharacters = 5;
-const TInt KInputPaneLength = 32;
-const TText KPinyinTone4Valid = 0x02D9;
-const TText KPinyinTone4Invalid = 0x0020;
-const TInt KMaxPhraseCount = 150;
-
-//For Pinyin
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::TAknFepInputStateEntryHalfQwertyPinyinPhrase
-// the construt funtion 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryHalfQwertyPinyinPhrase::TAknFepInputStateEntryHalfQwertyPinyinPhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner,aUIContainer)                           
-    {
-    iState = EEntry;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane(EFalse);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals(EFalse);
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-    uiContainer->ShowHorizontalScrollArrows(EFalse); 
-    uiContainer->ShowVerticalScrollArrows(EFalse);
-    uiContainer->InputPane()->SetOverrideFontId(0);
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    ImplicitlyUpdateSelection();
-    UpdateIndicator();
-    ClearDeliberateSelection();
-    iOwner->PtiEngine()->SetInputMode(EPtiEnginePinyinPhraseHalfQwerty);
-    iOwner->PtiEngine()->SetCandidatePageLength(KMaxPhraseCount);
-    iOwner->PtiEngine()->SetCase(EPtiCaseLower);
-    }
-                               
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase::HandleKeyL
-// handle key event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryHalfQwertyPinyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TBool state = ETrue;
-    TPtrC text;
-    TBool ret = ETrue;
-    if ( aLength == EShortKeyPress )
-    	{
-    	switch (aKey)
-			{
-			case EPtiKeyQwerty1:
-				{
-				aKey = EPtiKeyQwertyE;
-				break;
-			}
-		case EPtiKeyQwerty2:
-			{
-			aKey = EPtiKeyQwertyT;
-			break;
-			}
-		case EPtiKeyQwerty3:
-			{
-			aKey = EPtiKeyQwertyU;
-			break;
-			}
-		case EPtiKeyQwerty4:
-			{
-			aKey = EPtiKeyQwertyD;
-			break;
-			}
-		case EPtiKeyQwerty5:
-			{
-			aKey = EPtiKeyQwertyG;
-			break;
-			}
-		case EPtiKeyQwerty6:
-			{
-			aKey = EPtiKeyQwertyJ;
-			break;
-			}
-		case EPtiKeyQwerty7:
-			{
-			aKey = EPtiKeyQwertyC;
-			break;
-			}
-		case EPtiKeyQwerty8:
-			{
-			aKey = EPtiKeyQwertyB;
-			break;
-			}
-		case EPtiKeyQwerty9:
-			{
-			aKey = EPtiKeyQwertyM;
-			break;
-			}
-			case EPtiKeyQwerty0:
-				{
-				aKey = EPtiKeyQwertySpace;
-				break;
-				}
-			}
-    	}
-	
-    if ( aKey != EStdKeyLeftFunc && 
-        (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    if(( aKey == EStdKeyLeftFunc  || aKey == EStdKeyFullStop) && aLength == EShortKeyPress) //chr and punctuation key to tone mark   
-        {
-        if(ptiengine->IncrementToneMark(ETrue))
-            {
-            ImplicitlyUpdateSelection();
-            }
-        }
-    else if( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() ||     //
-        CAknFepFnKeyManager::EFnKeyLock == iOwner->FepMan()->FnKeyState() ||
-        CAknFepFnKeyManager::EFnKeyDown == iOwner->FepMan()->FnKeyState())
-        {
-        popup->SetPreStateIsPredictive( EFalse );
-        iOwner->FepMan()->TryCloseUiL();
-        ret = EFalse;
-        }                                                    
-    else if(aKey == EStdKeyBackspace )
-        {
-        if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-            {
-            state = EFalse;
-            }
-        else
-            {
-            popup->SetChangeState( EFalse );
-            }
-        if ( state )
-            {
-            if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-                {
-                ImplicitlyUpdateSelection();
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                popup->SetPreStateIsPredictive( EFalse );
-                if ( aLength == ELongKeyPress )
-                    {
-                    iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                    }
-                }
-            }
-        } 
-    else if(aKey ==EStdKeyDevice1)//sk2
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        popup->SetPreStateIsPredictive( EFalse );
-        }
-    else if(aKey == EStdKeyRightArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectNextPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        }
-    else if(aKey == EStdKeyLeftArrow)
-        {
-        if(popup->IsEnabled())
-            {
-            if(popup->SelectPrevPhrase())
-                {
-                DeliberatelyUpdateSelection();
-                }
-            }
-        } 
-    else if (aKey == EStdKeyDownArrow
-            || aKey == EStdKeyDevice3
-            || aKey == EStdKeyDevice0
-            ||aKey == EStdKeyEnter) //Downkey,sk1,selection,enter key
-        {
-        if(popup->IsEnabled())
-            {
-            popup->Enable(EFalse);
-            }
-        iOwner->ChangeState(ECandidate);
-        popup->SetPreStateIsPredictive( EFalse );
-        popup->SetChangeState( ETrue );
-        }  
-    else if ( aKey == EStdKeyUpArrow )
-        {
-        if ( !candidatePane->IsFirstPage() )
-            {
-            candidatePane->PreviousCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirst();
-            UpdateIndicator();
-            }
-        }
-    else if(aLength == EShortKeyPress) 
-        {
-        iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);            
-        
-        if(iOwner->IsValidChineseInputKeyQwerty(aKey) || aKey ==EStdKeySpace ) //seperator
-            {
-            TInt stringBeforeLength(0);
-            TInt stringAfterLength(0);
-            stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-            stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-            if (stringAfterLength==0 && aKey == EPtiKeyQwertyU )  //u,i should not as first character in pinyin
-               {
-               iOwner->FepMan()->TryCloseUiL();
-               popup->SetPreStateIsPredictive( EFalse );
-               iOwner->FepMan()->UpdateCbaL(NULL);
-//               iOwner->ChangeState(EQwerty);
-               iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-               return ETrue;     
-               }
-            if (stringBeforeLength != stringAfterLength)
-                {
-                if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                    {
-                    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                    }
-                ImplicitlyUpdateSelection();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-            }
-        if ( popup->PhoneticSpellingArray()->Count() > 0 &&
-            popup->PhoneticSpellingArray()->MdcaPoint( 0 ).Length() > 1 )
-            {
-            popup->SetPreStateIsPredictive( EFalse );
-            }
-        }
-    else 
-        {
-        if ( popup->GetPreStateIsPredictive() && 
-            popup->PhoneticSpellingArray()->Count() > 0 &&
-        		popup->PhoneticSpellingArray()->MdcaPoint( 0 ).Length() == 1)    //long press fn mode character should inputted
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            popup->SetPreStateIsPredictive( EFalse );
-            if (aKey == EStdKeyEnter)
-                {
-                // PtiEngine does not have mapping for the enter key.
-                const TText KAknFEPLineFeedSymbol = 0x21B2;
-                TBuf<1> lineFeed;
-                lineFeed.Zero();
-                lineFeed.Append(KAknFEPLineFeedSymbol);
-                text.Set(lineFeed);
-                }
-            else
-                {
-                TBuf<KFnMappedCharacters> allFnMappedCharacters;
-                ptiengine->MappingDataForKey((TPtiKey)aKey, allFnMappedCharacters, EPtiCaseFnLower);
-                text.Set(allFnMappedCharacters);
-                }
-            if (text.Length() > 0)
-                {
-                TBuf<1> chr;
-                chr.Append(text[0]);
-                iOwner->FepMan()->NewCharacterL(chr);
-                iOwner->FepMan()->CommitInlineEditL();
-                ptiengine->ClearCurrentWord();
-                ret = ETrue;
-                }
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::DeliberatelyUpdateSelection
-// DeliberatelyUpdateSelection
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::DeliberatelyUpdateSelection()
-    {
-    TPtr deliberateSelection = iOwner->GetLatestDeliberateSelection();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TInt selected = popup->CurrentSelection();
-    ptiengine->EnableToneMarks(EFalse);
-    // our index is zero based, engine index is one based
-    TPtrC spelling = ptiengine->GetPhoneticSpelling(selected + 1); 
-    deliberateSelection = spelling.Left(MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark);
-    ptiengine->EnableToneMarks(ETrue);
-    UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingNavigation);    
-    RefreshUI(popup->CurrentVisibleSelection());
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::ImplicitlyUpdateSelection
-// update the selection
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::ImplicitlyUpdateSelection()
-    {
-    TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-    TInt oldDeliberateSelectionLength = oldDeliberateSelection.Length();
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    // previously selected is compared in turn to each of the new candidates
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCount = ptiengine->PhoneticSpellingCount();
-    TInt newSelection = 0;
-    for(TInt i = 0; i < pinyinCount; i++)
-        {
-        TPtrC spelling = ptiengine->GetPhoneticSpelling(i + 1);  // our index is zero based, engine index is one based
-        TInt spellingLength = spelling.Length();
-        // figure out how many characters we are comparing, this depends on the 
-        // direction of the edit
-        TInt compareLength = oldDeliberateSelectionLength <= spellingLength ? 
-            oldDeliberateSelectionLength : spellingLength;
-        if(oldDeliberateSelection.Left(compareLength) == spelling.Left(compareLength))
-            {
-            // as soon as a substring match is found, the 
-            // highlight position is set to that candidate in the new list. 
-            // note that in the case of the first character entered, the
-            // oldBuf will be empty so it will always match... which is 
-            // fine as we want to select the top one anyway, so we will
-            // quit the loop early.
-            newSelection = i;
-            break;
-            }
-        }
-    ptiengine->EnableToneMarks(ETrue);
-    UIContainer()->PinyinPopupWindow()->SetFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged);
-    RefreshUI(newSelection);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::ClearDeliberateSelection
-// clear the deliberate selection
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::ClearDeliberateSelection()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TInt spellingCount = popup->PhoneticSpellingArray()->Count();
-    // we must have just deleted the last character, 
-    // or we are starting a new zhuyin session, so wipe the last deliberate selection
-    if ( 0 == spellingCount )
-        {
-        TPtr oldDeliberateSelection = iOwner->GetLatestDeliberateSelection();
-        oldDeliberateSelection = KNullDesC;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::RefreshUI
-// refresh ui 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::RefreshUI(TInt aSelection)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();   
-    // get cursor position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    TText toneMark;
-    TBool toneMarkEntered = ptiengine->ToneMark(toneMark);
-    TBuf<1> validToneMarkBuf;
-    if(toneMarkEntered)
-        {
-        // override specific invalid tonemark character only, the others are the same character 
-        // when both valid and invalid
-        if(toneMark == KPinyinTone4Invalid)
-            toneMark = KPinyinTone4Valid;
-        validToneMarkBuf.Append(toneMark);
-        }
-    // to start with, disable the tone marks so we can get the list of all zhuyin matches
-    // later we will figure out which ones are invalid
-    ptiengine->EnableToneMarks(EFalse);
-    TInt pinyinCountWithoutToneMarks = ptiengine->PhoneticSpellingCount();
-    if(pinyinCountWithoutToneMarks > 0)
-        {
-        if(popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingChanged))
-            {
-            CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-            TRAPD(ignore, ptiengine->GetPhoneticSpellingsL(*spelling));
-            if (ignore != KErrNone)
-                {
-                return;
-                }
-            popup->SplitPhraseSpellingIntoPages(); 
-            }
-        // set display page for delibrate selection
-        popup->SetDisplayPage(aSelection);
-        popup->SetPhraseItemTexts();
-        // fill in input pane although it's invisible
-        inputPane->SetText(ptiengine->GetPhoneticSpelling(popup->CurrentSelection() + 1));
-        popup->PopupSizeChanged(); // phrase input
-        }
-    // turn tone marks back on so that we know where we are.
-    ptiengine->EnableToneMarks(ETrue);
-    // this is where we start to figure out whether the tonemarks are valid,
-    // whether the selected tonemark is valid, and what is the index of the 
-    // selected candidate in the list of candidates with tonemarks...
-    TBool selectionToneMarkValid = EFalse;
-    TInt selectionIndexAdjustedForToneMarkValidity = popup->CurrentSelection();
-    // we only need to deal with tone marks if there is one
-    if(toneMarkEntered)
-        {
-        if(pinyinCountWithoutToneMarks > 0)
-            {
-            for(TInt i = 0; i < pinyinCountWithoutToneMarks; i++)
-                {
-                TBool valid = EFalse;
-                
-                TBuf<MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark> nextCandidateWithoutToneMark;
-                nextCandidateWithoutToneMark.Copy(ptiengine->GetPhoneticSpelling
-                    (i + 1).Left(MAknFepUICtrlInputPane::EMaxInputCharsPinyinPopupNotIncludingToneMark));
-                ptiengine->EnableToneMarks(EFalse); 
-                ptiengine->SelectPhoneticSpelling(i + 1);
-                valid = ptiengine->IsToneMarkValidForSpelling();
-                if(valid)
-                    {
-                    ptiengine->EnableToneMarks(ETrue); 
-                    TInt pinyinCountWithToneMarks = ptiengine->PhoneticSpellingCount();
-                    for(TInt j = 0; j < pinyinCountWithToneMarks; j++)
-                        {
-                        // use j here not i as we are looking at the list with tonemarks
-                        TPtrC nextCandidateWithToneMark = ptiengine->GetPhoneticSpelling(j + 1);  
-                        if(nextCandidateWithToneMark == nextCandidateWithoutToneMark)
-                            {
-                            if(i == aSelection)
-                                {
-                                selectionToneMarkValid = ETrue;
-                                
-                                // fill in input pane even if it can't be seen, for when we have to hide popup window
-                                inputPane->SetText(nextCandidateWithoutToneMark);
-                                }
-                            break;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    ptiengine->EnableToneMarks(EFalse); 
-    ptiengine->SelectPhoneticSpelling(popup->CurrentSelection() + 1); 
-    // next two lines are for tonemark validity
-    ptiengine->EnableToneMarks(selectionToneMarkValid); 
-    ptiengine->SelectPhoneticSpelling(selectionIndexAdjustedForToneMarkValidity + 1); // our index is zero based, engine index is one based
-    // update the candidate pane.
-    if(popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingChanged) 
-        || popup->IsFlagSet(MAknFepUICtrlPinyinPopup::ESpellingNavigation))
-        {
-        TRAPD(ignore, ptiengine->GetChinesePhraseCandidatesL(*(uiContainer->CandidatePane()->CandidateArray())));
-        if (ignore != KErrNone)
-            {
-            return;
-            }
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages(); 
-        popup->ClearFlag(MAknFepUICtrlPinyinPopup::ESpellingChanged 
-                        | MAknFepUICtrlPinyinPopup::ESpellingNavigation);
-        }
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable(ETrue);
-    // need to enable the pinyin popup after the container so that it is raised to the front
-    popup->Enable(pinyinCountWithoutToneMarks > 0);
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::InitializeStateL
-// updata the cba 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::UpdateIndicator
-// updata the indicator
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyPinyinPhrase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-
-    uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-    uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);        
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyPinyinPhrase::IsCharacterKey
-// to check whether the key is character or not
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryHalfQwertyPinyinPhrase::IsCharacterKey(
-    const TInt aKey )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    // Max length doesn't matter because we'll need only the first character.    
-    TBuf<KMaxName> lowerdata;
-    ptiengine->MappingDataForKey( (TPtiKey)aKey, lowerdata, EPtiCaseLower );
-    if ( lowerdata.Length( ) > 0 )
-        {
-        TChar lower = lowerdata[0];
-        TUint upper = lower.GetUpperCase( );
-        if ( TUint( lower ) != upper )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-//For stroke
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyStrokePhrase::TAknFepInputStateEntryHalfQwertyStrokePhrase
-// the construt funtion 
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryHalfQwertyStrokePhrase::TAknFepInputStateEntryHalfQwertyStrokePhrase(
-                               MAknFepUIManagerStateInterface* aOwner,
-                               MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner,aUIContainer)                           
-    {
-    iState = EEntry;
-    iOwner->PtiEngine()->SetInputMode( EPtiEngineStrokePhraseHalfQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    uiContainer->ShowHorizontalScrollArrows(EFalse); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    UpdateIndicator();
-    }
-                               
-//For stroke
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyStrokePhrase::HandleKeyL
-// handle the key event of stroke 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryHalfQwertyStrokePhrase::HandleKeyL(TInt aKey,
-        TKeyPressLength aLength )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TBuf<KInputPaneLength> currentText;
-    TPtrC text;
-    TBool state = ETrue;
-    TInt spellingLen = 0;
-    TBool ret = ETrue;
-    
-    if ( aKey == EPtiKeyQwerty0 )
-    	{
-    	aKey = EPtiKeyQwertySpace;
-    	}
-   
-    if ( aKey != EStdKeyLeftFunc && 
-        (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    switch (aKey)
-        {
-        case EStdKeyBackspace:
-            {
-            if (popup->IsChangeStatet() && aLength == ELongKeyPress)
-                {
-                state = EFalse;
-                }
-            else
-                {
-                popup->SetChangeState(EFalse);
-                }
-            if (state)
-                {
-                if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-                    {
-                    inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-                    RefreshUI();
-                    }
-                else
-                    {
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    popup->SetPreStateIsPredictive( EFalse );
-                    if (aLength == ELongKeyPress)
-                        {
-                        iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                        }
-                    }
-                }
-            break;
-            }
-        case EStdKeyDevice1://sk2
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            popup->SetPreStateIsPredictive( EFalse );
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            if ( !candidatePane->IsFirstPage() )
-                {
-                candidatePane->PreviousCandidatePage();
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirst();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyRightArrow:
-            {
-            if (candidatePane->VisibleCandidateCount()!= 1)
-                {
-                iOwner->ChangeState(ECandidate);
-                popup->SetPreStateIsPredictive( EFalse );
-                candidatePane->SelectNext();
-                }
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if (candidatePane->VisibleCandidateCount()!= 1)
-                {
-                iOwner->ChangeState(ECandidate);
-                popup->SetPreStateIsPredictive( EFalse );
-                TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-                UIContainer()->CandidatePane()->SelectIndex(numbertotal-1);
-                }
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            if ( candidatePane->IsLastPage() )
-                {
-                return ETrue;
-                }
-            if ( candidatePane->NeedGetNewCandidatePage( ) )
-                {
-                if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                    {
-                    if ( candidatePane->IsLastPage() )
-                        {
-                        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                        return ETrue;
-                        }
-                    }
-                else
-                    {
-                    CDesCArrayFlat* phraseCandidates =
-                        candidatePane->CandidateArray( );
-                    RPointerArray<HBufC> list;
-                    GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                    for (TInt i = 0; i < list.Count( ); ++i )
-                        {
-                        phraseCandidates->AppendL( *(list[i]) );
-                        }
-                    list.ResetAndDestroy();
-                    }
-                }
-            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            UpdateIndicator();
-            break;
-            }
-        case EStdKeyDevice3://Select
-        case EStdKeyDevice0://sk1
-        case EStdKeyEnter:
-            {
-            uiContainer->PinyinPopupWindow()->Enable(EFalse);
-            TPtrC currentPhraseText = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if(currentPhraseText.Length())
-                {            
-                fepMan->NewTextL(currentPhraseText);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(currentPhraseText);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                }
-            break;
-            }
-        default:
-            {
-            if (aLength == EShortKeyPress)
-                {
-                iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-                if (iOwner->IsValidChineseInputKeyQwerty(aKey) ||
-                        aKey ==EStdKeySpace ||
-                        aKey == EStdKeyFullStop ||
-                        aKey == EStdKeyLeftFunc ) //seperator
-                    {
-                    TInt stringBeforeLength(0);
-                    TInt stringAfterLength(0);
-                    stringBeforeLength = ptiengine->GetPhoneticSpelling(1).Length();
-                    stringAfterLength = ptiengine->AppendKeyPress((TPtiKey)aKey).Length();
-                    if (stringBeforeLength != stringAfterLength)
-                        {
-                        if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                            {
-                            iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                            }
-                        inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-                        RefreshUI();
-                        }
-                    else
-                        {
-                        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                        }
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                    }
-                inputPane->GetText(currentText);
-                spellingLen = currentText.Length();
-                if ( spellingLen > 1 )
-                    {
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                }
-            else if ( popup->GetPreStateIsPredictive() && 0 == spellingLen)  //long press fn mode character should inputted
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                popup->SetPreStateIsPredictive( EFalse );
-
-                TBuf<KFnMappedCharacters> allFnMappedCharacters;
-                ptiengine->MappingDataForKey( (TPtiKey)aKey,
-                    allFnMappedCharacters, EPtiCaseFnLower );
-                text.Set( allFnMappedCharacters );
-                if ( text.Length( ) > 0 )
-                    {
-                    TBuf<1> chr;
-                    chr.Append( text[0] );
-                    iOwner->FepMan()->NewCharacterL( chr );
-                    iOwner->FepMan()->CommitInlineEditL();
-                    ptiengine->ClearCurrentWord();
-                    ret = ETrue;
-                    }
-                }
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyStrokePhrase::InitializeStateL
-// change the cba 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyStrokePhrase::InitializeStateL(void)
-    {
-    iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyStrokePhrase::IsCharacterKey
-// to check whether the key is character or not
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryHalfQwertyStrokePhrase::IsCharacterKey(
-    const TInt aKey )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine( );
-    // Max length doesn't matter because we'll need only the first character.    
-    TBuf<KMaxName> lowerdata;
-    ptiengine->MappingDataForKey( (TPtiKey)aKey, lowerdata, EPtiCaseLower );
-    if ( lowerdata.Length( ) > 0 )
-        {
-        TChar lower = lowerdata[0];
-        TUint upper = lower.GetUpperCase( );
-
-        if ( TUint( lower ) != upper )
-            {
-            return ETrue;
-            }
-        }
-
-    return EFalse;
-    }   
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyStrokePhrase::UpdateIndicator
-// updata the indicator
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyStrokePhrase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-        }
-
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);   
-    }
-
-//for zhuyin
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyZhuyinPhrase::TAknFepInputStateEntryHalfQwertyZhuyinPhrase
-// c++ construct funtion
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryHalfQwertyZhuyinPhrase::TAknFepInputStateEntryHalfQwertyZhuyinPhrase(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateEntryQwertyBaseChinesePhrase(aOwner, aUIContainer)
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetLayout(MAknFepUICtrlContainerChinese::ELayoutInput);
-    uiContainer->CandidatePane()->SelectFirstPhrase(); 
-    uiContainer->InputPane()->SetOverrideFontId(0);
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    uiContainer->ShowHorizontalScrollArrows(EFalse); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    iOwner->PtiEngine()->SetInputMode( EPtiEngineZhuyinPhraseHalfQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyZhuyinPhrase::HandleKeyL
-// handle the key of zhuyin 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryHalfQwertyZhuyinPhrase::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    TInt originalKey = aKey;
-    TPtrC text;
-    TInt spellingLen = 0;
-    TBool state = ETrue;
-    TBool ret = ETrue;
-    TBuf<KInputPaneLength> currentText;
-    if ( aKey != EStdKeyLeftFunc && 
-        (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed) ||
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagShiftKeyDepressed)))
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return ETrue;
-        }
-    switch (aKey)
-        {
-        case EPtiKeyQwertyE:
-            aKey = EPtiKey1;
-            break;
-        case EPtiKeyQwertyT:
-            aKey = EPtiKey2;
-            break;
-        case EPtiKeyQwertyU:
-            aKey = EPtiKey3;
-            break;
-        case EPtiKeyQwertyD:
-            aKey = EPtiKey4;
-            break;
-        case EPtiKeyQwertyG:
-            aKey = EPtiKey5;
-            break;
-        case EPtiKeyQwertyJ:
-            aKey = EPtiKey6;
-            break;
-        case EPtiKeyQwertyC:
-            aKey = EPtiKey7;
-            break;
-        case EPtiKeyQwertyB:
-            aKey = EPtiKey8;
-            break;
-        case EPtiKeyQwertyM:
-            aKey = EPtiKey9;
-            break;
-        case EPtiKeyQwertySpace:
-            aKey = EPtiKey0;
-            break;
-        }
-    if( (aKey == EStdKeyLeftFunc || aKey == EStdKeyFullStop )&& 
-            aLength == EShortKeyPress )
-        {
-        if( ptiengine->IncrementToneMark( ETrue ) )
-            {
-            inputPane->SetFlag( MAknFepUICtrlInputPane::EPhoneticChanged );
-            RefreshUI();
-            return ETrue;
-            }
-        }
-    switch (aKey)
-        {
-        case EStdKeyBackspace:
-            {
-            if (popup->IsChangeStatet() && aLength == ELongKeyPress)
-                {
-                state = EFalse;
-                }
-            else
-                {
-                popup->SetChangeState(EFalse);
-                }
-            if (state)
-                {
-                if (iOwner->PtiEngine()->DeleteKeyPress().Length())
-                    {
-                    inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-                    RefreshUI();
-                    }
-                else
-                    {
-                    iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-                    popup->SetPreStateIsPredictive( EFalse );
-                    if (aLength == ELongKeyPress)
-                        {
-                        iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                        }
-                    }
-                }
-            break;
-            }
-        case EStdKeyDevice1://sk2
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            popup->SetPreStateIsPredictive( EFalse );
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            if ( !candidatePane->IsFirstPage() )
-                {
-                candidatePane->PreviousCandidatePage();
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirst();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyRightArrow:
-            {
-            if (candidatePane->VisibleCandidateCount()!= 1)
-                {
-                iOwner->ChangeState(ECandidate);
-                popup->SetPreStateIsPredictive( EFalse );
-                candidatePane->SelectNext();
-                }
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if (candidatePane->VisibleCandidateCount()!= 1)
-                {
-                iOwner->ChangeState(ECandidate);
-                popup->SetPreStateIsPredictive( EFalse );
-                TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-                UIContainer()->CandidatePane()->SelectIndex(numbertotal-1);
-                }
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            if ( candidatePane->IsLastPage() )
-                {
-                return ETrue;
-                }
-            if ( candidatePane->NeedGetNewCandidatePage( ) )
-                {
-                if ( !iOwner->PtiEngine()->NextCandidatePage( ) )
-                    {
-                    if ( candidatePane->IsLastPage() )
-                        {
-                        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                        return ETrue;
-                        }
-                    }
-                else
-                    {
-                    CDesCArrayFlat* phraseCandidates =
-                        candidatePane->CandidateArray( );
-                    RPointerArray<HBufC> list;
-                    GetNewCandidatesL( iOwner->PtiEngine()->CandidatePage( ), list );
-                    for (TInt i = 0; i < list.Count( ); ++i )
-                        {
-                        phraseCandidates->AppendL( *(list[i]) );
-                        }
-                    list.ResetAndDestroy();
-                    }
-                }
-            candidatePane->NextCandidatePage();
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            UpdateIndicator();
-            break;
-            }
-        case EStdKeyDevice3://Select
-        case EStdKeyDevice0://sk1
-        case EStdKeyEnter:
-            {
-            uiContainer->PinyinPopupWindow()->Enable(EFalse);
-            TPtrC phraseText = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-            if(phraseText.Length())
-                {            
-                fepMan->NewTextL(phraseText);
-                fepMan->CommitInlineEditL();
-                iOwner->PtiEngine()->SetPredictiveChineseChar(phraseText);
-                if (fepMan->IsFlagSet(CAknFepManager::EFlagEditorFull))
-                    {
-                    fepMan->ClearFlag(CAknFepManager::EFlagEditorFull);
-                    iOwner->FepMan()->TryCloseUiL();
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                else
-                    {
-                    iOwner->ChangeState(EPredictiveCandidate);
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                }
-            break;
-            }
-        case EPtiKeyQwertyQ:
-        case EPtiKeyQwertyA:
-        case EPtiKeyQwertyO:
-        case EPtiKeyQwertyL:
-        case EPtiKeyQwertyZ:
-            {
-            ret = ETrue;
-            break;
-            }
-        default:
-            {
-            if (aLength == EShortKeyPress)
-                {
-                iOwner->FepMan()->SetCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
-
-                if (iOwner->IsValidChineseInputKeyQwerty(aKey) || aKey
-                        ==EStdKeySpace) //seperator
-                    {
-                    ptiengine->AppendKeyPress((TPtiKey)aKey);
-                    SetInputPaneToneMark();
-                    if (ptiengine->GetPhoneticSpelling(1).Length() == 1)
-                        {
-                        iOwner->FepMan()->UpdateCbaL(R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL);
-                        }
-                    inputPane->SetFlag(MAknFepUICtrlInputPane::EPhoneticChanged);
-                    RefreshUI();
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                    }
-                inputPane->GetText(currentText);
-                spellingLen = currentText.Length();
-                if ( spellingLen > 1 )
-                    {
-                    popup->SetPreStateIsPredictive( EFalse );
-                    }
-                }
-            else if ( popup->GetPreStateIsPredictive() && 0 == spellingLen)  //long press fn mode character should inputted
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                popup->SetPreStateIsPredictive( EFalse );
-
-                TBuf<KFnMappedCharacters> allFnMappedCharacters;
-                ptiengine->MappingDataForKey( (TPtiKey)originalKey,
-                    allFnMappedCharacters, EPtiCaseFnLower );
-                text.Set( allFnMappedCharacters );
-                if ( text.Length( ) > 0 )
-                    {
-                    TBuf<1> chr;
-                    chr.Append( text[0] );
-                    iOwner->FepMan()->NewCharacterL( chr );
-                    iOwner->FepMan()->CommitInlineEditL();
-                    ptiengine->ClearCurrentWord();
-                    ret = ETrue;
-                    }
-                }
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyZhuyinPhrase::KeyTimerExpired
-// 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyZhuyinPhrase::KeyTimerExpired()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlInputPane* inputPane = uiContainer->InputPane();
-    
-    // set container's position
-    TPoint baseLine = TPoint(0,0);
-    TInt height = 0;
-    TInt ascent = 0;
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if (ret == KErrNone)
-        {
-        uiContainer->SetContainerPosition(baseLine, height);    
-        }
-    TPtrC ptr = ptiengine->GetPhoneticSpelling(1);
-    inputPane->SetText(ptr);
-    TBuf<KInputPaneLength> currentText;
-    inputPane->GetText(currentText);
-    if (ptr.Length() < currentText.Length())
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryHalfQwertyZhuyinPhrase::UpdateIndicator
-// updata the indicator
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryHalfQwertyZhuyinPhrase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    
-    if (candidatePane->IsFirstPage())
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(EFalse);    
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows(ETrue);    
-        }
-    if (candidatePane->IsLastPage())
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(EFalse);     
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows(ETrue);      
-        }
-
-    uiContainer->CandidatePane()->ShowLeftScrollArrows(EFalse);
-    uiContainer->CandidatePane()->ShowRightScrollArrows(EFalse);   
-    }
-
-//End Of File
--- a/fep/aknfep/src/aknfepuiinputstateentrypinyinphrasecreation.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,552 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryPinyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiUserDicEntry.h>
-
-#include <PtiDefs.h>                            //keys
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <aknnotewrappers.h>
-
-#include "AknFepPanic.h"
-#include "aknfepuiinputstateentrypinyinphrasecreation.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"    //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepManager.h"
-
-const TInt KMaxPhraseCreationCount = 7;
-
-// ---------------------------------------------------------
-// C++ construct.
-// ---------------------------------------------------------
-//
-TAknFepInputStateEntryPinyinPhraseCreation::TAknFepInputStateEntryPinyinPhraseCreation(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStatePinyinPhraseCreationBase( aOwner, aUIContainer)
-    {
-    iState = EKeySequenceEdit;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutPhraseCreation );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-    uiContainer->PinyinPopupWindow()->SetPhraseCreationEditingState( EFalse );
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    if ( uiContainer->PinyinPopupWindow()->GetFromEditToSpellingFlag() )
-        {
-        uiContainer->PinyinPopupWindow()->SetFromEditToSpellingFlag();
-        TInt validCount = uiContainer-> 
-            PinyinPopupWindow()->InEffectKeystrokeArray()->Count();
-        uiContainer->EditPaneWindow()->SetCursorIndexOfKeystroke( validCount );
-        ShowInfo();        
-        uiContainer->PinyinPopupWindow()->SetNoneHighlighted();
-        uiContainer->EditPaneWindow()->ActiveCursor();
-        uiContainer->EditPaneWindow()->EnableCursor();
-        }
-    else
-        {
-        ImplicityShowInfo( ETrue );    
-        }
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    ChangeCba();
-    }
-
-// ---------------------------------------------------------
-// HandleKeyL
-// ---------------------------------------------------------
-// 
-TBool TAknFepInputStateEntryPinyinPhraseCreation::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* inEffectKeystrokeArray = popup->InEffectKeystrokeArray();
-    CDesCArrayFlat* showKeystrokeArray = popup->ShowKeystrokeArray();
-   
-    switch( aKey )
-        {
-        case EKeyBackspace:
-            {
-            TBool state = ETrue;
-            if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                popup->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                HandleKeyBackspace( aLength );
-                }
-            break;
-            }
-        case EKeyRightArrow:
-            if ( !IsMoveCursor() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                MoveCursorToRight();
-                }
-            break;
-        case EKeyLeftArrow:
-            if ( !IsMoveCursor() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                MoveCursorToLeft();
-                }
-            break;
-        case EKeyOK:
-        case EKeyCBA1:
-            if ( !( popup->IsChangeStatet() && aLength == ELongKeyPress ) )
-                {
-                popup->SetChangeState( EFalse );
-                HandleKeyOKAndKeyCBA1L();
-                }
-           break;
-        case EKeyCBA2:
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-        case EKeyDownArrow:
-            if ( ( 0 == showKeystrokeArray->Count() ) ||
-                ( 0 == inEffectKeystrokeArray->Count() ) )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                popup->SetChangeState( ETrue );
-                popup->SetFromEditToSpellingFlag( ETrue );
-                iOwner->ChangeState( ESpellingSelection );
-                }
-            break;
-        case EKeyUpArrow:
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            break;
-        default:
-            if ( EShortKeyPress == aLength )
-                {
-                HandleOthersKey( aKey );
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Init the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::ImplicityShowInfo( 
-                                                   TBool aGetScreenCoordinates )
-    {
-    TRAP_IGNORE( ImplicityShowInfoL( aGetScreenCoordinates ) );
-    }
-
-// ---------------------------------------------------------
-// Init the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::ImplicityShowInfoL( 
-                                                   TBool aGetScreenCoordinates )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt showKeystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    // get cursor position
-    TPoint baseLine = TPoint( 0, 0 );
-    TInt height = 0;
-    TInt ascent = 0;
-    TBool validChange = EFalse;
-    TBool isSpellingValid = EFalse;
-    if ( aGetScreenCoordinates )
-        {
-        iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent);
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-    if ( popup->GetPhraseCreationEditingState() )
-        {
-        isSpellingValid = GetValidKeystroke();
-        }    
-    else if ( popup->GetPhraseCreationState() )
-        {
-        isSpellingValid = GetValidKeystroke();
-        if ( 0 == chineseCount )
-            {
-            editPane->SetCursorIndexOfKeystroke( showKeystrokeCount );
-            }
-        else
-            {
-            editPane->SetCursorIndexOfKeystroke( 0 );
-            }
-        
-        }
-    
-    if ( !isSpellingValid )
-        {
-        UIContainer()->SetControlInVisible( EFalse );
-        }
-    
-    validChange = popup->GetValidKeystrokeChange();
-    
-    ShowInfo();
-    SetWarningColor();
-    editPane->ActiveCursor();
-    if ( ( popup->GetPhraseCreationState() ) || 
-        ( popup->GetPhraseCreationEditingState() ) )
-        {
-        if ( validChange || 
-            ( 0 != popup->CurrentPageStartIndex() ) )
-            {
-            popup->SetPhraseCreationEditingState( EFalse );
-            popup->SetPhraseCreationState( EFalse );
-            RefreshUI();
-            }
-        else
-            {
-            if ( 0 != popup->CurrentSelection() )
-                {
-                RefreshCandidate();
-                }
-            }
-        }
-    else
-        {
-        if ( validChange )
-            {
-            RefreshUI( popup->CurrentSelection() );
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// EKeyBackspace
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::HandleKeyBackspace( TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-
-    TInt validKeystrokeCount = popup->InEffectKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    TInt cursorOfkeystrokeIndex = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( 0 == cursorOfkeystrokeIndex )
-        {
-        if ( !TryCloseUI( aLength ) )
-            {
-            if ( ( 0 == chineseCount ) && ( 0 != validKeystrokeCount ) )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                if ( ChineseRevertKeystroke() )
-                    {
-                    ClearDeliberateSelection();
-                    popup->SetPhraseCreationEditingState( ETrue );
-                    ImplicityShowInfo();
-                    ChangeCba();
-                    }
-                else
-                    {
-                    iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                    }               
-                }
-            }        
-        }
-    else
-        {
-        if ( 1 == cursorOfkeystrokeIndex )
-            {
-            editPane->Reset();
-            editPane->SetCursorIndexOfKeystroke( 1 );
-            }
-        //delete the current keystroke
-        if ( DeleteCurrentKeystroke() )
-            {
-            if ( !TryCloseUI( aLength ) )
-                {
-                ClearDeliberateSelection();
-                popup->SetPhraseCreationEditingState( ETrue );
-                ImplicityShowInfo();
-                ChangeCba();
-                }
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }            
-        }  
-    }
-
-// ---------------------------------------------------------
-// EKeyOK And EKeyCBA1L.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::HandleKeyOKAndKeyCBA1L()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    TInt validKeystrokeCount = popup->InEffectKeystrokeArray()->Count();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    CDesCArrayFlat* chinese = popup->ChooseChineseCharacterArray();
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    
-    if ( ( chinese->Count() >= 2 ) && ( 0 == keystrokeCount ) )
-        {
-        //commit the chinese character.
-        MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-        for (TInt i = 0; i < chinese->Count(); ++i )
-            {
-            phraseCreated.Append( chinese->MdcaPoint( i ) );
-            }
-        AddPhraseToDB( phraseCreated );
-        fepMan->PinyinPhraseCreation( EFalse );
-        fepMan->NewTextL( phraseCreated );
-        fepMan->CommitInlineEditL();
-        iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-        }
-    else if ( 0 != validKeystrokeCount )
-        {
-        popup->SetChangeState( ETrue );
-        popup->SetFromEditToSpellingFlag( ETrue );
-        iOwner->ChangeState( ESpellingSelection );
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        }
-    }
-
-// ---------------------------------------------------------
-// others key input.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::HandleOthersKey( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    iOwner->FepMan()->SetCcpuFlag( CAknFepManager::ECcpuStateIgnoreStarUp );
-    if ( iOwner->IsValidChineseInputKey( aKey ) )
-        {
-        if ( AddKeystroke( aKey ) )
-            {
-            ClearDeliberateSelection();
-            popup->SetPhraseCreationEditingState( ETrue );
-            ImplicityShowInfo();
-            ChangeCba();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        }
-    else if ( aKey == EPtiKeyStar ) // we increment the tone mark.
-        {
-        if ( AddToneMark() )
-            {
-            ClearDeliberateSelection();
-            popup->SetPhraseCreationEditingState( ETrue );
-            ImplicityShowInfo();
-            ChangeCba();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }            
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        }
-    }
-
-// ---------------------------------------------------------
-// move cursor to left.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryPinyinPhraseCreation::IsMoveCursor()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    if ( ( 0 == keystrokeCount ) || ( KMaxPhraseCreationCount == chineseCount ) )
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// move cursor to left.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::MoveCursorToLeft()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt indexOfKeystroke = editPane->GetCursorIndexOfKeystroke();
-
-    if ( 0 == indexOfKeystroke )
-        {
-        editPane->SetCursorIndexOfKeystroke( keystrokeCount );
-        // for fix bug when press left, spelling pane will flash
-        // ImplicityShowInfo();
-        ShowInfo();
-        SetWarningColor();
-        }
-    else if ( 1 == indexOfKeystroke )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        // for fix bug when press left, spelling pane will flash
-        // ImplicityShowInfo();
-        ShowInfo();
-        SetWarningColor();
-        }
-    else
-        {
-        editPane->SetCursorIndexOfKeystroke( indexOfKeystroke - 1 );
-        editPane->MoveCursorLeft();
-        }
-    }
-
-
-// ---------------------------------------------------------
-// move cursor to left.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::MoveCursorToRight()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt indexOfKeystroke = editPane->GetCursorIndexOfKeystroke();
-
-    if ( indexOfKeystroke == keystrokeCount )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        // for fix bug when press right, spelling pane will flash
-        // ImplicityShowInfo();
-        ShowInfo();
-        SetWarningColor();
-        }
-    else
-        {
-        editPane->SetCursorIndexOfKeystroke( indexOfKeystroke + 1 );
-        editPane->MoveCursorRight();
-        }
-    }
-
-// ---------------------------------------------------------
-// Initialize State.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryPinyinPhraseCreation::InitializeState()
-    {
-    ChangeCba();
-    }
-
-// ---------------------------------------------------------
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryPinyinPhraseCreation::AddPhraseToDB(
-    const TDesC& aPhraseAdd )
-    {
-    TInt retCode;
-    TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
-    //Add the phrase to the DB by PTI Engine
-    retCode = iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    if ( KErrNone != retCode )
-        {
-        return EFalse;
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Try to close UI.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryPinyinPhraseCreation::TryCloseUI( TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TInt keystrokeCount = popup->ShowKeystrokeArray()->Count();
-    TInt chineseCount = popup->ChooseChineseCharacterArray()->Count();
-    
-    if ( ( 0 == chineseCount ) && ( 0 == keystrokeCount ) )
-        {
-        TRAP_IGNORE( iOwner->FepMan()->TryCloseUiL() ); //no more keys, close the UI.
-        if ( aLength == ELongKeyPress )
-            {
-            iOwner->FepMan()->SetLongClearAfterCloseUI( ETrue );
-            }
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuiinputstateentryzhuyinphrasecreation.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,594 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryZhuyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <PtiUserDicEntry.h>
-
-#include <PtiDefs.h>                            //keys
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <aknnotewrappers.h>
-
-#include "AknFepPanic.h"
-#include "aknfepuiinputstateentryzhuyinphrasecreation.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlPinyinPopup.h"		//Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepManager.h"
-#include "aknfepzhuyinkeyhandlerinterface.h"
-#include "AknFepZhuyinAnalyser.h"
-#include "aknfepzhuyinconvertion.h"
-
-const TInt KMaxPhraseCount = 50;
-
-const TInt KMaxKeystrokeCount = 100;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KStateFromKeyDown = 0;
-const TInt KStateAuto = 1;
-// it means "the max phrase's length is seven"
-_LIT( KDelimiter, "\x002E" );
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-TAknFepInputStateEntryZhuyinPhraseCreation::TAknFepInputStateEntryZhuyinPhraseCreation(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateZhuyinPhraseCreationBase( aOwner, aUIContainer)
-    {
-    iState = EZhuyinSequenceEdit;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutKeystroke );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-
-    iOwner->PtiEngine()->SetInputMode( EPtiEngineZhuyinByPhrase );
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    uiContainer->EditPaneWindow()->ActiveCursor(); 
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    UpdateEEPContent();
-    RefreshUI();
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    UpdateIndicator();
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryZhuyinPhraseCreation::HandleKeyL
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::HandleKeyL( 
-                                                     TInt aKey,
-                                                     TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-
-    CDesCArrayFlat* keystrokeArray = popup->ZhuyinSymbols();
-    CDesCArrayFlat* ChineseArray = popup->ChineseCharsDisped();
-
-    CDesCArrayFlat* candidateArray = 
-        uiContainer->CandidatePane()->CandidateArray();
-    TBuf<1> keyBuf;
-    TBuf<1> keyShow;
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    
-    if ( aKey == EKeyBackspace )
-        {
-        DeleteZhuyinSymbolOrChinese();
-        UpdateEEPContent();
-        RefreshUI();
-        if ( AutoChangeState() )
-            {
-            popup->SetChangeState( ETrue );
-            iOwner->ZhuyinKeyHandler()->SetState( KStateAuto );
-            iOwner->ZhuyinKeyHandler()->SetStatusChgFlag(MZhuyinKeyHandler::EInit);
-            ChangeCbaL();
-            iOwner->ChangeState( EEntry );
-            return ETrue;
-            }
-        else
-            {
-            ChangeCbaL();
-            }
-        
-        if ( keystrokeArray->Count() == 0
-            && ChineseArray->Count() == 0 )
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            if (aLength == ELongKeyPress)
-                {
-                iOwner->FepMan()->SetLongClearAfterCloseUI(ETrue);
-                }
-            }
-        
-        if ( 0 == ChineseArray->Count() )
-            {
-            iOwner->FepMan()->PhraseCreation( EFalse );
-            }
-        }
-    else if ( aKey == EKeyRightArrow )
-        {
-        if ( KMaxPhraseCreationCount == ChineseArray->Count() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            }
-        else if ( 0 == keystrokeArray->Count() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            }
-        else
-            {
-            if( !MoveIndexOfKeystrokeRight() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-                }
-            else
-                {
-                iOwner->ZhuyinKeyHandler()->SetState( KStateFromKeyDown );
-                }
-            }
-        }
-    else if ( aKey == EKeyLeftArrow )
-        {
-        if ( KMaxPhraseCreationCount == ChineseArray->Count() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        else if ( 0 == keystrokeArray->Count() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        else
-            {
-            if ( !MoveIndexOfKeystrokeLeft() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                iOwner->ZhuyinKeyHandler()->SetState( KStateFromKeyDown );
-                }
-            }
-        }
-    else if ( aKey == EKeyOK || aKey == EKeyCBA1 )
-        {
-        if ( ( ChineseArray->Count() >= 2 ) && ( 0
-            == keystrokeArray->Count() ) )
-            {
-            //commit the chinese character.
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            candidateArray->Reset();
-            for (TInt i = 0; i < ChineseArray->Count(); ++i )
-                {
-                phraseCreated.Append( ChineseArray->MdcaPoint( i ) );
-                }
-            candidateArray->AppendL( ChineseArray->MdcaPoint( 
-                ChineseArray->Count() - 1 ) );
-            uiContainer->CandidatePane()->SelectFirst();
-            uiContainer->CandidatePane()->SetCandidateBuffer( ChineseArray->MdcaPoint( 
-                ChineseArray->Count() - 1 ) );
-            AddPhraseToDB( phraseCreated );
-            fepMan->NewTextL( phraseCreated );
-            fepMan->CommitInlineEditL();
-            iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-            }
-        else if ( ( 1 == ChineseArray->Count() ) && 
-            ( 0 == keystrokeArray->Count() ) )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        else if ( !CheckHighLightL() )
-            {
-            popup->SetChangeState( ETrue );
-            iOwner->ZhuyinKeyHandler()->SetState( KStateFromKeyDown );
-            iOwner->ZhuyinKeyHandler()->Reset();
-            iOwner->ChangeState( EEntry );
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        }
-    else if ( aKey == EKeyDownArrow )
-        {
-        if ( !CheckHighLightL() )
-            {
-            if ( 0 == keystrokeArray->Count() )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                popup->SetChangeState( ETrue );
-                iOwner->ZhuyinKeyHandler()->SetState( KStateFromKeyDown );
-                iOwner->ZhuyinKeyHandler()->SetStatusChgFlag(
-                    MZhuyinKeyHandler::EFromSpellingEditingToEntry);
-                iOwner->ZhuyinKeyHandler()->Reset();
-                iOwner->ChangeState( EEntry );
-                }
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        }
-    else if ( aKey == EKeyUpArrow )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        }
-    else if ( aLength == EShortKeyPress ) // don't want repeats on these keys
-        {
-        iOwner->FepMan()->SetCcpuFlag( CAknFepManager::ECcpuStateIgnoreStarUp );
-        if ( iOwner->IsValidChineseInputKey( aKey ) )
-            {
-            if ( AddKeystrokeL( aKey ) )
-                {
-                UpdateEEPContent();
-                if ( AutoChangeState() )
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ZhuyinKeyHandler()->SetState( KStateAuto );
-                    RefreshUI();
-                    ChangeCbaL();
-                    iOwner->ChangeState( EEntry );
-                    }
-                else
-                    {
-                    RefreshUI();
-                    ChangeCbaL();                
-                    }
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            }
-        else if ( aKey == EPtiKeyStar )
-            {
-            if ( AddToneMarkL() )
-                {
-                UpdateEEPContent();
-                if ( AutoChangeState() )
-                    {
-                    popup->SetChangeState( ETrue );
-                    iOwner->ZhuyinKeyHandler()->SetState( KStateAuto );
-                    iOwner->ZhuyinKeyHandler()->Reset();
-                    ChangeCbaL();
-                    iOwner->ChangeState( EEntry );
-                    }
-                else
-                    {
-                    RefreshUI();
-                    ChangeCbaL();                
-                    }
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            }
-        else if ( aKey == EKeyCBA2 )
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-        else
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// set high light
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryZhuyinPhraseCreation::SetHighLight()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt symbolsShowCount = popup->GetEEPContent().Length();
-    TInt chineseCount = popup->ChineseCharsDisped()->Count();
-    
-    editPane->SetHighlight( chineseCount, symbolsShowCount );
-    }
-
-// ---------------------------------------------------------
-// set high light
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryZhuyinPhraseCreation::SetHighLightMoreThanMax()
-    {
-    TInt begPos = BegPosOfMoreThanSeven();
-
-    if ( begPos )
-        {
-        HighlightMoreThanSeven( begPos );
-        }
-    }
-
-// ---------------------------------------------------------
-// move index of the keystroke left.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::MoveIndexOfKeystrokeLeft()
-    {
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* zhuyinSymbol = popup->ZhuyinSymbols();
-    CDesCArrayFlat* chineseArray = popup->ChineseCharsDisped();
-    TInt currentIndex = editPane->GetCursorIndexOfKeystroke();
-    TInt cursorPosition = editPane->GetCursor();
-
-    TBool ret = EFalse;
-    TBuf<KMaxKeystrokeCount> buf;
-    TBuf<KMaxKeystrokeCount> symbolBuf;
-
-    if ( cursorPosition < chineseArray->Count() )
-        {
-        return EFalse;
-        }
-    
-    for ( TInt i = 0; i < zhuyinSymbol->Count(); ++i )
-        {
-        symbolBuf.Append( zhuyinSymbol->MdcaPoint( i ) );
-        }
-    buf.Append( popup->GetEEPContent() );
-    
-    if ( chineseArray->Count() == cursorPosition )
-        {
-        TRAP_IGNORE( ret = CheckHighLightL() );
-        if ( ret )
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, buf.Length(),
-                chineseArray->Count(), symbolBuf, 
-                zhuyinSymbol->Count(), ETrue );
-            SetHighLight();
-            }
-        else
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, buf.Length(),
-                chineseArray->Count(), symbolBuf, 
-                zhuyinSymbol->Count() );
-            SetHighLightMoreThanMax();
-            }
-        editPane->SetCursorIndexOfKeystroke( zhuyinSymbol->Count() );
-        return ETrue;
-        }
-
-    if ( 1 == cursorPosition - chineseArray->Count() )
-        {
-        TRAP_IGNORE( ret = CheckHighLightL() );
-        if ( ret )
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, chineseArray->Count(), 
-                chineseArray->Count(), symbolBuf, zhuyinSymbol->Count(), ETrue );
-            SetHighLight();
-            }
-        else
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, chineseArray->Count(), 
-                chineseArray->Count(), symbolBuf, zhuyinSymbol->Count() );
-            SetHighLightMoreThanMax();
-            }
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        return ETrue;
-        }
-    
-    
-    if ( 0 == buf.Mid( 
-        (cursorPosition - 2 ), 1 ).Compare( KDelimiter ) )
-        {
-        editPane->MoveCursorLeft( 2 );
-        editPane->SetCursorIndexOfKeystroke( currentIndex - 1 );
-        }
-    else
-        {
-        editPane->MoveCursorLeft();
-        editPane->SetCursorIndexOfKeystroke( currentIndex - 1 );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// move index of the keystroke right.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::MoveIndexOfKeystrokeRight()
-    {
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* zhuyinSymbol = popup->ZhuyinSymbols();
-    CDesCArrayFlat* chineseArray = popup->ChineseCharsDisped();
-    TInt currentIndex = editPane->GetCursorIndexOfKeystroke();
-    TInt cursorPosition = editPane->GetCursor();
-
-    TBool ret = EFalse;
-    TBuf<KMaxKeystrokeCount> buf;
-    TBuf<KMaxKeystrokeCount> symbolBuf;
-    
-    for ( TInt i = 0; i < zhuyinSymbol->Count(); ++i )
-        {
-        symbolBuf.Append( zhuyinSymbol->MdcaPoint( i ) );
-        }
-    buf.Append( popup->GetEEPContent() );
-    
-    if ( buf.Length() ==  cursorPosition )
-        {
-        TRAP_IGNORE( ret = CheckHighLightL() );
-        if ( ret )
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, chineseArray->Count(), 
-                chineseArray->Count(), symbolBuf, 0, ETrue );
-            SetHighLight();
-            }
-        else
-            {
-            editPane->Reset();
-            editPane->SetTextForZhuyin( buf, chineseArray->Count(), 
-                chineseArray->Count(), symbolBuf, 0 );
-            SetHighLightMoreThanMax();
-            }
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        return ETrue;
-        }
-    
-    if ( chineseArray->Count() == cursorPosition )
-        {
-        editPane->MoveCursorRight();
-        editPane->SetCursorIndexOfKeystroke( 1 );
-        return ETrue;
-        }
-    
-    if ( buf.Length() == cursorPosition + 1 )
-        {
-        editPane->MoveCursorRight();
-        editPane->SetCursorIndexOfKeystroke( zhuyinSymbol->Count() );
-        return ETrue;
-        }
-    
-    if ( 0 == buf.Mid( ( cursorPosition ), 1 ).Compare( KDelimiter ) )
-        {
-        editPane->MoveCursorRight( 2 );
-        editPane->SetCursorIndexOfKeystroke( currentIndex + 1 );
-        }
-    else
-        {
-        editPane->MoveCursorRight();
-        editPane->SetCursorIndexOfKeystroke( currentIndex + 1 );
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Initialize State.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEntryZhuyinPhraseCreation::InitializeState()
-    {
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-// ---------------------------------------------------------
-// check auto change state.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::AutoChangeState()
-    {
-    TInt keystrokeCount = 
-        UIContainer()->PinyinPopupWindow()->ZhuyinSymbols()->Count();
-    TBool ret = EFalse;
-    
-    TRAP_IGNORE( ret = CheckHighLightL() );
-
-    if ( ( !ret ) &&
-        ( KStateFromKeyDown != iOwner->ZhuyinKeyHandler()->GetState() ) &&
-        ( 0 != keystrokeCount ) )
-        {
-        return ETrue;
-        }    
-    
-    return EFalse;
-    }
-
-// ---------------------------------------------------------
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::AddPhraseToDB( const TDesC& aPhraseAdd )
-    {
-    TInt retCode;
-    TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
-    //Add the phrase to the DB by PTI Engine
-    retCode = iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    if ( KErrNone != retCode )
-        {
-        return EFalse;
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Check high light.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEntryZhuyinPhraseCreation::CheckHighLightL()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* zhuyinSymbol = popup->ZhuyinSymbols();
-    CDesCArrayFlat* candidateArray = 
-        UIContainer()->CandidatePane()->CandidateArray();
-    TBuf<KMaxKeystrokeCount> inputBuf;
-    
-    inputBuf.Zero();
-    
-    if ( 0 == candidateArray->Count() )
-        {
-        return ETrue;
-        }
-    
-    for ( TInt i = 0; i < zhuyinSymbol->Count(); ++i )
-        {
-        inputBuf.Append( zhuyinSymbol->MdcaPoint( i ) );
-        }
-    
-    if ( 0 == inputBuf.Length() )
-        {
-        return EFalse;
-        }
-    
-    if ( !iOwner->ZhuyinAnalyser()->AnalyzeL( inputBuf ) )
-        {
-        return ETrue;
-        }
-    
-    return EFalse;
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuiinputstateindicphoneticqwerty.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,210 +0,0 @@
-/*
-* Copyright (c) 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 TAknFepInputStateIndicPhoneticQwerty methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepuiinputstateindicphoneticqwerty.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-#include "AknFepPanic.h"
-
-#include <e32err.h>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <PtiKeyMappings.h>
-#include <CentralRepository.h> 
-#include <Languages.hrh>
-
-TAknFepInputStateIndicPhoneticQwerty::
-TAknFepInputStateIndicPhoneticQwerty(MAknFepUIManagerStateInterface* aOwner)
-    :TAknFepInputStateQwerty(aOwner)
-    {
-    iState = EInitial;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    ptiengine->ClearCurrentWord();
-    TRAP_IGNORE(ptiengine->ActivateLanguageL(KLangHindiPhonetic,
-                                             EPtiEngineInputModeIndicPhoneticQwerty));//KLangHindiPhonetic
-    ptiengine->SetCase(EPtiCaseLower);
-    }
-
-TBool TAknFepInputStateIndicPhoneticQwerty::HandleKeyL(TInt aKey, TKeyPressLength aLength)
-    {
-    TBool ret = ETrue;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    __ASSERT_DEBUG(ptiengine != NULL,AknFepPanic(EAknFepPanicNoValidPtiEngine));
-    
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    __ASSERT_DEBUG(fepMan != NULL,AknFepPanic(EAknFepPanicNoValidFepManager));
-         
-	if(!IsQwertyKey(aKey)|| 
-		fepMan->IsOnlyNumericPermitted()||
-		fepMan->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-		{
-		fepMan->CommitInlineEditL();
-		ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );	
-		ret = TAknFepInputStateQwerty::HandleKeyL(aKey, aLength);
-		}
-	else if (aKey == EPtiKeyQwertySpace ||aKey == EStdKeyEnter)
-		{    
-		TInt languageCode = 0;
-    	MPtiLanguage* curlang = ptiengine->CurrentLanguage();
-	    if (curlang)
-	        {
-	        languageCode = curlang->LanguageCode();
-	        }
-
-		// Space clears Explicite halant for North Indian Languages.
-		if(IsToRemoveHalantForLanguage(languageCode))
-			{
-			RemoveHalantL(TLanguage(languageCode));
-			fepMan->CommitInlineEditL();
-			}
-		ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );	
-		ret = EFalse;
-		}
-	else
-		{
-		TBool isCharacter = ETrue;
-	    if (!iData)
-	        {
-	        isCharacter = IsCharacterKey(aKey);
-	        }
-	        
-		HandleCaseChange(aKey,isCharacter);
-	    iData = aKey;
-
-	    TBool keyEventHandledByFep = ETrue;
-	    
-		TPhoneticArg arg;
-	    TBuf<CAknFepManager::EMaximumFepWordLength> destinationbuf;
-	    destinationbuf.Zero();               
-	    
-		TInt errorcode = 0;   
-	    
-	    if(!((aKey == EPtiKeyStar) || 
-	    	(aKey == EPtiKeyQwerty8 && fepMan->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode)) || 
-	    	(aKey == EPtiKeyQwertySpace)))
-	    	{
-	        TPtrC string = ptiengine->AppendKeyPress((TPtiKey)aKey);
-	        arg.iChar = string[0];
-	        arg.iDest = & destinationbuf;
-	        errorcode = ptiengine->HandleCommandL(EPtiCommandGetPhoneticText,REINTERPRET_CAST( TAny*, &arg));
-	        }
-	    else
-	        {
-	    	errorcode = ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );	
-	    	}
-	    	
-	    switch(errorcode)
-	    	{
-	    	case KErrNone:
-	    		{
-	    		switch(arg.iState)
-	    			{
-	    			case EIndicSyllableStateInsideSyllable:
-	    				{            				
-	        			if (destinationbuf.Length())
-				            {
-				            fepMan->NewCharacterSequenceL(destinationbuf,
-				                                          EIndicInputResponsePhoneticQwertyText);
-				            }
-	    				}
-	    			break;
-	    			case EIndicSyllableStateSyllableBroken:
-	    				{
-	  					fepMan->CommitInlineEditL();
-	    				if (destinationbuf.Length())
-				            {
-				            fepMan->NewCharacterSequenceL(destinationbuf,
-				                                          EIndicInputResponsePhoneticQwertyText);
-				            }	
-	    				}
-	    			break;
-	    			default:
-	    			break;
-	    			}
-	    		}
-	    	break;
-	    	case KErrOverflow:
-	    		{
-				fepMan->NewCharacterSequenceL(destinationbuf,EIndicInputResponsePhoneticQwertyText);    		
-	    		fepMan->CommitInlineEditL();
-	        	ptiengine->HandleCommandL(EPtiCommandClearPhoneticBuffer,NULL);
-	    		}
-	    	break;
-	    	default:
-	    	break;
-	    	}
-	    ptiengine->ClearCurrentWord();
-	    CAknFepCaseManager* caseMan = iOwner->CaseMan(); 
-	    iOwner->CaseMan()->UpdateCase(ENullNaviEvent);
-		}	
-
-    return ret;
-    }
-    
-TBool TAknFepInputStateIndicPhoneticQwerty::IsQwertyKey(const TInt aKey)
-    {
-    TBool response = EFalse;
-    if ( (aKey >= EPtiKeyQwertyA && aKey <= EPtiKeyQwertyZ)||
-        (aKey == EPtiKeyQwertyFullstop) ||
-        (aKey == EPtiKeyStar || 
-        (aKey == EPtiKeyQwerty8 && 
-        iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyShiftMode))) ||
-        aKey == EPtiKeyQwertySpace || 
-        aKey == EStdKeyEnter)
-        {
-        response = ETrue;
-        }
-    return response;
-    }
-    
-void TAknFepInputStateIndicPhoneticQwerty::RemoveHalantL(TLanguage aLanguage)
-	{
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    if(TAknFepUiIndicInputManager::IsCharVirama(fepMan->PreviousChar(), aLanguage))
-    	{
-    	fepMan->RemovePreviousCharacterL();	
-    	}
-	}
-	
-TBool TAknFepInputStateIndicPhoneticQwerty::IsToRemoveHalantForLanguage(TInt aLanguage)
-	{
-	TBool ret = EFalse;
-	switch(aLanguage)
-		{
-		case KLangHindiPhonetic:
-			ret = ETrue;
-		break;
-		}
-	return ret;	
-	}
-	
-	
-// End of file
--- a/fep/aknfep/src/aknfepuiinputstateinitialindicphoneticmultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,467 +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 TAknFepInputStateInitialIndicPhoneticMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepuiinputstateinitialindicphoneticmultitap.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepUIManagerWestern.h"
-#include "AknFepUiIndicEnums.h"
-#include "AknFepCaseManager.h"
-#include "AknFepUiIndicInputManager.h"
-
-#include <uikon.hrh>
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <aknsctdialog.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <EikEnv.h>
-#include <Aknutils.h>
-#define PHONETIC_SEPARATOR 0x2e
-
-const TUint KSpaceChar = 0x0020;
-const TUint KQuestionMark = 0x003F;
-
-#define PTI_CLEAR_CURRENTWORD( A, B ) \
-		( A )->ClearCurrentWord(); \
-		( B ) = ETrue; \
-
-const TText KAknFEPLineFeedSymbol = 0x21B2;
-const TText KAknFEPMirroredLineFeedSymbol = 0x21B3;
-	
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPhoneticMultitap::TAknFepInputStateInitialIndicPhoneticMultitap
-
-// C++ default constructor can NOT contain any code, that
-// might leave or if it is absolutely necessary then MUST be trapped.
-// -----------------------------------------------------------------------------
-
-TAknFepInputStateInitialIndicPhoneticMultitap::
-TAknFepInputStateInitialIndicPhoneticMultitap( MAknFepUIManagerStateInterface* aOwner,
-																			TInt aLanguage )
-																			:TAknFepInputStateInitialMultitapBase( aOwner )
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    iIsStarKeyPressed = EFalse;
-    iIndicLanguage = TLanguage(aLanguage);
-    iIndicPhoneticBuffer.Zero();
-    TRAP_IGNORE( ptiengine->ActivateLanguageL(KLangHindiPhonetic,
-                 EPtiEngineInputModeIndicPhoneticMultitap))
-    ptiengine->SetCase( EPtiCaseLower );
-    iPreviousCommittedChar = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPhoneticMultitap::HandleKeyL
-
-// Handles the logic of Indic multitap input. This function first checks the validity
-// of the inputed text and then enters it.
-// -----------------------------------------------------------------------------
-
-TBool TAknFepInputStateInitialIndicPhoneticMultitap::HandleKeyL( TInt aKey, 
-                                                                 TKeyPressLength aLength )
-	{
-	TBool                      result       	= ETrue;
-	MAknFepManagerUIInterface* fepMan       	= iOwner->FepMan();
-	CPtiEngine* 			   ptiengine 		= iOwner->PtiEngine();
-	
-	if(aKey == EKeyBackspace)
-		{
-		iIndicPhoneticBuffer.Zero();
-		iPhoneticLatinChar = 0;	
-    	iPreviousCommittedChar = 0;						
-		}
-	else if(fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches) 
-           && aKey != EPtiKey0 && aLength != ELongKeyPress)
-		{
-		//no matches, so just play tone
-        fepMan->PlaySound(EAvkonSIDConfirmationTone);
-		}
-	else
-		{
-		if ( iData && ( iData != aKey ) && (!iIsStarKeyPressed ))
-	    	{
-	    	//iPrevCharacter = 
-	    	TransliterateFromLatinL();
-		    PTI_CLEAR_CURRENTWORD( ptiengine, iIsKeyTimerExpired )
-		    // = ;
-	   		}
-		iIsStarKeyPressed = EFalse;
-		if ( aLength == EShortKeyPress )
-			{
-		    if ( aKey == EPtiKeyStar ) // Overriding Key
-	            {
-		    	ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );	
-		    	iIsStarKeyPressed = ETrue;
-	    		}
-			else
-				{
-				TPtrC ptiText = ptiengine->AppendKeyPress( ( TPtiKey )aKey );
-				iPhoneticLatinChar = ptiText[0];
-				
-				if (IsToTransliterate(iPhoneticLatinChar) 
-				&& (!fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches)))
-			    	{
-			    	TBuf<CAknFepManager::EMaximumFepWordLength> buf;
-		            buf.Copy(iIndicPhoneticBuffer);
-		            buf.Append(ptiText);
-					fepMan->NewCharacterSequenceL(buf,EIndicInputResponsePhoneticMultitapText);
-			    	}
-				else if(!IsToTransliterate(iPhoneticLatinChar))
-					{
-					TChar prevcharacter(fepMan->PreviousChar());
-					
-					if((fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches)) && (KQuestionMark == prevcharacter))
-						{
-						fepMan->RemovePreviousCharacterL();		
-						fepMan->ClearFlag(CAknFepManager::EFlagNoMatches);	
-						ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );
-						}
-					iIndicPhoneticBuffer.Zero();
-					if(IsToTransliterate(prevcharacter) && prevcharacter != '0')
-						fepMan->CommitInlineEditL();	
-					fepMan->NewCharacterSequenceL(ptiText,EIndicInputResponseNone);
-					}
-				}
-			}
-	   	else
-	    	{
-	    	if(fepMan->PreviousChar() == KQuestionMark)
-				{
-				fepMan->RemovePreviousCharacterL();		
-				}
-			fepMan->ClearFlag(CAknFepManager::EFlagNoMatches);
-
-	        /* Long press of a Key */
-	        if ( aKey == EPtiKeyStar)
-		        {
-	        	
-	            /* Launch the SCT For Indic */
-	   			if( fepMan->EditorHasFreeSpace() )
-					{
-					if (fepMan->IsAbleToLaunchSCT() && !fepMan->EditSubmenuInUse())
-	        			{        			
-		            	fepMan->LaunchSpecialCharacterTableL();	
-		            	}
-					}
-			    }
-	        else
-		        {
-		        //commit the inline text
-		        fepMan->CommitInlineEditL();
-		        //Remove one character, to remove the Latin character
-		        //appended because of the short key press. This is 
-		        //because long key press results  in short key press 
-		        //and then long key press.
-		        fepMan->RemovePreviousCharacterL();
-		        //Reset the phonetic state in FEP. So, that any further 
-		        //phonetic conversion will start from fresh.
-		        iIndicPhoneticBuffer.SetLength(0);
-		        iPhoneticLatinChar = 0;	
-    	        iPreviousCommittedChar = 0;
-    	        
-		        ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );
-		        TUint prevchar = fepMan->PreviousChar(ETrue);
-	            if(!((aKey == EPtiKey1) && ((0x0031 == prevchar) || (0x0967 == prevchar)) ))
-			        {
-					TChar ch( aKey );
-			        TBuf<1> buf;
-			        buf.Append( ch );
-			        fepMan->NewCharacterSequenceL( buf, EIndicInputResponseNumber );
-					fepMan->CommitInlineEditL();			
-					PTI_CLEAR_CURRENTWORD( ptiengine, iIsKeyTimerExpired )				
-					}
-		        }
-	    	}
-	    iData = aKey;
-		}
-   //hindi phonetic changes
-   if(iPhoneticLatinChar.IsUpper())
-	{
-		fepMan->HandleIndicCaseL();
-	}
-    return( result );
-	}
-
-// -----------------------------------------------------------------------------
-// TAknFepInputStateInitialIndicPhoneticMultitap::KeyTimerExpired
-
-// Handles the logic of post keytimerexpired event. This function commits 
-// the inline editing text to the editor.
-// -----------------------------------------------------------------------------
-
-void TAknFepInputStateInitialIndicPhoneticMultitap::KeyTimerExpired()
-	{
-	TRAP_IGNORE(HandleKeyTimerExpiryL())
-	iData = 0;	
-	iOwner->PtiEngine()->ClearCurrentWord();
-	if((iPreviousCommittedChar = iOwner->FepMan()->PreviousChar()) == 0x002E)
-		iPreviousCommittedChar = iOwner->FepMan()->PreviousToPreviousChar(ETrue);
-	iIsKeyTimerExpired = ETrue;
-	}
-	
-void TAknFepInputStateInitialIndicPhoneticMultitap::HandleKeyTimerExpiryL()
-	{
-	CPtiEngine* ptiengine = iOwner->PtiEngine();
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();	
-	if ( !(fepMan->EditorHasFreeSpace() 
-       || fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction)))
-	    {
-	    return;
-	    }
-	if(iData && ( IsToTransliterate(iPhoneticLatinChar) &&  iData != EPtiKeyStar) 
-     && !fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches))
-		{
-		TransliterateFromLatinL();
-		}
-	else if ( !IsToTransliterate (iPhoneticLatinChar))
-        {
-		MPtiLanguage* ptilang = ptiengine->CurrentLanguage();
-	    TInt languageCode = (ptilang)? ptilang->LanguageCode() : 0;
-		// Space clears Explicite halant for North Indian Languages.
-		if(IsToRemoveHalantForLanguage(languageCode))
-			{
-			RemoveHalantL(TLanguage(languageCode));
-			}	
-		ptiengine->HandleCommandL(EPtiCommandBreakSyllable, NULL );
-		fepMan->CommitInlineEditL();
-		iIndicPhoneticBuffer.Zero();
-        }	
-	else
-		{
-		iOwner->FepMan()->CommitInlineEditL();
-    	iIndicPhoneticBuffer.Zero();
-		}	
-	}
-
-void TAknFepInputStateInitialIndicPhoneticMultitap :: TransliterateFromLatinL() 
-	{
-	TPhoneticArg arg;
-    TBuf<CAknFepManager::EMaximumFepWordLength> destinationbuf;
-    destinationbuf.Zero();               
-	TInt errorcode = 0; 
-	CPtiEngine* ptiengine = iOwner->PtiEngine();
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	MPtiLanguage* ptilang = iOwner->PtiEngine()->CurrentLanguage();
-    TInt languageCode = (ptilang)? ptilang->LanguageCode() : 0;
-	    
-	arg.iChar = iPhoneticLatinChar;
-	arg.iDest = & destinationbuf;
-	errorcode = ptiengine->HandleCommandL(EPtiCommandGetPhoneticText,REINTERPRET_CAST( TAny*, &arg));
-	AknTextUtils::LanguageSpecificNumberConversion(destinationbuf);
-	switch(errorcode)
-    	{
-    	case KErrNone:
-    		{
-    		if(arg.iState == EIndicSyllableStateSyllableBroken)
-    			{
-				if(iIndicPhoneticBuffer.Length())
-					{
-					fepMan->CommitInlineEditL(iIndicPhoneticBuffer, iIndicPhoneticBuffer.Length());
-					iPreviousCommittedChar = fepMan->PreviousChar(ETrue);
-					iIndicPhoneticBuffer.Zero();
-					}
-      			}
-
-			if (destinationbuf.Length())
-	            {
-	            	if(! ValidatePhoneticInputL(destinationbuf, TLanguage(languageCode)))
-	            		{
-	            		break;	
-	            		}
-	            	
-	            fepMan->NewCharacterSequenceL(destinationbuf,
-	                                          EIndicInputResponsePhoneticMultitapText);
-
-        		if(TAknFepUiIndicInputManager::IsCharOther(destinationbuf[0],
-        		     TLanguage(languageCode)) && 0x002E != destinationbuf[0])
-        			{
-        			fepMan->CommitInlineEditL();
-        			iIndicPhoneticBuffer.Zero();
-        			}
-				else
-					{
-        			iIndicPhoneticBuffer.Copy(destinationbuf);
-					}
-	            }
-    		}
-    	break;
-    	case KErrOverflow:
-    		{
-			fepMan->NewCharacterSequenceL(destinationbuf,EIndicInputResponsePhoneticMultitapText);    		
-    		fepMan->CommitInlineEditL();
-        	ptiengine->HandleCommandL(EPtiCommandClearPhoneticBuffer,NULL);
-    		}
-    	break;
-    	default:
-    	break;
-    	}
-    iPhoneticLatinChar = 0;	
-	}
-
-TBool TAknFepInputStateInitialIndicPhoneticMultitap::IsToRemoveHalantForLanguage(TInt aLanguage)
-	{
-	TBool ret = EFalse;
-	switch(aLanguage)
-		{
-		case KLangHindiPhonetic:
-			ret = ETrue;
-		break;
-		}
-	return ret;	
-	}
-	
-inline TBool TAknFepInputStateInitialIndicPhoneticMultitap::IsToTransliterate(TChar& aChar)
-	{
-	return !(KAknFEPLineFeedSymbol == aChar || KSpaceChar == aChar);
-	}
-	
-TBool TAknFepInputStateInitialIndicPhoneticMultitap::ValidatePhoneticInputL(const TDes& aBuf, 
-                                                                            TLanguage aLanguage)
-	{
-	TBool ret = ETrue;
-    TUint curChar = 0;
-    TUint prevChar=0;
-    TUint len=aBuf.Length();
-    TPtr buffer(const_cast<TText*>( aBuf.Ptr() ),len,len);
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	TPtiTextCase newCase = iOwner->PtiEngine()->Case();
-	if(! iPreviousCommittedChar)
-		{
-		iPreviousCommittedChar = fepMan->PreviousChar(ETrue);	
-		}
-       while(len)
-                {
-                if(buffer[len-1] == 0x94d)
-                    {
-                    len--;
-                    buffer.SetLength(len);
-                    continue;
-                    }
-                else if(!curChar)
-                    {
-                    curChar = buffer[len-1] ;
-                    len--;
-                    }
-                else if(!prevChar)
-                    {
-                    prevChar = buffer[len-1] ;
-                    len--;
-                    }
-                else
-                    break;
-                }
-       if(!prevChar)
-            prevChar = iPreviousCommittedChar;
-       /*
-       Multitap does not allow any fall back characters. The phonetic engine does not
-       check for the fallback characters and FEP has to do it.
-       */
-       //fallback character if Nukta is entered after Nukta
-       if((TAknFepUiIndicInputManager::IsCharNukta(prevChar,aLanguage) && 
-        TAknFepUiIndicInputManager::IsCharNukta(curChar,aLanguage)) ||
-        
-        //fallback character if Nukta is entered after Modifier or
-        //Modifier is entered after Modifier
-        (TAknFepUiIndicInputManager::IsCharModifier(prevChar,aLanguage) && 
-        (TAknFepUiIndicInputManager::IsCharNukta(curChar,aLanguage) ||
-        TAknFepUiIndicInputManager::IsCharModifier(curChar,aLanguage))) ||
-        
-        //fallback character if Nukta is entered after Vowel or
-        //Nukta is entered after matra
-       ((TAknFepUiIndicInputManager::IsCharAnVowel(prevChar,aLanguage) ||
-       TAknFepUiIndicInputManager::IsCharMatra(prevChar,aLanguage)) && 
-        TAknFepUiIndicInputManager::IsCharNukta(curChar,aLanguage))  ||
-        //fallback character if Nukta is entered after Nukta Consonant
-        (TAknFepUiIndicInputManager::IsCharNuktaConsonant(prevChar,aLanguage) &&
-        TAknFepUiIndicInputManager::IsCharNukta(curChar,aLanguage)) ||
-        
-        //fallback character if Nukta entered in an empty editor
-        (prevChar == PHONETIC_SEPARATOR &&
-        TAknFepUiIndicInputManager::IsCharNukta(curChar,aLanguage))
-        )
-           {
-            TBuf<1> buffer;
-            fepMan->CommitInlineEditL(iIndicPhoneticBuffer, iIndicPhoneticBuffer.Length());
-	        buffer.Append(KQuestionMark);
-		if(!fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-			{
-			fepMan->StartInlineEditL();	
-			}
-        fepMan->UpdateInlineEditL(buffer,CAknFepManager::ESingleCharacter);
-        fepMan->SetFlag(CAknFepManager::EFlagNoMatches);
-		ret = EFalse;
-		}
-	return ret;
-	}
-	
-TBool TAknFepInputStateInitialIndicPhoneticMultitap::IsInvalidPhoneticCharacter( 
-                                              TUint aChar, TLanguage aLanguage )
-	{
-	TBool ret = EFalse;
-	if(TAknFepUiIndicInputManager::IsCharNukta( aChar, aLanguage )
-	   || TAknFepUiIndicInputManager::IsCharMatra( aChar,  aLanguage )
-	   || TAknFepUiIndicInputManager::IsCharModifier( aChar,  aLanguage )
-	   || TAknFepUiIndicInputManager::IsCharVirama( aChar,  aLanguage ))
-		{	
-		ret = ETrue;
-		}
-	return ret;	
-	}
-
-void TAknFepInputStateInitialIndicPhoneticMultitap::RemoveHalantL(TLanguage aLanguage)
-	{
-	MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-	TBool isLineFeedEntered = fepMan->IsFlagSet(CAknFepManager::EFlagLineFeedCharacter);
-	if (fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))
-        {
-        fepMan->CommitInlineEditL();
-        }
-
-	TInt position = 0;
-	
-    if(TAknFepUiIndicInputManager::IsCharVirama(fepMan->PreviousChar(ETrue), aLanguage))
-    	{
-    	position = 1;
-    	}
-    else if(!isLineFeedEntered && 
-    TAknFepUiIndicInputManager::IsCharVirama(fepMan->PreviousToPreviousChar(ETrue), aLanguage))
-    	{
-    	position = 2;	
-    	}
-    if(position)	
-    	fepMan->RemoveTextFromEditorL( 1, position-1, EFalse );
-   	if(fepMan->NextChar() == KSpaceChar)
-   		{
-   		fepMan->AlignLogicalAndVisualCursorL(TTmDocPosSpec::ELeading, EFalse);	
-   		}
-	}
-
-void TAknFepInputStateInitialIndicPhoneticMultitap::GetPhoneticLatinChar(TChar& aChar)const
-	{
-		aChar = iPhoneticLatinChar;
-	}
-//End of File
--- a/fep/aknfep/src/aknfepuiinputstateminiqwertystrokephrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,565 +0,0 @@
-/*
-* Copyright (c) 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:           
- *       Provides the  TAknFepInputStateEntryMiniQwertyStrokePhrase,
- *       TAknFepInputStateEditingMiniQwertyStrokePhrase,
- *       TAknFepUiInputStateCandidateMiniQwertyStrokePhrase methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>  
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote
-#include <aknfep.rsg>  
-
-// User includes
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepuictrleditpane.h"           //phrase creation
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h" 
-#include "aknfepuiinputstateminiqwertystrokephrase.h"
-const TInt KManualChangeState = 0; 
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyStrokePhrase::TAknFepInputStateEntryMiniQwertyStrokePhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEntryMiniQwertyStrokePhrase::TAknFepInputStateEntryMiniQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ):
-    TAknFepInputMiniQwertyStrokePhraseBase( aOwner, aUIContainer )
-    {
-    iState = EEntry;
-    UIContainer()->SetLayout( MAknFepUICtrlContainerChinese::ELayoutKeystroke );
-    UIContainer()->FocusCandidatePane( ETrue );
-    UIContainer()->CandidatePane()->SelectFirstPhrase();
-    UIContainer()->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    UIContainer()->SetFepMan( iOwner->FepMan() );
-    // so that it could handle EKeyCBA1
-    iOwner->FepMan()->EntryPhrase( ETrue );
-    RefreshUI();
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyStrokePhraseCreation::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateEntryMiniQwertyStrokePhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    switch ( aKey )
-        {
-        case EStdKeyLeftFunc: //chr key
-        case EKeyLeftShift:
-        case EKeyRightShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyRightFunc://fn 
-        case EKeyLeftFunc: // fn 
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            ret = EFalse;
-            break;
-            }
-        case EStdKeyDevice1: // cancel key
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeyEnter:
-        case EStdKeySingleQuote: // The "&" key
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            if ( candidatePane->IsFirstPage() )
-                {
-                UIContainer()->EditPaneWindow()->SetAutoChangeStateFlag( KManualChangeState );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                }
-            else
-                {
-                candidatePane->PreviousCandidatePage();
-                candidatePane->SetCandidateBuffer();
-                candidatePane->SelectFirst();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL( aKey, aLength );
-            break;
-            }
-        case EStdKeyRightArrow:
-            {
-            if ( candidatePane->VisibleCandidateCount()!= 1 )
-                {
-                uiContainer->EditPaneWindow()->SetCandidateRefreshFlag( ETrue );
-                iOwner->ChangeState( ECandidate );
-                candidatePane->SelectNext();
-                }
-            break;
-            }
-        case EStdKeyLeftArrow:
-            {
-            if ( candidatePane->VisibleCandidateCount()!= 1 )
-                {
-                uiContainer->EditPaneWindow()->SetCandidateRefreshFlag( ETrue );
-                iOwner->ChangeState( ECandidate );
-                TInt numbertotal = UIContainer()->CandidatePane()->VisibleCandidateCount();
-                UIContainer()->CandidatePane()->SelectIndex( numbertotal-1 );
-                }
-            break;
-            }
-        case EStdKeyDevice0: //select key 
-        case EStdKeyDevice3: // msk 
-            {
-            TPtrC text = uiContainer->CandidatePane()->CurrentPhraseCandidate();
-            if ( text.Length() && aLength != ELongKeyPress )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit();
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke() )
-                        {
-                        iOwner->ChangeState( ECandidate );
-                        }
-                    else
-                        {
-                        uiContainer->EditPaneWindow()->SetAutoChangeStateFlag( EAutoChangeStateFromInput );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            break;
-            }
-        default:
-            // chr + character 
-            if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                ret = EFalse;
-                }
-            else if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyLock
-                == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyDown
-                == iOwner->FepMan()->FnKeyState() ) //fn play error tone
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            else
-                {
-                ret = TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyL(
-                    aKey, aLength );
-                }
-            break;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyStrokePhrase::TAknFepInputStateEditingMiniQwertyStrokePhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEditingMiniQwertyStrokePhrase::TAknFepInputStateEditingMiniQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ):
-    TAknFepInputMiniQwertyStrokePhraseBase( aOwner, aUIContainer )
-    {
-    iState = EMiniQwertyEdit;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    RefreshUI();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyStrokePhrase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateEditingMiniQwertyStrokePhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    
-    //handle chr up when composition key with chr end
-    //avoid closing UI
-    if ( iOwner->FepMan()->GetComposChrFlag() && aKey == EStdKeyLeftFunc )
-        {
-        iOwner->FepMan()->SetComposChrFlag( EFalse );
-        return ETrue;
-        }
-    switch ( aKey )
-        {
-        case EKeyLeftShift:
-        case EKeyRightShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyRightFunc://fn 
-        case EKeyLeftFunc: // fn 
-            {
-            if ( !uiContainer->EditPaneWindow()->GetAutoChangeStateFlag()
-                 || uiContainer->EditPaneWindow()->PhraseArray()->Count() != 0)
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL();
-                ret = EFalse;
-                }
-            break;
-            }
-        case EStdKeyLeftFunc: //chr key
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            ret =EFalse;
-            }
-            // inactive 
-        case EStdKeyUpArrow:
-            {
-            break;
-            }
-            //if the canidate is empty ,inactive;else candiniate selecting state
-        case EStdKeyDownArrow:
-            {
-            if ( 0 != candidatePane->VisibleCandidateCount() )
-                {
-                uiContainer->EditPaneWindow()->SetChangeState( ETrue );
-                iOwner->ChangeState( ECandidate );
-                }
-            break;
-            }
-        case EStdKeyDevice1: //"cancle" key
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeySingleQuote:
-        case EStdKeyEnter:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-            break;
-            }
-        default:
-            // chr + character 
-            if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-                {
-                iOwner->FepMan()->SetComposChrFlag( ETrue );
-                if ( !uiContainer->EditPaneWindow()->GetAutoChangeStateFlag()
-                      || uiContainer->EditPaneWindow()->PhraseArray()->Count() != 0)
-                    {
-                    iOwner->FepMan()->PlaySound(EAvkonSIDStandardKeyClick);
-                    return  ETrue;
-                    }
-                else
-                    {
-                    iOwner->FepMan()->TryCloseUiL();
-                    return EFalse;
-                    }
-                }
-            else
-                {
-                ret = TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyL(
-                    aKey, aLength);
-                break;
-                }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::TAknFepUiInputStateCandidateMiniQwertyStrokePhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::TAknFepUiInputStateCandidateMiniQwertyStrokePhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ):
-    TAknFepInputMiniQwertyStrokePhraseBase( aOwner, aUIContainer )
-    {
-    iState = ECandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( ETrue );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( ETrue );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    if ( uiContainer->EditPaneWindow()->GetCandidateRefreshFlag() )
-        {
-        uiContainer->EditPaneWindow()->DisableCursor();
-        uiContainer->EditPaneWindow()->SetCandidateRefreshFlag( EFalse );
-        }
-    else
-        {
-        RefreshUI();
-        }
-    }
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::HandleKeyL(
-    TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TInt selected = uiContainer->CandidatePane()->SelectedIndex();
-    TInt numbertotal = uiContainer->CandidatePane()->VisibleCandidateCount();
-    TBool ret = ETrue;
-
-    if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return ETrue;
-        }
-
-    switch ( aKey )
-        {
-        case EStdKeyBackspace:
-            {
-            uiContainer->CandidatePane()->SetCandidateBuffer();
-            uiContainer->EditPaneWindow()->SetAutoChangeStateFlag( KManualChangeState );
-            uiContainer->EditPaneWindow()->SetChangeState( ETrue );
-            iOwner->ChangeState( EMiniQwertyEdit );
-            iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_OK_SELECT_CANCEL );
-            }
-            break;
-        case EStdKeyLeftArrow:
-            {
-            if ( selected == 0 )
-                {
-                uiContainer->CandidatePane()->SelectIndex( numbertotal-1 );
-                }
-            else
-                {
-                uiContainer->CandidatePane()->SelectIndex( selected - 1 );
-                }
-            }
-            break;
-        case EStdKeyRightArrow:
-            {
-            if ( selected == numbertotal-1 )
-                {
-                uiContainer->CandidatePane()->SelectIndex( 0 );
-                }
-            else
-                {
-                uiContainer->CandidatePane()->SelectIndex( selected + 1 );
-                }
-            }
-            break;
-        case EStdKeyDownArrow:
-            {
-            ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL( aKey, aLength );
-            }
-            break;
-        case EStdKeyUpArrow:
-            {
-            if ( uiContainer->CandidatePane()->IsFirstPage() )
-                {
-                uiContainer->EditPaneWindow()->SetAutoChangeStateFlag( KManualChangeState );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                }
-            else
-                {
-                uiContainer->CandidatePane()->PreviousCandidatePage();
-                uiContainer->CandidatePane()->SetCandidateBuffer();
-                uiContainer->CandidatePane()->SelectFirstPhrase();
-                UpdateIndicator();
-                }
-            }
-            break;
-        case EStdKeyDevice0:
-        case EStdKeyDevice3:
-            {
-            TPtrC text = uiContainer->CandidatePane()->CurrentPhraseCandidate();
-            if ( text.Length() && aLength != ELongKeyPress )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit();
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke() )
-                        {
-                        RefreshUI();
-                        uiContainer->CandidatePane()->SelectFirstPhrase();
-                        }
-                    else
-                        {
-                        uiContainer->EditPaneWindow()->SetAutoChangeStateFlag( EAutoChangeStateFromCandidate );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            }
-            break;
-        case EStdKeyEnter:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EKeyLeftShift:
-        case EStdKeySpace:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-            break;
-//        case EKeyRightShift:   // need to check later
-//            {
-//            return ret;
-//            }
-//            break;
-        default:
-            return TAknFepInputMiniQwertyStrokePhraseBase::HandleKeyL( aKey,
-                aLength );
-        }
-    return ret;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyStrokePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer( );
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:            
-            if ( !uiContainer->EditPaneWindow()->GetAutoChangeStateFlag( ) || uiContainer->EditPaneWindow()->PhraseArray()->Count( ) != 0 )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDStandardKeyClick );
-                }
-            else
-                {
-                iOwner->FepMan()->TryCloseUiL( );
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEntryMiniQwertyStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEntryMiniQwertyStrokePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TPtrC text = uiContainer->CandidatePane()->CurrentPhraseCandidate();
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            if ( text.Length() )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit();
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke() )
-                        {
-                        iOwner->ChangeState( ECandidate );
-                        }
-                    else
-                        {
-                        uiContainer->EditPaneWindow()->SetAutoChangeStateFlag(
-                            EAutoChangeStateFromInput );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateCandidateMiniQwertyStrokePhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TPtrC text = uiContainer->CandidatePane()->CurrentPhraseCandidate();
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            if ( text.Length() )
-                {
-                if ( !CommitInlineEEPL( text ) )
-                    {
-                    DoActionAfterCommit();
-                    }
-                else
-                    {
-                    if ( CheckFirstGroupStroke() )
-                        {
-                        RefreshUI();
-                        uiContainer->CandidatePane()->SelectFirstPhrase();
-                        }
-                    else
-                        {
-                        uiContainer->EditPaneWindow()->SetAutoChangeStateFlag(
-                            EAutoChangeStateFromCandidate );
-                        iOwner->ChangeState( EMiniQwertyEdit );
-                        }
-                    }
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
--- a/fep/aknfep/src/aknfepuiinputstateminiqwertyzhuyinphrase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1296 +0,0 @@
-/*
-* Copyright (c) 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:           
- *       Provides the  TAknFepInputStateEntryMiniQwertyZhuyinPhrase,
- *       TAknFepInputStateEditingMiniQwertyZhuyinPhrase,
- *       TAknFepUiInputStateCandidateMiniQwertyZhuyinPhrase methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>  
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote
-#include <aknfep.rsg>  
-
-// User includes
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepuictrleditpane.h"           //phrase creation
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "AknFepUIManagerStateInterface.h"  
-#include "AknFepManager.h" 
-#include "aknfepuiinputstateminiqwertyzhuyinphrase.h"
-#include "aknfepinputstateminiqwertyzhuyinkeymap.h"
-
-const TInt KMaxKeystrokeCount = 31;
-const TInt KMaxKeystrokeSize = 130;
-const TInt KMaxPhraseLength = 7;
-const TInt KMinCandidateCount = 1;
-const TInt KKeystrokeMaxLength = 4;
-//const TInt KTonemarkCount = 5;
-
-const TUint16 KToneMark1 = 0x0020;
-const TUint16 KToneMark2 = 0x02CA;
-const TUint16 KToneMark3 = 0x02c7;
-const TUint16 KToneMark4 = 0x02CB;
-const TUint16 KToneMark5 = 0x02D9;
-
-_LIT(KLeftBracket, "(");
-_LIT(KRightBracket, ")");
-_LIT(KReplace, "");
-
-_LIT( KDelimiter, "'");
-struct TToneZhuYinMap
-    {
-    TUint16 iValue;
-    TInt iInputTone;
-    };
-const TToneZhuYinMap ZhuyinToneMap[] =
-    {
-        {KToneMark1, 1},
-        {KToneMark2, 2},
-        {KToneMark3, 3},
-        {KToneMark4, 4},
-        {KToneMark5, 5}
-    };
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::TAknFepInputStateEditingMiniQwertyZhuyinPhrase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateEditingMiniQwertyZhuyinPhrase::TAknFepInputStateEditingMiniQwertyZhuyinPhrase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputMiniQwertyZhuyinPhraseBase( aOwner, aUIContainer)
-    {
-    iState = EMiniQwertyEdit;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutPhraseCreation );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-    // in the case that we are coming back to the input pane from the candidate pane, 
-    // we need to ensure that the current selection is selected correctly
-    ImplicityShowInfo( ETrue );
-    // so that it could handle EKeyCBA1
-    iOwner->FepMan()->EntryPhrase( ETrue );
-    RefreshEditPane();
-    uiContainer->PinyinPopupWindow()->SetNoneHighlighted();
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    TBool ret = ETrue;
-    TBool state = ETrue;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    CDesCArrayFlat* phraseArray = editPane->PhraseArray();
-    
-    if ( iOwner->FepMan()->GetComposChrFlag() && aKey == EStdKeyLeftFunc )
-        {
-        iOwner->FepMan()->SetComposChrFlag( EFalse );
-        return ret;
-        }
-    
-    switch ( aKey )
-        {
-        case EStdKeyLeftShift:
-        case EStdKeyRightShift:
-        case EStdKeyLeftCtrl:
-        case EStdKeyRightCtrl:
-        case EStdKeyRightFunc://fn 
-        case EStdKeyLeftFunc: //chr key
-        case EStdKeyUpArrow:
-        case EKeyRightFunc:
-        case EKeyLeftFunc:
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            break;
-            //if the canidate is empty ,inactive;else candiniate selecting state
-        case EStdKeyDownArrow:
-            {
-            if ( 0 != candidatePane->VisibleCandidateCount() && phraseArray->Count() < 7 )
-                {
-                uiContainer->EditPaneWindow()->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinSpelling );
-                }
-            }
-            break;
-        case EStdKeyRightArrow:
-            MoveCursorRight();
-            break;
-        case EStdKeyLeftArrow:
-            MoveCursorLeft();
-            break;
-        case EStdKeyDevice1: //"cancle" key
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-        case EStdKeyEnter:
-            CommitContentL( EFalse );
-            break;
-        case EStdKeyDevice0:
-        case EStdKeyDevice3:
-        	
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                HandleCommitL();
-                }
-            break;
-        case EStdKeyBackspace:
-            {
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                HandleKeyBackspaceL( aLength );
-                }
-            }
-            break;
-        default:
-            {
-            if ( aLength == EShortKeyPress && keystrokeArray->Count() < KMaxKeystrokeCount && 
-                !iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) && 
-                phraseArray->Count() < KMaxPhraseLength &&
-                ( iOwner->IsValidChineseInputKeyQwerty( aKey ) || aKey == EStdKeySpace ) )
-                {
-                AddKeystrokeL( aKey );
-                RefreshUI();
-                ShowEEPInfo();
-                ChangeCbaL();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            }
-            break;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::AddKeystrokeL
-// Add key stroke.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateEditingMiniQwertyZhuyinPhrase::AddKeystrokeL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-    TInt showKeystrokeCount = editPane->ShowKeystrokeArray()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-
-    if ( phraseCount + showKeystrokeCount >= KMaxKeystrokeCount - 1 )
-        {
-        return EFalse;
-        }
-    TBuf<KKeystrokeMaxLength> keystroke;
-    
-    TAknFepInputStateMiniQwertyZhuyinKeyMap::GetKeyStroke(
-            iOwner->PtiEngine(), aKey, keystroke );
-    
-    if ( index >= keystrokeArray->Count() )
-        {
-        keycodeArray->Append( aKey );
-        keystrokeArray->AppendL( keystroke );
-        editPane->SetCursorIndexOfKeystroke( keystrokeArray->Count() );
-        }
-    else
-        {
-        keycodeArray->Insert( aKey, index );
-        keystrokeArray->InsertL( index, keystroke );
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    editPane->SetNeedClearDeliberateSelection( ETrue );
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::RevertPhraseToKeystrokeL
-// Revert the phrase to keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::RevertPhraseToKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = editPane->KeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    RArray<TInt>* phraseKeycode = editPane->PhraseKeycodeArray();
-    CDesCArrayFlat* phraseStroke = editPane->PhraseShowKeyStrokeArray();
-    TBuf<KMaxKeystrokeCount> buf;
-
-    if ( (phrase->Count() == 0 ) || (phraseStroke->Count() == 0 ) )
-        {
-        return;
-        }
-    
-    buf.Append( phraseStroke->MdcaPoint( phraseStroke->Count() - 1 ) );
-    
-    TInt insertIndex = 0;
-    while ( buf.Length() != 0 )
-        {
-        TBuf<KKeystrokeMaxLength> strokeBuf;
-        TInt index = buf.Find( KRightBracket );
-        if ( index != KErrNotFound )
-            {
-            strokeBuf.Copy( buf.Left( index + 1 ) );
-            keystrokeArray->InsertL( insertIndex, strokeBuf );
-            buf.Replace( 0, index + 1, KNullDesC );
-            }
-        else
-            {
-            keystrokeArray->InsertL( insertIndex, buf );
-            insertIndex = insertIndex + 1;
-            break;
-            }
-        insertIndex = insertIndex + 1;
-        }
-    phrase->Delete( phrase->Count() - 1 );
-    phraseStroke->Delete( phraseStroke->Count() - 1 );
-    
-    if ( insertIndex > phraseKeycode->Count() )
-        {
-        insertIndex = keycodeArray->Count();
-        }
-    
-    for ( TInt i = 0; i < insertIndex ; ++i )
-        {
-        keycodeArray->Insert( (*phraseKeycode)[phraseKeycode->Count() - 1 ],0 );
-        phraseKeycode->Remove( phraseKeycode->Count() - 1 );
-        }
-    
-    TInt keystrokeCount = keystrokeArray->Count();
-    TInt lenth = phrase->Count() + keystrokeCount;
-    TInt deleteCount = lenth - KMaxKeystrokeCount;
-
-    for (TInt i = 0; i < deleteCount; ++i )
-        {
-        keycodeArray->Remove( keycodeArray->Count() - 1 );
-        keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-        }
-    editPane->SetCursorIndexOfKeystroke( insertIndex );
-    keystrokeArray->Compress();
-    phrase->Compress();
-    phraseStroke->Compress();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::AddPhraseToDB
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::AddPhraseToDB(
-    const TDesC& aPhraseAdd )
-    {
-    TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::MoveCursorLeft
-// Move the cursor to Left.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEditingMiniQwertyZhuyinPhrase::MoveCursorLeft()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keyStrokeArray = editPane->KeystrokeArray();
-    TInt keystrokeCount = keyStrokeArray->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-
-    if ( EMiniQwertyEdit != iState )
-        {
-        return EFalse;
-        }
-    if ( 0 == keystrokeCount )
-        {
-        return EFalse;
-        }
-
-    if ( 0 == index )
-        {
-        editPane->SetCursorIndexOfKeystroke( keystrokeCount );
-        ShowEEPInfo();
-        }
-    else if ( phraseCount > 0 && 1 == index )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        ShowEEPInfo();
-        }
-    else
-        {
-        TInt stride = keyStrokeArray->MdcaPoint( index - 1 ).Length();
-        editPane->MoveCursorLeft( stride );
-        editPane->SetCursorIndexOfKeystroke( index - 1 );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::MoveCursorRight
-// Move the cursor to Right.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateEditingMiniQwertyZhuyinPhrase::MoveCursorRight()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    TInt keystrokeCount = keystroke->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-
-    if ( EMiniQwertyEdit != iState )
-        {
-        return EFalse;
-        }
-    if ( 0 == keystrokeCount )
-        {
-        return EFalse;
-        }
-    if ( index >= keystrokeCount )
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        ShowEEPInfo();
-        }
-    else
-        {
-        TInt stride = editPane->KeystrokeArray()->MdcaPoint( index ).Length();
-        editPane->MoveCursorRight( stride );
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleKeyBackspace
-// Handle Key Backspace
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleKeyBackspaceL( 
-                                                     TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-
-    CDesCArrayFlat* keyStrokeArray = editPane->KeystrokeArray();
-    RArray<TInt>* keycodeArray = editPane->KeycodeArray();
-    TInt keystrokeCount = keyStrokeArray->Count();
-    TInt phraseCount = editPane->PhraseArray()->Count();
-
-    TInt cursorOfkeystrokeIndex = editPane->GetCursorIndexOfKeystroke();
-
-    if ( 1 == cursorOfkeystrokeIndex )
-        {
-        editPane->Reset();
-        }
-    
-    if ( cursorOfkeystrokeIndex > 0 && 
-        ( keystrokeCount > 1 || phraseCount > 0 ) )
-        {
-        keycodeArray->Remove( cursorOfkeystrokeIndex - 1 );
-        keyStrokeArray->Delete( cursorOfkeystrokeIndex - 1 );
-        editPane->SetCursorIndexOfKeystroke( cursorOfkeystrokeIndex - 1 );
-        }
-    else if ( phraseCount > 0 && 0 == cursorOfkeystrokeIndex )
-        {
-        RevertPhraseToKeystrokeL();
-        }
-    else if ( 1 == cursorOfkeystrokeIndex )
-        {
-        iOwner->FepMan()->TryCloseUiL();
-        if ( aLength == ELongKeyPress )
-            {
-            iOwner->FepMan()->SetLongClearAfterCloseUI( ETrue );
-            }
-        return;
-        }
-    else
-        {
-        return;
-        }
-    editPane->SetNeedClearDeliberateSelection( ETrue );
-    RefreshUI();
-    ShowEEPInfo();
-    ChangeCbaL();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::CommitContentL
-// Commit content
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::CommitContentL(
-    TBool aAddUDB )
-    {
-    TBuf<KMaxKeystrokeSize> currentText;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-    CDesCArrayFlat* phraseArray = editpane->PhraseArray();
-    CDesCArrayFlat* keystrokeArray = editpane->KeystrokeArray();
-    TInt phraseCount = phraseArray->Count();
-    TInt keyStrokeCount = keystrokeArray->Count();
-
-    for (TInt i = 0; i < phraseCount; i++ )
-        {
-        currentText.Append( phraseArray->MdcaPoint( i ) );
-        }
-    for (TInt i = 0; i < keyStrokeCount; i++ )
-        {
-        currentText.Append( keystrokeArray->MdcaPoint( i ) );
-        }
-
-    if ( currentText.Length() )
-        {
-        while (currentText.Find( KLeftBracket ) >= 0 )
-            {
-            currentText.Replace( currentText.Find( KLeftBracket ), 1,
-                KReplace );
-            }
-        while (currentText.Find( KRightBracket ) > 0 )
-            {
-            currentText.Replace( currentText.Find( KRightBracket ), 1,
-                KReplace );
-            }
-        fepMan->NewTextL( currentText );
-        fepMan->CommitInlineEditL();
-        }
-    UIContainer()->EditPaneWindow()->ResetAllArray();
-    UIContainer()->EditPaneWindow()->SetPhraseCreationFlag( EFalse );
-    if ( fepMan->IsFlagSet( CAknFepManager::EFlagEditorFull ) )
-        {
-        fepMan->ClearFlag( CAknFepManager::EFlagEditorFull );
-        }
-    if ( aAddUDB )
-        {
-        AddPhraseToDB( currentText );
-        }
-    fepMan->TryCloseUiL();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleCommitL
-// Handle commit action
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleCommitL()
-    {
-    TBuf<KMaxKeystrokeSize> currentText;
-    MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    CDesCArrayFlat* phraseArray = editpane->PhraseArray();
-    CDesCArrayFlat* keystrokeArray = editpane->KeystrokeArray();
-    TInt phraseCount = phraseArray->Count();
-    TInt keyStrokeCount = keystrokeArray->Count();
-
-    if ( 0 == candidatePane->VisibleCandidateCount() && ( 1 == phraseCount
-        || keyStrokeCount > 0 ) )
-        {
-        return;
-        }
-    if ( 0 != candidatePane->VisibleCandidateCount() && phraseCount < KMaxPhraseLength )
-        {
-        UIContainer()->EditPaneWindow()->SetChangeState( ETrue );
-        iOwner->ChangeState( EZhuyinSpelling );
-        return;
-        }
-    CommitContentL( ETrue );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::RefreshUI
-// Refresh UI if necessary
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::RefreshUI()
-    {
-    MAknFepUICtrlEditPane* editpane = UIContainer()->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* showKeystroke = editpane->ShowKeystrokeArray();
-    TBuf<KMaxKeystrokeCount> preValidKeystroke;
-    TInt preValidKeystrokeCount = showKeystroke->Count();
-    for (TInt i=0; i < preValidKeystrokeCount; i++ )
-        {
-        preValidKeystroke.Append( showKeystroke->MdcaPoint( i ) );
-        }
-    GetValidKeystroke();
-    TBuf<KMaxKeystrokeCount> validKeystroke;
-    TInt validKeystrokeCount = showKeystroke->Count();
-    for (TInt i=0; i < validKeystrokeCount; i++ )
-        {
-        validKeystroke.Append( showKeystroke->MdcaPoint( i ) );
-        }
-    if ( preValidKeystroke.Compare( validKeystroke ) != 0 )
-        {
-        RefreshSpellingPane( ETrue );
-        RefreshCandidatePane();
-        }
-    else if ( popup->CurrentSelection() != 0 )
-        {
-        RefreshCandidatePane();
-        }
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------
-// Init the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::ImplicityShowInfo(
-    TBool aGetScreenCoordinates )
-    {
-    TRAP_IGNORE( ImplicityShowInfoL( aGetScreenCoordinates ) );
-    }
-
-// ---------------------------------------------------------
-// Init the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::ImplicityShowInfoL(
-    TBool aGetScreenCoordinates )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    // get cursor position
-    TPoint baseLine = TPoint( 0, 0 );
-    TInt height = 0;
-    TInt ascent = 0;
-    if ( aGetScreenCoordinates )
-        {
-        iOwner->FepMan()->GetScreenCoordinatesL( baseLine, height, ascent );
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-    editPane->ActiveCursor();
-    }
-
-// ---------------------------------------------------------
-// Init the show info
-// ---------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::ShowEEPInfo()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = editPane->KeystrokeArray();
-    CDesCArrayFlat* phrase = editPane->PhraseArray();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TInt cursorPosInKeystroke = 0;
-
-    TBuf<KMaxKeystrokeSize> buf;
-
-    for (TInt i = 0; i < phrase->Count(); ++i )
-        {
-        buf.Append( phrase->MdcaPoint( i ) );
-        }
-
-    for (TInt i = 0; i < keystroke->Count(); ++i )
-        {
-        buf.Append( keystroke->MdcaPoint( i ) );
-        }
-
-    for (TInt i = 0; i < index; ++i )
-        {
-        cursorPosInKeystroke = cursorPosInKeystroke + keystroke->MdcaPoint( i ).Length();
-        }
-
-    editPane->SetText( buf, phrase->Count() + cursorPosInKeystroke, ETrue );
-    if ( editPane->GetEffictiveLength() == 0 )
-        {
-        editPane->SetHighlight( phrase->Count(), buf.Length() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateSpellingMiniQwertyZhuyin::TAknFepInputStateSpellingMiniQwertyZhuyin
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateSpellingMiniQwertyZhuyin::TAknFepInputStateSpellingMiniQwertyZhuyin(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputMiniQwertyZhuyinPhraseBase( aOwner, aUIContainer)
-    {
-    iState = EZhuyinSpelling;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->FocusCandidatePane( EFalse );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( EFalse );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    uiContainer->ShowVerticalScrollArrows( ETrue );
-    uiContainer->ShowHorizontalScrollArrows( EFalse );
-    uiContainer->InputPane()->SetOverrideFontId( 0 );
-    uiContainer->SetLayout( MAknFepUICtrlContainerChinese::ELayoutPhraseCreation );
-    uiContainer->EditPaneWindow()->DeactiveCursor();
-    RefreshUI();
-    // however we also need to clear the deliberate selection, in case we are not
-    // coming back to the input pane from the candidate pane
-    ClearDeliberateSelection();
-    UpdateIndicator();
-
-    iOwner->PtiEngine()->SetInputMode( EPtiEngineZhuyinPhraseQwerty );
-    iOwner->PtiEngine()->SetCase( EPtiCaseLower );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateSpellingMiniQwertyZhuyin::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-// 
-TBool TAknFepInputStateSpellingMiniQwertyZhuyin::HandleKeyL( TInt aKey,
-    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TBool ret = ETrue;
-
-    if ( CAknFepFnKeyManager::EFnKeyNext == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyLock
-        == iOwner->FepMan()->FnKeyState() || CAknFepFnKeyManager::EFnKeyDown
-        == iOwner->FepMan()->FnKeyState() )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return ETrue;
-        }
-    else if ( iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagShiftKeyDepressed )
-        || iOwner->FepMan()->IsFlagSet( CAknFepManager::EFlagQwertyChrKeyDepressed ) )
-        {
-        return ETrue;
-        }
-
-    switch ( aKey )
-        {
-        case EPtiKeyQwertyE:
-        case EPtiKeyQwertyR:
-        case EPtiKeyQwertyY:
-        case EPtiKeyQwertyU:
-        case EStdKeyLeftFunc:
-            {
-            if ( aLength == EShortKeyPress )
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            }
-            break;
-        case EKeyRightFunc:
-        case EKeyLeftShift:
-        case EKeyLeftCtrl:
-        case EKeyRightCtrl:
-        case EStdKeyEnter:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            }
-            break;
-        case EStdKeyBackspace:
-        case EStdKeyUpArrow:
-            {
-            TBool state = ETrue;
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( EMiniQwertyEdit );
-                }
-            }
-            break;
-        case EStdKeyDevice1:
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            }
-            break;
-        case EStdKeyRightArrow:
-            {
-            if ( popup->IsEnabled() )
-                {
-                if ( popup->SelectNextPhrase() )
-                    {
-                    RefreshVaildKeyStroke();
-                    RefreshCandidatePane();
-                    RefreshSpellingPane();
-                    RefreshEditPane();
-                    UpdateIndicator();
-                    }
-                }
-            }
-            break;
-        case EStdKeyLeftArrow:
-            {
-            if ( popup->IsEnabled() )
-                {
-                if ( popup->SelectPrevPhrase() )
-                    {
-                    RefreshVaildKeyStroke();
-                    RefreshCandidatePane();
-                    RefreshSpellingPane();
-                    RefreshEditPane();
-                    UpdateIndicator();
-                    }
-                }
-            }
-            break;
-        case EStdKeyDownArrow:
-        case EStdKeyDevice3:
-        case EStdKeyDevice0:
-            {
-            TBool state = ETrue;
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                if ( popup->IsEnabled() )
-                    {
-                    popup->Enable( EFalse );
-                    }
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinCandidate );
-                }
-            }
-            break;
-        default:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return TAknFepInputMiniQwertyZhuyinPhraseBase::HandleKeyL(
-                aKey, aLength );
-            }
-//            break;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateSpellingMiniQwertyZhuyin::RefreshUI
-// Refresh UI if necessary
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingMiniQwertyZhuyin::RefreshUI()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    // get cursor position
-    TPoint baseLine = TPoint( 0, 0 );
-    TInt height = 0;
-    TInt ascent = 0;
-
-    TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-    if ( ret == KErrNone )
-        {
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-    
-    GetValidKeystroke( );
-    TBool needClearDeliberateSelection = editPane->NeedClearDeliberateSelection();
-    if ( needClearDeliberateSelection )
-        {
-        editPane->SetNeedClearDeliberateSelection( EFalse );
-        }
-    else
-        {
-        RefreshVaildKeyStroke();
-        }
-    RefreshEditPane();
-    RefreshCandidatePane( needClearDeliberateSelection );
-    RefreshSpellingPane( needClearDeliberateSelection );
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateSpellingMiniQwertyZhuyin::RefreshUI
-// Refresh vaild key stroke length
-// ---------------------------------------------------------
-//
-void TAknFepInputStateSpellingMiniQwertyZhuyin::RefreshVaildKeyStroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* spelling = popup->PhoneticSpellingArray();
-    TInt currentSel = popup->CurrentSelection();
-    if ( currentSel >= spelling->Count() )
-        {
-        currentSel = 0;
-        }
-    TPtrC ptr = spelling->MdcaPoint( currentSel );
-    TInt currentLength = ptr.Length();
-    editPane->SetEffictiveLength( currentLength );
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::TAknFepInputStateCanindateSelectingMiniQwertyZhuyin
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::TAknFepInputStateCanindateSelectingMiniQwertyZhuyin(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputMiniQwertyZhuyinPhraseBase( aOwner, aUIContainer)
-    {
-    iState = EZhuyinCandidate;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength
-        > KMinCandidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows( showHorizontalScrollArrows );
-    uiContainer->ShowVerticalScrollArrows( multiplePages );
-    uiContainer->FocusCandidatePane( ETrue );
-    uiContainer->CandidatePane()->ShowCandidateOrdinals( ETrue );
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::HandleKeyL(
-    TInt aKey, TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt selected = uiContainer->CandidatePane()->SelectedIndex();
-    TInt numbertotal = uiContainer->CandidatePane()->VisibleCandidateCount();
-    TBool ret = ETrue;
-
-    if (iOwner->FepMan()->GetComposChrFlag() )
-        {
-        iOwner->FepMan()->SetComposChrFlag(EFalse);
-        return ETrue;
-        }
-    switch ( aKey )
-        {
-        case EStdKeySpace:
-        case EStdKeyEnter:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDDefaultSound );
-            }
-            break;
-        case EStdKeyLeftArrow:
-            {
-            if ( selected == 0 )
-                {
-                UIContainer()->CandidatePane()->SelectIndex( numbertotal-1 );
-                }
-            else
-                {
-                UIContainer()->CandidatePane()->SelectIndex( selected - 1 );
-                }
-            }
-            break;
-        case EStdKeyRightArrow:
-            {
-            if ( selected == numbertotal-1 )
-                {
-                UIContainer()->CandidatePane()->SelectIndex( 0 );
-                }
-            else
-                {
-                UIContainer()->CandidatePane()->SelectIndex( selected + 1 );
-                }
-            break;
-            }
-        case EStdKeyDevice1: // cancel key
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        case EStdKeyUpArrow:
-            {
-            if ( uiContainer->CandidatePane()->IsFirstPage() ) // same as the backspace
-                {
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinSpelling );
-                }
-            else // just move to the last page 
-                {
-                uiContainer->CandidatePane()->PreviousCandidatePage();
-                uiContainer->CandidatePane()->SetCandidateBuffer();
-                uiContainer->CandidatePane()->SelectFirstPhrase();
-                UpdateIndicator();
-                }
-            break;
-            }
-        case EStdKeyDownArrow:
-            {
-            ret = TAknFepInputStateCandidateQwertyBaseChinesePhrase::HandleKeyL( aKey, aLength );
-            }
-            break;
-        case EStdKeyBackspace: // 
-            {
-            TBool state = ETrue;
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinSpelling );
-                }
-            }
-            break;
-        case EStdKeyDevice0: //commit to editor
-        case EStdKeyDevice3:
-            {
-            TBool state = ETrue;
-            if ( editPane->IsChangeState() && aLength == ELongKeyPress )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                editPane->SetNeedClearDeliberateSelection( ETrue );
-                CommitCandidateL();
-                }
-            }
-            break;
-        default:
-            if (iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagQwertyChrKeyDepressed))
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDDefaultSound);
-                break;
-                }
-            if ( SelectCandidate( aKey ) ) // is 1-6 key 
-                {
-                editPane->SetNeedClearDeliberateSelection( ETrue );
-                CommitCandidateL();
-                }
-            else
-                {
-                return TAknFepInputMiniQwertyZhuyinPhraseBase::HandleKeyL(
-                    aKey, aLength );
-                }
-            break;
-        }
-    return ret;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::CommitCandidate
-// commint the charater to the editor pane 
-// ---------------------------------------------------------------------------
-
-TInt TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::GetIndexOfToneMark( const TDesC& aText)
-    {
-    TInt indexOfToneMark = -1;
-    TInt num = sizeof(ZhuyinToneMap )/( sizeof(ZhuyinToneMap[0]));
-    TInt len = aText.Length();
-    for( TInt j = 0; j< len ;j++ )
-        {
-        indexOfToneMark = j;
-        TBuf<1> keyStorkeBuf = aText.Mid( j ,1 );
-        for (TInt i = 0; i<num; i++ )
-            {
-            if (  keyStorkeBuf[0] == ZhuyinToneMap[i].iValue  )
-                {
-                return indexOfToneMark;
-                }
-            }
-        }
-    return -1;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::CommitCandidate
-// commint the charater to the editor pane 
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::CommitCandidateL()
-    {
-    CDesCArrayFlat* keyStrokeArray = UIContainer()->EditPaneWindow()->KeystrokeArray();
-    CDesCArrayFlat* phraseKeyStrokeArray = UIContainer()->EditPaneWindow()->PhraseShowKeyStrokeArray();
-    CDesCArrayFlat* phraseArray = UIContainer()->EditPaneWindow()->PhraseArray();
-    TPtrC candidate = UIContainer()->CandidatePane()->CurrentPhraseCandidate();
-    
-    RArray<TInt>* keyCodeArray = UIContainer()->EditPaneWindow()->KeycodeArray();
-    RArray<TInt>* keyCodePhraseArray = UIContainer()->EditPaneWindow()->PhraseKeycodeArray();
-    TBuf<KMaxKeystrokeCount> spellingText;
-    UIContainer()->InputPane()->GetText( spellingText );
-    phraseArray->AppendL( candidate );
-    TBuf<KMaxKeystrokeCount> keyStoke;
-    TInt replaceCount = 0;
-    TInt delimiterIndex = spellingText.Find( KDelimiter );
-    if ( KErrNotFound ==delimiterIndex )
-        {
-        delimiterIndex = -1;
-        }
-    TInt indexOfToneMark = GetIndexOfToneMark( spellingText );
-    if ( delimiterIndex != KErrNotFound && indexOfToneMark >= 0 )
-        {
-        replaceCount = Min( delimiterIndex, indexOfToneMark );
-        if ( delimiterIndex > indexOfToneMark )
-            {
-            replaceCount++;
-            }
-        }
-    else if ( delimiterIndex != KErrNotFound && indexOfToneMark == -1 )
-        {
-        replaceCount = delimiterIndex;
-        }
-    else if ( delimiterIndex == KErrNotFound && indexOfToneMark != -1 )
-        {
-        replaceCount = indexOfToneMark + 1;
-        }
-    else
-        {
-        replaceCount = spellingText.Length();
-        } 
-    for (TInt i = 0; i < replaceCount; i++ )
-        {
-        TPtrC ptr = keyStrokeArray->MdcaPoint( 0 );
-        keyStoke.Append( ptr );
-        keyStrokeArray->Delete( 0 );
-        // added for the keycode
-        TInt keyCodeValue = ( *keyCodeArray )[0];
-        keyCodePhraseArray->AppendL( keyCodeValue );
-        keyCodeArray->Remove( 0 );
-        }
-    phraseKeyStrokeArray->AppendL( keyStoke );
-
-    if ( GetValidKeystroke() )
-        {
-        iOwner->ChangeState( EZhuyinSpelling );
-        }
-    else
-        {
-        iOwner->ChangeState( EMiniQwertyEdit );
-        }
-    UIContainer()->EditPaneWindow()->SetChangeState(ETrue);
-    RefreshSpellingPane();
-    RefreshCandidatePane();
-    ChangeCbaL();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::CommitCandidate
-// to check the select number is valid or not 
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::SelectCandidate(
-    TInt aKey )
-    {
-    TInt index = 0;
-    MPtiLanguage *lang= NULL;
-    RArray <TPtiNumericKeyBinding> keybinding;
-    TBool validnumkey = EFalse;
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    TPtiKeyboardType keyboardtype = iOwner->FepMan()->KeyboardLayout();
-    
-    if( ptiengine != NULL )
-        {
-        lang = ptiengine->CurrentLanguage();
-        }
-    if ( ptiengine && lang  )
-        {
-        TRAP_IGNORE(ptiengine->GetNumericModeKeysForQwertyL(lang->LanguageCode(), keybinding, keyboardtype));
-        TInt numericKeysCount = keybinding.Count();
-        while (numericKeysCount-- )
-            {
-            TPtiNumericKeyBinding numKeyBind = keybinding[numericKeysCount];
-            if ( (numKeyBind.iChar >= 0x31 && numKeyBind.iChar <= 0x36)
-                &&(aKey == numKeyBind.iKey) )
-                {
-                index = numKeyBind.iChar - EPtiKey0 -1;
-                if ( UIContainer()->CandidatePane()->SelectIndex( index, EFalse ) )
-                    {
-                    validnumkey = ETrue;
-                    }
-                break;
-                }
-            }
-        }
-    keybinding.Reset();
-    return validnumkey;
-    }
-// ---------------------------------------------------------------------------
-// TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateEditingMiniQwertyZhuyinPhrase::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane =
-        UIContainer()->CandidatePane();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TBool state = ETrue;
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( editPane->IsChangeState() )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                HandleCommitL();
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateSpellingMiniQwertyZhuyin::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateSpellingMiniQwertyZhuyin::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane =
-        UIContainer()->CandidatePane();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TBool state = ETrue;
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( editPane->IsChangeState() )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                if ( popup->IsEnabled() )
-                    {
-                    popup->Enable( EFalse );
-                    }
-                editPane->SetChangeState( ETrue );
-                iOwner->ChangeState( EZhuyinCandidate );
-                }
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateCanindateSelectingMiniQwertyZhuyin::HandleCommandL(
-    TInt aCommandId )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane =
-        UIContainer()->CandidatePane();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TBool state = ETrue;
-    switch ( aCommandId )
-        {
-        // Handle the event frome command.
-        case EAknSoftkeySelect:
-            //case (TUint16)EAknSoftkeySelect: //the Selected in soft CBA
-            if ( editPane->IsChangeState() )
-                {
-                state = EFalse;
-                }
-            else
-                {
-                editPane->SetChangeState( EFalse );
-                }
-            if ( state )
-                {
-                editPane->SetNeedClearDeliberateSelection( ETrue );
-                CommitCandidateL();
-                }
-
-            break;
-        default:
-            TAknFepInputStateChineseBase::HandleCommandL( aCommandId );
-            break;
-        }
-    }
-//End of File
--- a/fep/aknfep/src/aknfepuiinputstateqwertykorean.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 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:           
-*       CAknFepInputStateQwertyKorean implementation
-*
-*/
-
-#include "AknFepUiInputStateQwertyKorean.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-//#include "AknFepDbgKorean.h"
-
-#include <PtiEngine.h>
-#include <PtiDefs.h>
-#include <PtiKeyMappings.h>
-#include <PtiDefs.h>        
-
-TAknFepInputStateQwertyKorean::TAknFepInputStateQwertyKorean(
-        MAknFepUIManagerStateInterface* aOwner)
-    : TAknFepInputStateQwerty(aOwner)
-    {
-    CPtiEngine& ptiEngine(*(aOwner->PtiEngine()));
-    ptiEngine.SetInputMode(EPtiEngineQwertyKorean);
-    ptiEngine.ClearCurrentWord();
-    }
-
-TAknFepInputStateQwertyKorean::~TAknFepInputStateQwertyKorean()
-    {
-    }
-
-TBool TAknFepInputStateQwertyKorean::HandleKeyL(TInt aKey, TKeyPressLength /*aLength*/)
-    {
-//    LOG2("KO.IS.QWERTY.HandleKeyL %d,%d",aKey,aLength);
-    CPtiEngine& ptiEngine(*(iOwner->PtiEngine()));
-    MAknFepManagerUIInterface& fepMan(*(iOwner->FepMan()));
-    
-    TPtrC text(ptiEngine.AppendKeyPress((TPtiKey)aKey));
-    TBuf<1> chr;            
-    for (TInt jj = 0; jj < text.Length(); jj++)
-        {
-        chr.Zero();
-        chr.Append(text[jj]);
-        fepMan.NewCharacterL(chr);
-        }
-    return ETrue;
-    }
-
-void TAknFepInputStateQwertyKorean::KeyTimerExpired()
-    {
-//    LOG1("KO.IS.QWERTY.KeyTimerExpired %d",iData);
-    CPtiEngine& ptiEngine(*(iOwner->PtiEngine()));
-    MAknFepManagerUIInterface& fepMan(*(iOwner->FepMan()));
-    
-    TPtrC text(ptiEngine.CurrentWord());
-    TBuf<1> chr;            
-    for (TInt jj = 0; jj < text.Length(); jj++)
-        {
-        chr.Zero();
-        chr.Append(text[jj]);
-        TRAP_IGNORE( fepMan.NewCharacterL(chr) );
-        }
-    
-    //TRAPD(err, fepMan.CommitInlineEditL())
-    TRAP_IGNORE( fepMan.CommitInlineEditL() )
-    }
-
-//fepMan.StartInlineEditL(text);
-//iFepMan.StartInlineEditL()
-//virtual void SetCursorSelectionL(const TCursorSelection& aCurSel, TBool aSyncCursor) = 0;
--- a/fep/aknfep/src/aknfepuiinputstatestrokephrasebase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1286 +0,0 @@
-/*
-* 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 TAknFepInputStateStrokePhraseCreationBase definition.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-
-// System includes
-#include <PtiEngine.h>
-#include <avkon.rsg>
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <aknnotewrappers.h> //CAknWarningNote 
-
-// User includes
-#include "AknFepUIManagerStateInterface.h"
-#include "AknFepUICtrlInputPane.h"
-#include "AknFepUICtrlPinyinPopup.h"        //Pinyin phrase
-#include "aknfepuictrleditpane.h"           //pinyin phrase creation
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepManager.h"
-#include "aknfepuiinputstatestrokephrasebase.h"
-
-// Constant definition
-const TInt KMinCnadidateCount = 1;
-const TInt KMaxPhraseCount = 50;
-const TInt KEnginePhoneticIndex = 1;
-const TInt KMaxPhraseCreationCount = 7;
-const TInt KMaxKeystrokeCount = 31;
-const TInt KKey0Code = 48;
-const TInt KKey1Code = 49;
-const TInt KKey2Code = 50;
-const TInt KKey3Code = 51;
-const TInt KKey4Code = 52;
-const TInt KKey5Code = 53;
-const TInt KKey6Code = 54;
-const TInt KAutoChangeState = 1;
-const TInt KManualChangeState = 0; 
-const TUint16 KDelimiter = 0x2022;
-const TUint16 KStrokeKey1 = 0x4E00;
-const TUint16 KStrokeKey2 = 0x4E28;
-const TUint16 KStrokeKey3 = 0x4E3F;
-const TUint16 KStrokeKey4 = 0x4E36;
-const TUint16 KStrokeKey5 = 0x4E5B;
-const TUint16 KStrokeKey6 = 0x003F;
-
-const TUint16 KSegment = 0x0020;
-
-_LIT( KMaxPhraseNote,"\x8BCD\x7EC4\x6700\x957F\x4E3A\x4E03\x5B57" );
-
-const TKeyMap StrokeMap[] = 
-    {
-    {KDelimiter, KKey0Code},
-    {KStrokeKey1, KKey1Code},
-    {KStrokeKey2, KKey2Code},
-    {KStrokeKey3, KKey3Code},
-    {KStrokeKey4, KKey4Code},
-    {KStrokeKey5, KKey5Code},
-    {KStrokeKey6, KKey6Code}
-    };
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseCreationBase::TAknFepInputStateStrokePhraseCreationBase
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateStrokePhraseBase::TAknFepInputStateStrokePhraseBase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer)
-    :TAknFepInputStateChineseBase(aOwner, aUIContainer)
-    {
-    if ( iOwner->PtiEngine()->InputMode() != EPtiEngineStrokeByPhrase )
-        {
-        iOwner->PtiEngine()->SetInputMode( EPtiEngineStrokeByPhrase );
-        }
-    iOwner->PtiEngine()->SetCandidatePageLength( KMaxPhraseCount );
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetFepMan( iOwner->FepMan() );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleKeyL
-// Handle system key press event.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::HandleKeyL( 
-                                        TInt aKey, 
-                                        TKeyPressLength aLength )
-    {    
-    switch( aKey )
-        {
-        case EKeyBackspace:
-            {
-            if ( CheckKeyNeedRepeat( aLength ) )
-                {
-                HandleKeyBackspaceL( aLength );
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }
-        case EKeyUpArrow:
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            break;
-            }
-        case EKeyDownArrow:
-            {
-            if ( EStrokeSequenceEdit == iState )
-                {
-                if ( CheckFirstGroupStroke() )
-                    {
-                    UIContainer()->PinyinPopupWindow()->SetChangeState( ETrue );
-                    iOwner->ChangeState( EEntry );
-                    }
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }
-        case EKeyLeftArrow:
-            {
-            if ( EStrokeSequenceEdit == iState )
-                {
-                MoveCursorLeft();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }    
-        case EKeyRightArrow:
-            {
-            if ( EStrokeSequenceEdit == iState )
-                {
-                MoveCursorRight();
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-                }
-            break;
-            }
-        case EKeyOK:
-        case EKeyCBA1:
-            {
-            if ( CheckKeyNeedRepeat( aLength ) )
-                {
-                HandleKeyCBA1OrKeyOKL( aLength );
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        case EKeyCBA2:
-            {
-            iOwner->FepMan()->TryCloseUiL();
-            break;
-            }
-        default:
-            {
-            if ( ( EShortKeyPress == aLength ) && 
-                ( iOwner->IsValidChineseInputKey( aKey ) ) )
-                {
-                HandleDefaultKeyL( aKey );
-                }
-            else
-                {
-                iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-                }
-            break;
-            }
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::RefreshUI
-// Update input window.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::RefreshUI( TBool aRefresh )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    // get cursor position
-    if ( aRefresh )
-        {
-        TPoint baseLine;
-        TInt height(0);
-        TInt ascent(0);
-        TRAPD(ret,iOwner->FepMan()->GetScreenCoordinatesL(baseLine,height,ascent));
-        if (ret == KErrNone)
-            {
-            uiContainer->SetContainerPosition(baseLine, height);    
-            }
-        }
-    
-    ShowInfoOnEEPPane();
-    if ( !CheckAllKeystroke() )
-        {
-        SetWarningColor();
-        }
-    ShowInfoOnCandidatePane();
-    UpdateIndicator();
-    TRAP_IGNORE( ChangeCbaL() );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleHorizontalNavigation
-// Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::CheckFirstGroupStroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CDesCArrayFlat* keystroke = uiContainer->
-        PinyinPopupWindow()->KeystrokeArrayForStroke();
-    
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keyCode = 0;
-    TInt pos = 0;
-    if ( 0 == keystroke->Count() )
-        {
-        return EFalse;
-        }
-    
-    ClearPtiEngineKeystroke();
-    TBuf<1> delimiter;
-    delimiter.Append( KDelimiter );
-    if ( 0 == keystroke->Find( delimiter, pos ) )
-        {
-        if ( 0 == pos )
-            {
-            return EFalse;
-            }
-        }
-    else
-        {
-        pos = keystroke->Count();
-        }
-    
-    for ( TInt i = 0; i < pos; ++i )
-        {
-        GetKeystrokeCode( keyCode, keystroke->MdcaPoint( i ) );
-        stringBeforeLength = 
-            ptiengine->GetPhoneticSpelling(KEnginePhoneticIndex).Length();
-        stringAfterLength = 
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-        //the keystroke is invalid.
-        if ( stringBeforeLength == stringAfterLength )
-            {
-            ClearPtiEngineKeystroke();
-            return EFalse;
-            }
-        } 
-    return ETrue;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleKeyBackspaceL
-// Handle KeyBackspace event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::HandleKeyBackspaceL(
-                                                    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* keystroke = popup->KeystrokeArrayForStroke();
-    TInt phraseCount = popup->ChooseChineseCharacterArrayForStroke()->Count();
-    TBool firstGroup = CheckFirstGroupStroke();
-    
-    if ( ( 0 == index ) && ( phraseCount != 0 ) )
-        {
-        RevertPhraseToKeystrokeL();
-        }
-    else if ( ( 0 == index ) && ( keystroke->Count() > 0 ) )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    else
-        {
-        if ( !DeleteKeystroke() )
-            {
-            iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-            return;
-            }
-        }
-    
-    if ( popup->ChooseChineseCharacterArrayForStroke()->Count() == 0 )
-        {
-        iOwner->FepMan()->PhraseCreation( EFalse );
-        }
-    
-    //if the keystroke is null and phrase is null then close input window.
-    if ( ( 0 == phraseCount ) && ( keystroke->Count() == 0 ) )
-        {
-        iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-        if ( aLength == ELongKeyPress )
-            {
-            iOwner->FepMan()->SetLongClearAfterCloseUI( ETrue );
-            }
-        return;
-        }
-    
-    //Auto change from EStrokeSequenceEdit state to EEntry state. 
-    if ( EStrokeSequenceEdit == iState )
-        {
-        if ( ( KAutoChangeState == popup->GetState() ) && 
-              ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            popup->SetChangeState( EFalse );
-            iOwner->ChangeState( EEntry );
-            return;
-            }
-        }
-    
-    //Auto change from EEntry state to EStrokeSequenceEdit state.
-    if ( EEntry == iState )
-        {
-        if ( ( firstGroup ) && ( !CheckFirstGroupStroke() ) )
-            {
-            popup->SetChangeState( EFalse );
-            popup->SetState( KAutoChangeState );
-            iOwner->ChangeState( EStrokeSequenceEdit );
-            return;
-            }
-        }
-    
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKEntryL
-// Entry handle CBA1 or OK key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKEntry(
-                                                    TKeyPressLength aLength )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TBool state = ETrue;
-    if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-        {
-        state = EFalse;
-        }
-    else
-        {
-        popup->SetChangeState( EFalse );
-        }
-    
-    if ( state )
-        {
-        popup->SetChangeState( ETrue );
-        iOwner->ChangeState( ECandidate );        
-        }    
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKEditL
-// Edit state handle CBA1 or OK key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKEditL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    TBuf<KMaxPhraseCreationCount> phraseCreated;
-    if ( (phrase->Count() >= 2 ) && ( 0 == keystrokeArray->Count() ) )
-        {
-        //commit the chinese character.
-        for (TInt i = 0; i < phrase->Count(); ++i )
-            {
-            phraseCreated.Append( phrase->MdcaPoint( i ) );
-            }
-        AddPhraseToDB( phraseCreated );
-        iOwner->FepMan()->NewTextL( phraseCreated );
-        iOwner->FepMan()->CommitInlineEditL();
-        iOwner->FepMan()->TryCloseUiL(); //no more keys, close the UI.
-        }
-    else if ( CheckFirstGroupStroke() )
-        {
-        popup->SetState( KManualChangeState );
-        popup->SetChangeState( ETrue );
-        iOwner->ChangeState( EEntry );
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        }
-    
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKL
-// Handle CBA1 or OK key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::HandleKeyCBA1OrKeyOKL(
-                                                    TKeyPressLength aLength )
-    {
-    if ( EStrokeSequenceEdit == iState )
-        {
-        HandleKeyCBA1OrKeyOKEditL();
-        }
-    else if ( EEntry == iState )
-        {
-        HandleKeyCBA1OrKeyOKEntry( aLength );
-        }
-    else
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleDefaultKeyL
-// Handle default key press event.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::HandleDefaultKeyL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    TBool firstGroup = CheckFirstGroupStroke();
-    
-    if ( !AddKeystrokeL( aKey ) )
-        {
-        iOwner->FepMan()->PlaySound(EAvkonSIDErrorTone);
-        return;
-        }
-    
-    //Auto change from EStrokeSequenceEdit state to EEntry state. 
-    if ( EStrokeSequenceEdit == iState )
-        {
-        if ( ( KAutoChangeState == popup->GetState() ) && 
-              ( !firstGroup ) && CheckFirstGroupStroke() )
-            {
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState( EEntry );
-            return;
-            }
-        }
-    
-    //Auto change from EEntry state to EStrokeSequenceEdit state.
-    if ( EEntry == iState )
-        {
-        if ( ( firstGroup ) && ( !CheckFirstGroupStroke() ) )
-            {
-            popup->SetState( KAutoChangeState );
-            popup->SetChangeState( ETrue );
-            iOwner->ChangeState( EStrokeSequenceEdit );
-            return;
-            }
-        }
-    
-    RefreshUI();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::ShowInfoOnEEPPane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystroke = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    TBuf<KMaxKeystrokeCount> showInfo;
-    
-    for (TInt i = 0; i < phrase->Count(); ++i )
-        {
-        showInfo.Append( phrase->MdcaPoint( i ) );
-        }
-
-    for (TInt ii = 0; ii < keystroke->Count(); ++ii )
-        {
-        showInfo.Append( keystroke->MdcaPoint( ii ) );
-        }
-    
-    editPane->SetText( showInfo, phrase->Count() + index );
-    if ( EStrokeSequenceEdit == iState )
-        {
-        editPane->ActiveCursor();
-        }
-    else if ( EEntry == iState )
-        {
-        editPane->DeactiveCursor();
-        }
-    else
-        {
-        editPane->DisableCursor();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::ShowInfoOnEEP
-// Show the showinfo on the EEP ctrl.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::ShowInfoOnCandidatePane()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->SetControlInVisible( ETrue );
-    CDesCArrayFlat* phrase = uiContainer->CandidatePane()->CandidateArray();
-    if ( KMaxPhraseCreationCount == uiContainer->PinyinPopupWindow()->
-            ChooseChineseCharacterArrayForStroke()->Count() )
-        {
-        phrase->Reset();
-        TRAP_IGNORE( phrase->AppendL( KMaxPhraseNote ) );
-        uiContainer->SetControlInVisible( ETrue );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }
-    
-    TRAP_IGNORE( GetCandidateL() );
-    if ( phrase->Count() > 0 )
-        {
-        // layout candidate and fill candidate buffer for first display page
-        uiContainer->SetControlInVisible( ETrue );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowVerticalScrollArrows( ETrue );
-        }
-    else
-        {
-        uiContainer->SetControlInVisible( EFalse );
-        uiContainer->CandidatePane()->SplitPhraseCandidatesIntoPages();
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::GetShowKeystroke
-//Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::GetShowKeystroke(
-                                                        TInt aKey, 
-                                                        TDes& aKeystroke )
-    {
-    TInt count = sizeof( StrokeMap )/sizeof( StrokeMap[0] );
-    for ( TInt i = 0; i < count ; i++ )
-        {
-        if (aKey == StrokeMap[i].iKeyCode)
-            {
-            aKeystroke.Append(StrokeMap[i].iValue);
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::HandleHorizontalNavigation
-//Handle horizontal navigation.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::HandleHorizontalNavigation(
-                                                                   TInt aKey )
-    {
-    MAknFepUICtrlCandidatePane* candidatePane = UIContainer()->CandidatePane();
-    TBool response = EFalse;
-
-    // Do navigation...
-    if (aKey == EKeyLeftArrow)
-        {        
-        if(!candidatePane->SelectPrev())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectLastPhrase();
-            }
-        response = ETrue;
-        }
-    else if (aKey == EKeyRightArrow)
-        {              
-        if(!candidatePane->SelectNext())
-            {
-            candidatePane->SetCandidateBuffer();
-            candidatePane->SelectFirstPhrase();
-            }
-        response = ETrue;
-        }
-        
-    if (response)
-        {
-        UpdateIndicator();
-        }   
-             
-    return response;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::UpdateIndicator
-// Update Indicator.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();        
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    
-    if ( candidatePane->IsFirstPage() )
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->IsLastPage() )
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( ETrue );
-        }
-    }      
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::DeleteKeystroke
-// Delete current keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::DeleteKeystroke()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( ( 0 == index ) || ( keystrokeArray->Count() == 0 ) )
-        {
-        return EFalse;
-        }
-    
-    if ( 1 == index )
-        {
-        keystrokeArray->Delete( 0 );
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        editPane->Reset();
-        }
-    else if ( index >= keystrokeArray->Count() )
-        {
-        keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-        editPane->SetCursorIndexOfKeystroke( keystrokeArray->Count() );
-        }
-    else
-        {
-        keystrokeArray->Delete( index - 1 );
-        editPane->SetCursorIndexOfKeystroke( index - 1 );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::AddPhraseToDB
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::AddPhraseToDB( 
-                                                     const TDesC& aPhraseAdd )
-    {   
-    TPtiUserDictionaryEntry addUdbEntry( aPhraseAdd );
-    //Add the phrase to the DB by PTI Engine
-    iOwner->PtiEngine()->AddUserDictionaryEntry( addUdbEntry );
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::RefreshCandidate
-// Refresh candidate
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::RefreshCandidate()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    uiContainer->CandidatePane()->SetCandidateBuffer();
-    uiContainer->Enable( ETrue );
-
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() && 
-            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showArrows = multiplePages || bufLength > KMinCnadidateCount;
-
-    uiContainer->ShowHorizontalScrollArrows( showArrows );
-    uiContainer->ShowVerticalScrollArrows( multiplePages );
-
-    uiContainer->CandidatePane()->SelectFirstPhrase();
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::CheckKeyNeedRepeat
-//  Check key whether need repeat.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::CheckKeyNeedRepeat( TKeyPressLength aLength )
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    if ( popup->IsChangeStatet() && aLength == ELongKeyPress )
-        {
-        return EFalse;
-        }
-    else
-        {
-        popup->SetChangeState( EFalse );
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::ClearPtiEngineKeystroke
-// clear the ptiengine keystroke;
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::ClearPtiEngineKeystroke()
-    {
-    iOwner->PtiEngine()->ClearCurrentWord();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::AddKeystrokeL
-// Add keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::AddKeystrokeL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    TInt phraseCount = popup->ChooseChineseCharacterArrayForStroke()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( phraseCount + keystrokeArray->Count() >= KMaxKeystrokeCount )
-        {
-        return EFalse;
-        }
-    
-    TBuf<1> keystroke;
-    GetShowKeystroke( aKey, keystroke );
-    if ( index >= keystrokeArray->Count() )
-        {
-        keystrokeArray->AppendL( keystroke );
-        editPane->SetCursorIndexOfKeystroke( keystrokeArray->Count() );
-        }
-    else
-        {
-        keystrokeArray->InsertL( index, keystroke );
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        }
-    return ETrue;
-    }
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::GetCandidateL
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::GetCandidateL()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* phraseCandidates = 
-        uiContainer->CandidatePane()->CandidateArray();
-    CDesCArrayFlat* keystroke = popup->KeystrokeArrayForStroke();
-    phraseCandidates->Reset();
-    TBuf<KMaxKeystrokeCount> buf;
-    TBuf<1> delimiter;
-    delimiter.Append( KDelimiter );
-    if ( !CheckFirstGroupStroke() )
-        {
-        return;
-        }
-    else if ( CheckAllKeystroke() )
-        {
-        for( TInt i = 0; i < keystroke->Count(); ++i )
-            {
-            buf.Append( keystroke->MdcaPoint( i ) );
-            }
-        }
-    else
-        {
-        TInt pos = 0;
-        if ( 0 == keystroke->Find( delimiter,pos ) )
-            {
-            for( TInt i = 0; i < pos; ++i )
-                {
-                buf.Append( keystroke->MdcaPoint( i ) );
-                }
-            }
-        else
-            {
-            for( TInt i = 0; i < keystroke->Count(); ++i )
-                {
-                buf.Append( keystroke->MdcaPoint( i ) );
-                }
-            }
-        }
-    extern void CleanArray( TAny* aAny );
-    RPointerArray<HBufC> list;
-    TCleanupItem cleanitem( CleanArray, &list );
-    CleanupStack::PushL( cleanitem );
-    HBufC* retString = ptiengine->GetCandidatesByInputString( 
-                                              buf, 
-                                              list,
-                                              EFalse );
-    
-    delete retString;
-    retString = NULL;
-    
-    for ( TInt i = 0; i < list.Count(); ++i )
-        {
-        phraseCandidates->AppendL( *(list[i]) );
-        }
-    CleanupStack::PopAndDestroy();   
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::GetKeystrokeCode
-// get Code of the key stroke. 
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::GetKeystrokeCode(
-                                                     TInt& aKey, 
-                                                     const TDesC& aKeystroke )
-    {
-    TInt count = sizeof( StrokeMap )/sizeof( StrokeMap[0] );
-    for ( TInt i = 0; i < count ; i++ )
-        {
-        TBuf<1> buf;
-        buf.Append(StrokeMap[i].iValue);
-        if (0 == aKeystroke.Compare(buf))
-            {
-            aKey = StrokeMap[i].iKeyCode;
-            break;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::CheckAllKeystroke
-// Get the candidate info.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateStrokePhraseBase::CheckAllKeystroke()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    CDesCArrayFlat* keystrokeArray = uiContainer->
-        PinyinPopupWindow()->KeystrokeArrayForStroke();
-    
-    TInt chineseCount = uiContainer->PinyinPopupWindow()->
-        ChooseChineseCharacterArrayForStroke()->Count();
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keyCode = 0;
-    TInt delimiterCount = 0; 
-    TBuf<1> delimiter;
-    delimiter.Append( KDelimiter );
-    if ( chineseCount > 0 )
-        {
-        return EFalse;
-        }
-    
-    if ( keystrokeArray->Count() > 0 )
-        {
-        if ( 0 == keystrokeArray->MdcaPoint( 0 ).Compare( delimiter ) )
-            {
-            return EFalse;
-            }
-        }
-    ClearPtiEngineKeystroke();
-    for ( TInt i = 0; i < keystrokeArray->Count(); ++i )
-        {
-        if ( 0 == keystrokeArray->MdcaPoint( i ).Compare( delimiter ) )
-            {
-            delimiterCount = delimiterCount + 1;
-            }
-        GetKeystrokeCode( keyCode, keystrokeArray->MdcaPoint( i ) );
-        stringBeforeLength = 
-            ptiengine->GetPhoneticSpelling(KEnginePhoneticIndex).Length();
-        stringAfterLength = 
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-
-        if ( stringBeforeLength == stringAfterLength )
-            {
-            ClearPtiEngineKeystroke();
-            return EFalse;
-            }
-        }
-    if ( delimiterCount >= KMaxPhraseCreationCount )
-        {
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::RevertPhraseToKeystrokeL
-// Revert the phrase to keystroke.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::RevertPhraseToKeystrokeL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* keystrokeArray = popup->KeystrokeArrayForStroke();
-    CDesCArrayFlat* phrase = popup->ChooseChineseCharacterArrayForStroke();
-    CDesCArrayFlat* phraseStroke = 
-        popup->ChooseChineseCharacterArrayKeystrokeForStroke();
-
-    TBuf<KMaxKeystrokeCount> buf;
-    if ( ( phrase->Count() == 0 ) || ( phraseStroke->Count() == 0 ) )
-        {
-        return;
-        }
-    
-    buf.Append( phraseStroke->MdcaPoint( phraseStroke->Count() - 1 ) );
-    
-    for ( TInt i = buf.Length() - 1; i >= 0; --i )
-        {
-        keystrokeArray->InsertL( 0, buf.Mid( i, 1 ) );
-        }
-    phrase->Delete( phrase->Count() - 1 );
-    phraseStroke->Delete( phraseStroke->Count() - 1 );
-    
-    TInt leng = phrase->Count() + keystrokeArray->Count();
-    if ( leng > KMaxKeystrokeCount )
-        {
-        for ( TInt i = 0; i < leng - KMaxKeystrokeCount; ++i )
-            {
-            keystrokeArray->Delete( keystrokeArray->Count() - 1 );
-            }
-        }
-    editPane->SetCursorIndexOfKeystroke( buf.Length() );
-    keystrokeArray->Compress();
-    phrase->Compress();
-    phraseStroke->Compress();
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::SetWarningColor()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CDesCArrayFlat* keystrokeArray = UIContainer()->
-        PinyinPopupWindow()->KeystrokeArrayForStroke();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt phraseCount = UIContainer()->PinyinPopupWindow()->
-        ChooseChineseCharacterArrayForStroke()->Count();
-
-    TInt indexStart = phraseCount;
-    TInt keyCode = 0;
-    TInt stringBeforeLength = 0;
-    TInt stringAfterLength = 0;
-    TInt keystrokeCount = 0;
-    TInt validKeystrokeCountOfPti = 0;
-    TBool valid = ETrue;
-    TInt delimiterCount = 0;
-    TInt delimiterADD = 0;
-    TBuf<1> delimiter;
-    delimiter.Append( KDelimiter );
-    ClearPtiEngineKeystroke();
-
-    for ( TInt i = 0; i < keystrokeArray->Count(); ++i )
-        {
-        keystrokeCount = keystrokeCount + 1;
-        if ( phraseCount + delimiterCount >= KMaxPhraseCreationCount )
-            {
-            break;
-            }
-        if ( 0 == keystrokeArray->MdcaPoint( i ).Compare( delimiter ) )
-            {
-            delimiterADD = i;
-            delimiterCount = delimiterCount + 1;
-            }
-        GetKeystrokeCode( keyCode, keystrokeArray->MdcaPoint( i ) );
-        stringBeforeLength = ptiengine->GetPhoneticSpelling(
-            KEnginePhoneticIndex).Length();
-        stringAfterLength = 
-            ptiengine->AppendKeyPress((TPtiKey)keyCode).Length();
-
-        if ( stringBeforeLength == stringAfterLength )
-            {
-            valid = EFalse;
-            }
-        else if ( valid )
-            {
-            validKeystrokeCountOfPti = validKeystrokeCountOfPti + 1;
-            }
-
-        if ( ( i == keystrokeArray->Count() - 1 ) && ( KKey0Code != keyCode )
-            && ( 1 != keystrokeCount ) && ( !valid ) )
-            {
-            editPane->SetHighlight( indexStart, indexStart + keystrokeCount - 1 );
-            validKeystrokeCountOfPti = 0;
-            keystrokeCount = 0;
-            valid = ETrue;
-            }
-
-        if ( KKey0Code == keyCode )
-            {
-            ClearPtiEngineKeystroke();
-            if ( 0 == i )
-                {
-                editPane->SetHighlight( indexStart, indexStart
-                    + keystrokeCount - 1 );
-                indexStart = phraseCount + i + 1;
-                validKeystrokeCountOfPti = 0;
-                keystrokeCount = 0;
-                valid = ETrue;
-                }
-            else
-                {
-                if ( ( 0 == keystrokeArray->MdcaPoint( i ).
-                Compare( delimiter ) ) && ( 0
-                    == keystrokeArray->MdcaPoint( i - 1 ).
-                    Compare( delimiter ) ) )
-                    {
-                    editPane->SetHighlight( indexStart, indexStart
-                        + keystrokeCount - 1 );
-                    indexStart = phraseCount + i + 1;
-                    validKeystrokeCountOfPti = 0;
-                    keystrokeCount = 0;
-                    valid = ETrue;
-                    }
-                else
-                    {
-                    if (  ( !valid ) && ( 1 != keystrokeCount ) && 
-                        ( validKeystrokeCountOfPti < keystrokeCount - 1 ) )
-                        {
-                        editPane->SetHighlight( indexStart, indexStart
-                            + keystrokeCount - 1 );
-                        indexStart = phraseCount + i + 1;
-                        validKeystrokeCountOfPti = 0;
-                        keystrokeCount = 0;
-                        valid = ETrue;
-                        }
-                    else
-                        {
-                        indexStart = phraseCount + i + 1;
-                        validKeystrokeCountOfPti = 0;
-                        keystrokeCount = 0;
-                        valid = ETrue;
-                        }
-                    }
-                }
-            }
-        }
-    
-    if ( phraseCount + delimiterCount >= KMaxPhraseCreationCount )
-        {
-        editPane->SetHighlight( 
-                phraseCount + delimiterADD, 
-                phraseCount + keystrokeArray->Count() );
-        }
-
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::SetWarningColor
-// Set warning color.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::ChangeCbaL()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    TInt keystrokeCount = popup->KeystrokeArrayForStroke()->Count();
-    TInt phraseCount = popup->ChooseChineseCharacterArrayForStroke()->Count();
-    TInt lastRes = popup->GetLastResouce();
-    
-    TBool first = CheckFirstGroupStroke();
-    CheckAllKeystroke();
-    if ( phraseCount == KMaxPhraseCreationCount )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE )
-            {
-            return;
-            }
-        //User cba done-done-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        }
-    else if ( 0 != keystrokeCount && first )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT )
-            {
-            return;
-            }
-        //User cba select-select-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        }
-    else if ( phraseCount > 1 && 0 == keystrokeCount )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE )
-            {
-            return;
-            }
-        //User cba done-done-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        }
-    else
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY )
-            {
-            return;
-            }
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::MoveCursorLeft
-// Move the cursor to Left.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::MoveCursorLeft()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt keystrokeCount = popup->KeystrokeArrayForStroke()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    if ( 0 == keystrokeCount )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    else
-        {
-        popup->SetState( KManualChangeState );
-        }
-    
-    if ( index > 1 )
-        {
-        editPane->SetCursorIndexOfKeystroke( index - 1 );
-        editPane->MoveCursorLeft();
-        }
-    else
-        {
-        if ( 1 == index )
-            {
-            editPane->SetCursorIndexOfKeystroke( 0 );
-            }
-        else
-            {
-            editPane->SetCursorIndexOfKeystroke( keystrokeCount );
-            }
-        ShowInfoOnEEPPane();
-        if ( !CheckAllKeystroke() )
-            {
-            SetWarningColor();
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::MoveCursorRight
-// Move the cursor to Right.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::MoveCursorRight()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TInt keystrokeCount = popup->KeystrokeArrayForStroke()->Count();
-    TInt index = editPane->GetCursorIndexOfKeystroke();
-    if ( 0 == keystrokeCount )
-        {
-        iOwner->FepMan()->PlaySound( EAvkonSIDErrorTone );
-        return;
-        }
-    else
-        {
-        popup->SetState( KManualChangeState );
-        }
-    
-    if ( index < keystrokeCount )
-        {
-        editPane->SetCursorIndexOfKeystroke( index + 1 );
-        editPane->MoveCursorRight();
-        }
-    else
-        {
-        editPane->SetCursorIndexOfKeystroke( 0 );
-        ShowInfoOnEEPPane();
-        if ( !CheckAllKeystroke() )
-            {
-            SetWarningColor();
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepInputStateStrokePhraseBase::GetNewCandidatesL 
-// Get new candidate
-// ---------------------------------------------------------------------------
-//
-void TAknFepInputStateStrokePhraseBase::GetNewCandidatesL(const TDesC& aSource, 
-                                                    RPointerArray<HBufC>& aList)
-    {
-    TInt start = 0;
-    TInt length = 0;
-
-    for (TInt ii = 0; ii < aSource.Length(); ii++)
-        {
-        if (aSource[ii] == KSegment)
-            {
-            TPtrC segment(aSource.Ptr() + start, length);
-            aList.AppendL(segment.AllocL());
-            start += (length + 1);
-            length = 0;
-            }
-        else
-            {
-            length++;
-            }
-        }
-
-    if (length)
-        {
-        TPtrC segm(aSource.Ptr() + start, length);
-        aList.AppendL(segm.AllocL());
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuiinputstatezhuyinphrasecreationbase.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,628 +0,0 @@
-/*
-* 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 TAknFepInputStateEntryZhuyinPhraseCreation methods.
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <PtiEngine.h>                          //CPtiEngine
-#include <avkon.rsg>
-#include <aknfep.rsg>
-
-#include "aknfepuiinputstatezhuyinphrasecreationbase.h"
-#include "AknFepUIManagerStateInterface.h"      //MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"           //MAknFepManagerUIInterface
-#include "AknFepUiCtrlContainerChinese.h"
-#include "AknFepUICtrlPinyinPopup.h"    //Pinyin phrase
-#include "aknfepuictrleditpane.h" 
-#include "AknFepUICtrlCandidatePane.h"
-#include "AknFepUICtrlInputPane.h"
-#include "aknfepzhuyinkeyhandlerinterface.h" //MZhuyinKeyHandler
-#include "AknFepZhuyinAnalyser.h"
-#include "aknfepzhuyinconvertion.h" //TZhuyinSymbolsMethods
-
-_LIT( KStrokeManualSeparator, "\x002E");
-_LIT( KToneMark1, "\x0020" );
-_LIT( KToneMark2, "\x02CA" );
-_LIT( KToneMark3, "\x02C7" );
-_LIT( KToneMark4, "\x02CB" );
-_LIT( KToneMark5, "\x02D9" );
-
-const TInt KMaxBufLen = 100;
-const TInt KMaxKeystrokeCount = 100;
-const TInt KMaxInputLength = 31;
-const TInt KMaxPhraseCreationCount = 7;
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-TAknFepInputStateZhuyinPhraseCreationBase::TAknFepInputStateZhuyinPhraseCreationBase(
-    MAknFepUIManagerStateInterface* aOwner,
-    MAknFepUICtrlContainerChinese* aUIContainer ) :
-    TAknFepInputStateCandidateBase( aOwner, aUIContainer )
-    {    
-    iState = EEntry;
-
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-
-    uiContainer->FocusCandidatePane(EFalse);
-    
-    TBool multiplePages = !(uiContainer->CandidatePane()->IsLastPage() &&
-                            uiContainer->CandidatePane()->IsFirstPage());
-    TInt bufLength = iOwner->PtiEngine()->CandidatePage().Length();
-    TBool showHorizontalScrollArrows = multiplePages || bufLength>1;
-
-    uiContainer->ShowHorizontalScrollArrows(showHorizontalScrollArrows); 
-    uiContainer->ShowVerticalScrollArrows(multiplePages);
-    uiContainer->FocusCandidatePane(ETrue);
-    candidatePane->SetHighlighted(ETrue);
-    candidatePane->ShowCandidateOrdinals(EFalse);
-    candidatePane->SelectFirstPhrase();
-    }
-    
-TBool TAknFepInputStateZhuyinPhraseCreationBase::AddKeystrokeL( TInt aKey )
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* zhuyinSymbol = popup->ZhuyinSymbols();
-    TInt chineseCount = popup->ChineseCharsDisped()->Count();
-    TInt currentIndex = editPane->GetCursorIndexOfKeystroke();
-    TBuf<1> buf;
-    TBuf<KMaxBufLen> showbuf;
-    showbuf = uiContainer->PinyinPopupWindow()->GetEEPContent();
-    
-    TInt ret = iOwner->ZhuyinKeyHandler()->GetZhuyinSymbol( (TPtiKey)aKey, buf );  
-    TInt showbufLen = showbuf.Length();
-    
-    if ( showbufLen >= KMaxInputLength )
-        {
-        if ( ( 0 == currentIndex ) || ( 1 == ret ) )
-            {
-            iOwner->ZhuyinKeyHandler()->Reset();
-            return EFalse;
-            }
-        return ReplaceKeystrokeL( currentIndex,
-                                 chineseCount,
-                                 buf,
-                                 zhuyinSymbol
-                                 );
-        }
-    
-    if ( showbufLen == KMaxInputLength - 1 )
-        {
-        if ( 0 == currentIndex )
-            {
-            iOwner->ZhuyinKeyHandler()->Reset();
-            return EFalse;
-            }
-        else if ( 1 == ret )
-            {
-            zhuyinSymbol->InsertL( currentIndex, buf );
-            if ( CheckKeystrokeCountL( chineseCount, zhuyinSymbol ) )
-                {
-                editPane->SetCursorIndexOfKeystroke( currentIndex + 1 );
-                return ETrue;
-                }
-            else
-                {
-                iOwner->ZhuyinKeyHandler()->Reset();
-                zhuyinSymbol->Delete( currentIndex );
-                return EFalse;
-                }
-            }
-        else
-            {
-            return ReplaceKeystrokeL( currentIndex,
-                                     chineseCount,
-                                     buf,
-                                     zhuyinSymbol
-                                     );
-            }
-        }
-    
-
-    else if ( ( 0 != currentIndex ) &&
-        ( KMaxInputLength <= showbufLen ) )
-        {
-        if ( 0 == ret )
-            {
-            zhuyinSymbol->Delete( currentIndex - 1 );
-            zhuyinSymbol->InsertL( currentIndex - 1, buf );
-            return ETrue;
-            }
-        else
-            {
-            iOwner->ZhuyinKeyHandler()->Reset();
-            return EFalse;
-            }
-        }
-    else if ( ( 0 == currentIndex ) && 
-        ( KMaxInputLength > showbufLen ) ) 
-        {
-        zhuyinSymbol->InsertL( currentIndex, buf );
-        editPane->SetCursorIndexOfKeystroke( currentIndex + 1 );
-        return ETrue;
-        }
-    else if ( ( 0 != currentIndex ) && 
-        ( KMaxInputLength > showbufLen ) ) 
-        {
-        if ( 0 == ret )
-            {
-            zhuyinSymbol->Delete( currentIndex - 1 );
-            zhuyinSymbol->InsertL( currentIndex - 1, buf );
-            return ETrue;
-            }
-        else if ( 1 == ret )
-            {
-            zhuyinSymbol->InsertL( currentIndex, buf );
-            editPane->SetCursorIndexOfKeystroke( currentIndex + 1 );
-            return ETrue;
-            }
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateZhuyinPhraseCreationBase::AddToneMarkL()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    MZhuyinKeyHandler* zhuyinKeyHandler = iOwner->ZhuyinKeyHandler();
-    CDesCArrayFlat* zhuyinSymbols = uiContainer->PinyinPopupWindow()->ZhuyinSymbols();
-    
-    TBuf<1> baseBuf;
-    TBuf<1> buf;
-    baseBuf.Zero();
-    TInt strokePos = editPane->GetCursorIndexOfKeystroke();
-    
-    TBuf<KMaxBufLen> showbuf;
-    showbuf = popup->GetEEPContent();
-    
-    if ( strokePos > 0 )
-        {
-        baseBuf.Append( zhuyinSymbols->MdcaPoint( strokePos - 1 ) );
-        }
-    TInt insert = zhuyinKeyHandler->GetToneMark( baseBuf, buf );
-    if ( insert == 0 )
-        {
-        zhuyinSymbols->Delete ( strokePos - 1, 1 );
-        zhuyinSymbols->InsertL(strokePos - 1, buf);
-        }
-    // for insert
-    else if ( insert == 1)
-        {
-        if ( showbuf.Length() >= KMaxInputLength )
-            {
-            return EFalse;
-            }
-        zhuyinSymbols->InsertL(strokePos, buf);
-        editPane->SetCursorIndexOfKeystroke(strokePos + 1);
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateZhuyinPhraseCreationBase::DeleteZhuyinSymbolOrChinese()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    MAknFepUICtrlPinyinPopup* popup = uiContainer->PinyinPopupWindow();
-    CDesCArrayFlat* zhuyinSymbols = popup->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = popup->ChineseCharsDisped();
-    CDesCArrayFlat* zhuyinSymbolsForChinese = popup->ZhuyinSymbolsForChineseCharsDisped();
-    TInt keyStrokePos = editPane->GetCursorIndexOfKeystroke();
-    
-    if ( 1 == keyStrokePos )
-        {
-        editPane->Reset();
-        }
-    
-    if ( keyStrokePos != 0 )
-        {
-        TZhuyinSymbolsMethods::DeleteZhuyinSymbol(
-            zhuyinSymbols,
-            keyStrokePos);
-            editPane->SetCursorIndexOfKeystroke(keyStrokePos-1);
-        }
-    else if ( chineseDisped->Count() )
-        {
-        TInt oldLen =  zhuyinSymbols->Count();
-        TZhuyinSymbolsMethods::DeleteChineseChar(
-            zhuyinSymbols,
-            chineseDisped,
-            zhuyinSymbolsForChinese
-            );
-        TInt newLen = zhuyinSymbols->Count();
-        editPane->SetCursorIndexOfKeystroke(newLen - oldLen);
-        }
-    return ETrue;
-    }
-
-TBool TAknFepInputStateZhuyinPhraseCreationBase::UpdateEEPContent()
-    {
-    CPtiEngine* ptiengine = iOwner->PtiEngine();
-    CDesCArrayFlat* zhuyinSymbols = UIContainer()->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = UIContainer()->PinyinPopupWindow()->ChineseCharsDisped();
-    CAknFepZhuyinAnalyser* analyser = iOwner->ZhuyinAnalyser();
-    CDesCArrayFlat* candidateList = UIContainer()->CandidatePane()->CandidateArray();
-    TBuf<KMaxBufLen> buf;
-    TBool isPhraseCreation = EFalse;
-    TInt extLen = chineseDisped->Count() + zhuyinSymbols->Count() - KMaxInputLength;
-    
-    if ( extLen > 0 )
-        {
-        TInt keyStrokePos = UIContainer()->EditPaneWindow()->GetCursorIndexOfKeystroke();
-        zhuyinSymbols->Delete ( zhuyinSymbols->Count() - extLen, extLen );
-        if ( keyStrokePos > zhuyinSymbols->Count() )
-            {
-            UIContainer()->EditPaneWindow()->SetCursorIndexOfKeystroke( zhuyinSymbols->Count() );
-            }
-        }
-
-    TBool valid = TZhuyinSymbolsMethods::UpdateEEPContent(
-        ptiengine,
-        analyser,
-        zhuyinSymbols,
-        chineseDisped,
-        candidateList,
-        buf,
-        isPhraseCreation
-        );
-
-    if ( ( chineseDisped->Count() != 0 || zhuyinSymbols->Count() > 1 ) &&
-        ( candidateList->Count() != 0 ) )
-        {
-        for ( TInt i = 0; i < candidateList->Count(); ++i )
-            {
-            if ( TZhuyinSymbolsMethods::IsZhuyinSymbol( candidateList->MdcaPoint( i ) ) )
-                {
-                candidateList->Delete( i, 1 );
-                break;
-                }
-            }
-        }
-    UIContainer()->PinyinPopupWindow()->SetEEPContentValid(valid);
-    UIContainer()->CandidatePane()->SplitPhraseCandidatesIntoPages();
-    if ( !valid || candidateList->Count() == 0 )
-        {
-        DeleteSeparatorWhenInvaild( buf );
-        valid = EFalse;
-        }
-    CheckShowInfo( buf, zhuyinSymbols );
-    UIContainer()->PinyinPopupWindow()->SetEEPContent(buf);
-    return valid;
-    }
-   
-void TAknFepInputStateZhuyinPhraseCreationBase::UpdateIndicator()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlCandidatePane* candidatePane = uiContainer->CandidatePane();
-    TInt candidateCount = candidatePane->CandidateArray()->Count();
-
-    if ( candidatePane->IsFirstPage() || candidateCount== 0 )
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowUpScrollArrows( ETrue );
-        }
-
-    if ( candidatePane->IsLastPage() || candidateCount== 0 )
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( EFalse );
-        }
-    else
-        {
-        uiContainer->CandidatePane()->ShowDownScrollArrows( ETrue );
-        }
-    }
-
-// ---------------------------------------------------------
-// Get high light begine position.
-// ---------------------------------------------------------
-//
-TInt TAknFepInputStateZhuyinPhraseCreationBase::BegPosOfMoreThanSeven()
-    {
-    TInt i = 0;
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    TBuf<KMaxBufLen> buf;
-    buf = uiContainer->PinyinPopupWindow()->GetEEPContent();
-    TInt characterCount = uiContainer->PinyinPopupWindow()->ChineseCharsDisped()->Count();
-    TInt allTextCount = characterCount;
-
-    // calculate the total number of character according to stroke
-    for (i = 0; i < buf.Length() && allTextCount < KMaxPhraseCreationCount; i++ )
-        {
-        if ( ( buf.Mid( i, 1 ) == KStrokeManualSeparator )|| 
-            ( buf.Mid( i, 1 ) == KToneMark1 ) ||
-            ( buf.Mid( i, 1 ) == KToneMark2 ) ||
-            ( buf.Mid( i, 1 ) == KToneMark3 ) ||
-            ( buf.Mid( i, 1 ) == KToneMark4 ) ||
-            ( buf.Mid( i, 1 ) == KToneMark5 ) )
-            {
-            allTextCount++;
-            }
-        }
-
-    allTextCount++;
-    
-    if ( allTextCount > KMaxPhraseCreationCount )
-        {
-        return i;
-        }
-    else
-        {
-        return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Set high light.
-// ---------------------------------------------------------
-//
-void TAknFepInputStateZhuyinPhraseCreationBase::HighlightMoreThanSeven( TInt aBegPos )
-    {
-    MAknFepUICtrlEditPane* editPane = UIContainer()->EditPaneWindow();
-    TBuf<KMaxBufLen> buf;
-    buf = UIContainer()->PinyinPopupWindow()->GetEEPContent();
-    TInt EndPos = buf.Length();
-    editPane->SetHighlight( aBegPos, EndPos );
-    }
-
-// ---------------------------------------------------------
-// replace the keystroke.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateZhuyinPhraseCreationBase::ReplaceKeystrokeL(
-                                                TInt aIndex, 
-                                                TInt aChineseCount,
-                                                const TDesC& aSymbol, 
-                                                CDesCArrayFlat* aZhuyinSymbol )
-    {
-    TBuf<1> bufTmp;
-    bufTmp.Append( aZhuyinSymbol->MdcaPoint( aIndex - 1 ) );
-    aZhuyinSymbol->Delete( aIndex - 1 );
-    aZhuyinSymbol->InsertL( aIndex - 1, aSymbol );
-    if ( CheckKeystrokeCountL( aChineseCount, aZhuyinSymbol ) )
-        {
-        return ETrue;
-        }
-    else
-        {
-        aZhuyinSymbol->Delete( aIndex - 1 );
-        aZhuyinSymbol->InsertL( aIndex - 1, bufTmp );
-        return EFalse;
-        }
-    }
-
-void TAknFepInputStateZhuyinPhraseCreationBase::RefreshUI()
-    {
-    MAknFepUICtrlContainerChinese* uiContainer = UIContainer();
-    MAknFepUICtrlEditPane* editPane = uiContainer->EditPaneWindow();
-    CDesCArrayFlat* zhuyinSymbols = uiContainer->PinyinPopupWindow()->ZhuyinSymbols();
-    CDesCArrayFlat* chineseDisped = uiContainer->PinyinPopupWindow()->ChineseCharsDisped();
-    
-    CDesCArrayFlat* candidateList = uiContainer->CandidatePane()->CandidateArray();
-    
-    // get cursor position
-    TPoint baseLine;
-    TInt height(0);
-    TInt ascent(0);
-    TRAPD(ret,iOwner->FepMan()->
-        GetScreenCoordinatesL(baseLine,height,ascent));
-    if ( ret == KErrNone )
-        {
-        uiContainer->SetContainerPosition( baseLine, height );
-        }
-    TBuf<KMaxBufLen> seed;
-    TBool valid = ETrue;
-    TBuf<KMaxBufLen> buf;
-    buf = uiContainer->PinyinPopupWindow()->GetEEPContent();
-    valid = uiContainer->PinyinPopupWindow()->GetEEPContentValid();
-
-    TBool isHighlight = EFalse;
-    TInt zhuyinBegPos = chineseDisped->Count();
-
-   TRAP_IGNORE( isHighlight = !iOwner->ZhuyinAnalyser()->AnalyzeL( buf.Mid( zhuyinBegPos ) ) );
-   CheckShowInfo( buf, zhuyinSymbols );
-   
-    TInt keyStrokePos = editPane->GetCursorIndexOfKeystroke();
-    if ( keyStrokePos > zhuyinSymbols->Count() + 1 )
-    	{
-    	keyStrokePos = zhuyinSymbols->Count();
-    	editPane->SetCursorIndexOfKeystroke( keyStrokePos );
-    	}
-    TInt newCursorPos = TZhuyinSymbolsMethods::RefreshCursorPos(
-        chineseDisped->Count(),buf,keyStrokePos);
-    
-    TZhuyinSymbolsMethods::Convert2Des(zhuyinSymbols,seed);
-    editPane->SetTextForZhuyin(buf,newCursorPos,chineseDisped->Count(),seed,keyStrokePos,!valid);
-    if ( !valid || isHighlight
-        || candidateList->Count()== 0 || zhuyinSymbols->Count() == 0 )
-        {
-        uiContainer->CandidatePane()->SetInVisiable();
-        editPane->SetHighlight(chineseDisped->Count(),buf.Length()-1);
-        uiContainer->SetControlInVisible( EFalse );
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowHorizontalScrollArrows( EFalse );
-        uiContainer->ShowVerticalScrollArrows( EFalse );   
-        }
-    else
-        {
-        uiContainer->SetControlInVisible( ETrue );
-        uiContainer->CandidatePane()->SetCandidateBuffer();
-        uiContainer->CandidatePane()->SelectFirstPhrase();
-        uiContainer->Enable( ETrue );
-        uiContainer->ShowVerticalScrollArrows( ETrue );
-        }
-    TInt begPos = BegPosOfMoreThanSeven();
-
-    if ( begPos )
-        {
-        HighlightMoreThanSeven( begPos );
-        }
-
-    UpdateIndicator();
-    }
-
-// ---------------------------------------------------------
-// Check the keystroke count.
-// ---------------------------------------------------------
-//
-TBool TAknFepInputStateZhuyinPhraseCreationBase::CheckKeystrokeCountL(
-                                              TInt aChineseCount,
-                                              CDesCArrayFlat* aZhuyinSymbol )
-    {
-    TBuf<KMaxKeystrokeCount> inputBuf;
-    
-    for (TInt i = 0; i < aZhuyinSymbol->Count(); ++i )
-        {
-        inputBuf.Append( aZhuyinSymbol->MdcaPoint( i ) );
-        }
-    
-    if ( !iOwner->ZhuyinAnalyser()->AnalyzeL( inputBuf ) )
-        {
-        return ETrue;
-        }
-    else
-        {
-        HBufC* showBuf = iOwner->ZhuyinAnalyser()->LastAnalysisResult();
-        if ( showBuf->Length() > KMaxInputLength - aChineseCount )
-            {
-            return EFalse;
-            }        
-        }  
-    return ETrue;
-    }
-
-void TAknFepInputStateZhuyinPhraseCreationBase::HandleCommandL(TInt /*aCommandId*/)
-    {   
-    RefreshUI();    
-    }
-
-void TAknFepInputStateZhuyinPhraseCreationBase::CheckShowInfo( TDes& aOutDes, 
-                                            CDesCArrayFlat* aZhuyinSymbol )
-    {
-    if( aOutDes.Length() <= KMaxInputLength )
-        {
-        return;
-        }
-    TInt extLen = aOutDes.Length() - KMaxInputLength;
-    TInt delCount = 0;
-    TBuf<KMaxInputLength> delBuf;
-    delBuf.Copy( aOutDes.Mid( KMaxInputLength ) );
-    aOutDes.Delete( KMaxInputLength, extLen );
-    if ( aOutDes.Mid( KMaxInputLength - 1, 1 ).
-        Compare( KStrokeManualSeparator ) == 0 )
-        {
-        aOutDes.Delete( KMaxInputLength - 1, 1 );
-        }
-    
-    for ( TInt i = 0; i < delBuf.Length(); i++ )
-        {
-        if ( delBuf.Mid( i, 1 ).Compare( KStrokeManualSeparator ) != 0 )
-            {
-            delCount++;
-            }
-        }
-    
-    for ( TInt i = 0; i < delCount; i++ )
-        {
-        aZhuyinSymbol->Delete( aZhuyinSymbol->Count() - 1 );
-        }
-    }
-
-// ---------------------------------------------------------
-// Change CBA
-// ---------------------------------------------------------
-//
-void TAknFepInputStateZhuyinPhraseCreationBase::ChangeCbaL()
-    {
-    MAknFepUICtrlPinyinPopup* popup = UIContainer()->PinyinPopupWindow();
-    CDesCArrayFlat* zhuyinSymbol = popup->ZhuyinSymbols();
-    CDesCArrayFlat* chineseArray = popup->ChineseCharsDisped( );
-    CDesCArrayFlat* candidateArray = UIContainer()->CandidatePane()->CandidateArray( );
-    TBool vaild = popup->GetEEPContentValid( );
-    TInt lastRes = popup->GetLastResouce();
-
-    if ( chineseArray->Count( ) == KMaxPhraseCreationCount )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE )
-            {
-            return;
-            }
-        //User cba done-done-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        }
-    else if ( ( 0 != zhuyinSymbol->Count( ) ) && (candidateArray->Count( )
-        != 0 ) && vaild )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT )
-            {
-            return;
-            }
-        //User cba select-select-cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_PHRASE_CREATION_SELECT_CANCEL_SELECT );
-        }
-    else if ( (chineseArray->Count( ) > 1 )
-        && ( 0 == zhuyinSymbol->Count( ) ) )
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE )
-            {
-            return;
-            }
-        //User cba Done-Done-Cancel
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS_DONE_CANCEL_DONE );
-        }
-    else
-        {
-        if ( lastRes == R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY )
-            {
-            return;
-            }
-        iOwner->FepMan()->UpdateCbaL( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        popup->SetLastResouce( R_AKNFEP_SOFTKEYS__PHRASE_CREATION_EMPTY_CANCEL_EMPTY );
-        }
-    }
-
-void TAknFepInputStateZhuyinPhraseCreationBase::DeleteSeparatorWhenInvaild( TDes& aDes )
-    {
-    TInt count = aDes.Length();
-    for ( TInt i = count - 1; i > 0; i-- )
-        {
-        if ( aDes.Mid( i, 1 ).Compare( KStrokeManualSeparator ) == 0 )
-            {
-            aDes.Delete( i, 1 );
-            }
-        }
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuimanagerfingeritutchinese.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/*
-* Copyright (c) 2002 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:            Chinese finger ITUT ui manager implementation file.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <e32keys.h>
-#include <AknFepPluginManager.h>
-#include <PtiEngine.h> 
-#include <PtiDefs.h>
-
-#include "AknFepUiManagerBase.h"
-#include "aknfepuimanagerfingeritutchinese.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepGlobalEnums.h"
-#include "aknfepuifingeritutinputstategeneric.h"
-#include "AknFepCaseManager.h"
-#include "AknFepPanic.h"
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// Symbian constructor
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerFingerItutChinese* CAknFepUIManagerFingerItutChinese::NewL(
-    MAknFepManagerUIInterface* aFepMan, CAknFepCaseManager* aCaseMan, 
-    TLanguage aLanguage, CAknFepPluginManager* aPluginMager)
-    {   
-    CAknFepUIManagerFingerItutChinese* self = new(ELeave)
-        CAknFepUIManagerFingerItutChinese(aFepMan, aCaseMan, aPluginMager);
-        
-    CleanupStack::PushL(self);
-    self->ConstructL(aLanguage);
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerFingerItutChinese::~CAknFepUIManagerFingerItutChinese()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Handle key event
-// ---------------------------------------------------------------------------
-//
-TBool CAknFepUIManagerFingerItutChinese::HandleKeyL( TInt aKey, TKeyPressLength aLength,
-		                                            TEventCode /*aEventCode*/ )
-    {
-    TUIState currentState = iFepUiState.State();
-    if (aLength == EShortKeyPress)
-        {
-        iInitialFepUIState = currentState;
-        }
-
-    if(!iPluginMager->CurrentPluginInputFepUI()->HandleKeyL(
-         aKey == EStdKeyNull ? EPtiKeyStar : aKey , aLength))
-        {
-        return iStatePtr->HandleKeyL(aKey, aLength); // Failed to handle it
-        }
-        
-    return ETrue; // It is ok.
-    }
-
-// ---------------------------------------------------------------------------
-// Close current Finger ITUT ui
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerFingerItutChinese::CloseUI()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Input mode is supported by this ui
-// ---------------------------------------------------------------------------
-//
-TInt CAknFepUIManagerFingerItutChinese::SupportLanguage(TInt /*aMode*/) const
-    {
-    return iLanguage;
-    }
-
-// ---------------------------------------------------------------------------
-// Change state machine
-// ---------------------------------------------------------------------------
-//
-TUIState CAknFepUIManagerFingerItutChinese::ChangeState(TUIState /* aState*/)
-    {
-    // ask pti engine if phrase input is supported
-    return iStatePtr->State();
-    }
-
-// ---------------------------------------------------------------------------
-// Get current fep ui state machine
-// ---------------------------------------------------------------------------
-//
-TAknFepInputStateBase* CAknFepUIManagerFingerItutChinese::FepUIState()
-    {
-    return &iFepUiState;
-    }
-
-// ---------------------------------------------------------------------------
-// Set current input language
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerFingerItutChinese::SetInputLanguageL(TLanguage aLanguage)
-    {
-    iLanguage = aLanguage;
-    }
-
-// ---------------------------------------------------------------------------
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-CAknFepUIManagerFingerItutChinese::CAknFepUIManagerFingerItutChinese(
-    MAknFepManagerUIInterface* aFepMan, 
-    CAknFepCaseManager* aCaseMan, 
-    CAknFepPluginManager* aPluginMager)
-    : CAknFepUIManagerBase(aFepMan, aCaseMan),
-    iFepUiState(NULL),
-    iPrevMode(ENumber),
-    iPluginMager(aPluginMager)
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Symbian second-phase constructor
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerFingerItutChinese::ConstructL(TLanguage aLanguage)
-    {
-    CAknFepUIManagerBase::ConstructL(aLanguage);
-    SetMode(iFepMan->InputMode(), ETrue, EFalse);
-    iFepUiState = TAknFepUIFingerItutInputStateChineseGeneric(this/*, NULL*/);
-    }
-
-// ---------------------------------------------------------------------------
-// Change ITUT state machine
-// ---------------------------------------------------------------------------
-//
-void CAknFepUIManagerFingerItutChinese::ChangeStatetItut(TUIState /* aState*/)
-    {
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepuispellcontainer.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* Copyright (c)  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 CAknFepUiSpellContainer methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include <eikgted.h>                  // for CEikGlobalTextEditor
-#include <eiktxlbm.h>                 // for CTextListBoxModel
-#include <eikclbd.h>                  // for CColumnListBoxData
-#include <eikbtgpc.h>                 // for CEikButtonGroupContainer
-#include <barsread.h>                 // for TResourceReader
-#include <eikclb.h>                   // for CEikColumnListBox
-#include <aknnotewrappers.h>          // for CAknInformationNote
-#include <appapaclayout.cdl.h>        // for Layout stuff
-#include <StringLoader.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <layoutmetadata.cdl.h>
-
-#include "aknfepuispellcontainer.h"            
-#include "aknfepuispellinputpane.h"
-
-// CONSTANTS
-const TInt KNumberOfContainerControl = 1;
-
-// Enumarations
-enum TControls
-    {
-    EInputPane
-    };
-
-// ================= MEMBER FUNCTIONS ======================
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::CAknFepUiSpellContainer
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellContainer::CAknFepUiSpellContainer()
-:iInputPane( NULL )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::InputPane
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellInputPane* CAknFepUiSpellContainer::InputPane()
-    {
-    return iInputPane;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::SetInputWinObserver
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellContainer::SetInputWinObserver( MEikEdwinObserver* aObserver )
-    {
-    iInputPane->SetInputWinObserver(aObserver);
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::ConstructL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellContainer::ConstructL(const TInt aEditorFlag, 
-    const TInt aEditorCase, const TInt aEditorSCTResID)
-    {  
-    CreateWindowL();
-
-    iInputPane = CAknFepUiSpellInputPane::NewL( this, aEditorFlag, aEditorCase,aEditorSCTResID);
-    
-    iInputPane->SetMopParent(this);
-    
-    iInputPane->SetFocus( ETrue );
-    SetContainerRect();
-    
-    iEikonEnv->EikAppUi()->AddToStackL(this,ECoeStackPriorityDialog);    
-    ActivateL();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::NewL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellContainer* CAknFepUiSpellContainer::NewL(const TInt aEditorFlag, 
-    const TInt aEditorCase, const TInt aEditorSCTResID)
-    {
-    CAknFepUiSpellContainer* self = new ( ELeave ) CAknFepUiSpellContainer();
-    CleanupStack::PushL( self );
-    
-    self->SetMopParent(CEikonEnv::Static()->EikAppUi());
-    self->ConstructL(aEditorFlag, aEditorCase, aEditorSCTResID);
-
-    CleanupStack::Pop();
-    
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::~CAknFepUiSpellContainer
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellContainer::~CAknFepUiSpellContainer()
-    {
-    iEikonEnv->EikAppUi()->RemoveFromStack(this);
-    
-    delete iInputPane;
-    iInputPane = NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::CountComponentControls
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TInt CAknFepUiSpellContainer::CountComponentControls() const
-    {
-    return KNumberOfContainerControl; 
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::ComponentControl
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CCoeControl* CAknFepUiSpellContainer::ComponentControl( TInt aIndex ) const
-    {
-    switch ( aIndex )
-        {
-        case EInputPane:
-            {
-            return iInputPane;
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::Draw
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellContainer::Draw( const TRect& /*aRect*/ ) const
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::InputCapabilities
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TCoeInputCapabilities CAknFepUiSpellContainer::InputCapabilities() const
-    {
-    if ( iInputPane && iInputPane->IsFocused())
-        {
-        return iInputPane->InputCapabilities();
-        }
-
-    return ENone;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::OfferKeyEventL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TKeyResponse CAknFepUiSpellContainer::OfferKeyEventL( 
-            const TKeyEvent& aKeyEvent, TEventCode aType )
-    {
-    if ( iInputPane && iInputPane->IsFocused())
-        {
-        return iInputPane->OfferKeyEventL( aKeyEvent, aType );
-        }
-    
-    return EKeyWasNotConsumed;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::SizeChanged
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellContainer::SizeChanged()
-    {  
-    iInputPane->SetRect(Rect());
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::SetContainerRect
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellContainer::FocusChanged(TDrawNow aDrawNow)
-    {
-    TBool bFocused = IsFocused() ? ETrue : EFalse;
-    
-    if ( ComponentControl( 0 ) )
-        {
-        ComponentControl( 0 )->SetFocus( bFocused, aDrawNow );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellContainer::SetContainerRect
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void  CAknFepUiSpellContainer::SetContainerRect()
-    {
-    TAknWindowLineLayout appWnd = AknLayoutScalable_Apps::application_window().LayoutLine();
-    TAknWindowLineLayout mainPane;
-    if ( Layout_Meta_Data::IsLandscapeOrientation())
-        {
-        mainPane = AknLayoutScalable_Apps::main_pane(4).LayoutLine();	
-        }
-    else
-        {
-        mainPane = AknLayoutScalable_Apps::main_pane(0).LayoutLine();		
-        }
-     
-    TAknLayoutRect mainPaneRect;
-    mainPaneRect.LayoutRect(appWnd.Rect(), mainPane);
-
-    mainPaneRect.Rect();
-    
-    TInt ay = mainPaneRect.Rect().iTl.iY + 
-              ((mainPaneRect.Rect().iBr.iY - mainPaneRect.Rect().iTl.iY) / 5)*4;
-    
-    TRect containerRect(0, ay, mainPaneRect.Rect().iBr.iX, mainPaneRect.Rect().iBr.iY);
-    TRect tempRect = TRect(0,0,1,1);
-    SetRect(tempRect);
-    }
-    
-// End of File  
--- a/fep/aknfep/src/aknfepuispellinputpane.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +0,0 @@
-/*
-* Copyright (c)  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 CAknFepUiSpellInputPane methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <eikgted.h>            // for CEikGlobalTextEditor
-#include <eikedwob.h>           // for MEikEdwinObserver
-#include <eikenv.h>             // for CEikonEnv
-#include <barsread.h>           // for TResourceReader
-#include <eiklabel.h>           // for CEikLable
-#include <AknUtils.h>
-#include <eikedwin.h> 
-#include <appapaclayout.cdl.h>        // for Layout stuff
-#include <aknlayoutscalable_apps.cdl.h>
-#include <StringLoader.h>
-
-#include "aknfepuispellinputpane.h"
-
-// CONSTANTS
-const TInt KNumberOfControl = 1;
-const TInt KSpellMaxLength = 32;    
-const TInt KTouchSpellEditorMaxLine = 1;  
-// Enumarations
-enum TControls
-    {
-    EInputWin
-    };
-
-// ================= MEMBER FUNCTIONS ======================
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::CAknFepUiSpellInputPane
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellInputPane::CAknFepUiSpellInputPane()
-:iInputWin( NULL )
-{
-} 
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::CAknFepUiSpellInputPane
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::ConstructL( CCoeControl* aParent, 
-    const TInt aEditorFlag, const TInt aEditorCase, 
-    const TInt aEditorSCTResID )
-{
-    // Create as a child window of the specified parent control's window.
-    CreateWindowL( aParent );
-    
-    SetMopParent(aParent);
-
-    // Create input editor
-    iInputWin = new ( ELeave ) CEikEdwin;
-    // Initialize the editor
-    iInputWin->SetContainerWindowL( *this );
-    iInputWin->ConstructL(0,0,0,KTouchSpellEditorMaxLine);
-    
-    iInputWin->SetAknEditorInputMode(EAknEditorTextInputMode);
-    iInputWin->SetAknEditorSpecialCharacterTable(aEditorSCTResID);
-    iInputWin->SetAknEditorFlags(iInputWin->AknEdwinFlags() | 
-        aEditorFlag | EAknEditorFlagNoT9);
-    iInputWin->SetAknEditorCase(aEditorCase);
-	iInputWin->SetMaxLength(KSpellMaxLength);
-    iInputWin->SetMopParent(this);
-    iInputWin->SetFocus( EFalse );
-
-    iInputWin->ActivateL();
-
-    ActivateL();
-}
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::NewL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellInputPane* CAknFepUiSpellInputPane::NewL(
-    CCoeControl* aParent, const TInt aEditorFlag, 
-    const TInt aEditorCase, const TInt aEditorSCTResID)
-    {
-    CAknFepUiSpellInputPane* self = new ( ELeave ) CAknFepUiSpellInputPane;
-    
-    CleanupStack::PushL( self );
-    self->ConstructL( aParent, aEditorFlag, aEditorCase, aEditorSCTResID );
-    CleanupStack::Pop();
-    
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::~CAknFepUiSpellInputPane
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CAknFepUiSpellInputPane::~CAknFepUiSpellInputPane()
-    {
-    delete iInputWin;
-    iInputWin = NULL;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::InputWin
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CEikEdwin* CAknFepUiSpellInputPane::InputWin() const
-    {
-    return iInputWin;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::SetInputWinObserver
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::SetInputWinObserver( MEikEdwinObserver* aObserver )
-    {
-    iInputWin->SetEdwinObserver( aObserver );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::SetInputWinTextL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::SetInputWinTextL( const TDesC* aDes )
-    {
-    iInputWin->SetTextL( aDes );
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::SelectAllL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::SelectAllL()
-    {
-    iInputWin->SelectAllL();
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::InputCapabilities
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TCoeInputCapabilities CAknFepUiSpellInputPane::InputCapabilities() const
-    {
-    if (iInputWin->IsFocused())
-        {
-        return iInputWin->InputCapabilities();
-        }
-
-    return ENone;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::OfferKeyEventL
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TKeyResponse CAknFepUiSpellInputPane::OfferKeyEventL(
-            const TKeyEvent& aKeyEvent, TEventCode aType )
-    {
-    if (iInputWin->IsFocused())
-        {
-        return iInputWin->OfferKeyEventL( aKeyEvent, aType );
-        }
-
-    return EKeyWasNotConsumed;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::CountComponentControls
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-TInt CAknFepUiSpellInputPane::CountComponentControls() const
-    {
-    return KNumberOfControl;
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::ComponentControl
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-CCoeControl* CAknFepUiSpellInputPane::ComponentControl( TInt aIndex ) const
-    {
-    switch ( aIndex )
-        {
-        case EInputWin:
-            {
-            return iInputWin;
-            }
-        default:
-            {
-            return NULL;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::Draw
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::Draw( const TRect& /*aRect*/ ) const
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::FocusChanged
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::FocusChanged( TDrawNow aDrawNow )
-    {
-    iInputWin->SetFocus( IsFocused(), aDrawNow );
-    }
-
-// ---------------------------------------------------------------------------
-// CAknFepUiSpellInputPane::SizeChanged
-// (other items were commented in a header)
-// ---------------------------------------------------------------------------
-// 
-void CAknFepUiSpellInputPane::SizeChanged()
-	{
-    }
-
-// End of File
--- a/fep/aknfep/src/aknfepuserdbdlg.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1089 +0,0 @@
-/*
-* Copyright (c) 2007-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:            Implement method in dialog for user DB management
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include <aknlists.h> // CAknSingleStyleListBox
-#include <barsread.h> // TResource Reader
-#include <eikclbd.h> // CColumnListBoxData
-#include <aknsfld.h> //CAknSearchField
-#include <AknQueryDialog.h> //CAknTextQueryDialog
-#include <AknUtils.h> //AknSelectionService , CAknFilteredTextListBoxModel
-#include <StringLoader.h> //StringLoader 
-#include <aknnotewrappers.h> //CAknWarningNote 
-#include <AknProgressDialog.h> //CAknProgressDialog
-#include <AknDialog.h> //CAknDialog
-#include <akncontext.h> //CAknContextPane 
-#include <AknWaitDialog.h> //CAknWaitDialog 
-#include <AknProgressDialog.h> //CAknProgressDialog
-#include <eikprogi.h> //CEikProgressInfo 
-#include <eikbtgpc.h> //CEikButtonGroupContainer 
-#include <eikmenub.h> 
-#include <charconv.h> //CCnvCharacterSetConverter
-#include <f32file.h> //RFs
-#include <eikedwin.h> //CEikEdwin 
-#include <akntitle.h> //CAknTitlePane 
-#include <aknfep.rsg>
-#include "AknFep.hrh"
-#include "aknfepuserdbdlg.h"
-#include "dbmanagement.h"
-#include "AknFepManagerUIInterface.h"
-#include "AknFepManager.h"  
-#include "aknfepuserdbquerydlg.h"
-
-const TInt KListBoxItemMaxLength = 8;
-const TInt KErrMsgMaxLength = 60;
-const TInt KFindBoxInputMaxLength = 7;
-const TInt KCDesCArraySize = 1;
-_LIT( KItemStart, "\t" );
-_LIT( KSearchTextEmpty, "" );
-
-CAknFepUserdbDlg::CAknFepUserdbDlg( 
-    TInt &aValue, CArrayFix< TInt> *aSelectedItems, MDesCArray *aArray,
-    CPtiEngine* aPtiEngine, CAknFepManager* aOwner, MEikCommandObserver *aObserver) :
-    CAknMarkableListDialog( aValue, aSelectedItems, aArray, aObserver ),
-    iPtiEngine( aPtiEngine ),
-    iOwner( aOwner ),
-    iOldIndex( 0 ),
-    iOldLanguage( 0 ),
-    iOldCbaRes( 0 )
-    {
-    // No implementation required
-    }
-
-CAknFepUserdbDlg::~CAknFepUserdbDlg()
-    {
-    delete iDBEngine;
-    iDBEngine = NULL;
-    iPtiEngine = NULL;
-    iOwner = NULL;  
-    iQueryDlg = NULL;
-    if ( iEikonEnv && iContextMenuBar )
-        {
-        iEikonEnv->EikAppUi()->RemoveFromStack( iContextMenuBar );
-        delete iContextMenuBar;
-        }
-    }
-
-CAknFepUserdbDlg* CAknFepUserdbDlg::NewL(
-    TInt &aOpenedItem, CArrayFix< TInt> *aSelectedItems, MDesCArray *aArray,
-    TInt aMenuBarResourceId, CPtiEngine* aPtiEngine, CAknFepManager* aOwner,
-    MEikCommandObserver *aObserver )
-    {
-    CAknFepUserdbDlg* self = new( ELeave ) CAknFepUserdbDlg( aOpenedItem, 
-        aSelectedItems, aArray, aPtiEngine, aOwner, aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL( aMenuBarResourceId );
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-	
-void CAknFepUserdbDlg::ConstructL( TInt aMenuBarResourceId )
-    {
-    CAknSelectionListDialog::ConstructL( aMenuBarResourceId );
-    this->PrepareLC( R_AKNFEP_LISTDLG_DIALOG );
-    HBufC* message = StringLoader::LoadLC( R_AKNFEP_USER_DB_LIST_NO_ITEM_TEXT );
-    ListBox()->View()->SetListEmptyTextL( *message );
-    ConstructContextMenuL();
-    
-    //the DB engine init
-    iDBEngine = CDBManagement::NewL( iOwner );
-    CleanupStack::PopAndDestroy( message ); //message
-    }
-
-TBool CAknFepUserdbDlg::InitListBoxItemL()
-    {
-    iItems = new( ELeave ) CDesCArrayFlat( KCDesCArraySize );
-    
-    TBuf<KErrMsgMaxLength> errMsg;
-    
-    //get the phrases from the DB
-    if ( !iDBEngine->GetPhraseFromDBL( *iItems ) )
-        {
-        iDBEngine->GetErrMsg( errMsg );
-        //note fot err message
-        CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-        note->SetTone( CAknNoteDialog::EWarningTone );
-        note->ExecuteLD( errMsg );  
-        }
-    else
-        {
-        InsertIconL( iItems );
-        }  
-    CAknSingleStyleListBox* listBox=
-                static_cast<CAknSingleStyleListBox*>( Control( ESelectionListControl ) );
-    CTextListBoxModel* model = listBox->Model(); 
-    if ( iItems && iItems->Count() != 0 )
-        {
-        model->SetItemTextArray( iItems );
-        model->SetOwnershipType( ELbmOwnsItemArray );
-        ListBox()->HandleItemAdditionL();
-        return ETrue;
-        }
-    else
-        {
-        model->SetItemTextArray( iItems );
-        model->SetOwnershipType( ELbmOwnsItemArray );
-        return EFalse;
-        }
-    }
-
-void CAknFepUserdbDlg::AddItemL()
-    {
-    CAknSingleStyleListBox* listbox =
-        static_cast<CAknSingleStyleListBox*>( Control( ESelectionListControl ) );
-    // New item text
-    TBuf<KListBoxItemMaxLength> itemText;
-    TBuf<KErrMsgMaxLength> errMsg;     
-    if ( FindBox()->TextLength() != 0 )
-        {
-        FindBox()->GetSearchText( itemText );
-        }
-    FindBox()->SetFocus( EFalse );
-    HBufC* prompt = StringLoader::LoadLC( R_AKNFEP_USER_DB_LIST_ADD_ITEM_TEXT );
-    CAknFepUserDBQueryDlg* dialog = 
-        CAknFepUserDBQueryDlg::NewL( iDBEngine, itemText, *prompt );
-    iQueryDlg = dialog;
-    CleanupStack::PopAndDestroy( prompt );   
-    //Execute dialog, 
-    //In the dialog it will check input and show waring not
-    if ( dialog->ExecuteLD( R_AKNFEP_LISTBOX_DATA_QUERY_DIALOG ) )
-        {
-        TInt currentIndex = 0;
-        CAknFilteredTextListBoxModel* model = 
-            static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-        CDesCArray* itemArray =
-                static_cast<CDesC16ArrayFlat*>( model->ItemTextArray() );
-        
-        //Add '\t' at the beginning of itemText for find
-        itemText.Insert( 0, KItemStart() );
-        //
-        TInt ret = itemArray->Find( itemText, currentIndex, ECmpCollated);
-        if ( ret != 0 )
-            {
-            //add the phrase to db
-            itemText.Trim();
-            if ( !iDBEngine->AddPhraseToDB(  itemText ) )
-            	{
-            	iDBEngine->GetErrMsg( errMsg );
-                //note fot err message
-                CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-                note->SetTone( CAknNoteDialog::EWarningTone );
-                note->ExecuteLD( errMsg );  
-                // add by chen  
-            	return;
-            	}
-            // Add '\t' in front of text
-            itemText.Insert( 0, KItemStart() );
-            // Insert item to the item array 
-            if ( itemArray->Count() > 0 )
-                {
-                itemArray->InsertL( currentIndex, itemText );
-                }
-            else
-                {
-                itemArray->InsertL( 0, itemText );
-                }        
-            // Update the listbox
-            listbox->HandleItemAdditionL();
-            itemArray->Sort(ECmpCollated);
-            
-            FindBox()->SetSearchTextL( KSearchTextEmpty );
-            ResetSearchFieldL();
-            model->Filter()->HandleItemArrayChangeL();
-            
-            //Highlight the item you have just edited
-            itemArray->Find( itemText, currentIndex, ECmpCollated );
-            listbox->SetCurrentItemIndexAndDraw( currentIndex );
-
-            }
-        else
-            {
-            FindBox()->SetSearchTextL( KSearchTextEmpty );
-            ResetSearchFieldL();
-            listbox->SetCurrentItemIndexAndDraw( currentIndex );
-            }
-        
-        model->Filter()->UpdateCachedDataL();
-        UpdateListBoxL();
-        }
-    }
-
-void CAknFepUserdbDlg::RemoveItemL()
-    {       
-    //error message
-    TBuf<KErrMsgMaxLength> errMsg;
-    TBuf<KListBoxItemMaxLength> removePhrase; 
-    TInt oldIndex = ListBox()->View()->CurrentItemIndex();    
-    CAknFilteredTextListBoxModel* model = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    CDesCArrayFlat* item =
-        static_cast<CDesCArrayFlat*>( model->ItemTextArray() );
-    model->Filter()->UpdateSelectionIndexesL();
-    TInt markItems = model->Filter()->SelectionIndexes()->Count();    
-    if ( markItems )
-        {       
-        HBufC * message = StringLoader::LoadLC(
-            R_AKNFEP_DELETE_CONFIRMATION_TEXT, markItems,
-            iEikonEnv ); //message
-        CAknQueryDialog* delsomenote =
-            CAknQueryDialog::NewL( CAknQueryDialog::EConfirmationTone );       
-        delsomenote->SetPromptL( *message );
-        if ( delsomenote->ExecuteLD( R_AKNFEP_DELETE_QUERY_DIALOG ) )
-            {  
-            iProgressDialog = new (ELeave) CAknProgressDialog(
-                ( REINTERPRET_CAST( CEikDialog**, &iProgressDialog ) ), ETrue );
-            iProgressDialog->PrepareLC( R_AKNFEP_WAIT_DIALOG );
-            iProgressInfo = iProgressDialog->GetProgressInfoL();
-            iProgressInfo->SetFinalValue( markItems ); 
-            iProgressDialog->RunLD();           
-            CArrayFix<TInt>* selectionArray = new( ELeave ) CArrayFixFlat<TInt>( markItems );
-            CleanupStack::PushL( selectionArray ); //message, selectionArray          
-            //loop for copy selection index
-            for ( TInt idx = markItems; idx > 0; idx-- )
-                {
-                selectionArray->AppendL( model->Filter()->SelectionIndexes()->At( idx-1 ) );
-                }           
-            TKeyArrayFix* key= new (ELeave) TKeyArrayFix(0, ECmpTInt);
-            CleanupStack::PushL( key ); //message, selectionArray, key        
-            //sort selection array
-            selectionArray->Sort( *key );           
-            CleanupStack::PopAndDestroy( key ); //message, selectionArray 
-            // loop throught the selected item indexes, and delete items
-            for ( TInt idx = markItems; idx > 0; idx-- )
-                {
-                // get the index of the selected item
-                TInt itemIndex = selectionArray->At( idx-1 );
-                //romve the phrase form the db
-	            removePhrase.Copy( item->MdcaPoint( itemIndex ) );
-	            removePhrase.Trim();
-	            if( !iDBEngine->RemovePhraseFromDB(  removePhrase ) )
-	            	{
-                    iDBEngine->GetErrMsg( errMsg );
-                    iProgressDialog->ProcessFinishedL();
-                    iProgressDialog = NULL;  
-	                CleanupStack::PopAndDestroy( selectionArray ); //message    
-	                CleanupStack::PopAndDestroy( message );//
-	                //note fot err message
-	                CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-	                errnote->SetTone( CAknNoteDialog::EWarningTone );
-	                errnote->ExecuteLD( errMsg );
-	            	return;
-	            	}
-                iProgressInfo->IncrementAndDraw(1);    
-                //delte the item
-                item->Delete( itemIndex );
-                }            
-            CleanupStack::PopAndDestroy( selectionArray ); //message            
-            iProgressDialog->ProcessFinishedL();
-            iProgressDialog = NULL;              
-
-            // Update the listbox
-            ResetSearchFieldL();
-            ListBox()->HandleItemRemovalL();
-            model->Filter()->HandleItemArrayChangeL();
-            model->Filter()->SelectionIndexes()->Reset();
-            ListBox()->View()->ClearSelection();
-            }
-        CleanupStack::PopAndDestroy( message );//
-        }
-    else
-        {
-        HBufC * message = StringLoader::LoadLC(
-            R_AKNFEP_DELETE_CONFIRMATION_TEXT, 1, 
-            iEikonEnv );
-        CAknQueryDialog* delonenote =
-            CAknQueryDialog::NewL( CAknQueryDialog::EConfirmationTone );
-        delonenote->SetPromptL( *message );        
-        if ( delonenote->ExecuteLD( R_AKNFEP_DELETE_QUERY_DIALOG ) )
-            {    
-            //remove from db
-            removePhrase.Copy( model->ItemText( ListBox()->CurrentItemIndex() ) );
-            removePhrase.Delete( 0, 1 );
-            if( !iDBEngine->RemovePhraseFromDB( removePhrase ) )
-                {
-                iDBEngine->GetErrMsg( errMsg );
-                //note fot err message
-                CAknWarningNote* errnote = new( ELeave ) CAknWarningNote();
-                errnote->ExecuteLD( errMsg );   
-                CleanupStack::PopAndDestroy( message );
-                return;
-                }            
-            TInt itemIndex = ListBox()->View()->CurrentItemIndex();           
-            //get the actual index of list
-            TInt actualIndex = FindActualIndex( itemIndex );            
-            // Remove highlighted item from the listbox.
-            item->Delete( actualIndex );  
-            // Update the listbox
-            ResetSearchFieldL();
-            }
-        CleanupStack::PopAndDestroy( message );
-        }
-    // If focused item is out of range, bring it forth
-    if ( ( ( item->Count()-1 ) >= 0 ) && FindBox()->TextLength() == 0 )
-        {
-        if ( ( oldIndex > ( item->Count()-1 ) ))
-            {
-            ListBox()->SetCurrentItemIndexAndDraw( item->Count()-1 );
-            }
-        else
-            {
-            ListBox()->SetCurrentItemIndexAndDraw( oldIndex );
-            }
-        } 
-    UpdateListBoxL();
-    }
-
-void CAknFepUserdbDlg::EditItemL()
-    {
-    CAknSingleStyleListBox* listbox = 
-        static_cast<CAknSingleStyleListBox*>( Control( ESelectionListControl ) );        
-       
-    // If we don't have items, do nothing and return
-    if ( listbox->Model()->NumberOfItems() < 1 )
-        {
-        return;
-        }
-    CTextListBoxModel* model = listbox->Model();
-    // New item text
-    TBuf<KListBoxItemMaxLength> itemText;
-    TBuf<KErrMsgMaxLength> errMsg;
-    TBuf<KListBoxItemMaxLength> itemOldText;
-    itemText.Copy( model->ItemText(listbox->CurrentItemIndex () ) );
-    itemText.Trim();
-    itemOldText.Copy( model->ItemText( listbox->CurrentItemIndex() ) );
-    itemOldText.Trim();    
-    HBufC* prompt = StringLoader::LoadLC( R_AKNFEP_USER_DB_LIST_EDIT_ITEM_TEXT );
-    CAknFepUserDBQueryDlg* dialog = 
-        CAknFepUserDBQueryDlg::NewL( iDBEngine, itemText, *prompt );
-    iQueryDlg = dialog;
-    CleanupStack::PopAndDestroy( prompt );
-    // Execute dialog
-    if ( dialog->ExecuteLD( R_AKNFEP_LISTBOX_DATA_QUERY_DIALOG ) )
-        {
-        TInt currentIndex = 0;
-        CDesCArray* itemArray = 
-            static_cast<CDesC16ArrayFlat*>( model->ItemTextArray() );
-        
-        // Add '\t' in front of text for find
-        itemText.Insert( 0, KItemStart() );
-        //Find if the text is exist
-        TInt ret = itemArray->Find( itemText, currentIndex, ECmpCollated );
-        if ( ret != 0 )
-            {
-            //edit the phrase from db
-            itemText.Trim();
-            if(!iDBEngine->EditPhraseFromDB(  itemOldText, itemText ) )
-            	{
-            	iDBEngine->GetErrMsg( errMsg );
-            
-                //note fot err message
-                CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-                note->ExecuteLD( errMsg );            	                	
-                return;
-                }
-            currentIndex = ListBox()->CurrentItemIndex();
-            //get the actual index of list
-            TInt actualIndex = FindActualIndex( currentIndex );
-            
-            // Remove highlighted item from the listbox.
-            itemArray->Delete( actualIndex );
-
-            // Add '\t' in front of text
-            itemText.Insert( 0, KItemStart() );
-            
-            // Insert item to the item array
-            itemArray->InsertL( actualIndex, itemText );
-            
-            // Update the listbox
-            listbox->HandleItemAdditionL();
-            itemArray->Sort(ECmpCollated);
-            
-            if ( FindBox()->TextLength() != 0 )
-                {
-                FindBox()->SetSearchTextL( KSearchTextEmpty );
-                ResetSearchFieldL();
-                }
-                        
-            ListBox()->View()->ClearSelection();
-            CAknFilteredTextListBoxModel* filterModel = 
-                static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-            filterModel->Filter()->HandleItemArrayChangeL();
-            filterModel->Filter()->UpdateCachedDataL();
-            
-            //SetHightlight
-            itemArray->Find( itemText, currentIndex, ECmpCollated );
-            ListBox()->SetCurrentItemIndexAndDraw( currentIndex );
-            }
-        else
-            {
-            //get the actual index of list
-            TInt actualIndex = FindActualIndex( listbox->CurrentItemIndex() );
-            if ( currentIndex != actualIndex )
-                {
-                itemOldText.Copy( model->ItemText( listbox->CurrentItemIndex() ) );
-                itemOldText.Trim();
-                //Here need user db engine
-                if( !iDBEngine->RemovePhraseFromDB( itemOldText ) )
-                    {
-                    iDBEngine->GetErrMsg( errMsg );
-                
-                    //note fot err message
-                    CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-                    note->ExecuteLD( errMsg );                    
-                    return;
-                    }
-                 
-                currentIndex = ListBox()->CurrentItemIndex();
-                
-                //get the actual index of list
-                actualIndex = FindActualIndex( currentIndex );
-                
-                // Remove highlighted item from the listbox.
-                itemArray->Delete( actualIndex );
-                
-                listbox->HandleItemRemovalL();
-                itemArray->Sort(ECmpCollated);
-                
-                if ( FindBox()->TextLength() != 0 )
-                    {
-                    FindBox()->SetSearchTextL( KSearchTextEmpty );
-                    ResetSearchFieldL();
-                    }
-                
-                ListBox()->View()->ClearSelection();
-                CAknFilteredTextListBoxModel* filterModel = 
-                    static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-                filterModel->Filter()->HandleItemArrayChangeL();
-                filterModel->Filter()->UpdateCachedDataL();
-
-                //SetHightlight
-                itemArray->Find( itemText, currentIndex, ECmpCollated );
-                ListBox()->SetCurrentItemIndexAndDraw( currentIndex );
-                }
-            }
-        UpdateListBoxL();
-        }
-    }
-
-void CAknFepUserdbDlg::CmdMarkL( TInt aItemIndex, TBool aMark )
-    {
-    CAknSingleStyleListBox* listbox = 
-        static_cast<CAknSingleStyleListBox*>( Control( ESelectionListControl ) );
-    CTextListBoxModel* model = listbox->Model();
-    TInt itemCount = model->NumberOfItems();
-    CListBoxView* listBoxView = listbox->View();
-    if ( aMark )
-        {
-        for ( TInt i = 0; i < itemCount; i++ )
-            if ( aItemIndex == -1 || aItemIndex == i )
-                listBoxView->SelectItemL( i );
-        }
-    else
-        {
-        for ( TInt i = 0; i < itemCount; i++ )
-            {
-            if ( aItemIndex == -1 || aItemIndex == i )
-                {
-                listBoxView->DeselectItem( i );
-                }
-            }
-        }
-    CAknFilteredTextListBoxModel* filterModel = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    filterModel->Filter()->UpdateCachedDataL();
-    }
-
-void CAknFepUserdbDlg::ChangeCurrentCbaL ( TInt aCbaResourceId )
-    {
-    if ( iOwner->IsEntryPhrase() || iOldCbaRes == aCbaResourceId )
-        {
-        return;
-        }
-    CEikButtonGroupContainer& cba = ButtonGroupContainer();
-    cba.SetCommandSetL( aCbaResourceId );
-    cba.AddCommandSetToStackL( aCbaResourceId );
-    iOldCbaRes = aCbaResourceId;
-    cba.DrawNow();
-    }
-
-void CAknFepUserdbDlg::ProcessCommandL( TInt aCommandId )
-    {   
-    HideMenu();
-    
-    iContextMenuBar->StopDisplayingMenuBar();
-    
-    switch ( aCommandId )
-        {
-        case EAknCmdUserDBAdd:
-            {
-            AddItemL();
-            }
-            break;
-        case EAknCmdUserDBEdit:
-            {
-            EditItemL();
-            }
-            break;
-        case EAknCmdUserDBDelete:
-            {
-            RemoveItemL();
-            }
-            break;
-        case EAknCmdMark:
-        case EAknMarkAll:
-        case EAknCmdUnmark: 
-        case EAknUnmarkAll:
-            {
-            AknSelectionService::HandleMarkableListProcessCommandL( aCommandId, ListBox() );
-            UpdateListBoxL( aCommandId );
-            }
-            break;
-        default:
-            {
-            break;
-            }
-        }
-    }
-
-TBool CAknFepUserdbDlg::OkToExitL( TInt aButtonId )
-    {
-    switch ( aButtonId )
-        {
-        case EAknSoftkeyOptions:
-            {
-            CAknSelectionListDialog::DisplayMenuL(); // display the menu
-            }
-            break;
-        case EAknCmdUserDBAdd:
-            {
-            ProcessCommandL(EAknCmdUserDBAdd);
-            }
-            break;
-        case EAknSoftkeyMark:
-            {
-            TInt ItemCount = ListBox()->Model()->NumberOfItems(); 
-            TInt selectedItem = ListBox()->SelectionIndexes()->Count();
-            if ( selectedItem < 1 && ItemCount > 0 )
-                {
-                //Show options-context-exit cba
-                ChangeCurrentCbaL ( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_CONTEXT );
-                }
-            }
-            break;
-        case EAknSoftkeyUnmark:
-            {
-            TInt ItemCount = ListBox()->Model()->NumberOfItems(); 
-            TInt selectedItem = ListBox()->SelectionIndexes()->Count();
-            if ( selectedItem == 0 && ItemCount > 0 )
-                {
-                //Show options-context-exit cba
-                ChangeCurrentCbaL ( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_CONTEXT );
-                }
-            }
-            break;
-        case EAknSoftkeyContextOptions:
-            {
-            TInt items = ListBox()->Model()->NumberOfItems();
-            if ( items )
-                {
-                ShowContextMenuL();
-                }
-            }
-            break;
-        case EAknCmdMark:
-        case EAknMarkAll:
-        case EAknCmdUnmark: 
-        case EAknUnmarkAll:
-            {
-            ProcessCommandL( aButtonId );
-            }
-            break;
-        case EAknSoftkeyExit:
-            {
-            return ETrue;
-            }
-        default:
-            {
-            break;
-            }
-        }
-    
-    return EFalse;
-    }
-
-void CAknFepUserdbDlg::FocusChanged(TDrawNow aDrawNow)
-	{
-	if ( aDrawNow == EDrawNow )
-		{
-	    if ( ( FindBox()->IsVisible() && !iOwner->IsEntryPhrase()) )
-	        {
-	        FindBox()->SetFocus( ETrue );
-	        }
-		}
-	}
-
-void CAknFepUserdbDlg::DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane )
-    {  
-    if ( aResourceId == R_AKNFEP_USERDB_DLG_MENU )
-        {
-        const CArrayFix<TInt>* itemArray = ListBox()->SelectionIndexes();
-        if ( itemArray->Count() != 0 )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdUserDBAdd, ETrue );
-            aMenuPane->SetItemDimmed( EAknCmdUserDBEdit, ETrue );
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed( EAknCmdUserDBAdd, EFalse );
-            aMenuPane->SetItemDimmed( EAknCmdUserDBEdit, EFalse );
-            }
-        }        
-    if ( aResourceId == R_AKNFEP_MARK_UNMARK_MENUPANE )
-        {
-        TInt currentIndex = ListBox()->CurrentItemIndex();
-        TInt selectedItem = ListBox()->SelectionIndexes()->Count();
-        TInt listItems = ListBox()->Model()->NumberOfItems();
-    
-        // Display mark, mark all
-        if ( selectedItem == 0 )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdUnmark, ETrue );
-            aMenuPane->SetItemDimmed( EAknUnmarkAll, ETrue );
-            return;
-            }
-        // Display unmark, unmark all
-        if ( selectedItem == listItems )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdMark, ETrue );
-            aMenuPane->SetItemDimmed( EAknMarkAll, ETrue );
-            return;
-            }
-        TBool isMarked = EFalse;
-        
-        for ( TInt i = 0; i < selectedItem; i++ )
-            {
-            TInt selectedId = ListBox()->SelectionIndexes()->At( i );
-            if ( selectedId == currentIndex )
-                {
-                isMarked = ETrue;
-                }
-            }
-
-        if ( isMarked )
-            {
-            aMenuPane->SetItemDimmed( EAknCmdMark, ETrue );
-            }
-        else
-            {
-            aMenuPane->SetItemDimmed( EAknCmdUnmark, ETrue );
-            }
-        }
-    }
-
-TKeyResponse CAknFepUserdbDlg::OfferKeyEventL( const TKeyEvent& aKeyEvent, 
-                                               TEventCode aType )
-    {   
-    TKeyResponse ret(EKeyWasNotConsumed);
-    
-    CAknFilteredTextListBoxModel* filterModel = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    
-    TInt ItemCount = ListBox()->Model()->NumberOfItems();  
-    
-    ListBoxItemsChanged( ListBox() );
-    
-    if ( ret != EKeyWasConsumed && aKeyEvent.iCode == EKeyPhoneEnd )
-        {
-        TryExitL( EAknSoftkeyExit );
-        return EKeyWasConsumed;
-        }
-    
-    TBool claerKeyPressed = ( aType == EEventKey ) && ( aKeyEvent.iCode ==  EKeyBackspace );
-    if( claerKeyPressed && ItemCount > 0 && FindBox()->TextLength() == 0 )
-        {
-        ProcessCommandL(EAknCmdUserDBDelete);
-        UpdateListBoxL();
-        ret =  EKeyWasConsumed;
-        }
-    else
-        {
-        if ( FindBox()->IsVisible() )
-            {
-            ret = CAknMarkableListDialog::OfferKeyEventL( aKeyEvent, aType );
-            }
-        else
-            {
-            ret =  ListBox()->OfferKeyEventL( aKeyEvent, aType );
-            }
-        }
-       
-    if ( ret != EKeyWasConsumed && aType == EEventKey &&
-         aKeyEvent.iCode == EKeyOK )
-        {
-        iContextMenuBar->TryDisplayMenuBarL();
-        ret = EKeyWasConsumed;
-        }
-            
-    return ret;
-    }
-
-void CAknFepUserdbDlg::PostLayoutDynInitL()
-    {
-    CAknMarkableListDialog::PostLayoutDynInitL();
-    FindBox()->Editor().SetMaxLength( KFindBoxInputMaxLength );
-    ListBox()->SetObserver( this );
-    ListBox()->AddItemChangeObserverL( this );
-    
-    InitListBoxItemL();
-    UpdateListBoxL();
-
-    return;
-    }
-
-void CAknFepUserdbDlg::ConstructContextMenuL()
-    {
-    CEikMenuBar* newMenuBar = new ( ELeave ) CEikMenuBar();
-    CleanupStack::PushL( newMenuBar );
-    newMenuBar->ConstructL
-        ( this, NULL, R_AKNFEP_USERDB_DLG_CONTEXT_MENUBAR );
-    iEikonEnv->EikAppUi()->AddToStackL( newMenuBar, ECoeStackPriorityMenu,
-        ECoeStackFlagRefusesFocus );
-    iContextMenuBar = newMenuBar;
-    CleanupStack::Pop( newMenuBar );
-    }
-
-void CAknFepUserdbDlg::HandleListBoxEventL(CEikListBox* /*aListBox*/, TListBoxEvent aEventType)
-    {
-    CTextListBoxModel* model = static_cast<CTextListBoxModel*>( ListBox()->Model() );
-    CDesCArrayFlat* itemArray =
-            static_cast<CDesCArrayFlat*>( model->ItemTextArray() );
-    TInt listItems = itemArray->Count();
-    
-    if ( !listItems )
-        {
-        return;
-        }
-    
-    CAknSelectionListDialog::HandleListBoxEventL( ListBox(), aEventType );
-    
-    switch ( aEventType )
-        {
-        case EEventItemDoubleClicked:
-            {
-            TInt selectItems = ListBox()->SelectionIndexes()->Count();
-            if ( selectItems )
-                {
-                iOldIndex = ListBox()->CurrentItemIndex();
-                MarkOrUnmarkItemL();
-                }
-            else
-                {
-                ShowContextMenuL();
-                }
-            }
-            break;
-        default:
-            break;
-        }
-    }
-
-
-void CAknFepUserdbDlg::ResetSearchFieldL()
-    {
-    CAknFilteredTextListBoxModel* selectmodel = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    selectmodel->Filter()->HandleItemArrayChangeL(); 
-    }
-
-TInt CAknFepUserdbDlg::FindActualIndex( const TInt aItemIndex )
-    {
-    TInt itemIndex;
-    CTextListBoxModel* model = 
-        static_cast<CTextListBoxModel*>( ListBox()->Model() );
-    CDesCArrayFlat* itemArray =
-        static_cast<CDesCArrayFlat*>( model->ItemTextArray() );
-    //get the real index of list
-    TBuf<KListBoxItemMaxLength> itemText;
-    itemText.Copy( model->ItemText(aItemIndex) );
-    itemArray->Find( itemText, itemIndex, ECmpCollated );
-    return itemIndex;
-    }
-
-void CAknFepUserdbDlg::ShowContextMenuL()
-    {
-    iContextMenuBar->SetMenuTitleResourceId( R_AKNFEP_USERDB_DLG_CONTEXT_MENUBAR );
-    iContextMenuBar->SetMenuType( CEikMenuBar::EMenuContext );
-    iContextMenuBar->StopDisplayingMenuBar();
-    iContextMenuBar->TryDisplayMenuBarL();
-    iContextMenuBar->SetMenuTitleResourceId( R_AKNFEP_USERDB_DLG_MENUBAR );
-    iContextMenuBar->SetMenuType( CEikMenuBar::EMenuOptions );
-    }
-
-void CAknFepUserdbDlg::MarkOrUnmarkItemL()
-    {
-    TInt selectIndex = 0;
-    TKeyArrayFix* key= new (ELeave) TKeyArrayFix( 0, ECmpTInt32 );
-    CleanupStack::PushL( key );
-    TInt index = ListBox()->CurrentItemIndex();
-    const CArrayFix<TInt>* selectitemArray = ListBox()->SelectionIndexes();
-    TInt ret = selectitemArray->Find( index, *key, selectIndex );
-    if ( ret == 0)
-        {
-        ProcessCommandL( EAknCmdUnmark );
-        }
-    else
-        {
-        ProcessCommandL( EAknCmdMark );
-        }
-    CleanupStack::PopAndDestroy( key );
-    }
-
-void CAknFepUserdbDlg::InsertIconL( CDesC16Array* aDataArray )
-    {
-    TBuf<KListBoxItemMaxLength> itemText;
-    for ( TInt i = 0; i < aDataArray->Count(); i++ )
-        {
-        itemText = aDataArray->MdcaPoint( i );
-        itemText.Insert( 0, KItemStart );
-        aDataArray->Delete( i );
-        aDataArray->InsertL( i, itemText );
-        }
-    aDataArray->Sort( ECmpCollated );
-    }
-
-void CAknFepUserdbDlg::OnChangeLanguageL( TInt aInputLanguage )
-    {
-    if ( aInputLanguage != ELangPrcChinese &&
-    	 aInputLanguage != ELangTaiwanChinese &&
-    	 aInputLanguage != ELangHongKongChinese )
-    	{
-    	if ( iQueryDlg && iQueryDlg->IsVisible() )
-    		{
-    		delete iQueryDlg;
-    		iQueryDlg = NULL;
-    		}
-    	this->TryExitL( EAknSoftkeyExit );
-    	return;
-    	}
-    if ( iOldLanguage == aInputLanguage )
-        {
-        return;
-        }
-    iOldLanguage = aInputLanguage;
-    
-    CAknFilteredTextListBoxModel* model = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    CDesCArrayFlat* itemArray =
-            static_cast<CDesCArrayFlat*>( model->ItemTextArray() );
-    TBuf<KErrMsgMaxLength> errMsg;   
-
-    AknSelectionService::HandleMarkableListProcessCommandL( EAknUnmarkAll, ListBox() );
-    itemArray->Reset();
-    
-    //get the phrases from the DB
-    if ( !iDBEngine->GetPhraseFromDBL( *itemArray ) )
-        {
-        iDBEngine->GetErrMsg( errMsg );
-        //note fot err message
-        CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-        note->SetTone( CAknNoteDialog::EWarningTone );
-        note->ExecuteLD( errMsg );  
-        }
-    else
-        {
-        InsertIconL( itemArray ); 
-        ListBox()->HandleItemAdditionL();
-        ListBox()->ClearSelection();
-        FindBox()->SetFocus( ETrue );
-        FindBox()->SetFocusing( ETrue );
-        FindBox()->MakeVisible( ETrue );
-        }
-    if ( itemArray->Count() == 0 )
-        {
-        FindBox()->SetSearchTextL( KSearchTextEmpty );
-        FindBox()->SetFocus( EFalse );
-        FindBox()->SetFocusing( EFalse );
-        FindBox()->MakeVisible( EFalse );
-        ListBox()->SetRect( Rect() );
-        ListBox()->View()->DrawEmptyList( Rect() );
-    
-        //Show add-add-exit cba 
-        ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_ADD_EXIT );
-        }
-    else
-        {
-        ListBox()->SetCurrentItemIndex( 0 );
-        }
-    }
-
-void CAknFepUserdbDlg::ListBoxItemsChanged( CEikListBox* aListBox )
-    {
-    CAknFilteredTextListBoxModel* filterModel = 
-        static_cast<CAknFilteredTextListBoxModel*>( aListBox->Model() );
-    CDesCArrayFlat* itemArray =
-            static_cast<CDesCArrayFlat*>( filterModel->ItemTextArray() );
-    
-    TInt ItemCount = aListBox->Model()->NumberOfItems(); 
-    TInt selectedItem = filterModel->Filter()->SelectionIndexes()->Count();
-    if ( ItemCount > 0 && selectedItem < 1 )
-        {
-        //Show options-context-exit cba
-        TRAP_IGNORE ( ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_CONTEXT ) );
-        }
-    else
-        {
-        if ( ItemCount == 0)
-            {
-            //Show add-add-exit cba
-            TRAP_IGNORE ( ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_ADD_EXIT ) );
-            if ( itemArray->Count() == 0 && FindBox()->TextLength() == 0 )
-                {
-                FindBox()->SetFocus( EFalse );
-                FindBox()->MakeVisible( EFalse );
-                }
-            
-            if ( FindBox()->TextLength() == 0 )
-                {
-                ListBox()->SetRect( Rect() );
-                ListBox()->View()->DrawEmptyList( Rect() );
-                }
-            }
-        }
-    }
-
-void CAknFepUserdbDlg::UpdateListBoxL( TInt aCommandId )
-	{
-    // Update the listbox
-    CAknFilteredTextListBoxModel* filterModel = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    filterModel->Filter()->UpdateCachedDataL();
-    
-    TInt selectedItem = ListBox()->SelectionIndexes()->Count();
-    
-    
-    CAknFilteredTextListBoxModel* model = 
-        static_cast<CAknFilteredTextListBoxModel*>( ListBox()->Model() );
-    CDesCArrayFlat* itemArray =
-            static_cast<CDesCArrayFlat*>( model->ItemTextArray() );
-    TInt listItems = model->NumberOfItems();
-    
-    if ( listItems != 0 && selectedItem != 0)
-        {
-        TInt CurrentItemIndex = ListBox()->CurrentItemIndex();          
-        if( ( aCommandId == EAknCmdMark || aCommandId == EAknMarkAll ) && 
-        	 ListBox()->View()->ItemIsSelected(CurrentItemIndex))
-        	{
-        	//Show options-unmark-exit menu
-        	ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_MARK );
-        	}      
-        if( ( aCommandId == EAknCmdUnmark || aCommandId == EAknUnmarkAll ) && 
-             !ListBox()->View()->ItemIsSelected(CurrentItemIndex))
-            {
-             //Show options-mark-exit menu
-            ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_UNMARK );      
-            }
-        }
-    
-    if ( listItems == 0 )
-        {
-        //Show add-add-exit cba       
-        ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_ADD_EXIT ); 
-        if ( itemArray->Count() == 0 && FindBox()->TextLength() == 0 )
-            {
-            FindBox()->SetFocus( EFalse );
-            FindBox()->MakeVisible( EFalse );
-            }
-        
-        if ( FindBox()->TextLength() == 0 )
-            {
-            ListBox()->SetRect( Rect() );
-            ListBox()->View()->DrawEmptyList( Rect() );
-            }
-        }
-    if( selectedItem == 0 && listItems != 0 )
-        {
-        FindBox()->MakeVisible( ETrue );
-        FindBox()->SetFocus( ETrue );
-        FindBox()->DrawNow();
-        TRect findpaneRect(FindBox()->Rect());
-        TRect clientRect = Rect();
-        TSize size = TSize(clientRect.Width(),
-            clientRect.Height() - findpaneRect.Height());
-        ListBox()->SetRect( TRect(clientRect.iTl, size) );
-        ListBox()->View()->Draw();
-        //Show options-context-exit cba
-        ChangeCurrentCbaL( R_AKNFEP_SOFTKEYS_LIST_OPTIONS_EXIT_CONTEXT );
-        }
-    
-    if ( FindBox()->IsVisible() )
-        {
-        FindBox()->SetFocus( ETrue );
-        FindBox()->MakeVisible( ETrue );
-        }
-	}
-
-CCoeControl* CAknFepUserdbDlg::ComponentControl(TInt aIndex) const 
-    { 
-    if ( aIndex == CAknMarkableListDialog::CountComponentControls() ) 
-        { 
-        return ListBox(); 
-        } 
-    else 
-        { 
-        return CAknMarkableListDialog::ComponentControl(aIndex); 
-        } 
-    } 
-
-TInt CAknFepUserdbDlg::CountComponentControls() const 
-    { 
-    if ( ListBox() )
-	    {
-	    return CAknMarkableListDialog::CountComponentControls() + 1; 
-		}
-    else
-	    {
-        return CAknMarkableListDialog::CountComponentControls();
-        }
-    }
-
-
-
-void CAknFepUserdbDlg::SizeChanged()
-    {
-    //Change title text
-    CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
-    CAknTitlePane* title = NULL;
-    TRAP_IGNORE( title = static_cast< CAknTitlePane* >(
-        statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle) ) ) );
-
-    //Load the new title text
-    HBufC* titletext = StringLoader::LoadLC( R_AKNFEP_USER_DB_MANAGEMENT_TITLE );
-    //Set title to the new text
-    TRAP_IGNORE( title->SetTextL( *titletext ));
-    CleanupStack::PopAndDestroy( titletext );
-    }
-// End of file
--- a/fep/aknfep/src/aknfepuserdbquerydlg.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*
-* Copyright (c) 2009 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:                
-*
-*/
-
-
-
-
-#include <aknnotewrappers.h> //CAknWarningNote
-#include <eikedwin.h> //CEikEdwin 
-
-#include <aknfep.rsg>
-
-#include "aknfepuserdbquerydlg.h"
-#include "dbmanagement.h"
-
-const TInt KErrMsgMaxLength = 60;
-const TInt KTextMaxLength = 10;
-
-CAknFepUserDBQueryDlg::CAknFepUserDBQueryDlg( CDBManagement* aDBEngine, 
-    TDes& aText, const TTone& aTone ) : 
-    CAknTextQueryDialog ( aText, aTone ), iDBEngine(aDBEngine)
-    {
-    iptrbuf = & aText;
-    iItemText = NULL;
-    }
-
-CAknFepUserDBQueryDlg::~CAknFepUserDBQueryDlg()
-    {
-    if ( iItemText )
-        {
-        delete iItemText;
-        iItemText = NULL;
-        }
-    }
-
-CAknFepUserDBQueryDlg* CAknFepUserDBQueryDlg::NewLC( CDBManagement* aDBEngine, 
-    TDes& aText, const TDesC& aPrompt, const TTone& aTone )
-    {
-    CAknFepUserDBQueryDlg* self = new (ELeave)CAknFepUserDBQueryDlg( aDBEngine, aText, aTone );
-    CleanupStack::PushL(self);
-    self->ConstructL( aPrompt );
-    return self;
-    }
-
-CAknFepUserDBQueryDlg* CAknFepUserDBQueryDlg::NewL( CDBManagement* aDBEngine, 
-    TDes& aText, const TDesC& aPrompt, const TTone& aTone )
-    {
-    CAknFepUserDBQueryDlg* self=CAknFepUserDBQueryDlg::NewLC( aDBEngine, aText, aPrompt, aTone );
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-void CAknFepUserDBQueryDlg::ConstructL( const TDesC& aPrompt )
-    {
-    SetPromptL( aPrompt );
-    }
-
-TBool CAknFepUserDBQueryDlg::OkToExitL( TInt aButtonId )
-    {
-    TBuf<KErrMsgMaxLength> errMsg;
-    if (aButtonId == EAknSoftkeyOk)
-        {
-        CAknQueryControl* control = 
-            static_cast<CAknQueryControl*>(ControlOrNull(EGeneralQuery));
-        CEikEdwin* editor = static_cast<CEikEdwin*>
-            ( control->ControlByLayoutOrNull( EDataLayout ) );
-
-        iItemText = editor->GetTextInHBufL();
-        TBuf<KTextMaxLength> textbuf;
-        
-        if( iItemText != NULL )
-            {
-            textbuf.Copy( iItemText->Des() );
-            }
-        
-        if( !iDBEngine->InputPhraseCheck( textbuf ) )
-            {
-            iptrbuf->Zero();
-            iptrbuf->Copy( textbuf );
-            
-            iDBEngine->GetErrMsg( errMsg );
-            errMsg.Copy( errMsg.Mid( 1 ) );
-            
-            
-            if ( iItemText )
-                {
-                delete iItemText;
-                iItemText = NULL;
-                }
-            editor->SetTextL( &textbuf ); 
-            //note fot err message
-            CAknWarningNote* note = new( ELeave ) CAknWarningNote();
-            note->SetTimeout( CAknNoteDialog::EShortTimeout );
-            note->ExecuteLD( errMsg ); 
-
-            UpdateLeftSoftKeyL();
-            return EFalse;
-            }
-        iptrbuf->Zero();
-        iptrbuf->Copy( textbuf );
-        if ( iItemText )
-            {
-            delete iItemText;
-            iItemText = NULL;
-            }
-        return ETrue;
-        }
-    else
-        {
-        if (aButtonId == EAknSoftkeyCancel)
-            {
-            return ETrue;
-            }
-        }
-    return ETrue;
-    }
-
-
-void CAknFepUserDBQueryDlg::PostLayoutDynInitL()
-    {
-    CAknQueryControl* control = 
-        static_cast<CAknQueryControl*>(ControlOrNull(EGeneralQuery));
-    CEikEdwin* editor = static_cast<CEikEdwin*>
-        ( control->ControlByLayoutOrNull( EDataLayout ) );
-    editor->SetTextL( iptrbuf );
-    SetFocus(ETrue);
-    SetFocusing(ETrue);
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepzhuyinconvertion.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,487 +0,0 @@
-/*
-* 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 TZhuyinSymbolsMethods definition 
- *
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-#include "aknfepzhuyinconvertion.h"
-
-_LIT(KFullStop, "\x002E");
-_LIT(KToneMark0, "\x0020");
-_LIT(KToneMark1, "\x02CA");
-_LIT(KToneMark2, "\x02C7");
-_LIT(KToneMark3, "\x02CB");
-_LIT(KToneMark4, "\x02D9");
-
-const TInt KMinZhuyinUnicode = 0x3105;
-const TInt KMaxZhuyinUnicode = 0x3129;
-const TInt KMaxBufLen = 100;
-const TInt KMaxChineseCount = 7;
-
-// ---------------------------------------------------------
-// Convert aArray to a descriptor outputed through aOutDes.
-// ---------------------------------------------------------
-//
-TInt TZhuyinSymbolsMethods::Convert2Des ( CDesCArrayFlat* aArray, TDes& aOutDes )
-    {
-    TInt bufLen = 0;
-    TInt i = 0;
-    for ( ; i < aArray->Count(); i++ )
-        {
-        bufLen = bufLen + aArray->MdcaPoint(i).Length();
-        if ( bufLen > KMaxBufLen ) 
-            {
-            return i;
-            }
-        aOutDes.Append(aArray->MdcaPoint(i));
-        }
-    return i;
-    }
-
-// ---------------------------------------------------------
-// Update the content in eep control.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::UpdateEEPContent( 
-    CPtiEngine* aPtiengine,
-    CAknFepZhuyinAnalyser* aAnalyser,
-    CDesCArrayFlat* aZhuyinSymbols, 
-    CDesCArrayFlat* aChineseDisped,
-    CDesCArrayFlat* aCandidateList,
-    TDes& aOutDes,
-    TBool& aPhraseCreation)
-    {
-    TBool rnt = EFalse;
-    TRAPD( ret, rnt = UpdateEEPContentL( aPtiengine, 
-                                         aAnalyser, 
-                                         aZhuyinSymbols, 
-                                         aChineseDisped, 
-                                         aCandidateList, 
-                                         aOutDes, 
-                                         aPhraseCreation ) );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    
-    return rnt;
-    }
-
-// ---------------------------------------------------------
-// clean.
-// ---------------------------------------------------------
-//
-void CleanArray( TAny* aAny )
-    {
-    RPointerArray<HBufC>* implArray = 
-        reinterpret_cast< RPointerArray<HBufC>*> ( aAny );
-    implArray->ResetAndDestroy();
-    implArray->Close();
-    }
-
-
-// ---------------------------------------------------------
-// Update the content in eep control.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::UpdateEEPContentL( 
-    CPtiEngine* aPtiengine,
-    CAknFepZhuyinAnalyser* aAnalyser,
-    CDesCArrayFlat* aZhuyinSymbols, 
-    CDesCArrayFlat* aChineseDisped,
-    CDesCArrayFlat* aCandidateList,
-    TDes& aOutDes,
-    TBool& aPhraseCreation)
-    {
-    TBuf<KMaxBufLen> buf;
-    Convert2Des( aZhuyinSymbols, buf );
-    RPointerArray<HBufC> list;
-    TCleanupItem cleanitem( CleanArray, &list );
-    CleanupStack::PushL( cleanitem );
-    
-    HBufC* retString = aPtiengine->GetCandidatesByInputString( buf, list,
-        EFalse );
-    if ( buf.Length() == 0 )
-        {
-        Convert2Des( aChineseDisped, aOutDes );
-        delete retString;
-        aCandidateList->Reset();
-        aCandidateList->Compress();
-        CleanupStack::PopAndDestroy();
-        return ETrue;
-        }
-    
-    CleanupStack::PushL( retString );
-    TBool valid = aAnalyser->AnalyzeL( buf );
-       
-    HBufC* showbuf = aAnalyser->LastAnalysisResult();
-    aCandidateList->Reset();
-    if ( retString->Compare( buf ) != 0 || 
-        retString->Compare( buf ) == 0 && aChineseDisped->Count() != 0 )
-        {
-        // Display the candidates for the 1st chinese character group.
-        aPhraseCreation = ETrue;
-        list.ResetAndDestroy();
-        TInt length = 0;
-        TInt i = 0;
-        for ( i = 0; i < showbuf->Length(); i++ )
-            {
-            if ( showbuf->Mid(i, 1).Compare(KFullStop) == 0 )
-                {
-                length = i;
-                break;
-                }
-            if ( showbuf->Mid(i, 1).Compare(KToneMark0) == 0 
-                || showbuf->Mid(i, 1).Compare(KToneMark1) == 0 
-                || showbuf->Mid(i, 1).Compare(KToneMark2) == 0
-                || showbuf->Mid(i, 1).Compare(KToneMark3) == 0
-                || showbuf->Mid(i, 1).Compare(KToneMark4) == 0 )
-                {
-                length = i + 1;
-                break;
-                }
-            }
-        if ( i == showbuf->Length())
-            {
-            length = i;
-            }
-        CleanupStack::PopAndDestroy( retString );
-        TPtrC tmp = showbuf->Left( length );
-        retString = aPtiengine->GetCandidatesByInputString( tmp, list, EFalse );
-        CleanupStack::PushL( retString );
-        for (TInt ii = 0; ii < list.Count(); ii++ )
-            {
-            aCandidateList->AppendL( *(list[ii]) );
-            }
-        }
-    else
-        {
-        aPhraseCreation = EFalse;
-        for (TInt i = 0; i < list.Count(); i++ )
-            {
-            aCandidateList->AppendL( *(list[i]) );
-            }
-        }
-    CleanupStack::Pop( retString );
-    CleanupStack::PopAndDestroy();
-    Convert2Des( aChineseDisped, aOutDes );
-    if ( !valid )
-        {
-        aOutDes.Append(buf);
-        }
-    else
-        aOutDes.Append(*showbuf);
-    delete retString;
-    
-    if ( aZhuyinSymbols->Count() > 0
-        && ( aZhuyinSymbols->MdcaPoint(0).Compare(KToneMark0) == 0 
-        || aZhuyinSymbols->MdcaPoint(0).Compare(KToneMark1) == 0 
-        || aZhuyinSymbols->MdcaPoint(0).Compare(KToneMark2) == 0
-        || aZhuyinSymbols->MdcaPoint(0).Compare(KToneMark3) == 0
-        || aZhuyinSymbols->MdcaPoint(0).Compare(KToneMark4) == 0 ) )
-        {
-        valid = EFalse;
-        }
-    
-    if ( aCandidateList->Count() != 0 && aOutDes.Length() == 1 )
-        {
-        valid = ETrue;
-        }
-    return valid;
-    }
-
-// ---------------------------------------------------------
-// Commit a chinese character from candidate list.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::AppendChineseChar( 
-    const TDes& aChinese,
-    CAknFepZhuyinAnalyser* aAnalyser,
-    CDesCArrayFlat* aZhuyinSymbols, 
-    CDesCArrayFlat* aChineseDisped,
-    CDesCArrayFlat* aZhuyinSymbolsForChinese )
-    {
-    TBuf<KMaxBufLen> buf;
-    buf.Copy(aChinese);
-    if ( aChineseDisped->Count() >= KMaxChineseCount )
-        {
-        return ETrue;
-        }
-    buf.Zero();
-    Convert2Des(aZhuyinSymbols, buf);
-    TBool valid = EFalse;
-    TRAPD( err, valid = aAnalyser->AnalyzeL( buf ) );
-    if ( KErrNone != err )
-        {
-        return EFalse;
-        }
-    
-    if ( !valid )
-        {
-        return EFalse;
-        }
-    else
-        {
-        HBufC* showbuf = aAnalyser->LastAnalysisResult();
-        TInt length = 0;
-        TInt i = 0;
-        for ( i = 0; i < showbuf->Length(); i++ )
-            {
-            if ( showbuf->Mid(i, 1).Compare(KFullStop) == 0 )
-                {
-                length = i;
-                break;
-                }
-            if ( showbuf->Mid(i, 1).Compare(KToneMark0) == 0 
-                || showbuf->Mid(i, 1).Compare(KToneMark1) == 0 
-                || showbuf->Mid(i, 1).Compare(KToneMark2) == 0
-                || showbuf->Mid(i, 1).Compare(KToneMark3) == 0
-                || showbuf->Mid(i, 1).Compare(KToneMark4) == 0 )
-                {
-                length = i + 1;
-                break;
-                }
-            }
-        if ( i == showbuf->Length())
-            {
-            length = i;
-            }
-        // update arrays
-        TRAPD( ret, aChineseDisped->AppendL(aChinese) );
-        if ( KErrNone != ret )
-            {
-            return EFalse;
-            }
-        
-        TBuf<KMaxBufLen> tmpbuf;
-        for ( TInt ii = 0; ii < length; ii++ )
-            {
-            tmpbuf.Append(aZhuyinSymbols->MdcaPoint(ii));
-            }
-        TRAPD( ret1, aZhuyinSymbolsForChinese->AppendL(tmpbuf) );
-        if ( KErrNone != ret1 )
-            {
-            return EFalse;
-            }
-        aZhuyinSymbols->Delete(0, length);
-        if ( aChineseDisped->Count() >= KMaxChineseCount 
-            || aZhuyinSymbols->Count() == 0 )
-            {
-            return ETrue;
-            }
-        else
-            {
-            return EFalse;
-            }
-        }
-    }
-
-// ---------------------------------------------------------
-// append the zhuyin symbol to the zhuyin array form zhuyin buf.
-// ---------------------------------------------------------
-//
-void TZhuyinSymbolsMethods::GetZhuyinSymbolsL( 
-    CDesCArrayFlat* aZhuyinSymbols,  
-    const TDesC& aInputBuf )
-    {
-    for ( TInt i = 0; i < aInputBuf.Length(); i++ )
-        {
-        aZhuyinSymbols->InsertL(i, aInputBuf.Mid(i,1));
-        }
-    }
-
-// ---------------------------------------------------------
-// Delete a chinese character from aChineseDisped array
-// and update related array in the meantime.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::DeleteChineseChar(
-    CDesCArrayFlat* aZhuyinSymbols, 
-    CDesCArrayFlat* aChineseDisped,
-    CDesCArrayFlat* aZhuyinSymbolsForChinese )
-    {
-    if ( aChineseDisped->Count() == 0 )
-        {
-        return EFalse;
-        }
-    TBuf<KMaxBufLen> buf;
-    buf.Append( aZhuyinSymbolsForChinese->MdcaPoint( 
-        aZhuyinSymbolsForChinese->Count() - 1 ) );
-    
-    TRAPD( ret, GetZhuyinSymbolsL( aZhuyinSymbols, buf ) );
-    if ( KErrNone != ret )
-        {
-        return EFalse;
-        }
-    
-    aChineseDisped->Delete(aChineseDisped->Count() - 1);
-    aZhuyinSymbolsForChinese->Delete(aZhuyinSymbolsForChinese->Count() - 1);
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Delete a chinese character from aChineseDisped array
-// and update related array in the meantime.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::DeleteZhuyinSymbol(
-    CDesCArrayFlat* aZhuyinSymbols, 
-    TInt aKeyStroke
-    )
-    {
-    TInt delCount = 0;
-    if ( aKeyStroke == aZhuyinSymbols->Count() )
-        {
-        delCount++;
-        }
-    else if ( aKeyStroke < aZhuyinSymbols->Count() )
-        {
-        delCount++;
-        }
-    else
-        {
-        return EFalse;
-        }
-    aZhuyinSymbols->Delete( aKeyStroke-1, delCount );
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Refresh the cursor position according to the input parameters.
-// ---------------------------------------------------------
-//
-TInt TZhuyinSymbolsMethods::RefreshCursorPos (
-    TInt aChineseNum,
-    const TDes& aShownContent,
-    TInt aKeyStrokePos )
-    {
-    TInt cursorPos = aChineseNum;
-    TInt index = 0;
-    TInt count = 0;
-    if ( aShownContent.Length() - aChineseNum <= 0 )
-        {
-        return aChineseNum;
-        }
-    
-    if ( 0 == aKeyStrokePos )
-        {
-        return aChineseNum;
-        }
-    
-    TPtrC zhuyinShown = aShownContent.Right( aShownContent.Length() - 
-        aChineseNum );
-    
-    if ( zhuyinShown.Length() == 0 )
-        {
-        return aChineseNum;
-        }
-    
-    for ( TInt i = 0; i < zhuyinShown.Length(); ++i )
-        {
-        if ( 0 != zhuyinShown.Mid( i, 1 ).Compare( KFullStop ) )
-            {
-            count = count + 1;
-            }
-        if ( aKeyStrokePos == count )
-            {
-            index = i + 1;
-            break;
-            }
-        }
-
-    return cursorPos + index;
-    
-    }
-
-// ---------------------------------------------------------
-// Get the number of zhuyin symbol group.
-// ---------------------------------------------------------
-//
-TInt TZhuyinSymbolsMethods::GetChineseCount(const TDes& aShown)
-    {
-    TInt i = 0;
-    TInt count = 0;
-    for ( i = 0; i < aShown.Length(); i++ )
-        {
-        if ( aShown.Mid(i, 1).Compare(KFullStop) == 0
-            || aShown.Mid(i, 1).Compare(KToneMark0) == 0 
-            || aShown.Mid(i, 1).Compare(KToneMark1) == 0 
-            || aShown.Mid(i, 1).Compare(KToneMark2) == 0
-            || aShown.Mid(i, 1).Compare(KToneMark3) == 0
-            || aShown.Mid(i, 1).Compare(KToneMark4) == 0 )
-            {
-            count++;
-            }
-        }
-    if ( aShown.Right(1).Compare(KToneMark0) == 0 
-        || aShown.Right(1).Compare(KToneMark1) == 0 
-        || aShown.Right(1).Compare(KToneMark2) == 0
-        || aShown.Right(1).Compare(KToneMark3) == 0
-        || aShown.Right(1).Compare(KToneMark4) == 0 )
-        {
-        return count;
-        }
-    else
-        {
-        return count + 1;
-        }
-    }
-
-// ---------------------------------------------------------
-// Whether the aFirstPhrase is a Zhuyin symbol or not.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::IsZhuyinSymbol( const TDesC& aFirstPhrase )
-    {
-    if ( aFirstPhrase.Length() > 1 )
-        {
-        return EFalse;
-        }
-    
-    if ( aFirstPhrase[0] >= KMinZhuyinUnicode &&
-         aFirstPhrase[0] <= KMaxZhuyinUnicode )
-        {
-        return ETrue;
-        }
-    else
-        {
-        return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------
-// Whether the aFirstPhrase is a Zhuyin symbol or not.
-// ---------------------------------------------------------
-//
-TBool TZhuyinSymbolsMethods::IsZhuyinSpelling(
-                                    const TDesC& /*aSymbol*/,
-                                    const TInt /*index*/,
-                                    CDesCArrayFlat* /*aZhuyinSymbols*/ ) 
-    {
-    return ETrue;
-    }
-
-// End of file
--- a/fep/aknfep/src/aknfepzhuyinkeyhandler.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,611 +0,0 @@
-/*
-* Copyright (c) 2009 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:                
-*
-*/
-
-
-
-
-#include "aknfepzhuyinkeyhandler.h"
-
-const TInt KBTLoopLength1 = 3;
-const TInt KBTLoopLength2 = 4;
-const TInt KBTLoopLength3 = 5;
-
-const TInt KBTLoopLength = 5;
-
-const TInt KCLKCount1 = 1;
-const TInt KCLKCount2 = 2;
-const TInt KCLKCount3 = 3;
-const TInt KCLKCount4 = 4;
-const TInt KCLKCount5 = 5;
-
-const TInt KTimerOut = 700000;
-
-_LIT(KPtiKey1_1, "\x3105");
-_LIT(KPtiKey1_2, "\x3106");
-_LIT(KPtiKey1_3, "\x3107");
-_LIT(KPtiKey1_4, "\x3108");
-
-_LIT(KPtiKey2_1, "\x3109");
-_LIT(KPtiKey2_2, "\x310A");
-_LIT(KPtiKey2_3, "\x310B");
-_LIT(KPtiKey2_4, "\x310C");
-
-_LIT(KPtiKey3_1, "\x310D");
-_LIT(KPtiKey3_2, "\x310E");
-_LIT(KPtiKey3_3, "\x310F");
-
-_LIT(KPtiKey4_1, "\x3110");
-_LIT(KPtiKey4_2, "\x3111");
-_LIT(KPtiKey4_3, "\x3112");
-
-_LIT(KPtiKey5_1, "\x3113");
-_LIT(KPtiKey5_2, "\x3114");
-_LIT(KPtiKey5_3, "\x3115");
-_LIT(KPtiKey5_4, "\x3116");
-
-_LIT(KPtiKey6_1, "\x3117");
-_LIT(KPtiKey6_2, "\x3118");
-_LIT(KPtiKey6_3, "\x3119");
-
-_LIT(KPtiKey7_1, "\x311A");
-_LIT(KPtiKey7_2, "\x311B");
-_LIT(KPtiKey7_3, "\x311C");
-_LIT(KPtiKey7_4, "\x311D");
-
-_LIT(KPtiKey8_1, "\x311E");
-_LIT(KPtiKey8_2, "\x311F");
-_LIT(KPtiKey8_3, "\x3120");
-_LIT(KPtiKey8_4, "\x3121");
-
-_LIT(KPtiKey9_1, "\x3122");
-_LIT(KPtiKey9_2, "\x3123");
-_LIT(KPtiKey9_3, "\x3124");
-_LIT(KPtiKey9_4, "\x3125");
-_LIT(KPtiKey9_5, "\x3126");
-
-_LIT(KPtiKey0_1, "\x3127");
-_LIT(KPtiKey0_2, "\x3128");
-_LIT(KPtiKey0_3, "\x3129");
-
-_LIT(KPtiKeyStar_1, "\x0020");
-_LIT(KPtiKeyStar_2, "\x02CA");
-_LIT(KPtiKeyStar_3, "\x02C7");
-_LIT(KPtiKeyStar_4, "\x02CB");
-_LIT(KPtiKeyStar_5, "\x02D9");
-
-
-// ---------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------
-//
-ZhuyinKeyTable::ZhuyinKeyTable()
-    {
-    }
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-//
-ZhuyinKeyTable::~ZhuyinKeyTable()
-    {
-    }
-
-// ---------------------------------------------------------
-// Get butten loop length.
-// ---------------------------------------------------------
-//
-TInt ZhuyinKeyTable::GetBtLoopLength ( TPtiKey aKey )
-    {
-    switch ( aKey )
-        {
-        case EPtiKey0:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey6:
-            {
-            return KBTLoopLength1;
-            }
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey5:
-        case EPtiKey7:
-        case EPtiKey8:
-            {
-            return KBTLoopLength2;
-            }
-        case EPtiKey9:
-        case EPtiKeyStar:
-            {
-            return KBTLoopLength3;
-            }
-        default:
-            return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Get zhuyin symbol.
-// ---------------------------------------------------------
-//
-TBool ZhuyinKeyTable::GetUnicode ( TPtiKey aKey, TInt aClkCount, TDes& aOutput )
-    {
-    aOutput.Zero();
-    switch ( aKey )
-        {
-        case EPtiKey0:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey0_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey0_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey0_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey1:
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey1_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey1_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey1_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey1_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-        case EPtiKey2:
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey2_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey2_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey2_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey2_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-        case EPtiKey3:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey3_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey3_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey3_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey4:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey4_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey4_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey4_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey5:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey5_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey5_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey5_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey5_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey6:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey6_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey6_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey6_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey7:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey7_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey7_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey7_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey7_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey8:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey8_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey8_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey8_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey8_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey9:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey9_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey9_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey9_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey9_4);
-                    return ETrue;
-                case KCLKCount5:
-                    aOutput.Append(KPtiKey9_5);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKeyStar:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKeyStar_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKeyStar_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKeyStar_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKeyStar_4);
-                    return ETrue;
-                case KCLKCount5:
-                    aOutput.Append(KPtiKeyStar_5);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        default:
-            return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler::CZhuyinKeyHandler( ) :
-    CActive ( EPriorityStandard ), // Standard priority
-    iLastKey ( EPtiKeyNone ), 
-    iTimeOut ( ETrue ),
-    iBtClickNum ( 0 ),
-    iBtLoopLength ( 1 ),
-    iState( 0 ),
-    iStatusChgFlag(EInit)
-    {
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler* CZhuyinKeyHandler::NewLC()
-    {
-    CZhuyinKeyHandler* self = new ( ELeave ) CZhuyinKeyHandler();
-    CleanupStack::PushL( self );
-    self->ConstructL( );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler* CZhuyinKeyHandler::NewL()
-    {
-    CZhuyinKeyHandler* self = CZhuyinKeyHandler::NewLC();
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::ConstructL( )
-    {
-    User::LeaveIfError( iTimer.CreateLocal( ) ); // Initialize timer
-    CActiveScheduler::Add( this ); // Add to scheduler
-    }
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler::~CZhuyinKeyHandler( )
-    {
-    Cancel( ); // Cancel any request, if outstanding
-    iTimer.Close( ); // Destroy the RTimer object
-    // Delete instance variables if any
-    }
-
-// ---------------------------------------------------------
-// How to cancel me.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::DoCancel( )
-    {
-    iTimer.Cancel( );
-    }
-
-// ---------------------------------------------------------
-// Function for making the initial request.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::Start()
-    {
-    Cancel(); // Cancel any request, just to be sure
-    iTimer.After( iStatus, KTimerOut ); // Set for later
-    SetActive(); // Tell scheduler a request is active
-    }
-
-// ---------------------------------------------------------
-// Get Zhuyin symbol according to the inputting key.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetZhuyinSymbol ( TPtiKey aKey, TDes& aOutBuf )
-    {
-    TInt ret = 0;
-    Start();
-    // if the same button is pressed for many times.
-    if ( iLastKey == aKey
-        && iTimeOut == EFalse )
-        {
-        if ( iBtLoopLength != 0 )
-            {
-            iBtClickNum++;
-            if ( iBtClickNum > iBtLoopLength )
-                {
-                iBtClickNum = 1;
-                }
-            }
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        ret = 0;
-        }
-    // if the pressed button is changed or time out event is happened.
-    else if ( iLastKey == aKey
-        && iTimeOut != EFalse )
-        {
-        // Update iBtClickNum
-        iBtClickNum = 1;
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        ret = 1;
-        }
-    else
-        {
-        // Update iBtClickNum
-        iBtClickNum = 1;
-        // Update iBtUnicodeNum
-        iBtLoopLength = ZhuyinKeyTable::GetBtLoopLength(aKey);
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        if ( iBtLoopLength != 0 )
-            {
-            ret = 1;
-            }
-        else
-            {
-            ret = -1;
-            }
-        }
-    iLastKey = aKey;
-    iTimeOut = EFalse;
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// Set status change flag.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::SetStatusChgFlag ( MZhuyinKeyHandler::TStatusChgFlag aChgFlag )
-    {
-    iStatusChgFlag = aChgFlag;
-    }
-
-// ---------------------------------------------------------
-// Get the status change flag.
-// ---------------------------------------------------------
-//
-MZhuyinKeyHandler::TStatusChgFlag CZhuyinKeyHandler::GetStatusChgFlag ()
-    {
-    return iStatusChgFlag;
-    }
-
-// ---------------------------------------------------------
-// Reset all the member variables.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::Reset()
-    {
-    iLastKey = EPtiKeyNone; 
-    iTimeOut = ETrue ;
-    iBtClickNum = 0;
-    iBtLoopLength = 1;
-    }
-
-
-// ---------------------------------------------------------
-// Get tonemark according to symbol in front of cursor.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetToneMark ( const TDes& aBaseSymbol, TDes& aOutBuf )
-    {
-    TInt ret = 0;
-    iBtLoopLength = KBTLoopLength;
-    iTimeOut = ETrue ;
-    if ( aBaseSymbol.Compare(KPtiKeyStar_1) == 0 )
-        {
-        iBtClickNum = KCLKCount1;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_2) == 0 )
-        {
-        iBtClickNum = KCLKCount2;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_3) == 0 )
-        {
-        iBtClickNum = KCLKCount3;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_4) == 0 )
-        {
-        iBtClickNum = KCLKCount4;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_5) == 0 )
-        {
-        iBtClickNum = KCLKCount5;
-        }
-    else
-        {
-        iBtClickNum = 0;
-        ret = 1;
-        }
-    iBtClickNum++;
-    if ( iBtClickNum > iBtLoopLength )
-        {
-        iBtClickNum = 1;
-        }
-    ZhuyinKeyTable::GetUnicode(EPtiKeyStar,iBtClickNum,aOutBuf);
-    iLastKey = EPtiKeyStar;
-    iTimeOut = EFalse;
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// Get tonemark according to symbol in front of cursor.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::RunL( )
-    {
-    iTimeOut = ETrue;
-    }
-
-// ---------------------------------------------------------
-// Override to handle leaves from RunL(). Default implementation causes.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::RunError( TInt aError )
-    {
-    return aError;
-    }
-
-// ---------------------------------------------------------
-// Set whether state change from entry to spelling editing is automatical.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::SetState( TInt aState )
-    {
-    iState = aState;
-    }
-
-// ---------------------------------------------------------
-// Get state change states.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetState()
-    {
-    return iState;
-    }
-
-// End of file
--- a/fep/aknfep/src/dbmanagement.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +0,0 @@
-/*
-* 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:            DB Engine
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-//system include files
-#include <aknfep.rsg>
-#include <PtiUserDicEntry.h>
-#include <PtiEngine.h>
-#include <StringLoader.h> 
-
-//user inlucde files
-#include "dbmanagement.h"
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-#include "AknFepSharedDataInterface.h"
-
-// CONSTANTS
-const TInt KInputPhraseMaxLength = 7;
-const TInt KInvalidPhrase        = -103;
-const TInt KPhraseExisted        = -104;
-const TInt KPhraseNotExisted     = -105;
-const TInt KInputPhraseOutRange  = -106;
-const TInt KDBHasNoSpace         = -150;
-
-// ---------------------------------------------------------
-// Symbian constructor
-// ---------------------------------------------------------
-//
-CDBManagement* CDBManagement::NewL( CAknFepManager* aFepManager )
-    {
-    CDBManagement* self = new( ELeave ) CDBManagement();
-    CleanupStack::PushL( self );
-    self->ConstructL(aFepManager);
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-CDBManagement::CDBManagement()
-    {
-    }
-
-// ---------------------------------------------------------
-// Second phase constructor
-// ---------------------------------------------------------
-//
-void CDBManagement::ConstructL( CAknFepManager* aFepManager )
-    {
-    iAknFepSharedDataInterface = CAknFepSharedDataInterface::NewL( aFepManager );
-    iFepManager = aFepManager;
-    iPtiEngineOfFep = iFepManager->PtiEngine();
-    iPtiEngine = CPtiEngine::NewL(ETrue); 
-    }
-
-// ---------------------------------------------------------
-// destructor
-// ---------------------------------------------------------
-//
-CDBManagement::~CDBManagement()
-    {
-    delete iAknFepSharedDataInterface;
-    delete iPtiEngine;
-    }
-
-// ---------------------------------------------------------
-// Add phrase to DB.
-// ---------------------------------------------------------
-//
-TBool CDBManagement::AddPhraseToDB( const TDesC& aPhraseAdd )
-    {    
-    TInt retCode;
-    TPtiUserDictionaryEntry addUdbEntry(aPhraseAdd);
-    TRAP_IGNORE( ActivateLanguageOfFepL() );
-    //Add the phrase to the DB by PTI Engine
-    iPtiEngineOfFep->AddUserDictionaryEntry( addUdbEntry );
-    retCode = iPtiEngine->AddUserDictionaryEntry( addUdbEntry );
-    if ( KErrNone != retCode )
-        {
-        GetDBErrMsg( retCode );
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Edit phrase from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::EditPhraseFromDB(  const TDesC& aPhraseOld,
-                                        const TDesC& aPhraseNew )
-    {
-    TBool retCode;
-    //Add the new phrase to the DB by PTI Engine
-    retCode = AddPhraseToDB( aPhraseNew );
-    if ( !retCode )
-        {
-        GetDBErrMsg( retCode );
-        return EFalse;
-        }    
-    retCode = RemovePhraseFromDB( aPhraseOld );
-    if ( !retCode )
-        {
-        GetDBErrMsg( retCode );
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Remove phrase from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::RemovePhraseFromDB(const TDesC& aPhraseRemove )
-    {
-    TInt retCode;
-    TPtiUserDictionaryEntry removeUdbEntry( aPhraseRemove );
-    //Remove the phrase from the DB by PTI Engine
-    TRAP_IGNORE( ActivateLanguageOfFepL() );
-    iPtiEngineOfFep->RemoveEntryFromUserDictionary( removeUdbEntry );
-    retCode = iPtiEngine->RemoveEntryFromUserDictionary( removeUdbEntry );
-    if( KErrNone != retCode )
-        {
-        GetDBErrMsg( retCode );
-        return EFalse;
-        }
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Get phrases from DB
-// ---------------------------------------------------------
-//
-TBool CDBManagement::GetPhraseFromDBL( CDesCArray& aPhraseGet )
-    {
-    TPtiUserDictionaryEntry getUdbEntry;
-    TInt retCode;
-    TInt i = 0; 
-    ActivateLanguage();
-
-    retCode = iPtiEngine->GetUserDictionaryEntry(i, getUdbEntry);
-
-    while (retCode == KErrNone)
-        {
-        aPhraseGet.AppendL(getUdbEntry.Word());
-        i++;
-        retCode = iPtiEngine->GetUserDictionaryEntry(i, getUdbEntry);
-        }
-
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Get Error Message
-// ---------------------------------------------------------
-//
-void CDBManagement::GetErrMsg( TDes& aErrMsg )
-    {
-    aErrMsg.Copy(iErrMsg);
-    }
-
-// ---------------------------------------------------------
-// Check the input phrase
-// ---------------------------------------------------------
-//
-TBool CDBManagement::InputPhraseCheck( TDes& aPhraseInput )
-    {
-    const TUint16 KChineseUnicodeMin = 0x4E00;
-    const TUint16 KChineseUnicodeMax = 0x9FA5; 
-    const TUint16 KSpaceUnicode      = 0x0020;
-    const TUint16 KKeytroke2Unicode  = 0x4E28;
-    const TUint16 KKeytroke3Unicode  = 0x4E3F;
-    const TUint16 KKeytroke4Unicode  = 0x4E36;
-    const TUint16 KKeytroke5Unicode  = 0x4E5B;
-    TBuf<KInputPhraseMaxLength> inputText;
-    aPhraseInput.TrimAll();
-    TBool inValidFlg = EFalse;
-    //the input phrase length more than the max length
-    if ( aPhraseInput.Length() > KInputPhraseMaxLength )
-        {
-        return EFalse;
-        }
-    //check every character of input phrase
-    for ( TInt i = 0; i < aPhraseInput.Length(); ++i )
-        {
-        if ( ( (TInt)aPhraseInput[i] >= KChineseUnicodeMin ) &&
-            ( (TInt)aPhraseInput[i] <= KChineseUnicodeMax ) )
-            {
-            if ( ( KKeytroke2Unicode == (TInt)aPhraseInput[i] ) ||
-                ( KKeytroke3Unicode == (TInt)aPhraseInput[i] ) ||
-                ( KKeytroke4Unicode == (TInt)aPhraseInput[i] ) ||
-                ( KKeytroke5Unicode == (TInt)aPhraseInput[i] ) )
-                {
-                inValidFlg = ETrue;
-                }
-            else
-                {
-                inputText.Append( aPhraseInput[i] );
-                }
-            }
-        else
-            {
-            if ( KSpaceUnicode != (TInt)aPhraseInput[i] )
-                {
-                inValidFlg = ETrue;
-                }            
-            }
-        }
-    
-    //out the chinese phrase.
-    aPhraseInput = inputText;
-    
-    if ( inValidFlg )
-        {
-        StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_ONLY_CHINESE_TEXT );
-        return EFalse;
-        }
-    
-    if ( aPhraseInput.Length() < 2 )
-        {
-        StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_TOO_SHORT_TEXT );
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguageL()
-    {
-    TInt epocLanguageID = iAknFepSharedDataInterface->InputTextLanguage();
-    iPtiEngine->ActivateLanguageL((TLanguage)epocLanguageID);
-    switch(epocLanguageID)
-        {
-        case ELangHongKongChinese:
-            iPtiEngine->SetInputMode( EPtiEngineStrokeByPhrase );
-            break;
-        case ELangTaiwanChinese:
-            iPtiEngine->SetInputMode( EPtiEngineZhuyinByPhrase );
-            break;
-        case ELangPrcChinese:
-            iPtiEngine->SetInputMode( EPtiEnginePinyinByPhrase );
-            break;
-        }   
-    }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguageOfFepL()
-    {
-    TInt epocLanguageID = iAknFepSharedDataInterface->InputTextLanguage();
-    iPtiEngineOfFep->ActivateLanguageL((TLanguage)epocLanguageID);
-    switch(epocLanguageID)
-        {
-        case ELangHongKongChinese:
-            iPtiEngineOfFep->SetInputMode( EPtiEngineStroke );
-            break;
-        case ELangTaiwanChinese:
-            iPtiEngineOfFep->SetInputMode( EPtiEngineZhuyinByPhrase );
-            break;
-        case ELangPrcChinese:
-            iPtiEngineOfFep->SetInputMode( EPtiEnginePinyin );
-            break;
-        }   
-    }
-
-// ---------------------------------------------------------
-// Set language
-// ---------------------------------------------------------
-//
-void CDBManagement::ActivateLanguage()
-    {
-    TRAP_IGNORE( ActivateLanguageL() );  
-    }
-
-// ---------------------------------------------------------
-// Get the ptiengine's error
-// ---------------------------------------------------------
-//
-void CDBManagement::GetDBErrMsg( TInt aErrCode )
-    {
-    switch( aErrCode )
-        {
-        case KInvalidPhrase:
-            StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_INVALID_PHRASE_TEXT );
-            break;
-        case KPhraseExisted:
-            StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_PHRASE_EXISTED_TEXT );
-            break;
-        case KPhraseNotExisted:
-            StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_NOT_EXISTED_TEXT );
-            break;
-        case KInputPhraseOutRange:
-            StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_PHRASE_TOO_LONG_TEXT );
-            break;
-        case KDBHasNoSpace:
-            StringLoader::Load( iErrMsg, R_AKNFEP_CHINESE_USER_DB_NOTE_DB_HAVE_NO_SPACE_TEXT );
-            break; 
-        default:
-            break;
-        }
-    }
-
-//End of File