textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp
branchRCL_3
changeset 12 4eb1ae11334f
parent 10 6defe5d1bd39
child 43 ebd48d2de13c
--- a/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp	Wed Mar 31 22:08:20 2010 +0300
+++ b/textinput/peninputarc/gsplugin/gspeninputplugin/src/gspeninputmodel.cpp	Wed Apr 14 16:18:34 2010 +0300
@@ -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<KFepChineseInputModeLength> 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<KFepChineseInputModeLength> 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:
@@ -1404,7 +1427,6 @@
         supportMode = iPenInputServer.SupportInputMode( iInputLanguage );
         }
 
-    TBool supportHWR = EFalse;
     if( supportMode & EPluginInputModeHwr ||
         supportMode & EPluginInputModeFSc ||
         supportMode & EPluginInputModeFingerHwr)