diff -r 000000000000 -r eb1f2e154e89 textinput/ptienginev2/inc/PtiEngine.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/ptienginev2/inc/PtiEngine.inl Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,322 @@ +/* +* Copyright (c) 2003 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: Inline methods for CPtiEngineImpl +* +*/ + + + +#include "PtiCore.h" +#include "PtiLanguage.h" + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::IsCoreForInputMode +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::IsCoreForInputMode(TPtiEngineInputMode aMode) const + { + if ((iCurrentLanguage) && (iCurrentLanguage->GetCore(aMode))) + { + return ETrue; + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::IsCore +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::IsCore() const + { + if ((iCurrentLanguage) && (iCurrentLanguage->GetCore(iInputMode))) + { + return ETrue; + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::Core +// +// --------------------------------------------------------------------------- +// +inline CPtiCore* CPtiEngineImpl::Core() const + { + return static_cast(iCurrentLanguage->GetCore(iInputMode)); + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::CoreForInputMode +// +// --------------------------------------------------------------------------- +// +inline CPtiCore* CPtiEngineImpl::CoreForInputMode(TPtiEngineInputMode aMode) const + { + return static_cast(iCurrentLanguage->GetCore(aMode)); + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::CurrentLanguage +// +// --------------------------------------------------------------------------- +// +inline MPtiLanguage* CPtiEngineImpl::CurrentLanguage() + { + return iCurrentLanguage; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::CurrentWord +// +// --------------------------------------------------------------------------- +// +inline TPtrC CPtiEngineImpl::CurrentWord() + { + return iTextBuffer; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::InputMode +// +// --------------------------------------------------------------------------- +// +inline TPtiEngineInputMode CPtiEngineImpl::InputMode() const + { + return iInputMode; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::SetCase +// +// --------------------------------------------------------------------------- +// +inline void CPtiEngineImpl::SetCase(TPtiTextCase aCase) + { + iCase = aCase; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::Case +// +// --------------------------------------------------------------------------- +// +inline TPtiTextCase CPtiEngineImpl::Case() const + { + return iCase; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::NumberOfLanguages +// +// --------------------------------------------------------------------------- +// +inline TInt CPtiEngineImpl::NumberOfLanguages() const + { + // iLanguages is always available if CPtiEngineImpl::NewL succeeded, + // so this can be done safely. + return iLanguages->Count() - 1; // Remove Numeric from count. + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::LastEnteredKey +// +// --------------------------------------------------------------------------- +// +inline TPtiKey CPtiEngineImpl::LastEnteredKey() const + { + if (iInputSequence.Length() > 0) + { + return (TPtiKey)iInputSequence[iInputSequence.Length() - 1]; + } + return EPtiKeyNone; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::CurrentInputSequence +// +// --------------------------------------------------------------------------- +// +inline TPtrC8 CPtiEngineImpl::CurrentInputSequence() const + { + return TPtrC8(iInputSequence); + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::SetObserver +// +// --------------------------------------------------------------------------- +// +inline void CPtiEngineImpl::SetObserver(MPtiObserver* aObserver) + { + iObserver = aObserver; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::Observer +// +// --------------------------------------------------------------------------- +// +inline MPtiObserver* CPtiEngineImpl::Observer() + { + return iObserver; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::ClearBuffers +// +// --------------------------------------------------------------------------- +// +inline void CPtiEngineImpl::ClearBuffers() + { + iInputSequence.Zero(); + iTextBuffer.Zero(); + iCaseBuffer.Zero(); + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::IsChinese +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::IsChinese() const + { + if ((iCurrentLanguage) && ((iCurrentLanguage->LanguageCode() == ELangPrcChinese) || + (iCurrentLanguage->LanguageCode() == ELangTaiwanChinese) || + (iCurrentLanguage->LanguageCode() == ELangHongKongChinese))) + { + return ETrue; + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::IsToneMarkOrSeparator +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::IsToneMarkOrSeparator(TInt aChar) const + { + if (iInputMode == EPtiEngineZhuyinByPhrase || + iInputMode == EPtiEngineZhuyinPhraseHalfQwerty) + { + if ((aChar == KPtiEngineChineseSeparator) || + (aChar == KPtiZhuyinTone0) || + (aChar == KPtiZhuyinTone1) || + (aChar == KPtiZhuyinTone2) || + (aChar == KPtiZhuyinTone3) || + (aChar == KPtiZhuyinTone4)) + { + return ETrue; + } + } + else + { + if ((aChar == KPtiEngineChineseSeparator) || + (aChar == KPtiPinyinTone0) || + (aChar == KPtiPinyinTone1) || + (aChar == KPtiPinyinTone2) || + (aChar == KPtiPinyinTone3) || + (aChar == KPtiPinyinTone4)) + { + return ETrue; + } + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::SupportsUserDictionaries +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::SupportsUserDictionaries(CPtiCore* aCore) + { + if (aCore) + { + MPtiCoreInfo *info = aCore->GetCoreInfo(); + if (info && (info->CapsBits() & ESupportUserDictionaries)) + { + return ETrue; + } + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::IsModeChineseQwerty +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::IsModeChineseQwerty(TPtiEngineInputMode aMode) const + { + if ((aMode == EPtiEnginePinyinQwerty) || + (aMode == EPtiEnginePinyinPhraseQwerty) || + (aMode == EPtiEngineStrokeQwerty) || + (aMode == EPtiEngineStrokePhraseQwerty) || + (aMode == EPtiEngineZhuyinQwerty) || + (aMode == EPtiEngineZhuyinPhraseQwerty) || + (aMode == EPtiEngineNormalCangjieQwerty) || + (aMode == EPtiEngineEasyCangjieQwerty) || + (aMode == EPtiEngineInputModeZhuyinMiniQwertyFind)|| + (aMode == EPtiEngineAdvCangjieQwerty)|| + (aMode == EPtiEnginePinyinPhraseHalfQwerty)|| + (aMode == EPtiEngineStrokePhraseHalfQwerty)|| + (aMode == EPtiEngineZhuyinPhraseHalfQwerty)) + { + return ETrue; + } + + return EFalse; + } + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::AllowCapitalize +// +// --------------------------------------------------------------------------- +// +inline TBool CPtiEngineImpl::AllowCapitalize(TUint16 aChar) const + { + if (iInputMode == EPtiEngineQwerty) + { + // Following lower case characters are behind shift in some + // keymappings and should not be capitalized by PtiEngine. + if (Case() == EPtiCaseUpper && + (aChar == 0x00e9 || aChar == 0x00f9 || aChar == 0x00ec)) + { + return EFalse; + } + } + + return ETrue; + } + + +// --------------------------------------------------------------------------- +// CPtiEngineImpl::CaseSequence +// +// --------------------------------------------------------------------------- +// +inline TPtrC8 CPtiEngineImpl::CaseSequence() + { + return iCaseBuffer; + } + +// End of file