Re-merge workaround for sf_refhw system error message RCL_3 PDK_3.0.1
authorDario Sestito <darios@symbian.org>
Wed, 21 Jul 2010 14:32:17 +0100
branchRCL_3
changeset 33 d11264d9cf87
parent 29 857bebeecec0 (diff)
parent 25 ca8eb568b410 (current diff)
child 41 6d1a7cb00f84
Re-merge workaround for sf_refhw system error message
--- a/fep/aknfep/group/bld.inf	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/group/bld.inf	Wed Jul 21 14:32:17 2010 +0100
@@ -35,6 +35,11 @@
 // If there's no destination then the source file will be copied
 // to the same name in /epoc32/include
 
+PRJ_PLATFORMS
+DEFAULT
+//  Help exports
+#include "../help/group/bld.inf"
+
 ../inc/AknFepManagerInterface.h     |../../../inc/AknFepManagerInterface.h
 ../inc/AknFepManagerUIInterface.h   |../../../inc/AknFepManagerUIInterface.h
 ../inc/AknFepUiIndicEnums.h         |../../../inc/AknFepUiIndicEnums.h
Binary file fep/aknfep/help/data/xhtml.zip has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/group/bld.inf	Wed Jul 21 14:32:17 2010 +0100
@@ -0,0 +1,26 @@
+/*
+* 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 the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+* 
+* Contributors:
+* 
+* 
+* Description:
+* Export help related files.
+*
+*/
+
+#include <platform_paths.hrh>				
+PRJ_EXPORTS
+:zip ../data/xhtml.zip   /epoc32/data/z/resource/ overwrite
+:zip ../data/xhtml.zip   /epoc32/winscw/c/resource/ overwrite
+
+../inc/hwr.vqwerty.vitu.hlp.hrh	MW_LAYER_PLATFORM_EXPORT_PATH(csxhelp/hwr.vqwerty.vitu.hlp.hrh)
+../rom/fephelps_variant.iby		CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(fephelps_variant.iby)
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/inc/hwr.vqwerty.vitu.hlp.hrh	Wed Jul 21 14:32:17 2010 +0100
@@ -0,0 +1,29 @@
+/*
+* 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:
+*
+*/
+	
+//
+// hwr.vqwerty.vitu.hlp.hrh generated by CSXHelp Utilities.
+//           
+
+#ifndef __HWR_VQWERTY_VITU_HLP_HRH__
+#define __HWR_VQWERTY_VITU_HLP_HRH__
+
+_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"); // 
+
+#endif 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/rom/fephelps_variant.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -0,0 +1,37 @@
+/*
+* 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  __AKNFEPHELPS_VARIANT_IBY__
+#define  __AKNFEPHELPS_VARIANT_IBY__
+
+#if defined(FF_S60_HELPS_IN_USE)
+    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\contents.zip)
+    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\index.xml)
+    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\keywords.xml)
+    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\meta.xml)
+#endif
+
+#endif
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepKeyCatcher.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/inc/AknFepKeyCatcher.h	Wed Jul 21 14:32:17 2010 +0100
@@ -122,6 +122,7 @@
     inline void SetFlag(TInt aFlag);
     inline void ClearFlag(TInt aFlag);
     inline TBool IsFlagSet(TInt aFlag) const;
+    TKeyResponse CheckForSpecilacaseHandlingTosetKeyboardtype(const TKeyEvent& aKeyEvent, TEventCode aEventCode);
 	TBool IsNaviKey(TUint aCode);
 private:    
     // Data not owned
@@ -131,6 +132,9 @@
     TUint iFlags;
     TKeyPressLength     iKeyPressLength;
     TInt iLongPressedScanCode;
+    TBool iPreviousKeyeventNormal;
+    TBool iPreviousKeyeventSpecial;
+    TBool iRetainKeyBoardtypeFornextkeyevent;
     };
 
 /**
--- a/fep/aknfep/inc/AknFepManager.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/inc/AknFepManager.h	Wed Jul 21 14:32:17 2010 +0100
@@ -902,6 +902,8 @@
 		TBool IsSpecialNumericEditor();
 		
 	void TryPopExactWordInICFL();
+	
+	void HandleChangeInFocusForSettingFep();
 
 private:
 
@@ -2813,6 +2815,14 @@
      * can not changed in other cases, e.g. in latin-only editor
      */
     TInt iActiveInputLanguage;
+    
+    /**
+     * indicate whether matches popup list was lauched,
+     * when rotating the screen, we need to consider it, e.g V-ITUT  to FSQ
+     */
+    TBool iMatchesListLaunched;
+
+
 public:
 
     //the follow 8 functions for phrase creation 
--- a/fep/aknfep/inc/AknFepPluginManager.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/inc/AknFepPluginManager.h	Wed Jul 21 14:32:17 2010 +0100
@@ -87,7 +87,8 @@
     EPluginSwitchMode,
     EPluginUpdatePenInputITIStatus,
 	EPluginEnableFetchDimState,
-    EPluginArabicNumModeChanged
+    EPluginArabicNumModeChanged,
+	EPluginEnablePriorityChangeOnOriChange
     };
 
 /** 
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -335,7 +335,10 @@
 //
 void CPluginFepManagerBase::ActivateUI()
     {
-    iPenInputServer->ActivateLayout( ETrue );    
+    if(iPenInputServer)
+        {
+        iPenInputServer->ActivateLayout( ETrue ); 
+        }   
     }
 
 // -----------------------------------------------------------------------------
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -366,7 +366,10 @@
 //
 void CPluginFepManagerBase::ActivateUI()
     {
-    iPenInputServer->ActivateLayout( ETrue );    
+    if(iPenInputServer)
+        {
+        iPenInputServer->ActivateLayout( ETrue ); 
+        }    
     }
 
 // -----------------------------------------------------------------------------
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -437,7 +437,10 @@
 //
 void CPluginFepManagerBase::ActivateUI()
     {
-    iPenInputServer->ActivateLayout( ETrue );    
+    if(iPenInputServer)
+        {
+        iPenInputServer->ActivateLayout( ETrue ); 
+        }  
     }
 
 // -----------------------------------------------------------------------------
--- a/fep/aknfep/resource/AknFep.rss	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/resource/AknFep.rss	Wed Jul 21 14:32:17 2010 +0100
@@ -924,7 +924,7 @@
     MENU_ITEM
         {
         command = EAknFepCmdPredHelp;
-        txt = qtn_pred_suboption_help;
+        txt = qtn_options_help;
         }
     };
 }
--- a/fep/aknfep/src/AknFepHashKeyManager.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/src/AknFepHashKeyManager.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -138,7 +138,8 @@
     {
     TKeyResponse response = EKeyWasNotConsumed;
     TBool phoneIdle = (iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor); 
-    if(phoneIdle)
+    // Don't handle hash key unless it comes from virtual keyboard.
+    if( phoneIdle && !iFepMan.PluginInputMode() )
         {
         return response;
         }
--- a/fep/aknfep/src/AknFepKeyCatcher.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/src/AknFepKeyCatcher.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -79,7 +79,7 @@
 
 TKeyResponse CAknFepKeyCatcher::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aEventCode)
     {
-   
+    CheckForSpecilacaseHandlingTosetKeyboardtype(aKeyEvent, aEventCode);
 #ifdef RD_SCALABLE_UI_V2     
     if (aEventCode == EEventKeyUp && 
         aKeyEvent.iScanCode == EStdKeyNo)
@@ -646,7 +646,8 @@
 
 CAknFepKeyCatcher::CAknFepKeyCatcher(CAknFepManager& aFepMan)
     : iFepMan(aFepMan),
-      iKeyCatcherState(EAknFepStateNull)
+      iKeyCatcherState(EAknFepStateNull),iPreviousKeyeventNormal(ETrue),
+      iPreviousKeyeventSpecial(EFalse),iRetainKeyBoardtypeFornextkeyevent(EFalse)
     {
     }
 
@@ -768,4 +769,70 @@
 
 #endif //RD_SCALABLE_UI_V2 
 
+//To set to ITU-T mode when qwerty keypad is open and user try to use ITU-T Keypad.
+TKeyResponse CAknFepKeyCatcher::CheckForSpecilacaseHandlingTosetKeyboardtype(const TKeyEvent& aKeyEvent, TEventCode aEventCode)
+	{
+	
+	//These modifiers will set by dialer application, to simulate
+	// touch button events, hence check event has come from touch keypad and set keyboardlayout accordingly
+			
+	if(aKeyEvent.iModifiers & EModifierNumLock &&
+        aKeyEvent.iModifiers & EModifierKeypad 
+        )
+		{
+		//Check for modifiers and previous event handled is normal or special.
+		if(iFepMan.KeyboardLayout() != EPtiKeyboard12Key &&
+			 iPreviousKeyeventNormal)
+	        {	        
+	        iFepMan.SetKeyboardLayout(EPtiKeyboard12Key);
+	        iFepMan.SetFnKeyMappingState();
+	        iFepMan.SetQwertyMode(0);
+	        
+	        //This variable will be set, while handling special key events,	        
+	        iPreviousKeyeventSpecial = ETrue;
+	        
+	        //This variable will be set while handling normal keyevent
+	        iPreviousKeyeventNormal = EFalse;
+	        iRetainKeyBoardtypeFornextkeyevent = EFalse;	        
+	        }
+	        
+	        //Additional modifier set by query dialog, while simulating event
+	        // As raw key events are used to simulate, modifiers and scan codes cannot be set at a time
+	        // In the 1st event, modifiers are set and in subsequent event, scan codes will be set. 
+	        if(aKeyEvent.iModifiers & EModifierSpecial)
+	        	{
+	        	iRetainKeyBoardtypeFornextkeyevent = ETrue;   
+	        	iPreviousKeyeventSpecial = ETrue;
+	        	iPreviousKeyeventNormal = ETrue;     	
+	        	return EKeyWasConsumed;	        
+	        	}	        							
+		}
+	else if(iFepMan.KeyboardLayout() == EPtiKeyboard12Key && iPreviousKeyeventSpecial)	 
+		{
+		//In case of query dialog, treat it as special event, till keyup event.
+		if(!iRetainKeyBoardtypeFornextkeyevent)
+			{		
+			TInt activeKeypad=0;
+			TInt activeKeypadType =0;
+			RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout,activeKeypad);
+	        RProperty::Get(KCRUidAvkon, KAknQwertyInputModeActive, activeKeypadType);
+			iFepMan.SetKeyboardLayout((TPtiKeyboardType)activeKeypad);
+	        iFepMan.SetFnKeyMappingState();
+	        iFepMan.SetQwertyMode(activeKeypadType);
+	        iPreviousKeyeventNormal = ETrue;
+	        iPreviousKeyeventSpecial = EFalse;
+			}
+		else if(aEventCode == EEventKeyUp)	//In case of query dialog reset flag in Keyup event.			
+			iRetainKeyBoardtypeFornextkeyevent =EFalse;	
+		}
+		
+	if(iPreviousKeyeventSpecial)
+		{
+		iFepMan.CancelShiftKeyTimer();
+		iFepMan.ClearFlag(CAknFepManager::EFlagShiftKeyDepressed);					
+		}
+		
+	return EKeyWasNotConsumed;
+	}
+	
 // End of file
--- a/fep/aknfep/src/AknFepManager.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/src/AknFepManager.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -132,6 +132,8 @@
 #include <aknCharMap.h>
 
 #include <AknFepInternalPSKeys.h>
+#include <e32property.h>
+#include <AknDef.h>
 
 const TInt KSelectItemSize(10);
 _LIT(KAknFepResourceFileName, "z:\\resource\\fep\\aknfep.rsc");
@@ -249,6 +251,9 @@
 
 LOCAL_C TInt RemapVietnameseAccentedCharacter(TUint16 aChr);
 
+static _LIT_SECURITY_POLICY_PASS( KAllowAllPolicy );
+static _LIT_SECURITY_POLICY_C1( KPowerMgmtPolicy, ECapabilityPowerMgmt );
+
 //
 // Class TTextDirectionalInfo
 //
@@ -442,6 +447,13 @@
     iHybridAplphaChangedToAlphanumeric = EFalse;
     iLastFocusedEditor = NULL;
     iFepAwareDialogParentEditor = NULL;
+	
+	RProperty::Define(
+            KPSUidAknFep, 
+            KAknFepSettingDialogState, 
+            RProperty::EInt, 
+            KAllowAllPolicy,  // None
+            KPowerMgmtPolicy ); 
     }
 
 void CAknFepManager::ConstructFullyL()
@@ -3507,6 +3519,11 @@
         }
     }
 
+void CAknFepManager::HandleChangeInFocusForSettingFep()
+	{
+	HandleChangeInFocus();
+	}
+
 void CAknFepManager::HandleDestructionOfFocusedItem()
     {
     if (iInputCapabilities.FepAwareTextEditor())
@@ -5327,6 +5344,11 @@
                         
         case R_AVKON_PREDICTIVE_TEXT_MENU_T9:
             {
+            if( (iPtiEngine->NumberOfCandidates() <= 1) && !IsFlagSet(EFlagRemoveMatchesMenuItem ) )
+			   {
+			   SetFlag( EFlagRemoveMatchesMenuItem );
+			   }
+
             if (iMode != ELatin)
                 {
                 aMenuPane->SetItemDimmed(EAknCmdT9PredictiveInsertWord, ETrue);
@@ -8065,10 +8087,14 @@
 
         TUid fepUid = CCoeEnv::Static()->FepUid();
         ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
+		SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
         // Fire up the dialog
+		iMatchesListLaunched = ETrue;
         TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_MATCHES_QUERY, index, 
                                                           currentIndex, matchesList, NULL);
+        iMatchesListLaunched = EFalse;
         PrepareFepAfterDialogExitL(fepUid);
+		SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);
         if(returnValue == EAknSoftkeyOk)
             {// Selected item 'index' from the matches array
             HandleChangeInFocusL();
@@ -8844,7 +8870,7 @@
     TInt textQueryEditorFlag = 0;
     if ((aResourceId == R_AVKON_INSERT_WORD_QUERY ||
          aResourceId == R_AVKON_EDIT_WORD_QUERY ) &&
-        IsChineseInputLanguage())
+         FeatureManager::FeatureSupported( KFeatureIdChinese ))
     	{
 	    textQueryEditorFlag = EAknEditorFlagLatinInputModesOnly;
     	}
@@ -15792,6 +15818,7 @@
 #endif //RD_SCALABLE_UI_V2
     TUid fepUid = CCoeEnv::Static()->FepUid();
     ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
+	SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
     TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_LANGUAGES_QUERY, index, 
                                                       selectedLanguageIndex, languagesList, icons);
 #ifdef RD_SCALABLE_UI_V2
@@ -15840,6 +15867,7 @@
         
           
         }
+	SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);	
     CleanupStack::PopAndDestroy( languages );
     }
 
@@ -18382,7 +18410,7 @@
         	{
             iFepPluginManager->SetLaunchSCTInSpell( ETrue );            
         	}        	
-        
+        SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
 		if (iUiInterface->CharMapDialogL(
 			sctChars, 
 			specialChars, 
@@ -18520,6 +18548,7 @@
             iStopProcessFocus = EFalse;                   
             }		   
         PrepareFepAfterDialogExitL(fepUid);
+		SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);
         }
     }
 
@@ -18757,20 +18786,28 @@
         iAsyncResouceChanged.CallBack();
     	}
 #ifdef RD_INTELLIGENT_TEXT_INPUT
-    if(iCandidatePopup && iPtiEngine && (aType == KEikDynamicLayoutVariantSwitch))        
-        {
+    
+    if(aType == KEikDynamicLayoutVariantSwitch)        
+        {		
+		if ( iAvkonAppUi->IsDisplayingDialog() && iMatchesListLaunched )
+			{
+			 iUiInterface->DeleteDialogs();
+			}
+        
         //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() );
-        
+        if( iCandidatePopup && iPtiEngine )
+        	{
+			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 ));
--- a/fep/aknfep/src/AknFepPluginManager.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/src/AknFepPluginManager.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -686,6 +686,8 @@
             case ESignalEnterSpellMode:
                 {
                 iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputDisableLayoutDrawing,ETrue);
+                // this will allow the layout to be redraw even if the layout was activeated
+                iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputEnalbeLayoutReDrawWhenActive,ETrue);
                 iFepMan.LaunchEditWordQueryL();
                 }
                 break;
@@ -698,6 +700,8 @@
 				iFocuschangedForSpellEditor = ETrue;
 				iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputDisableLayoutDrawing,ETrue);
 				
+                // this will allow the layout to be redraw even if the layout was activeated
+                iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputEnalbeLayoutReDrawWhenActive,ETrue);
                 exitbyok ? iFepMan.ExitPluginSpellModeByOk() : 
                            iFepMan.ExitPluginSpellModeByCancel();
                 }
@@ -823,6 +827,15 @@
 //                OnPenInputServerKeyEventL(pBuf);                
                 }
                 break;
+            case ESignalDeactivateSprite:
+            	{
+                ClosePluginInputUiL( ETrue );
+                if(iPenInputSvrConnected ) //lost foreground
+                    {
+                    iPenInputServer.LoseForeground();
+                    }
+            	}
+            	break;
             default:
                 break;
             }
@@ -1079,6 +1092,15 @@
                         ECmdPeninputArabicNumModeChanged,aEventData);                            
                 }
             break;
+		case EPluginEnablePriorityChangeOnOriChange:
+            if(iCurrentPluginInputFepUI)
+                {
+                if(ConnectServer())
+                    {
+                    iPenInputServer.EnablePriorityChangeOnOriChange(TBool(aEventData));  
+                    }
+                }
+
         default:
             break;
         }
@@ -1163,16 +1185,24 @@
     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() ) ) );
-
-          
+    // For portrait only mode, need to disable FSQ.
+    TBool disableFSQ = iDefaultOrientation == CAknAppUiBase::EAppUiOrientationPortrait 
+    		           || ( !landscape && !iAvkonAppUi->OrientationCanBeChanged() );         
     if ( disableFSQ )
         {
         iPenInputServer.SetDisabledLayout( EPluginInputModeFSQ );
         }
+    else
+        {
+        // if fsq had been disabled before and now application is not portrait only,
+        // need to enable fsq again;
+        TInt disableMode = iPenInputServer.DisabledLayout();
+        if( disableMode & EPluginInputModeFSQ )
+            {
+            iPenInputServer.SetDisabledLayout( -1 );//reset disable type
+            iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeFSQ );
+            }
+        }
     
     TBool disableITUT = 
                ( iDefaultOrientation == CAknAppUiBase::EAppUiOrientationLandscape ||
@@ -1183,19 +1213,19 @@
          //disable V-ITUT, and if current aSuggestMode is EPluginInputModeItut, replace it with EPluginInputModeFSQ;
          iPenInputServer.SetDisabledLayout( EPluginInputModeItut );
          if( aSuggestMode == EPluginInputModeItut )
-          {
-              aSuggestMode = EPluginInputModeFSQ;
-          }
+             {
+             aSuggestMode = EPluginInputModeFSQ;
+             }
          }
     else
          {
          // if V-ITUT had been disabled before, enable it now;
          TInt disableMode = iPenInputServer.DisabledLayout();
          if( disableMode & EPluginInputModeItut )
-          {
-			iPenInputServer.SetDisabledLayout( -1 );//reset
-			iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeItut );
-          }
+             {
+			 iPenInputServer.SetDisabledLayout( -1 );//reset
+			 iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeItut );
+             }
          }
 
 
@@ -1271,11 +1301,6 @@
         isSplit = EFalse;
         }    
 
-    if ( iLangMan.IsSplitView() && !isSplit )
-        {
-        NotifyAppUiImeTouchWndStateL( EFalse ); //restore layout
-        }
-
     iLangMan.SetSplitView(isSplit);
 
  
@@ -1509,8 +1534,8 @@
 // 
 void CAknFepPluginManager::OnResourceChangedL( TInt aType )
     { 
-    if ( !iCurrentPluginInputFepUI || !iPenInputServer.IsForeground() || 
-         iPluginInputMode == EPluginInputModeNone )
+    if ( !iCurrentPluginInputFepUI 
+    	 || iPluginInputMode == EPluginInputModeNone )
         {
         return;
         }
@@ -1520,44 +1545,88 @@
 	     && !iSharedData.AutoRotateEnabled() )
         {
         return;
-        }
-        
+        }    
+
+    TInt preInputMode = iPluginInputMode;
+    if ( iSharedData.AutoRotateEnabled() && 
+        ( preInputMode == EPluginInputModeFSQ || preInputMode == EPluginInputModeItut ) )
+        {
+        // Calculate current input mode by orientation.
+        // even though peninputserver is brought to backgroud, 
+        // the value for current input mode also needs to be ready. 
+        // For example, when open task switcher, pen ui is invisible and peniput server is background, 
+        // then switch orientation...
+        // After that when focus go back to editor, config FEP must be done before pen ui open,
+        // And FEP must know for which kind of input method it configur.        
+        TPixelsTwipsAndRotation size; 
+        CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);        
+        iPluginInputMode = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight ) ? 
+            EPluginInputModeItut : EPluginInputModeFSQ;            
+        }
+    
+    if ( !iPenInputServer.IsForeground() )
+	    {
+	    return;
+	    }
+
     TBool setResChange = EFalse;
     
-    if (iPluginInputMode == EPluginInputModeItut || 
-         iPluginInputMode == EPluginInputModeFSQ ||
-        iPluginInputMode == EPluginInputModeFingerHwr)
+    if ( preInputMode == EPluginInputModeItut || 
+    	 preInputMode == EPluginInputModeFSQ ||
+    	 preInputMode == EPluginInputModeFingerHwr )
         {
         setResChange = ETrue;
-        iPenInputServer.SetResourceChange(ETrue);    
+        iPenInputServer.SetResourceChange(ETrue);           
         }
     
     iResourceChange = ETrue;   
 
+    TBool needToChangeInputMode = ETrue;
     if ( iSharedData.AutoRotateEnabled() && 
-        ( iPluginInputMode == EPluginInputModeFSQ || iPluginInputMode == EPluginInputModeItut ) )
+         ( preInputMode == EPluginInputModeFSQ || preInputMode == EPluginInputModeItut ) )
         {
         if ( IsSpellVisible() )
             {
             iFepMan.ExitPluginSpellModeByCancel();
+            iFepMan.SetNotifyPlugin( EFalse );
+            iFepMan.HandleChangeInFocusForSettingFep();
+            iFepMan.SetNotifyPlugin( ETrue );
             }
         
-        if ( iPenInputMenu && iPenInputMenu->IsShowing() )
-            {
-            iPenInputMenu->Hide();
-            ResetMenuState();
+         if ( iPenInputMenu && iPenInputMenu->IsShowing() )
+             {
+             iPenInputMenu->Hide();
+             ResetMenuState(EFalse);
+             }
+            
+        if( preInputMode != iPluginInputMode )
+            {            
+            ClosePluginInputModeL(ETrue);
+            iFepMan.TryCloseUiL();
             }
-        ClosePluginInputModeL(ETrue);               
-        iFepMan.TryCloseUiL(); 
-        TPixelsTwipsAndRotation size; 
-        CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
-
-        iPluginInputMode = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight ) ? 
-            EPluginInputModeItut : EPluginInputModeFSQ;
-        }
-    TryChangePluginInputModeByModeL( iPluginInputMode,
+        else
+            {
+            needToChangeInputMode = EFalse;
+            }
+        }
+    
+    if(needToChangeInputMode)
+	    {
+		TryChangePluginInputModeByModeL( iPluginInputMode,
                                      EPenInputOpenManually,
                                      ERangeInvalid ); 
+		}
+    else 
+        {
+        if ( !NotifyInGlobalNoteEditorL() )
+            {
+            iFocuschangedForSpellEditor = EFalse; 
+            iCurrentPluginInputFepUI->ActivateUI(); 
+            iNeedFetchDimState = ETrue;
+            }
+        }
+
+    
     /*if(size.iPixelSize.iWidth > size.iPixelSize.iHeight ) //landscape
         {
         if ( iPluginInputMode == EPluginInputModeVkb )
@@ -1585,12 +1654,15 @@
         iCurrentPluginInputFepUI->ResourceChanged(aType);
         }
     
-    if (iInMenu)
-        {
-        SetMenuState(EFalse);
-        }
-        
-    if (setResChange)    
+	if(needToChangeInputMode)
+	    {
+		if (iInMenu)
+			{
+			SetMenuState(EFalse);
+			}
+		}
+
+	if (setResChange)    
         {
         iPenInputServer.SetResourceChange(EFalse);         
         }
@@ -5947,6 +6019,14 @@
 //
 TBool CAknFepPluginManager::IsEditorSupportSplitIme()
     {
+	
+	TBool disablePartialInput = FeatureManager::FeatureSupported( KFeatureIdChinese ) 
+	                            || FeatureManager::FeatureSupported( KFeatureIdKorean );
+	if ( disablePartialInput )
+	    {
+	    return EFalse;
+	    }
+
     //Mfne editors
     if ( iFepMan.IsMfneEditor() )
         {
--- a/fep/aknfep/src/AknFepUiInputStateEntryWesternPredictive.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/fep/aknfep/src/AknFepUiInputStateEntryWesternPredictive.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -709,7 +709,7 @@
                    ( fepMgr->PluginUIManager()->PluginInputMode() == EPluginInputModeItut ))
                     {
                     // launch full screen query for split itut
-                    fepMgr->LaunchEditWordQueryL();
+                    fepMgr->PluginUIManager()->HandleServerEventL(ESignalEnterSpellMode);  
                     }
                 else
                     {
--- a/inputmethods_plat/aknfep_pen_support_api/inc/aknfeppeninputenums.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/inputmethods_plat/aknfep_pen_support_api/inc/aknfeppeninputenums.h	Wed Jul 21 14:32:17 2010 +0100
@@ -182,6 +182,7 @@
     ECmdPeninputEnableOwnBitmap,    
 	ECmdPeninputDisableLayoutDrawing,
 	ECmdPeninputArabicNumModeChanged,
+    ECmdPeninputEnalbeLayoutReDrawWhenActive,
     ECmdPenInputImeCmdBase = 2000
     };
 
--- a/inputmethods_plat/pen_input_server_api/inc/peninputclient.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/inputmethods_plat/pen_input_server_api/inc/peninputclient.h	Wed Jul 21 14:32:17 2010 +0100
@@ -427,7 +427,7 @@
     IMPORT_C void SetResourceChange(TBool aFlag); 
     IMPORT_C TInt ConnectAsyc(TRequestStatus& aStatus);
 	IMPORT_C void SetDataQueryPopped(TBool aFlag);
-
+    IMPORT_C void EnablePriorityChangeOnOriChange(TBool aEnabled);
 private:    // Data
     /**
      * The singleton client to the input server
--- a/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h	Wed Jul 21 14:32:17 2010 +0100
@@ -111,6 +111,7 @@
     ESignalRegisterBkControl,
     ESignalDisableUpdating,
     ESignalDrawBackground,
+    ESignalEnableLayoutRedrawWhenActive,
     ESignalFepEventBase = 1500,    //Event base for Fep. All fep event
                                     //is re-directed to Fep.
     ESignalKeyEvent = 1501,        //hwr recongition selection event.
@@ -151,6 +152,7 @@
     EPeninputOpSetDiscreeptPop,  
     ESignalDeleteLastInput,
     ESignalArabicSCTChar,
+    ESignalDeactivateSprite,
     ESignalUserEventBase = 2000
     };
 
--- a/textinput/peninputarc/bwins/peninputClientU.DEF	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/bwins/peninputClientU.DEF	Wed Jul 21 14:32:17 2010 +0100
@@ -63,4 +63,5 @@
 	?SetInputLanguage@RPeninputServer@@QAEHH@Z @ 62 NONAME ; int RPeninputServer::SetInputLanguage(int)
 	?ConnectAsyc@RPeninputServer@@QAEHAAVTRequestStatus@@@Z @ 63 NONAME ; int RPeninputServer::ConnectAsyc(class TRequestStatus &)
 	?SetDataQueryPopped@RPeninputServer@@QAEXH@Z @ 64 NONAME ; void RPeninputServer::SetDataQueryPopped(int)
+	?EnablePriorityChangeOnOriChange@RPeninputServer@@QAEXH@Z @ 65 NONAME ; void RPeninputServer::EnablePriorityChangeOnOriChange(int)
 
--- a/textinput/peninputarc/eabi/peninputClientU.DEF	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/eabi/peninputClientU.DEF	Wed Jul 21 14:32:17 2010 +0100
@@ -72,3 +72,5 @@
 	_ZN15RPeninputServer16SetInputLanguageEi @ 71 NONAME
 	_ZN15RPeninputServer11ConnectAsycER14TRequestStatus @ 72 NONAME
 	_ZN15RPeninputServer18SetDataQueryPoppedEi @ 73 NONAME
+	_ZN15RPeninputServer31EnablePriorityChangeOnOriChangeEi @ 74 NONAME
+
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbasecontrol.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbasecontrol.h	Wed Jul 21 14:32:17 2010 +0100
@@ -44,6 +44,8 @@
 typedef TInt64 TControlType;
 
 const TInt KPenInputOwnDeviceChange = -1;
+const TInt KPenInputOwnDeviceResourceChange = -2;
+
 const TUint KFepCtrlExtId = 0x00000000;
 //UI layout leave code
 enum TUiLayoutErrorCode
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvirtualkeyctrl.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvirtualkeyctrl.h	Wed Jul 21 14:32:17 2010 +0100
@@ -235,7 +235,7 @@
     
     TVirtualKeyDrawInfo iVirtualKeyDrawInfo;     
     
-protected:
+public:
     void UpdateChangedArea(TBool aFlag);    
 private:    
     CFbsBitGc* GetGc();
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h	Wed Jul 21 14:32:17 2010 +0100
@@ -168,7 +168,8 @@
     CFbsBitmapDevice* iHighlightKeyDev;
     CFbsBitmapDevice* iDimmedKeyDev;
     CFbsBitGc* iKeyGc;
-    
+    TBool iHighlightKeyResourceChanged;
+    TBool iNormalKeyResourceChanged;
 friend class CVirtualKeyboard;   
     };
 
@@ -935,6 +936,8 @@
     
     TBool PrepareKeyBmp(CFbsBitmap* aBmp,CFbsBitmapDevice* aDev,const TRect& aRect, 
             const TRect& aInnerRect,const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,const TRect& aKeyRect);
+    TBool PrepareHighlightKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect);
+    TBool PrepareNormalKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect);        
 
 friend class CVirtualKeyCtrl;
 friend class CVirtualRawKeyCtrl;
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputclientimpl.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputclientimpl.h	Wed Jul 21 14:32:17 2010 +0100
@@ -450,6 +450,8 @@
     void SetResourceChange(TBool aFlag);
     
     void SetDataQueryPopped(TBool aFlag);
+	
+	void EnablePriorityChangeOnOriChange(TBool aEnabled);
     /**
      * Starts the server thread
      *
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputclientserver.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputclientserver.h	Wed Jul 21 14:32:17 2010 +0100
@@ -88,7 +88,8 @@
     EPeninputRequestInternalDimLayout,
     EPeninputRequestDimResChangeLayout,
     EPeninputRequestSupportInputMode,
-    EPeninputRequestSetInputLanguage
+    EPeninputRequestSetInputLanguage,
+	EPeninputEnablePriorityChangeOnOriChange
     };
 
 //server error code
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h	Wed Jul 21 14:32:17 2010 +0100
@@ -980,6 +980,8 @@
     RProperty       iDiscreetPopProperty;
     RAknUiServer    iAknUiSrv; 
     TRect iDiscreetPopArea;
+	TBool iEnablePriorityChangeOnOriChange;
+    TBool iIsLayoutReDrawAllowWhenActive;
     };
 
 /**
--- a/textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h	Wed Jul 21 14:32:17 2010 +0100
@@ -201,6 +201,7 @@
     void Clean();
     
     void HandleNGASpecificSignal(TInt aEventType, const TDesC& aEventData);
+    void LiftUpPriority();
 public: // Functions from base classes.
 
     /**
@@ -374,4 +375,4 @@
     RWindowGroup& iWndGroup;
     CFbsBitmap * iBitmap;
     };    
-#endif    
\ No newline at end of file
+#endif    
--- a/textinput/peninputarc/src/peninputanim/peninputanim.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputanim/peninputanim.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -42,10 +42,10 @@
 
 #include <avkondomainpskeys.h>
 //CONSTANT
-const TInt KMsgSlot1 = 1;	//msg slot 2 in IPC
-const TInt KMsgSlot2 = 2; 	//msg slot 2 in IPC
-const TInt KFlushTimerPeriod = 1000 * 10;		//1/100 second
-const TInt KResponseQueueWaitTime = 100000;		//1/10 second
+const TInt KMsgSlot1 = 1;     //msg slot 2 in IPC
+const TInt KMsgSlot2 = 2;     //msg slot 2 in IPC
+const TInt KFlushTimerPeriod = 1000 * 10;          //1/100 second
+const TInt KResponseQueueWaitTime = 100000;        //1/10 second
 
 // ======== GLOBAL FUNCTIONS ========
 
@@ -57,7 +57,7 @@
 //
 EXPORT_C CAnimDll *CreateCAnimDllL()
     {
-	return(new (ELeave) CPeninputAnimDll()); 
+    return(new (ELeave) CPeninputAnimDll()); 
     }
 
 // ======== MEMBER FUNCTIONS ========
@@ -71,7 +71,7 @@
 //
 CAnim* CPeninputAnimDll::CreateInstanceL(TInt /*aType*/)
     {
-	return new(ELeave) CPeninputAnim();
+    return new(ELeave) CPeninputAnim();
     }
 
 // class CPeninputAnim
