diff -r 000000000000 -r eb1f2e154e89 textinput/peninputarc/inc/peninputlayoutenginc/peninputlayouteng.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textinput/peninputarc/inc/peninputlayoutenginc/peninputlayouteng.h Tue Feb 02 01:02:04 2010 +0200 @@ -0,0 +1,189 @@ +/* +* Copyright (c) 2005-2006 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: header file of peninput layout engine +* +*/ + + + +#ifndef C_CPENINPUTLAYOUTENGINE_H +#define C_CPENINPUTLAYOUTENGINE_H + +// INCLUDES +#include +#include +#include + +#include + +class CFepUiLayoutInterface; +class MLayoutOwner; +class CImePluginFinder; +class CPtiEngine; +/** +* CFepLayoutEngine class. +* +* This is main class for outside users to create layout engine +* +* @lib feplayouteng.lib +* @since S60 V4.0 +*/ +class CFepLayoutEngine : public CBase + { +public: + /** + * Factory creator. + * + * @since S60 V4.0 + * @return The layout engine instance + */ + IMPORT_C static CFepLayoutEngine* NewL(); + + /** + * Factory creator. + * + * @since S60 V4.0 + * @param aPtiEngine The predictive engine instance + * @return The layout engine instance + */ + IMPORT_C static CFepLayoutEngine* NewL(CPtiEngine* aPtiEngine); + + /** + * Destructor. + * + * @since S60 V4.0 + */ + ~CFepLayoutEngine(); + + + /** + * Ceate ui layout + * + * @since S60 V4.0 + * @param aInputMethodId The input method layout id + * @param aLayoutOwner The layout owner + * @param aData Data for layout creation. E.g, The screen resolution data + * @return Pointer to Fep ui layout. + */ + IMPORT_C MPenUiLayoutBase* GetUiLayout(TUid aInputMethodId, + MLayoutOwner* aLayoutOwner,const TAny* aData = NULL); + + /** + * Return internal array + * + * @since S60 V4.0 + * @param aInputMethodId The input method layout id + */ + IMPORT_C const RArray& UiLayoutListL(TInt aInputMethodId); + + /** + * Return internal array to requried Ime plugin list + * + * @since S60 V4.0 + * @param aLanguage The required supporting language + * @param aPluginMode The required supporting mode + */ + IMPORT_C const RArray& ImePluginListL(TInt aLanguage, TInt aPluginMode); + + /** + * Return internal array to all supporing touch input languages + * + * @since S60 V4.0 + */ + IMPORT_C const RArray& TouchSupportLanguagesL(); + + + /** + * Is support TPluginInputMode for aLanguage. + * + * @since S60 v4.0 + * @param aLanguage Value of TLanguage + * @param aMode Value of TPluginInputMode + * @return ETrue if supported. Otherwise EFalse. + */ + IMPORT_C TBool IsSupportPluginMode( TLanguage aLanguage, TPluginInputMode aMode ) ; + + /** + * Initialize finder. + * + * @since S60 v4.0 + */ + IMPORT_C void InitializeL(); + +private: + /** + * 2nd phase constructor. + * + * @since S60 V4.0 + */ + void ConstructL(); + + /** + * Destructor + * + * @since S60 V4.0 + */ + CFepLayoutEngine(CPtiEngine* aPtiEngine = NULL); + + /** + * Create UI layout plugin list after input method changed + * + * @since S60 V4.0 + * @param aInputMethodId The layout implementation id. + */ + void FindImeLayoutL(TInt aInputMethodId); + +private: + /** + * current layout id + */ + TUid iLayoutId; + /** + * current input method id. HWR, VKB ... + */ + TInt iInputMethodId; + /** + * layout id list for current input method + * Own + */ + RArray iLayoutIdList; + /** + * current layout implementation + */ + CFepUiLayoutInterface* iCurInterface; + + /** + * current layout implementation + */ + CImePluginFinder* iImeFinder; + + /** + * current language support + */ + RArray iTouchSupportLanguages; + + /** + * current ime plugin list + */ + RArray iImePluginIdList; + + /** + * pti engine, NOT OWN + */ + CPtiEngine* iPtiEngine; + }; + +#endif C_CPENINPUTLAYOUTENGINE_H + +// End of file