# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268649722 -7200 # Node ID 6ceef9a83b1a433d838c4b59a14e0a0c55ad28d4 # Parent a47de9135b21c689d9d997f9775b4fb1a53838e8 Revision: 201009 Kit: 201010 diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonImpl.h --- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonImpl.h Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUiAvkonImpl.h Mon Mar 15 12:42:02 2010 +0200 @@ -141,6 +141,9 @@ MEikCommandObserver* aCommandObserver, TInt aResourceId ); + // Embeded or not + TBool CbaEmbeddedInDialog( const TInt& aFlags ); + /** * Show cba of aResourceId using owns cba object(iCba) * diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonImpl.cpp --- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonImpl.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/src/AknFepUiAvkonImpl.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -927,7 +927,7 @@ if ( dlg ) { CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba ); - CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); + //CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); if ( currentCba && iDialogCba == currentCba ) { currentCba->RemoveCommandFromStack( ELeftSoftkeyIndex, -1 ); @@ -953,10 +953,10 @@ if ( eikAppUi!= NULL && eikAppUi->IsDisplayingDialog() && eikAppUi->TopFocusedControl()) { CEikDialog* dlg = eikAppUi->TopFocusedControl()->MopGetObject( dlg ); - if ( dlg ) + if ( dlg && CbaEmbeddedInDialog( dlg->DialogFlags())) { CEikButtonGroupContainer* currentCba = dlg->MopGetObject( currentCba ); - CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); + //CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); if ( currentCba ) { TUint flags( 0 ); @@ -972,7 +972,7 @@ CEikCba* cba = static_cast( iCba->ButtonGroup()); - CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); + //CEikCba* dlgcba = static_cast( currentCba->ButtonGroup()); if( !isCbaEmded ) { currentCba->AddCommandToStackL( ELeftSoftkeyIndex, -1, _L(""), NULL, NULL ); @@ -995,4 +995,11 @@ } } +TBool CAknFepUIAvkonImpl::CbaEmbeddedInDialog( const TInt& aFlags ) + { + return AknLayoutUtils::PenEnabled() && + !( aFlags & EEikDialogFlagFillAppClientRect ) && + !( aFlags & EEikDialogFlagFillScreen ) && + !( aFlags & EEikDialogFlagVirtualInput ); + } //End of File diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/conf/aknfep.confml Binary file fep/aknfep/conf/aknfep.confml has changed diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/conf/aknfep_101F876D.crml Binary file fep/aknfep/conf/aknfep_101F876D.crml has changed diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/inc/AknFepManager.h --- a/fep/aknfep/inc/AknFepManager.h Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/inc/AknFepManager.h Mon Mar 15 12:42:02 2010 +0200 @@ -64,7 +64,7 @@ #ifdef RD_INTELLIGENT_TEXT_INPUT // Predictive QWERTY (XT9) changes ----> class MAknFepUiWordPopupContent; -#include "aknfepcandidatepopup.h" +#include "AknFepCandidatePopup.h" #include "AknFepCandidatePopupCallback.h" // Predictive QWERTY (XT9) changes <---- #endif //RD_INTELLIGENT_TEXT_INPUT @@ -1418,6 +1418,11 @@ TBool IsAbleToLaunchSCT() const; /** + * Get SCT Chars' Length to judge it's null + */ + TBool GetSctLengthL(TInt resourceId)const; + + /** * Get current editor's SCT resource id */ TInt GetCurrentEditorSCTResId() const; diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/inc/AknFepPluginManager.h --- a/fep/aknfep/inc/AknFepPluginManager.h Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/inc/AknFepPluginManager.h Mon Mar 15 12:42:02 2010 +0200 @@ -528,6 +528,15 @@ */ inline TBool IsInMenuOpen(); + /** + * Get current plugin input mode even if current window is close. + * The function is defferent from PluginInputMode(), PluginInputMode() + * return EPluginInputModeNone if current input window is closed + * + * @since 5.0 + * @return current plugin input mode + */ + inline TPluginInputMode CurrentPluginInputMode(); private: /** @@ -1212,6 +1221,11 @@ return iInMenu; } +inline TPluginInputMode CAknFepPluginManager::CurrentPluginInputMode() + { + return iPluginInputMode; + } + #endif //RD_SCALABLE_UI_V2 #endif // __AKN_FEP_PLUGIN_MANAGER__ diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp --- a/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/peninputplugins/PeninputPluginKr/src/PeninputPluginKr.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -29,8 +29,9 @@ #include #include #include +#include -#include + #include "PeninputPluginKrDbg.h" #include "PeninputPluginKr.hrh" // CPeninputPluginKr @@ -56,6 +57,19 @@ //const TInt KFSQUiEngIndex = 3; const TInt KInvalidImplId = 0; +enum TPeninputKoreanWordCombineFlags + { + EKoreanWordCombineVersion = 0x00000001, + EKoreanWordCombineConsonantSsangKiyeok = 0x00000002, + EKoreanWordCombineConsonantSsangTikeut = 0x00000004, + EKoreanWordCombineConsonantSsangPieup = 0x00000008, + EKoreanWordCombineConsonantSsangSios = 0x00000010, + EKoreanWordCombineConsonantCieuc = 0x00000020, + EKoreanWordCombineConsonantYaPlusI = 0x00000040, + EKoreanWordCombineConsonantYuPlusI = 0x00000080, + EKoreanWordCombineConsonantOnSetting = 0x00000100 + }; + LOCAL_C void Cleanup( TAny* aAny ) { RImplInfoPtrArray* implArray = @@ -113,7 +127,7 @@ BaflUtils::NearestLanguageFile(coeEnv->FsSession(), resourceName); iResId = coeEnv->AddResourceFileL(resourceName); - iRepository=CRepository::NewL(KCRUidPtiKoreanQwertyCore); + iRepository=CRepository::NewL(KCRUidAknFep); } @@ -308,9 +322,14 @@ TInt ret(EFalse); if (aCommandId==EPeninputPluginKrDoubleConsonentCmd) { - iRepository->Set(EDblConsonentOnSetting,1); + TInt settingValue; + iRepository->Get(KAknFepKoreanCombineWordFlag,settingValue); + settingValue |= EKoreanWordCombineConsonantOnSetting; + iRepository->Set(EKoreanWordCombineConsonantOnSetting,settingValue); TRAP_IGNORE(ShowListQueryL(R_AKNEXQUERY_MULTI_SELECTION_LIST_QUERY)); - iRepository->Set(EDblConsonentOnSetting,0); + iRepository->Get(KAknFepKoreanCombineWordFlag,settingValue); + settingValue &= 0xFFFFFEFF; + iRepository->Set(EKoreanWordCombineConsonantOnSetting,settingValue); ret=ETrue; } return ret; @@ -563,77 +582,91 @@ new (ELeave) CAknListQueryDialog(arraySelected); dlg->PrepareLC(aResourceId); - TInt set; - if (iRepository->Get(EDblConsonentSsangKiyeok,set)==KErrNone) - { - if (set) arraySelected->AppendL(0); - } - if (iRepository->Get(EDblConsonentSsangTikeut,set)==KErrNone) - { - if (set) arraySelected->AppendL(1); - } - if (iRepository->Get(EDblConsonentSsangPieup,set)==KErrNone) + + TInt settingValue; + + if( iRepository->Get( KAknFepKoreanCombineWordFlag, settingValue ) == KErrNone ) { - if (set) arraySelected->AppendL(2); - } - if (iRepository->Get(EDblConsonentSsangSios,set)==KErrNone) - { - if (set) arraySelected->AppendL(3); - } - if (iRepository->Get(EDblConsonentSsangCieuc,set)==KErrNone) - { - if (set) arraySelected->AppendL(4); - } - if (iRepository->Get(EDblConsonentYaPlusI,set)==KErrNone) - { - if (set) arraySelected->AppendL(5); - } - if (iRepository->Get(EDblConsonentYuPlusI,set)==KErrNone) - { - if (set) arraySelected->AppendL(6); + if( settingValue & EKoreanWordCombineConsonantSsangKiyeok ) + { + arraySelected->AppendL(0); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangTikeut ) + { + arraySelected->AppendL(1); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangPieup ) + { + arraySelected->AppendL(2); + } + + + if( settingValue & EKoreanWordCombineConsonantSsangSios ) + { + arraySelected->AppendL(3); + } + + + if( settingValue & EKoreanWordCombineConsonantCieuc ) + { + arraySelected->AppendL(4); + } + + + if( settingValue & EKoreanWordCombineConsonantYaPlusI ) + { + arraySelected->AppendL(5); + } + + + if( settingValue & EKoreanWordCombineConsonantYuPlusI ) + { + arraySelected->AppendL(6); + } } dlg->ListBox()->SetSelectionIndexesL(arraySelected); if (dlg->RunLD()) { - iRepository->Set(EDblConsonentSsangKiyeok,0); - iRepository->Set(EDblConsonentSsangTikeut,0); - iRepository->Set(EDblConsonentSsangPieup,0); - iRepository->Set(EDblConsonentSsangSios,0); - iRepository->Set(EDblConsonentSsangCieuc,0); - iRepository->Set(EDblConsonentYaPlusI,0); - iRepository->Set(EDblConsonentYuPlusI,0); + settingValue &= 0xFFFFFF01; + iRepository->Set( KAknFepKoreanCombineWordFlag, settingValue ); for (TInt i=0;iCount();i++) { switch (arraySelected->At(i)) { case 0: - iRepository->Set(EDblConsonentSsangKiyeok,1); + settingValue |= EKoreanWordCombineConsonantSsangKiyeok; break; case 1: - iRepository->Set(EDblConsonentSsangTikeut,1); + settingValue |= EKoreanWordCombineConsonantSsangTikeut; break; case 2: - iRepository->Set(EDblConsonentSsangPieup,1); + settingValue |= EKoreanWordCombineConsonantSsangPieup; break; case 3: - iRepository->Set(EDblConsonentSsangSios,1); + settingValue |= EKoreanWordCombineConsonantSsangSios; break; case 4: - iRepository->Set(EDblConsonentSsangCieuc,1); + settingValue |= EKoreanWordCombineConsonantCieuc; break; case 5: - iRepository->Set(EDblConsonentYaPlusI,1); + settingValue |= EKoreanWordCombineConsonantYaPlusI; break; case 6: - iRepository->Set(EDblConsonentYuPlusI,1); + settingValue |= EKoreanWordCombineConsonantYuPlusI; break; default: break; } } } + + iRepository->Set( KAknFepKoreanCombineWordFlag, settingValue ); CleanupStack::PopAndDestroy(arraySelected); } diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/src/AknFepManager.cpp --- a/fep/aknfep/src/AknFepManager.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/src/AknFepManager.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -13524,10 +13524,11 @@ // The editor doesn't allow SCT. return EFalse; } - + + TInt numberModeSctId = NumericModeSCTResourceId(); if (iMode == ENumber || iMode == ENativeNumber) { - if (iPermittedInputModes == EAknEditorNumericInputMode || !NumericModeSCTResourceId()) + if (iPermittedInputModes == EAknEditorNumericInputMode || !numberModeSctId) { // SCT is not launched if the number mode is the only input mode or // if there is not keymap resource for the current numeric keymap mode. @@ -13542,13 +13543,26 @@ // allowed and the keymap is EAknEditorAlphanumericNumberModeKeymap. ableToLaunchSCT = ETrue; } + + if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == numberModeSctId) + { + TBool isEmpty = ETrue; + TRAP_IGNORE(isEmpty = GetSctLengthL(numberModeSctId)); + if(isEmpty) + { + ableToLaunchSCT = EFalse; + } + } + } if (!(EditorHasFreeSpace() && EditorState() && EditorState()->SpecialCharacterTableResourceId())) { ableToLaunchSCT = EFalse; } - + + + return ableToLaunchSCT; } @@ -20628,7 +20642,10 @@ iEditMenuBar = NULL; } #ifdef __ITI_VIRTUAL_TOUCH_FIRST_GENERATION_SUPPORT__ - if (iOptionsMenuBar) + // temporary solution for Entering key on virtual QWERTY not working + // like enter on virtual ITU-T or on external keyboard + if ( iOptionsMenuBar && !( iFepPluginManager && + iFepPluginManager->CurrentPluginInputMode() == EPluginInputModeFSQ ) ) { iOptionsMenuBar->StopDisplayingMenuBar(); iOptionsMenuBar = NULL; @@ -20762,6 +20779,72 @@ aKey = ch; } +TBool CAknFepManager::GetSctLengthL(TInt resourceId)const + { + CCoeEnv* coeEnv = CCoeEnv::Static(); + TResourceReader reader; + CEikonEnv::Static()->CreateResourceReaderLC(reader,resourceId); + TInt component_count=reader.ReadInt16(); + TInt length = 0; + TBool isEmpty = ETrue; + HBufC* sctChar = NULL; + + for (TInt ii=0;iiLength(): 0; + break; + } + case EAknSCTUpperCase: + { + sctChar = reader.ReadHBufCL(); + length += (sctChar != NULL)? sctChar->Length(): 0; + break; + } + case EAknSCTNumeric: + { + sctChar = reader.ReadHBufCL(); + length += (sctChar != NULL)? sctChar->Length(): 0; + break; + } + case EAknSCTFullCase: + { + sctChar = reader.ReadHBufCL(); + length += (sctChar != NULL)? sctChar->Length(): 0; + break; + } + case EAknSCTHalfCase: + { + sctChar = reader.ReadHBufCL(); + length += (sctChar != NULL)? sctChar->Length(): 0; + break; + } + case EAknSCTQwerty: + { + sctChar = reader.ReadHBufCL(); + length += (sctChar != NULL)? sctChar->Length(): 0; + break; + } + default: + break; + } + delete sctChar; + sctChar = NULL; + if(length > 0) + { + isEmpty = EFalse; + break; + } + } + CleanupStack::PopAndDestroy(); //reader + return isEmpty; + } + // --------------------------------------------------------------------------- // LOCAL METHODS // diff -r a47de9135b21 -r 6ceef9a83b1a fep/aknfep/src/AknFepPluginManager.cpp --- a/fep/aknfep/src/AknFepPluginManager.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/aknfep/src/AknFepPluginManager.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -290,7 +290,8 @@ if( !iPenInputSvrConnected || !iPenInputServer.IsVisible() || iPenInputServer.IsDimmed() ) { if( iFepMan.FepAwareTextEditor() ) - { + { + iPreferredUiMode = ETrue; TryChangePluginInputModeByModeL((TPluginInputMode)(iSharedData.PluginInputMode()), EPenInputOpenManually, ERangeInvalid); @@ -1196,6 +1197,12 @@ iFepMan.UpdateCbaL( NULL ); } + if ( iFepMan.EditorState() ) + { + iFepMan.EditorState()->SetFlags( + iFepMan.EditorState()->Flags() | EAknEditorFlagTouchInputModeOpened ); + } + // Notify application touch window state NotifyAppUiImeTouchWndStateL( ETrue ); @@ -1277,6 +1284,12 @@ iFepMan.UiInterface()->TouchPaneSetInputMethodIconActivated(EFalse); + if ( iFepMan.EditorState() ) + { + iFepMan.EditorState()->SetFlags( + iFepMan.EditorState()->Flags() & ~EAknEditorFlagTouchInputModeOpened ); + } + if ( prePluginInputMode == EPluginInputModeVkb ) { iFepMan.UpdateIndicators(); @@ -1503,6 +1516,15 @@ ERangeInvalid); } break; + case EPeninputCmdHwr: + { + ClosePluginInputModeL(ETrue); + iFepMan.TryCloseUiL(); + TryChangePluginInputModeByModeL( EPluginInputModeFingerHwr, + EPenInputOpenManually, + ERangeInvalid ); + } + break; case EFepInputCmdHelp: { if (iInMenu) @@ -1852,17 +1874,23 @@ TInt curInputMode = iLangMan.CurrentImePlugin()->CurrentMode(); TBool isChinese = iFepMan.IsChineseInputLanguage(); - if ( !isChinese && ( curInputMode == EPluginInputModeItut ) && - !( disabledInputMode & EPluginInputModeFSQ )) + if ( !isChinese && ( curInputMode != EPluginInputModeFSQ ) + && !( disabledInputMode & EPluginInputModeFSQ )) { aMenuPane->SetItemDimmed( EPeninputCmdFSQ, EFalse ); } - if ( !isChinese && ( curInputMode == EPluginInputModeFSQ ) && - !( disabledInputMode & EPluginInputModeItut )) + if ( !isChinese && ( curInputMode != EPluginInputModeItut ) + && !( disabledInputMode & EPluginInputModeItut )) { aMenuPane->SetItemDimmed(EPenInputCmdVITUT, EFalse); } + + if ( iFepMan.IsArabicInputLanguage() && ( curInputMode != EPluginInputModeFingerHwr ) + && !( disabledInputMode & EPluginInputModeFingerHwr )) + { + aMenuPane->SetItemDimmed( EPeninputCmdHwr, EFalse ); + } //For arabic finger hwr input orientation. TInt index = 0; if(iPluginInputMode == EPluginInputModeFingerHwr diff -r a47de9135b21 -r 6ceef9a83b1a fep/frontendprocessor/test/group/BLD.INF --- a/fep/frontendprocessor/test/group/BLD.INF Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/frontendprocessor/test/group/BLD.INF Mon Mar 15 12:42:02 2010 +0200 @@ -29,7 +29,6 @@ ../feps/tfep2be.mmp ../feps/TFEP2PlugIn.MMP ../feps/TFEP3PlugIn.MMP -../feps/TFEP4PlugIn.MMP diff -r a47de9135b21 -r 6ceef9a83b1a fep/frontendprocessor/test/group/fepbasetest.iby --- a/fep/frontendprocessor/test/group/fepbasetest.iby Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/frontendprocessor/test/group/fepbasetest.iby Mon Mar 15 12:42:02 2010 +0200 @@ -38,11 +38,8 @@ data=DATAZ_\resource\data\tfep1_ui.r01 resource\data\tfep1_ui.r01 data=DATAZ_\resource\data\tfep1_ui.r10 resource\data\tfep1_ui.r10 ECOM_PLUGIN(tfep3plugin.dll,tfep3plugin.rsc) -ECOM_PLUGIN(tfep4plugin.dll,tfep4plugin.rsc) data=DATAZ_\resource\data\tfep3_ui.r01 resource\data\tfep3_ui.r01 data=DATAZ_\resource\data\tfep3_ui.r10 resource\data\tfep3_ui.r10 -data=DATAZ_\resource\data\tfep4_ui.r01 resource\data\tfep4_ui.r01 -data=DATAZ_\resource\data\tfep4_ui.r10 resource\data\tfep4_ui.r10 data=DATAZ_\system\test\fepbasetest\tfep1testtarget.r01 System\test\fepbasetest\tfep1testtarget.r01 data=DATAZ_\system\test\fepbasetest\tfep1testtarget.r10 System\test\fepbasetest\tfep1testtarget.r10 diff -r a47de9135b21 -r 6ceef9a83b1a fep/frontendprocessor/test/inc/TFEP1TESTTARGET.hrh --- a/fep/frontendprocessor/test/inc/TFEP1TESTTARGET.hrh Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/frontendprocessor/test/inc/TFEP1TESTTARGET.hrh Mon Mar 15 12:42:02 2010 +0200 @@ -28,8 +28,7 @@ EControlIdNormalEdwin=1, EControlIdNormalNumEdwin, EControlIdHalfWidthKatakanaEdwin, - EControlIdPhoneticAlphabetEdwin, - EControlIdCJKEdwin + EControlIdPhoneticAlphabetEdwin }; #endif diff -r a47de9135b21 -r 6ceef9a83b1a fep/frontendprocessor/test/src/TFEP1TESTTARGET.CPP --- a/fep/frontendprocessor/test/src/TFEP1TESTTARGET.CPP Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/frontendprocessor/test/src/TFEP1TESTTARGET.CPP Mon Mar 15 12:42:02 2010 +0200 @@ -40,7 +40,6 @@ const TUid KUidTFep1 = { 0x102024D0 }; -const TUid KUidTFep4 = { 0x1028716D }; // String literal to represent the language-specific resource file path. _LIT(KFep1TestTargetResourceFilePath, "z:\\system\\test\\fepbasetest\\tfep1testtarget.r01"); @@ -50,14 +49,12 @@ TBuf<16> gTextNormalNumEdwin; TBuf<16> gTextKatakanaEdwin; TBuf<32> gTextPhoneticalEdwin; -TBuf<32> gTextCJKEdwin; // expected results (according to FEP1 settings and the actions performed in the CFep1TestTargetUi::RunTestStepL method below) _LIT(KExpectedTextNormalEdwin, "ABCGHIJKLMQRST@"); _LIT(KExpectedTextNormalNumEdwin, "1230056"); _LIT(KExpectedTextKatakanaEdwin, "EFG"); _LIT(KExpectedTextPhoneticalEdwin, "JulietteKiloLimaMNO"); -_LIT(KExpectedTextCJKEdwin, "!\x0411\x0E02\x2E81\x303A\x4E19\xAD00\xD840\xDC00\xD87E\xDC00 !\"#"); /************************************************************* @@ -103,10 +100,6 @@ CEikEdwin& phoneticAlphabetEdwin=*static_cast(Control(EControlIdPhoneticAlphabetEdwin)); inputCapabilities=phoneticAlphabetEdwin.InputCapabilities(); phoneticAlphabetEdwin.SetInputCapabilitiesL(TCoeInputCapabilities(TCoeInputCapabilities::EWesternAlphabetic|TCoeInputCapabilities::ENavigation, inputCapabilities.FepAwareTextEditor(), inputCapabilities.CaptionRetrieverForFep(), TUid::Uid(KTfep1Uid), this)); - CEikEdwin& cjkEdwin=*static_cast(Control(EControlIdCJKEdwin)); - inputCapabilities=cjkEdwin.InputCapabilities(); - inputCapabilities.SetCapabilities(TCoeInputCapabilities::EAllText|TCoeInputCapabilities::ENavigation); - cjkEdwin.SetInputCapabilitiesL(inputCapabilities); } @@ -125,9 +118,6 @@ CEikEdwin* edwinPhonetical = static_cast(Control(EControlIdPhoneticAlphabetEdwin)); edwinPhonetical->GetText(gTextPhoneticalEdwin); - CEikEdwin* edwinCJK = static_cast(Control(EControlIdCJKEdwin)); - edwinCJK->GetText(gTextCJKEdwin); - //It's always ok to return OK in our case... return ETrue; } @@ -813,197 +803,13 @@ case 460: { - //INFO_PRINTF1(_L("...simulate Key Event Enter ---> Submits 'MNO' (not Fep installed --> No Alphabetical!")); - //SendKey(EKeyEnter); + INFO_PRINTF1(_L("...simulate Key Event Enter ---> Submits 'MNO' (not Fep installed --> No Alphabetical!")); + SendKey(EKeyEnter); RecordTestResultL(); } break; -//---------------------------------------------------------------------------------------------- -/** - @SYMTestCaseID TI18N-FEPBASE-CIT-4001 - @SYMPREQ 2471 - @SYMTestCaseDesc Check FEPBASE Unicode 5.0 support. - @SYMTestPriority High - @SYMTestStatus Implemented - @SYMTestActions 1. Pass BMP code points to WORD.exe - 2. Pass non-BMP code points to WORD.exe - - @SYMTestExpectedResults When the dialog is dismissed, the text box reads as is expected. - */ - -//---------------------------------------------------------------------------------------------- - - case 461: - { - SetTestStepID(_L("TI18N-FEPBASE-CIT-4001")); - INFO_PRINTF1(_L("Send cursor down events to move the next dialog")); - SendKey(EKeyDownArrow); - INFO_PRINTF1(_L("Install the FEP 1")); - iCoeEnv->InstallFepL(KUidTFep1); - User::After(TTimeIntervalMicroSeconds32(2000000)); - } - break; - - case 462: - { - INFO_PRINTF1(_L("...simulate Key Event 'Shift + M' ---> Changes to hex fep!")); - SendKey('M', EModifierRightShift); - TUint codes[] = {'0', '0', '2', '1'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(200000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 463: - { - TUint codes[] = {'0', '4', '1', '1'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(200000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 464: - { - TUint codes[] = {'0', 'E', '0', '2'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(200000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - - case 465: - { - TUint codes[] = {'2', 'E', '8', '1'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 466: - { - TUint codes[] = {'3', '0', '3', 'A'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 467: - { - TUint codes[] = {'4', 'E', '1', '9'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 468: - { - TUint codes[] = {'A', 'D', '0', '0'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - - case 469: - { - INFO_PRINTF1(_L("Uninstall the FEP")); - iCoeEnv->InstallFepL(KNullUid); - INFO_PRINTF1(_L("Install the FEP 4")); - iCoeEnv->InstallFepL(KUidTFep4); - User::After(TTimeIntervalMicroSeconds32(2000000)); - } - break; - - case 471: - { - TUint codes[] = {'2', '0', '0', '0', '0'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - case 472: - { - TUint codes[] = {'2', 'F', '8', '0', '0'}; - for (int i = 0; i < sizeof(codes)/sizeof(TUint); i++) - { - INFO_PRINTF2(_L("...simulate Key Event '%d'"), codes[i]); - SendKey(codes[i]); - User::After(TTimeIntervalMicroSeconds32(1000000)); - } - INFO_PRINTF1(_L("...simulate Key Event Enter")); - SendKey(EKeyEnter); - } - break; - - case 473: - { - INFO_PRINTF1(_L("...simulate Key Event 'Shift + X' ---> test SimulateKeyEventsL!")); - SendKey('X', EModifierRightShift); - User::After(TTimeIntervalMicroSeconds32(2000000)); - INFO_PRINTF1(_L("...simulate Key Event 'Shift + M' ---> Changes to Pinyin!")); - SendKey('M', EModifierRightShift); - User::After(TTimeIntervalMicroSeconds32(2000000)); - } - break; - case 474: - { - INFO_PRINTF1(_L("...simulate Key Event 'Shift + M' ---> Changes back to Plain!")); - SendKey('M', EModifierRightShift); - User::After(TTimeIntervalMicroSeconds32(2000000)); - } - break; - case 475: - { - INFO_PRINTF1(_L("Uninstall the FEP")); - iCoeEnv->InstallFepL(KNullUid); - SendKey(EKeyEnter); - RecordTestResultL(); - } - break; - //---------------------------------------------------------------------------------------------- /** @@ -1043,13 +849,11 @@ INFO_PRINTF3(_L("gTextNormalNumEdwin was '%S' (expected '%S')"), &gTextNormalNumEdwin, &KExpectedTextNormalNumEdwin); INFO_PRINTF3(_L("gTextKatakanaEdwin was '%S' (expected '%S')"), &gTextKatakanaEdwin, &KExpectedTextKatakanaEdwin); INFO_PRINTF3(_L("gTextPhoneticalEdwin was '%S' (expected '%S')"), &gTextPhoneticalEdwin, &KExpectedTextPhoneticalEdwin); - INFO_PRINTF3(_L("gTextCJKEdwin was '%S' (expected '%S')"), &gTextCJKEdwin, &KExpectedTextCJKEdwin); TEST(gTextNormalEdwin == KExpectedTextNormalEdwin); TEST(gTextNormalNumEdwin == KExpectedTextNormalNumEdwin); TEST(gTextKatakanaEdwin == KExpectedTextKatakanaEdwin); TEST(gTextPhoneticalEdwin == KExpectedTextPhoneticalEdwin); - TEST(gTextCJKEdwin == KExpectedTextCJKEdwin); RecordTestResultL(); CloseTMSGraphicsStep(); } diff -r a47de9135b21 -r 6ceef9a83b1a fep/frontendprocessor/test/src/TFEP1TESTTARGET.rss --- a/fep/frontendprocessor/test/src/TFEP1TESTTARGET.rss Fri Mar 12 15:44:07 2010 +0200 +++ b/fep/frontendprocessor/test/src/TFEP1TESTTARGET.rss Mon Mar 15 12:42:02 2010 +0200 @@ -63,16 +63,7 @@ prompt="Phonetic-alphabet edwin"; id=EControlIdPhoneticAlphabetEdwin; control=EDWIN {width=15;}; - }, - DLG_LINE - { - type=EEikCtEdwin; - prompt="CJK edwin"; - id=EControlIdCJKEdwin; - control=EDWIN - {width=15;}; } - }; } diff -r a47de9135b21 -r 6ceef9a83b1a inputmethods_plat/aknfep_settings_api/inc/AknFepInternalCRKeys.h --- a/inputmethods_plat/aknfep_settings_api/inc/AknFepInternalCRKeys.h Fri Mar 12 15:44:07 2010 +0200 +++ b/inputmethods_plat/aknfep_settings_api/inc/AknFepInternalCRKeys.h Mon Mar 15 12:42:02 2010 +0200 @@ -344,6 +344,23 @@ * 0 is for portrait and 1 is for landscape. */ const TUint32 KAknFepDefaultArabicFingerHwrOrientation = 0x00000023; + +/** + * This key is required for the Korean Combine Word flag. Korean + * peninputplugin uses it to store the user selection for Korean Combine + * Words settings. + * Korean Combining Version is 0x00000001, + * Korean ConsonantSsangKiyeok combining stage is 0x00000002, + * Korean ConsonantSsangTikeut combining stage is 0x00000004, + * Korean ConsonantSsangPieup combining stage is 0x00000008, + * Korean ConsonantSsangSios combining stage is 0x00000010, + * Korean ConsonantSsangCieuc combining stage is 0x00000020, + * Korean ConsonantYaPlusI combining stage is 0x00000040, + * Korean ConsonantYuPlusI combining stage is 0x00000080, + * Korean Combining Word Setting On is 0x00000100 + * + */ +const TUint32 KAknFepKoreanCombineWordFlag = 0x00000024; #endif // End of file diff -r a47de9135b21 -r 6ceef9a83b1a inputmethods_plat/pen_input_server_api/inc/peninputcmd.h --- a/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h Fri Mar 12 15:44:07 2010 +0200 +++ b/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h Mon Mar 15 12:42:02 2010 +0200 @@ -139,7 +139,8 @@ ESignalShowCandidate, ESignalSelectCandidate, ESignalAcceptTooltip, - ESignalCommitITIInlineText, + ESignalCommitITIInlineText, + EPeninputOpSetDiscreeptPop, ESignalUserEventBase = 2000 }; diff -r a47de9135b21 -r 6ceef9a83b1a textinput/group/bld.inf --- a/textinput/group/bld.inf Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/group/bld.inf Mon Mar 15 12:42:02 2010 +0200 @@ -34,8 +34,6 @@ #else #include "../akninputlanguage/group/bld.inf" #endif -#include "../ptihangulcore/group/bld.inf" -#include "../ptikoreanqwertycore/group/bld.inf" #include "../peninputarc/group/bld.inf" #include "../peninputcommonctrls/group/bld.inf" #include "../peninputhwrboxcn/group/bld.inf" diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/inc/pensrvcliinc/peninputanim.h --- a/textinput/peninputarc/inc/pensrvcliinc/peninputanim.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanim.h Mon Mar 15 12:42:02 2010 +0200 @@ -29,7 +29,6 @@ #include "peninputmsgqueue.h" -class CSubscriber; #include "peninputcmdparamext.h" /** * Animation DLL creation class. @@ -294,11 +293,10 @@ #endif // RD_TACTILE_FEEDBACK void SetDSAState(TBool aFlag); + //For discreetPop - static TInt DiscreetPopChangeNotification(TAny* aObj); - void HandleDiscreetPopNotification(); + void SetDiscreeptPop(TRect aArea); - void Refresh(); private: // Data /** * Current state @@ -400,13 +398,21 @@ * Flag to detect primary touch device at startup */ TBool iPrimaryTouchPtDetected; - CSubscriber* iDiscreetPopSubscriber; - RProperty iDiscreetPopProperty; + + /** + * Flag there is a discreept popped + */ TBool iDiscreetPoped; + + /** + * Flag need capture for key event when discreept pop + */ TBool iDiscreetPopedCapture; + + /** + * the discreept pop area + */ TRect iDiscreetPopArea; - RAknUiServer iAknUiSrv; - TBool iDirty; /** * Fix bug HMNN-82CDU5 @@ -417,23 +423,5 @@ -class CSubscriber : public CActive - { -public: - CSubscriber(TCallBack aCallBack, RProperty& aProperty); - ~CSubscriber(); - -public: // New functions - void SubscribeL(); - void StopSubscribe(); - -private: // from CActive - void RunL(); - void DoCancel(); - -private: - TCallBack iCallBack; - RProperty& iProperty; - }; #endif //C_CPENINPUTANIMDLL_H // End of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h --- a/textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanimclientobj.h Mon Mar 15 12:42:02 2010 +0200 @@ -223,6 +223,14 @@ void OnExiting(); void GetDSAState(TBool& aState); + + /** + * + * @since S60 v4.0 + * @aArea The rect of the discreet pop + * @return ETrue if command added successfully. + */ + TBool SetDiscreetPopArea(const TRect& aArea); private: /** * Default constructor. diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/inc/pensrvcliinc/peninputanimcommand.h --- a/textinput/peninputarc/inc/pensrvcliinc/peninputanimcommand.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputanimcommand.h Mon Mar 15 12:42:02 2010 +0200 @@ -473,6 +473,27 @@ TBool iSpriteFlag; }; +//class TAnimSetDiscreeptPopCmd +/** + * Class for handling pop discreept window area command + * + * + * @since S60 v4.0 + */ +class TAnimSetDiscreeptPopCmd : public TAnimCmd + { +public: + TAnimSetDiscreeptPopCmd(RPeninputAnim& aAnim,TRect aArea); + /** + * Execute the command + * + * @since S60 v4.0 + * @return ETrue if command has been executed successfully. + */ + virtual TBool ExecuteAnimCommand() const; +private: + TRect iArea; + }; #include "peninputanimcommand.inl" #endif //C_CPENINPUTANIM_CMD_H diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/inc/pensrvcliinc/peninputserver.h --- a/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h Mon Mar 15 12:42:02 2010 +0200 @@ -31,6 +31,8 @@ #include "peninputcmdparamext.h" +#include + // the maximum count of TUpdateArea that area pool can hold const TInt KMaxRectNumInBuf = 100; class CCoeControl; @@ -75,6 +77,7 @@ class CEventQueue; class CPtiEngine; class CAknLayoutChangeWatcher; +class CSubscriber; // DESCRIPTION /** * Class MRawEventHandler @@ -382,6 +385,9 @@ TInt HandleAppInfoChange(CPeninputServerSession* aSession, const TDesC& aAppInfo, TPeninputAppInfo aType) const; + static TInt DiscreetPopChangeNotification(TAny* aObj); + + void HandleDiscreetPopNotification(); protected: // New functions /** @@ -966,6 +972,12 @@ CRepository* iSensorRepository; TInt iInputLanguage; + + // Add for notify discreept pop + CSubscriber* iDiscreetPopSubscriber; + RProperty iDiscreetPopProperty; + RAknUiServer iAknUiSrv; + TRect iDiscreetPopArea; }; /** @@ -1148,4 +1160,28 @@ #endif //C_CPENINPUTSERVER_H +/** + * CSubscriber + * Subscribe discreept state. + * + * @since S60 v4.0 + */ +class CSubscriber : public CActive + { +public: + CSubscriber(TCallBack aCallBack, RProperty& aProperty); + ~CSubscriber(); + +public: // New functions + void SubscribeL(); + void StopSubscribe(); + +private: // from CActive + void RunL(); + void DoCancel(); + +private: + TCallBack iCallBack; + RProperty& iProperty; + }; // End of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/inc/pensrvcliinc/rpeninputanim.h --- a/textinput/peninputarc/inc/pensrvcliinc/rpeninputanim.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/inc/pensrvcliinc/rpeninputanim.h Mon Mar 15 12:42:02 2010 +0200 @@ -184,6 +184,8 @@ void EnableSprite(TBool aFlag); void GetDSAState(TBool& aState); + + void SetDiscreeptPop(const TRect& aArea); private: /** diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputanim/peninputanim.cpp --- a/textinput/peninputarc/src/peninputanim/peninputanim.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputanim/peninputanim.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -131,13 +131,6 @@ // Modify for bug ETMA-7X2C5Y begin delete iPointerEventSuppressor; // Modify for bug ETMA-7X2C5Y end - if (iDiscreetPopSubscriber) - { - iDiscreetPopSubscriber->StopSubscribe(); - } - iDiscreetPopProperty.Close(); - delete iDiscreetPopSubscriber; - iAknUiSrv.Close(); } // --------------------------------------------------------------------------- @@ -155,19 +148,6 @@ // Modify for bug ETMA-7X2C5Y begin iPointerEventSuppressor = CPenPointerEventSuppressor::NewL(); // Modify for bug ETMA-7X2C5Y end - User::LeaveIfError(iDiscreetPopProperty.Attach(KPSUidAvkonDomain, - KAknGlobalDiscreetPopupNumChanged)); - iDiscreetPopSubscriber = new (ELeave) CSubscriber( - TCallBack( DiscreetPopChangeNotification, this), - iDiscreetPopProperty); - iDiscreetPopSubscriber->SubscribeL(); - - User::LeaveIfError(iAknUiSrv.Connect()); - iDiscreetPopArea = iAknUiSrv.GetInUseGlobalDiscreetPopupRect(); - if(iDiscreetPopArea.Size().iWidth > 0) - { - iDiscreetPoped = ETrue; - } } @@ -704,6 +684,14 @@ } break; + case EPeninputOpSetDiscreeptPop: + { + TRect area; + TPckg msgData(area); + msg->ReadL(KMsgSlot1,msgData); + SetDiscreeptPop(area); + } + break; default: // unsupported opcode, panic the client { @@ -791,10 +779,6 @@ return EFalse; } - if(iDirty ) - { - Refresh(); - } if(iDiscreetPoped && iDiscreetPopArea.Contains(aRawEvent.Pos())) { @@ -1141,22 +1125,10 @@ return EFalse; } #endif // RD_TACTILE_FEEDBACK -TInt CPeninputAnim::DiscreetPopChangeNotification(TAny* aObj) - { - if (aObj) - { - static_cast(aObj)->HandleDiscreetPopNotification(); - return KErrNone; - } - else - { - return KErrArgument; - } - } -void CPeninputAnim::Refresh() - { - iDiscreetPopArea = iAknUiSrv.GetInUseGlobalDiscreetPopupRect(); +void CPeninputAnim::SetDiscreeptPop(TRect aArea) + { + iDiscreetPopArea = aArea; if(iDiscreetPopArea.Size().iWidth > 0) { iDiscreetPoped = ETrue; @@ -1166,51 +1138,5 @@ iDiscreetPoped = EFalse; iDiscreetPopedCapture = EFalse; } - iDirty = EFalse; - } - -void CPeninputAnim::HandleDiscreetPopNotification() - { - iDirty = ETrue; - } - -CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty) - : - CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty) - { - CActiveScheduler::Add(this); - } - -CSubscriber::~CSubscriber() - { - Cancel(); - } - -void CSubscriber::SubscribeL() - { - if (!IsActive()) - { - iProperty.Subscribe(iStatus); - SetActive(); - } - } - -void CSubscriber::StopSubscribe() - { - Cancel(); - } - -void CSubscriber::RunL() - { - if (iStatus.Int() == KErrNone) - { - iCallBack.CallBack(); - SubscribeL(); - } - } - -void CSubscriber::DoCancel() - { - iProperty.Cancel(); - } + } // End of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputanim/peninputanim.mmp --- a/textinput/peninputarc/src/peninputanim/peninputanim.mmp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputanim/peninputanim.mmp Mon Mar 15 12:42:02 2010 +0200 @@ -44,6 +44,3 @@ LIBRARY FeatMgr.lib // feature manager LIBRARY tactileclickplugin.lib #endif // RD_TACTILE_FEEDBACK -LIBRARY akncapserverclient.lib -LIBRARY apparc.lib -LIBRARY EIKCORE.LIB diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputclient/penclientimpl.cpp --- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -29,6 +29,9 @@ #include #include #include "peninputclient.h" +#ifndef FIX_FOR_NGA +#define FIX_FOR_NGA +#endif const TUint KDefaultMessageSlots = 4; const TInt KMaxSupportLanguages = 100; @@ -374,7 +377,16 @@ else //undim the window { if(iBackgroundCtrl) - iBackgroundCtrl->Hide(); +#ifdef FIX_FOR_NGA + { + delete iBackgroundCtrl; + iBackgroundCtrl = 0; + } +#else + { + iBackgroundCtrl->Hide(); + } +#endif } } // --------------------------------------------------------------------------- @@ -1498,11 +1510,14 @@ Window().SetOrdinalPosition(0,aPriority); - Window().SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly); + // For fix ELLI-82JD3K for tb92. + // The code runs well on 5.0 platform, but on tb92, + // it will make the backgourd screen black purely. + //Window().SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly); } else { - Window().SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly); + Window().SetFaded(ETrue,RWindowTreeNode::EFadeWindowOnly); } Window().Invalidate(); diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp --- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -287,13 +287,11 @@ switch( aDisPostion ) { case EDispBottomRight: - rtPopup.SetRect( TPoint( offsetRect.iTl.iX, offsetRect.iBr.iY ), szPopup ); + rtPopup.SetRect( TPoint( offsetRect.iTl.iX, offsetRect.iBr.iY ), szPopup ); if( rtPopup.iBr.iY > ptScreenSize.iPixelSize.iHeight ) { - //we need move x also - rtPopup.Move( aOffsetRect.Width(), - ptScreenSize.iPixelSize.iHeight - rtPopup.iBr.iY ); - } + rtPopup.Move( 0, ptScreenSize.iPixelSize.iHeight - rtPopup.iBr.iY ); + } if(rtPopup.iBr.iX > ptScreenSize.iPixelSize.iWidth ) { rtPopup.Move ( ptScreenSize.iPixelSize.iWidth - rtPopup.iBr.iX, 0 ); @@ -304,9 +302,8 @@ szPopup ); if( rtPopup.iBr.iY > ptScreenSize.iPixelSize.iHeight ) { - //we need move x also - rtPopup.Move( aOffsetRect.Width(), - ptScreenSize.iPixelSize.iHeight - rtPopup.iBr.iY ); + //we need move the pop wnd up to ensure it not to be out of screen + rtPopup.Move( 0, ptScreenSize.iPixelSize.iHeight - rtPopup.iBr.iY ); } if( rtPopup.iTl.iX < 0 ) { @@ -315,11 +312,11 @@ break; case EDispTopRight: rtPopup.SetRect( TPoint( offsetRect.iTl.iX, offsetRect.iTl.iY - szPopup.iHeight ), - szPopup ); + szPopup ); if( rtPopup.iTl.iY < 0 ) { - rtPopup.Move ( aOffsetRect.Width(), -rtPopup.iTl.iY ); - } + rtPopup.Move ( 0, -rtPopup.iTl.iY ); + } if(rtPopup.iBr.iX > ptScreenSize.iPixelSize.iWidth ) { rtPopup.Move ( ptScreenSize.iPixelSize.iWidth - rtPopup.iBr.iX, 0 ); @@ -332,7 +329,7 @@ if( rtPopup.iTl.iY < 0 ) { - rtPopup.Move ( -aOffsetRect.Width(), -rtPopup.iTl.iY ); + rtPopup.Move ( 0, -rtPopup.iTl.iY ); } if( rtPopup.iTl.iX < 0 ) diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputserverapp/peninputanimclientobj.cpp --- a/textinput/peninputarc/src/peninputserverapp/peninputanimclientobj.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputserverapp/peninputanimclientobj.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -494,4 +494,13 @@ { iAnim.GetDSAState(aState); } + +TBool CPeninputAnimObj::SetDiscreetPopArea(const TRect& aArea) + { + TAnimSetDiscreeptPopCmd* cmd = new TAnimSetDiscreeptPopCmd(iAnim,aArea); + if(!cmd) + return EFalse; + AddAnimCommand(cmd); + return ETrue; + } //end of file diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputserverapp/peninputanimcommand.cpp --- a/textinput/peninputarc/src/peninputserverapp/peninputanimcommand.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputserverapp/peninputanimcommand.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -352,4 +352,13 @@ iAnim.EnableSprite(iSpriteFlag); return ETrue; } - +TAnimSetDiscreeptPopCmd::TAnimSetDiscreeptPopCmd(RPeninputAnim& aAnim,TRect aArea) + :TAnimCmd(aAnim),iArea(aArea) + { + } + +TBool TAnimSetDiscreeptPopCmd :: ExecuteAnimCommand() const + { + iAnim.SetDiscreeptPop(iArea); + return ETrue; + } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputserverapp/peninputserver.cpp --- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -47,6 +47,7 @@ #include #include "peninputcrpclient.h" +#include //#define __WND_TEST_ // CONSTANTS @@ -264,6 +265,19 @@ iCurScrMode = CCoeEnv::Static()->ScreenDevice()->CurrentScreenMode(); iCrpService = CPenInputCrpServiceClient::NewL(); iSensorRepository = CRepository::NewL(KCRUidSensorSettings); + User::LeaveIfError(iDiscreetPopProperty.Attach(KPSUidAvkonDomain, + KAknGlobalDiscreetPopupNumChanged)); + iDiscreetPopSubscriber = new (ELeave) CSubscriber( + TCallBack( DiscreetPopChangeNotification, this), + iDiscreetPopProperty); + iDiscreetPopSubscriber->SubscribeL(); + // Get the pop area + User::LeaveIfError(iAknUiSrv.Connect()); + iDiscreetPopArea = iAknUiSrv.GetInUseGlobalDiscreetPopupRect(); + if(iDiscreetPopArea.Size().iWidth > 0) + { + HandleDiscreetPopNotification(); + } } void CPeninputServer::CleanAll() @@ -332,6 +346,13 @@ #ifdef __LOG_WNDGROU__ iLogFile.Close(); #endif + if (iDiscreetPopSubscriber) + { + iDiscreetPopSubscriber->StopSubscribe(); + } + iDiscreetPopProperty.Close(); + delete iDiscreetPopSubscriber; + iAknUiSrv.Close(); delete iAnimObj; iAnimObj = NULL; @@ -2303,7 +2324,9 @@ */ if(IsGlobalNotesApp(focusApp)) { - iInGlobalNotesState = ETrue; + iInGlobalNotesState = ETrue; + // add this to enable global dim + DeactivatePenUiLayout(EFalse); break; } @@ -2716,7 +2739,34 @@ } return supportMode; } - + +// --------------------------------------------------------------------------- +// CPeninputServer::DiscreetPopChangeNotification +// handle notification of discreept pop changing +// --------------------------------------------------------------------------- +// +TInt CPeninputServer::DiscreetPopChangeNotification(TAny* aObj) + { + if (aObj) + { + static_cast(aObj)->HandleDiscreetPopNotification(); + return KErrNone; + } + else + { + return KErrArgument; + } + } +// --------------------------------------------------------------------------- +// CPeninputServer::HandleDiscreetPopNotification +// handle notification of discreept pop changing +// --------------------------------------------------------------------------- +// +void CPeninputServer::HandleDiscreetPopNotification() + { + iDiscreetPopArea = iAknUiSrv.GetInUseGlobalDiscreetPopupRect(); + iAnimObj->SetDiscreetPopArea(iDiscreetPopArea); + } // ======== class CEventQueue======== // // --------------------------------------------------------------------------- @@ -2926,5 +2976,47 @@ { User::Panic( KPeninputServerName, aPanic ); } + +// ======== class CSubscriber======== +// +CSubscriber::CSubscriber(TCallBack aCallBack, RProperty& aProperty) + : + CActive(EPriorityNormal), iCallBack(aCallBack), iProperty(aProperty) + { + CActiveScheduler::Add(this); + } + +CSubscriber::~CSubscriber() + { + Cancel(); + } + +void CSubscriber::SubscribeL() + { + if (!IsActive()) + { + iProperty.Subscribe(iStatus); + SetActive(); + } + } + +void CSubscriber::StopSubscribe() + { + Cancel(); + } + +void CSubscriber::RunL() + { + if (iStatus.Int() == KErrNone) + { + iCallBack.CallBack(); + SubscribeL(); + } + } + +void CSubscriber::DoCancel() + { + iProperty.Cancel(); + } // End of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputarc/src/peninputserverapp/rpeninputanim.cpp --- a/textinput/peninputarc/src/peninputserverapp/rpeninputanim.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputarc/src/peninputserverapp/rpeninputanim.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -324,5 +324,16 @@ CommandReply(EPeninputOpRequestDSAState,KNullDesC8,args); //Command(EPeninputOpSimulateEvent,msgData); } - + +// --------------------------------------------------------------------------- +// RPeniputAnim::SetDiscreeptPop +// --------------------------------------------------------------------------- +// +void RPeninputAnim::SetDiscreeptPop(const TRect& aArea) + { + TIpcArgs args (TIpcArgs::ENothing); + TPckg msgData(aArea); + args.Set(KMsgSlot1,&msgData); + CommandReply(EPeninputOpSetDiscreeptPop,KNullDesC8,args); + } // End of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmultirowwithouticonwithbubble.cpp --- a/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmultirowwithouticonwithbubble.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputcommonctrls/src/peninputdropdownlist/peninputlistmultirowwithouticonwithbubble.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include "peninputlistmultirowwithouticonwithbubble.h" #include "peninputlayout.h" diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwr/data/peninputfingerhwrcn.rss --- a/textinput/peninputfingerhwr/data/peninputfingerhwrcn.rss Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwr/data/peninputfingerhwrcn.rss Mon Mar 15 12:42:02 2010 +0200 @@ -180,7 +180,7 @@ { colormajorskinid = EAknsMajorSkin; textcolorgrp = EAknsMinorQsnTextColors; - textcoloridx = 50; + textcoloridx = 59; bordercolorgrp = EAknsMinorQsnOtherColors; bordercoloridx = 8; } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwr/src/peninputfingerhwrrangeselector.cpp --- a/textinput/peninputfingerhwr/src/peninputfingerhwrrangeselector.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwr/src/peninputfingerhwrrangeselector.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -230,7 +230,7 @@ // CPeninputFingerHwrRangeSelector::CPeninputFingerHwrRangeSelector( CFepUiLayout* aFepUiLayout, TInt aControlId ) - : CControlGroup( aFepUiLayout, aControlId ) + : CControlGroup( aFepUiLayout, aControlId, EFalse ) { } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp --- a/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -2250,7 +2250,7 @@ } iContextField->SetBorderColor( icfframecolor ); - iContextField->SetBgImgSkinId( KAknsIIDQsnFrCall2Rect ); + iContextField->SetBgImgSkinId( KAknsIIDQgnGrafFepInputBg ); CleanupStack::PopAndDestroy( 1 ); // icfreader } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss --- a/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/data/peninputfingerhwrarwnd.rss Mon Mar 15 12:42:02 2010 +0200 @@ -180,7 +180,7 @@ { colormajorskinid = EAknsMajorSkin; textcolorgrp = EAknsMinorQsnTextColors; - textcoloridx = 50; + textcoloridx = 59; bordercolorgrp = EAknsMinorQsnOtherColors; bordercoloridx = 8; } @@ -1195,7 +1195,7 @@ leftstr = <0x005D>; scancode = 0x005D; }, - PENINPUT_FINGERHWR_KEYPAD_KEY //half \ + PENINPUT_FINGERHWR_KEYPAD_KEY //half revert / { leftstr = <0x005C>; scancode = 0x005C; diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h --- a/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarlafmanager.h Mon Mar 15 12:42:02 2010 +0200 @@ -312,7 +312,8 @@ * @return font of candidate list. */ const CFont* CandidateFont(); - + TRect GetIndicatorRect(); + TSize GetArrowPaddingSize(); public: //sct paging buttons /** * get text layout of sct paging button. @@ -406,6 +407,8 @@ TAknTextLineLayout iPreviewWndText; TSize iSymButtonSize; TRect iRectOfSymbolTable; + TRect iIndicatorRect; + TSize iArrowPaddingSize; }; #endif // C_PENINPUTFINGERHWRARLAFMANAGER_H diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/src/peninputfingerhwrarindicator.cpp --- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarindicator.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarindicator.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -105,8 +105,15 @@ } CFbsBitmap* bmp; - CFbsBitmap* bmpMask; - AknsUtils::CreateColorIconL( AknsUtils::SkinInstance(), + CFbsBitmap* bmpMask; + AknsUtils::CreateIconL(AknsUtils::SkinInstance(), + id, + bmp, + bmpMask, + bmpFileName, + bmpId, + bmpMskId); + /*AknsUtils::CreateColorIconL( AknsUtils::SkinInstance(), id, KAknsIIDQsnIconColors, colorGroup, @@ -115,7 +122,7 @@ bmpFileName, bmpId, bmpMskId, - TRgb() ); + TRgb() );*/ SetBitmapL(bmp); SetMaskBitmapL(bmpMask); diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp --- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlafmanager.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -381,6 +381,7 @@ AknLayoutScalable_Avkon::popup_fep_char_preview_window_t1(0).LayoutLine(); previewWndText.LayoutText(previewWndRect.Rect(), iPreviewWndText); iBubbleFont = previewWndText.Font(); + iArrowPaddingSize = TSize(10,10); //========================================================================== // going to be removed if the LAF data is ready // @@ -429,7 +430,7 @@ iRectBtnArrowRight.Move(TPoint(buttonWidth,0)); iSizeBtnPadding = TSize(6,6); - + iArrowPaddingSize = TSize(8,8); iRectSpase = iRectBtnClose; iRectSpase.Move(TPoint(0,buttonHight)); @@ -450,6 +451,10 @@ // iwriting box iRectWritingBox = TRect(TPoint(KMarginLayout,2*buttonHight+KMarginLayout),iLayoutRect.iBr-TPoint(KMarginLayout,KMarginLayout)); + iIndicatorRect.iTl = iRectWritingBox.iTl; + iIndicatorRect.iTl = iIndicatorRect.iTl + TPoint(20,20); + iIndicatorRect.SetSize(TSize(80,80)); + // construct symbol table iRectOfSymbolTable = iRectWritingBox; iRectOfSymbolTable.Move(TPoint(buttonWidth,-buttonHight)); @@ -513,6 +518,7 @@ // button padding iSizeBtnPadding = TSize(6,6); + iArrowPaddingSize = TSize(12,12); // candate position iCandidateLTPos = iRectBtnClose.iTl + TPoint(0,buttonHight); @@ -522,6 +528,10 @@ // HWR Box Rect iRectWritingBox = TRect(TPoint(iRectBtnArrowUp.iTl.iX,iRectBtnArrowUp.iBr.iY),iLayoutRect.iBr-TPoint(KMarginLayout,KMarginLayout)); + iIndicatorRect.iTl = iRectWritingBox.iTl; + iIndicatorRect.iTl = iIndicatorRect.iTl + TPoint(20,20); + iIndicatorRect.SetSize(TSize(80,80)); + // construct symbol table iRectOfSymbolTable = iRectWritingBox; iRectOfSymbolTable.Move(TPoint(0,-buttonHight)); @@ -926,7 +936,18 @@ } TSize CPeninputFingerHwrArLafManager::SymbolGroupButtonSize() - { - return iSymButtonSize; - } + { + return iSymButtonSize; + } + +TRect CPeninputFingerHwrArLafManager::GetIndicatorRect() + { + return iIndicatorRect; + } + +TSize CPeninputFingerHwrArLafManager::GetArrowPaddingSize() + { + return iArrowPaddingSize; + } + // End Of File diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp --- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarlayout.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -683,6 +683,7 @@ case EHwrCtrlIdLanguageOption: { SignalOwner( ESignalLaunchOptionMenu ); + OnDeActivate(); } break; case EHwrCtrlIdSymbolButton: @@ -1050,6 +1051,7 @@ // void CPeninputFingerHwrArLayout::ChangeCurStateToStandby() { + iHwrWnd->CancelWriting(); iStateMgr->SetState( CPeninputFingerHwrArStateManagerBase::EStateStandBy ); } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp --- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarsymboltable.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -163,11 +163,12 @@ CFepUiBaseCtrl* ctrl = CControlGroup::HandlePointerMoveEventL( aPoint ); if(ctrl) { + HandlePointerEnter(aPoint); ctrl->UpdateArea(ctrl->Rect(),EFalse); } else { - CControlGroup::HandlePointerLeave(aPoint); + HandlePointerLeave(aPoint); UpdateArea(iRect,EFalse); } @@ -208,10 +209,12 @@ // relayout the button group TRect spaceBtnRect(iRect.iTl,iRect.iTl+TPoint(aButtonSize.iWidth,aButtonSize.iHeight)); - MoveIconButton(iSpaceBtn,spaceBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding); - TRect innerRect = spaceBtnRect; - innerRect.Shrink(4*KSymbolButtonInnerPadding,KSymbolButtonInnerPadding); + TInt pdx = (spaceBtnRect.Size().iWidth/3)/2; + MoveIconButton(iSpaceBtn,spaceBtnRect,pdx,KSymbolButtonInnerPadding); + + TRect pieceInnerRect = spaceBtnRect; + pieceInnerRect.Shrink(pdx*2,KSymbolButtonInnerPadding); // that's a not good algrithm in funciton AknPenInputDrawUtils::Draw3PiecesColorIcon for drawing 3Pieces icons // as when the outter rect's height was not equal to the inter rect's height, the target rects the left icons and right icons @@ -221,11 +224,11 @@ TDraw3PiecesFrame(KAknsIIDQgnIndiInputSpaceL, KAknsIIDQgnIndiInputSpaceMiddle, KAknsIIDQgnIndiInputSpaceR, - innerRect)); + pieceInnerRect)); TRect enterBtnRect = spaceBtnRect; enterBtnRect.Move(TPoint(aButtonSize.iWidth,0)); - MoveIconButton(iEnterBtn,enterBtnRect,KSymbolButtonInnerPadding,KSymbolButtonInnerPadding); + MoveIconButton(iEnterBtn,enterBtnRect,pdx,KSymbolButtonInnerPadding); TRect pageBtnRect = enterBtnRect; pageBtnRect.Move(TPoint(aButtonSize.iWidth,0)); @@ -278,6 +281,9 @@ AddControlL( iMutiPageKeypad ); iMutiPageKeypad->AddEventObserver( UiLayout() ); + iMutiPageKeypad->SetKeySkinId( EKeyBmpNormal, KAknsIIDQsnFrKeypadButtonNormal ); + iMutiPageKeypad->SetKeySkinId( EKeyBmpHighlight, KAknsIIDQsnFrKeypadButtonPressed ); + iMutiPageKeypad->SetKeySkinId( EKeyBmpDim, KAknsIIDQsnFrKeypadButtonInactive ); iMutiPageKeypad->SetResourceId( KInvalidResId ); iMutiPageKeypad->SetKeyTextColorGroup( EAknsCIQsnTextColorsCG68 ); diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp --- a/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputfingerhwrar/src/peninputfingerhwrarwnd.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -839,14 +839,8 @@ iWritingBox->SetRect( rect ); //resize indicator - TRect indicatorRect; - indicatorRect.iTl = rect.iTl; - indicatorRect.Move(TPoint(10,10)); - - indicatorRect.SetSize(TSize(50,30)); - iHandwritingIndicator->ConstructFromResourceL(R_AKN_FEP_HWR_INDICATOR_ICON); - iHandwritingIndicator->SizeChanged(indicatorRect,ETrue); + iHandwritingIndicator->SizeChanged(iLafManager->GetIndicatorRect(),ETrue); //Move buttons TSize siBtnPadding = iLafManager->ButtonInnerPadding(); @@ -861,22 +855,25 @@ rect = iLafManager->CtrlRect( iBackspaceBtn->ControlId() ); MoveIconButton( iBackspaceBtn, rect, pdx, pdy, ETrue ); - - rect = iLafManager->CtrlRect( iArrowUpBtn->ControlId() ); - MoveIconButton( iArrowUpBtn, rect, pdx, pdy, ETrue ); - - rect = iLafManager->CtrlRect( iArrowLeftBtn->ControlId() ); - MoveIconButton( iArrowLeftBtn, rect, pdx, pdy, ETrue ); - - rect = iLafManager->CtrlRect( iArrowRightBtn->ControlId() ); - MoveIconButton( iArrowRightBtn, rect, pdx, pdy, ETrue ); - - rect = iLafManager->CtrlRect( iArrowDownBtn->ControlId() ); - MoveIconButton( iArrowDownBtn, rect, pdx, pdy, ETrue ); rect = iLafManager->CtrlRect( iOptionBtn->ControlId() ); MoveIconButton( iOptionBtn, rect, pdx, pdy, ETrue ); + pdx = iLafManager->GetArrowPaddingSize().iWidth; + pdy = iLafManager->GetArrowPaddingSize().iHeight; + + rect = iLafManager->CtrlRect( iArrowUpBtn->ControlId() ); + MoveIconButton( iArrowUpBtn, rect, pdx, pdy, ETrue ); + + rect = iLafManager->CtrlRect( iArrowLeftBtn->ControlId() ); + MoveIconButton( iArrowLeftBtn, rect, pdx, pdy, ETrue ); + + rect = iLafManager->CtrlRect( iArrowRightBtn->ControlId() ); + MoveIconButton( iArrowRightBtn, rect, pdx, pdy, ETrue ); + + rect = iLafManager->CtrlRect( iArrowDownBtn->ControlId() ); + MoveIconButton( iArrowDownBtn, rect, pdx, pdy, ETrue ); + // load vkb key image TSize keysize = iLafManager->VirtualSctpadCellSize().Size(); iSymbolTable->LoadVkbKeyImageL(R_FINGER_HWR_SCTPAD_IMAGE, keysize ); @@ -956,7 +953,9 @@ // avoid overlap refresh problem after opening symbil table // so set this control to be not ready iContextField->SetReady(EFalse); + iSymbolTable->OpenSymbolTable(); + iSymbolTable->BringToTop(); } @@ -1164,7 +1163,7 @@ } iContextField->SetBorderColor( icfframecolor ); - iContextField->SetBgImgSkinId( KAknsIIDQsnFrCall2Rect ); + iContextField->SetBgImgSkinId( KAknsIIDQgnGrafFepInputBg ); CleanupStack::PopAndDestroy( 1 ); // icfreader } @@ -1340,6 +1339,7 @@ if(iSymbolTable->IsPopup()) { iSymbolTable->CloseSymbolTable(); + iSymbolTable->BringToBack(); SwitchToStandbyView(); } } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/inc/peninputgenericitutwindow.h --- a/textinput/peninputgenericitut/inc/peninputgenericitutwindow.h Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/inc/peninputgenericitutwindow.h Mon Mar 15 12:42:02 2010 +0200 @@ -134,6 +134,7 @@ const TInt aImgID2, const TInt aMaskID2 ); void SetIndiWithTextFlag( TBool aFlag ); + void MsgBubbleForChinese(); private: CGenericItutWindow(CGenericItutWindowManager* aWindowMgr, CGenericItutUiLayout* aLayoutOwner, diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp --- a/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -371,11 +371,14 @@ void CGenericItutUiLayout::SetInputModeL(TInt aMode) { - // fix EJML-7HM6GM, e.g. both EStrokeFind and EStroke will be stored as EStroke - if (aMode != iDataMgr->InputMode() || - aMode == EStroke || aMode == EStrokeFind || - aMode == EZhuyin || aMode == EZhuyinFind || - ( iDataMgr->IsNumericOnly() && iDataMgr->IsCharFlagChanged() ) ) + TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse; + //only number mode need judge it + + // fix EJML-7HM6GM, e.g. 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 diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp --- a/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -748,7 +748,7 @@ iICF->SetResourceId(R_FINGER_ICF); ConstructIcfFromResourceL(); - iICF->SetBgImgSkinId(KAknsIIDQsnFrCall2Rect); + iICF->SetBgImgSkinId(KAknsIIDQgnGrafFepInputBg); //iDataMgr->SetTextAlignment(); AddControlL(iICF); @@ -2063,6 +2063,23 @@ } } +void CGenericItutWindow::MsgBubbleForChinese() + { + if ( iICF ) + { + iBubbleSize = AknLayoutScalable_Apps::popup_char_count_window().LayoutLine(); + iBubbleTextLayout = AknLayoutScalable_Apps::popup_char_count_window_t1(0).LayoutLine(); + + iICF->MsgBubbleCtrl()->SetTextFormat(iBubbleTextLayout); + iICF->MsgBubbleCtrl()->SetBitmapParam(NULL, + NULL, + KAknsIIDQsnFrInputPreviewSideL, + KAknsIIDQsnFrInputPreviewMiddle, + KAknsIIDQsnFrInputPreviewSideR); + iICF->SetMsgBubbleCtrlSize(TSize(iBubbleSize.iW,iBubbleSize.iH)); + iICF->MsgBubbleCtrl()->SetTextL( KEmptyString ); + } + } void CGenericItutWindow::SetIndiWithTextFlag( TBool aFlag ) { iIndiWithText = aFlag; diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputgenericitutwindowmanager.cpp --- a/textinput/peninputgenericitut/src/peninputgenericitutwindowmanager.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputgenericitutwindowmanager.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -464,6 +464,11 @@ iDataMgr->IndicatorData().iIndicatorTextMaskID); } } + else + { + iWindow->Icf()->HideBubble(); + iWindow->MsgBubbleForChinese(); + } iWindow->Icf()->ShowBubble(aInfo,iWindow->Icf()->MsgBubbleCtrl()->Rect()); } else diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputitutchnuistatestandby.cpp --- a/textinput/peninputgenericitut/src/peninputitutchnuistatestandby.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputitutchnuistatestandby.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -52,6 +52,8 @@ void CChnItutUiStateStandby::OnEntryL() { + iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(EFalse); + iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(EFalse); // pinyin switch (iOwner->DataMgr()->InputMode()) { diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputitutwesternuistatenonpredict.cpp --- a/textinput/peninputgenericitut/src/peninputitutwesternuistatenonpredict.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputitutwesternuistatenonpredict.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -30,6 +30,7 @@ #include "peninputgenericitutdatamgr.h" #include "peninputgenericitutlayoutcontext.h" #include "peninputgenericitutwindowmanager.h" +#include CWesternItutUiStateNonPredict* CWesternItutUiStateNonPredict::NewL(CGenericItutUiMgrBase* aOwner) { @@ -111,10 +112,18 @@ } else { - //iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(EFalse); iOwner->LayoutContext()->Control(ECtrlIdOptions)->Hide(EFalse); iOwner->LayoutContext()->Control(ECtrlIdClose)->Hide(EFalse); - //iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(EFalse); + if ( iOwner->LayoutContext()->Control(ECtrlIdSwitch) != NULL ) + { + iOwner->LayoutContext()->Control(ECtrlIdSwitch)->Hide(ETrue); + } + if ( iOwner->LayoutContext()->Control(ECtrlIdIndicator) != NULL ) + { + iOwner->LayoutContext()->Control(ECtrlIdIndicator)->Hide(ETrue); + } + + iIcf->MsgBubbleCtrl()->Hide( EFalse ); iOwner->LayoutContext()->ShowArrowBtn(EBtnArrowLeft | EBtnArrowRight); if(iOwner->LayoutContext()->IsSecretEdtior()) diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/src/peninputitutwesternuistatespelling.cpp --- a/textinput/peninputgenericitut/src/peninputitutwesternuistatespelling.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/src/peninputitutwesternuistatespelling.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -172,7 +172,9 @@ ReCalcLayoutL(); CAknFepCtrlLabel* indilabel = static_cast (iOwner->LayoutContext()->Control(ECtrlIdSpellIndicator)); - if ( indilabel ) + // Modify begin + if ( indilabel && iOwner->DataMgr()->IsChinese()) + // Modify end { indilabel->Hide( EFalse ); } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputgenericitut/srcdata/peninputgeneralitutnew.rss --- a/textinput/peninputgenericitut/srcdata/peninputgeneralitutnew.rss Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputgenericitut/srcdata/peninputgeneralitutnew.rss Mon Mar 15 12:42:02 2010 +0200 @@ -468,7 +468,7 @@ { colormajorskinid = EAknsMajorSkin; textcolorgrp = EAknsMinorQsnTextColors; - textcoloridx = 50; + textcoloridx = 59; bordercolorgrp = EAknsMinorQsnOtherColors; bordercoloridx = 8; } diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputsplititut/src/peninputsplititutwindow.cpp --- a/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Mon Mar 15 12:42:02 2010 +0200 @@ -760,7 +760,7 @@ iICF->SetFocus(ETrue); iICF->SetResourceId( R_SPLIT_ITUT_ICF ); ConstructIcfFromResourceL(); - iICF->SetBgImgSkinId( KAknsIIDQsnFrCall2Rect ); + iICF->SetBgImgSkinId( KAknsIIDQgnGrafFepInputBg); AddControlL( iICF ); diff -r a47de9135b21 -r 6ceef9a83b1a textinput/peninputsplititut/srcdata/peninputsplititutnew.rss --- a/textinput/peninputsplititut/srcdata/peninputsplititutnew.rss Fri Mar 12 15:44:07 2010 +0200 +++ b/textinput/peninputsplititut/srcdata/peninputsplititutnew.rss Mon Mar 15 12:42:02 2010 +0200 @@ -437,7 +437,7 @@ { colormajorskinid = EAknsMajorSkin; textcolorgrp = EAknsMinorQsnTextColors; - textcoloridx = 50; + textcoloridx = 59; bordercolorgrp = EAknsMinorQsnOtherColors; bordercoloridx = 8; }