@@ -83,28 +83,28 @@
 //
 CPeninputAnim::CPeninputAnim()
     {
-	iIsActive = EFalse;
-	//iSpritePosition and iSpriteSize are initialized to 0 by default constructor
-	//iSpritePosition = TPoint(0, 0);
-	//iSpriteSize = TSize(0, 0);
-	iIsPointerCaptured = EFalse;
-	iIsPenDown = EFalse;
-	
-	iPrimaryTouchPtNum = 0;
-	iPrimaryTouchPtDetected = EFalse;
+    iIsActive = EFalse;
+    //iSpritePosition and iSpriteSize are initialized to 0 by default constructor
+    //iSpritePosition = TPoint(0, 0);
+    //iSpriteSize = TSize(0, 0);
+    iIsPointerCaptured = EFalse;
+    iIsPenDown = EFalse;
+    
+    iPrimaryTouchPtNum = 0;
+    iPrimaryTouchPtDetected = EFalse;
 
-	
-#ifdef RD_TACTILE_FEEDBACK	
-	TRAPD( err, FeatureManager::InitializeLibL() );
+    
+#ifdef RD_TACTILE_FEEDBACK    
+    TRAPD( err, FeatureManager::InitializeLibL() );
     if( err == KErrNone )
         {
         iTactileSupported =  FeatureManager::FeatureSupported( KFeatureIdTactileFeedback );
         }
-	iFeedback = MTactileFeedbackServer::Instance();
-#endif // RD_TACTILE_FEEDBACK	
+    iFeedback = MTactileFeedbackServer::Instance();
+#endif // RD_TACTILE_FEEDBACK    
     
-    iEnableSprite = ETrue;	
-    iDSAState = EFalse;	
+    iEnableSprite = ETrue;    
+    iDSAState = EFalse;    
     }
 
 // ---------------------------------------------------------------------------
@@ -114,19 +114,19 @@
 //
 CPeninputAnim::~CPeninputAnim()
     {
-	Deactivate();
+    Deactivate();
 
-	iMsgBufQueue.Close();
-	iKeyMsgResponseQueue.Close();
-	iResponseQueueSemaphore.Close();
-	
-	delete iFlushTimer;
-#ifdef RD_TACTILE_FEEDBACK	
-	FeatureManager::UnInitializeLib();
-	iTactileControl.Close();
-	iBackupTactileControl.Close();
-#endif // RD_TACTILE_FEEDBACK	
-	delete iPointerEventSuppressor;
+    iMsgBufQueue.Close();
+    iKeyMsgResponseQueue.Close();
+    iResponseQueueSemaphore.Close();
+    
+    delete iFlushTimer;
+#ifdef RD_TACTILE_FEEDBACK    
+    FeatureManager::UnInitializeLib();
+    iTactileControl.Close();
+    iBackupTactileControl.Close();
+#endif // RD_TACTILE_FEEDBACK    
+    delete iPointerEventSuppressor;
     }
 
 // ---------------------------------------------------------------------------
@@ -136,10 +136,10 @@
 //
 void CPeninputAnim::ConstructL(TAny* /*aParameters*/)
     {
-	// the animation feature is not used
-	iFunctions->SetInterval(0);
-	iFlushTimer = CPeriodic::NewL(CActive::EPriorityStandard);
-	
+    // the animation feature is not used
+    iFunctions->SetInterval(0);
+    iFlushTimer = CPeriodic::NewL(CActive::EPriorityStandard);
+    
     iFunctions->RegisterForNotifications(EDirectScreenAccess);
     iPointerEventSuppressor = CPenPointerEventSuppressor::NewL();
     }
@@ -199,7 +199,7 @@
     {
     if( iIsSimulatedEvent )
         {
-    	return EFalse;
+        return EFalse;
         }
     
     // Suppress multi-touch events
@@ -228,7 +228,7 @@
         }
 
     
-	// Suppress unexpected drag events
+    // Suppress unexpected drag events
     TPointerEvent pointerEvent;
     switch ( aRawEvent.Type() )
         {
@@ -260,30 +260,39 @@
         }
 
     
-	switch(aRawEvent.Type())
-	    {
-		case TRawEvent::EKeyUp:
-		case TRawEvent::EKeyDown:
-		    {
-			return OnRawKeyEvent(aRawEvent);        	
-		    }
-		case TRawEvent::EButton1Down:
-		    {
-			return OnRawButton1Down(aRawEvent);
-		    }
-		case TRawEvent::EButton1Up:
-		    {
-			return OnRawButton1Up(aRawEvent);
-		    }
-		case TRawEvent::EPointerMove:
-		    {
-			return OnRawPointerMove(aRawEvent);
-		    }
-		default:
-		    {
-			return EFalse;
-		    }            
-	    }	
+    switch(aRawEvent.Type())
+        {
+        case TRawEvent::EKeyUp:
+        case TRawEvent::EKeyDown:
+            {
+            return OnRawKeyEvent(aRawEvent);            
+            }
+        case TRawEvent::EButton1Down:
+            {
+            TBool used = OnRawButton1Down(aRawEvent);
+            
+            if ( used )
+                {
+                StartTimer();
+                }
+            
+            return used;
+            }
+        case TRawEvent::EButton1Up:
+            {
+            TBool used = OnRawButton1Up(aRawEvent);
+            StopTimer();
+            return used;
+            }
+        case TRawEvent::EPointerMove:
+            {
+            return OnRawPointerMove(aRawEvent);
+            }
+        default:
+            {
+            return EFalse;
+            }            
+        }    
     }
 
 // ---------------------------------------------------------------------------
@@ -296,7 +305,7 @@
     {
     switch(aOpcode)
         {
-		case EPeninputOpActivate:
+        case EPeninputOpActivate:
             {
             Activate();
             break;
@@ -308,16 +317,16 @@
             }        
         case EPeninputOpLayoutUpdateArea:
             {
-            PanicClientIfNoParam(aParams);	                
-			TUpdateDataArea* area = static_cast<TUpdateDataArea*>(aParams);
-			iSpriteFunctions->UpdateMember( 0, area->iRect, area->iUpdateFlag );
-			break;
-		    }			
+            PanicClientIfNoParam(aParams);                    
+            TUpdateDataArea* area = static_cast<TUpdateDataArea*>(aParams);
+            iSpriteFunctions->UpdateMember( 0, area->iRect, area->iUpdateFlag );
+            break;
+            }            
         case EPeninputOpCapturePointer:
             {
             PanicClientIfNoParam(aParams);            
-	        iIsPointerCaptured = *(static_cast<TBool*>(aParams));
-	        break;
+            iIsPointerCaptured = *(static_cast<TBool*>(aParams));
+            break;
             }
         case EPeninputOpSimulateEvent:
             {
@@ -356,7 +365,7 @@
                 }
             TTactileControlInfo controlitem(area.iId, area.iNewRect, area.iTactileType);
             TInt idx = iTactileControl.Find(controlitem, 
-            		TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
+                    TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
             if(idx != KErrNotFound)
                 {  
                 iTactileControl.Remove(idx);
@@ -378,18 +387,18 @@
             }
             break; 
         case EPeninputOpChangeFeedbackType:
-        	{
-        	PanicClientIfNoParam(aParams);
+            {
+            PanicClientIfNoParam(aParams);
             TTactileFeedbackArea area = *(static_cast<TTactileFeedbackArea*>(aParams));
             TTactileControlInfo controlitem(area.iId, area.iNewRect, area.iTactileType);
             TInt idx = iTactileControl.Find(controlitem,                    
-					TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
+                    TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
             if(idx != KErrNotFound)
                 {                                
                 //change the tactile type
                 iTactileControl[idx].iTactileType = area.iTactileType;
-                }        	
-        	}
+                }            
+            }
             break;
 #endif // RD_TACTILE_FEEDBACK
         case EPeninputOpEnalbeSprite:
@@ -406,7 +415,7 @@
             iFunctions->Panic();
             break;
             }
-	    }
+        }
     }
 
 
