diff -r 5a1685599b76 -r 8152b1f1763a fep/aknfep/src/aknfepuiinputminiqwertysogoustrokephraseplugin.cpp --- a/fep/aknfep/src/aknfepuiinputminiqwertysogoustrokephraseplugin.cpp Wed Sep 15 12:34:44 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* Copyright (c) 2008 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 TAknFepInputMiniQwertySogouStrokePhrasePlugin definition. - * -*/ - -// System includes -#include -#include -#include -#include -#include -#include -#include //CAknWarningNote -// User includes -#include "AknFepUIManagerStateInterface.h" -#include "AknFepUICtrlInputPane.h" -#include "AknFepUICtrlPinyinPopup.h" //Pinyin phrase -#include "aknfepuictrleditpane.h" //pinyin phrase creation -#include "AknFepUICtrlCandidatePane.h" -#include "AknFepManager.h" - -#include "aknfepuiinputminiqwertysogoustrokephraseplugin.h" -#include "AknFepUiInputStateCandidateQwertyBaseChinesePhrase.h" - -// Constant definition -const TInt KMaxShowKeystrokeCount = 255; -const TInt KMaxPhraseCreationCount = 10; -const TInt KMaxKeystrokeCount = 31; -const TInt16 KStrokeDelimiter = 0x2022; - -// --------------------------------------------------------------------------- -// TAknFepInputMiniQwertySogouStrokePhrasePlugin::TAknFepInputMiniQwertySogouStrokePhrasePlugin -// C++ default constructor -// --------------------------------------------------------------------------- -// -TAknFepInputMiniQwertySogouStrokePhrasePlugin::TAknFepInputMiniQwertySogouStrokePhrasePlugin( - MAknFepUIManagerStateInterface* aOwner, - MAknFepUICtrlContainerChinese* aUIContainer, - TUIState aState ) - : iOwner( aOwner ), - iUIContainer( aUIContainer ), - iState( aState ), - iValid( EFalse ) - { - } - -// --------------------------------------------------------------------------- -// TAknFepInputMiniQwertySogouStrokePhrasePlugin::operator= -// -// --------------------------------------------------------------------------- -// -void TAknFepInputMiniQwertySogouStrokePhrasePlugin::operator=( const - TAknFepInputMiniQwertySogouStrokePhrasePlugin& aPlugin ) - { - Mem::Copy( this, &aPlugin, sizeof(TAknFepInputMiniQwertySogouStrokePhrasePlugin)); - } - -// --------------------------------------------------------- -// TAknFepInputMiniQwertySogouStrokePhrasePlugin::Enable -// Enable or disable the plugin. -// --------------------------------------------------------- -// -void TAknFepInputMiniQwertySogouStrokePhrasePlugin::Enable( TBool aValid ) - { - iValid = aValid; - } - -// --------------------------------------------------------- -// TAknFepInputMiniQwertySogouStrokePhrasePlugin::IsEnable -// Get the state of the plugin. -// --------------------------------------------------------- -// -TBool TAknFepInputMiniQwertySogouStrokePhrasePlugin::IsEnable() - { - return iValid; - } - -// --------------------------------------------------------------------------- -// TAknFepInputMiniQwertySogouStrokePhrasePlugin::CommitInlineEEPL -// Commint text to EEP or editor -// --------------------------------------------------------------------------- -// -TBool TAknFepInputMiniQwertySogouStrokePhrasePlugin::CommitInlineEEPL( - const TDesC& aDes ) - { - TInt charCount = aDes.Length(); - MAknFepManagerUIInterface* fepMan = iOwner->FepMan(); - MAknFepUICtrlEditPane* editpane = iUIContainer->EditPaneWindow(); - CDesCArrayFlat* keyStoke = editpane->KeystrokeArray(); - RArray* keycode = editpane->KeycodeArray(); - CDesCArrayFlat* phraseArray = editpane->PhraseArray(); - CDesCArrayFlat* phraseShowKeyStroke = editpane->PhraseShowKeyStrokeArray(); - RArray* phraseKeycode = editpane->PhraseKeycodeArray(); - TBuf buf; - TBuf<1> strokeDLT; - strokeDLT.Append( KStrokeDelimiter ); - - phraseArray->AppendL( aDes ); - - TInt phraseCount = phraseArray->Count(); - TInt index = 0; - TInt isFound = -1; - - TInt strokeDLTCount = 0; - for ( TInt j = 0; j < keyStoke->Count(); j++ ) - { - if ( keyStoke->MdcaPoint( j ) == strokeDLT ) - { - strokeDLTCount++; - if ( strokeDLTCount == charCount ) - { - index = j; - } - isFound = 0; - } - } - - TInt phraseCharacterCount = 0; - for ( TInt m = 0; m < phraseCount; m++ ) - { - phraseCharacterCount += (*phraseArray)[m].Length(); - } - - //phrase creation state - if ( phraseCount > 1 || ( 0 == isFound && charCount <= strokeDLTCount )) - { - editpane->SetPhraseCreationFlag( ETrue ); - - // Tell sogou core which phrase is selected. It is used for phrase creation. - TBuf phraseSelected; - phraseSelected.FillZ(); - if ( aDes.Length() <= KMaxPhraseCreationCount ) - { - phraseSelected.Append( aDes ); - iOwner->PtiEngine()->HandleCommandL( EPtiCommandSelectElement, - ( TAny* )( &phraseSelected )); - } - - if ( 0 == isFound && index < keyStoke->Count() - 1 ) - { - for ( TInt i = 0; i <= index; i++ ) - { - TPtrC ptr = keyStoke->MdcaPoint( 0 ); - buf.Append( ptr ); - keyStoke->Delete( 0); - phraseKeycode->AppendL( (*keycode)[0]); - keycode->Remove( 0 ); - } - phraseShowKeyStroke->AppendL( buf ); - editpane->SetCursorIndexOfKeystroke( 0 ); - editpane->DisableCursor(); - return ETrue; - } - else - { - HBufC* phraseCreated = HBufC::NewLC( phraseCharacterCount ); - TPtr keyPtr = phraseCreated->Des(); - for ( TInt ii = 0; ii < phraseCount; ++ii ) - { - TPtrC ptrZi = phraseArray->MdcaPoint( ii ); - keyPtr.Append( ptrZi ); - } - - AddPhrasePinyinToPti(); - - if ( 0 != isFound || ( 0 == isFound && index == keyStoke->Count() - 1 ) ) - { - editpane->ResetAllArray(); - } - fepMan->NewTextL( phraseCreated->Des()); - fepMan->CommitInlineEditL(); - fepMan->PtiEngine()->CommitCurrentWord(); - CleanupStack::PopAndDestroy(); - return EFalse; - } - } - else - { - HBufC* phraseCreated = HBufC::NewLC( phraseCharacterCount ); - TPtr keyPtr = phraseCreated->Des(); - for ( TInt ii = 0; ii < phraseCount; ++ii ) - { - TPtrC ptrZi = phraseArray->MdcaPoint( ii ); - keyPtr.Append( ptrZi ); - } - editpane->ResetAllArray(); - editpane->SetPhraseCreationFlag( EFalse ); - fepMan->NewTextL( phraseCreated->Des()); - fepMan->CommitInlineEditL(); - iOwner->PtiEngine()->SetPredictiveChineseChar( phraseCreated->Des()); - CleanupStack::PopAndDestroy(); - return EFalse; - } - } - -// --------------------------------------------------------- -// TAknFepInputMiniQwertyPinyinPhraseBase::AddPhrasePinyinToPti -// Add phrase to DB. -// --------------------------------------------------------- -// -void TAknFepInputMiniQwertySogouStrokePhrasePlugin::AddPhrasePinyinToPti() - { - MAknFepUICtrlEditPane* editpane = iUIContainer->EditPaneWindow(); - CDesCArrayFlat* phraseShowKeyStroke = editpane->PhraseShowKeyStrokeArray(); - CDesCArrayFlat* keyStoke = editpane->KeystrokeArray(); - TBuf phraseCreatedStroke; - phraseCreatedStroke.FillZ(); - for ( TInt i = 0; i < phraseShowKeyStroke->Count(); i++ ) - { - TPtrC ptrPhraseKeyStroke = phraseShowKeyStroke->MdcaPoint(i); - phraseCreatedStroke.Append(ptrPhraseKeyStroke); - } - for ( TInt j = 0; j < keyStoke->Count(); j++ ) - { - TPtrC ptrKeyStroke = keyStoke->MdcaPoint(j); - phraseCreatedStroke.Append(ptrKeyStroke); - } - //Add the phrase pinyin to the DB by PTI Engine - TRAP_IGNORE( iOwner->PtiEngine()->HandleCommandL( - EPtiCommandSetPinyinForLearnWord, (TAny*)( &phraseCreatedStroke ))); - } - -// End of file