fep/aknfep/src/aknfepzhuyinkeyhandler.cpp
changeset 36 a7632c26d895
parent 35 0f326f2e628e
child 42 b3eaa440ab06
--- a/fep/aknfep/src/aknfepzhuyinkeyhandler.cpp	Fri Jul 23 16:49:01 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,611 +0,0 @@
-/*
-* Copyright (c) 2009 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:                
-*
-*/
-
-
-
-
-#include "aknfepzhuyinkeyhandler.h"
-
-const TInt KBTLoopLength1 = 3;
-const TInt KBTLoopLength2 = 4;
-const TInt KBTLoopLength3 = 5;
-
-const TInt KBTLoopLength = 5;
-
-const TInt KCLKCount1 = 1;
-const TInt KCLKCount2 = 2;
-const TInt KCLKCount3 = 3;
-const TInt KCLKCount4 = 4;
-const TInt KCLKCount5 = 5;
-
-const TInt KTimerOut = 700000;
-
-_LIT(KPtiKey1_1, "\x3105");
-_LIT(KPtiKey1_2, "\x3106");
-_LIT(KPtiKey1_3, "\x3107");
-_LIT(KPtiKey1_4, "\x3108");
-
-_LIT(KPtiKey2_1, "\x3109");
-_LIT(KPtiKey2_2, "\x310A");
-_LIT(KPtiKey2_3, "\x310B");
-_LIT(KPtiKey2_4, "\x310C");
-
-_LIT(KPtiKey3_1, "\x310D");
-_LIT(KPtiKey3_2, "\x310E");
-_LIT(KPtiKey3_3, "\x310F");
-
-_LIT(KPtiKey4_1, "\x3110");
-_LIT(KPtiKey4_2, "\x3111");
-_LIT(KPtiKey4_3, "\x3112");
-
-_LIT(KPtiKey5_1, "\x3113");
-_LIT(KPtiKey5_2, "\x3114");
-_LIT(KPtiKey5_3, "\x3115");
-_LIT(KPtiKey5_4, "\x3116");
-
-_LIT(KPtiKey6_1, "\x3117");
-_LIT(KPtiKey6_2, "\x3118");
-_LIT(KPtiKey6_3, "\x3119");
-
-_LIT(KPtiKey7_1, "\x311A");
-_LIT(KPtiKey7_2, "\x311B");
-_LIT(KPtiKey7_3, "\x311C");
-_LIT(KPtiKey7_4, "\x311D");
-
-_LIT(KPtiKey8_1, "\x311E");
-_LIT(KPtiKey8_2, "\x311F");
-_LIT(KPtiKey8_3, "\x3120");
-_LIT(KPtiKey8_4, "\x3121");
-
-_LIT(KPtiKey9_1, "\x3122");
-_LIT(KPtiKey9_2, "\x3123");
-_LIT(KPtiKey9_3, "\x3124");
-_LIT(KPtiKey9_4, "\x3125");
-_LIT(KPtiKey9_5, "\x3126");
-
-_LIT(KPtiKey0_1, "\x3127");
-_LIT(KPtiKey0_2, "\x3128");
-_LIT(KPtiKey0_3, "\x3129");
-
-_LIT(KPtiKeyStar_1, "\x0020");
-_LIT(KPtiKeyStar_2, "\x02CA");
-_LIT(KPtiKeyStar_3, "\x02C7");
-_LIT(KPtiKeyStar_4, "\x02CB");
-_LIT(KPtiKeyStar_5, "\x02D9");
-
-
-// ---------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------
-//
-ZhuyinKeyTable::ZhuyinKeyTable()
-    {
-    }
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-//
-ZhuyinKeyTable::~ZhuyinKeyTable()
-    {
-    }
-
-// ---------------------------------------------------------
-// Get butten loop length.
-// ---------------------------------------------------------
-//
-TInt ZhuyinKeyTable::GetBtLoopLength ( TPtiKey aKey )
-    {
-    switch ( aKey )
-        {
-        case EPtiKey0:
-        case EPtiKey3:
-        case EPtiKey4:
-        case EPtiKey6:
-            {
-            return KBTLoopLength1;
-            }
-        case EPtiKey1:
-        case EPtiKey2:
-        case EPtiKey5:
-        case EPtiKey7:
-        case EPtiKey8:
-            {
-            return KBTLoopLength2;
-            }
-        case EPtiKey9:
-        case EPtiKeyStar:
-            {
-            return KBTLoopLength3;
-            }
-        default:
-            return 0;
-        }
-    }
-
-// ---------------------------------------------------------
-// Get zhuyin symbol.
-// ---------------------------------------------------------
-//
-TBool ZhuyinKeyTable::GetUnicode ( TPtiKey aKey, TInt aClkCount, TDes& aOutput )
-    {
-    aOutput.Zero();
-    switch ( aKey )
-        {
-        case EPtiKey0:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey0_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey0_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey0_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey1:
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey1_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey1_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey1_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey1_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-        case EPtiKey2:
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey2_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey2_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey2_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey2_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-        case EPtiKey3:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey3_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey3_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey3_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey4:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey4_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey4_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey4_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey5:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey5_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey5_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey5_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey5_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey6:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey6_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey6_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey6_3);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey7:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey7_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey7_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey7_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey7_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey8:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey8_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey8_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey8_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey8_4);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKey9:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKey9_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKey9_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKey9_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKey9_4);
-                    return ETrue;
-                case KCLKCount5:
-                    aOutput.Append(KPtiKey9_5);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        case EPtiKeyStar:
-            {
-            switch ( aClkCount )
-                {
-                case KCLKCount1:
-                    aOutput.Append(KPtiKeyStar_1);
-                    return ETrue;
-                case KCLKCount2:
-                    aOutput.Append(KPtiKeyStar_2);
-                    return ETrue;
-                case KCLKCount3:
-                    aOutput.Append(KPtiKeyStar_3);
-                    return ETrue;
-                case KCLKCount4:
-                    aOutput.Append(KPtiKeyStar_4);
-                    return ETrue;
-                case KCLKCount5:
-                    aOutput.Append(KPtiKeyStar_5);
-                    return ETrue;
-                default:
-                    return EFalse;
-                }
-            }
-        default:
-            return EFalse;
-        }
-    }
-
-// ---------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler::CZhuyinKeyHandler( ) :
-    CActive ( EPriorityStandard ), // Standard priority
-    iLastKey ( EPtiKeyNone ), 
-    iTimeOut ( ETrue ),
-    iBtClickNum ( 0 ),
-    iBtLoopLength ( 1 ),
-    iState( 0 ),
-    iStatusChgFlag(EInit)
-    {
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler* CZhuyinKeyHandler::NewLC()
-    {
-    CZhuyinKeyHandler* self = new ( ELeave ) CZhuyinKeyHandler();
-    CleanupStack::PushL( self );
-    self->ConstructL( );
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler* CZhuyinKeyHandler::NewL()
-    {
-    CZhuyinKeyHandler* self = CZhuyinKeyHandler::NewLC();
-    CleanupStack::Pop( self ); // self;
-    return self;
-    }
-
-// ---------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::ConstructL( )
-    {
-    User::LeaveIfError( iTimer.CreateLocal( ) ); // Initialize timer
-    CActiveScheduler::Add( this ); // Add to scheduler
-    }
-
-// ---------------------------------------------------------
-// Cancel and destroy.
-// ---------------------------------------------------------
-//
-CZhuyinKeyHandler::~CZhuyinKeyHandler( )
-    {
-    Cancel( ); // Cancel any request, if outstanding
-    iTimer.Close( ); // Destroy the RTimer object
-    // Delete instance variables if any
-    }
-
-// ---------------------------------------------------------
-// How to cancel me.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::DoCancel( )
-    {
-    iTimer.Cancel( );
-    }
-
-// ---------------------------------------------------------
-// Function for making the initial request.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::Start()
-    {
-    Cancel(); // Cancel any request, just to be sure
-    iTimer.After( iStatus, KTimerOut ); // Set for later
-    SetActive(); // Tell scheduler a request is active
-    }
-
-// ---------------------------------------------------------
-// Get Zhuyin symbol according to the inputting key.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetZhuyinSymbol ( TPtiKey aKey, TDes& aOutBuf )
-    {
-    TInt ret = 0;
-    Start();
-    // if the same button is pressed for many times.
-    if ( iLastKey == aKey
-        && iTimeOut == EFalse )
-        {
-        if ( iBtLoopLength != 0 )
-            {
-            iBtClickNum++;
-            if ( iBtClickNum > iBtLoopLength )
-                {
-                iBtClickNum = 1;
-                }
-            }
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        ret = 0;
-        }
-    // if the pressed button is changed or time out event is happened.
-    else if ( iLastKey == aKey
-        && iTimeOut != EFalse )
-        {
-        // Update iBtClickNum
-        iBtClickNum = 1;
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        ret = 1;
-        }
-    else
-        {
-        // Update iBtClickNum
-        iBtClickNum = 1;
-        // Update iBtUnicodeNum
-        iBtLoopLength = ZhuyinKeyTable::GetBtLoopLength(aKey);
-        // Search for the corresponding unicode and value aOutBuf.
-        ZhuyinKeyTable::GetUnicode(aKey,iBtClickNum,aOutBuf);
-        if ( iBtLoopLength != 0 )
-            {
-            ret = 1;
-            }
-        else
-            {
-            ret = -1;
-            }
-        }
-    iLastKey = aKey;
-    iTimeOut = EFalse;
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// Set status change flag.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::SetStatusChgFlag ( MZhuyinKeyHandler::TStatusChgFlag aChgFlag )
-    {
-    iStatusChgFlag = aChgFlag;
-    }
-
-// ---------------------------------------------------------
-// Get the status change flag.
-// ---------------------------------------------------------
-//
-MZhuyinKeyHandler::TStatusChgFlag CZhuyinKeyHandler::GetStatusChgFlag ()
-    {
-    return iStatusChgFlag;
-    }
-
-// ---------------------------------------------------------
-// Reset all the member variables.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::Reset()
-    {
-    iLastKey = EPtiKeyNone; 
-    iTimeOut = ETrue ;
-    iBtClickNum = 0;
-    iBtLoopLength = 1;
-    }
-
-
-// ---------------------------------------------------------
-// Get tonemark according to symbol in front of cursor.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetToneMark ( const TDes& aBaseSymbol, TDes& aOutBuf )
-    {
-    TInt ret = 0;
-    iBtLoopLength = KBTLoopLength;
-    iTimeOut = ETrue ;
-    if ( aBaseSymbol.Compare(KPtiKeyStar_1) == 0 )
-        {
-        iBtClickNum = KCLKCount1;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_2) == 0 )
-        {
-        iBtClickNum = KCLKCount2;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_3) == 0 )
-        {
-        iBtClickNum = KCLKCount3;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_4) == 0 )
-        {
-        iBtClickNum = KCLKCount4;
-        }
-    else if ( aBaseSymbol.Compare(KPtiKeyStar_5) == 0 )
-        {
-        iBtClickNum = KCLKCount5;
-        }
-    else
-        {
-        iBtClickNum = 0;
-        ret = 1;
-        }
-    iBtClickNum++;
-    if ( iBtClickNum > iBtLoopLength )
-        {
-        iBtClickNum = 1;
-        }
-    ZhuyinKeyTable::GetUnicode(EPtiKeyStar,iBtClickNum,aOutBuf);
-    iLastKey = EPtiKeyStar;
-    iTimeOut = EFalse;
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// Get tonemark according to symbol in front of cursor.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::RunL( )
-    {
-    iTimeOut = ETrue;
-    }
-
-// ---------------------------------------------------------
-// Override to handle leaves from RunL(). Default implementation causes.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::RunError( TInt aError )
-    {
-    return aError;
-    }
-
-// ---------------------------------------------------------
-// Set whether state change from entry to spelling editing is automatical.
-// ---------------------------------------------------------
-//
-void CZhuyinKeyHandler::SetState( TInt aState )
-    {
-    iState = aState;
-    }
-
-// ---------------------------------------------------------
-// Get state change states.
-// ---------------------------------------------------------
-//
-TInt CZhuyinKeyHandler::GetState()
-    {
-    return iState;
-    }
-
-// End of file