@@ -432,7 +441,7 @@
             iKeyMsgResponseQueue.OpenGlobal(KMsgEventResponseQueue);
             iResponseQueueSemaphore.OpenGlobal(KAnimKeyEventSemaphore);
 
-			break;
+            break;
             }
 
         case EPeninputOpActivate:
@@ -448,19 +457,19 @@
             }       
             
         case EPeninputOpLayoutUpdateArea:
-        	{
-        	//TUpdateDataArea s;
-			//TPckg<TUpdateDataArea> pkg(s);        	
-			TRect rect;
-			TBool flag;
-		    TPckg<TRect> rectMsg(rect);			
-		    TPckg<TBool> flagMsg(flag);    
-			
-			msg->ReadL(KMsgSlot1,rectMsg);
-			msg->ReadL(KMsgSlot2,flagMsg);
-			iSpriteFunctions->UpdateMember(0, rect,flag);			
-        	  }
-        	  break;
+            {
+            //TUpdateDataArea s;
+            //TPckg<TUpdateDataArea> pkg(s);            
+            TRect rect;
+            TBool flag;
+            TPckg<TRect> rectMsg(rect);            
+            TPckg<TBool> flagMsg(flag);    
+            
+            msg->ReadL(KMsgSlot1,rectMsg);
+            msg->ReadL(KMsgSlot2,flagMsg);
+            iSpriteFunctions->UpdateMember(0, rect,flag);            
+              }
+              break;
         case EPeninputOpLayoutUpdateAreaRegion:
             {
             TInt num;
@@ -481,8 +490,8 @@
                 }
 
             CleanupStack::PopAndDestroy( buf );
-        	}
-        	break;
+            }
+            break;
         case EPeninputOpSetLayoutPos:
             {
             TPoint pt;
@@ -495,55 +504,55 @@
         case EPeninputOpCapturePointer:
             {
             TInt captureCtrlID;
-			TPckg<TBool> msgData(iIsPointerCaptured);
-			TPckg<TInt> msgCaptureCtrlIDData(captureCtrlID);
+            TPckg<TBool> msgData(iIsPointerCaptured);
+            TPckg<TInt> msgCaptureCtrlIDData(captureCtrlID);
             
             msg->ReadL(KMsgSlot1,msgData);
             msg->ReadL(KMsgSlot2,msgCaptureCtrlIDData);
 #ifdef RD_TACTILE_FEEDBACK
-			// When pointer is captured by some ctrl,
-			// only the captured ctrl has tactile feedback ablity,
-			// disable all other one's.
+            // When pointer is captured by some ctrl,
+            // only the captured ctrl has tactile feedback ablity,
+            // disable all other one's.
             if (iIsPointerCaptured)
-            	{
-            	// Back up all the tactile area
-            	iBackupTactileControl.Reset();        	
-		        TInt count = iTactileControl.Count();
-		        for(TInt i = 0; i < count; ++i)
-		            {
-		            iBackupTactileControl.Append(iTactileControl[i]);
-		            }
-		        
-		        // Clean up the original tactile area
-		        iTactileControl.Reset();		       
-		        
-		        // Find the captured ctrl, restore its tactile ablity
-		        for(TInt i = 0; i < count; ++i)
-		            {
-		            if (iBackupTactileControl[i].iId == captureCtrlID)
-		            	{
-		            	iTactileControl.Append(iBackupTactileControl[i]);
-		            	}
-		            }
+                {
+                // Back up all the tactile area
+                iBackupTactileControl.Reset();            
+                TInt count = iTactileControl.Count();
+                for(TInt i = 0; i < count; ++i)
+                    {
+                    iBackupTactileControl.Append(iTactileControl[i]);
+                    }
+                
+                // Clean up the original tactile area
+                iTactileControl.Reset();               
+                
+                // Find the captured ctrl, restore its tactile ablity
+                for(TInt i = 0; i < count; ++i)
+                    {
+                    if (iBackupTactileControl[i].iId == captureCtrlID)
+                        {
+                        iTactileControl.Append(iBackupTactileControl[i]);
+                        }
+                    }
 
-            	}
+                }
             // When pointer released captured, 
             // restore all original tactile area.
             else 
-            	{
-            	if (iBackupTactileControl.Count() != 0)
-            		{
-            		iTactileControl.Reset();			       
-	            	
-			        TInt count = iBackupTactileControl.Count();
-			        for(TInt i = 0; i < count; ++i)
-			            {
-			            iTactileControl.Append(iBackupTactileControl[i]);
-			            }
-			        iBackupTactileControl.Reset();
-            		}
-            	}
-#endif            	
+                {
+                if (iBackupTactileControl.Count() != 0)
+                    {
+                    iTactileControl.Reset();                   
+                    
+                    TInt count = iBackupTactileControl.Count();
+                    for(TInt i = 0; i < count; ++i)
+                        {
+                        iTactileControl.Append(iBackupTactileControl[i]);
+                        }
+                    iBackupTactileControl.Reset();
+                    }
+                }
+#endif                
             }
             break;
         case EPeninputOpLayoutSizeChangedWithSize:
@@ -567,7 +576,7 @@
             
 #ifdef RD_TACTILE_FEEDBACK             
         case EPeninputOpRegisterFeedbackArea:
-            {						
+            {                        
             GetFeedbackAreaDataL(iTactileControl,msg);            
             }
             break;
@@ -583,7 +592,7 @@
             //remove all registered feedback area
             const TInt KRemoveAllId = -1;           
             if(controlarray.Count() && controlarray[0].iId == KRemoveAllId && 
-										controlarray[0].iArea == TRect(0,0,0,0))
+                                        controlarray[0].iArea == TRect(0,0,0,0))
                 {
                 //remove all
                 iTactileControl.Reset();
@@ -595,7 +604,7 @@
                     {
                     //find id first
                     TInt idx = iTactileControl.Find(controlarray[i], 
-								TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
+                                TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
                     
                     if(idx != KErrNotFound)
                         {
@@ -624,7 +633,7 @@
                 {
                 //find id first
                 TInt idx = iTactileControl.Find(controlarray[i], 
-                		   TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
+                           TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
                                     
                 if(idx != KErrNotFound)
                     {
@@ -654,12 +663,12 @@
             for(TInt i = 0; i < controlarray.Count(); ++i)
                 {
                 //find id first
-                TInt idx = iTactileControl.Find(controlarray[i],                 		   
-						   TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
+                TInt idx = iTactileControl.Find(controlarray[i],                            
+                           TIdentityRelation<TTactileControlInfo>(CPeninputAnim::MatchItemByControlID));
                 if(idx != KErrNotFound)
                     {
                     //change the tactile feedback type
-					iTactileControl[idx].iTactileType = controlarray[i].iTactileType;
+                    iTactileControl[idx].iTactileType = controlarray[i].iTactileType;
                     break;
                     }
                 }
@@ -672,20 +681,20 @@
 #endif // RD_TACTILE_FEEDBACK 
         case EPeninputOpRequestDSAState:                        
             {
-		    TPckgC<TBool> flagMsg(iDSAState);    
-			
-			msg->WriteL(KMsgSlot1,flagMsg);
+            TPckgC<TBool> flagMsg(iDSAState);    
+            
+            msg->WriteL(KMsgSlot1,flagMsg);
             
             }
             break;
         case EPeninputOpSetDiscreeptPop:
-        	{
+            {
             TRect area;
             TPckg<TRect> msgData(area);
             msg->ReadL(KMsgSlot1,msgData);
             SetDiscreeptPop(area); 
-        	}
-        	break;
+            }
+            break;
         default:
             // unsupported opcode, panic the client
             {                
@@ -705,16 +714,14 @@
 //
 void CPeninputAnim::Activate()
     {
-	if(!iIsActive)
-	    {
-		iSpriteFunctions->SetPosition(iSpritePosition);
-		if(iEnableSprite)
-		    iSpriteFunctions->Activate(ETrue);
-		iFunctions->GetRawEvents(ETrue);
-		iIsActive = ETrue;		
-
-		StartTimer();
-	    }        
+    if(!iIsActive)
+        {
+        iSpriteFunctions->SetPosition(iSpritePosition);
+        if(iEnableSprite)
+            iSpriteFunctions->Activate(ETrue);
+        iFunctions->GetRawEvents(ETrue);
+        iIsActive = ETrue;        
+        }        
     }
 
 // ---------------------------------------------------------------------------
@@ -724,15 +731,15 @@
 //
 void CPeninputAnim::Deactivate()
     {
-	if(iIsActive)
-	    {
-	    if(iEnableSprite)
-		    iSpriteFunctions->Activate(EFalse);
-		iFunctions->GetRawEvents(EFalse);        
-		iIsActive = EFalse;
-		
-		StopTimer();
-	    }        
+    if(iIsActive)
+        {
+        if(iEnableSprite)
+            iSpriteFunctions->Activate(EFalse);
+        iFunctions->GetRawEvents(EFalse);        
+        iIsActive = EFalse;
+        
+        StopTimer();
+        }        
     }
     
 #ifdef RD_TACTILE_FEEDBACK
@@ -740,7 +747,7 @@
 // CPeninputAnim::DoTactileFeedBack
 // Give tactile feedback
 // ---------------------------------------------------------------------------
-//						
+//                        
 void CPeninputAnim::DoTactileFeedBack(const TPoint& aPos)
     {
     if ( iFeedback ) 
@@ -753,7 +760,7 @@
                 iFeedback->InstantFeedback((TTouchLogicalFeedback)iTactileControl[i].iTactileType);
                 return;
                 }                 
-        	}           
+            }           
         }
     }
 #endif // RD_TACTILE_FEEDBACK
@@ -768,65 +775,65 @@
 
 TBool CPeninputAnim::OnRawButton1Down(const TRawEvent& aRawEvent)
     {
-	if(iIsSimulatedEvent)
-	    {
-		return EFalse;
-	    }
-		
+    if(iIsSimulatedEvent)
+        {
+        return EFalse;
+        }
+        
     
-	if(iDiscreetPoped && iDiscreetPopArea.Contains(aRawEvent.Pos()))
-		{
-		iDiscreetPopedCapture = ETrue;
-		return EFalse;
-		}
-	TRect rect(iSpritePosition, iSpriteSize);        
-	if(rect.Contains(aRawEvent.Pos()))
-	    {                
-#ifdef RD_TACTILE_FEEDBACK		    
-	    //give tactile feedback	    
-	    if(iTactileSupported)
+    if(iDiscreetPoped && iDiscreetPopArea.Contains(aRawEvent.Pos()))
+        {
+        iDiscreetPopedCapture = ETrue;
+        return EFalse;
+        }
+    TRect rect(iSpritePosition, iSpriteSize);        
+    if(rect.Contains(aRawEvent.Pos()))
+        {                
+#ifdef RD_TACTILE_FEEDBACK            
+        //give tactile feedback        
+        if(iTactileSupported)
             DoTactileFeedBack(aRawEvent.Pos() - rect.iTl);
-#endif // RD_TACTILE_FEEDBACK	
-		iIsPenDown = ETrue;
+#endif // RD_TACTILE_FEEDBACK    
+        iIsPenDown = ETrue;
 
         // When button downing event is happened, iIsMove is reset to EFalse
-	    iIsMove = EFalse;              
+        iIsMove = EFalse;              
 
         // Recording pointer that button is pressing down in at this time
-	    iPointerDown = aRawEvent.Pos();  
+        iPointerDown = aRawEvent.Pos();  
         //
 
-		PostRawEvent(aRawEvent); 
-		return ETrue;
-	    }
+        PostRawEvent(aRawEvent); 
+        return ETrue;
+        }
 
-	if(iIsPointerCaptured)
-	    {                    
-		PostRawEvent(aRawEvent);
-		return ETrue;
-	    }
+    if(iIsPointerCaptured)
+        {                    
+        PostRawEvent(aRawEvent);
+        return ETrue;
+        }
 
-	//pointer outside of input area,inform layout
-	SendRawEvent(aRawEvent);
+    //pointer outside of input area,inform layout
+    SendRawEvent(aRawEvent);
 
-	return EFalse;
+    return EFalse;
     }
 
 TBool CPeninputAnim::OnRawButton1Up(const TRawEvent& aRawEvent)
     {
-	if(iIsSimulatedEvent)
-	    {
-		return EFalse;
-	    }
+    if(iIsSimulatedEvent)
+        {
+        return EFalse;
+        }
 
-	//For discreetPop
-	if(iDiscreetPopedCapture )
-		{
-		iDiscreetPopedCapture = EFalse;
-		return EFalse;
-		}
-	if(iIsPenDown)
-	    {      
+    //For discreetPop
+    if(iDiscreetPopedCapture )
+        {
+        iDiscreetPopedCapture = EFalse;
+        return EFalse;
+        }
+    if(iIsPenDown)
+        {      
   
         // When the control key pressing down in is different with the control key pressing up 
         // and pointer moving event isn¡¯t happened,
@@ -839,69 +846,69 @@
           }
         //
 
-		iIsPenDown = EFalse;
-		
-		TRect rect(iSpritePosition, iSpriteSize);        
-		if(rect.Contains(aRawEvent.Pos()))
-		    {
-			//send pen up event immediately
-			SendRawEvent(aRawEvent);
+        iIsPenDown = EFalse;
+        
+        TRect rect(iSpritePosition, iSpriteSize);        
+        if(rect.Contains(aRawEvent.Pos()))
+            {
+            //send pen up event immediately
+            SendRawEvent(aRawEvent);
             
             // When key pressing up event is completed, iIsMove is reset to EFalse.
             iIsMove = EFalse;   
             //
 
-			return ETrue;                    
-		    }
-	    }
-	
-	if(iIsPointerCaptured)
-	    {                    
-		PostRawEvent(aRawEvent);
-		return ETrue;
-	    }
+            return ETrue;                    
+            }
+        }
     
-	//pointer outside of input area,inform layout
-	SendRawEvent(aRawEvent);
+    if(iIsPointerCaptured)
+        {                    
+        PostRawEvent(aRawEvent);
+        return ETrue;
+        }
+    
+    //pointer outside of input area,inform layout
+    SendRawEvent(aRawEvent);
 
-	return EFalse;	
+    return EFalse;    
     }
 
 TBool CPeninputAnim::OnRawPointerMove(const TRawEvent& aRawEvent)
     {
-	if(iIsSimulatedEvent)
-	    {
-		return EFalse;
-	    }
-	if(iDiscreetPopedCapture)
-	    {
-	    return EFalse;
-	    }
-#ifdef RD_TACTILE_FEEDBACK		    
-	TRect rect(iSpritePosition, iSpriteSize);        
-	if( iIsPenDown && iIsPointerCaptured)
-	    {                
-	    //give tactile feedback	    
+    if(iIsSimulatedEvent)
+        {
+        return EFalse;
+        }
+    if(iDiscreetPopedCapture)
+        {
+        return EFalse;
+        }
+#ifdef RD_TACTILE_FEEDBACK            
+    TRect rect(iSpritePosition, iSpriteSize);        
+    if( iIsPenDown && iIsPointerCaptured)
+        {                
+        //give tactile feedback        
         // When pointer moving event is happened, iIsMove is set to ETrue
         iIsMove = ETrue;        
         //
 
-		PostRawEvent(aRawEvent); 
-		return ETrue;
-	    }
-#endif // RD_TACTILE_FEEDBACK	
+        PostRawEvent(aRawEvent); 
+        return ETrue;
+        }
+#endif // RD_TACTILE_FEEDBACK    
 
-	if(iIsPointerCaptured || iIsPenDown)
-	    {                    
+    if(iIsPointerCaptured || iIsPenDown)
+        {                    
         // When pointer moving event is happened, iIsMove is set to ETrue
         iIsMove = ETrue;        
         //
 
-		PostRawEvent(aRawEvent);
-		return ETrue;
-	    }
-	
-	return EFalse;
+        PostRawEvent(aRawEvent);
+        return ETrue;
+        }
+    
+    return EFalse;
     }
 
 // ---------------------------------------------------------------------------
@@ -912,12 +919,12 @@
 
 TPoint CPeninputAnim::SetPosition(const TPoint& aNewPos)
     {
-	if(aNewPos != iSpritePosition)
-	    {
-		iSpritePosition = aNewPos;
-		iSpriteFunctions->SetPosition(iSpritePosition);	
-	    }
-	return iSpritePosition;
+    if(aNewPos != iSpritePosition)
+        {
+        iSpritePosition = aNewPos;
+        iSpriteFunctions->SetPosition(iSpritePosition);    
+        }
+    return iSpritePosition;
     }
 
 // ---------------------------------------------------------------------------
@@ -927,11 +934,11 @@
 //
 void CPeninputAnim::UpdateArea(const TRect& aRect, TBool aFullUpdate)
     {
-	if(iIsActive)
+    if(iIsActive)
         {
-	    // if function is called without specifying the parameter aRect
-	    // (using default param value) the whole area drawn to is updated
-	    iSpriteFunctions->UpdateMember(0, aRect, aFullUpdate);
+        // if function is called without specifying the parameter aRect
+        // (using default param value) the whole area drawn to is updated
+        iSpriteFunctions->UpdateMember(0, aRect, aFullUpdate);
         }
     }
 
@@ -971,8 +978,8 @@
     if(iEventBuffer.iNum >= KMaxEvent)
         {
         FlushRawEventBuffer();
-	    }
-	
+        }
+    
     iEventBuffer.iEvent[iEventBuffer.iNum] = aRawEvent;
     iEventBuffer.iNum++;
     }
@@ -984,12 +991,12 @@
 //
 TInt CPeninputAnim::FlushRawEventBuffer()
     {
-	TInt ret = KErrNone;
-	
+    TInt ret = KErrNone;
+    
     if(iEventBuffer.iNum > 0)
-	    {
+        {
         ret = iMsgBufQueue.Send(iEventBuffer);
-       	iEventBuffer.iNum = 0;        	
+           iEventBuffer.iNum = 0;            
         }
     
     return ret;
@@ -1003,21 +1010,21 @@
 //    
 TBool CPeninputAnim::OnRawKeyEvent(const TRawEvent& aRawEvent)
     {
-	TInt ret = KErrNone;
-	
-	//first sends all buffered event out
+    TInt ret = KErrNone;
+    
+    //first sends all buffered event out
     FlushRawEventBuffer();
     
     //clear the signal and the response msg queue
     TBool isHandled = EFalse;
     ret = iKeyMsgResponseQueue.Receive(isHandled);
     while(ret == KErrNone)
-	    {
+        {
         iResponseQueueSemaphore.Wait();
         ret = iKeyMsgResponseQueue.Receive(isHandled);
         }
 
-	//send the event directly        
+    //send the event directly        
     iEventBuffer.iNum = 1;
     iEventBuffer.iEvent[0] = aRawEvent;
     ret = FlushRawEventBuffer();
@@ -1025,13 +1032,13 @@
     isHandled = EFalse;
     if(ret == KErrNone) 
         {
-	    //wait for the key event processed.    
-	    ret = iResponseQueueSemaphore.Wait(KResponseQueueWaitTime);
-	    if(ret == KErrNone)
-	        {        
-	        //read the response from msg queue
-	        iKeyMsgResponseQueue.Receive(isHandled);
-	        }
+        //wait for the key event processed.    
+        ret = iResponseQueueSemaphore.Wait(KResponseQueueWaitTime);
+        if(ret == KErrNone)
+            {        
+            //read the response from msg queue
+            iKeyMsgResponseQueue.Receive(isHandled);
+            }
         }
 
     return isHandled;
@@ -1044,12 +1051,15 @@
 // 
 void CPeninputAnim::StartTimer()
     {
-	iFlushTimer->Start(
-		KFlushTimerPeriod, 
-		KFlushTimerPeriod, 
-		TCallBack(FlushTimerCallBack, this));	
+    if ( iIsActive )
+        {
+        iFlushTimer->Start(
+            KFlushTimerPeriod, 
+            KFlushTimerPeriod, 
+            TCallBack(FlushTimerCallBack, this));
+        }
     }
-	
+    
 // ---------------------------------------------------------------------------
 // CPeninputAnim::StopTimer
 // Cancel timer
@@ -1057,12 +1067,13 @@
 // 
 void CPeninputAnim::StopTimer()
     {
-	iFlushTimer->Cancel();	
+    iFlushTimer->Cancel();
+    FlushRawEventBuffer();
     }
 
 #ifdef RD_TACTILE_FEEDBACK
 void CPeninputAnim::GetFeedbackAreaDataL(RArray<TTactileControlInfo>& aTactileControlArray,
-										 const RMessagePtr2* msg, 
+                                         const RMessagePtr2* msg, 
                                          RArray<TRect>* aPrevRectArray)
     {
     TInt num;
@@ -1079,7 +1090,7 @@
         {
         //Advanced Tactile feedback REQ417-47932
         aTactileControlArray.Append(TTactileControlInfo(area[i].iId,
-									area[i].iNewRect,area[i].iTactileType));      
+                                    area[i].iNewRect,area[i].iTactileType));      
         //aRectArray.Append(area[i].iNewRect);                
         if(aPrevRectArray)
             aPrevRectArray->Append(area[i].iPrevRect);                    
@@ -1094,11 +1105,11 @@
 // ---------------------------------------------------------------------------
 // 
 TBool CPeninputAnim::MatchItemByControlID (const TTactileControlInfo& aFirst, const TTactileControlInfo& aSecond)
-	{
-	if (aFirst.iId == aSecond.iId)
-		return ETrue;
-	return EFalse;
-	}
+    {
+    if (aFirst.iId == aSecond.iId)
+        return ETrue;
+    return EFalse;
+    }
 
 // ---------------------------------------------------------------------------
 // CPeninputAnim::MatchItemByControlIDAndArea
@@ -1106,16 +1117,16 @@
 // ---------------------------------------------------------------------------
 // 
 TBool CPeninputAnim::MatchItemByControlIDAndArea (const TTactileControlInfo& aFirst, const TTactileControlInfo& aSecond)
-	{
-	if ((aFirst.iId == aSecond.iId) && (aFirst.iArea == aSecond.iArea))
-		return ETrue;
-	return EFalse;
-	}
+    {
+    if ((aFirst.iId == aSecond.iId) && (aFirst.iArea == aSecond.iArea))
+        return ETrue;
+    return EFalse;
+    }
 #endif // RD_TACTILE_FEEDBACK    
 
 void CPeninputAnim::SetDiscreeptPop(TRect aArea)
-	{
-	iDiscreetPopArea = aArea;
+    {
+    iDiscreetPopArea = aArea;
     if(iDiscreetPopArea.Size().iWidth > 0)
         {
         iDiscreetPoped = ETrue;
@@ -1125,5 +1136,5 @@
         iDiscreetPoped = EFalse;
         iDiscreetPopedCapture = EFalse;
         }
-	}
+    }
 // End of File
--- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -331,7 +331,7 @@
     if(aFlag)
         {
         //show the background control
-        if(!iBackgroundCtrl)
+        if(!iBackgroundCtrl && bmpHandle != -1)
             {
             iBackgroundCtrl = CPenUiBackgroundWnd::NewL(CCoeEnv::Static()->RootWin(),bmpHandle);
             }
@@ -1158,6 +1158,14 @@
     arg.Set(KMsgSlot0,&msg);    
     SendReceive(EPeninputRequestDimResChangeLayout,arg);       
     }
+
+void RPeninputServerImpl::EnablePriorityChangeOnOriChange(TBool aEnabled)
+    {
+	TIpcArgs arg;
+	TPckg<TBool> msg(aEnabled);
+    arg.Set(KMsgSlot0,&msg); 
+	SendReceive(EPeninputEnablePriorityChangeOnOriChange,arg); 
+	}
     
 //end of class RPeninputServerImpl
 
--- a/textinput/peninputarc/src/peninputclient/peninputclient.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputclient/peninputclient.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -505,5 +505,9 @@
     iSingletonServer->SetResourceChange(aFlag);   
     }    
 
+EXPORT_C void RPeninputServer::EnablePriorityChangeOnOriChange(TBool aEnabled)
+    {
+	iSingletonServer->EnablePriorityChangeOnOriChange(aEnabled);
+	}	
 //end of class RPeninputServer
 // End of File
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbasecontrol.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbasecontrol.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -699,7 +699,7 @@
 
 TBool CFepUiBaseCtrl::IsOnTopOf(CFepUiBaseCtrl* aCtrl)
     {     
-    __ASSERT_DEBUG(aCtrl,EUiNullParam);      
+    ASSERT(aCtrl);      
     return OrderPos() < aCtrl->OrderPos();
     }
     
@@ -1355,11 +1355,7 @@
 
 EXPORT_C void CFepUiBaseCtrl::SetParent(CFepUiBaseCtrl* aParent)
     {
-    //parent control must be type of control group.
-    if(aParent)
-        {
-        __ASSERT_DEBUG(aParent->IsKindOfControl(ECtrlControlGroup),EUiLayoutBadParentType);
-        } 
+    //ASSERT(aParent == NULL || aParent->IsKindOfControl(ECtrlControlGroup));
     iParentCtrl = aParent;
     }
 
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -105,12 +105,15 @@
 
 EXPORT_C void CBubbleCtrl::Popup(const TRect& aRect)
     {
-    SetRect(aRect);
+    //SetRect(aRect);
 
     if(iFreeze)
         {
-        iShowing = ETrue;              
+        iShowing = ETrue; 
+        SetRect(aRect);
+        
         SetHidenFlag(EFalse);   
+        /*
         if(UiLayout()->NotDrawToLayoutDevice())
             {
             struct SData
@@ -124,16 +127,21 @@
             ptr.Set(reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
         
             UiLayout()->SignalOwner(ESignalPopupArea,ptr);
-            }     
+            }  
+        */
         return;
         }
-    if(!iShowing || aRect != Rect() || iNeedRedraw)
+    if( !iShowing || iNeedRedraw )
         {
-        iShowing = ETrue;  
+        iShowing = ETrue;
+        SetRect(aRect);
+        
         TRect rect = Rect();
-        SetRect(aRect);
+        //SetRect(aRect);
         SetHidenFlag(EFalse);        
         BringToTop();
+        
+        /*
         //redraw the control under bubble control
         if(aRect != rect)        
             {
@@ -160,7 +168,8 @@
 				RootControl()->ReDrawRect(rect); 
 				}
             }
-		
+            */
+		/*
         // signal server to add the pop area		
         if(UiLayout()->NotDrawToLayoutDevice())
             {
@@ -177,6 +186,7 @@
     
             UiLayout()->SignalOwner(ESignalPopupArea,ptr);
             }
+            */
         
 		// signal server to copy the background as background bitmap for its own bitmap
         if(UiLayout()->NotDrawToLayoutDevice())
@@ -582,10 +592,46 @@
 
 EXPORT_C void CBubbleCtrl::SetRect(const TRect& aRect)
     {
-    if(aRect == Rect())
-        return;
-    CFepUiBaseCtrl::SetRect(aRect);
-    ResizeDeviceL();
+	if( !( UiLayout()->NotDrawToLayoutDevice()))
+		{
+		if( aRect != Rect())
+			{
+			CFepUiBaseCtrl::SetRect( aRect );
+			}
+		}
+	else
+		{
+		if( iShowing )
+			{
+			struct SData
+				{
+				TRect rr;
+				TBool flag;
+				} data;
+
+			 // Remove the original region from list
+			data.rr = Rect();
+			data.flag = EFalse;
+			TPtrC ptrForRemove;
+			ptrForRemove.Set( 
+				reinterpret_cast<const TUint16*>(&data), sizeof(data)/sizeof(TUint16));
+			UiLayout()->SignalOwner( ESignalPopupArea, ptrForRemove );
+
+			// Add the new region to list
+			data.rr = aRect;
+			data.flag = ETrue;
+			TPtrC ptrForAdd;
+			ptrForAdd.Set( 
+				reinterpret_cast<const TUint16*>(&data), sizeof(data)/sizeof(TUint16));
+			UiLayout()->SignalOwner( ESignalPopupArea, ptrForAdd );     
+			}
+			
+		if( aRect != Rect())
+			{
+			CFepUiBaseCtrl::SetRect( aRect );
+			ResizeDeviceL();
+			}                   
+		}
     }
 
 // ---------------------------------------------------------------------------
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcursor.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcursor.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -102,29 +102,34 @@
 EXPORT_C void CFepUiCursor::SetPosition(const TPoint& aPosition)
     {
     
-    TBool isOn = iIsOn;
-    if (isOn)
-        {
-        SetOn(EFalse);
-        }
-    iPosition=aPosition;
-    TPoint correction(KCursorPosCorrectionX,KCursorPosCorrectionY );
-    TRect rect = TRect(iPosition + correction , TSize(KCursorWidth,iHeight));
-    if(rect != iCursorRect)
-        {
-        SetRect(rect);
-        iCursorRect = rect;
-        //must update clip region again.
-        for(TInt i = 0 ; i < RootControl()->PopCtrlList().Count(); ++i)
-            {
-            UpdateValidRegion(RootControl()->PopCtrlList()[i],EFalse);
-            }
-        }
-        
-    if (isOn)
-        {
-        SetOn(ETrue);
-        }
+	if( iPosition != aPosition )
+		{
+		TBool isOn = iIsOn;
+		if (isOn)
+			{
+			SetOn(EFalse);
+
+			}
+		iPosition=aPosition;
+		TPoint correction(KCursorPosCorrectionX,KCursorPosCorrectionY );
+		TRect rect = TRect(iPosition + correction , TSize(KCursorWidth,iHeight));
+		if(rect != iCursorRect)
+			{
+			SetRect(rect);
+			iCursorRect = rect;
+			//must update clip region again.
+			for(TInt i = 0 ; i < RootControl()->PopCtrlList().Count(); ++i)
+				{
+				UpdateValidRegion(RootControl()->PopCtrlList()[i],EFalse);
+				}
+			}
+			
+		if (isOn)
+			{
+			SetOn(ETrue);
+			}
+		}
+
     }
 
 // ---------------------------------------------------------------------------
@@ -168,6 +173,7 @@
             {
             iCursorBlinkingTimer->Cancel();    
             }
+        InvalidateInsertionPoint();
         }
     else
         {
@@ -184,7 +190,7 @@
         }
         
         // Invalidate InsertionPoint's rect, so it will be removed from editarea
-    InvalidateInsertionPoint();
+    //InvalidateInsertionPoint();
     }
 
 // ---------------------------------------------------------------------------
@@ -380,7 +386,7 @@
 //
 void CFepUiCursor::InvalidateInsertionPoint()
     {    
-    //if(AbleToDraw())
+    if(AbleToDraw())
         {        
         Draw();
         //UpdateArea(iCursorRect,EFalse);
@@ -437,7 +443,7 @@
     iCursorTempDisabled = EFalse;
     iIsOn = ETrue;
     //To avoid the ugly first shown, we draw the cursor directly here.
-    InvalidateInsertionPoint();
+    //InvalidateInsertionPoint();
     SetOn(ETrue, EFalse);    
     }
     
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -2145,7 +2145,7 @@
         {
         if ( iLastCursorPos != iCursorSel.iCursorPos ) 
             {
-            UiLayout()->DoTactileFeedback(ETouchFeedbackSensitiveInput);
+            UiLayout()->DoTactileFeedback(ETouchFeedbackEdit);
             iLastCursorPos = iCursorSel.iCursorPos;
             }
         }
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -501,6 +501,7 @@
         layoutOwner->SetPosition(iPrevLayoutRect.iTl);
        	layoutOwner->LayoutSizeChanged(iPrevLayoutRect.Size());
         RootControl()->GraphicDeviceSizeChanged();
+        bRedraw = ETrue;
 	    }
 	    
     if (bRedraw)    
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutrootctrl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutrootctrl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -815,7 +815,12 @@
 
 	if(!AbleToDraw())
         return;
-
+    
+    if(UiLayout()->NotDrawToLayoutDevice())
+	    {
+	    HandleResourceChange(KPenInputOwnDeviceResourceChange);
+	    }
+	    
 	Clear();	
     CControlGroup::Draw();
 
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -1349,6 +1349,10 @@
         {
         //find key        
         //iKeyboard->DrawKey(this);
+        if ( !aFlag )
+            {
+            iKeyCtrl->UpdateChangedArea(EFalse);
+            }
         iKeyCtrl->Draw();
         }
     }
@@ -1503,6 +1507,9 @@
     
     iKeyGc = CFbsBitGc::NewL();
     iKeyGc->Reset();   
+    
+    iHighlightKeyResourceChanged = ETrue;
+    iNormalKeyResourceChanged = ETrue;   
     }
 
 void CVirtualKeyboard::CreateBmpDevL()
@@ -1519,8 +1526,15 @@
             TRAP_IGNORE(CreateBmpDevL());
             }
         }
+    else if(aType == KPenInputOwnDeviceResourceChange)
+        {
+        iExt->iHighlightKeyResourceChanged = ETrue;
+        iExt->iNormalKeyResourceChanged = ETrue;
+        }    
     else
+    	{
         CControlGroup::HandleResourceChange(aType);
+        }
     }
     
 CFbsBitmap* CVirtualKeyboard::PrepareMaskBmpL(CFbsBitGc* aGc, const TDisplayMode& aMode, const TRect& aRect)
@@ -1601,4 +1615,31 @@
     delete keyBmp;        
     return ETrue;
     }
