textinput/peninputsplititut/inc/peninputsplititutwindowmanager.h
changeset 0 eb1f2e154e89
child 7 a47de9135b21
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputsplititut/inc/peninputsplititutwindowmanager.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,317 @@
+/*
+* Copyright (c) 2002-2005 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:  drop-down list control
+*
+*/
+
+
+#ifndef C_SPLITITUTWINDOWMANAGER_H
+#define C_SPLITITUTWINDOWMANAGER_H
+
+#include <peninputlayout.h>
+#include <peninputpluginutils.h>
+#include <peninputinputcontextfield.h>
+
+#include <peninputlayoutvkb.h>
+#include "peninputsplititutlayout.h"
+#include "peninputsplititutpropertysubscriber.h"
+#include "peninputsplititutlayoutcontext.h"
+
+class CSplitItutWindow;
+
+
+/**
+ *  class CSplitItutWindowManager.
+ *
+ *  Split itu-t window manager class.
+ *
+ *  @lib peninputsplititut.lib
+ *  @since S60 v5.0
+ */
+class CSplitItutWindowManager : public CBase,
+                                public MItutPropertySubscriber
+    {
+public:
+    /** 
+     * Symbian constructor.
+     *
+     * @since S60 5.0
+     * 
+     * @param aLayoutOwner The MLayoutOwner
+     * @param iDataMgr The data mgr
+     * @return Pointer to created CSplitItutWindowManager object
+     */
+    static CSplitItutWindowManager* NewL( CSplitItutUiLayout* aLayoutOwner,
+                                          CSplitItutDataMgr* iDataMgr);
+
+    /**
+     * standard c++ destructor.
+     *
+     * @since S60 5.0
+     * @return none
+     */
+    ~CSplitItutWindowManager();
+    
+    /**
+     * Handle control event
+     *
+     * @since Series 60 5.0
+     * @param aEventType
+     * @param aCtrl
+     * @param aEventData
+     * @return None    
+     */
+    void HandleCtrlEventL( TInt aEventType, 
+                           CFepUiBaseCtrl* aCtrl, 
+                           const TDesC& aEventData);
+
+    /**
+     * Handle command event
+     *
+     * @since Series 60 5.0
+     * @param aCmd
+     * @param aData
+     * @return TBool    
+     */
+    TBool HandleCommandL(TInt aCmd, TUint8* aData);
+
+    /**
+     * From MItutPropertySubscriber
+     * Set property
+     *
+     * @since Series 60 5.0
+     * @param aPropertyName
+     * @param aPropertyValue
+     * @return None    
+     */
+    void SetPropertyL( MItutPropertySubscriber::TItutProperty aPropertyName, 
+                       const TDesC& aPropertyValue);
+
+    /**
+     * handle size change
+     *
+     * @since Series 60 5.0
+     * @return None    
+     */
+    TInt SizeChanged();
+
+    /**
+     * Get ui layout pointer
+     *
+     * @since Series 60 5.0
+     * @return ui layout pointer    
+     */
+    CFepUiLayout* UiLayout();
+
+    /**
+     * submit text
+     *
+     * @since Series 60 5.0
+     * @param aEventData
+     * @return None    
+     */
+    void SubmitText(const TDesC& aEventData);
+
+    /**
+     * show/hide arrow keys
+     *
+     * @since Series 60 5.0
+     * @param aShowFlag
+     * @return None    
+     */
+    void ShowArrowBtn(TInt aShowFlag);
+    
+    /**
+     * Handle application change info
+     *
+     * @since Series 60 5.0
+     * @param aInfo
+     * @return None    
+     */
+    void HandleAppInfoChangeL(const TDesC& aInfo); 
+    
+    /**
+     * simulate raw event
+     *
+     * @since Series 60 5.0
+     * @param aScanCode
+     * @param aType
+     * @return None    
+     */
+    void SimulateRawEvent(TInt aScanCode, TRawEvent::TType aType); 
+
+    /**
+     * handle skin change
+     *
+     * @since Series 60 5.0
+     * @return None    
+     */
+    TInt OnSkinChange();
+    
+    /**
+     * set last raw key down
+     *
+     * @since Series 60 5.0
+     * @param aScanCode
+     * @param aKeyDown
+     * @param aCtrl
+     * @return None    
+     */
+    void SetLastRawKeyDown(TInt aScanCode, TBool aKeyDown, CFepUiBaseCtrl* aCtrl);    
+
+    /**
+     * create chinese specific controls
+     *
+     * @since Series 60 5.0
+     * @return None    
+     */
+    void CreateChineseSpecificCtrlsIfNeededL();
+    
+    /**
+     * apply variant laf data
+     *
+     * @since Series 60 5.0
+     * @param aResolutionChange
+     * @return None    
+     */
+    void ApplyVariantLafDataL(TBool aResolutionChange);
+
+    /**
+     * apply variant laf data
+     *
+     * @since Series 60 5.0
+     * @param aResolutionChange
+     * @return None    
+     */
+    CFepUiBaseCtrl* Control(TInt aCtrlId);
+    
+    /**
+     * apply variant laf data
+     *
+     * @since Series 60 5.0
+     * @param aResolutionChange
+     * @return None    
+     */
+    void DimArrowKeys( TBool aDimArrow );
+    
+    /**
+     * show/hide candidate preview bubble
+     *
+     * @since Series 60 5.0
+     * @param aResolutionChange
+     * @return None    
+     */
+    void ShowBubble(TInt aShow);
+    
+    /**
+     * handle activate
+     *
+     * @since Series 60 5.0
+     * @return None    
+     */
+    void OnActivate();
+    
+    /**
+     * get split itut window
+     *
+     * @since Series 60 5.0
+     * @return split itut window pointer    
+     */
+    inline CSplitItutWindow* Window();
+    
+private:
+    /**
+     * C++ constructor
+     *
+     * @since S60 5.0
+     * @param aLayoutOwner The MLayoutOwner pointer.
+     * @param iDataMgr The data mgr pointer
+     * @return none
+     */
+    CSplitItutWindowManager( CSplitItutUiLayout* aLayoutOwner,
+                             CSplitItutDataMgr* iDataMgr);
+
+    /**
+     * Symbian second-phase constructor
+     *
+     * @since S60 5.0
+     * @return none
+     */
+    void ConstructL(); 
+
+private:
+   /**
+     * The layout owner
+     * Not own
+     */
+    CSplitItutUiLayout* iLayoutOwner;
+    
+   /**
+     * The layout owner
+     * Own
+     */
+    CSplitItutWindow* iWindow;
+    
+   /**
+     * The data manager
+     * Not own
+     */
+    CSplitItutDataMgr* iDataMgr;
+    
+   /**
+     * The candidate preview bubble size
+     */
+    TAknWindowLineLayout iBubbleSize;
+    
+   /**
+     * The candidate preview bubble text layout
+     */
+    TAknTextLineLayout iBubbleTextLayout;
+    
+   /**
+     * The rawkey down flag
+     */
+    TBool iRawKeyDown;
+    
+   /**
+     * The rawkey control
+     * Not own
+     */
+    CFepUiBaseCtrl* iRawKeyCtrl;
+    
+   /**
+     * The last rawkey down
+     */    
+    TInt iLastRawKeyDown;
+    
+   /**
+     * The in editword query dialog flag
+     */
+    TBool iInEditWordQueryDlg;
+    
+   /**
+     * The dim operation button flag
+     */
+    TBool iDimOperationBtn;
+    };
+
+// ---------------------------------------------------------------------------
+// CSplitItutWindowManager::Window
+// ---------------------------------------------------------------------------
+//
+inline CSplitItutWindow* CSplitItutWindowManager::Window()
+	{
+	return iWindow;	
+	}
+#endif // C_SPLITITUTWINDOWMANAGER_H