fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.h
changeset 0 eb1f2e154e89
child 3 f5a1e66df979
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/peninputplugins/PeninputPluginKr/inc/PeninputPluginKr.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,228 @@
+/*
+* Copyright (c) 2002-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:
+*
+*/
+
+#ifndef __PENINPUTPLUGINKR_H__
+#define __PENINPUTPLUGINKR_H__
+
+#include <e32base.h>	// CBase
+#include <e32std.h>	 // TBuf
+#include <AknFepPenInputImePlugin.h>
+#include <centralrepository.h>
+
+class RPeninputServer;
+class CPtiEngine;
+class CPluginKrFepManagerBase;
+
+class CPeninputPluginKr : public CAknFepPenInputImePlugin
+    {
+public:
+
+    static CPeninputPluginKr* NewLC(TAny* aInitParams);
+    
+    static CPeninputPluginKr* NewL(TAny* aInitParams);
+    
+    virtual ~CPeninputPluginKr();
+
+private:
+
+    CPeninputPluginKr(RPeninputServer* aServer);
+    
+    void ConstructL();
+
+private: // from CAknFepPenInputImePlugin
+
+    /**
+     * Get layout UI interface
+     * 
+     * @since S60 v3.2
+     * @param aFepManager Fep manager interface pointer
+     * @param aLanguage Language that layout UI need to support
+     * @param aMode Speicifed layout UI mode to create
+     * @param aData Initialization data.
+     *
+     * @return The layout UI interface..
+     */
+    virtual MAknFepManagerInterface* GetInputMethodUiL(
+        MAknFepManagerUIInterface* aFepManager,
+        TLanguage aLanguage, 
+        TInt aMode,
+        const TDesC8& aData,
+        const TBool aIsSplitView = EFalse);
+    
+    /**
+     * Get layout UI interface
+     * 
+     * @since S60 v3.2
+     * @param aFepManager Fep manager interface pointer
+     * @param aLayoutId Speicifed layout UI id to create
+     * @param aData Initialization data.
+     *
+     * @return The layout UI interface..
+     */
+    virtual MAknFepManagerInterface* GetInputMethodUiL(
+        MAknFepManagerUIInterface* aFepManager,
+        TInt aLayoutId,
+        const TDesC8& aData);
+    
+    /**
+     * Activate current IME plugin.
+     * 
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    virtual void Activate();
+
+    /**
+     * Deactivate current IME plugin.
+     * 
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    virtual void DeActivate();
+
+    /**
+     * Get current IME plugin implementation ID.
+     * 
+     * @since S60 v3.2
+     *
+     * @return IME plugin implementation id.
+     */
+    virtual TInt ImeImplId();
+
+    /**
+     * Get current layout UI implementation id.
+     * 
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    virtual TInt LayoutUiImplId();
+
+    /**
+     * Handle pen input server event.
+     * 
+     * @param aEventId The event id, defined in <peninputcmd.h>
+     * @param aData The event related data.
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    virtual TBool HandleServerEventL(
+        TInt aEventId, 
+        const TDesC& aData);
+
+    /**
+     * Get suppored layout UI modes(VKB/HWR).
+     * 
+     * @since S60 v3.2
+     *
+     * @return Supported modes.
+     */
+    virtual TInt SupportModes(
+        CPtiEngine* aPtiEngine, 
+        RArray<TImePlguinImplDetail>& aSupportList) const;
+    
+    /**
+     * Get current layout UI mode.
+     * 
+     * @since S60 v3.2
+     *
+     * @return Current layout UI mode.
+     */
+    virtual TInt CurrentMode() const;
+    
+    /**
+     * Handle the menu command.The menu is launched by FEP
+     * The menu command is first passed to IME plugin, if 
+     * this function return EFalse, FEP handles it defaultly.
+     * 
+     * @param aCommandId The menu command id
+     * @return ETrue if IME plugin handled the command; 
+     *         EFalse otherwise.
+     */
+    virtual TBool HandleMenuCommandL(TInt aCommandId);
+    
+    /**
+     * Dynamiclly update menu items during it displays. 
+     * 
+     * aMenuPane The menu pane pointer.
+     * @return None.
+     */
+    virtual void DynInitMenuPaneL(
+        CAknFepUiInterfaceMenuPane* aMenuPane);
+    
+
+private:
+    
+    void FindUiLayoutImplementationL();
+    
+    CPluginKrFepManagerBase* GetPluginUiL( TInt aMode );
+    
+    TInt SupportModesL(
+        CPtiEngine* /*aPtiEngine*/,
+        RArray<TImePlguinImplDetail>& aSupportList) const; 
+
+    CPluginKrFepManagerBase* CPeninputPluginKr::GetCurrentUi();
+
+    /**
+     * Get VKB UI interface
+     *
+     * @return VKB UI pointer
+     */
+    CPluginKrFepManagerBase* GetVkbUiL();
+
+    /**
+     * Get Itut UI interface
+     *
+     * @return Itut UI pointer
+     */
+    CPluginKrFepManagerBase* GetItutUiL();
+
+    /**
+     * Get FSQ UI interface
+     *
+     * @return FSQ UI pointer
+     */
+    CPluginKrFepManagerBase* GetFSQUiL(TInt aLang);
+    
+    void ShowListQueryL( const TInt aResourceId );
+    
+private:
+    
+    RPeninputServer& iPeninputServer;
+
+    RArray<TInt> iUiLayoutImpIdList;
+
+    TInt iPenInputMode;
+    
+     /**
+     * Pen input server pointer. Not own.
+     */
+    RPointerArray<CPluginKrFepManagerBase> iAllUiManagers;
+    
+    CPluginKrFepManagerBase* iPluginKrFepManager;
+    
+    CRepository* iRepository;
+    
+    TInt iResId;
+    
+    };
+
+#endif  // __PENINPUTPLUGINKR_H__
+