+
+TBool CVirtualKeyboard::PrepareHighlightKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect)
+    {
+    if(HighightKeyBmp()->SizeInPixels() != aRect.Size() || iExt->iHighlightKeyResourceChanged)
+        {
+        iExt->iHighlightKeyResourceChanged = EFalse;
+        return PrepareKeyBmp(HighightKeyBmp(),HighlightKeyDev(),aRect,aInnerRect
+                                ,KeySkinId(EKeyBmpHighlight),KAknsIIDDefault,aKeyRect);
+        
+        }
+    
+    return ETrue;
+    }
+    
+TBool CVirtualKeyboard::PrepareNormalKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect)
+    {
+    if(NormalKeyBmp()->SizeInPixels() != aRect.Size() || iExt->iNormalKeyResourceChanged)
+        {
+        iExt->iNormalKeyResourceChanged = EFalse; 
+        return PrepareKeyBmp(NormalKeyBmp(),NormalKeyDev(),aRect,aInnerRect
+                            ,KeySkinId(EKeyBmpNormal),KAknsIIDDefault,aKeyRect);
+                           
+        }
+        
+    return ETrue;
+    }
+        
 //end of implementation of Class CVirtualKey    
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -377,11 +377,12 @@
         TBool bHasDrawn = EFalse;
         if(UiLayout()->NotDrawToLayoutDevice())
             {
-            TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->NormalKeyBmp(),
+            /*TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->NormalKeyBmp(),
                                     iKeyboard->NormalKeyDev(),
                                     rect,innerrect,
                                     iKeyboard->KeySkinId(EKeyBmpNormal), 
-                                    KAknsIIDDefault,Rect());
+                                    KAknsIIDDefault,Rect());*/
+            TBool ret = iKeyboard->PrepareNormalKeyBmp(rect,innerrect,Rect());                                    
             if(ret)
                 {
                 gc->BitBlt(rect.iTl,iKeyboard->NormalKeyBmp());
@@ -502,11 +503,12 @@
         TBool bHasDrawn = EFalse;
         if(UiLayout()->NotDrawToLayoutDevice())
             {
-            TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->HighightKeyBmp(),
+            /*TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->HighightKeyBmp(),
                                     iKeyboard->HighlightKeyDev(),
                                     rect,innerrect,
                                     iKeyboard->KeySkinId(EKeyBmpHighlight), 
-                                    KAknsIIDDefault,Rect());
+                                    KAknsIIDDefault,Rect());*/
+            TBool ret = iKeyboard->PrepareHighlightKeyBmp(rect,innerrect,Rect());                                    
             if(ret)
                 {
                 gc->BitBlt(rect.iTl,iKeyboard->HighightKeyBmp());
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputuilayout.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputuilayout.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -187,6 +187,13 @@
             DisableLayoutDrawing(*(reinterpret_cast<TBool*>(aData)));
             }
             break;
+        case ECmdPeninputEnalbeLayoutReDrawWhenActive:
+            {
+            TBool enableLayoutRedraw = ETrue;
+            TPtrC data(reinterpret_cast<TUint16*>(&enableLayoutRedraw),sizeof(TBool)/2);
+            SignalOwner(ESignalEnableLayoutRedrawWhenActive,data);
+            }
+            break;
         default: 
             {
             ret = -1;
@@ -480,6 +487,9 @@
     {
     iLayoutReady = EFalse;
     iRootCtrl->OnDeActivate();
+    TBool enableLayoutRedraw = ETrue;
+    TPtrC data(reinterpret_cast<TUint16*>(&enableLayoutRedraw),sizeof(TBool)/2);
+    SignalOwner(ESignalEnableLayoutRedrawWhenActive,data);
     }    
 // ---------------------------------------------------------------------------
 // CFepUiLayout::SetLayoutPos
--- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -187,6 +187,7 @@
     //iDispMode = iDispModeForMask= CCoeEnv::Static()->WsSession().GetDefModeMaxNumColors(col,grey);    
     iPreNonGloebalNotesWndGrpId = -1;
     iNoNeedClean = EFalse;
+	iEnablePriorityChangeOnOriChange = ETrue;
     }
 
 
@@ -427,6 +428,13 @@
 //
 void CPeninputServer::ActivateSpriteInGlobalNotesL()
     {
+    TBool notDraw = EFalse;
+    
+    if(iUiLayout)
+    	{
+		iUiLayout->HandleCommand( ECmdPeninputDisableLayoutDrawing, 
+								 (unsigned char*)&notDraw );  
+    	}
     if(iActive)
         {
 	    if(iUseWindowCtrl)
@@ -591,13 +599,35 @@
 		            }
 	            }
             }
+        iIsLayoutReDrawAllowWhenActive = EFalse;    
         }
     else
         {
         //actived but dimmed by global notes
         if(iUseWindowCtrl)
             {
-            ActivatePenUiLayout(EFalse);
+            /**
+            * 1. IF THE GLOBAL NOTES HAS BEEN OPENED UP, WE NEED TO REDRAW THE LAYOUT
+            * 2. IF iIsLayoutReDrawAllowWhenActive was set to be ETrue. 
+            *    if we did not put this condition guard, the layout
+            *    redraw will be executed even if the layout is active. But if this flag is
+            *    set to be ture, layout redraw will be carried out even if the layout is active, so
+            *    it will leave this for layout to decide if it need set this flag to be ture or false
+            *    in some special cases: for example for entering and exiting the spell mode.
+            *    
+            */
+            if(iInGlobalNotesApp || iInGlobalEditorState || iIsLayoutReDrawAllowWhenActive )
+                {
+                ActivatePenUiLayout(EFalse);
+                if(iIsLayoutReDrawAllowWhenActive)
+                    {
+                    iIsLayoutReDrawAllowWhenActive = EFalse;    
+                    }
+                }
+            else
+			    {
+				ActivatePenUiLayout(EFalse,ETrue);
+				}
 
             if (iDimmed && (iInGlobalNotesApp || iInGlobalEditorState))
                 {
@@ -667,14 +697,20 @@
     if(aFlag)
         {
         iEventBufferQueue->Cancel();                   
-        iUiLayout->OnDeActivate(); 
+        if( iUiLayout )
+        	{
+			iUiLayout->OnDeActivate(); 
+        	}
         if(iUseWindowCtrl)
             iPenUiCtrl->OnDeactivate(); //disable non fading                     
         }
     else
         {
         iEventBufferQueue->GetEvent();                   
-        iUiLayout->OnActivate(); 
+        if( iUiLayout )
+        	{
+			iUiLayout->OnActivate(); 
+        	}
         if(iUseWindowCtrl)
             iPenUiCtrl->OnActivate(CPenUiWndCtrl::ENoremalEditor); //disable non fading                             
         }
@@ -1132,7 +1168,12 @@
 						                 (unsigned char*)&iInputLanguage);  
 				}
     	    }
-    	    break;            
+    	    break;
+        case EPeninputEnablePriorityChangeOnOriChange:
+            {
+			TPckg<TBool> enablePriority( iEnablePriorityChangeOnOriChange );
+            aMessage.ReadL( 0, enablePriority );
+			}
         default: //Let user pluging handling the user command
             break;
         }
@@ -1204,7 +1245,10 @@
     iUILayoutReady = EFalse;    
     if(iUiLayout)
         {
-		ClearSpriteGc();
+        //if(!iUseWindowCtrl)
+        	//{
+			//ClearSpriteGc();
+        	//}
         DeactivateSprite();
         iDestroyingLayout = ETrue;
         if(iUseWindowCtrl)
@@ -1545,7 +1589,7 @@
 void CPeninputServer::DrawSprite()
     {
 
-    if(!iUiLayout)
+    if(!iUiLayout || iActive)
         return;
     ClearSpriteGc();
     
@@ -1674,7 +1718,10 @@
         }
     else
         {
-        ActivateSprite();
+        if(!iActive)
+            {
+            ActivateSprite();
+            }
         }
     }
 
@@ -1910,6 +1957,13 @@
             	    }
         	    }
         	    break;
+            case ESignalEnableLayoutRedrawWhenActive:
+                {
+				TUint16* buf = const_cast<TUint16* >( aEventData.Ptr() );    
+                TBool* retVal = reinterpret_cast< TBool* > ( buf );
+				iIsLayoutReDrawAllowWhenActive = *retVal;
+				}
+				break;	
 
         	default:
         	    if(iUseWindowCtrl)                    
