diff -r f1bdd6b078d1 -r 2cb9bae34d17 fep/aknfep/src/AknFepUiInputStateCandidateHiraganaKanji.cpp --- a/fep/aknfep/src/AknFepUiInputStateCandidateHiraganaKanji.cpp Tue Jul 06 14:38:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,274 +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 TAknFepUiInputStateCandidateHiraganaKanji methods. -* -*/ - - - - - - - - - - - - -// INCLUDE FILES - - -#include "AknFepUiInputStateCandidateHiraganaKanji.h" -#include "AknFepUIManagerStateInterface.h" // MAknFepUIManagerStateInterface -#include "AknFepManagerUIInterface.h" // MAknFepManagerUIInterface -#include "AknFepUICtrlContainerJapanese.h" // MAknFepUICtrlContainerJapanese -#include "AknFepUICtrlCandidatePaneInterface.h" - // MAknFepUICtrlCandidatePaneInterface -#include "AknFepGlobalEnums.h" -#include "AknFepPanic.h" - -#include // keys -#include -#include // MPtiEngineCompositionDataInterfac -#include - -// CONSTANTS - -/** - * TAknFepUiInputStateCandidateHiraganaKanji class. - * - */ -//============================ MEMBER FUNCTIONS ============================== - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji:: -// TAknFepUiInputStateCandidateHiraganaKanji -// C++ default Constructor -// --------------------------------------------------------------------------- -// -TAknFepUiInputStateCandidateHiraganaKanji::TAknFepUiInputStateCandidateHiraganaKanji( - MAknFepUIManagerStateInterface* aOwner, - MAknFepUICtrlContainerJapanese* aUIContainer) - - :TAknFepUiInputStateEntryJapaneseMultitap(aOwner, aUIContainer) - { - iState = ECandidate; - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateInitialJapaneseBase::InitializeStateL -// Initialize State -// --------------------------------------------------------------------------- -// -void TAknFepUiInputStateCandidateHiraganaKanji::InitializeStateL() - { - iOwner->SetInlineEditUnderlineVisibility(ETrue); - - // Get index number to show at first - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - TInt index; - CDesCArrayFlat* candidateArray = iOwner->CandidateArray(); - ptiEngine->GetCandidateListL(*candidateArray); - ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &index); - - UpdateCandidateListL(index); - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::CloseUI -// Closing UI -// --------------------------------------------------------------------------- -// -void TAknFepUiInputStateCandidateHiraganaKanji::CloseUI() - { - UIContainer()-> - CandidatePane(MAknFepUICtrlContainerJapanese::EJapaneseCandidatePane)-> - HideWindow(); - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::HandleNumericKeyL -// Handling short keypress events of the numeric and the star -// --------------------------------------------------------------------------- -// -TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleNumericShortKeyL(TInt /*aKey*/) - { - // This state doesn't handle numeric key. - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - ptiEngine->HandleCommandL(EPtiCommandUserActionAllComplete); - CloseUI(); - iOwner->ChangeState(EMultiCompletion); - return EFalse; - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::HandleNaviKeyL -// Handling Navigate keypress event -// --------------------------------------------------------------------------- -// -TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleNaviKeyL(TInt aKey, - TKeyPressLength /*aLength*/) - { - TBool ret = EFalse; - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - MAknFepUICtrlCandidatePaneInterface* candidatePane = - UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese:: - EJapaneseCandidatePane); - TAknFepUICtrlScroll direction = EScrollNone; - TPtiEngineCommand ptiCommand = EPtiCommandNone; - - switch(aKey) - { - case EKeyLeftArrow: - case EKeyRightArrow: - case EStdKeyLeftArrow: /* 0x0e */ - case EStdKeyRightArrow: /* 0x0f */ - { // Change Conversion state - CloseUI(); - iOwner->ChangeState(EConversion); - ret = EFalse; - } - break; - case EKeyDownArrow: - case EKeyUpArrow: - case EStdKeyDownArrow: /* 0x11 */ - case EStdKeyUpArrow: /* 0x10 */ - case EStdKeySpace: - { // The highlight of candidate is moved up/down - // aKey == EKeyDownArrow - ptiCommand = EPtiCommandUserActionConvert; - direction = EScrollDown; - // aKey == EKeyUpArrow - if (aKey == EKeyUpArrow || aKey == EStdKeyUpArrow) - { - ptiCommand = EPtiCommandUserActionPrevious; - direction = EScrollUp; - } - - ptiEngine->HandleCommandL(ptiCommand); - UpdateInlineEditingCharacterL(); - candidatePane->MoveItem(direction); - ret = ETrue; - } - break; - default: - break; - } - - return ret; - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::HandleAuxKeyL -// Handling auxiliary keypress events including OK and Backspace -// --------------------------------------------------------------------------- -// -TBool TAknFepUiInputStateCandidateHiraganaKanji::HandleAuxKeyL(TInt aKey, - TKeyPressLength /*aLength*/) - { - MAknFepUICtrlCandidatePaneInterface* candidatePane = - UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese:: - EJapaneseCandidatePane); - candidatePane->HideWindow(); - switch(aKey) - { - case EKeyOK: - case EStdKeyDevice3: /* 0xA7 */ - case EStdKeyEnter: /* 0x03 */ - case EStdKeyNkpEnter: /* 0x88 */ - { - iOwner->ChangeState(EMultiCompletion); - } - break; - case EKeyBackspace: - case EStdKeyBackspace: /* 0x01 */ - case EStdKeyEscape: /* 0x04 */ - { - iOwner->ChangeState(EConversion); - } - break; - default: // Panic - { - AknFepPanic(EAknFepPanicNotSupportKey); - } - break; - } - return EFalse; - } - - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::UpdateCandidateListL -// Update candidate list -// --------------------------------------------------------------------------- -// -void TAknFepUiInputStateCandidateHiraganaKanji::UpdateCandidateListL(TInt aIndex /*=0*/) - { - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - CDesCArrayFlat* candidateArray = iOwner->CandidateArray(); - MAknFepUICtrlCandidatePaneInterface* candidatePane = - UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese:: - EJapaneseCandidatePane); - const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData(); - // Check ComposirionData - __ASSERT_DEBUG( data->CompletedString().Length() < 0, - RDebug::Print( - _L("In TAknFepUiInputStateCandidateHiraganaKanji::TAknFepUiInputStateCandidateHiraganaKanji INVALID DATA: ConvertingString!"))); - - // Get coordinate of input area - TPoint leftSideOfBaseLine; - TInt height; - TInt ascent; - TInt documentOffset = data->CursorPosition(); - if (data->NumberOfPhrase() > 0) - { - TPtrC8 clauseChar = data->LengthOfPhrase(); - documentOffset = clauseChar[0]; - } - fepMan->GetScreenCoordinatesL(leftSideOfBaseLine, height, ascent, documentOffset); - - // The showing candidate pop-up list - candidatePane->SetWindowPosition(leftSideOfBaseLine, height, ascent); - candidatePane->ShowCandidateListL(candidateArray, aIndex, - R_AKNFEP_SOFTKEYS_EMPTY_EMPTY_COMMIT); - } - -// --------------------------------------------------------------------------- -// TAknFepUiInputStateCandidateHiraganaKanji::HandleCommandL -// Handling Command -// --------------------------------------------------------------------------- -// -void TAknFepUiInputStateCandidateHiraganaKanji::HandleCommandL(TInt aCommandId) - { - if(aCommandId == EAknFepResourceChanged) - { - // Get the current index number - CPtiEngine* ptiEngine = iOwner->PtiEngine(); - CDesCArrayFlat* candidateArray = iOwner->CandidateArray(); - TInt index; - ptiEngine->GetCandidateListL(*candidateArray); - ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &index); - - CloseUI(); - UpdateCandidateListL(index); - } - else - { - // Go through the event to base class. - TAknFepUiInputStateEntryJapaneseMultitap::HandleCommandL(aCommandId); - } - } -// End of file