diff -r ebd48d2de13c -r ecbabf52600f textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp --- a/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp Tue Aug 31 15:31:50 2010 +0300 +++ b/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp Wed Sep 01 12:23:33 2010 +0100 @@ -48,6 +48,8 @@ const TUid KUidtruiApp = { 0x2000B104 }; const TUid KUidPenInputSettingApp = { 0x2001959B }; +const TInt KFepChineseInputModeLength = 10; + _LIT(KLeftBracket, "(" ); _LIT(KRightBracket, ")" ); @@ -1185,7 +1187,9 @@ case ELangHongKongChinese: case ELangTaiwanChinese: { - iAknfepRepository->Set(KAknFepChineseInputMode, aInputMode); + TBuf conversion; + conversion.Num(aInputMode, EHex); + iAknfepRepository->Set( KAknFepChineseInputMode, conversion ); } break; default: @@ -1200,14 +1204,33 @@ // TInt CGSPenInputModel::GetFepInputMode() { - TInt inputMode = 0; + TUint inputMode = 0; switch(iInputLanguage) { case ELangPrcChinese: case ELangHongKongChinese: case ELangTaiwanChinese: { - iAknfepRepository->Get(KAknFepChineseInputMode, inputMode); + _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 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(inputMode, EHex); } break; default: @@ -1245,20 +1268,7 @@ { case EGSInputpenIdHwrTraining: { - iIsHwrTrainingAviliable = EFalse; - TInt supportMode = EPluginInputModeNone; - if(KErrNone == iConnectErr) - { - supportMode = iPenInputServer.SupportInputMode(); - } - TBool supportHWR = EFalse; - if(supportMode & EPluginInputModeHwr || - supportMode & EPluginInputModeFSc || - supportMode & EPluginInputModeFingerHwr) - { - supportHWR = ETrue; - } - + iIsHwrTrainingAviliable = EFalse; CEikonEnv* env = CEikonEnv::Static(); TUid appUid = env->EikAppUi() ->Application()->AppDllUid(); @@ -1275,15 +1285,17 @@ iIsHwrTrainingAviliable = EFalse; } else - { + { iIsHwrTrainingAviliable = IsTruiSupportedLanguage(); - } - } + } + } else { iIsHwrTrainingAviliable = IsTruiSupportedLanguage(); } - res = ( !ChineseLanguage() && !JapaneseLanguage() && iIsHwrTrainingAviliable && supportHWR); + res = ( !ChineseLanguage() && !JapaneseLanguage() + && iIsHwrTrainingAviliable + && IsSupportHWR() ); } break; case EGSInputpenIdInputLanguage: @@ -1305,47 +1317,43 @@ case EGSInputpenIdGuidLine: { - TInt supportMode = EPluginInputModeNone; - if(KErrNone == iConnectErr) + res = ( !ChineseLanguage() && !JapaneseLanguage() && IsSupportHWR()); + if(FeatureManager::FeatureSupported(KFeatureIdFfCapacitiveDisplay)&& + iInputLanguage == ELangArabic) { - supportMode = iPenInputServer.SupportInputMode(); + res = EFalse; } - - TBool supportHWR = EFalse; - if(supportMode & EPluginInputModeHwr || - supportMode & EPluginInputModeFSc || - supportMode & EPluginInputModeFingerHwr) - { - supportHWR = ETrue; - } - - res = ( !ChineseLanguage() && !JapaneseLanguage() && supportHWR); } break; case EGSInputpenIdRecognitionWithDictionary: { - TInt currentLanguage = InputLanguage(); // add this line - if (currentLanguage == ELangArabic) - { - res = ETrue; - } + res = EFalse;//item is useless after updating arabic hwr engine. +// TInt currentLanguage = InputLanguage(); // add this line +// if (currentLanguage == ELangArabic) +// { +// res = ETrue; +// } } break; case EGSInputpenIdWritingSpeed: case EGSInputpenIdPenTrailWidth: + { + if(IsSupportHWR()) + { + res = ETrue; + } + if(FeatureManager::FeatureSupported(KFeatureIdFfCapacitiveDisplay)&& + iInputLanguage == ELangArabic) + {//Hide item in setting list in arabic finger hwr. + res = EFalse; + } + } + break; case EGSInputpenIdPenTrailColour: { - TInt supportMode = EPluginInputModeNone; - if(KErrNone == iConnectErr) - { - supportMode = iPenInputServer.SupportInputMode(); - } - - if(supportMode & EPluginInputModeHwr || - supportMode & EPluginInputModeFSc || - supportMode & EPluginInputModeFingerHwr) + if(IsSupportHWR()) { res = ETrue; } @@ -1407,4 +1415,25 @@ return EFalse; } +// --------------------------------------------------------- +// Check if support hwr. +// --------------------------------------------------------- +// +TBool CGSPenInputModel::IsSupportHWR() + { + TInt supportMode = EPluginInputModeNone; + if(KErrNone == iConnectErr) + { + supportMode = iPenInputServer.SupportInputMode( iInputLanguage ); + } + + if( supportMode & EPluginInputModeHwr || + supportMode & EPluginInputModeFSc || + supportMode & EPluginInputModeFingerHwr) + { + return ETrue; + } + return EFalse; + } + // End Of File