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 // --------------------------------------------------------------------------- |