diff -r 0f326f2e628e -r a7632c26d895 fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp --- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp Fri Jul 23 16:49:01 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,751 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Layout UI interface base class implementation -* -*/ - - - - - - - - - - - - -// System includes -#include -#include -#include // CAknEdwinState -#include -#include -#include -#include -#include - -// User includes -#include "pluginfepmanagerbase.h" -#include "peninputimepluginitut.h" - -// ======== MEMBER FUNCTIONS ======== - - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::CPluginFepManagerBase -// Destructor -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CPluginFepManagerBase::~CPluginFepManagerBase() - { - delete iRepository; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::OnInit -// Initalize UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::OnInit() - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::RetrieveEditorMaxLength -// Explicitly get ICF max length from layout UI . -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::RetrieveEditorMaxLength() - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::UpdateCaseMode -// Update local copy of case mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::UpdateCaseMode( TInt aCaseMode ) - { - iLastCase = aCaseMode; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetNumberModeKeyMappingL -// Set layout UI current number mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetNumberModeKeyMappingL( - TAknEditorNumericKeymap aAknEditorNumericKeymap ) - { - SendCommandToServer( ECmdPenInputEditorNumericKeyMap, - aAknEditorNumericKeymap ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::HandleKeyL -// Handle key event. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CPluginFepManagerBase::HandleKeyL( TInt aKey, TKeyPressLength aLength, TEventCode /*aEventCode*/ ) - { - return iHkbUi->HandleKeyL( aKey, aLength ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::HandleCommandL -// Handle command come from FEP. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::HandleCommandL( TInt aCommandId ) - { - SendCommandToServer( aCommandId ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::HandleCommandL -// Handle command come from FEP. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::HandleCommandL(TInt aCommandId,TInt aParam) - { - switch ( aCommandId ) - { - case ECmdPenInputRange: - { - iHkbMode = aParam; - } - break; - case ECmdPenInputPermittedRange: - { - iLastCase = ECaseInvalide; - SetLayoutPermitedRanges( aParam ); - } - break; - case ECmdPenInputEditorState: - { - CAknEdwinState* state = - reinterpret_cast( aParam ); - SetLayoutRange( state ); - } - break; - case ECmdPenInputSetWindowPos: - { - TRect* rect = reinterpret_cast( aParam ); - ASSERT( rect ); - SetLayoutPosition( *rect ); - } - break; - case ECmdPenInputCaseMode: - //if( aParam != iLastCase ) - { - SendCommandToServer( ECmdPenInputCase, aParam ); - iLastCase = aParam; - } - break; - case ECmdPenInputEditorCustomNumericKeyMap: - { - TDesC* res = (TDesC*)aParam; - TPtrC8 param; - param.Set((TUint8*)res->Ptr(), res->Size()); - SendCommandToServer( aCommandId, param ); - SetNumberModeKeyMappingL - ( ( TAknEditorNumericKeymap )EKeymapFromResource ); - } - break; - case ECmdPenInputSuggestRange: - iSuggestedRange = aParam; - if( iSuggestedRange == ERangeAccent ) - { - iSuggestedRange = ERangeEnglish; - } - break; - case ECmdPenInputSendEditorTextAndCurPos: - { - TFepInputContextFieldData* pIcfData = - reinterpret_cast( aParam ); - TInt dataSize = sizeof( TFepInputContextFieldData ); - TInt textSize = pIcfData->iText.Size(); - - HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt)); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(dataSize); - writeStream.WriteInt32L(textSize); - - const TUint8* pData = reinterpret_cast( pIcfData ); - writeStream.WriteL( pData, dataSize ); - - const TUint8* pText = reinterpret_cast( pIcfData->iText.Ptr() ); - writeStream.WriteL( pText, textSize ); - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - } - break; - case ECmdPenInputFingerMatchList: - { - TFepInputAllCandidates* pCanData = reinterpret_cast(aParam); - TInt count = (*pCanData).iCandidates.Count(); - - TInt transferSize = 2 * sizeof(TInt); - RArray sizeArray; - for (TInt i = 0; i < count; i++) - { - sizeArray.Append((*pCanData).iCandidates[i].Size()); - transferSize += sizeArray[i] + sizeof(TInt); - } - - HBufC8* buf = HBufC8::NewLC(transferSize); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(count); - writeStream.WriteInt32L(transferSize); - - for (TInt i = 0; i < count; i++) - { - writeStream.WriteInt32L(sizeArray[i]); - const TUint16* piData = (*pCanData).iCandidates[i].Ptr(); - writeStream.WriteL(piData, sizeArray[i]/2); - } - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - sizeArray.Close(); - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - - } - break; - case ECmdPenInputSetPromptText: - { - TFepPromptText* pPromptData = - reinterpret_cast( aParam ); - - TInt dataSize = sizeof( TFepPromptText ); - TInt textSize = 0; - - if (pPromptData->iText.Length()) - { - textSize = pPromptData->iText.Size(); - } - - HBufC8* buf = HBufC8::NewLC(dataSize + textSize + 2*sizeof(TInt)); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(dataSize); - writeStream.WriteInt32L(textSize); - - const TUint8* pData = reinterpret_cast( pPromptData ); - writeStream.WriteL( pData, dataSize ); - - if (textSize != 0) - { - const TUint16* pText = pPromptData->iText.Ptr(); - writeStream.WriteL( pText, textSize/2 ); - } - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - } - break; - case ECmdPenInputFingerMatchIndicator: - { - TFepIndicatorInfo* pIndicatorData = - reinterpret_cast( aParam ); - - HBufC8* buf = HBufC8::NewLC(4 * sizeof(TInt)); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(pIndicatorData->iIndicatorImgID); - writeStream.WriteInt32L(pIndicatorData->iIndicatorMaskID); - writeStream.WriteInt32L(pIndicatorData->iIndicatorTextImgID); - writeStream.WriteInt32L(pIndicatorData->iIndicatorTextMaskID); - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - } - break; - case ECmdPenInputSendEditMenuData: - { - TInt* commandList = reinterpret_cast( aParam ); - - HBufC8* buf = HBufC8::NewLC( (*commandList+1) * sizeof(TInt)); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(*commandList); - for (TInt i=1;i<=*commandList;i++) - { - writeStream.WriteInt32L(*(commandList+i)); - } - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - } - break; - - case ECmdPenInputSymbolOfHardKeyOne: - { - TFepSymbolOfHardwareOne* pIndicatorData = - reinterpret_cast( aParam ); - - HBufC8* buf = HBufC8::NewLC(3 * sizeof(TInt)); - TPtr8 bufPtr = buf->Des(); - - RDesWriteStream writeStream; - writeStream.Open(bufPtr); - CleanupClosePushL(writeStream); - - writeStream.WriteInt32L(pIndicatorData->iSymbol1); - writeStream.WriteInt32L(pIndicatorData->iSymbol2); - writeStream.WriteInt32L(pIndicatorData->iSymbol3); - - writeStream.CommitL(); - - SendCommandToServer( aCommandId, bufPtr ); - - CleanupStack::PopAndDestroy(&writeStream); - CleanupStack::PopAndDestroy(buf); - } - break; - default: - SendCommandToServer( aCommandId, aParam ); - break; - } - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::CloseUI -// Close plugin layout UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::CloseUI() - { - iPenInputServer->ActivateLayout( EFalse ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::ActivateUI -// Activate plugin layout UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::ActivateUI() - { - iPenInputServer->ActivateLayout( ETrue ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::EditorMaxLength -// Get max text length of layout UI ICF control. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CPluginFepManagerBase::EditorMaxLength() - { - return iMaxEditorLength; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SizeChanged -// Handle screen size changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::ResourceChanged(TInt aType) - { - iPenInputServer->ResourceChanged(aType); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetNextFepUI -// Set underlining UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetNextFepUI( MAknFepManagerInterface* aNextUi ) - { - iHkbUi = aNextUi; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SupportLanguage -// Get support language in sepecfied mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CPluginFepManagerBase::SupportLanguage( TInt /*aMode*/ ) const - { - return iLanguage; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetInputLanguageL -// Set current language. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetInputLanguageL( TLanguage aLanguage ) - { - iLanguage = aLanguage; - //maybe language check is needed. - TInt lang = (TInt)aLanguage; - ASSERT( lang >=0 ); - SendCommandToServer( ECmdPenInputLanguage, lang ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetFepAwareEditorText -// Set editor text and cursor information to layout UI ICF control. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetFepAwareEditorText( - const TFepInputContextFieldData& /*aIcfData*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetMode -// Set layout UI mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -#ifdef RD_INTELLIGENT_TEXT_INPUT -void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, - TBool aQwertyInputMode, TInt aKeyboardType) -#else -void CPluginFepManagerBase::SetMode( TInt aMode, TBool aPredictive, - TBool aQwertyInputMode ) -#endif - { - iHkbUi->SetMode( aMode, aPredictive, aQwertyInputMode ); - } - -#ifdef RD_INTELLIGENT_TEXT_INPUT - TBool CPluginFepManagerBase::IsValidFnKeyPress() const - { - return EFalse; - } - TBool CPluginFepManagerBase::IsValidLongChrKeyPress() const - { - return EFalse; - } -#endif -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetMode -// Set layout UI current case. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetCase( TCase aCase ) - { - iHkbUi->SetCase( aCase ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::ExpireMultitapTimer -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::ExpireMultitapTimer() - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::IsValidNumericLongKeyPress -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CPluginFepManagerBase::IsValidNumericLongKeyPress( TInt /*aKey*/ ) const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::AddTextToUserDictionaryL -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::AddTextToUserDictionaryL( const TDesC& /*aText*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::GetFormatOfFepInlineText -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::GetFormatOfFepInlineText( - TCharFormat& /*aFormat*/, - TInt& /*aNumberOfCharactersWithSameFormat*/, - TInt /*aPositionOfCharacter*/ ) const - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::IsValidShiftKeyPress -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CPluginFepManagerBase::IsValidShiftKeyPress() const - { - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetEditorContext -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetEditorContext( TInt /*aContext*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetEditorContext -// Compatibile with HKB UI. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetStarKeyFlag( TBool /*aSet*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::CPluginFepManagerBase -// C++ default constructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CPluginFepManagerBase::CPluginFepManagerBase( CPenInputImePluginItut& aOwner, - RPeninputServer* aPenInputServer ) - :iOwner( aOwner ), iPenInputServer( aPenInputServer ) - { - iSuggestedRange = ERangeInvalid; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::BaseConstructL -// Symbian 2nd phase constructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::BaseConstructL() - { - iRepository = CRepository::NewL( KCRUidAknFep ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetLayoutPermitedRanges -// Set layout permited ranges. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetLayoutPermitedRanges( TInt aPermittedMode ) - { - // Not derived from edwin - SendCommandToServer( ECmdPenInputPermittedRange, aPermittedMode == EAknEditorNumericInputMode ); - - /*if ( aPermittedMode == EAknEditorNumericInputMode ) - { - iPermittedRange = ERangeNumber; - } - else if ( aPermittedMode & EAknEditorTextInputMode ) - { - // Derived from edwin and EAknEditorTextInputMode - iPermittedRange = ERangeNative | - ERangeNumber | - ERangeEnglish | - ERangeSymbol; - } - else if ( aPermittedMode & EAknEditorSecretAlphaInputMode ) - { - // Derived from EAknEditorSecretAlphaInputMode - iPermittedRange = ERangeNumber | - ERangeEnglish | - ERangeSymbol; - } - else - { - iPermittedRange = ERangeNative | - ERangeNumber | - ERangeEnglish | - ERangeSymbol; - }*/ - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetLayoutRange -// Set layout primary range. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetLayoutRange( - const CAknEdwinState* aEditorState ) - { - if ( aEditorState ) - { - SendCommandToServer( ECmdPenInputRange, - aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly ); - } - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SendCommandToServer -// Send command to pen input server utility function. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId ) - { - iPenInputServer->HandleCommand( aCommandId ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SendCommandToServer -// Send command to pen input server utility function. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, TInt aParam ) - { - TBuf8 buf; - buf.Append( (TUint8*)&aParam, sizeof(TInt) ); - SendCommandToServer( aCommandId, buf ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SendCommandToServer -// Send command to pen input server utility function. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SendCommandToServer( TInt aCommandId, - const TDesC8& aParam ) - { - iPenInputServer->HandleCommand( aCommandId, aParam ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::LayoutLastUsedRange -// Get layout UI last used range. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CPluginFepManagerBase::LayoutLastUsedRange() - { - TInt value = 0; - if ( iRepository ) - { - iRepository->Get( KAknFepLastUsedRange, value ); - } - - return value; - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::SetLayoutPosition -// Set layout UI position. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPluginFepManagerBase::SetLayoutPosition( const TRect& pParam ) - { - TBuf8 buf; - buf.Append( (TUint8*)&pParam, sizeof( pParam ) ); - - SendCommandToServer( ECmdPenInputSetWindowPos, buf ); - } - -// ----------------------------------------------------------------------------- -// CPluginFepManagerBase::GetLocalLanguage -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TLanguage CPluginFepManagerBase::GetLocalLanguage( - const CAknEdwinState* aEditorState ) const - { - TLanguage language = ELangTest; - // Check for a local language override - if ( aEditorState ) - { - TInt aknEditorFlags = aEditorState->Flags() ; - if ( aknEditorFlags & EAknEditorFlagLatinInputModesOnly ) - { - language = ELangEnglish; - } - else - { - language = aEditorState->LocalLanguage(); - } - } - - return language; - } - - // End Of File