textinput/peninputfingerhwrar/inc/peninputfingerhwrarsymboltable.h
branchRCL_3
changeset 21 ecbabf52600f
equal deleted inserted replaced
20:ebd48d2de13c 21:ecbabf52600f
       
     1 /*
       
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  header of char range selector.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef C_PENINPUTARABICFINGERHWRSYMBOLTABLE_H
       
    20 #define C_PENINPUTARABICFINGERHWRSYMBOLTABLE_H
       
    21 
       
    22 // INCLUDES
       
    23 #include <e32std.h>
       
    24 #include <e32base.h>
       
    25 #include <e32cmn.h>
       
    26 
       
    27 #include <peninputlayoutctrlgroup.h>
       
    28 
       
    29 // FORWARD DECLARATIONS
       
    30 class CAknFepCtrlEventButton;
       
    31 class CMultiPageVirtualKeyboard;
       
    32 
       
    33 // CLASS DECLARATION
       
    34 
       
    35 /**
       
    36  *  class CPeninputArabicFingerHwrSymbolTable.
       
    37  *
       
    38  *  The symbol table control for arabic input 
       
    39  *
       
    40  *  @lib peninputfingerhwrar.lib
       
    41  *  @since Symbian TB9.2
       
    42  */
       
    43 class CPeninputArabicFingerHwrSymbolTable : public CControlGroup
       
    44     {
       
    45 public:
       
    46     /**
       
    47      * Symbian constructor
       
    48      * 
       
    49      * @since Symbian TB9.2
       
    50      * @param aUiLayout The layout
       
    51      * @param aId The control id
       
    52      * @return pointer of created object.
       
    53      */
       
    54     static CPeninputArabicFingerHwrSymbolTable* NewL( CFepUiLayout* aUiLayout, TInt aId );
       
    55 
       
    56     /**
       
    57      * Symbian constructor
       
    58      * 
       
    59      * @since Symbian TB9.2
       
    60      * @param aUiLayout The layout
       
    61      * @param aId The control id
       
    62      * @return pointer of created object.
       
    63      */    
       
    64     static CPeninputArabicFingerHwrSymbolTable* NewLC( CFepUiLayout* aUiLayout, TInt aId );
       
    65 
       
    66     /**
       
    67      * standard c++ destructor.
       
    68      *
       
    69      * @since Symbian TB9.2
       
    70      */    
       
    71     ~CPeninputArabicFingerHwrSymbolTable();
       
    72     
       
    73 public:
       
    74 	/**
       
    75 	 * open the symbol table.
       
    76 	 * 
       
    77 	 * @since Symbian TB9.2
       
    78 	 *
       
    79 	 * @return None
       
    80 	 */
       
    81 	void OpenSymbolTable();
       
    82     
       
    83     /**
       
    84      * cancel the popup.
       
    85      * 
       
    86      * @since Symbian TB9.2
       
    87      * @return None
       
    88      * 
       
    89      */
       
    90     void CloseSymbolTable();
       
    91     
       
    92     /**
       
    93      * get visibility of popup.
       
    94      * @since Symbian TB9.2
       
    95      * @return ETrue if the popup is visible
       
    96      */
       
    97     TBool IsPopup();
       
    98     
       
    99 	/**
       
   100 	 * sizechanged
       
   101 	 *
       
   102 	 */
       
   103 	void SizeChanged(const TRect aVirtualKeypadRect, const RArray<TRect> & aBtnRects,
       
   104                      const TInt aKeypadRow, const TInt aKeypadCol, TBool aIsLandscape = ETrue);
       
   105     
       
   106 	/**
       
   107 	 * Load VKB image
       
   108 	 *
       
   109 	 */
       
   110     void LoadVkbKeyImageL(TInt aResId, const TSize& aKeySize);
       
   111 	
       
   112 	/**
       
   113 	 * Load virutal Key and set key rects.
       
   114 	 *
       
   115 	 */
       
   116 	void LoadVirtualKeypadKeyL(const TInt aResId, const RArray<TRect>& aCellRects);
       
   117     
       
   118 	/**
       
   119 	 * Return keypad control
       
   120 	 *
       
   121 	 */
       
   122 	inline CMultiPageVirtualKeyboard* KeyPad(){return iMutiPageKeypad;}
       
   123     
       
   124 	/**
       
   125 	 * Navigate page
       
   126 	 *
       
   127 	 */
       
   128 	void NavigatePage(TInt aPageNo, TInt aPos);
       
   129     
       
   130 	/**
       
   131 	 * Construct from resource
       
   132 	 * This funciton will be called when the resource has changed for example skin was changed
       
   133 	 */
       
   134 	void ConstructFromResourceL();	
       
   135 	
       
   136 protected: //virtuals from CControlGroup (CFepUiBaseCtrl)
       
   137 
       
   138     /**
       
   139      * From CControlGroup
       
   140      * Handle pointer down event
       
   141      *
       
   142      * @since Symbian TB9.2
       
   143      * @param aPoint The point position relative the layout
       
   144      * @return The control which handles the event.     
       
   145      */   
       
   146     CFepUiBaseCtrl* HandlePointerDownEventL(const TPoint& aPoint);
       
   147     
       
   148     /**
       
   149      * From CControlGroup
       
   150      * Handle pointer up event
       
   151      *
       
   152      * @since Symbian TB9.2
       
   153      * @param aPoint The point position relative the layout
       
   154      * @return The control which handles the event.     
       
   155      */           
       
   156     CFepUiBaseCtrl* HandlePointerUpEventL(const TPoint& aPoint);
       
   157     
       
   158     /**
       
   159      * From CControlGroup
       
   160      * Handle pointer move event
       
   161      *
       
   162      * @since S60 54.0
       
   163      * @param aPoint The point position relative the layout
       
   164      * @return The control which handles the event.     
       
   165      */      
       
   166     CFepUiBaseCtrl* HandlePointerMoveEventL(const TPoint& aPoint);
       
   167     
       
   168     /**
       
   169      * C++ constructor
       
   170      * 
       
   171      * @since Symbian TB9.2
       
   172      * @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
       
   173      * @param aControlId Control id
       
   174      * @return none.
       
   175      */
       
   176     CPeninputArabicFingerHwrSymbolTable(CFepUiLayout* aFepUiLayout, TInt aControlId);
       
   177     
       
   178     /**
       
   179      * Symbian second-phase constructor
       
   180      *
       
   181      * @since Symbian TB9.2
       
   182      * @return None
       
   183      */    
       
   184     void ConstructL();
       
   185     
       
   186 	/**
       
   187      * create a multipate virtual keypad
       
   188      *
       
   189      * @since Symbian TB9.2
       
   190      * @return None
       
   191      */
       
   192 	void CreateVirtualKeypadL();
       
   193 	
       
   194 	/**
       
   195 	 * create the button control
       
   196 	 *
       
   197 	 */
       
   198 	void CreateButtonGroupL();
       
   199 	
       
   200     /**
       
   201      * EventButton creation helper.
       
   202      * 
       
   203      * @since Symbian TB9.2
       
   204      * @param aCtrlId button control id.
       
   205      * @param aResId resource id.
       
   206      * @param aEvent event id;
       
   207      * @param aUnicode a unicode value to be sent
       
   208      * @return pointer to created CAknFepCtrlEventButton obj.
       
   209      */       
       
   210     CAknFepCtrlEventButton* CreateEventBtnL( TInt aCtrlId, TInt32 aResId,
       
   211             TInt aEvent = 0xFFFF,TInt aUnicode=0 );
       
   212         
       
   213     /**
       
   214      * EventButton layout helper. Move button to specified rect.
       
   215      * 
       
   216      * @since Symbian TB9.2
       
   217      * @param aButton the button to move
       
   218      * @param aRect new rect of button
       
   219      * @param aXPadding horz padding of button icon.
       
   220      * @param aYPadding vert padding of button icon.
       
   221      * @param aReloadImages Specifies whether the images is to be reloaded.
       
   222      * @return None
       
   223      */     
       
   224     void MoveIconButton( CAknFepCtrlEventButton* aButton, const TRect& aRect, 
       
   225             TInt aXPadding=0, TInt aYPadding=0, TBool aReloadImages=ETrue );
       
   226 	
       
   227 	/**
       
   228 	 * Show the visible page button
       
   229 	 *
       
   230 	 */
       
   231 	void UpdatePageButtonsUi();
       
   232 	
       
   233 	/**
       
   234 	 * Update the virtual key feedback
       
   235 	 *
       
   236 	 */
       
   237 	void UpdateAllVirtualKeysFeedback();
       
   238 	
       
   239 	/**
       
   240 	 * Draw group control
       
   241 	 */
       
   242 	void Draw();
       
   243 	
       
   244 	/**
       
   245 	 * Load background from resource
       
   246 	 *
       
   247 	 */
       
   248 	void LoadBackgroundFromResourceL(const TInt aResId);
       
   249 
       
   250 private:
       
   251     /**
       
   252 	 * multipage viritual keyboard
       
   253 	 * not own.
       
   254 	 */
       
   255 	CMultiPageVirtualKeyboard* iMutiPageKeypad;
       
   256     
       
   257     /**
       
   258      * Sct page 0 selction button control.
       
   259      * Not own.
       
   260      */     
       
   261     CAknFepCtrlEventButton* i3Page1Btn;
       
   262     
       
   263     /**
       
   264      * Sct page 1 selction button control.
       
   265      * Not own.
       
   266      */     
       
   267     CAknFepCtrlEventButton* i3Page2Btn;
       
   268     
       
   269     /**
       
   270      * Sct page 2 selction button control.
       
   271      * Not own.
       
   272      */     
       
   273     CAknFepCtrlEventButton* i3Page3Btn;
       
   274 	
       
   275 	/**
       
   276      * Sct page 0 selction button control.
       
   277      * Not own.
       
   278      */     
       
   279     CAknFepCtrlEventButton* i2Page1Btn;
       
   280     
       
   281     /**
       
   282      * Sct page 1 selction button control.
       
   283      * Not own.
       
   284      */     
       
   285     CAknFepCtrlEventButton* i2Page2Btn;
       
   286     
       
   287     /**
       
   288      * visibility of popup list.
       
   289      */
       
   290     TBool iPopupVisible;
       
   291 	
       
   292 	/**
       
   293 	 * store the layout mode
       
   294 	 */
       
   295 	TBool iIsLandscape;
       
   296     };
       
   297 
       
   298 #endif // C_PENINPUTARABICFINGERHWRSYMBOLTABLE_H