diff -r f1bdd6b078d1 -r 2cb9bae34d17 fep/aknfep/src/AknFepUiInputStateEntryLatinJapanese.cpp --- a/fep/aknfep/src/AknFepUiInputStateEntryLatinJapanese.cpp Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/* -* Copyright (c) 2002-2004 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 TAknFepUiInputStateEntryLatinJapanese methods. -* -*/ - - - - - - - - - - - - -// INCLUDE FILES -#include "AknFepUiInputStateEntryLatinJapanese.h" -#include "AknFepUIManagerStateInterface.h" // MAknFepUIManagerStateInterface -#include "AknFepManagerUIInterface.h" // MAknFepManagerUIInterface -#include "AknFepCaseManager.h" // CAknFepCaseManager -#include "AknFepManager.h" -#include "AknFepGlobalEnums.h" - -#include -#include // MPtiEngineCompositionDataInterface - -// CONSTANTS - -/** - * TAknFepUiInputStateEntryLatinJapanese class. - * - */ -//============================ MEMBER FUNCTIONS ============================== - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateEntryLatinJapanese:: -// TAknFepUiInputStateEntryLatinJapanese -// Default constructor -// --------------------------------------------------------------------------- -// -TAknFepUiInputStateEntryLatinJapanese::TAknFepUiInputStateEntryLatinJapanese( - MAknFepUIManagerStateInterface* aOwner, - MAknFepUICtrlContainerJapanese* aUIContainer) - :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer) - { - } - -/** - * MPtiObserver interface. - */ -//============================ MEMBER FUNCTIONS ============================== - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateEntryLatinJapanese::KeyTimerExpired -// Call this function when Multitap timer of PtiEngine was time-out -// --------------------------------------------------------------------------- -// -void TAknFepUiInputStateEntryLatinJapanese::KeyTimerExpired() - { - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData(); - TPtrC text = data->CompletedString(); - if (text.Length() > 0) - { - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - - if (fepMan->IsSupportsSecretText() - && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction)) - { - TRAP_IGNORE(fepMan->CommitInlineEditL()); - // Update case without Qwerty - if (!iOwner->IsQwerty()) - { - UpdateCase(text); - } - } - else - { - iOwner->ChangeState(EMultiCompletion); - // Update case without Qwerty - if (!iOwner->IsQwerty()) - { - UpdateCase(text); - } - - // Commit a character - TRAP_IGNORE(iOwner->FepMan()->CommitInlineEditL(text, text.Length())); - - // Update case with Qwerty - if (iOwner->IsQwerty()) - { - CAknFepCaseManager* caseMan = iOwner->CaseMan(); - caseMan->UpdateCase(ENullNaviEvent); - } - } - } - iData = 0; - CPtiEngine* ptiengine = iOwner->PtiEngine(); - ptiengine->ClearCurrentWord(); - iOwner->ChangeState(EInitial); - } - -/** -* TAknFepUiInputStateEntryLatinJapanese class. -* -*/ -//============================ MEMBER FUNCTIONS ============================== - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateEntryLatinJapanese::HandleNumericShortKeyL -// Handling short keypress events of the numeric and the star. -// --------------------------------------------------------------------------- -// -TBool TAknFepUiInputStateEntryLatinJapanese::HandleNumericShortKeyL(TInt aKey) - { - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - TBool ret = EFalse; - - if (iData && iData != aKey) - { - if (!iOwner->IsQwerty() - && iOwner->FepMan()->IsSupportsSecretText() - && fepMan->IsFlagSet(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction)) - { - const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData(); - TPtrC text = data->ConvertingString(); - if (text.Length() > 0) - { - fepMan->CommitInlineEditL(); - if (!iOwner->IsQwerty()) - { - UpdateCase(text); - } - } - ptiEngine->ClearCurrentWord(); - iOwner->ChangeState(EInitial); - iData = 0; - ret = EFalse; - } - else - { - ptiEngine->HandleCommandL(EPtiCommandUserActionComplete); - iOwner->ChangeState(EMultiCompletion); - } - } - else - { - iData = aKey; - - const MPtiEngineCompositionDataInterface* previousData = ptiEngine->CompositionData(); - TChar previousChar = 0; - TPtrC previousText(previousData->ConvertingString()); - if (previousText.Length() > 0) - { - previousChar = previousText[0]; - } - - // Append a key to PtiEngine - ptiEngine->AppendKeyPress((TPtiKey)aKey); - - const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData(); - TPtrC text(data->ConvertingString()); - if (text.Length() > 0) - { - TChar ch = text[0]; - TBool validNewCandidate = fepMan->CharIsValidInEditor(ch); - // Check if the character is valid for the editor. - if ( !validNewCandidate ) - { - TChar firstNewCandidate = ch; - TBool goneThroughAllCandidates(EFalse); - TPtrC8 sequence = ptiEngine->CurrentInputSequence(); - - if ( sequence.Length() ) - { - TPtiKey key = (TPtiKey)sequence[0]; - - // Go through candidates and check if valid characters are found. - do { - TPtrC text = ptiEngine->AppendKeyPress(key); - ch = text[0]; - goneThroughAllCandidates = (ch == firstNewCandidate); - validNewCandidate = fepMan->CharIsValidInEditor(ch); - } - while (!validNewCandidate && !goneThroughAllCandidates); - } - - if (!validNewCandidate) - { - // No valid characters at all. - ptiEngine->DeleteKeyPress(); - iOwner->ChangeState(EMultiCompletion); - ptiEngine->HandleCommandL(EPtiCommandUserActionComplete); - iOwner->FepMan()->CommitInlineEditL(); - ptiEngine->ClearCurrentWord(); - iOwner->ChangeState(EInitial); - return ETrue; - } - else if (ch == previousChar) - { - // The valid key loop count is 1. - // The current characters are committed, and send the same key again. - iOwner->ChangeState(EMultiCompletion); - ptiEngine->HandleCommandL(EPtiCommandUserActionComplete); - iOwner->FepMan()->CommitInlineEditL(); - ptiEngine->ClearCurrentWord(); - iOwner->ChangeState(EInitial); - iOwner->FepMan()->SimulateKeyEventL(aKey, ETrue); - return ETrue; - } - } - } - - ret = UpdateInlineEditingCharacterL(); - // Qwerty input without Secret input mode is continuing to Comleteion. - if (ret && iOwner->IsQwerty()) - { - if (iOwner->FepMan()->IsSupportsSecretText() - || iOwner->FepMan()->IsFlagSet(CAknFepManager::EFlagPassNextKey)) - { - iOwner->ChangeState(EMultiCompletion); - ptiEngine->HandleCommandL(EPtiCommandUserActionComplete); - iOwner->FepMan()->CommitInlineEditL(); - ptiEngine->ClearCurrentWord(); - iOwner->ChangeState(EInitial); - ret = ETrue; - } - else - { - // Qwerty need to change status - ptiEngine->HandleCommandL(EPtiCommandUserActionComplete); - iOwner->ChangeState(EMultiCompletion); - ret = EFalse; - } - } - } - return ret; - } -// End of file