--- a/fep/aknfep/src/AknFepUiInputStateInitialFullNumber.cpp Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +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 TAknFepUiInputStateInitialFullNumber methods.
-*
-*/
-
-
-
-
-
-
-
-
-
-
-
-
-// INCLUDE FILES
-#include "AknFepUiInputStateInitialFullNumber.h"
-#include "AknFepUIManagerStateInterface.h" // MAknFepUIManagerStateInterface
-#include "AknFepManagerUIInterface.h" // MAknFepManagerUIInterface
-#include "AknFepManager.h"
-
-#include <PtiEngine.h>
-#include <featmgr.h> //FeatureManager
-#include <PtiCompositionDataIF.h> // MPtiEngineCompositionDataInterface
-#include <jplangutil.h>
-
-// CONSTANTS
-const TInt KNumAllowedIdleNumericChars = 21;
-
-_LIT(KAknFepPlainNumbers, "1234567890");
-const TUint16 KAllAllowedNumericChars[] =
- {'*','+','p','w','#','1','2','3','4','5','6','7','8','9','0', ';','.',',','-','E','?'};
-const TKeyEvent KEventsForSecondPass[] =
- {
- {42, EStdKeyNkpAsterisk, 3, 0},
- {43, EStdKeyNkpPlus, 3, 0},
- {112, 80, EModifierAutorepeatable, 0},
- {119, 87, EModifierAutorepeatable, 0},
- {35, EStdKeyHash, EModifierAutorepeatable, 0},
- {EPtiKey1, EPtiKey1, EModifierAutorepeatable, 0},
- {EPtiKey2, EPtiKey2, EModifierAutorepeatable, 0},
- {EPtiKey3, EPtiKey3, EModifierAutorepeatable, 0},
- {EPtiKey4, EPtiKey4, EModifierAutorepeatable, 0},
- {EPtiKey5, EPtiKey5, EModifierAutorepeatable, 0},
- {EPtiKey6, EPtiKey6, EModifierAutorepeatable, 0},
- {EPtiKey7, EPtiKey7, EModifierAutorepeatable, 0},
- {EPtiKey8, EPtiKey8, EModifierAutorepeatable, 0},
- {EPtiKey9, EPtiKey9, EModifierAutorepeatable, 0},
- {EPtiKey0, EPtiKey0, EModifierAutorepeatable, 0},
- {59, EStdKeySemiColon, EModifierAutorepeatable, 0},
- {46, 122, EModifierAutorepeatable, 0},
- {44, 121, EModifierAutorepeatable, 0},
- {45, 130, EModifierAutorepeatable, 0},
- {101, 69, EModifierAutorepeatable|EModifierLeftShift, 0},
- {63, EStdKeyForwardSlash, EModifierAutorepeatable|EModifierLeftShift, 0}
- };
-
-/**
- * AknFepUiInputStateInitialFullNumber class.
- *
- */
-//============================ MEMBER FUNCTIONS ==============================
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialFullNumber::TAknFepUiInputStateInitialFullNumber
-// C++ default Constructor
-// ---------------------------------------------------------------------------
-//
-TAknFepUiInputStateInitialFullNumber::TAknFepUiInputStateInitialFullNumber(
- MAknFepUIManagerStateInterface* aOwner,
- MAknFepUICtrlContainerJapanese* aUIContainer)
- :TAknFepUiInputStateInitialJapaneseBase(aOwner, aUIContainer)
- {
- }
-
-// ---------------------------------------------------------------------------
-// TAknFepUiInputStateInitialFullNumber::InitializeStateL
-// Initialize State
-// ---------------------------------------------------------------------------
-//
-void TAknFepUiInputStateInitialFullNumber::InitializeStateL()
- {
- TAknFepUiInputStateInitialJapaneseBase::InitializeStateL();
-
- // Setup PtiEngine
- CPtiEngine* ptiEngine = iOwner->PtiEngine();
- const TWidthChar width = iOwner->FepMan()->CharacterWidth();
- TPtiEngineInputMode inputmode = EPtiEngineInputModeNone;
- switch(width)
- {
- case EHalfWidthChar:
- inputmode = (iOwner->IsQwerty())?
- EPtiEngineQwerty
- : EPtiEngineNumeric;
- break;
-
- case EFullWidthChar:
- inputmode = (iOwner->IsQwerty())?
- EPtiEngineFullWidthNumericQwerty
- : EPtiEngineFullWidthNumeric;
- break;
-
- default: // no operation
- break;
- }
- if (inputmode != EPtiEngineInputModeNone)
- {
- ptiEngine->SetInputMode(inputmode);
-
- if (inputmode == EPtiEngineNumeric)
- {
- TRAP_IGNORE(ptiEngine->SetExternalKeyMapL(EPtiEngineNumeric, EPtiKeyStar,
- (TDesC&)iOwner->NumberModeKeyMapping(),
- EPtiCaseLower))
- }
- }
-
- ptiEngine->ClearCurrentWord();
- }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleKeyL(TInt aKey, TKeyPressLength aLength)
- {
- CPtiEngine* ptiengine = iOwner->PtiEngine();
- MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
- TBool rtn = EFalse;
-
- switch(ptiengine->InputMode())
- {
- case EPtiEngineNumeric: // non-Qwerty number input
- rtn = HandleOwnKeyL(aKey, aLength);
- break;
- case EPtiEngineQwerty: // Qwerty number input
- case EPtiEngineFullWidthNumericQwerty: // Qwerty full-width number input
- rtn = HandleQwertyKeyL(aKey, aLength, fepMan->CharacterWidth());
- break;
- case EPtiEngineFullWidthNumeric: // non-Qwerty full-width number input
- rtn = TAknFepUiInputStateInitialJapaneseBase::HandleKeyL(aKey, aLength);
- break;
- default:
- break;
- }
- return rtn;
- }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleOwnKeyL(TInt aKey, TKeyPressLength aLength)
- {
- CPtiEngine* ptiengine = iOwner->PtiEngine();
- MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
-
- if (aLength == ELongKeyPress)
- {
- switch (aKey)
- {
- case EKeyRightArrow:
- case EKeyLeftArrow:
- case EKeyDownArrow:
- case EKeyUpArrow:
- case EKeyBackspace:
- return EFalse;
- case EPtiKeyStar:
- if (!fepMan->HashKeySelectionInUse()
- && fepMan->EditSubmenuInUse())
- {
- fepMan->LaunchSpecialCharacterTableL();
- }
- default:
- return ETrue;
- }
- }
-
- if(aKey == EPtiKeyStar)
- {
- TBool append = EFalse;
- if (aLength == EShortKeyPress)
- {
- if (fepMan->EditSubmenuInUse())
- {
- if (fepMan->IsOnlyNumericPermitted())
- {
- append = ETrue;
- }
- else
- {
- fepMan->ClearCcpuFlag(CAknFepManager::ECcpuStateIgnoreStarUp);
- }
- }
- else
- {
- if (fepMan->IsAbleToLaunchSCT())
- {
- fepMan->LaunchSpecialCharacterTableL();
- }
- else
- {
- append = ETrue;
- }
- }
- }
- else
- {
- if (fepMan->EditSubmenuInUse() && fepMan->IsAbleToLaunchSCT())
- {
- fepMan->LaunchSpecialCharacterTableL();
- }
- }
- if (append)
- {
- iData = aKey;
- TPtrC text = ptiengine->AppendKeyPress((TPtiKey)aKey);
-
- // star key is inactive if keymapping is empty.
- if (text.Length() > 0 && text[0] != 0)
- {
- fepMan->NewCharacterL(text);
-
- // Commit immediately if there is only one character associated to the key.
- TBuf<CAknFepManager::EMaximumFepWordLength> mapdata;
- ptiengine->MappingDataForKey((TPtiKey)aKey, mapdata, ptiengine->Case());
- if (mapdata.Length() <= 1)
- {
- fepMan->CommitInlineEditL();
- ptiengine->ClearCurrentWord();
- iData = 0;
- }
- }
- }
-
- return ETrue;
- }
-
- if(iData)
- {
- fepMan->CommitInlineEditL();
- ptiengine->ClearCurrentWord();
-
- iData = 0;
- }
- return EFalse;
- }
-
-TBool TAknFepUiInputStateInitialFullNumber::HandleQwertyKeyL(TInt aKey,
- TKeyPressLength /*aLength*/, const TWidthChar aWidth)
- {
- TBool rtn = EFalse;
-
- MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
- CAknFepCaseManager* caseMan = iOwner->CaseMan();
- CPtiEngine* ptiengine = iOwner->PtiEngine();
-
- fepMan->ClearFlag(CAknFepManager::EFlagNoActionDuringShiftKeyPress);
-
- if ( fepMan->IsOnlyNumericPermitted() )
- {
- if (aKey == EStdKeySpace || aKey == EStdKeyEnter)
- {
- // return Consumed
- return ETrue;
- }
- if (!IsQwertyKey(aKey))
- {
- // return Not Consumed
- return EFalse;
- }
-
- TChar chr(0);
- TKeyEvent numKey;
-
- ptiengine->AppendKeyPress((TPtiKey)aKey);
- const MPtiEngineCompositionDataInterface* data = ptiengine->CompositionData();
- TPtrC text = data->CompletedString();
- if (text.Length() > 0 && text[0] != 0)
- {
- TChar compchar = text[0];
- if (aWidth == EFullWidthChar)
- {
- TBuf<2> halfstring;
- TInt convlen = JPLangUtil::ConvertFullToHalfWidth(
- text.Left(1), halfstring);
- if (convlen > 0)
- {
- compchar = halfstring[0];
- }
- }
- for (TInt i = 0; i < KNumAllowedIdleNumericChars; i++)
- {
-
- if (compchar == KAllAllowedNumericChars[i])
- {
- numKey = KEventsForSecondPass[i];
- chr = KAllAllowedNumericChars[i];
- break;
- }
- }
- }
-
- if ((chr != 0) &&
- ((iOwner->NumberModeKeyMapping().Locate(chr) != KErrNotFound) ||
- (KAknFepPlainNumbers().Locate(chr) != KErrNotFound)) ||
- fepMan->IsAllowedKeymappingForNumberMode(chr))
- {
- if (aWidth == EFullWidthChar)
- {
- // Full-width characters are committed immediately.
- fepMan->NewCharacterL(text);
- fepMan->CommitInlineEditL();
- }
- else
- {
- // If editor is in number mode and incoming key press would produce
- // any of the allowed number mode characters,
- // resend suitable key event let it pass through FEP. That way phone idle
- // receives the event too. This also takes care of remapping
- // different qwerty keymap layouts to edwin events.
- fepMan->SetFlag(CAknFepManager::EFlagPassNextKey);
- CCoeEnv::Static()->SimulateKeyEventL(numKey, EEventKey);
- }
- }
- ptiengine->ClearCurrentWord();
-
- return ETrue;
- }
-
- return rtn;
- }
-
-
-
-// Functions from MPtiObserver interface
-void TAknFepUiInputStateInitialFullNumber::KeyTimerExpired()
- {
- if (iData)
- {
- MAknFepManagerUIInterface* fepMan = iOwner->FepMan();
- TRAP_IGNORE(fepMan->CommitInlineEditL())
-
- CPtiEngine* ptiengine = iOwner->PtiEngine();
- ptiengine->ClearCurrentWord();
-
- iData = 0;
- }
- }
-
-// End of file