# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1279209673 -10800 # Node ID b1ea1642412e482dd9a23ea39543a32b11e1c015 # Parent 857bebeecec0b2b3edb9d8320ccd64d04dd958b1 Revision: 201025 Kit: 2010127 diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/help/group/bld.inf --- a/fep/aknfep/help/group/bld.inf Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/help/group/bld.inf Thu Jul 15 19:01:13 2010 +0300 @@ -2,18 +2,16 @@ * 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" +* under the terms of "Eclipse Public License v1.0" * which accompanies this distribution, and is available -* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +* at the URL "http://www.eclipse.org/legal/epl-v10.html". * * Initial Contributors: -* Nokia Corporation - Initial contribution -* +* Nokia Corporation - initial contribution. +* * Contributors: * -* * Description: -* Export help related files. * */ diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/inc/AknFepManager.h --- a/fep/aknfep/inc/AknFepManager.h Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/inc/AknFepManager.h Thu Jul 15 19:01:13 2010 +0300 @@ -902,6 +902,13 @@ TBool IsSpecialNumericEditor(); void TryPopExactWordInICFL(); + + /** + * checks whether the current editor is a Java Secret editor. + * return value: Etrue when it is a Java Secret editor. + * Efalse when it is not. + */ + TBool IsJavaSecretEditor(); void HandleChangeInFocusForSettingFep(); @@ -2609,6 +2616,14 @@ private: void ConvertCharToKey(TChar aIn, TUint16& aKey) const; + + /** + * Update editor state' flag + * @since Symbian^3 + * @param aFlag editor state flag + * @param aAdd adding or removing + */ + void UpdateEditorStateFlags( TInt aFlag, TBool aAdd = ETrue ) const; private: // Data owned by this class diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/inc/AknFepManagerUIInterface.h --- a/fep/aknfep/inc/AknFepManagerUIInterface.h Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/inc/AknFepManagerUIInterface.h Thu Jul 15 19:01:13 2010 +0300 @@ -431,6 +431,13 @@ */ virtual TBool IsSupportsSecretText() const = 0; + /** + * checks whether the current editor is a Java Secret editor. + * return value: Etrue when it is a Java Secret editor. + * Efalse when it is not. + */ + virtual TBool IsJavaSecretEditor() = 0; + /** * Returns current input mode. diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp --- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -324,7 +324,10 @@ // void CPluginFepManagerBase::CloseUI() { - iPenInputServer->ActivateLayout( EFalse ); + if (iPenInputServer->IsVisible()) + { + iPenInputServer->ActivateLayout( EFalse ); + } } // ----------------------------------------------------------------------------- diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp --- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -355,7 +355,10 @@ // void CPluginFepManagerBase::CloseUI() { - iPenInputServer->ActivateLayout( EFalse ); + if (iPenInputServer->IsVisible()) + { + iPenInputServer->ActivateLayout( EFalse ); + } } // ----------------------------------------------------------------------------- diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp --- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -426,7 +426,10 @@ // void CPluginFepManagerBase::CloseUI() { - iPenInputServer->ActivateLayout( EFalse ); + if (iPenInputServer->IsVisible()) + { + iPenInputServer->ActivateLayout( EFalse ); + } } // ----------------------------------------------------------------------------- diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/src/AknFepManager.cpp --- a/fep/aknfep/src/AknFepManager.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/src/AknFepManager.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -251,9 +251,6 @@ LOCAL_C TInt RemapVietnameseAccentedCharacter(TUint16 aChr); -static _LIT_SECURITY_POLICY_PASS( KAllowAllPolicy ); -static _LIT_SECURITY_POLICY_C1( KPowerMgmtPolicy, ECapabilityPowerMgmt ); - // // Class TTextDirectionalInfo // @@ -448,12 +445,9 @@ iLastFocusedEditor = NULL; iFepAwareDialogParentEditor = NULL; - RProperty::Define( - KPSUidAknFep, - KAknFepSettingDialogState, - RProperty::EInt, - KAllowAllPolicy, // None - KPowerMgmtPolicy ); + // Fep manager should have both read and write privilege. + // Known case: Auto-completion cannot be changed in setting dialog. + RProperty::Define( KPSUidAknFep, KAknFepSettingDialogState, RProperty::EInt ); } void CAknFepManager::ConstructFullyL() @@ -10103,25 +10097,25 @@ } else { - // Go directly via CTextView because the normal way via the FepAwareEditor can only be called - // during an inline edit. - // Line cursor is made invisible here. There is no line cursor in S60 LAF, even though there is - // an Edwin flag which govern this. See CEikEdwin::SetCursorVisibilityL(TBool) - // Cursor is not set if this CommitInlineEditL call was prompted when losing focus. + // Line cursor is made invisible here. There is no line cursor in S60 LAF, even though there is + // an Edwin flag which govern this. See CEikEdwin::SetCursorVisibilityL(TBool) + // Cursor is not set if this CommitInlineEditL call was prompted when losing focus. MAknFepDocumentNavigation* docNavi = AknFepDocumentNavigation(); - if ( (docNavi || TextView()) && !IsCcpuFlagSet(ECcpuStateLosingFocus) ) - { - if (docNavi) - { - docNavi->SetCursorVisibilityL( TCursor::EFCursorInvisible, - TCursor::EFCursorFlashing ); - } - else - { - TextView()->SetCursorVisibilityL( TCursor::EFCursorInvisible, - TCursor::EFCursorFlashing ); - } - } + + // Use FepAwareTextEditor to judge, not use TextView() + if ( (docNavi || FepAwareTextEditor()) && !IsCcpuFlagSet(ECcpuStateLosingFocus) ) + { + if (docNavi) + { + docNavi->SetCursorVisibilityL( TCursor::EFCursorInvisible, + TCursor::EFCursorFlashing ); + } + else + { + //Use Edwin (FepAwareTextEditor) to set cursor visibility + FepAwareTextEditor()->SetInlineEditingCursorVisibilityL( ETrue ); + } + } } } // iMatchState=EWordMatchFirst; @@ -10302,6 +10296,33 @@ } return EFalse; } + +// ----------------------------------------------------------------------------- +// check whether the current editor is a Java secret editor +// ----------------------------------------------------------------------------- +TBool CAknFepManager::IsJavaSecretEditor() + { + TBool JavaSecretEditor = EFalse; + + TUint ConstraintValue = 0; + MObjectProvider* mop = iInputCapabilities.ObjectProvider(); + + if ( mop ) + { + CAknExtendedInputCapabilities* extendedInputCapabilities = + mop->MopGetObject( extendedInputCapabilities ); + if ( extendedInputCapabilities && iInputCapabilities.FepAwareTextEditor() ) + { + ConstraintValue = extendedInputCapabilities->MIDPConstrainst(); + } + } + if( ConstraintValue & 0x10000 ) + { + JavaSecretEditor = ETrue; + } + + return JavaSecretEditor; + } TBool CAknFepManager::IsEditorHasFreeSpace() const { @@ -16146,12 +16167,20 @@ } else { - CTextView* textView = TextView(); - if (textView) - { - TextView()->GetCursorPos(rawDocPos); - gotPos = ETrue; - } + // Use Edwin (FepAwareTextEditor() ) to get the position of document + if ( FepAwareTextEditor() ) + { + TCursorSelection cursorSel( 0, 0 ); + // Get the postion of document + FepAwareTextEditor()->GetCursorSelectionForFep( cursorSel ); + + // Set the leading edge of the document. + rawDocPos.iPos = cursorSel.iCursorPos; + CAknEdwinState* state( EditorState() ); + rawDocPos.iLeadingEdge = ( state && + state->Flags() & EAknEditorFlagCursorLedingEdge ); + gotPos = ETrue; + } } if (gotPos) { @@ -16397,6 +16426,10 @@ TBool CAknFepManager::GetVisualDocEnd( TTmDocPosSpec& aPos) const { + // Set EAknEditorFlagNeedWholeTextData to Editor State + // EAknEditorFlagNeedWholeTextData means needing to get whole document data to editor + UpdateEditorStateFlags( EAknEditorFlagNeedWholeTextData ); + TInt docLength = iInputCapabilities.FepAwareTextEditor()->DocumentLengthForFep(); // Set up the initial try as trailing after the last logical character @@ -16422,6 +16455,9 @@ aPos.iPos = docLength; aPos.iType = TTmDocPosSpec::ETrailing; } + + // Remove EAknEditorFlagNeedWholeTextData fromEditor State + UpdateEditorStateFlags( EAknEditorFlagNeedWholeTextData, EFalse ); return success; } @@ -17012,6 +17048,16 @@ else { aLanguage = EditorState()->LocalLanguage(); + + // Change local language to ELangEnglish if application, e.g. Search Widget, + // sets local language to ELangEnglish_Taiwan, ELangEnglish_HongKong + // and ELangEnglish_Prc. + if( aLanguage == ELangEnglish_Taiwan || + aLanguage == ELangEnglish_HongKong || + aLanguage == ELangEnglish_Prc ) + { + aLanguage = ELangEnglish; + } } if ( aLanguage != ELangTest ) @@ -17474,8 +17520,10 @@ { if ( aCode == EKeyRightArrow || aCode == EKeyLeftArrow ) { + // Never use TextView() to get editor data, + // use FepAwareTextEditor() condition instead of TextView() if ( iInputCapabilities.FepAwareTextEditor() && EditorState() - && (AknFepDocumentNavigation() || TextView()) ) + && AknFepDocumentNavigation() ) { TTmDocPosSpec docPos = DocPos(); TTextDirectionalInfo status = LocalTextDirectionalStatus( docPos ); @@ -17583,8 +17631,11 @@ void CAknFepManager::AdjustCursorTypeForCurrentPosition() { + + // Never use TextView() to get editor data, + // use FepAwareTextEditor() condition instead of TextView() if ( iInputCapabilities.FepAwareTextEditor() && EditorState() - && (AknFepDocumentNavigation() || TextView()) ) + && AknFepDocumentNavigation()) AdjustCursorTypeForPosition( DocPos() ); } @@ -20779,7 +20830,7 @@ void CAknFepManager::HideExactWordPopUp() { iExactWordPopupContent->HidePopUp(); - SendEventsToPluginManL( EPluginHideTooltip ); + TRAP_IGNORE( SendEventsToPluginManL( EPluginHideTooltip )); } TBool CAknFepManager::IsExactWordPopUpShown() @@ -21001,6 +21052,30 @@ CleanupStack::PopAndDestroy(); //reader return isEmpty; } + +// ======================================== +// Update Editor State Flag +// Add editor state flags or +// Remove editor state flags +// ======================================== +void CAknFepManager::UpdateEditorStateFlags( TInt aFlag, TBool aAdd ) const + { + CAknEdwinState* state( EditorState() ); + if ( state ) + { + TInt flags( state->Flags() ); + if ( aAdd ) + { + flags |= aFlag; // Add flag + } + else + { + flags &= ~aFlag; // Remove flag + } + state->SetFlags( flags ); + } + } + // --------------------------------------------------------------------------- // LOCAL METHODS diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/src/AknFepPluginManager.cpp --- a/fep/aknfep/src/AknFepPluginManager.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/src/AknFepPluginManager.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -288,8 +288,6 @@ iAvkonRepository = CRepository::NewL( KCRUidAvkon ); iConnectAo = new (ELeave)CConnectAo(this); - - RProperty::Define( KPSUidAknFep, KAknFepSettingDialogState, RProperty::EInt ); } // ----------------------------------------------------------------------------- @@ -1093,9 +1091,10 @@ } break; case EPluginEnablePriorityChangeOnOriChange: - if(iCurrentPluginInputFepUI) + if( iCurrentPluginInputFepUI && PluginInputMode() != EPluginInputModeNone ) { - if(ConnectServer()) + // Don't handle this command if pen ui is not opened. + if( iPenInputSvrConnected ) { iPenInputServer.EnablePriorityChangeOnOriChange(TBool(aEventData)); } @@ -4219,9 +4218,10 @@ TInt enalbeInStartup = 0; RProperty::Get(KPSUidUikon, KUikGlobalNotesAllowed, enalbeInStartup); ebable = enalbeInStartup; - - if (iInGlobleNoteEditor || - (iPenInputMenu && iPenInputMenu->IsShowing())) + + TInt priority = CCoeEnv::Static()->RootWin().OrdinalPriority(); + if (iInGlobleNoteEditor || ECoeWinPriorityNormal < priority || + (iPenInputMenu && iPenInputMenu->IsShowing())) { ebable = EFalse; } @@ -5417,8 +5417,8 @@ iInGlobleNoteEditor = IsGlobalNotesApp(curAppId) ? ETrue:EFalse; if (iCurrentPluginInputFepUI) { - iCurrentPluginInputFepUI->HandleCommandL( - ECmdPenInputEnableSettingBtn, !iInGlobleNoteEditor); + iCurrentPluginInputFepUI->HandleCommandL( ECmdPenInputEnableSettingBtn, + IsEnableSettingBtn() ); } //if it's in global notes, show it. diff -r 857bebeecec0 -r b1ea1642412e fep/aknfep/src/AknFepUiManagerBase.cpp --- a/fep/aknfep/src/AknFepUiManagerBase.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/fep/aknfep/src/AknFepUiManagerBase.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -969,7 +969,10 @@ TPtrC curWord = iPtiEngine->CurrentWord(); iFepMan->UpdateInlineEditL( curWord, curWord.Length() ); } - if ( iFepMan->IsSupportsSecretText() ) + //a temporary solution to fix the error: long key press will input q1 instead of 1. + //if the secret editor is a java secret editor, then do not simulate the key EF20 like avkon secret editor + //&& !( iFepMan->IsJavaSecretEditor() ) was added + if ( ( iFepMan->IsSupportsSecretText() ) && !( iFepMan->IsJavaSecretEditor() ) ) { // Fep communicates with secret text editors using simulated events. iFepMan->SimulateKeyEventL(EKeyF20); @@ -982,7 +985,10 @@ // The previous key entered character(s) directly to the editor for ( TInt i=0 ; iIsSupportsSecretText() ) + //a temporary solution to fix the error: long key press will input q1 instead of 1. + //if the secret editor is a java secret editor, then do not simulate the key EF20 like avkon secret editor + //&& !( iFepMan->IsJavaSecretEditor() ) was added + if ( ( iFepMan->IsSupportsSecretText() ) && !( iFepMan->IsJavaSecretEditor() ) ) { // Fep communicates with secret text editors using simulated events. iFepMan->SimulateKeyEventL(EKeyF20); diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp --- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -629,7 +629,7 @@ if( aRect != Rect()) { CFepUiBaseCtrl::SetRect( aRect ); - ResizeDeviceL(); + TRAP_IGNORE(ResizeDeviceL()); } } } diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp --- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -635,7 +635,7 @@ iRect = aRect; if(iBitmap && iBitmap->SizeInPixels() != aRect.Size()) { - ResizeBackupDeviceL(aRect.Size()); + TRAP_IGNORE(ResizeBackupDeviceL(aRect.Size())); } } // End of File diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp --- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -535,7 +535,7 @@ TRAP_IGNORE(iBubbleCtrl = CBubbleCtrl::NewL(TRect(0,0,0,0),UiLayout(),-0xFFFF)); if(iBubbleCtrl && UiLayout()->NotDrawToLayoutDevice()) { - iBubbleCtrl->CreateBmpDevL(); + TRAP_IGNORE(iBubbleCtrl->CreateBmpDevL()); } iBubbleSize = TSize(KDefaultBubbleSize,KDefaultBubbleSize); } diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputarc/src/peninputserverapp/peninputserver.cpp --- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -431,21 +431,41 @@ TBool notDraw = EFalse; if(iUiLayout) + { + iUiLayout->HandleCommand( ECmdPeninputDisableLayoutDrawing, + (unsigned char*)¬Draw ); + } + + // [[[ temporary solution for Virtual keyboard becomes corrupted after several rotations + if(!iUiLayout) { - iUiLayout->HandleCommand( ECmdPeninputDisableLayoutDrawing, - (unsigned char*)¬Draw ); + return; } + + // we should not be able to activate and show pen ui if this mode is disabled currently + if(iUiLayout->PenInputType() & DisabledByOrientation()) + { + // we have activate the animation otherwise we will see the penui but not reponse + // when clicking on it in the case we rotating the screen quickly and continously + if(iAnimObj) + { + iAnimObj->AddActivationCmd(ECmdActivate,EFalse); + } + return; + } + // ]]] temporary solution for Virtual keyboard becomes corrupted after several rotations + if(iActive) { - if(iUseWindowCtrl) - { + if(iUseWindowCtrl) + { /* RWsSession &ws = CCoeEnv::Static()->WsSession(); TInt wgId =ws.GetFocusWindowGroup(); //TInt wgHandle = ws.GetWindowGroupHandle(wgId); - TInt priority; - //TInt pos; + TInt priority; + //TInt pos; //wg.Construct(wgHandle); //pos = wg.FullOrdinalPosition(); priority = ws.GetWindowGroupOrdinalPriority(wgId);*/ @@ -454,57 +474,57 @@ ActivatePenUiLayout(EFalse); iDimmed = EFalse; iPenUiCtrl->ShowPenUiL(iDimmed); - } - return; + } + return; } - TBool bNeedWait = AnimOpNeedWaiting(ESignalPenUiActivated); - //add animation command + TBool bNeedWait = AnimOpNeedWaiting(ESignalPenUiActivated); + //add animation command - /* - if(iAnimObj->AddActivationCmd(ECmdActivate,bNeedWait)) - { - if(bNeedWait) - iForegroundUiHandler->AddDelayedCmd(); - //iUiLayout->OnActivate(); - ActivatePenUiLayout(); - - DrawSprite(); - - iEventBufferQueue->GetEvent(); - - iActive = ETrue; - - if(iUseWindowCtrl) - iPenUiCtrl->ShowPenUi(); - } - */ - if(ActivatePenUiLayout(bNeedWait)) + /* + if(iAnimObj->AddActivationCmd(ECmdActivate,bNeedWait)) { - if(bNeedWait) - iForegroundUiHandler->AddDelayedCmd(); - - DrawSprite(); - - iActive = ETrue; - - if(iUseWindowCtrl) - { - /*RWsSession &ws = CCoeEnv::Static()->WsSession(); - TInt wgId =ws.GetFocusWindowGroup(); - //TInt wgHandle = ws.GetWindowGroupHandle(wgId); + if(bNeedWait) + iForegroundUiHandler->AddDelayedCmd(); + //iUiLayout->OnActivate(); + ActivatePenUiLayout(); + + DrawSprite(); + + iEventBufferQueue->GetEvent(); + + iActive = ETrue; + + if(iUseWindowCtrl) + iPenUiCtrl->ShowPenUi(); + } + */ + if(ActivatePenUiLayout(bNeedWait)) + { + if(bNeedWait) + iForegroundUiHandler->AddDelayedCmd(); + + DrawSprite(); + + iActive = ETrue; + + if(iUseWindowCtrl) + { + /*RWsSession &ws = CCoeEnv::Static()->WsSession(); + TInt wgId =ws.GetFocusWindowGroup(); + //TInt wgHandle = ws.GetWindowGroupHandle(wgId); - - TInt priority; - //TInt pos; - //wg.Construct(wgHandle); - //pos = wg.FullOrdinalPosition(); - priority = ws.GetWindowGroupOrdinalPriority(wgId);*/ - //wg.Close(); - iPenUiCtrl->ShowPenUiL(iDimmed); - } + TInt priority; + //TInt pos; + //wg.Construct(wgHandle); + //pos = wg.FullOrdinalPosition(); + priority = ws.GetWindowGroupOrdinalPriority(wgId);*/ + //wg.Close(); + iPenUiCtrl->ShowPenUiL(iDimmed); } } + } + // --------------------------------------------------------------------------- // CPeninputServer::ActivateSprite // Activate sprite @@ -536,6 +556,21 @@ if(!iUiLayout) return; + + // [[[ temporary solution for Virtual keyboard becomes corrupted after several rotations + // we should not be able to activate and show pen ui if this mode is disabled currently + if(iUiLayout->PenInputType() & DisabledByOrientation()) + { + // we have activate the animation otherwise we will see the penui but not reponse + // when clicking on it in the case we rotating the screen quickly and continously + if(iAnimObj) + { + iAnimObj->AddActivationCmd(ECmdActivate,EFalse); + } + + return; + } + // ]]] temporary solution for Virtual keyboard becomes corrupted after several rotations TBool notDraw = EFalse; iUiLayout->HandleCommand(ECmdPeninputDisableLayoutDrawing,(unsigned char*)¬Draw); @@ -561,43 +596,43 @@ /* if(iAnimObj->AddActivationCmd(ECmdActivate,bNeedWait)) - { - if(bNeedWait) - iForegroundUiHandler->AddDelayedCmd(); - //iUiLayout->OnActivate(); + { + if(bNeedWait) + iForegroundUiHandler->AddDelayedCmd(); + //iUiLayout->OnActivate(); ActivatePenUiLayout(); - - DrawSprite(); - - iEventBufferQueue->GetEvent(); - - iActive = ETrue; - - if(iUseWindowCtrl) + + DrawSprite(); + + iEventBufferQueue->GetEvent(); + + iActive = ETrue; + + if(iUseWindowCtrl) iPenUiCtrl->ShowPenUi(); } */ if(ActivatePenUiLayout(bNeedWait, ETrue)) { - if(bNeedWait) - iForegroundUiHandler->AddDelayedCmd(); - - DrawSprite(); - - iActive = ETrue; - - if(iUseWindowCtrl) - { - TRAP_IGNORE( iPenUiCtrl->ShowPenUiL(iDimmed) ); - - if (iPreNonGloebalNotesWndGrpId != focusApp.iUid && - IsGlobalNotesApp(focusApp) && !iInGlobalEditorState ) - { - iDimmed = ETrue; - DimPenUi(); - } - } + if(bNeedWait) + iForegroundUiHandler->AddDelayedCmd(); + + DrawSprite(); + + iActive = ETrue; + + if(iUseWindowCtrl) + { + TRAP_IGNORE( iPenUiCtrl->ShowPenUiL(iDimmed) ); + + if (iPreNonGloebalNotesWndGrpId != focusApp.iUid && + IsGlobalNotesApp(focusApp) && !iInGlobalEditorState ) + { + iDimmed = ETrue; + DimPenUi(); + } + } } iIsLayoutReDrawAllowWhenActive = EFalse; } @@ -625,9 +660,9 @@ } } else - { - ActivatePenUiLayout(EFalse,ETrue); - } + { + ActivatePenUiLayout(EFalse,ETrue); + } if (iDimmed && (iInGlobalNotesApp || iInGlobalEditorState)) { @@ -638,7 +673,7 @@ TRAP_IGNORE( iPenUiCtrl->ShowPenUiL(iDimmed) ); iDimmed = EFalse; } - } + } } // --------------------------------------------------------------------------- diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputcommonctrls/loc/peninputcommonctrls.loc --- a/textinput/peninputcommonctrls/loc/peninputcommonctrls.loc Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputcommonctrls/loc/peninputcommonctrls.loc Thu Jul 15 19:01:13 2010 +0300 @@ -31,6 +31,18 @@ #define qtn_input_switcher_fs_qwerty "Full Screen Qwerty" //d:Text in touch input mode swither list +//d:portrait touch input method (full sreen qwerty or ITU-T) +//l:list_single_pane_t1_cp2 +//r: 5.0 +#define qtn_tin_option_menu_portrait_editor "Edit portrait" + +//d:Text in touch input mode swither list +//d:landscape full sreen qwerty touch input method +//l:list_single_pane_t1_cp2 +//r: 5.0 +#define qtn_tin_option_menu_landscape_editor "Edit landscape" + +//d:Text in touch input mode swither list //d:small virtual key board touch input method //l:list_single_pane_t1_cp2 //r: 5.0 diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp --- a/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -4225,6 +4225,7 @@ } iLongPressTimer->SetTimer(iLongPressInterval); + iIsLongPress = EFalse; return CAknFepCtrlCommonButton::HandlePointerDownEventL(aPt); } @@ -4277,6 +4278,7 @@ EXPORT_C void CAknFepCtrlLongPressButton::CancelPointerDownL() { // No implementation needed + CAknFepCtrlCommonButton::CancelPointerDownL(); } // --------------------------------------------------------- diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputgenericitut/inc/peninputgenericitutdatamgr.h --- a/textinput/peninputgenericitut/inc/peninputgenericitutdatamgr.h Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputgenericitut/inc/peninputgenericitutdatamgr.h Thu Jul 15 19:01:13 2010 +0300 @@ -301,7 +301,7 @@ // resource id for generic itut resource file TInt iCommonResId; - TInt iConfigResId; + RArray iConfigResIds; TInt iAvkonResId; diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputgenericitut/src/peninputgenericitutdatamgr.cpp --- a/textinput/peninputgenericitut/src/peninputgenericitutdatamgr.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputgenericitut/src/peninputgenericitutdatamgr.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -100,11 +100,13 @@ CCoeEnv::Static()->DeleteResourceFile(iAvkonResId); CCoeEnv::Static()->DeleteResourceFile(iCommonResId); - - if (iConfigResId) + + // Remove all resource files from control environment + for (TInt i=0; i< iConfigResIds.Count(); i++) { - CCoeEnv::Static()->DeleteResourceFile(iConfigResId); + CCoeEnv::Static()->DeleteResourceFile(iConfigResIds[i]); } + iConfigResIds.Close(); ClearChnCandidates(EItutCandidates); ClearChnCandidates(EItutPuncCandidates); @@ -1143,14 +1145,14 @@ void CGenericItutDataMgr::SetLanguageL(TInt aLanguage) { ASSERT( IsValidLanguage( aLanguage ) ); - + if (iLanguage != aLanguage) - { + { if( IsValidLanguage( iLanguage ) ) - iIsLangDirectionSwitch = IsRtoLLanguage( aLanguage ) ^ IsRtoLLanguage( iLanguage ); + iIsLangDirectionSwitch = IsRtoLLanguage( aLanguage ) ^ IsRtoLLanguage( iLanguage ); else - //Check mirroring is needed when first setting language - iIsLangDirectionSwitch = IsRtoLLanguage( aLanguage ); + //Check mirroring is needed when first setting language + iIsLangDirectionSwitch = IsRtoLLanguage( aLanguage ); iLanguage = aLanguage; iInputMode = KInvalidImMode; @@ -1165,14 +1167,21 @@ CCoeEnv* coeEnv = CCoeEnv::Static(); - if (iConfigResId) - { - coeEnv->DeleteResourceFile(iConfigResId); - } - TFileName resourceConfigName(iResourceFilename); BaflUtils::NearestLanguageFile(coeEnv->FsSession(), resourceConfigName); - iConfigResId = coeEnv->AddResourceFileL(resourceConfigName); + // Do not delete resource file from control environment if changing language. + // Otherwise crash happens if switching theme. For example:If writing language + // is Chinese, enters spell mode, then switches theme, crash happens. + TInt configResId = coeEnv->AddResourceFileL(resourceConfigName); + if ( iConfigResIds.Find(configResId) == KErrNotFound) + { + iConfigResIds.Append( configResId ); + } + else + { + // Remove resource file to ensure the resource file is added only one time. + coeEnv->DeleteResourceFile( configResId ); + } if (IsChinese()) { @@ -1180,9 +1189,9 @@ } if( IsKorean()) - { + { iLayoutContext->UiManager()->CreateKoreanSpecificCtrlsIfNeededL(); - } + } NotifyChangeControlLayout(MItutPropertySubscriber::EItutPropertyKeypadResourceId, KeypadResourceId()); @@ -1927,7 +1936,6 @@ iInputMode(KInvalidImMode), iCase(EAknEditorUpperCase), iIsChineseSpell( EFalse ), - iConfigResId(0), iLayoutContext(aLayoutContext), iCurrentScriptIdx(KInvalidIndex), iLandScape(EFalse), diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h --- a/textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h Thu Jul 15 19:01:13 2010 +0300 @@ -576,6 +576,14 @@ * Retrieve text color from skin for autocompletion part */ TRgb AutoCompletionPartColor(); + + /** + * Called when short press occurs on range button. + * + * @since S60 v3.2 + * @return None + */ + void HandleRangeButtonShortPress(); private: // Data @@ -718,6 +726,11 @@ * Range labels for range list */ TAllRangeLabels iRangeLabels; + + /** + * Indicates whether range button short press is handled. + */ + TBool iHandleRangeShortPress; private: CFepLayoutScrollableList* iCandidateList; diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp --- a/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -394,7 +394,7 @@ } TInt CPeninputGenericVkbLayout::SizeChanged( const TAny* aData ) { - (( CPeninputGenericVkbWindow*)iLayoutWindow)->UpdateLafData(); + //(( CPeninputGenericVkbWindow*)iLayoutWindow)->UpdateLafData(); return CPeninputCommonLayoutExt::SizeChanged( aData ); } void CPeninputGenericVkbLayout::HandleAppInfoChange(const TDesC& aInfo, diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp --- a/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -134,6 +134,7 @@ } void CPeninputGenericVkbWindow::ConstructL() { + iHandleRangeShortPress = ETrue; iBmpRotator = CPeninputSyncBitmapRotator::NewL(); iLafMgr = CPeninputGenericVkbLafMgr::NewL(); iLafMgr->SetInputModeL(TPluginInputMode (iLayoutContext->LayoutType())); @@ -164,82 +165,22 @@ { if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) { - PopupChoiceList(); + if ( iHandleRangeShortPress ) + { + HandleRangeButtonShortPress(); + } } + iHandleRangeShortPress = ETrue; } break; case EPeninputLayoutEventMultiRangeLongPress: { - const TInt range = CPeninputDataConverter::AnyToInt( - iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); - - const TInt langId = IntContext( EPeninputDataTypeInputLanguage ); - if ( aCtrl->ControlId() == EPeninutWindowCtrlIdMultiRangeBtn ) { - - if ( range == ERangeAccent ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - else if ( range == ERangeNative ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) - { - - if ( langId != ELangArabic && langId != ELangFarsi - && langId != ELangUrdu && langId != ELangThai ) - { - ChangeRange(ERangeNativeNumber); - } - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) - { - if ( langId != ELangArabic && langId != ELangFarsi - && langId != ELangUrdu && langId != ELangThai ) - { - ChangeRange(ERangeNumber); - } - } - } - else if ( range == ERangeEnglish ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) - { - ChangeRange(ERangeNumber); - } - } - else if ( range == ERangeNativeNumber ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - else if ( range == ERangeNumber ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - - TRAP_IGNORE( UpdateRangeCtrlsL() ); + // Before pop up list, cancel down event, and set range button un-highlight. + TRAP_IGNORE( aCtrl->CancelPointerDownL()); + static_cast(aCtrl)->SetHighlight( EFalse ); + PopupChoiceList(); } } break; @@ -263,6 +204,14 @@ break; case EEventChoiceSelected: { + CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdMultiRangeBtn ); + + if ( btn ) + { + iHandleRangeShortPress = EFalse; + TRAP_IGNORE( btn->HandlePointerUpEventL( btn->Rect().iBr ) ); + iHandleRangeShortPress = ETrue; + } CFepLayoutChoiceList::SEvent* event = ( CFepLayoutChoiceList::SEvent* ) aEventData.Ptr(); @@ -1710,7 +1659,8 @@ iVkbLayout->ConstructFromIrregularResourceL(); else iVkbLayout->ConstructFromNonIrregularResourceL(); - SetVkbLayoutSize(); + + //SetVkbLayoutSize(); if( IsRtoLLanguage( iLanguage ) ) { @@ -2965,4 +2915,72 @@ } } } + +void CPeninputGenericVkbWindow::HandleRangeButtonShortPress() + { + const TInt range = CPeninputDataConverter::AnyToInt( + iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); + + const TInt langId = IntContext( EPeninputDataTypeInputLanguage ); + + switch ( langId ) + { + case ELangRussian: + case ELangBulgarian: + case ELangUkrainian: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangArabic: + case ELangFarsi: + case ELangUrdu: + { + range == ERangeNative ? ChangeRange( ERangeNativeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangThai: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangGreek: + case ELangHebrew: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + default: // Latin, vietnamese, and other possible languages + { + if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) + { + if ( range == ERangeNative ) + { + if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) + { + ChangeRange( ERangeNativeNumber ); + } + else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) + { + ChangeRange( ERangeNumber ); + } + } + else + { + ChangeRange( ERangeNative ); + } + } + else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) + { + range == ERangeEnglish ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeEnglish ); + } + } + break; + } + + TRAP_IGNORE( UpdateRangeCtrlsL() ); + } // End Of File diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputsplititut/src/peninputsplititutwesternuistatespelling.cpp --- a/textinput/peninputsplititut/src/peninputsplititutwesternuistatespelling.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputsplititut/src/peninputsplititutwesternuistatespelling.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -133,6 +133,7 @@ void CWesternSplitItutUiStateSpelling::OnExit() { + iICF->HideBubble(); //Hide bubble when full screen ITUT closed iOk->Hide(ETrue); iCancel->Hide(ETrue); iOwner->DataMgr()->SetSpellMode(EFalse); diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputsplititut/src/peninputsplititutwindow.cpp --- a/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputsplititut/src/peninputsplititutwindow.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -54,6 +54,7 @@ const TUint KDefaultIcfTextColor = 0x000000; const TUint KDefaultIcfFrameColor = 0x000000; +const TInt KTextLength = 100; @@ -1457,6 +1458,11 @@ void CSplitItutWindow::UpdateIndiBubbleL( TUint8* aData ) { + // if icf is hidden, not call updateindibubblel + if( iICF->Hiden() ) + { + return; + } RDesReadStream readStream; TFepIndicatorInfo indicatorData; @@ -1484,7 +1490,7 @@ indicatorData.iIndicatorTextImgID, indicatorData.iIndicatorTextMaskID ); - TBuf<100> text; + TBuf text; iICF->MsgBubbleCtrl()->GetText( text ); iICF->ShowBubble( text, iICF->MsgBubbleCtrl()->Rect()); } diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputsplitqwerty/inc/peninputsplitqwertywindow.h --- a/textinput/peninputsplitqwerty/inc/peninputsplitqwertywindow.h Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputsplitqwerty/inc/peninputsplitqwertywindow.h Thu Jul 15 19:01:13 2010 +0300 @@ -582,6 +582,14 @@ */ void PrepareRangeListItems( RArray& aRangeItems ); + /** + * Called when short press occurs on range button. + * + * @since S60 v3.2 + * @return None + */ + void HandleRangeButtonShortPress(); + private: // Data /** @@ -727,6 +735,10 @@ */ TAllRangeLabels iRangeLabels; + /** + * Indicates whether range button short press is handled. + */ + TBool iHandleRangeShortPress; }; inline TBool CPeninputSplitQwertyWindow::IsRtoLLanguage( TInt aLanguage ) diff -r 857bebeecec0 -r b1ea1642412e textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp --- a/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Mon Jun 21 16:02:35 2010 +0300 +++ b/textinput/peninputsplitqwerty/src/peninputsplitqwertywindow.cpp Thu Jul 15 19:01:13 2010 +0300 @@ -484,76 +484,12 @@ { case EPeninputLayoutEventMultiRangeLongPress: { - const TInt range = CPeninputDataConverter::AnyToInt( - iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); - - const TInt langId = CPeninputDataConverter::AnyToInt( - iLayoutContext->RequestData(EPeninputDataTypeInputLanguage)); - - if ( aCtrl->ControlId() == EPeninutWindowCtrlIdRangeBtn ) + if ( ctrlId == EPeninutWindowCtrlIdRangeBtn ) { - if ( range == ERangeAccent ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - else if ( range == ERangeNative ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) - { - - if ( langId != ELangArabic && langId != ELangFarsi - && langId != ELangUrdu && langId != ELangThai ) - { - ChangeRange(ERangeNativeNumber); - } - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) - { - if ( langId != ELangArabic && langId != ELangFarsi - && langId != ELangUrdu && langId != ELangThai ) - { - ChangeRange(ERangeNumber); - } - } - } - else if ( range == ERangeEnglish ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) - { - ChangeRange(ERangeNumber); - } - } - else if ( range == ERangeNativeNumber ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - else if ( range == ERangeNumber ) - { - if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) - { - ChangeRange(ERangeNative); - } - else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) - { - ChangeRange(ERangeEnglish); - } - } - - TRAP_IGNORE( UpdateRangeCtrlsL() ); + // Before pop up list, cancel down event, and set range button un-highlight. + TRAP_IGNORE( aCtrl->CancelPointerDownL()); + static_cast(aCtrl)->SetHighlight( EFalse ); + PopupChoiceList(); } } break; @@ -561,8 +497,13 @@ { if ( ctrlId == EPeninutWindowCtrlIdRangeBtn ) { - PopupChoiceList(); + if ( iHandleRangeShortPress ) + { + HandleRangeButtonShortPress(); + } } + + iHandleRangeShortPress = ETrue; } break; case EPeninputLayoutVkbEventResetShift: @@ -581,6 +522,14 @@ break; case EEventChoiceSelected: { + CFepUiBaseCtrl* btn = Control( EPeninutWindowCtrlIdRangeBtn ); + + if ( btn ) + { + iHandleRangeShortPress = EFalse; + TRAP_IGNORE( btn->HandlePointerUpEventL( btn->Rect().iBr ) ); + iHandleRangeShortPress = ETrue; + } CFepLayoutChoiceList::SEvent* event = NULL; event = (CFepLayoutChoiceList::SEvent*) aEventData.Ptr(); @@ -686,6 +635,7 @@ } iFirstConstruct = EFalse; + iHandleRangeShortPress = ETrue; } // --------------------------------------------------------------------------- @@ -2020,4 +1970,74 @@ } } } + +void CPeninputSplitQwertyWindow::HandleRangeButtonShortPress() + { + const TInt range = CPeninputDataConverter::AnyToInt( + iLayoutContext->RequestData(EPeninputDataTypeCurrentRange)); + + const TInt langId = CPeninputDataConverter::AnyToInt( + iLayoutContext->RequestData(EPeninputDataTypeInputLanguage)); + + switch ( langId ) + { + case ELangRussian: + case ELangBulgarian: + case ELangUkrainian: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangArabic: + case ELangFarsi: + case ELangUrdu: + { + range == ERangeNative ? ChangeRange( ERangeNativeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangThai: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + + case ELangGreek: + case ELangHebrew: + { + range == ERangeNative ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeNative ); + } + break; + default: // Latin, vietnamese, and other possible languages + { + if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNative ) ) + { + if ( range == ERangeNative ) + { + if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNativeNumber ) ) + { + ChangeRange( ERangeNativeNumber ); + } + else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeNumber ) ) + { + ChangeRange( ERangeNumber ); + } + } + else + { + ChangeRange( ERangeNative ); + } + } + else if ( ConfigInfo()->RangeBarInfo()->FindRange( ERangeEnglish ) ) + { + range == ERangeEnglish ? ChangeRange( ERangeNumber ) : ChangeRange( ERangeEnglish ); + } + } + break; + } + + TRAP_IGNORE( UpdateRangeCtrlsL() ); + } + // End Of File