@@ -2018,12 +2072,70 @@
 // ---------------------------------------------------------------------------
 //    
 void CPeninputServer::HandleResourceChange(TInt aType)
-    {   
+    {
+	#ifdef FIX_FOR_NGA 
+	// iEnablePriorityChangeOnOriChange will be set to be EFalse, if some dialog in FEP end were opened and 
+	// not close after rotation for example: Symbol Table, Writing Language list and Match Dialog on ITI
+	if(iUiLayout && iActive && iEnablePriorityChangeOnOriChange && aType == KEikDynamicLayoutVariantSwitch)
+        {
+        TPixelsTwipsAndRotation size; 
+        CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
+                
+        TBool isPortrait = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight );
+   
+        TBool needToLiftUp = EFalse;
+        TInt inputMode = 0; 
+        inputMode = iUiLayout->PenInputType();
+        if(inputMode == EPluginInputModeItut)
+            {
+            if(!isPortrait)
+                {
+                needToLiftUp = ETrue;
+                }
+            }
+        else if(inputMode == EPluginInputModeFSQ)
+            {
+            if(isPortrait)
+                {
+                needToLiftUp = ETrue;
+                }
+            }
+    
+        else if(inputMode == EPluginInputModeFingerHwr)
+            {
+            ClearSpriteGc();
+            //Close the UI immediately, without notify UI handler 
+            DeactivateSprite(ETrue, ETrue);
+            }
+        if(needToLiftUp)
+            {
+            if(iPenUiCtrl)
+                {
+                
+                // must lift up the wnd group priority otherwise when rotating screen, the underling application will show first and then
+                // our PEN UI, but we should keep an eye on this issue. If NGA will fix the fliker assigned on them, we will check if it will
+                // work if we remove this line of code. 
+                iPenUiCtrl->LiftUpPriority();				
+                }
+            }
+        }
+	#endif	
     if(iUiLayout && !(iUiLayout->PenInputType() & DisabledByOrientation()) )
         {
         //hide the layout if it's already shown
         
+        if ( iActive )
+            {
+            iUiLayout->OnActivate();  
+            }  
+        
         iUiLayout->OnResourceChange(aType);
+        
+        if(iUseWindowCtrl)
+            {
+            iPenUiCtrl->DrawNow();
+            }
+            
         //show the layout if it's active
         }
     }
@@ -2135,11 +2247,31 @@
     
 	if(iActive && !iPrevActive && inputMode != EPluginInputModeFSQ && iBackgroudDefaultOri == CAknAppUiBase::EAppUiOrientationUnspecified )
         {
-        
+        #ifdef FIX_FOR_NGA
+        if(inputMode == EPluginInputModeFingerHwr)
+            {
+            iPrevActive = ETrue;
+            ClearSpriteGc();
+            //Close the UI immediately, without notify UI handler 
+            DeactivateSprite(ETrue, ETrue);
+            }
+        else
+            {// for other input mode: we are not going to cose UI, since it will cause
+             // serious fliker: which will have the mixed ui(with other app ui) on pen input ui
+            
+			if(iUiLayout)
+			    {
+				//TBool notDraw = ETrue;
+	            //iUiLayout->HandleCommand(ECmdPeninputDisableLayoutDrawing,(unsigned char*)&notDraw);
+	            iUiLayout->OnDeActivate();
+			    }
+            }       
+        #else
         iPrevActive = ETrue;
         ClearSpriteGc();
-	    //Close the UI immediately, without notify UI handler 
-	    DeactivateSprite(ETrue, ETrue);
+        //Close the UI immediately, without notify UI handler 
+        DeactivateSprite(ETrue, ETrue);
+        #endif
         }    
     }
     
@@ -2263,13 +2395,14 @@
     if(iActive)
         { 
         if( aEvent.Type() == TRawEvent::ENone && 
-        	aEvent.IsTip() &&
-        	iCrpService->IsDsaActive() )
+        	aEvent.IsTip() 
+        	&& iCrpService && iCrpService->IsDsaActive() )
             {
             SignalOwner( ESignalLayoutClosed, KNullDesC );    
             }
                    
-        TBool handled = iUiLayout->HandleEventL(ERawEvent,&aEvent);
+        TBool handled = iUiLayout ? iUiLayout->HandleEventL(ERawEvent,&aEvent)
+        		        : EFalse;
 
         if (TRawEvent::EButton1Down == aEvent.Type())
             {
@@ -2333,30 +2466,32 @@
                     break;
                     }
                 */
-                if(IsGlobalNotesApp(focusApp))
-                        {
-                        iInGlobalNotesState = ETrue;
-                        // add this to enable global dim   
-                        DeactivatePenUiLayout(EFalse);           
-                        break;            
-                        }
+                if( IsGlobalNotesApp(focusApp) )
+                    {
+                    iInGlobalNotesState = ETrue;
+                    // add this to enable global dim   
+                    DeactivatePenUiLayout(EFalse);           
+                    break;            
+                    }
                     
 /*                else if (focusApp.iUid == 0x102750f0)
                     {
                     DeactivateSprite();    
                     }
-*/                else
+*/               else
                     {
-                        if(iInGlobalNotesState)
-                            {			  
-                            //fix for fast swap case
+                    if(iInGlobalNotesState)
+                        {			  
+                        //fix for fast swap case
                         iInGlobalNotesState = EFalse;                        
-                        if(iPreNonGloebalNotesWndGrpId != focusApp.iUid)
+                        if(iPreNonGloebalNotesWndGrpId != focusApp.iUid )
                             {                            
-                            iPreNonGloebalNotesWndGrpId = focusApp.iUid;    
-             
+                            iPreNonGloebalNotesWndGrpId = focusApp.iUid;
                             DeactivateSprite(ETrue);//hide pen ui immediately if switched to another application
-                            iForegroundSession = NULL;
+                            // Notify FEP to close touch input window.
+                            // Under this case, touch input window can't be closed without norifying FEP side.
+                            // After close touch input window, FEP must change some states.
+                            SignalOwner( ESignalDeactivateSprite, KNullDesC );                            
                             }
                         }
                     else
@@ -2364,7 +2499,7 @@
                         DeactivateSprite(ETrue);
                         }
                     }
-                        break;                            
+                break;                            
                 }   
             DeactivateSprite(ETrue);//hide pen ui immediately
     	    }
@@ -2464,7 +2599,7 @@
         }
     if(iForegroundUiHandler)
         {
-        TInt uiType = iUiLayout->PenInputType();
+		TInt uiType = iUiLayout  ? iUiLayout->PenInputType() : EPluginInputModeNone;
         bNeedWait = iForegroundUiHandler->SignalUiActivationObserver(
                                             			aSignalCode,uiType);
         }	
