729 return; |
728 return; |
730 } |
729 } |
731 |
730 |
732 TBuf<KPTIEngineResultSize> mapData; |
731 TBuf<KPTIEngineResultSize> mapData; |
733 |
732 |
|
733 #ifdef RD_JAVA_S60_RELEASE_9_2 |
|
734 // Set keyboard type/layout just before mapping the key |
|
735 TRAPD(err, SetPtiKeyboardL()); |
|
736 if (err != KErrNone) |
|
737 { |
|
738 DEBUG_INT("CMIDUtils::MappingDataForKey - SetPtiKeyboardL leaved with error = %d", err); |
|
739 } |
|
740 #endif // RD_JAVA_S60_RELEASE_9_2 |
|
741 |
734 iPtiEngine->MappingDataForKey( |
742 iPtiEngine->MappingDataForKey( |
735 (TPtiKey)aEvent.iScanCode, mapData, textCase); |
743 (TPtiKey)aEvent.iScanCode, mapData, textCase); |
736 |
744 |
737 if (mapData.Length() > 0) |
745 if (mapData.Length() > 0) |
738 { |
746 { |
739 // set event code to the first mapped |
747 // set event code to the first mapped |
740 aEvent.iCode = mapData[0]; |
748 aEvent.iCode = mapData[0]; |
741 } |
749 } |
742 #endif // RD_INTELLIGENT_TEXT_INPUT |
750 #endif // RD_INTELLIGENT_TEXT_INPUT |
743 |
|
744 } |
751 } |
745 |
752 |
746 void CMIDUtils::UpdatePTIEngineStatusL() |
753 void CMIDUtils::UpdatePTIEngineStatusL() |
747 { |
754 { |
748 |
|
749 #ifdef RD_INTELLIGENT_TEXT_INPUT |
755 #ifdef RD_INTELLIGENT_TEXT_INPUT |
750 |
|
751 RProperty::Get(KCRUidAvkon, KAknQwertyInputModeActive, iQwertyMode); |
756 RProperty::Get(KCRUidAvkon, KAknQwertyInputModeActive, iQwertyMode); |
752 |
757 |
753 // keyboard layout default value: 0 - No Keyboard |
|
754 TInt keyboardLayout = 0; |
|
755 // Read keyboard layout from central repository |
758 // Read keyboard layout from central repository |
756 RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, keyboardLayout); |
759 RProperty::Get(KCRUidAvkon, KAknKeyBoardLayout, iPtiKeyboardType); |
|
760 SetPtiKeyboardL(); |
757 |
761 |
758 TPtiEngineInputMode mode = EPtiEngineInputModeNone; |
762 TPtiEngineInputMode mode = EPtiEngineInputModeNone; |
759 switch (keyboardLayout) |
763 switch (iPtiKeyboardType) |
760 { |
764 { |
761 case EPtiKeyboard12Key: |
765 case EPtiKeyboard12Key: |
762 mode = EPtiEngineMultitapping; |
766 mode = EPtiEngineMultitapping; |
763 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD |
|
764 CallToJavaPtiVariationL(keyboardLayout); |
|
765 #else |
|
766 iPtiEngine->SetKeyboardType((TPtiKeyboardType)keyboardLayout); |
|
767 #endif |
|
768 break; |
767 break; |
769 case EPtiKeyboardQwerty4x12: |
768 case EPtiKeyboardQwerty4x12: |
770 case EPtiKeyboardQwerty4x10: |
769 case EPtiKeyboardQwerty4x10: |
771 case EPtiKeyboardQwerty3x11: |
770 case EPtiKeyboardQwerty3x11: |
772 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD |
|
773 CallToJavaPtiVariationL(keyboardLayout); |
|
774 #else |
|
775 iPtiEngine->SetKeyboardType((TPtiKeyboardType)keyboardLayout); |
|
776 #endif |
|
777 mode = EPtiEngineQwerty; |
771 mode = EPtiEngineQwerty; |
778 break; |
772 break; |
779 case EPtiKeyboardHalfQwerty: |
773 case EPtiKeyboardHalfQwerty: |
780 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD |
|
781 CallToJavaPtiVariationL(keyboardLayout); |
|
782 #else |
|
783 iPtiEngine->SetKeyboardType((TPtiKeyboardType)keyboardLayout); |
|
784 #endif |
|
785 mode = EPtiEngineHalfQwerty; |
774 mode = EPtiEngineHalfQwerty; |
786 break; |
775 break; |
787 default: |
776 default: |
788 break; |
777 break; |
789 } |
778 } |
|
779 |
790 // input language default value: 0 (automatic) |
780 // input language default value: 0 (automatic) |
791 TInt inputLang = 0; |
781 TInt inputLang = 0; |
792 if (iRepository) |
782 if (iRepository) |
793 { |
783 { |
794 TInt ret = iRepository->Get(KAknFepInputTxtLang, inputLang); |
784 TInt ret = iRepository->Get(KAknFepInputTxtLang, inputLang); |
805 inputLang == ELangHongKongChinese) |
795 inputLang == ELangHongKongChinese) |
806 { |
796 { |
807 inputLang = ELangEnglish; |
797 inputLang = ELangEnglish; |
808 } |
798 } |
809 } |
799 } |
|
800 |
810 TRAPD(err, iPtiEngine->ActivateLanguageL(inputLang, mode)); |
801 TRAPD(err, iPtiEngine->ActivateLanguageL(inputLang, mode)); |
811 if (KErrNone != err) |
802 if (KErrNone != err) |
812 { |
803 { |
813 DEBUG_INT("CMIDUtils::UpdatePTIEngineStatusL - ActivateLanguageL leaved with error = %d", err); |
804 DEBUG_INT("CMIDUtils::UpdatePTIEngineStatusL - ActivateLanguageL leaved with error = %d", err); |
814 return; |
805 return; |
815 } |
806 } |
816 |
|
817 |
|
818 #endif // RD_INTELLIGENT_TEXT_INPUT |
807 #endif // RD_INTELLIGENT_TEXT_INPUT |
819 |
808 } |
820 } |
|
821 |
|
822 |
809 |
823 void CMIDUtils::HandleResourceChangedL() |
810 void CMIDUtils::HandleResourceChangedL() |
824 { |
811 { |
825 UpdatePTIEngineStatusL(); |
812 UpdatePTIEngineStatusL(); |
826 } |
813 } |
839 // |
826 // |
840 CMIDUtils::CMIDUtils(MMIDEnv& aEnv, CMIDUIManager* aUIManager) |
827 CMIDUtils::CMIDUtils(MMIDEnv& aEnv, CMIDUIManager* aUIManager) |
841 : iEnv(&aEnv) |
828 : iEnv(&aEnv) |
842 , iUIManager(aUIManager) |
829 , iUIManager(aUIManager) |
843 , iScalingData() |
830 , iScalingData() |
|
831 #ifdef RD_INTELLIGENT_TEXT_INPUT |
|
832 , iPtiKeyboardType(EPtiKeyboardNone) |
|
833 #endif // RD_INTELLIGENT_TEXT_INPUT |
844 , iQwertyMode(EFalse) |
834 , iQwertyMode(EFalse) |
845 , iStickyKey(0) |
835 , iStickyKey(0) |
846 , iLastScanCode(0) |
836 , iLastScanCode(0) |
847 , iModifier(0) |
837 , iModifier(0) |
848 , iScalingDataInitialized(EFalse) |
838 , iScalingDataInitialized(EFalse) |
1220 TRect screenRect; |
1209 TRect screenRect; |
1221 if (current) |
1210 if (current) |
1222 { |
1211 { |
1223 screenRect = current->GetCanvasRectFromLaf(); |
1212 screenRect = current->GetCanvasRectFromLaf(); |
1224 } |
1213 } |
|
1214 else |
|
1215 { |
|
1216 // No displayable is current. It will be initialized in other time. |
|
1217 iScalingDataInitialized=EFalse; |
|
1218 return; |
|
1219 } |
1225 |
1220 |
1226 // Traslate of rect of screen into size |
1221 // Traslate of rect of screen into size |
1227 data.iScreenSize = screenRect.Size(); |
1222 data.iScreenSize = screenRect.Size(); |
1228 |
1223 |
1229 // Check if scaling is is on now. |
1224 // Check if scaling is ON now. |
1230 if (iMenuHandler->IsScalingEffectiveInCurrentScreen()) |
1225 if (iMenuHandler->IsScalingEnabled()) |
1231 { |
1226 { |
1232 |
1227 |
1233 // Get original and target size from JAD attributes |
1228 // Get original and target size from JAD attributes |
1234 data.iOriginalSize = iMenuHandler->GetScalingParameterOrgMIDletScrSize(); |
1229 data.iOriginalSize = iMenuHandler->GetScalingParameterOrgMIDletScrSize(); |
1235 data.iTargetSize = iMenuHandler->GetScalingParameterTargetMIDletScrSize(); |
1230 data.iTargetSize = iMenuHandler->GetScalingParameterTargetMIDletScrSize(); |
1624 TSize subtract = iScalingData.iScreenSize - iScalingData.iCanvasSize; |
1619 TSize subtract = iScalingData.iScreenSize - iScalingData.iCanvasSize; |
1625 TPoint canvasOrigin = TPoint(subtract.iWidth / 2, subtract.iHeight / 2); |
1620 TPoint canvasOrigin = TPoint(subtract.iWidth / 2, subtract.iHeight / 2); |
1626 return TRect(canvasOrigin, iScalingData.iCanvasSize); |
1621 return TRect(canvasOrigin, iScalingData.iCanvasSize); |
1627 } |
1622 } |
1628 |
1623 |
|
1624 #ifdef RD_INTELLIGENT_TEXT_INPUT |
|
1625 void CMIDUtils::SetPtiKeyboardL() |
|
1626 { |
|
1627 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD |
|
1628 CallToJavaPtiVariationL(iPtiKeyboardType); |
|
1629 #else |
|
1630 if (iPtiEngine) |
|
1631 { |
|
1632 iPtiEngine->SetKeyboardType((TPtiKeyboardType)iPtiKeyboardType); |
|
1633 } |
|
1634 #endif // RD_JAVA_S60_RELEASE_5_0_IAD |
|
1635 } |
|
1636 #endif // RD_INTELLIGENT_TEXT_INPUT |
|
1637 |
1629 // End of File |
1638 // End of File |