fep/aknfep/src/AknFepUiInputStateEntryJapaneseMultitap.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/src/AknFepUiInputStateEntryJapaneseMultitap.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +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 TAknFepUiInputStateEntryJapaneseMultitap methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateEntryJapaneseMultitap.h"
-#include "AknFepUIManagerStateInterface.h"   // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h"        // MAknFepManagerUIInterface
-#include "AknFepGlobalEnums.h"
-#include "AknFepManager.h"
-#include "AknFepUICtrlCandidatePaneInterface.h" // MAknFepUICtrlCandidatePaneInterface
-
-#include <PtiDefs.h>                    // keys
-#include <PtiEngine.h>
-#include <PtiCompositionDataIF.h>       // MPtiEngineCompositionDataInterface
-
-// CONSTANTS
-const TText KAknFEPLineFeedSymbol = 0x21B2;
-const TText KAknFEPMirroredLineFeedSymbol = 0x21B3;
-
-/**
- *  TAknFepUiInputStateEntryJapaneseMultitap class.
- *
- */
-
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::
-//                                  TAknFepUiInputStateEntryJapaneseMultitap
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateEntryJapaneseMultitap::
-    TAknFepUiInputStateEntryJapaneseMultitap(
-                                MAknFepUIManagerStateInterface* aOwner,
-                                MAknFepUICtrlContainerJapanese* aUIContainer)
-    :TAknFepUiInputStateJapaneseBase(aOwner, aUIContainer)
-    {
-    iState = EEntry;
-    }
-
-/**
- * MPtiObserver interface.
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::KeyTimerExpired
-// Call this function when Multitap timer of PtiEngine was time-out
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::KeyTimerExpired()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-
-    if (text.Length() > 0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        fepMan->ClearFlag(CAknFepManager::EFlagInsideMultitapInlineEditingTransaction);
-        TRAP_IGNORE(fepMan->CommitInlineEditL());
-        iOwner->ChangeState(EInitial);
-        }
-    else
-        {
-        TPtrC text2 = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text2.Length() > 0)
-            {
-            if (text2[0] == KAknFEPLineFeedSymbol
-             || text2[0] == KAknFEPMirroredLineFeedSymbol)
-                {
-                iOwner->ChangeState(EInitial);
-                }
-            else
-                {
-                // Set on cursor visibility in inline editing
-                TRAPD(err, fepMan->SetInlineEditingCursorVisibilityL(ETrue));
-                if (err == KErrNone)
-                    {
-                    TRAP(err, fepMan->UpdateInlineEditL(text2, cursorpos));
-                    }
-                if (err != KErrNone)
-                    {
-                    TRAP_IGNORE(iOwner->FepMan()->SimulateKeyEventL(EKeyEscape, ETrue));
-                    }
-                }
-            }
-        }
-    }
-
-/**
- *  TAknFepUiInputStateEntryJapaneseMultitap class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::InitializeStateL()
-    {
-    iOwner->SetInlineEditUnderlineVisibility(EFalse);
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericShortKeyL
-// HHandling short keypress events of the numeric and the star.
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericShortKeyL(TInt aKey)
-    {
-    TBool cursorVisibility = EFalse;
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    if (aKey == EPtiKeyStar)
-        {
-        cursorVisibility = ETrue;
-        }
-    fepMan->SetInlineEditingCursorVisibilityL(cursorVisibility);
-    ptiEngine->AppendKeyPress((TPtiKey)aKey);
-    ret = UpdateInlineEditingCharacterL();
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericLongKeyL
-// Handling Numeric long keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNumericLongKeyL(TInt /*aKey*/)
-    {
-    iOwner->ChangeState(EMultiCompletion);
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleNaviKeyL
-// Handling navigate keypress event
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleNaviKeyL(TInt /*aKey*/,
-                                                               TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    ptiEngine->HandleCommandL(EPtiCommandUserActionComplete);
-    ret = UpdateInlineEditingCharacterL();
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::HandleAuxKeyL
-// Handling auxiliary keypress events including OK and Backspace
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::HandleAuxKeyL(TInt aKey,
-                                                              TKeyPressLength /*aLength*/)
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    switch(aKey)
-        {
-        case EKeyBackspace:
-        case EStdKeyBackspace:      /* 0x01 */
-            {
-            MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-            fepMan->SetInlineEditingCursorVisibilityL(ETrue);
-            ptiEngine->DeleteKeyPress();
-            ret = UpdateInlineEditingCharacterL();
-            }
-            break;
-        case EKeyOK:
-        case EStdKeyDevice3:        /* 0xA7 */
-        case EStdKeyEnter:          /* 0x03 */
-        case EStdKeyNkpEnter:       /* 0x88 */
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-            break;
-        default:
-            break;
-        }
-
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL
-// Update inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL()
-    {
-    MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-
-    if (!CommitInlineEditingCharacterL())
-        {
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC text = data->ConvertingString();
-        TInt cursorpos = data->CursorPosition();
-        if (text.Length() > 0)
-            {
-            if (State() == EConversion
-             || State() == ECandidate
-             || State() == ECandidateRetroActive
-             || State() == EPredictiveInput)
-            	{
-	            if (data->NumberOfPhrase() > 0)
-	                {
-	                TPtrC8 clauseChar = data->LengthOfPhrase();
-	                cursorpos = clauseChar[0];
-	                }
-            	}
-            fepMan->UpdateInlineEditL(text, cursorpos);
-            }
-        else
-            {
-            __ASSERT_DEBUG(text.Length() == 0,
-                RDebug::Print(
-                   _L("In TAknFepUiInputStateEntryJapaneseMultitap::UpdateInlineEditingCharacterL,\nINVALID DATA: ConvertingString. Roll back to initial State!")));
-            ptiEngine->ClearCurrentWord();
-            fepMan->CancelInlineEdit();
-            iOwner->ChangeState(EInitial);
-            }
-        ret = ETrue;
-        }
-
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateEntryJapaneseMultitap::CommitInlineEditingCharacterL
-// Commit inline editing string
-// ---------------------------------------------------------------------------
-//
-TBool TAknFepUiInputStateEntryJapaneseMultitap::CommitInlineEditingCharacterL()
-    {
-    CPtiEngine* ptiEngine = iOwner->PtiEngine();
-    TBool ret = EFalse;
-    const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-    TPtrC text = data->CompletedString();
-    if (text.Length() > 0)
-        {
-        iOwner->ChangeState(EMultiCompletion);
-        ret = ETrue;
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStatePredictiveInputJapanese::HandleCommandL
-// Handling Command
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateEntryJapaneseMultitap::
-    HandleCommandL(TInt aCommandId)
-    {
-    if(aCommandId == EAknFepSoftkeyCommit)
-        {
-        CPtiEngine* ptiEngine = iOwner->PtiEngine();
-        const MPtiEngineCompositionDataInterface* data = ptiEngine->CompositionData();
-        TPtrC textConv = data->ConvertingString();
-        TPtrC textComp = data->CompletedString();
-        MAknFepUICtrlCandidatePaneInterface* candidatePane =
-            UIContainer()->CandidatePane(MAknFepUICtrlContainerJapanese::
-                                         EJapaneseCandidatePane);
-        TInt curr = candidatePane->CurrentItemIndexOfCandidate();
-        if (curr > -1)
-            {
-            TInt old = 0;
-            ptiEngine->HandleCommandL(EPtiCommandUserActionGetCurrentIndexOfCandidates, &old);
-            while(curr > old)
-                {
-                ++old;
-                ptiEngine->HandleCommandL(EPtiCommandUserActionConvert);
-                }
-            while(curr < old)
-                {
-                --old;
-                ptiEngine->HandleCommandL(EPtiCommandUserActionPrevious);
-                }
-            }
-        candidatePane->HideWindow();
-        if (textConv.Length() > 0 || textComp.Length() > 0)
-            {
-            iOwner->ChangeState(EMultiCompletion);
-            }
-        else
-            {
-            iOwner->ChangeState(EInitial);
-            }
-        }
-    }
-
-// End of file