fep/aknfep/src/AknFepManager.cpp
branchRCL_3
changeset 6 6ceef9a83b1a
parent 5 a47de9135b21
child 7 6defe5d1bd39
equal deleted inserted replaced
5:a47de9135b21 6:6ceef9a83b1a
 13522         PluginInputMode() == EPluginInputModeNone )
 13522         PluginInputMode() == EPluginInputModeNone )
 13523         {
 13523         {
 13524         // The editor doesn't allow SCT.
 13524         // The editor doesn't allow SCT.
 13525         return EFalse;
 13525         return EFalse;
 13526         }
 13526         }
 13527 
 13527     
       
 13528     TInt numberModeSctId = NumericModeSCTResourceId(); 
 13528     if (iMode == ENumber || iMode == ENativeNumber)
 13529     if (iMode == ENumber || iMode == ENativeNumber)
 13529         {
 13530         {
 13530         if (iPermittedInputModes == EAknEditorNumericInputMode || !NumericModeSCTResourceId()) 
 13531         if (iPermittedInputModes == EAknEditorNumericInputMode || !numberModeSctId) 
 13531             {
 13532             {
 13532             // SCT is not launched if the number mode is the only input mode or
 13533             // SCT is not launched if the number mode is the only input mode or
 13533             // if there is not keymap resource for the current numeric keymap mode.
 13534             // if there is not keymap resource for the current numeric keymap mode.
 13534             ableToLaunchSCT = EFalse;
 13535             ableToLaunchSCT = EFalse;
 13535             }
 13536             }
 13540             // SCT is launched in the number mode if requested by editor flag
 13541             // SCT is launched in the number mode if requested by editor flag
 13541             // EAknEditorFlagUseSCTNumericCharmap or if also text input modes are
 13542             // EAknEditorFlagUseSCTNumericCharmap or if also text input modes are
 13542             // allowed and the keymap is EAknEditorAlphanumericNumberModeKeymap.
 13543             // allowed and the keymap is EAknEditorAlphanumericNumberModeKeymap.
 13543             ableToLaunchSCT = ETrue;
 13544             ableToLaunchSCT = ETrue;
 13544             }
 13545             }
       
 13546         
       
 13547         if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == numberModeSctId)
       
 13548            {
       
 13549            TBool isEmpty = ETrue;
       
 13550            TRAP_IGNORE(isEmpty = GetSctLengthL(numberModeSctId));
       
 13551            if(isEmpty)
       
 13552                {
       
 13553                ableToLaunchSCT = EFalse;
       
 13554                }
       
 13555             }
       
 13556         
 13545         }
 13557         }
 13546     if (!(EditorHasFreeSpace() && EditorState() 
 13558     if (!(EditorHasFreeSpace() && EditorState() 
 13547         && EditorState()->SpecialCharacterTableResourceId()))
 13559         && EditorState()->SpecialCharacterTableResourceId()))
 13548         {
 13560         {
 13549         ableToLaunchSCT = EFalse;
 13561         ableToLaunchSCT = EFalse;
 13550         }
 13562         }
 13551 
 13563     
       
 13564    
       
 13565     
 13552     return ableToLaunchSCT;
 13566     return ableToLaunchSCT;
 13553     }
 13567     }
 13554 
 13568 
 13555 TBool CAknFepManager::QueryPredictiveState(const TAknEditingState aState)
 13569 TBool CAknFepManager::QueryPredictiveState(const TAknEditingState aState)
 13556  { 
 13570  { 
 20626         {
 20640         {
 20627         iEditMenuBar->StopDisplayingMenuBar();
 20641         iEditMenuBar->StopDisplayingMenuBar();
 20628         iEditMenuBar = NULL;
 20642         iEditMenuBar = NULL;
 20629         }
 20643         }
 20630 #ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__    
 20644 #ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__    
 20631     if (iOptionsMenuBar)
 20645     // temporary solution for Entering key on virtual QWERTY not working 
       
 20646     // like enter on virtual ITU-T or on external keyboard
       
 20647     if ( iOptionsMenuBar && !( iFepPluginManager && 
       
 20648     		iFepPluginManager->CurrentPluginInputMode() == EPluginInputModeFSQ ) )
 20632         {
 20649         {
 20633         iOptionsMenuBar->StopDisplayingMenuBar();
 20650         iOptionsMenuBar->StopDisplayingMenuBar();
 20634         iOptionsMenuBar = NULL;
 20651         iOptionsMenuBar = NULL;
 20635         }
 20652         }
 20636 #endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__   
 20653 #endif //__ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__   
 20759         ch = RemapVietnameseAccentedCharacter(aChar);
 20776         ch = RemapVietnameseAccentedCharacter(aChar);
 20760         }
 20777         }
 20761 
 20778 
 20762     aKey = ch;
 20779     aKey = ch;
 20763     }
 20780     }
       
 20781 
       
 20782 TBool CAknFepManager::GetSctLengthL(TInt resourceId)const
       
 20783 	{
       
 20784 	CCoeEnv* coeEnv = CCoeEnv::Static();
       
 20785 	TResourceReader reader;
       
 20786 	CEikonEnv::Static()->CreateResourceReaderLC(reader,resourceId);
       
 20787 	TInt component_count=reader.ReadInt16();
       
 20788 	TInt length = 0;
       
 20789 	TBool isEmpty = ETrue;
       
 20790 	HBufC* sctChar = NULL;
       
 20791 	
       
 20792 	for (TInt ii=0;ii<component_count;ii++)
       
 20793 		{
       
 20794 		TInt component_id=reader.ReadInt16();
       
 20795 		switch(component_id)
       
 20796 			{
       
 20797 			case EAknSCTLowerCase:
       
 20798 				{
       
 20799 		        sctChar = reader.ReadHBufCL();
       
 20800 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20801 		        break;
       
 20802 				}
       
 20803 			case EAknSCTUpperCase:
       
 20804 				{
       
 20805 		        sctChar = reader.ReadHBufCL();
       
 20806 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20807 		        break;
       
 20808 				}
       
 20809 			case EAknSCTNumeric:
       
 20810 				{
       
 20811 		        sctChar = reader.ReadHBufCL();
       
 20812 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20813 		    	break;
       
 20814 				}
       
 20815 		    case EAknSCTFullCase:
       
 20816 		        {
       
 20817 		        sctChar = reader.ReadHBufCL();
       
 20818 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20819 		        break;
       
 20820 		        }
       
 20821 		    case EAknSCTHalfCase:
       
 20822 		       	{
       
 20823 		        sctChar = reader.ReadHBufCL();
       
 20824 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20825 		        break;
       
 20826 		       	}
       
 20827 		    case EAknSCTQwerty:
       
 20828 		        {
       
 20829 		        sctChar = reader.ReadHBufCL();
       
 20830 		        length += (sctChar != NULL)? sctChar->Length(): 0;
       
 20831 		        break;
       
 20832 		        }
       
 20833 		   	default:
       
 20834 		        break;
       
 20835 			}
       
 20836 	    delete sctChar;
       
 20837 	    sctChar = NULL;
       
 20838 	    if(length > 0)
       
 20839 	    	{
       
 20840             isEmpty = EFalse;
       
 20841 	    	break;
       
 20842 	    	}
       
 20843 		}
       
 20844 	CleanupStack::PopAndDestroy();  //reader 
       
 20845 	return isEmpty;
       
 20846 	}
 20764 
 20847 
 20765 // ---------------------------------------------------------------------------
 20848 // ---------------------------------------------------------------------------
 20766 // LOCAL METHODS
 20849 // LOCAL METHODS
 20767 // 
 20850 // 
 20768 // ---------------------------------------------------------------------------
 20851 // ---------------------------------------------------------------------------