fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp
branchRCL_3
changeset 5 a47de9135b21
parent 0 eb1f2e154e89
child 19 ac7e4d1d9209
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp	Fri Feb 19 23:09:27 2010 +0200
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/peninputimeplugingeneric.cpp	Fri Mar 12 15:44:07 2010 +0200
@@ -50,7 +50,7 @@
 _LIT(KVkbImeName, "Generic VKB");
 _LIT(KFSQImeName, "Generic FSQ");
 _LIT(KSSQImeName, "Split View Qwerty");
-
+_LIT(KFingerHwrImeName, "Generic Fingerhwr");
 _LIT(KHwrResourceFormatPattern, "peninputhwrwindowconfiginfo_*.rsc");
 _LIT(KVkbResourceFormatPattern, "peninputvkbwindowconfiginfo_*.rsc");
 _LIT(KSsqResourceFormatPattern, "peninputssqwinconfiginfo_*.rsc");
@@ -207,6 +207,11 @@
                 }
             }
             break;
+        case EPluginInputModeFingerHwr:
+            {
+            layoutId.iUid = KFingerHwrUiId;
+            }
+            break;            
         default:
             return NULL;
         }
@@ -266,6 +271,10 @@
         {
         mode = EPluginInputModeFSQ;
         }
+    else if( aLayoutId == KFingerHwrUiId )
+        {
+        mode = EPluginInputModeFingerHwr;
+        }
     else
         {
         return NULL;
@@ -356,6 +365,11 @@
             id = KFsqUiId;
             }
             break;
+        case EPluginInputModeFingerHwr:
+            {
+            id = KFingerHwrUiId;
+            }
+            break;
         default:
             {
             id = KInvalidImplId;
@@ -452,7 +466,7 @@
     TBool vkb = EFalse;
     TBool fsq = EFalse;
     TBool ssq = EFalse;
-    
+    TBool fingerhwr = EFalse;  
     CleanupStack::PushL( TCleanupItem( Cleanup, &infoArray ) );
     REComSession::ListImplementationsL(id, infoArray);
         
@@ -480,6 +494,10 @@
             {
             ssq = ETrue;
             } 
+        if (infoArray[i]->ImplementationUid().iUid == KFingerHwrUiId )
+            {
+            fingerhwr = ETrue;
+            }          
         }
     
     TImePlguinImplDetail detail;
@@ -592,6 +610,14 @@
             }
         delete dir;
         }    
+    if( fingerhwr )
+        {
+        detail.iMode = EPluginInputModeFingerHwr;
+        detail.iMeritValue = EImeMerit_Preferred;
+        detail.iDisplayName.Copy(KFingerHwrImeName());
+        detail.iLanguage = ELangArabic;
+        aSupportList.Append(detail);
+        }
 
     CleanupStack::PopAndDestroy(&infoArray); // infoArray    
     
@@ -735,6 +761,7 @@
     
     switch ( aMode )
         {
+        case EPluginInputModeFingerHwr:        
         case EPluginInputModeHwr:
             {
             return iPluginUiManager = CPluginFepManagerHwr::NewL(*this, iPenInputServer);