@@ -2492,6 +2627,11 @@
 
 void CPeninputServer::RecoverButtonEventState()
     {
+	if(!iUiLayout)
+		{
+		return;
+		}
+	
         if (TRawEvent::EButton1Down == iLastRawEvent.Type())
             {
             iLastRawEvent.Set(TRawEvent::EButton1Up);//,iLastSimulatedKeyEvent.ScanCode()
--- a/textinput/peninputarc/src/peninputserverapp/peninputserversession.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputserverapp/peninputserversession.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -319,6 +319,7 @@
         case EPeninputRequestDimResChangeLayout:
         case EPeninputRequestSupportInputMode:
         case EPeninputRequestSetInputLanguage:
+		case EPeninputEnablePriorityChangeOnOriChange:
             ret = iPenInputSvr.HandleMessageL(aMessage);            
             break;
         case EPeninputRequestUpdateAppInfo:            
--- a/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -110,28 +110,39 @@
 
 void CPenUiWndCtrl::Draw(const TRect& aRect) const
     {
-    if(iNotUpdating)
+    if (iNotUpdating)
         return;
-    
+
     CWindowGc& gc = SystemGc();
-        
-    if ( iShowPopup ) 
+    if (iShowPopup)
         {
         //layout is extended by popup
-        gc.SetClippingRect( iLayoutClipRect );
+        TRect rect = aRect;
+        rect.Intersection(iLayoutClipRect);
+        TPoint pos = rect.iTl - iLayoutClipRect.iTl;
+        gc.BitBlt(pos, iBitmap, rect);
+#ifdef FIX_FOR_NGA
+        //draw bubble
+        for (TInt i = 0; i < iBubblesArea.Count(); ++i)
+            {
+            gc.BitBlt(iBubblesPos[i].iTl, iBubblesArea[i]);
+            }
+#endif   
+        return;
+        //layout is extended by popup
+        //gc.SetClippingRect( iLayoutClipRect );
         }
-
-	#ifdef FIX_FOR_NGA
-	gc.BitBlt(TPoint(0,0),iBitmap,Rect());
+#ifdef FIX_FOR_NGA
+    gc.BitBlt(TPoint(0, 0), iBitmap, Rect());
+    //draw bubble
+    for (TInt i = 0; i < iBubblesArea.Count(); ++i)
+        {
+        gc.BitBlt(iBubblesPos[i].iTl, iBubblesArea[i]);
+        }
+#else    
+    gc.BitBlt(aRect.iTl,iBitmap,aRect);
+#endif     
 
-	//draw bubble
-	for(TInt i = 0 ; i < iBubblesArea.Count(); ++i)
-		{
-		gc.BitBlt(iBubblesPos[i].iTl,iBubblesArea[i]);
-		}
-	#else    
-		gc.BitBlt(aRect.iTl,iBitmap,aRect);
-	#endif            
     }
 
 void CPenUiWndCtrl::RefreshUI()
@@ -230,7 +241,6 @@
         return;
         }
     
-    iCursorBmp = const_cast<CFbsBitmap*>(aCursorBmp);
     iCursorPos = aRect.iTl;
 	
     if(iCursorRect != aRect)
@@ -335,6 +345,7 @@
     
 void CPenUiWndCtrl::ShowPenUiL(TBool /*aDimmed*/)
     {
+    iCursorWnd->SetCursorVisible(EFalse);
     if (iResourceChange)
         {
         ActivateL();
@@ -396,7 +407,6 @@
 
 void CPenUiWndCtrl::ClosePenUi(TBool aResChanging)
     {
-    iCursorBmp = NULL;
     if (aResChanging)
         {
         TRAP_IGNORE(iIncallBubble->SetIncallBubbleFlagsL( EAknStatusBubbleInputHide ));
@@ -495,8 +505,14 @@
     {
     //TBool dim = IsDimmed();
     RestoreSystemFadeStatus();
-    //have to call this, otherwise pen UI is faded
-    iWndGroup.SetNonFading(ETrue);
+	
+	// if we were opened under a global note
+	// we need to dim pen ui
+	if(aType != EGlobleNotesWithEditor && aType != EGlobleNotes)
+	   {
+	   //have to call this, otherwise pen UI is faded
+       iWndGroup.SetNonFading(ETrue);
+	   }
     
     if (iResourceChange)
         {
@@ -720,6 +736,10 @@
         case ESignalDisableUpdating:
             {
             iNotUpdating = * (reinterpret_cast<TBool*>( const_cast<TUint16*>( aEventData.Ptr() )));
+			if(iNotUpdating)
+			    {
+				UpdateCursor(EFalse,NULL,iCursorWnd?iCursorWnd->Rect():TRect(TPoint(0,0),TSize(0,0)));
+				}
             }
 			break;
         case ESignalDrawBackground:
@@ -819,7 +839,15 @@
         iAutoRefreshTimer->Cancel();
         }
     }
-
+	
+void CPenUiWndCtrl::LiftUpPriority()
+    {
+	TInt priority = GetWndPriority();
+    iPriority =  priority;
+    iWndGroup.SetOrdinalPosition( 0, iPriority);
+    DrawableWindow()->SetOrdinalPosition( 0, iPriority);
+	}
+	
 //End Of File
 // class CInternalBkCtrl
 CInternalBkCtrl::CInternalBkCtrl(RWindowGroup& aWndGroup)    
--- a/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -4221,7 +4221,7 @@
     //PRINTF((_L("Set long press Timer\n")));
     if ( IsDimmed() )
         {
-        return;
+        return NULL;
         }
     
     iLongPressTimer->SetTimer(iLongPressInterval);
@@ -4239,7 +4239,7 @@
 
     if ( IsDimmed() )
         {
-        return;
+        return NULL;
         }
 
     CancelTimer();
--- a/textinput/peninputfingerhwr/src/peninputfingerhwrlayout.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwr/src/peninputfingerhwrlayout.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -165,6 +165,12 @@
             break;
         case ECmdPenInputWindowOpen:
             {
+            if( !iIsOpenFingerHWR )
+                {
+                iDataStore->GetKeyboardType();
+                iDataStore->SetKeyboardToQwerty();
+                }
+            
             LayoutOwner()->Hide( EFalse );
             RootControl()->UpdateValidRegion( NULL, EFalse );
 
@@ -174,12 +180,6 @@
             iDataStore->SetScreenSize(hwrSize);
             ChangeCurStateManagerToStandby();
             
-            if( !iIsOpenFingerHWR )
-                {
-                iDataStore->GetKeyboardType();
-                iDataStore->SetKeyboardToQwerty();
-                }
-                
             iIsOpenFingerHWR = ETrue;
             ret = KErrNone;
             }
--- a/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -2017,13 +2017,13 @@
    
     iWritingBox->Hide( ETrue );
     iVirtualNumpad->Hide( ETrue );
-    iVirtualSctpad->Hide( EFalse );
-    iVirtualSctpadFix->Hide( EFalse );
-    
     iArrowLeftBtn->Hide( ETrue );
     iArrowRightBtn->Hide( ETrue );
     iArrowUpBtn->Hide( ETrue );
     iArrowDownBtn->Hide( ETrue );
+    
+    iVirtualSctpad->Hide( EFalse );
+    iVirtualSctpadFix->Hide( EFalse );
     iOptionBtn->Hide( EFalse );
     iImeSwitchBtn->Hide( EFalse );  
     
--- a/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss	Wed Jul 21 14:32:17 2010 +0100
@@ -133,6 +133,11 @@
     bgimage = r_fingerhwr_window_background;
     }
 
+RESOURCE AKN_FEP_FINGERHWR_SYMBOLTABLE r_fingerhwr_arabic_numbertable
+    {
+    bgimage = r_fingerhwr_window_background;
+    }
+
 RESOURCE PENINPUT_LAYOUT_WINDOW_SHADOW r_fingerhwr_window_shadow
     {
     bmpfile = AKN_FEP_FINGERHWR_BMP;
--- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h	Wed Jul 21 14:32:17 2010 +0100
@@ -205,6 +205,13 @@
     TRect VirtualSctpadCellSize();
     
     /**
+     * get cell size of virtual numpad.
+     * 
+     * @since Symbian TB9.2
+     * @return cell size of virtual sctpad.
+     */     
+    TRect VirtualNumpadCellSize();
+    /**
      * get cell rect of virtual sctpad.
      * 
      * @since Symbian TB9.2
--- a/textinput/peninputfingerhwrar/rom/peninputfingerhwrar_variant.iby	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwrar/rom/peninputfingerhwrar_variant.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -26,12 +26,12 @@
 #ifdef FF_CAPACITIVE_DISPLAY
 #ifdef FF_ARABIC_HANDWRITING_RECOGNITION_INPUT
 
-
+#if defined(__LOCALES_37_IBY__)
 data = DATAZ_\RESOURCE_FILES_DIR\peninputfingerhwrarwnd.rsc    RESOURCE_FILES_DIR\peninputfingerhwrarwnd.rsc
 data = DATAZ_\RESOURCE_FILES_DIR\apps\peninputfingerhwrar.mif       RESOURCE_FILES_DIR\apps\peninputfingerhwrar.mif
 
 ECOM_PLUGIN(peninputfingerhwrar.dll, peninputfingerhwrar.rsc)
-
+#endif //__LOCALES_37_IBY__
 
 #endif //FF_ARABIC_HANDWRITING_RECOGNITION_INPUT
 #endif //FF_CAPACITIVE_DISPLAY
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -299,8 +299,8 @@
 	buttonRect.Close();
 	
 	// padding size of Btn
-	TInt xpad = iRectBtnOption.iTl.iX - iRectBtnClose.iBr.iX;
-	TInt ypad = iRectBtnArrowLeft.iTl.iY - iRectBtnClose.iBr.iY;
+	TInt xpad = (iRectBtnOption.iTl.iX - iRectBtnClose.iBr.iX)/2;
+	TInt ypad = (iRectBtnArrowLeft.iTl.iY - iRectBtnClose.iBr.iY)/2;
 	
 	iSizeBtnPadding = TSize(xpad, ypad);
 	
@@ -626,28 +626,15 @@
 void CPeninputFingerHwrArLafManager::RetrievePortraitLafDataForNumSymbolTable()
     {
     
-    // get the functional buttons laf data for number symbol table
-    // candidate list
-    TAknWindowLineLayout candlistpane = AknLayoutScalable_Avkon::fshwr2_func_candi_pane(1).LayoutLine();        
-    
-    TAknLayoutRect candpaneRect;
-    candpaneRect.LayoutRect( iLayoutRect, candlistpane );
-    TRect rect = candpaneRect.Rect();
-    
-    // get candidate row2 pane
-    TAknWindowLineLayout candRow2Pane = AknLayoutScalable_Avkon::fshwr2_func_candi_row_pane(0, 0, 1).
-                                        LayoutLine();
-    TAknLayoutRect candrow2paneRect;
-    candrow2paneRect.LayoutRect( rect, candRow2Pane );
-    iRectOfNumSymbolTable.iTl = candrow2paneRect.Rect().iTl;
-
     // get the virtual key rects
     TAknWindowLineLayout writingBoxPane;
     TAknLayoutRect boxRect;
-    writingBoxPane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(0).LayoutLine();
+    writingBoxPane = AknLayoutScalable_Avkon::fshwr2_hwr_syb_pane(2).LayoutLine();
     boxRect.LayoutRect(iLayoutRect, writingBoxPane);
     iRectNumpad = boxRect.Rect();
-    
+    iRectOfNumSymbolTable.iTl = iRectNumpad.iTl;
+
+
     TAknWindowLineLayout keypane, keybgpane;
     TAknLayoutRect keyRect, keybgRect;
   
@@ -662,11 +649,12 @@
         {
         for ( TInt j = 0; j < iNumSctpadColCount; j++ )
             {
-            keypane = AknLayoutScalable_Avkon::cell_fshwr2_syb_pane(0, j, i).LayoutLine();
+            keypane = AknLayoutScalable_Avkon::cell_fshwr2_syb_pane(1, j, i).LayoutLine();
             keyRect.LayoutRect(iRectNumpad, keypane);
-            keybgpane = AknLayoutScalable_Avkon::cell_fshwr2_syb_bg_pane(0).LayoutLine();
+            keybgpane = AknLayoutScalable_Avkon::cell_fshwr2_syb_bg_pane(1).LayoutLine();
             keybgRect.LayoutRect(keyRect.Rect(), keybgpane);
-            iNumSCTrectArray.Append( keybgRect.Rect());
+            TRect rect = keybgRect.Rect();
+            iNumSCTrectArray.Append( rect);
             }
         }
     iSizeNumSctpadCell = keybgRect.Rect().Size();
@@ -1150,6 +1138,14 @@
     return iSizeSctpadCell;
     }
     
+// ---------------------------------------------------------------------------
+// get cell size of virtual numpad.
+// ---------------------------------------------------------------------------
+//
+TRect CPeninputFingerHwrArLafManager::VirtualNumpadCellSize()
+    {
+    return iSizeNumSctpadCell;
+    }
     
 // ---------------------------------------------------------------------------
 // get preview bubble rect.
@@ -1254,7 +1250,7 @@
     else
         {
         layout = AknLayoutScalable_Avkon::
-            cell_fshwr2_syb_bg_pane_t1(0).LayoutLine();
+            cell_fshwr2_syb_bg_pane_t1(1).LayoutLine();
         }
     return layout;
     }
--- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -149,12 +149,12 @@
     // read keypad image info
     if ( iNumSymbolTable )
         {
-        TSize keysize = iLafManager->VirtualSctpadCellSize().Size();
+        TSize keysize = iLafManager->VirtualNumpadCellSize().Size();
         iNumSymbolTable->LoadVkbKeyImageL(R_FINGER_HWR_NUMPAD_IMAGE, keysize );
         
         RArray<TRect> rects;
         CleanupClosePushL( rects );
-        iLafManager->GetVirtualKeyRects( rects );
+        iLafManager->GetNumVirtualKeyRects( rects );
         LoadNumSymbolVirtualKeysL( R_FINGER_HWR_NUMPAD, rects );
         CleanupStack::PopAndDestroy(); //rects
         }
@@ -752,7 +752,7 @@
     {
     iNumSymbolTable = CPeninputArabicFingerHwrNumSymbolTable::NewL(UiLayout(),EHwrCtrlIdNumSymbolTableVkbGroup);
     iNumSymbolTable->Hide(ETrue);
-    iNumSymbolTable->SetResourceId(R_FINGERHWR_ARABIC_SYMBOLTABLE);
+    iNumSymbolTable->SetResourceId(R_FINGERHWR_ARABIC_NUMBERTABLE);
     iNumSymbolTable->ConstructFromResourceL();
     AddControlL( iNumSymbolTable );
     iNumSymbolTable->AddEventObserver( UiLayout() );
@@ -934,7 +934,7 @@
 							  iLafManager->IsLandscape());
 	//number mode symbol table
     // load number mode vkb key image
-    TSize numkeysize = iLafManager->VirtualSctpadCellSize().Size();
+    TSize numkeysize = iLafManager->VirtualNumpadCellSize().Size();
     iNumSymbolTable->LoadVkbKeyImageL(R_FINGER_HWR_NUMPAD_IMAGE, numkeysize );
     
     // get the key rect
@@ -1049,18 +1049,28 @@
     TRect rcInner = aRect;
     if (  rcInner.Width()> rcInner.Height() )
         {
-            TInt dx = ( rcInner.Width() - rcInner.Height() ) / 2;
+            TInt dx = ( rcInner.Width() - rcInner.Height() ) / 4;
             rcInner.Move( dx, 0 );
-            rcInner.SetWidth( rcInner.Height() );
+            rcInner.SetWidth( rcInner.Height() + 2*dx);
         }
     else
         {
-        TInt dy = ( rcInner.Height() - rcInner.Width() ) / 2;
+        TInt dy = ( rcInner.Height() - rcInner.Width() ) / 4;
         rcInner.Move( 0, dy );
-        rcInner.SetHeight( rcInner.Width() );        
+        rcInner.SetHeight( rcInner.Width() + 2*dy);        
         }
-
     rcInner.Shrink( aXPadding, aYPadding );
+    if(aButton->ControlId() == EHwrCtrlIdBtnSpace)
+        {
+        // config 3 pieces icon info       
+        TRect middleIconRect = rcInner;
+        middleIconRect.Shrink(2,2);
+        ( static_cast<CAknFepCtrlCommonButton*> (aButton) )->SetDraw3PieceFrameInfo(
+                                          TDraw3PiecesFrame(KAknsIIDQgnIndiInputSpaceL,
+                                          KAknsIIDQgnIndiInputSpaceMiddle,
+                                          KAknsIIDQgnIndiInputSpaceR,
+                                          middleIconRect));                     
+        }
     aButton->SizeChanged( aRect, rcInner, aReloadImages );
     }
     
--- a/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -170,7 +170,6 @@
         case ECmdPenInputLanguage:
             {
             TRAP_IGNORE(SetInputLanguageL(*data));
-            
             }
             break;
         case ECmdPenInputRange:
@@ -206,10 +205,10 @@
         case ECmdPenInputFingerSpelling:
             {
 
-            if (UiMgr())
+            if ( iWesternUiMgr )
                 {
                 TInt handled = KErrNone;
-                TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData));
+                TRAP_IGNORE( handled = iWesternUiMgr->HandleCommandL( aCmd, aData ));
                 return handled;
                 }
             }
@@ -385,14 +384,21 @@
     
 void CGenericItutUiLayout::SetInputModeL(TInt aMode)
     {
-		TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
-		//only number mode need judge it
+	// Input mode can not be set to EnativeNumber in Thai
+    TInt inputLanguage = iDataMgr->InputLanguage();
+    if ( aMode ==  ENativeNumber && inputLanguage == ELangThai )
+        {
+        aMode = ENumber;
+        }
+    
+    TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
+    //only number mode need judge it
 
-		//  both EStrokeFind and EStroke will be stored as Estroke  ///// 
-		if ( aMode != iDataMgr->InputMode() || 
-			 aMode == EStroke || aMode == EStrokeFind || 
-			 aMode == EZhuyin || aMode == EZhuyinFind || 
-			 numericOnlyChanged )
+    //  both EStrokeFind and EStroke will be stored as Estroke  ///// 
+    if ( aMode != iDataMgr->InputMode() || 
+        aMode == EStroke || aMode == EStrokeFind || 
+        aMode == EZhuyin || aMode == EZhuyinFind || 
+        numericOnlyChanged )
         {
         // deactivate original uimgr first
         if (iCurrentUiMgr 
--- a/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -1475,6 +1475,12 @@
 
 void CGenericItutWindow::SetSpellDisplayContentL( TUint8* aData )
 	{
+	TBool isInSpell = iDataMgr->IsSpellMode();
+	if ( isInSpell )
+		{
+	    return;
+		}
+	
 	RDesReadStream readStream;
 
 	TPtr8 countPtr( aData, 3 * sizeof(TInt), 3 * sizeof(TInt));
--- a/textinput/peninputgenericvkb/group/peninputgenericvkb.mmp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputgenericvkb/group/peninputgenericvkb.mmp	Wed Jul 21 14:32:17 2010 +0100
@@ -92,7 +92,6 @@
 RESOURCE  peninputvkbwindowconfiginfo_51.rss
 RESOURCE  peninputvkbwindowconfiginfo_54.rss
 RESOURCE  peninputvkbwindowconfiginfo_57.rss
-RESOURCE  peninputvkbwindowconfiginfo_58.rss
 RESOURCE  peninputvkbwindowconfiginfo_59.rss
 RESOURCE  peninputvkbwindowconfiginfo_67.rss
 RESOURCE  peninputvkbwindowconfiginfo_68.rss
--- a/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -496,10 +496,10 @@
                     break;
                     }
                 }
+		    TBool bIsMirror = EFalse;
+		    bIsMirror = TranslateMirrorUnicode( inputCode, outputCode );
 
-            isDottedChar = TranslateMirrorUnicode( inputCode, outputCode );
-
-            if (isDottedChar)
+            if ( isDottedChar || bIsMirror )
                 {
                 number->Des().Append( outputCode );                    
                 data->iKeyData.Set(*number);
--- a/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -949,7 +949,6 @@
         // read LAF data for tooltip box
         const TPeninputTooltipBoxLayoutData& tooltipBoxLAF 
                                           = iLafMgr->TooltipBoxLayoutData();
-        icf->TooltipBubbleCtrl()->SetRect( tooltipBoxLAF.iRect );
         icf->TooltipBubbleCtrl()->SetTextFormat( tooltipBoxLAF.iTooltipTextLayout );
         icf->TooltipBubbleCtrl()->SetTextColorIndex( EAknsCIQsnTextColorsCG55 );
         icf->TooltipBubbleCtrl()->SetBitmapParam(NULL,
--- a/textinput/peninputgenericvkb/srcdata/peninputvkbwindowconfiginfo_58.rss	Fri Jul 02 18:42:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4259 +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 PIGV
-
-// System includes
-#include <aknsconstants.hrh>
-#include <eikon.hrh>
-#include <peninputgenericvkb.mbg>
-#include <aknfeppeninputenums.h>
-
-// User includes
-#include "peninputcommonlayout.rh"
-#include "peninputgenericvkb.hrh"
-
-RESOURCE RSS_SIGNATURE { }
-RESOURCE TBUF { buf=""; }
-
-// Macros  
-#define PENINPUT_LAYOUT_VKB_BMP "z:\\resource\\apps\\peninputgenericvkb.mbm"
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_config_info
-// The configuration of window's layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_CONFIG_INFO r_peninput_layout_config_info
-    {
-    language=58;
-    languagestring="Hi"; 
-    casesensitive=0;
-    guideline=EPeninputGuideLineNone;
-    clientlayoutlist=r_peninput_layout_vkb_client_layout_list;
-    vkblayoutlist=r_peninput_layout_vkb_vkb_layout_list;
-    rangebarinfo=r_peninput_layout_rangebar_info;
-    shiftcapsinfo=r_peninput_layout_shift_caps_info_list;
-    rangebarresource=r_peninput_layout_vkb_range_list;    
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_client_layout_list
-// Contains latin vkb layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_CLIENT_LAYOUT_LIST r_peninput_layout_vkb_client_layout_list
-    {
-    items =
-        {
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout12x4;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=3;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=11;
-                    endrow=1;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=1;
-                    begincolumn=11;
-                    endrow=2;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=2;
-                    begincolumn=11;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=3;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=3;
-                    begincolumn=1;
-                    endrow=4;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=3;
-                    begincolumn=2;
-                    endrow=4;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=3;
-                    begincolumn=3;
-                    endrow=4;
-                    endcolumn=7;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=3;
-                    begincolumn=7;
-                    endrow=4;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=3;
-                    begincolumn=11;
-                    endrow=4;
-                    endcolumn=12;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout13x4;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=12;
-                    endrow=1;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=1;
-                    begincolumn=12;
-                    endrow=2;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=2;
-                    begincolumn=12;
-                    endrow=3;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=3;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=3;
-                    begincolumn=1;
-                    endrow=4;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=3;
-                    begincolumn=2;
-                    endrow=4;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=3;
-                    begincolumn=3;
-                    endrow=4;
-                    endcolumn=8;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=3;
-                    begincolumn=8;
-                    endrow=4;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=3;
-                    begincolumn=12;
-                    endrow=4;
-                    endcolumn=13;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout12x5;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=11;
-                    endrow=2;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=2;
-                    begincolumn=11;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=3;
-                    begincolumn=11;
-                    endrow=4;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=4;
-                    begincolumn=0;
-                    endrow=5;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=4;
-                    begincolumn=1;
-                    endrow=5;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=4;
-                    begincolumn=2;
-                    endrow=5;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=4;
-                    begincolumn=3;
-                    endrow=5;
-                    endcolumn=7;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=4;
-                    begincolumn=7;
-                    endrow=5;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=4;
-                    begincolumn=11;
-                    endrow=5;
-                    endcolumn=12;
-                    }
-                };
-            }                        
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_vkb_layout_list
-// VKB button area layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_VKB_LAYOUT_LIST r_peninput_layout_vkb_vkb_layout_list
-    {
-    items =
-        {
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeChar;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090D>;
-                    scancode=0x090D;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0945>;
-                    scancode=0x0945;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D><0x0930>;
-                    scancode=0x094D;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930><0x094D>;
-                    scancode=0x0930;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C><0x094D><0x091E>;
-                    scancode=0x091C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924><0x094D><0x0930>;
-                    scancode=0x0924;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915><0x094D><0x0937>;
-                    scancode=0x0915;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936><0x094D><0x0930>;
-                    scancode=0x0936;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0943>;
-                    scancode=0x0943;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093C>;
-                    scancode=0x093C;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094C>;
-                    scancode=0x094C;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0948>;
-                    scancode=0x0948;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093E>;
-                    scancode=0x093E;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0940>;
-                    scancode=0x0940;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0942>;
-                    scancode=0x0942;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092C>;
-                    scancode=0x092C;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0939>;
-                    scancode=0x0939;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0917>;
-                    scancode=0x0917;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0926>;
-                    scancode=0x0926;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C>;
-                    scancode=0x091C;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0921>;
-                    scancode=0x0921;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094B>;
-                    scancode=0x094B;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0947>;
-                    scancode=0x0947;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D>;
-                    scancode=0x094D;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093F>;
-                    scancode=0x093F;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0941>;
-                    scancode=0x0941;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092A>;
-                    scancode=0x092A;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930>;
-                    scancode=0x0930;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915>;
-                    scancode=0x0915;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924>;
-                    scancode=0x0924;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091A>;
-                    scancode=0x091A;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091F>;
-                    scancode=0x091F;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0949>;
-                    scancode=0x0949;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0902>;
-                    scancode=0x0902;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092E>;
-                    scancode=0x092E;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0928>;
-                    scancode=0x0928;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0935>;
-                    scancode=0x0935;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0932>;
-                    scancode=0x0932;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0938>;
-                    scancode=0x0938;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092F>;
-                    scancode=0x092F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeCharShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090D>;
-                    scancode=0x090D;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0945>;
-                    scancode=0x0945;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D><0x0930>;
-                    scancode=0x094D;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930><0x094D>;
-                    scancode=0x0930;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C><0x094D><0x091E>;
-                    scancode=0x091C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924><0x094D><0x0930>;
-                    scancode=0x0924;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915><0x094D><0x0937>;
-                    scancode=0x0915;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936><0x094D><0x0930>;
-                    scancode=0x0936;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0903>;
-                    scancode=0x0903;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090B>;
-                    scancode=0x090B;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091E>;
-                    scancode=0x091E;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0914>;
-                    scancode=0x0914;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0910>;
-                    scancode=0x0910;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0906>;
-                    scancode=0x0906;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0908>;
-                    scancode=0x0908;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090A>;
-                    scancode=0x090A;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092D>;
-                    scancode=0x092D;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0919>;
-                    scancode=0x0919;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0918>;
-                    scancode=0x0918;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0927>;
-                    scancode=0x0927;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091D>;
-                    scancode=0x091D;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0922>;
-                    scancode=0x0922;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0913>;
-                    scancode=0x0913;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090F>;
-                    scancode=0x090F;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0905>;
-                    scancode=0x0905;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0907>;
-                    scancode=0x0907;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0909>;
-                    scancode=0x0909;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092B>;
-                    scancode=0x092B;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0931>;
-                    scancode=0x0931;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0916>;
-                    scancode=0x0916;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0925>;
-                    scancode=0x0925;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091B>;
-                    scancode=0x091B;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0920>;
-                    scancode=0x0920;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0911>;
-                    scancode=0x0911;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0901>;
-                    scancode=0x0901;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0923>;
-                    scancode=0x0923;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0929>;
-                    scancode=0x0929;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0934>;
-                    scancode=0x0934;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0933>;
-                    scancode=0x0933;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936>;
-                    scancode=0x0936;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0937>;
-                    scancode=0x0937;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0964>;
-                    scancode=0x0964;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x095F>;
-                    scancode=0x095F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinNumber;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003D>;
-                    scancode=0x003D;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0028>;
-                    scancode=0x0028;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0029>;
-                    scancode=0x0029;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201E>;
-                    scancode=0x201E;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201D>;
-                    scancode=0x201D;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007B>;
-                    scancode=0x007B;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007D>;
-                    scancode=0x007D;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B1>;
-                    scancode=0x00B1;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0025>;
-                    scancode=0x0025;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003C>;
-                    scancode=0x003C;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003E>;
-                    scancode=0x003E;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AB>;
-                    scancode=0x00AB;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BB>;
-                    scancode=0x00BB;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005B>;
-                    scancode=0x005B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005D>;
-                    scancode=0x005D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinNumberShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005E>;
-                    scancode=0x005E;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0060>;
-                    scancode=0x0060;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2248>;
-                    scancode=0x2248;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A1>;
-                    scancode=0x00A1;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BF>;
-                    scancode=0x00BF;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B0>;
-                    scancode=0x00B0;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A7>;
-                    scancode=0x00A7;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007C>;
-                    scancode=0x007C;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AC>;
-                    scancode=0x20AC;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A3>;
-                    scancode=0x00A3;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0024>;
-                    scancode=0x0024;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A5>;
-                    scancode=0x00A5;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A2>;
-                    scancode=0x00A2;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A4>;
-                    scancode=0x00A4;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AA>;
-                    scancode=0x20AA;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0E3F>;
-                    scancode=0x0E3F;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AB>;
-                    scancode=0x20AB;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B9>;
-                    scancode=0x00B9;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B2>;
-                    scancode=0x00B2;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B3>;
-                    scancode=0x00B3;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AA>;
-                    scancode=0x00AA;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2030>;
-                    scancode=0x2030;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B5>;
-                    scancode=0x00B5;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2211>;
-                    scancode=0x2211;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2206>;
-                    scancode=0x2206;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x220F>;
-                    scancode=0x220F;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A9>;
-                    scancode=0x00A9;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AE>;
-                    scancode=0x00AE;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BA>;
-                    scancode=0x00BA;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeNumber;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0967>;
-                    scancode=0x0967;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0968>;
-                    scancode=0x0968;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0969>;
-                    scancode=0x0969;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0964>;
-                    scancode=0x0964;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0965>;
-                    scancode=0x0965;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0970>;
-                    scancode=0x0970;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093D>;
-                    scancode=0x093D;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0950>;
-                    scancode=0x0950;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096A>;
-                    scancode=0x096A;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096B>;
-                    scancode=0x096B;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096C>;
-                    scancode=0x096C;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003D>;
-                    scancode=0x003D;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096D>;
-                    scancode=0x096D;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096E>;
-                    scancode=0x096E;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096F>;
-                    scancode=0x096F;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201E>;
-                    scancode=0x201E;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201D>;
-                    scancode=0x201D;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0025>;
-                    scancode=0x0025;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0966>;
-                    scancode=0x0966;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0028>;
-                    scancode=0x0028;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0029>;
-                    scancode=0x0029;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003C>;
-                    scancode=0x003C;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003E>;
-                    scancode=0x003E;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B1>;
-                    scancode=0x00B1;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007B>;
-                    scancode=0x007B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007D>;
-                    scancode=0x007D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeNumberShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0967>;
-                    scancode=0x0967;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0968>;
-                    scancode=0x0968;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0969>;
-                    scancode=0x0969;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005E>;
-                    scancode=0x005E;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0060>;
-                    scancode=0x0060;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B0>;
-                    scancode=0x00B0;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A7>;
-                    scancode=0x00A7;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2248>;
-                    scancode=0x2248;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2260>;
-                    scancode=0x2260;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A4>;
-                    scancode=0x00A4;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096A>;
-                    scancode=0x096A;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096B>;
-                    scancode=0x096B;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096C>;
-                    scancode=0x096C;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AC>;
-                    scancode=0x20AC;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A3>;
-                    scancode=0x00A3;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0024>;
-                    scancode=0x0024;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A5>;
-                    scancode=0x00A5;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A2>;
-                    scancode=0x00A2;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AA>;
-                    scancode=0x20AA;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0E3F>;
-                    scancode=0x0E3F;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AB>;
-                    scancode=0x20AB;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096D>;
-                    scancode=0x096D;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096E>;
-                    scancode=0x096E;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096F>;
-                    scancode=0x096F;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B9>;
-                    scancode=0x00B9;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B2>;
-                    scancode=0x00B2;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B3>;
-                    scancode=0x00B3;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AA>;
-                    scancode=0x00AA;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BA>;
-                    scancode=0x00BA;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007C>;
-                    scancode=0x007C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2030>;
-                    scancode=0x2030;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0966>;
-                    scancode=0x0966;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B5>;
-                    scancode=0x00B5;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2211>;
-                    scancode=0x2211;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2206>;
-                    scancode=0x2206;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x220F>;
-                    scancode=0x220F;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005B>;
-                    scancode=0x005B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005D>;
-                    scancode=0x005D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinChar;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0071>;
-                    scancode=0x0071;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0065>;
-                    scancode=0x0065;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0072>;
-                    scancode=0x0072;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0074>;
-                    scancode=0x0074;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0079>;
-                    scancode=0x0079;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0075>;
-                    scancode=0x0075;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0069>;
-                    scancode=0x0069;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006F>;
-                    scancode=0x006F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0061>;
-                    scancode=0x0061;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0073>;
-                    scancode=0x0073;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0064>;
-                    scancode=0x0064;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0066>;
-                    scancode=0x0066;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0067>;
-                    scancode=0x0067;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0068>;
-                    scancode=0x0068;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006A>;
-                    scancode=0x006A;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006B>;
-                    scancode=0x006B;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006C>;
-                    scancode=0x006C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007A>;
-                    scancode=0x007A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0078>;
-                    scancode=0x0078;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0063>;
-                    scancode=0x0063;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0076>;
-                    scancode=0x0076;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0062>;
-                    scancode=0x0062;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006E>;
-                    scancode=0x006E;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006D>;
-                    scancode=0x006D;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinCharShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputgenericvkbQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputgenericvkbQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0051>;
-                    scancode=0x0051;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0057>;
-                    scancode=0x0057;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0052>;
-                    scancode=0x0052;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0054>;
-                    scancode=0x0054;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0059>;
-                    scancode=0x0059;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0055>;
-                    scancode=0x0055;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0049>;
-                    scancode=0x0049;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004F>;
-                    scancode=0x004F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0050>;
-                    scancode=0x0050;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0041>;
-                    scancode=0x0041;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0053>;
-                    scancode=0x0053;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0044>;
-                    scancode=0x0044;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0046>;
-                    scancode=0x0046;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0047>;
-                    scancode=0x0047;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0048>;
-                    scancode=0x0048;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004A>;
-                    scancode=0x004A;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004B>;
-                    scancode=0x004B;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004C>;
-                    scancode=0x004C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005A>;
-                    scancode=0x005A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0058>;
-                    scancode=0x0058;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0043>;
-                    scancode=0x0043;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0056>;
-                    scancode=0x0056;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0042>;
-                    scancode=0x0042;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004E>;
-                    scancode=0x004E;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004D>;
-                    scancode=0x004D;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_rangebar_info
-// The information of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_RANGE_BAR_INFO r_peninput_layout_rangebar_info
-    {
-    style=2;
-    ranges=
-        {
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNative; // Native button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x5; 
-            vkblayoutid=EPeninputVkbLayoutNativeChar;
-            }, 
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeEnglish; // English button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutLatinChar;
-            }, 
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNativeNumber; // Native number button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutNativeNumber;
-            },
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNumber; // Number button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutLatinNumber;
-            },
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeSymbol; // Symbol button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutSymbol;
-            }
-        }; 
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_shift_caps_info_list
-// The information of vkb's shift and capslock button
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_SHIFT_CAPS_INFO_LIST r_peninput_layout_shift_caps_info_list
-    {
-    items = 
-        {
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNative;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutNativeChar;
-                    caseused=ECaseLower;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutNativeCharShift;
-                    caseused=ECaseText;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutNativeCharShift;
-                    caseused=ECaseUpper;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutNativeChar;
-                    caseused=ECaseInverseText;
-                    }
-                };
-            },
-       PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {            
-            range = ERangeEnglish;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutLatinChar;
-                    caseused=ECaseLower;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutLatinCharShift;
-                    caseused=ECaseText;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutLatinCharShift;
-                    caseused=ECaseUpper;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutLatinChar;
-                    caseused=ECaseInverseText;
-                    }
-                };
-            },  
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNativeNumber;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumber;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumber;
-                    caseused=0;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNumber;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumber;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumber;
-                    caseused=0;
-                    }
-                };
-            },            
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeSymbol;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutSymbol;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutSymbolShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutSymbolShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutSymbol;
-                    caseused=0;
-                    }
-                };
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_list
-// VKB range list
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_INPUTRANGE_LIST r_peninput_layout_vkb_range_list
-    {
-    ranges=
-        {
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNative;
-            ctrlid=EPeninutWindowCtrlIdNativeCharBtn;
-            indicator=r_peninput_layout_vkb_range_native;
-            posidx=0;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeEnglish;
-            ctrlid=EPeninutWindowCtrlIdLatinCharBtn;
-            indicator=r_peninput_layout_vkb_range_english;
-            hide=1;
-            posidx=0;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNativeNumber;
-            ctrlid=EPeninutWindowCtrlIdNativeNumberBtn;
-            indicator=r_peninput_layout_vkb_range_native_number;
-            posidx=1;
-            },            
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNumber;
-            ctrlid=EPeninutWindowCtrlIdLatinNumberBtn;
-            indicator=r_peninput_layout_vkb_range_number;
-            hide=1;
-            posidx=1;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeSymbol;
-            ctrlid=EPeninutWindowCtrlIdSymbolBtn;
-            indicator=r_peninput_layout_vkb_range_symbol;
-            hide=1;
-            posidx=-1;
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_native
-// Native range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_native
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi;
-    nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi;
-    nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    active=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi;
-    activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
-
-    activep=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi;
-    activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
-
-    disable=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi;
-    disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_text_hindi_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    }
-    
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_english
-// English range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_english
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    
-    nactive=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
-    nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
-    
-    nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
-    nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
-    
-    active=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
-    activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
-    
-    activep=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
-    activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
-    
-    disable=EMbmPeninputgenericvkbQgn_indi_input_case_capital;
-    disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_capital_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;       
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_symbol
-// Symbol range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_symbol
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputgenericvkbQgn_indi_fep_button_case_special;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    nactivep=EMbmPeninputgenericvkbQgn_indi_fep_button_case_special;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    active=EMbmPeninputgenericvkbQgn_indi_fep_button_case_special_sel;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecialSel;
-
-    activep=EMbmPeninputgenericvkbQgn_indi_fep_button_case_special_sel;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecialSel;
-
-    disable=EMbmPeninputgenericvkbQgn_indi_fep_button_case_special;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_number
-// Number range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_number
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    
-    nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
-    nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;
-    
-    nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
-    nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;
-    
-    active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
-    activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumericSel;
-    
-    activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
-    activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumericSel;
-    
-    disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special;
-    disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_special_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;           
-    }
-    
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_number
-// Number range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_native_number
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari;
-    nactivemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari_mask;
-    //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    nactivep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari;
-    nactivepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari_mask;
-    //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    active=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari;
-    activemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari_mask;
-    //activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumericSel;
-
-    activep=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari;
-    activepmsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari_mask;
-    //activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumericSel;
-
-    disable=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari;
-    disablemsk=EMbmPeninputgenericvkbQgn_indi_input_case_numeric_devanagari_mask;
-    //disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    }
--- a/textinput/peninputsplititut/rom/peninputsplititut_variant.iby	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplititut/rom/peninputsplititut_variant.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -27,6 +27,7 @@
 
 #ifdef RD_SCALABLE_UI_V2 
 
+#if !defined(__CHINESE) && !defined(__KOREAN)
 data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititut.rsc          RESOURCE_FILES_DIR\plugins\peninputsplititut.rsc
 data = DATAZ_\RESOURCE_FILES_DIR\apps\peninputsplititut.mif             RESOURCE_FILES_DIR\apps\peninputsplititut.mif
 ECOM_PLUGIN(peninputsplititut.dll,peninputsplititut.rsc)
@@ -91,6 +92,7 @@
 data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititutconfig_devanagari.rsc        RESOURCE_FILES_DIR\plugins\peninputsplititutconfig_devanagari.rsc
 #endif // hindi marathi
 
+#endif // __CHINESE
 #endif // RD_SCALABLE_UI_V2
 
 #endif //FF_VIRTUAL_ITUT_INPUT 
--- a/textinput/peninputsplititut/rom/peninputsplititutresources.iby	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplititut/rom/peninputsplititutresources.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -26,9 +26,14 @@
 
 #ifdef RD_SCALABLE_UI_V2 
 
+#if !defined(__CHINESE) && !defined(__KOREAN)
+
 
 data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititutnew.rsc          RESOURCE_FILES_DIR\plugins\peninputsplititutnew.rsc
 
+
+#endif // __CHINESE  __KOREAN
+
 #endif // RD_SCALABLE_UI_V2
 
 #endif //FF_VIRTUAL_ITUT_INPUT 
--- a/textinput/peninputsplitqwerty/group/peninputsplitqwerty.mmp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplitqwerty/group/peninputsplitqwerty.mmp	Wed Jul 21 14:32:17 2010 +0100
@@ -92,7 +92,7 @@
 RESOURCE  peninputssqwinconfiginfo_51.rss
 RESOURCE  peninputssqwinconfiginfo_54.rss
 RESOURCE  peninputssqwinconfiginfo_57.rss
-RESOURCE  peninputssqwinconfiginfo_58.rss
+
 RESOURCE  peninputssqwinconfiginfo_59.rss
 RESOURCE  peninputssqwinconfiginfo_67.rss
 RESOURCE  peninputssqwinconfiginfo_68.rss
--- a/textinput/peninputsplitqwerty/rom/peninputsplitqwerty_variant.iby	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplitqwerty/rom/peninputsplitqwerty_variant.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -26,6 +26,8 @@
 #if defined(__VIRTUAL_KEYBOARD_INPUT) || defined(FF_VIRTUAL_FULLSCR_QWERTY_INPUT)
 #ifdef RD_SCALABLE_UI_V2 
 
+#if !defined(__CHINESE) && !defined(__KOREAN)
+
 #if defined(LOCALES_SC_IBY) || defined(__LOCALES_01_IBY__)|| defined(__LOCALES_157_IBY__) || defined(__LOCALES_158_IBY__) \
 || defined(__LOCALES_159_IBY__) || defined(__LOCALES_10_IBY__) || defined(__LOCALES_161_IBY__) || defined(__LOCALES_129_IBY__) || defined(__LOCALES_186_IBY__) || defined(__LOCALES_230_IBY__)
 #define PENINPUT_VKB_GENERIC_PLUGIN
@@ -261,6 +263,8 @@
 ECOM_PLUGIN(peninputsplitqwerty.dll,peninputsplitqwerty.rsc)
 #endif //PENINPUT_VKB_GENERIC_PLUGIN
 
+
+#endif // __CHINESE __KOREAN
 #endif // RD_SCALABLE_UI_V2
 #endif //__VIRTUAL_KEYBOARD_INPUT || FF_VIRTUAL_FULLSCR_QWERTY_INPUT  
 #endif // __PEN_SUPPORT
--- a/textinput/peninputsplitqwerty/rom/peninputsplitqwertyresources.iby	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplitqwerty/rom/peninputsplitqwertyresources.iby	Wed Jul 21 14:32:17 2010 +0100
@@ -25,10 +25,11 @@
 #ifdef __PEN_SUPPORT
 #if defined(__VIRTUAL_KEYBOARD_INPUT) || defined(FF_VIRTUAL_FULLSCR_QWERTY_INPUT)
 #ifdef RD_SCALABLE_UI_V2 
-
+#if !defined(__CHINESE) && !defined(__KOREAN)
 
 data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputssqwin.rsc               RESOURCE_FILES_DIR\plugins\peninputssqwin.rsc
 
+#endif // __CHINESE __KOREAN
 #endif // RD_SCALABLE_UI_V2
 #endif //__VIRTUAL_KEYBOARD_INPUT || FF_VIRTUAL_FULLSCR_QWERTY_INPUT  
 #endif // __PEN_SUPPORT
--- a/textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertylafdatamgr.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -300,8 +300,8 @@
     CPeninputQwtLayoutDataInfo* data = new( ELeave ) CPeninputQwtLayoutDataInfo;
     CleanupStack::PushL( data );
 
-    TAknWindowLineLayout linelayout;
-    TAknLayoutRect layoutrect;
+    TAknWindowLineLayout linelayout, linelayoutInner;
+    TAknLayoutRect layoutrect, layoutInnerect;
 
     TAknLayoutRect keypadRect, keypaneRect, keycellRect, keylabelRect;  
     TAknLayoutRect pic3paneRect;
@@ -451,18 +451,17 @@
     data->iClearButton.iInnerRect = OffsetRect( rectXInner, dx, dy );
     dx += rectXPane.Width();   
 
-    keyText = AknLayoutScalable_Avkon::popup_fep_char_pre_window_t1(0).LayoutLine();
+    // preview popup window    
+    keyText = AknLayoutScalable_Avkon::popup_fep_char_preview_window_t1( v2 ).LayoutLine();
+    linelayout = AknLayoutScalable_Avkon::popup_fep_char_preview_window( v2 ).LayoutLine();
+    linelayoutInner = AknLayoutScalable_Avkon::bg_popup_fep_char_preview_window_g9().LayoutLine();
     
-    linelayout = AknLayoutScalable_Avkon::popup_fep_char_pre_window(0).LayoutLine();
     layoutrect.LayoutRect( pic3paneRect.Rect(), linelayout );
-    TRect preBubbleRect = layoutrect.Rect();
-    preBubbleRect.Move( -preBubbleRect.iTl );
-    TRect preBubbleInner = preBubbleRect;
-    preBubbleInner.Shrink( 10, 10 );
+    layoutInnerect.LayoutRect( layoutrect.Rect(), linelayoutInner );
     
     data->iPreviewWndText = keyText;
-    data->iPreviewWndRect = preBubbleRect;
-    data->iPreviewWndInnerRect = preBubbleInner;
+    data->iPreviewWndRect = layoutrect.Rect();
+    data->iPreviewWndInnerRect = layoutInnerect.Rect();
     
     return data;
     }
--- a/textinput/peninputsplitqwerty/srcdata/peninputssqwinconfiginfo_58.rss	Fri Jul 02 18:42:02 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4259 +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 peninputsplitqwerty
-*
-*/
-
-
-// Resource identifier
-NAME PIGV
-
-// System includes
-#include <aknsconstants.hrh>
-#include <eikon.hrh>
-#include <peninputsplitqwerty.mbg>
-#include <aknfeppeninputenums.h>
-
-// User includes
-#include "peninputcommonlayout.rh"
-#include "peninputsplitqwerty.hrh"
-
-RESOURCE RSS_SIGNATURE { }
-RESOURCE TBUF { buf=""; }
-
-// Macros  
-#define PENINPUT_LAYOUT_VKB_BMP "z:\\resource\\apps\\peninputsplitqwerty.mbm"
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_config_info
-// The configuration of window's layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_CONFIG_INFO r_peninput_layout_config_info
-    {
-    language=58;
-    languagestring="Hi"; 
-    casesensitive=0;
-    guideline=EPeninputGuideLineNone;
-    clientlayoutlist=r_peninput_layout_vkb_client_layout_list;
-    vkblayoutlist=r_peninput_layout_vkb_vkb_layout_list;
-    rangebarinfo=r_peninput_layout_rangebar_info;
-    shiftcapsinfo=r_peninput_layout_shift_caps_info_list;
-    rangebarresource=r_peninput_layout_vkb_range_list;    
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_client_layout_list
-// Contains latin vkb layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_CLIENT_LAYOUT_LIST r_peninput_layout_vkb_client_layout_list
-    {
-    items =
-        {
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout12x4;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=3;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=11;
-                    endrow=1;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=1;
-                    begincolumn=11;
-                    endrow=2;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=2;
-                    begincolumn=11;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=3;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=3;
-                    begincolumn=1;
-                    endrow=4;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=3;
-                    begincolumn=2;
-                    endrow=4;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=3;
-                    begincolumn=3;
-                    endrow=4;
-                    endcolumn=7;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=3;
-                    begincolumn=7;
-                    endrow=4;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=3;
-                    begincolumn=11;
-                    endrow=4;
-                    endcolumn=12;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout13x4;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=12;
-                    endrow=1;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=1;
-                    begincolumn=12;
-                    endrow=2;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=2;
-                    begincolumn=12;
-                    endrow=3;
-                    endcolumn=13;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=3;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=3;
-                    begincolumn=1;
-                    endrow=4;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=3;
-                    begincolumn=2;
-                    endrow=4;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=3;
-                    begincolumn=3;
-                    endrow=4;
-                    endcolumn=8;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=3;
-                    begincolumn=8;
-                    endrow=4;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=3;
-                    begincolumn=12;
-                    endrow=4;
-                    endcolumn=13;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_CLIENT_LAYOUT
-            {
-            id=EPeninputClientLayout12x5;
-            colcount=11;
-            rowcount=4;
-            controls =
-                {
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdVkbCtrl; // Control button
-                    beginrow=0;
-                    begincolumn=0;
-                    endrow=4;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdBackspaceBtn; // Backspace button
-                    beginrow=0;
-                    begincolumn=11;
-                    endrow=2;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdEnterBtn; // Enter button
-                    beginrow=2;
-                    begincolumn=11;
-                    endrow=3;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdInputLangSwitcherBtn; // Language switch button
-                    beginrow=3;
-                    begincolumn=11;
-                    endrow=4;
-                    endcolumn=12;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdTabBtn; // Tab button
-                    beginrow=4;
-                    begincolumn=0;
-                    endrow=5;
-                    endcolumn=1;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdCapslockBtn; // Capslock button
-                    beginrow=4;
-                    begincolumn=1;
-                    endrow=5;
-                    endcolumn=2;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdShiftBtn; // Shift button
-                    beginrow=4;
-                    begincolumn=2;
-                    endrow=5;
-                    endcolumn=3;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSpaceBtn; // Space button
-                    beginrow=4;
-                    begincolumn=3;
-                    endrow=5;
-                    endcolumn=7;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdRangeBar; // Rangebar
-                    beginrow=4;
-                    begincolumn=7;
-                    endrow=5;
-                    endcolumn=11;
-                    },
-                PENINPUT_LAYOUT_CONTROL
-                    {
-                    id=EPeninutWindowCtrlIdSwitchToHwrBtn; // VKB to HWR switch button
-                    beginrow=4;
-                    begincolumn=11;
-                    endrow=5;
-                    endcolumn=12;
-                    }
-                };
-            }                        
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_vkb_layout_list
-// VKB button area layout
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_VKB_LAYOUT_LIST r_peninput_layout_vkb_vkb_layout_list
-    {
-    items =
-        {
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeChar;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090D>;
-                    scancode=0x090D;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0945>;
-                    scancode=0x0945;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D><0x0930>;
-                    scancode=0x094D;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930><0x094D>;
-                    scancode=0x0930;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C><0x094D><0x091E>;
-                    scancode=0x091C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924><0x094D><0x0930>;
-                    scancode=0x0924;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915><0x094D><0x0937>;
-                    scancode=0x0915;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936><0x094D><0x0930>;
-                    scancode=0x0936;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0943>;
-                    scancode=0x0943;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093C>;
-                    scancode=0x093C;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094C>;
-                    scancode=0x094C;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0948>;
-                    scancode=0x0948;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093E>;
-                    scancode=0x093E;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0940>;
-                    scancode=0x0940;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0942>;
-                    scancode=0x0942;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092C>;
-                    scancode=0x092C;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0939>;
-                    scancode=0x0939;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0917>;
-                    scancode=0x0917;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0926>;
-                    scancode=0x0926;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C>;
-                    scancode=0x091C;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0921>;
-                    scancode=0x0921;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094B>;
-                    scancode=0x094B;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0947>;
-                    scancode=0x0947;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D>;
-                    scancode=0x094D;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093F>;
-                    scancode=0x093F;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0941>;
-                    scancode=0x0941;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092A>;
-                    scancode=0x092A;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930>;
-                    scancode=0x0930;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915>;
-                    scancode=0x0915;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924>;
-                    scancode=0x0924;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091A>;
-                    scancode=0x091A;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091F>;
-                    scancode=0x091F;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0949>;
-                    scancode=0x0949;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0902>;
-                    scancode=0x0902;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092E>;
-                    scancode=0x092E;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0928>;
-                    scancode=0x0928;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0935>;
-                    scancode=0x0935;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0932>;
-                    scancode=0x0932;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0938>;
-                    scancode=0x0938;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092F>;
-                    scancode=0x092F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeCharShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090D>;
-                    scancode=0x090D;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0945>;
-                    scancode=0x0945;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x094D><0x0930>;
-                    scancode=0x094D;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0930><0x094D>;
-                    scancode=0x0930;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091C><0x094D><0x091E>;
-                    scancode=0x091C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0924><0x094D><0x0930>;
-                    scancode=0x0924;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0915><0x094D><0x0937>;
-                    scancode=0x0915;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936><0x094D><0x0930>;
-                    scancode=0x0936;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0903>;
-                    scancode=0x0903;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090B>;
-                    scancode=0x090B;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091E>;
-                    scancode=0x091E;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0914>;
-                    scancode=0x0914;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0910>;
-                    scancode=0x0910;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0906>;
-                    scancode=0x0906;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0908>;
-                    scancode=0x0908;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090A>;
-                    scancode=0x090A;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092D>;
-                    scancode=0x092D;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0919>;
-                    scancode=0x0919;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0918>;
-                    scancode=0x0918;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0927>;
-                    scancode=0x0927;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091D>;
-                    scancode=0x091D;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0922>;
-                    scancode=0x0922;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0913>;
-                    scancode=0x0913;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x090F>;
-                    scancode=0x090F;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0905>;
-                    scancode=0x0905;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0907>;
-                    scancode=0x0907;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0909>;
-                    scancode=0x0909;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x092B>;
-                    scancode=0x092B;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0931>;
-                    scancode=0x0931;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0916>;
-                    scancode=0x0916;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0925>;
-                    scancode=0x0925;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x091B>;
-                    scancode=0x091B;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0920>;
-                    scancode=0x0920;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0911>;
-                    scancode=0x0911;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0901>;
-                    scancode=0x0901;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0923>;
-                    scancode=0x0923;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0929>;
-                    scancode=0x0929;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0934>;
-                    scancode=0x0934;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0933>;
-                    scancode=0x0933;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0936>;
-                    scancode=0x0936;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0937>;
-                    scancode=0x0937;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0964>;
-                    scancode=0x0964;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x095F>;
-                    scancode=0x095F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinNumber;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003D>;
-                    scancode=0x003D;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0028>;
-                    scancode=0x0028;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0029>;
-                    scancode=0x0029;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201E>;
-                    scancode=0x201E;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201D>;
-                    scancode=0x201D;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007B>;
-                    scancode=0x007B;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007D>;
-                    scancode=0x007D;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B1>;
-                    scancode=0x00B1;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0025>;
-                    scancode=0x0025;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003C>;
-                    scancode=0x003C;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003E>;
-                    scancode=0x003E;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AB>;
-                    scancode=0x00AB;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BB>;
-                    scancode=0x00BB;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005B>;
-                    scancode=0x005B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005D>;
-                    scancode=0x005D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinNumberShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005E>;
-                    scancode=0x005E;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0060>;
-                    scancode=0x0060;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2248>;
-                    scancode=0x2248;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A1>;
-                    scancode=0x00A1;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BF>;
-                    scancode=0x00BF;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B0>;
-                    scancode=0x00B0;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A7>;
-                    scancode=0x00A7;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007C>;
-                    scancode=0x007C;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AC>;
-                    scancode=0x20AC;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A3>;
-                    scancode=0x00A3;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0024>;
-                    scancode=0x0024;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A5>;
-                    scancode=0x00A5;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A2>;
-                    scancode=0x00A2;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A4>;
-                    scancode=0x00A4;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AA>;
-                    scancode=0x20AA;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0E3F>;
-                    scancode=0x0E3F;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AB>;
-                    scancode=0x20AB;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B9>;
-                    scancode=0x00B9;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B2>;
-                    scancode=0x00B2;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B3>;
-                    scancode=0x00B3;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AA>;
-                    scancode=0x00AA;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2030>;
-                    scancode=0x2030;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B5>;
-                    scancode=0x00B5;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2211>;
-                    scancode=0x2211;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2206>;
-                    scancode=0x2206;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x220F>;
-                    scancode=0x220F;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A9>;
-                    scancode=0x00A9;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AE>;
-                    scancode=0x00AE;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BA>;
-                    scancode=0x00BA;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeNumber;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0967>;
-                    scancode=0x0967;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0968>;
-                    scancode=0x0968;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0969>;
-                    scancode=0x0969;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0964>;
-                    scancode=0x0964;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0965>;
-                    scancode=0x0965;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0970>;
-                    scancode=0x0970;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x093D>;
-                    scancode=0x093D;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0950>;
-                    scancode=0x0950;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096A>;
-                    scancode=0x096A;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096B>;
-                    scancode=0x096B;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096C>;
-                    scancode=0x096C;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003D>;
-                    scancode=0x003D;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096D>;
-                    scancode=0x096D;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096E>;
-                    scancode=0x096E;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096F>;
-                    scancode=0x096F;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201E>;
-                    scancode=0x201E;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x201D>;
-                    scancode=0x201D;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0025>;
-                    scancode=0x0025;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0966>;
-                    scancode=0x0966;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0028>;
-                    scancode=0x0028;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0029>;
-                    scancode=0x0029;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003C>;
-                    scancode=0x003C;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003E>;
-                    scancode=0x003E;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B1>;
-                    scancode=0x00B1;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007B>;
-                    scancode=0x007B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007D>;
-                    scancode=0x007D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutNativeNumberShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0967>;
-                    scancode=0x0967;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0968>;
-                    scancode=0x0968;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0969>;
-                    scancode=0x0969;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005E>;
-                    scancode=0x005E;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0060>;
-                    scancode=0x0060;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B0>;
-                    scancode=0x00B0;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A7>;
-                    scancode=0x00A7;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2248>;
-                    scancode=0x2248;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2260>;
-                    scancode=0x2260;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A4>;
-                    scancode=0x00A4;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096A>;
-                    scancode=0x096A;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096B>;
-                    scancode=0x096B;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096C>;
-                    scancode=0x096C;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AC>;
-                    scancode=0x20AC;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A3>;
-                    scancode=0x00A3;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0024>;
-                    scancode=0x0024;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A5>;
-                    scancode=0x00A5;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00A2>;
-                    scancode=0x00A2;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AA>;
-                    scancode=0x20AA;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0E3F>;
-                    scancode=0x0E3F;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x20AB>;
-                    scancode=0x20AB;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096D>;
-                    scancode=0x096D;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096E>;
-                    scancode=0x096E;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x096F>;
-                    scancode=0x096F;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B9>;
-                    scancode=0x00B9;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B2>;
-                    scancode=0x00B2;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B3>;
-                    scancode=0x00B3;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00AA>;
-                    scancode=0x00AA;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00BA>;
-                    scancode=0x00BA;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007C>;
-                    scancode=0x007C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2030>;
-                    scancode=0x2030;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002A>;
-                    scancode=0x002A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0966>;
-                    scancode=0x0966;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0023>;
-                    scancode=0x0023;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x00B5>;
-                    scancode=0x00B5;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2211>;
-                    scancode=0x2211;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x2206>;
-                    scancode=0x2206;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x220F>;
-                    scancode=0x220F;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005B>;
-                    scancode=0x005B;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005D>;
-                    scancode=0x005D;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinChar;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002B>;
-                    scancode=0x002B;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0071>;
-                    scancode=0x0071;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0077>;
-                    scancode=0x0077;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0065>;
-                    scancode=0x0065;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0072>;
-                    scancode=0x0072;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0074>;
-                    scancode=0x0074;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0079>;
-                    scancode=0x0079;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0075>;
-                    scancode=0x0075;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0069>;
-                    scancode=0x0069;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006F>;
-                    scancode=0x006F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0070>;
-                    scancode=0x0070;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003F>;
-                    scancode=0x003F;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0061>;
-                    scancode=0x0061;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0073>;
-                    scancode=0x0073;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0064>;
-                    scancode=0x0064;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0066>;
-                    scancode=0x0066;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0067>;
-                    scancode=0x0067;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0068>;
-                    scancode=0x0068;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006A>;
-                    scancode=0x006A;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006B>;
-                    scancode=0x006B;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006C>;
-                    scancode=0x006C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0027>;
-                    scancode=0x0027;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0021>;
-                    scancode=0x0021;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007A>;
-                    scancode=0x007A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0078>;
-                    scancode=0x0078;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0063>;
-                    scancode=0x0063;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0076>;
-                    scancode=0x0076;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0062>;
-                    scancode=0x0062;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006E>;
-                    scancode=0x006E;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x006D>;
-                    scancode=0x006D;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002C>;
-                    scancode=0x002C;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002E>;
-                    scancode=0x002E;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002D>;
-                    scancode=0x002D;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0040>;
-                    scancode=0x0040;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            },
-
-
-
-        PENINPUT_LAYOUT_VKB_LAYOUT
-            {
-            id=EPeninputVkbLayoutLatinCharShift;
-            mbmfile=PENINPUT_LAYOUT_VKB_BMP;
-            imgmajorskinid=EAknsMajorGeneric;
-            bgbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3;
-            bgbmpmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_mask;
-            bgbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x3;
-            dimbmp=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed;
-            dimmask=EMbmPeninputsplitqwertyQgn_graf_fep_numb_11x3_1_button_dimmed_mask;
-            dimbmpskinid=EAknsMinorGenericQgnGrafFepNumb11x31ButtonDimmed;
-            colcount=11;
-            rowcount=4;
-            highlightbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            highlightmaskbmps =
-                {
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=EMbmPeninputsplitqwertyQgn_graf_fep_char_button_pressed_mask;
-                    },
-                PENINPUT_LAYOUT_BITMAP_ID
-                    {
-                    bmpid=0xffff;
-                    }
-                };
-            keys =
-                {
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0031>;
-                    scancode=0x0031;
-                    beginrow=0;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0032>;
-                    scancode=0x0032;
-                    beginrow=0;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0033>;
-                    scancode=0x0033;
-                    beginrow=0;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0034>;
-                    scancode=0x0034;
-                    beginrow=0;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0035>;
-                    scancode=0x0035;
-                    beginrow=0;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0036>;
-                    scancode=0x0036;
-                    beginrow=0;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0037>;
-                    scancode=0x0037;
-                    beginrow=0;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0038>;
-                    scancode=0x0038;
-                    beginrow=0;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0039>;
-                    scancode=0x0039;
-                    beginrow=0;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0030>;
-                    scancode=0x0030;
-                    beginrow=0;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005C>;
-                    scancode=0x005C;
-                    beginrow=0;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0051>;
-                    scancode=0x0051;
-                    beginrow=1;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0057>;
-                    scancode=0x0057;
-                    beginrow=1;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0045>;
-                    scancode=0x0045;
-                    beginrow=1;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0052>;
-                    scancode=0x0052;
-                    beginrow=1;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0054>;
-                    scancode=0x0054;
-                    beginrow=1;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0059>;
-                    scancode=0x0059;
-                    beginrow=1;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0055>;
-                    scancode=0x0055;
-                    beginrow=1;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0049>;
-                    scancode=0x0049;
-                    beginrow=1;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004F>;
-                    scancode=0x004F;
-                    beginrow=1;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0050>;
-                    scancode=0x0050;
-                    beginrow=1;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x002F>;
-                    scancode=0x002F;
-                    beginrow=1;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0041>;
-                    scancode=0x0041;
-                    beginrow=2;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0053>;
-                    scancode=0x0053;
-                    beginrow=2;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0044>;
-                    scancode=0x0044;
-                    beginrow=2;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0046>;
-                    scancode=0x0046;
-                    beginrow=2;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0047>;
-                    scancode=0x0047;
-                    beginrow=2;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0048>;
-                    scancode=0x0048;
-                    beginrow=2;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004A>;
-                    scancode=0x004A;
-                    beginrow=2;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004B>;
-                    scancode=0x004B;
-                    beginrow=2;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004C>;
-                    scancode=0x004C;
-                    beginrow=2;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0022>;
-                    scancode=0x0022;
-                    beginrow=2;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0026>;
-                    scancode=0x0026;
-                    beginrow=2;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005A>;
-                    scancode=0x005A;
-                    beginrow=3;
-                    begincolumn=0;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0058>;
-                    scancode=0x0058;
-                    beginrow=3;
-                    begincolumn=1;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0043>;
-                    scancode=0x0043;
-                    beginrow=3;
-                    begincolumn=2;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0056>;
-                    scancode=0x0056;
-                    beginrow=3;
-                    begincolumn=3;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x0042>;
-                    scancode=0x0042;
-                    beginrow=3;
-                    begincolumn=4;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004E>;
-                    scancode=0x004E;
-                    beginrow=3;
-                    begincolumn=5;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x004D>;
-                    scancode=0x004D;
-                    beginrow=3;
-                    begincolumn=6;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003B>;
-                    scancode=0x003B;
-                    beginrow=3;
-                    begincolumn=7;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x003A>;
-                    scancode=0x003A;
-                    beginrow=3;
-                    begincolumn=8;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x005F>;
-                    scancode=0x005F;
-                    beginrow=3;
-                    begincolumn=9;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    },
-                PENINPUT_LAYOUT_UNIT_KEY
-                    {
-                    unicode=<0x007E>;
-                    scancode=0x007E;
-                    beginrow=3;
-                    begincolumn=10;
-                    highlightbmpindex=0;
-                    highlightmaskbmpindex=0;
-                    }
-                };
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_rangebar_info
-// The information of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_RANGE_BAR_INFO r_peninput_layout_rangebar_info
-    {
-    style=2;
-    ranges=
-        {
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNative; // Native button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x5; 
-            vkblayoutid=EPeninputVkbLayoutNativeChar;
-            }, 
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeEnglish; // English button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutLatinChar;
-            }, 
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNativeNumber; // Native number button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutNativeNumber;
-            },
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeNumber; // Number button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutLatinNumber;
-            },
-        PENINPUT_LAYOUT_RANGE_INFO
-            {
-            rangeid=ERangeSymbol; // Symbol button
-            responsestyle=1;
-            clientlayoutid=EPeninputClientLayout12x4; 
-            vkblayoutid=EPeninputVkbLayoutSymbol;
-            }
-        }; 
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_shift_caps_info_list
-// The information of vkb's shift and capslock button
-// ---------------------------------------------------------------------------
-//
-RESOURCE PENINPUT_LAYOUT_SHIFT_CAPS_INFO_LIST r_peninput_layout_shift_caps_info_list
-    {
-    items = 
-        {
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNative;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutNativeChar;
-                    caseused=ECaseLower;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutNativeCharShift;
-                    caseused=ECaseText;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutNativeCharShift;
-                    caseused=ECaseUpper;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutNativeChar;
-                    caseused=ECaseInverseText;
-                    }
-                };
-            },
-       PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {            
-            range = ERangeEnglish;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutLatinChar;
-                    caseused=ECaseLower;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutLatinCharShift;
-                    caseused=ECaseText;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutLatinCharShift;
-                    caseused=ECaseUpper;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutLatinChar;
-                    caseused=ECaseInverseText;
-                    }
-                };
-            },  
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNativeNumber;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumber;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutNativeNumber;
-                    caseused=0;
-                    }
-                };
-            },
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeNumber;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumber;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumberShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutLatinNumber;
-                    caseused=0;
-                    }
-                };
-            },            
-        PENINPUT_LAYOUT_SHIFT_CAPS_INFO
-            {
-            range = ERangeSymbol;
-            items =
-                {
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE
-                    {
-                    id=0;
-                    vkblayoutid=EPeninputVkbLayoutSymbol;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=1;
-                    vkblayoutid=EPeninputVkbLayoutSymbolShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=2;
-                    vkblayoutid=EPeninputVkbLayoutSymbolShift;
-                    caseused=0;
-                    },
-                PENINPUT_LAYOUT_SHIFT_CAPS_INFO_SINGLE 
-                    {
-                    id=3;
-                    vkblayoutid=EPeninputVkbLayoutSymbol;
-                    caseused=0;
-                    }
-                };
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_list
-// VKB range list
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_INPUTRANGE_LIST r_peninput_layout_vkb_range_list
-    {
-    ranges=
-        {
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNative;
-            ctrlid=EPeninutWindowCtrlIdNativeCharBtn;
-            indicator=r_peninput_layout_vkb_range_native;
-            posidx=0;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeEnglish;
-            ctrlid=EPeninutWindowCtrlIdLatinCharBtn;
-            indicator=r_peninput_layout_vkb_range_english;
-            hide=1;
-            posidx=0;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNativeNumber;
-            ctrlid=EPeninutWindowCtrlIdNativeNumberBtn;
-            indicator=r_peninput_layout_vkb_range_native_number;
-            posidx=1;
-            },            
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeNumber;
-            ctrlid=EPeninutWindowCtrlIdLatinNumberBtn;
-            indicator=r_peninput_layout_vkb_range_number;
-            hide=1;
-            posidx=1;
-            },
-        AKN_FEP_INPUTRANGE
-            {
-            rangeid=ERangeSymbol;
-            ctrlid=EPeninutWindowCtrlIdSymbolBtn;
-            indicator=r_peninput_layout_vkb_range_symbol;
-            hide=1;
-            posidx=-1;
-            }
-        };
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_native
-// Native range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_native
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi;
-    nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi;
-    nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    active=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi;
-    activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
-
-    activep=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi;
-    activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonChineseSel;
-
-    disable=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi;
-    disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_text_hindi_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonChinese;
-
-    }
-    
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_english
-// English range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_english
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    
-    nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
-    nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
-    
-    nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
-    nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;
-    
-    active=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
-    activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
-    
-    activep=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
-    activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapitalSel;
-    
-    disable=EMbmPeninputsplitqwertyQgn_indi_input_case_capital;
-    disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_capital_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseCapital;       
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_symbol
-// Symbol range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_symbol
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputsplitqwertyQgn_indi_fep_button_case_special;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    nactivep=EMbmPeninputsplitqwertyQgn_indi_fep_button_case_special;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    active=EMbmPeninputsplitqwertyQgn_indi_fep_button_case_special_sel;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecialSel;
-
-    activep=EMbmPeninputsplitqwertyQgn_indi_fep_button_case_special_sel;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecialSel;
-
-    disable=EMbmPeninputsplitqwertyQgn_indi_fep_button_case_special;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseSpecial;
-
-    }
-
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_number
-// Number range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_number
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    
-    nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
-    nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
-    nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;
-    
-    nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
-    nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
-    nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;
-    
-    active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
-    activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
-    activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumericSel;
-    
-    activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
-    activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
-    activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumericSel;
-    
-    disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special;
-    disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_special_mask;
-    disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseNumeric;           
-    }
-    
-// ---------------------------------------------------------------------------
-// r_peninput_layout_vkb_range_number
-// Number range button of vkb's rangebar
-// ---------------------------------------------------------------------------
-//
-RESOURCE AKN_FEP_BUTTON_IMAGE r_peninput_layout_vkb_range_native_number
-    {
-    bmpfile=PENINPUT_LAYOUT_VKB_BMP;
-    imgmajorskinid=EAknsMajorGeneric;
-    nactive=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari;
-    nactivemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari_mask;
-    //nactiveskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    nactivep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari;
-    nactivepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari_mask;
-    //nactivepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    active=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari;
-    activemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari_mask;
-    //activeskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumericSel;
-
-    activep=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari;
-    activepmsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari_mask;
-    //activepskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumericSel;
-
-    disable=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari;
-    disablemsk=EMbmPeninputsplitqwertyQgn_indi_input_case_numeric_devanagari_mask;
-    //disableskinid=EAknsMinorGenericQgnIndiFepButtonCaseNativeNumeric;
-
-    }
--- a/textinput/peninputvkbcn/ctrlsrc/peninputvkbwindow.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/peninputvkbcn/ctrlsrc/peninputvkbwindow.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -1465,8 +1465,6 @@
         // read LAF data for tooltip box
         const TPeninputCnTooltipBoxLayoutData& tooltipBoxLAF 
                                         = iLafMgr->TooltipBoxLayoutData();
