fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/peninputplugins/peninputimepluginjp/inc/peninputimepluginjp.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,280 @@
+/*
+* 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:            input mode plugin header file
+*
+*/
+
+
+
+
+
+
+
+
+
+
+
+#ifndef C_PENINPUTIMEPLUGINCHN_H
+#define C_PENINPUTIMEPLUGINCHN_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <peninputclient.h>
+#include <aknfeppeninputimeplugin.h>
+#include <eikon.hrh>
+#include <AknFepManagerInterface.h>
+//#include <AknFepManagerUIInterface.h>
+#include <aknfeppeninputenums.h>
+#include <AknFepGlobalEnums.h>
+
+// Forward declaration
+class MAknFepManagerInterface;
+class CAknEdwinState;
+class CRepository;
+class CPluginFepManagerBase;
+
+/**
+ *  Pen input mode plugin Japanese implementation
+ *
+ *  @lib peninputimepluginjp.lib
+ *  @since S60 v3.2
+ */
+class CPenInputImePluginJp : public CAknFepPenInputImePlugin
+    {
+public:
+
+    /**
+     * Symbian constructor.
+     *
+     * @since S60 v3.2
+     * @param aInitParams Init data plugin, actually it is
+     *        a pointer of RPeninputServer.
+     * @return Pointer to created CPenInputImePluginJp object
+     */
+    static CPenInputImePluginJp* NewL(TAny* aInitParams);
+
+    static CPenInputImePluginJp* NewLC(TAny* aInitParams);
+
+    /**
+     * Destructor.
+     */
+    ~CPenInputImePluginJp();
+
+public: // 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..
+     */
+    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..
+     */
+    MAknFepManagerInterface* GetInputMethodUiL(
+                            MAknFepManagerUIInterface* aFepManager,
+                            TInt aLayoutId,
+                            const TDesC8& aData);
+
+    /**
+     * Activate current IME plugin.
+     *
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    void Activate();
+
+    /**
+     * Deactivate current IME plugin.
+     *
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+    void DeActivate();
+
+    /**
+     * Get current IME plugin implementation ID.
+     *
+     * @since S60 v3.2
+     *
+     * @return IME plugin implementation id.
+     */
+    TInt ImeImplId();
+
+    /**
+     * Get current layout UI implementation id.
+     *
+     * @since S60 v3.2
+     *
+     * @return None.
+     */
+     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.
+     */
+     TBool HandleServerEventL(TInt aEventId, const TDesC& aData);
+
+    /**
+     * Get suppored layout UI modes(VKB/HWR).
+     *
+     * @since S60 v3.2
+     *
+     * @param aPtiEngine  A pointer to ptiengine
+     * @param aSupportList A reference to result ime plugin list
+     * @return Meaningless.
+     */
+     TInt SupportModes(CPtiEngine* aPtiEngine,
+                       RArray<TImePlguinImplDetail>& aSupportList) const;
+
+    /**
+     * Get current layout UI mode.
+     *
+     * @since S60 v3.2
+     *
+     * @return Current layout UI mode.
+     */
+     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.
+     */
+    TBool HandleMenuCommandL(TInt aCommandId);
+
+    /**
+     * Dynamiclly update menu items during it displays.
+     *
+     * aMenuPane The menu pane pointer.
+     * @return None.
+     */
+    void DynInitMenuPaneL(CAknFepUiInterfaceMenuPane* aMenuPane);
+
+private:
+
+    /**
+     * C++ default constructor.
+     *
+     * @param aServer Pen input server pointer
+     */
+    CPenInputImePluginJp(RPeninputServer* aServer);
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     *
+     * @return None
+     */
+    void ConstructL();
+
+    /**
+     * Enumuate all layout UI ids and save them to iUiLayoutImpIdList.
+     *
+     * @return None
+     */
+    void FindUiLayoutImplementationL();
+
+    /**
+     * Get HWR UI interface
+     *
+     * @return HWR UI pointer
+     */
+    CPluginFepManagerBase* GetHwrUiL();
+
+    /**
+     * Get VKB UI interface
+     *
+     * @return VKB UI pointer
+     */
+    CPluginFepManagerBase* GetVkbUiL();
+
+    /**
+     * Get current UI interface
+     *
+     * @return current UI pointer
+     */
+    inline CPluginFepManagerBase* GetCurrentUi();
+        
+    /**
+     * Get suppored layout UI modes(VKB/HWR).
+     * 
+     * @since S60 v3.2
+     *
+     * @param aPtiEngine  A pointer to ptiengine
+     * @param aSupportList A reference to result ime plugin list
+     * @return Meaningless.
+     */
+    TInt SupportModesL(CPtiEngine* aPtiEngine, 
+                       RArray<TImePlguinImplDetail>& aSupportList) const;
+                       
+private:
+
+    /**
+     * Pen input server pointer. Not own.
+     */
+    RPeninputServer* iPenInputServer;
+
+    /**
+     * Pen input server pointer. Not own.
+     */
+    RArray<TInt> iUiLayoutImpIdList;
+
+    /**
+     * Current layout UI mode.
+     */
+    TInt iPenInputMode;
+
+    /**
+     * Pen input server pointer. Not own.
+     */
+    RPointerArray<CPluginFepManagerBase> iAllUiManagers;
+
+    };
+
+#include "peninputimepluginjp.inl"
+
+#endif //C_PENINPUTIMEPLUGINCHN_H
+
+//End Of File