diff -r f1bdd6b078d1 -r 2cb9bae34d17 fep/aknfep/src/AknFepUiInputStateEntryThaiPredictive.cpp --- a/fep/aknfep/src/AknFepUiInputStateEntryThaiPredictive.cpp Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -/* -* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0"" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Provides the TAknFepInputStateEntryThaiPredictive methods. -* -*/ - - - - - - - - - - - - -#include "AknFepUiInputStateEntryThaiPredictive.h" -#include "AknFepUIManagerStateInterface.h" //MAknFepUIManagerStateInterface -#include "AknFepManagerUIInterface.h" //MAknFepManagerUIInterface -#include "AknFepManager.h" -#include "AknFepPanic.h" -#include "AknFepCaseManager.h" - -#include //CPtiEngine -#include //keys -#include -#include - -TAknFepInputStateEntryThaiPredictive:: -TAknFepInputStateEntryThaiPredictive(MAknFepUIManagerStateInterface* aOwner) - :TAknFepInputStateEntryWesternPredictive(aOwner) - { - //this class insists on the existence of a case manager - __ASSERT_DEBUG(iOwner->CaseMan(), AknFepPanic(EAknFepPanicNoCaseManager)); - - iState = EEntry; - iMatchState = EWordMatchNone; - CPtiEngine* ptiengine = iOwner->PtiEngine(); -#ifdef RD_INTELLIGENT_TEXT_INPUT - ptiengine->SetInputMode(EPtiEnginePredictive); - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - TBool isUnlimitedEditor = EFalse; - ptiengine->SetMaxLengthForAutoCompletedCandidates(fepMan->EditorFreeSpaceForAutoWordCompletion(isUnlimitedEditor )); - // To set the input mode - if(fepMan->IsAutoCompleteOn()) - { - TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandEnableAutoCompletion)); - } - else - { - TRAP_IGNORE(ptiengine->HandleCommandL(EPtiCommandDisableAutoCompletion)); - } - - TPtiKeyboardType keyboard = fepMan->KeyboardLayout(); - ptiengine->SetKeyboardType(keyboard); - TBool isNumberCandidateShown = fepMan->IsAdvancedPredictiveNumberCandidateShown(); - TRAP_IGNORE(ptiengine->HandleCommandL( EPtiCommandSetNumberCandidateStatus, &isNumberCandidateShown )); -#else - ptiengine->ClearCurrentWord(); -#ifdef RD_PRED_AW_COMPLETION - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - // To set the input mode - if(fepMan->IsAutoCompleteOn()) - { - ptiengine->SetInputMode(EPtiEngineWordCompletion); - } - else -#endif // RD_PRED_AW_COMPLETION - { - ptiengine->SetInputMode(EPtiEnginePredictive); - } -#endif // RD_INTELLIGENT_TEXT_INPUT - ptiengine->SetCase(EPtiCaseLower); - } - -TBool TAknFepInputStateEntryThaiPredictive::HandleKeyL(TInt aKey, TKeyPressLength aLength) - { - TBool response = ETrue; - - switch (aKey) - { - case EPtiKey1: //fall through - case EPtiKey2: - case EPtiKey3: - case EPtiKey4: - case EPtiKey5: - case EPtiKey6: - case EPtiKey7: - case EPtiKey8: - case EPtiKey9: - case EPtiKey0: - case EPtiKeyStar: - response = HandleStandardNumericKeysL(aKey, aLength); - break; - case EKeyDownArrow: - response = HandleDownKeyL(); - break; - case EKeyUpArrow: - response = HandleUpKeyL(); - break; - case EKeyRightArrow: // fall through - case EKeyLeftArrow: - case EKeyBackspace: - response = HandleNaviKeysL(aKey, aLength); - break; - default: - response = EFalse; - break; - } - return response; - } - -TBool TAknFepInputStateEntryThaiPredictive::HandleDownKeyL() - { - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - CPtiEngine* ptiengine = iOwner->PtiEngine(); - - if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))) - { - return EFalse; - } - else - { - if (fepMan->IsFlagSet(CAknFepManager::EFlagNoMatches)) - { - //no more matches - fepMan->PlaySound(EAvkonSIDWarningTone); - } - else if (ptiengine->NumberOfCandidates()<=1) - { - // only one match - if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone) - { - fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_EMPTY); - iMatchState = EWordMatchLast; - } - } - else - { - // > 1 match - if (iMatchState == EWordMatchLast && !(ptiengine->LastEnteredKey() == EPtiKey1)) - { - fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_SPELL_PREVIOUS); - } - else if (iMatchState == EWordMatchFirst || iMatchState == EWordMatchNone) - { - fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS); - iMatchState = EWordMatchStd; - } - TPtrC newText = ptiengine->NextCandidate(); - fepMan->UpdateInlineEditL(newText, 0); - } - } - return ETrue; - } - -TBool TAknFepInputStateEntryThaiPredictive::HandleUpKeyL() - { - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - CPtiEngine* ptiengine = iOwner->PtiEngine(); - if (!(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction))) - { - return EFalse; - } - -#ifdef RD_INTELLIGENT_TEXT_INPUT - TInt lastCandidateIndex = ptiengine->NumberOfCandidates() -1; - if(lastCandidateIndex >= 0) - { - // Get last word on list - fepMan->LaunchCandidatePopupListL( lastCandidateIndex ); - } - else - { - TInt wordIndexToSelect = 0; - // Get next word on list (wrap around if at end) - ptiengine->HandleCommandL( EPtiCommandUserActionGetCurrentIndexOfCandidates, - &wordIndexToSelect ); - wordIndexToSelect < lastCandidateIndex ? wordIndexToSelect++ : wordIndexToSelect = 0; - fepMan->LaunchCandidatePopupListL( wordIndexToSelect ); - } - -#else - if (!( (iMatchState == EWordMatchFirst) || !(fepMan->IsFlagSet(CAknFepManager::EFlagInsideInlineEditingTransaction)))) - { - if (iMatchState == EWordMatchLast || iMatchState == EWordMatchAfterLast) - { - fepMan->UpdateCbaL(R_AKNFEP_SOFTKEYS_EMPTY_PREVIOUS); - } - iMatchState = EWordMatchStd; - TPtrC prevText = ptiengine->PreviousCandidate(); - fepMan->UpdateInlineEditL(prevText, 0); - } - -#endif //RD_INTELLIGENT_TEXT_INPUT - return ETrue; - } - -// End of file