-        iInputContextField->TooltipBubbleCtrl()->SetRect( 
-                                        tooltipBoxLAF.iRect );
         iInputContextField->TooltipBubbleCtrl()->SetTextFormat( 
                                         tooltipBoxLAF.iTooltipTextLayout );
         iInputContextField->TooltipBubbleCtrl()->SetTextColorIndex( 
--- a/textinput/ptienginev2/inc/PtiEngineImpl.h	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/ptienginev2/inc/PtiEngineImpl.h	Wed Jul 21 14:32:17 2010 +0100
@@ -228,6 +228,7 @@
         TPtiTextCase CaseForMappedCharacter(TChar aCharacter);
         void RemoveTrailingPunctuations();
         void RemoveTrailingPunctuations12Key();
+		void OnInputModeChanged(TPtiEngineInputMode aOldMode, TPtiEngineInputMode aNewMode);
 #ifdef FF_DUAL_LANGUAGE_SUPPORT
         void  SearchKeySequenceInSecLang(TPtrC aIn, TDes8& aOut);
 #endif // FF_DUAL_LANGUAGE_SUPPORT        
--- a/textinput/ptienginev2/src/PtiEngineImpl.cpp	Fri Jul 02 18:42:02 2010 +0100
+++ b/textinput/ptienginev2/src/PtiEngineImpl.cpp	Wed Jul 21 14:32:17 2010 +0100
@@ -712,14 +712,36 @@
 			return KErrNoSuitableCore;	
 			}
 		}
