--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/peninputplugins/peninputimepluginjp/src/pluginfepmanagerbase.cpp Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,762 @@
+/*
+* Copyright (c) 2002-2007 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
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+
+#include <w32std.h>
+#include <s32mem.h>
+#include <aknedsts.h> //CAknEdwinState
+#include <centralrepository.h>
+
+#include "pluginfepmanagerbase.h"
+#include "peninputimepluginjp.h"
+#include <peninputclient.h>
+#include <aknfeppeninputenums.h>
+#include <AknFepInternalCRKeys.h>
+
+// Implementation of Class CPluginFepManagerBase
+
+// -----------------------------------------------------------------------------
+// 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:
+ SetLayoutRange(reinterpret_cast<CAknEdwinState*>(aParam));
+ break;
+ case ECmdPenInputSetWindowPos:
+ SetLayoutPosition(*reinterpret_cast<TRect*>(aParam));
+ break;
+ case ECmdPenInputCaseMode:
+ {
+ 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 ECmdPenInputJapaneseSetting:
+ {
+ SaveCurrentInfo(aParam);
+ SendCommandToServer(aCommandId, aParam);
+ }
+ break;
+ case ECmdPenInputJapaneseSetSubRange:
+ {
+ iSubRange = aParam;
+ }
+ break;
+ case ECmdPenInputJapaneseGetModeOfSubRange:
+ {
+ TInt newMode = *((TInt*)aParam);
+ if(iSubRange == ERangeFullWidthEnglish)
+ {
+ newMode = ELatin;
+ }
+ else if( iSubRange == ERangeFullWidthNumeric )
+ {
+ newMode = ENumber;
+ }
+ else if( iSubRange == ERangeKatakana ||
+ iSubRange == ERangeFullWidthKatakana )
+ {
+ newMode = EKatakana;
+ }
+
+ else if( iSubRange == ERangeHiraganaKanji )
+ {
+ newMode = EHiraganaKanji;
+ }
+ else if( iSubRange == ERangeHiraganaOnly )
+ {
+ newMode = EHiragana;
+ }
+ *((TInt*)aParam) = newMode;
+ }
+ break;
+ case ECmdPenInputSendEditorTextAndCurPos:
+ {
+ TFepInputContextFieldData* pIcfData =
+ reinterpret_cast<TFepInputContextFieldData*>( 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<const TUint8*>( pIcfData );
+ writeStream.WriteL( pData, dataSize );
+
+ const TUint8* pText = reinterpret_cast<const TUint8*>( pIcfData->iText.Ptr() );
+ writeStream.WriteL( pText, textSize );
+
+ 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()
+ {
+ if (iPenInputServer->IsVisible())
+ {
+ 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::ResourceChanged
+// 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;
+ if( iLanguage == ELangJapanese )
+ {
+ SendCommandToServer(ECmdPenInputLanguage, (TInt)aLanguage);
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// 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::SetMode
+// 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::SetStarKeyFlag
+// Set the Star key flag.
+// (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(CPenInputImePluginJp& aOwner,
+ RPeninputServer* aPenInputServer)
+ :iOwner(aOwner), iPenInputServer(aPenInputServer), iSubRange(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
+ if ( aPermittedMode == EAknEditorNumericInputMode )
+ {
+ iPermittedRange = ERangeNumber;
+ }
+ else if (aPermittedMode & EAknEditorTextInputMode)
+ {
+ //derived from edwin and EAknEditorTextInputMode
+ iPermittedRange = ERangeHiraganaKanji |
+ ERangeKatakana |
+ ERangeFullWidthKatakana |
+ ERangeFullWidthEnglish |
+ ERangeFullWidthNumeric |
+ ERangeNumber |
+ ERangeEnglish |
+ ERangeSymbol;
+ }
+ else if (aPermittedMode & EAknEditorSecretAlphaInputMode )
+ {
+ //derived from EAknEditorSecretAlphaInputMode
+ iPermittedRange = ERangeNumber |
+ ERangeEnglish |
+ ERangeSymbol;
+ }
+ else
+ {
+ iPermittedRange = ERangeInvalid;
+ if (aPermittedMode & EAknEditorNumericInputMode )
+ {
+ iPermittedRange |= ERangeNumber | ERangeSymbol;
+ }
+ if (aPermittedMode & EAknEditorKatakanaInputMode )
+ {
+ iPermittedRange |= ERangeKatakana;
+ }
+ if (aPermittedMode & EAknEditorFullWidthTextInputMode )
+ {
+ iPermittedRange |= ERangeFullWidthEnglish;
+ }
+ if (aPermittedMode & EAknEditorFullWidthNumericInputMode )
+ {
+ iPermittedRange |= ERangeFullWidthNumeric;
+ }
+ if (aPermittedMode & EAknEditorFullWidthKatakanaInputMode )
+ {
+ iPermittedRange |= ERangeFullWidthKatakana;
+ }
+ if (aPermittedMode & EAknEditorHiraganaKanjiInputMode )
+ {
+ iPermittedRange |= ERangeHiraganaKanji;
+ }
+ if (aPermittedMode & EAknEditorHiraganaInputMode )
+ {
+ iPermittedRange |= ERangeHiraganaOnly;
+ }
+ if (aPermittedMode & EAknEditorHalfWidthTextInputMode )
+ {
+ iPermittedRange |= ERangeEnglish;
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CPluginFepManagerBase::SetLayoutRange
+// Set layout primary range.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPluginFepManagerBase::SetLayoutRange(const CAknEdwinState* aEditorState)
+ {
+ //calculate permitted ranges
+ if(aEditorState)
+ {
+ if( aEditorState->Flags() & EAknEditorFlagLatinInputModesOnly )
+ {
+ iPermittedRange &= (ERangeNumber |
+ ERangeEnglish |
+ ERangeSymbol);
+ }
+ }
+
+ SendCommandToServer(ECmdPenInputPermittedRange, iPermittedRange);
+
+ TInt priRange;
+ if( !aEditorState )
+ {
+ //if editor state is null,which indicates that
+ //the editor is not derived from edwin
+ priRange = ERangeNumber;
+ }
+ else
+ {
+ //if still not get, then set according to default input mode
+ switch(iHkbMode)
+ {
+ case ELatin:
+ priRange = (iCharWidth)? ERangeFullWidthEnglish: ERangeEnglish;
+ break;
+ case ENumber:
+ priRange = (iCharWidth)? ERangeFullWidthNumeric : ERangeNumber;
+ break;
+ case EHiraganaKanji:
+ priRange = ERangeHiraganaKanji;
+ break;
+ case EKatakana:
+ priRange = (iCharWidth)? ERangeFullWidthKatakana : ERangeKatakana;
+ break;
+ case EHiragana:
+ priRange = ERangeHiraganaOnly;
+ break;
+ default:
+ {
+ TInt defaultInputMode = aEditorState->DefaultInputMode();
+ switch(defaultInputMode)
+ {
+ case EAknEditorNumericInputMode:
+ priRange = ERangeNumber ;
+ break;
+ case EAknEditorTextInputMode:
+ {
+ TLanguage editorLan = GetLocalLanguage(aEditorState);
+ priRange = ERangeEnglish;
+
+ if( editorLan == ELangTest)
+ {
+ editorLan = iLanguage;
+ }
+ if( editorLan == ELangJapanese )
+ {
+ //load last use range
+ TInt lastUsedRange = LayoutLastUsedRange();
+ if( lastUsedRange != ELangJapanese )
+ {
+ //invalid repository key value or first time use HWR,
+ priRange = ERangeHiraganaKanji;
+ }
+ else
+ {
+ priRange = lastUsedRange;
+ }
+ }
+ }
+ break;
+ default:
+ priRange = ERangeEnglish ;
+ break;
+ }
+ }
+ }
+ }
+
+ SendCommandToServer(ECmdPenInputRange, priRange);
+ }
+
+// -----------------------------------------------------------------------------
+// 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<sizeof(TInt)> 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<sizeof(TRect)> 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;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPluginFepManagerBase::SaveCurrentInfo
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CPluginFepManagerBase::SaveCurrentInfo(const TInt aParam)
+ {
+ iCharWidth = (aParam & EPenInputJapaneseSettingCharacterWidth)?
+ ETrue : EFalse;
+ iPredictive = (aParam & EPenInputJapaneseSettingPredictive)?
+ ETrue : EFalse;
+ iConversion = (aParam & EPenInputJapaneseSettingConversion)?
+ ETrue : EFalse;
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPluginFepManagerBase::IsCharWidth
+// Check the character width.
+// -----------------------------------------------------------------------------
+//
+TBool CPluginFepManagerBase::IsCharWidth() const
+ {
+ return iCharWidth;
+ }
+
+// -----------------------------------------------------------------------------
+// CPluginFepManagerBase::IsJapanesePredictive
+// Check the Japanese predictive.
+// -----------------------------------------------------------------------------
+//
+TBool CPluginFepManagerBase::IsJapanesePredictive() const
+ {
+ return iPredictive;
+ }
+
+// -----------------------------------------------------------------------------
+// CPluginFepManagerBase::IsJapaneseHwrConversion
+// Check the Japanese HWR conversion.
+// -----------------------------------------------------------------------------
+//
+TBool CPluginFepManagerBase::IsJapaneseHwrConversion() const
+ {
+ return iConversion;
+ }
+
+ // End Of File