textinput/peninputfingerhwrar/inc/peninputfingerhwrarnumsymboltable.h
branchRCL_3
changeset 12 5e18d8c489d6
child 19 ac7e4d1d9209
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputfingerhwrar/inc/peninputfingerhwrarnumsymboltable.h	Tue May 25 13:03:44 2010 +0300
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2009-2010 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 of number mode symbol table.
+*
+*/
+
+
+#ifndef C_PENINPUTARABICFINGERHWRNUMSYMBOLTABLE_H
+#define C_PENINPUTARABICFINGERHWRNUMSYMBOLTABLE_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <e32cmn.h>
+
+#include <peninputlayoutctrlgroup.h>
+
+// FORWARD DECLARATIONS
+class CAknFepCtrlEventButton;
+class CVirtualKeyboard;
+
+// CLASS DECLARATION
+
+/**
+ *  class CPeninputArabicFingerHwrNumSymbolTable.
+ *
+ *  The symbol table control for arabic input 
+ *
+ *  @lib peninputfingerhwrar.lib
+ *  @since Symbian TB9.2
+ */
+class CPeninputArabicFingerHwrNumSymbolTable : public CControlGroup
+    {
+public:
+    /**
+     * Symbian constructor
+     * 
+     * @since Symbian TB9.2
+     * @param aUiLayout The layout
+     * @param aId The control id
+     * @return pointer of created object.
+     */
+    static CPeninputArabicFingerHwrNumSymbolTable* NewL( CFepUiLayout* aUiLayout, TInt aId );
+
+    /**
+     * Symbian constructor
+     * 
+     * @since Symbian TB9.2
+     * @param aUiLayout The layout
+     * @param aId The control id
+     * @return pointer of created object.
+     */    
+    static CPeninputArabicFingerHwrNumSymbolTable* NewLC( CFepUiLayout* aUiLayout, TInt aId );
+
+    /**
+     * standard c++ destructor.
+     *
+     * @since Symbian TB9.2
+     */    
+    ~CPeninputArabicFingerHwrNumSymbolTable();
+    
+public:
+	/**
+	 * open the symbol table.
+	 * 
+	 * @since Symbian TB9.2
+	 *
+	 * @return None
+	 */
+	void OpenSymbolTable();
+    
+    /**
+     * cancel the popup.
+     * 
+     * @since Symbian TB9.2
+     * @return None
+     * 
+     */
+    void CloseSymbolTable();
+    
+    /**
+     * get visibility of popup.
+     * @since Symbian TB9.2
+     * @return ETrue if the popup is visible
+     */
+    TBool IsPopup();
+    
+	/**
+	 * sizechanged
+	 *
+	 */
+	void SizeChanged(const TRect aVirtualKeypadRect, const RArray<TRect> aBtnRects,
+                     const TInt aKeypadRow, const TInt aKeypadCol, TBool aIsLandscape = ETrue);
+    
+	/**
+	 * Load VKB image
+	 *
+	 */
+    void LoadVkbKeyImageL(TInt aResId, const TSize& aKeySize);
+	
+	/**
+	 * Load virutal Key and set key rects.
+	 *
+	 */
+	void LoadVirtualKeypadKeyL(const TInt aResId, const RArray<TRect>& aCellRects);
+    
+	/**
+	 * Return keypad control
+	 *
+	 */
+	inline CVirtualKeyboard* KeyPad(){return iNumKeypad;}
+    
+	/**
+	 * Navigate page
+	 *
+	 */
+	void UpdateNumSymbolTable(TInt aNumSctType = ENumSCTLatin);
+    
+	/**
+	 * Construct from resource
+	 * This funciton will be called when the resource has changed for example skin was changed
+	 */
+	void ConstructFromResourceL();	
+	
+    /**
+     * accept editor's number mapping restriction.
+     * 
+     * @since S60 v5.0
+     * @param aNumMapping a string contains numbers and related char. max length is 16.
+     * @return none
+     */
+    void SetNumericMapping( const TDesC& aNumMapping );
+    
+    /*
+     * set arabic number mode.
+     * @since s60 v5.2
+     * @param aIsNativeNumMode a flag to indicate whether it is native number mode.
+     * @return none.
+     */
+    void SetNativeNumMode(const TBool aIsNativeNumMode);
+protected: //virtuals from CControlGroup (CFepUiBaseCtrl)
+
+    /**
+     * From CControlGroup
+     * Handle pointer down event
+     *
+     * @since Symbian TB9.2
+     * @param aPoint The point position relative the layout
+     * @return The control which handles the event.     
+     */   
+    CFepUiBaseCtrl* HandlePointerDownEventL(const TPoint& aPoint);
+    
+    /**
+     * From CControlGroup
+     * Handle pointer up event
+     *
+     * @since Symbian TB9.2
+     * @param aPoint The point position relative the layout
+     * @return The control which handles the event.     
+     */           
+    CFepUiBaseCtrl* HandlePointerUpEventL(const TPoint& aPoint);
+    
+    /**
+     * From CControlGroup
+     * Handle pointer move event
+     *
+     * @since S60 54.0
+     * @param aPoint The point position relative the layout
+     * @return The control which handles the event.     
+     */      
+    CFepUiBaseCtrl* HandlePointerMoveEventL(const TPoint& aPoint);
+    
+    /**
+     * C++ constructor
+     * 
+     * @since Symbian TB9.2
+     * @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
+     * @param aControlId Control id
+     * @return none.
+     */
+    CPeninputArabicFingerHwrNumSymbolTable(CFepUiLayout* aFepUiLayout, TInt aControlId);
+    
+    /**
+     * Symbian second-phase constructor
+     *
+     * @since Symbian TB9.2
+     * @return None
+     */    
+    void ConstructL();
+    
+	/**
+     * create a virtual keypad
+     *
+     * @since Symbian TB9.2
+     * @return None
+     */
+	void CreateVirtualKeypadL();
+	
+	/** 
+	 * create a new virtual key
+	 *
+	 */
+	CVirtualKey* CreateVkbKeyL(TResourceReader& aReader, const TRect aKeyRect);
+	
+	/**
+	 * update the virtal key
+	 *
+	 */
+	void UpdateVkbKeyL( CVirtualKey* aVirtualKey, TResourceReader& aReader, 
+	                    const TRect aKeyRect );
+    void OnActivate();
+	
+	/**
+	 * Update the virtual key feedback
+	 *
+	 */
+	void UpdateAllVirtualKeysFeedback();
+	
+	/**
+	 * Draw group control
+	 */
+	void Draw();
+	
+	/**
+	 * Load background from resource
+	 *
+	 */
+	void LoadBackgroundFromResourceL(const TInt aResId);
+    
+	/*
+	 * map latin number to arabic number.
+	 */
+	TInt16 MapLatinNumAccordingToNumMode(TInt16 aUnicode);
+private:
+    /**
+	 * multipage viritual keyboard
+	 * not own.
+	 */
+	CVirtualKeyboard* iNumKeypad;
+    
+    /**
+     * visibility of popup list.
+     */
+    TBool iPopupVisible;
+	
+	/**
+	 * store the layout mode
+	 */
+	TBool iIsLandscape;
+	
+    TInt iCurrentNumSCTType;	
+    /*
+     * Default number mode.
+     */
+    TBool iIsNativeNumMode;
+    };
+
+#endif // C_PENINPUTARABICFINGERHWRNUMSYMBOLTABLE_H