-
-    iInputMode = aMode;	
+	
+	if (iInputMode != aMode)
+		{
+		OnInputModeChanged(iInputMode, aMode);
+		iInputMode = aMode;		
+		}
 
 	TFileName temp;
 	temp.Copy(iTextBuffer);
 	return SetCurrentWord( temp );
 	}
 
+void CPtiEngineImpl::OnInputModeChanged(TPtiEngineInputMode /*aOldMode*/, TPtiEngineInputMode aNewMode)
+	{
+	if (aNewMode == EPtiEngineQwertyPredictive)
+		{
+		HBufC16* oldTextBuf = iTextBuffer.Alloc(); 
+		ClearCurrentWord();
+		if (oldTextBuf)
+			{
+			// why assigned here? eh, I don't want to do that either.
+			// SetCurrentWord will use core(), which will use iInputMode, and 
+			// obviously, the core should return the new core, that is why.
+			iInputMode = aNewMode;
+		
+			SetCurrentWord(oldTextBuf->Des());
+			delete oldTextBuf;
+			}
+		}
+	}
 
 // ---------------------------------------------------------------------------
 // CPtiEngineImpl::CountToneMarks
@@ -3964,10 +3986,12 @@
 	// When the default physical keyboard is 0, 
 	// it means that there is no physical keyboard,
 	// also need to get the active virtual keyboard type.
+	TInt isQwertyOn = 0;
+	RProperty::Get(KCRUidAvkon, KAknQwertyInputModeActive, isQwertyOn);	
 	TInt isVirtualInputActive = 0;
 	RProperty::Get( KPSUidAknFep, KAknFepTouchInputActive, 
 					isVirtualInputActive );    
-	if ( isVirtualInputActive > 0 || keyboardType == 0 )
+	if (( isVirtualInputActive > 0 || keyboardType == 0) && !isQwertyOn)
 		{
 		// Active keyboard is virtual keyboard          
 		RProperty::Get( KPSUidAknFep, KAknFepVirtualKeyboardType,