textinput/peninputfingerhwr/inc/peninputfingerhwrwnd.h
branchRCL_3
changeset 21 ecbabf52600f
parent 0 eb1f2e154e89
equal deleted inserted replaced
20:ebd48d2de13c 21:ecbabf52600f
       
     1 /*
       
     2 * Copyright (c) 2009 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 main window of finger hwr.
       
    15 *
       
    16 */
       
    17 
       
    18 #ifndef C_PENINPUTFINGERHWRWND_H
       
    19 #define C_PENINPUTFINGERHWRWND_H
       
    20 
       
    21 // INCLUDES
       
    22 #include <peninputlayoutctrlgroup.h>
       
    23 
       
    24 // FORWARD DECLARATIONS
       
    25 class CFepLayoutMultiLineIcf;
       
    26 class CAknFepCtrlButton;
       
    27 class CAknFepCtrlEventButton;
       
    28 class CAknFepCtrlRepeatButton;
       
    29 class CAknFepCtrlMultiImageButton;
       
    30 class CFepCtrlDropdownList;
       
    31 class TResourceReader;
       
    32 class CPeninputLayoutInputmodelChoice;
       
    33 class CTransparentHwrWnd;
       
    34 class CVirtualKeyboard;
       
    35 class CVirtualKey;
       
    36 class CPeninputFingerHwrLAFManager;
       
    37 class CMultiPageVirtualKeyboard;
       
    38 class CPeninputFingerHwrRangeSelector;
       
    39 
       
    40 enum TPagePosition
       
    41     {
       
    42     EPagePosPageNo,
       
    43     EPagePosNextPage,
       
    44     EPagePosPrevPage,
       
    45     EPagePosLastPage,
       
    46     EPagePosFirstPage,
       
    47     };
       
    48 
       
    49 /**
       
    50  *  class CPeninputFingerHwrWnd.
       
    51  *
       
    52  *  Main window of finger hwr. 
       
    53  *
       
    54  *  @lib peninputfingerhwr.lib
       
    55  *  @since S60 v5.0
       
    56  */
       
    57 class CPeninputFingerHwrWnd : public CControlGroup
       
    58     {
       
    59 
       
    60 public:
       
    61 
       
    62     /**
       
    63      * Symbian constructor.
       
    64      *
       
    65      * @since S60 v5.0
       
    66      * 
       
    67      * @param aUiLayout The layout
       
    68      * @param aControlId The control id
       
    69      * @param aLandscapeStyle Current screen is landscape or not
       
    70      * @return Pointer to created CPeninputFingerHwrWnd object
       
    71      */
       
    72     static CPeninputFingerHwrWnd* NewL( CFepUiLayout* aFepUiLayout,
       
    73             TInt aControlId, TBool aLandscapeStyle );
       
    74 
       
    75     /**
       
    76      * Symbian constructor.
       
    77      *
       
    78      * @since S60 v5.0
       
    79      * 
       
    80      * @param aUiLayout The layout
       
    81      * @param aControlId The control id
       
    82      * @param aLandscapeStyle Current screen is landscape or not
       
    83      * @return Pointer to created CPeninputFingerHwrWnd object
       
    84      */
       
    85     static CPeninputFingerHwrWnd* NewLC( CFepUiLayout* aFepUiLayout,
       
    86             TInt aControlId, TBool aLandscapeStyle );
       
    87 
       
    88     /**
       
    89      * standard c++ destructor.
       
    90      *
       
    91      * @since S60 v5.0
       
    92      * @return None
       
    93      */
       
    94     virtual ~CPeninputFingerHwrWnd();
       
    95 
       
    96     
       
    97 public: //from base class CFepUiBaseCtrl
       
    98     /**
       
    99      * From CFepUiBaseCtrl.
       
   100      * Construct from resource. Handle resource change.
       
   101      *
       
   102      * @since S60 v4.0
       
   103      */
       
   104     void ConstructFromResourceL();
       
   105     
       
   106     /**
       
   107      * From CFepUiBaseCtrl
       
   108      * Draw control
       
   109      *
       
   110      * @since S60 V4.0
       
   111      */      
       
   112     void Draw();
       
   113     
       
   114 public: 
       
   115 
       
   116     /**
       
   117      * Resize according to LAF.
       
   118      *
       
   119      * @since S60 v5.0
       
   120      * @param aLandscapeStyle Current screen is landscape or not
       
   121      * @return None
       
   122      */
       
   123     void SizeChangedL( TBool aLandscapeStyle );
       
   124 
       
   125 public: // target editor attributes
       
   126     
       
   127     /**
       
   128      * accept editor's text alignment.  
       
   129      * 
       
   130      * @since S60 v5.0
       
   131      * @param aAlignment text alignment id. It can be one of the following: 
       
   132      *     EAknEditorAlignNone
       
   133      *     EAknEditorAlignCenter
       
   134      *     EAknEditorAlignLeft
       
   135      *     EAknEditorAlignRight
       
   136      *     EAknEditorAlignBidi
       
   137      * @param aLangId language id
       
   138      * @return none
       
   139      */ 
       
   140     void SetTextAlignmentL( TInt aAlignment, TInt aLangId );
       
   141     
       
   142     /**
       
   143      * accept editor's text.
       
   144      * 
       
   145      * @since S60 v5.0
       
   146      * @param aData editor's text.
       
   147      * @return none
       
   148      */
       
   149     void SetEditorTextL( const TFepInputContextFieldData& aData );
       
   150     
       
   151     /**
       
   152      * accept editor's promopt txt
       
   153      * 
       
   154      * @since S60 v5.0
       
   155      * @param aPromoptData editor's promopt text
       
   156      * @return none
       
   157      */    
       
   158     void SetPromptTextL( TUint8* aPromoptData );
       
   159     
       
   160     /**
       
   161      * Dim option button
       
   162      * 
       
   163      * @since S60 v5.0
       
   164      * @param aEnable Enable or disable option button
       
   165      * @return none
       
   166      */    
       
   167     void SetEnableSettingBtn(const TBool aEnable);
       
   168     
       
   169     /**
       
   170      * accept editor's bubble text.
       
   171      * 
       
   172      * @since S60 v5.0
       
   173      * @param aPromoptData editor's bubble text.
       
   174      * @return none
       
   175      */       
       
   176     void SetBubbleTextL( const TDesC& aInfo );    
       
   177 
       
   178     /**
       
   179      * accept editor's char ranges restriction.
       
   180      * 
       
   181      * @since S60 v5.0
       
   182      * @param aPermittedRanges permitted char range flags. It can be combination of the following: 
       
   183      *     ERangeNative
       
   184      *     ERangeEnglish
       
   185      *     ERangeNumber.
       
   186      *     See TAknFepPenInputRange.
       
   187      * @return none
       
   188      */
       
   189     void SetPermittedRanges( const TInt aPermittedRanges );
       
   190     
       
   191     /**
       
   192      * accept editor's number mapping restriction.
       
   193      * 
       
   194      * @since S60 v5.0
       
   195      * @param aNumMapping a string contains numbers and related char. max length is 16.
       
   196      * @return none
       
   197      */
       
   198     void SetNumericMapping( const TDesC& aNumMapping );
       
   199     
       
   200     /**
       
   201      * accept editor's input language
       
   202      * 
       
   203      * @since S60 v5.0
       
   204      * @param aLanguageId language id.
       
   205      * @return none
       
   206      */
       
   207     void SetInputLanguage( const TInt aLanguageId );
       
   208     
       
   209 public: //hwr 
       
   210     
       
   211     /**
       
   212      * get strokes from hwr writing box
       
   213      * 
       
   214      * @since S60 v5.0
       
   215      * @return a TPoint array of strokes
       
   216      */
       
   217     const RArray<TPoint>& StrokeList();
       
   218 
       
   219     /**
       
   220      * set end mark of hwr
       
   221      * 
       
   222      * @since S60 v5.0
       
   223      * @param aEndMark a TPoint object as end mark
       
   224      * @return none
       
   225      */
       
   226     void SetStrokeEndMark( const TPoint& aEndMark );
       
   227     
       
   228     /**
       
   229      * set pen color of hwr writing 
       
   230      * 
       
   231      * @since S60 v5.0
       
   232      * @return none
       
   233      */
       
   234     void SetBoxPenColor( const TInt aPenColor );
       
   235     
       
   236     /**
       
   237      * set pen size of hwr writing 
       
   238      * 
       
   239      * @since S60 v5.0
       
   240      * @return none
       
   241      */
       
   242     void SetBoxPenSize( const TSize aPenSize );
       
   243     
       
   244     /**
       
   245      * set writing speed hwr writing 
       
   246      * 
       
   247      * @since S60 v5.0
       
   248      * @return none
       
   249      */    
       
   250     void SetBoxWritingSpeed( const TTimeIntervalMicroSeconds32& aCharDelay );
       
   251     
       
   252     /**
       
   253      * retrieve rect of hwr writingbox.
       
   254      * 
       
   255      * @since S60 v5.0
       
   256      * @return rect of hwr writingbox.
       
   257      */
       
   258     TRect WritingBoxRect();
       
   259     
       
   260     /**
       
   261      * Cancel wrting
       
   262      *
       
   263      * @since S60 v5.0
       
   264      * @return None
       
   265      */
       
   266     void CancelWriting();    
       
   267 
       
   268 public: //ime switching list   
       
   269     /**
       
   270      * Popup ime switch list
       
   271      *
       
   272      * @since S60 v5.0
       
   273      * @return None
       
   274      */
       
   275     void PopupImeSwitcher();
       
   276     
       
   277 public: //range list
       
   278     /**
       
   279      * show range selection list
       
   280      * 
       
   281      * @since S60 v5.0
       
   282      * @param aDirect direction of popup. It can be one of the following:
       
   283      *     EPopDirAuto 
       
   284      *     EPopDirLeft 
       
   285      *     EPopDirRight 
       
   286      *     EPopDirTop 
       
   287      *     EPopDirDown
       
   288      *     default value is EPopDirAuto. See TPeninputPopListDirection.
       
   289      * @return none
       
   290      */
       
   291     void ShowRangeDropList( TInt aDirect );
       
   292     
       
   293     /**
       
   294      * cancel range selection and hide selection list.
       
   295      * 
       
   296      * @since S60 v5.0
       
   297      * @return none
       
   298      */
       
   299     void CancelRangeDropList();    
       
   300 
       
   301     /**
       
   302      * test whether the range selection list is visible 
       
   303      * 
       
   304      * @since S60 v5.0
       
   305      * @return ETrue if range selection list is visible
       
   306      */
       
   307     TBool RangeDropListVisible();
       
   308     
       
   309 public: //sct
       
   310     
       
   311     /**
       
   312      * Change SCT page.
       
   313      * 
       
   314      * @since S60 v5.0
       
   315      * @param aPageNo page no.
       
   316      * @param aPos Specifies the interpretation of the aPageNo parameter:
       
   317             EPagePosPageNo - go to page aPageNo.
       
   318             EPagePosNextPage -  go to next page.
       
   319             EPagePosPrevPage -  go to previous page.
       
   320             EPagePosLastPage -  go to last page.
       
   321             EPagePosFirstPage  - go to first page.
       
   322      * @return none
       
   323      */
       
   324     void ShowSctPage( TInt aPageNo, TInt aPos );
       
   325     
       
   326     /**
       
   327      * sync sct paging buttons.
       
   328      * 
       
   329      * @since S60 v5.0
       
   330      * @return none
       
   331      */
       
   332     void UpdateSctPageButtonsUi();
       
   333     
       
   334 public: //child control access
       
   335     
       
   336     /**
       
   337      * retrieve the ICF control. 
       
   338      * 
       
   339      * @since S60 v5.0
       
   340      * @return pointer to ICF
       
   341      */
       
   342     CFepLayoutMultiLineIcf* Icf();
       
   343 
       
   344     /**
       
   345      * retrieve the predictive List control. 
       
   346      * 
       
   347      * @since S60 v5.0
       
   348      * @return pointer to predictive List
       
   349      */    
       
   350     CFepCtrlDropdownList* PredictiveList();
       
   351     
       
   352     /**
       
   353      * retrieve the candicate list control. 
       
   354      * 
       
   355      * @since S60 v5.0
       
   356      * @return pointer to candicate list 
       
   357      */    
       
   358     CFepCtrlDropdownList* CandidateList();
       
   359     
       
   360 public: //ui
       
   361     
       
   362     /**
       
   363      * cancel all popped list
       
   364      * 
       
   365      * @since S60 v5.0
       
   366      * @return none
       
   367      */
       
   368     void CancelAllPopList();
       
   369     
       
   370     /**
       
   371      * update layout
       
   372      * safe version of UpdateLayoutL()
       
   373      * 
       
   374      * @since S60 v5.0
       
   375      * @param aIsStandby ETrue if is standby state
       
   376      * @return none
       
   377      */
       
   378     void UpdateLayout( const TBool aIsStandby, 
       
   379             const TBool aReloadCandicate=ETrue, 
       
   380             const TBool aReloadPredictive=ETrue );
       
   381     
       
   382     /**
       
   383      * update layout
       
   384      * 
       
   385      * @since S60 v5.0
       
   386      * @param aIsStandby ETrue if is standby state
       
   387      * @return none
       
   388      */    
       
   389     void UpdateLayoutL( const TBool aIsStandby, 
       
   390             const TBool aReloadCandicate=ETrue, 
       
   391             const TBool aReloadPredictive=ETrue );
       
   392     
       
   393 #ifndef RD_INTELLIGENT_TEXT_INPUT
       
   394     /**
       
   395      * hide or show eng-symbol candidate lists.
       
   396      * 
       
   397      * @since S60 v5.0
       
   398      * @param aIsHide ETrue to hide lists, EFalse to show lists.
       
   399      * @return none
       
   400      */
       
   401     void HideTwoRowEngSymbolList( const TBool aIsHide );
       
   402 #endif
       
   403 
       
   404     /**
       
   405      * dim arrow buttons
       
   406      * 
       
   407      * @since S60 v5.0
       
   408      * @param aDimArrow ETrue to dim arrow buttons, EFalse to set arrow buttons as not dimmed. 
       
   409      * @return none
       
   410      */
       
   411     void DimArrowKeys( TBool aDimArrow );
       
   412     
       
   413 public: //range
       
   414     
       
   415     /**
       
   416      * change layout to specified char range.
       
   417      * 
       
   418      * @since S60 v5.0
       
   419      * @param aCharRange current range id. It can be one of the following:
       
   420      *      EFingerHwrNativeRange
       
   421      *      EFingerHwrEnglishRange
       
   422      *      EFingerHwrNumberRange
       
   423      *      EFingerHwrSymbolRange
       
   424      * @return none
       
   425      */
       
   426     void TryToChangeCharRange( TInt aCharRange );
       
   427     
       
   428     /**
       
   429      * retrieve char range of layout, including sct.
       
   430      * 
       
   431      * @since S60 v5.0
       
   432      * @return char range id.
       
   433      */
       
   434     TInt CurrentCharRange();
       
   435     
       
   436     /**
       
   437      * restore the char range saved before sct.
       
   438      * 
       
   439      * @since S60 v5.0
       
   440      * @return none
       
   441      */
       
   442     TInt RestoreNonSctLayout();
       
   443     
       
   444     /**
       
   445      * Show preview bubble
       
   446      * 
       
   447      * @since S60 v5.0
       
   448      * @param aShow Show/Hide flag
       
   449      * @return none
       
   450      */
       
   451     void ShowBubble(TInt aShow);
       
   452 
       
   453 protected:
       
   454 
       
   455     /**
       
   456      * C++ constructor
       
   457      *
       
   458      * @since S60 v5.0
       
   459      * @param aFepUiLayout A Ui Layout environment (CFepUiLayout)
       
   460      * @param aControlId Control id
       
   461      * @return None
       
   462      */
       
   463     CPeninputFingerHwrWnd( CFepUiLayout* aFepUiLayout, TInt aControlId );
       
   464 
       
   465 private:
       
   466 
       
   467     /**
       
   468      * Symbian second-phase constructor
       
   469      *
       
   470      * @since S60 v5.0
       
   471      * @param aLandscapeStyle Current screen is landscape or not
       
   472      * @return None
       
   473      */
       
   474     void ConstructL( TBool aLandscapeStyle );
       
   475 
       
   476     /**
       
   477      * create icf.
       
   478      * 
       
   479      * @since S60 v5.0
       
   480      * @return None
       
   481      */
       
   482     void CreateContextFieldL();
       
   483 
       
   484     /**
       
   485      * create candidate lists.
       
   486      * 
       
   487      * @since S60 v5.0
       
   488      * @return None
       
   489      */
       
   490     void CreateCandidateListL();
       
   491 
       
   492     /**
       
   493      * create predictive lists.
       
   494      * 
       
   495      * @since S60 v5.0
       
   496      * @return None
       
   497      */    
       
   498     void CreatePredictListL();
       
   499     
       
   500     /**
       
   501      * create writing box.
       
   502      * 
       
   503      * @since S60 v5.0
       
   504      * @return None
       
   505      */    
       
   506     void CreateWritingBoxL();
       
   507     
       
   508     /**
       
   509      * create all function buttons. 
       
   510      * 
       
   511      * @since S60 v5.0
       
   512      * @return None
       
   513      */    
       
   514     void CreateButtonsL(); 
       
   515     
       
   516     /**
       
   517      * create virtual number pad.
       
   518      * 
       
   519      * @since S60 v5.0
       
   520      * @return None
       
   521      */    
       
   522     void CreateVirtualNumpadL();    
       
   523     
       
   524     /**
       
   525      * create virtual sct pad.
       
   526      * 
       
   527      * @since S60 v5.0
       
   528      * @return None
       
   529      */    
       
   530     void CreateVirtualSctpadL();
       
   531     
       
   532     /**
       
   533      * create space and backspace virtual pad.
       
   534      * 
       
   535      * @since S60 v5.0
       
   536      * @return None
       
   537      */    
       
   538     void CreateFixVirtualSctpadL();
       
   539     
       
   540     /**
       
   541      * EventButton creation helper.
       
   542      * 
       
   543      * @since S60 v5.0
       
   544      * @param aCtrlId button control id.
       
   545      * @param aResId resource id.
       
   546      * @param aEvent event id;
       
   547      * @param aUnicode a unicode value to be sent
       
   548      * @return pointer to created CAknFepCtrlEventButton obj.
       
   549      */    
       
   550     CAknFepCtrlEventButton* CreateEventBtnL( TInt aCtrlId, TInt32 aResId, 
       
   551             TInt aEvent = 0xFFFF, TInt aUnicode=0 );
       
   552     
       
   553     /**
       
   554      * RepeatButton creation helper.
       
   555      * 
       
   556      * @since S60 v5.0
       
   557      * @param aCtrlId button control id.
       
   558      * @param aResId resource id.
       
   559      * @param aEvent event id;
       
   560      * @param aUnicode a unicode value to be sent
       
   561      * @return pointer to created CAknFepCtrlRepeatButton obj. 
       
   562      */
       
   563     CAknFepCtrlRepeatButton* CreateRepBtnL( const TInt aCtrlId, TInt32 aResId,  
       
   564             const TInt aEvent, const TInt aUnicode );
       
   565     
       
   566     /**
       
   567      * load virtual number pad images. 
       
   568      * 
       
   569      * @since S60 v5.0
       
   570      * @param aResId resource id.
       
   571      * @param aKeySize virtual key rect.
       
   572      * @return None
       
   573      */    
       
   574     void LoadVkbKeyImageL( CVirtualKeyboard* aVkb, const TInt aResId, const TSize& aKeySize );
       
   575     
       
   576     
       
   577     /**
       
   578      * create virtual key.
       
   579      * 
       
   580      * @since S60 v5.0
       
   581      * @param aReader resource reader.
       
   582      * @param aKeyRect rect of virtual key.
       
   583      * @return pointer of created CVirtualKey obj.
       
   584      */    
       
   585     CVirtualKey* CreateVkbKeyL( TResourceReader& aReader, const TRect aKeyRect );
       
   586     
       
   587     /**
       
   588      * update virtual key info. 
       
   589      * 
       
   590      * @since S60 v5.0
       
   591      * @param aVirtualKey an exist virtul key.
       
   592      * @param aReader resource reader.
       
   593      * @param aKeyRect rect of virtual key.
       
   594      * @return None
       
   595      */    
       
   596     void UpdateVkbKeyL( CVirtualKey* aVirtualKey, TResourceReader& aReader, 
       
   597             const TRect aKeyRect );
       
   598 
       
   599     /**
       
   600      * load virtual number keys.
       
   601      * 
       
   602      * @since S60 v5.0
       
   603      * @param aResId resource id.
       
   604      * @param aCellRects rects of virtual keys.
       
   605      * @return None
       
   606      */    
       
   607     void LoadVirtualNumpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
       
   608     
       
   609     /**
       
   610      * load virtual sct keys.
       
   611      * 
       
   612      * @since S60 v5.0
       
   613      * @param aResId resource id.
       
   614      * @param aCellRects rects of virtual keys.
       
   615      * @return None
       
   616      */      
       
   617     void LoadVirtualSctpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
       
   618         
       
   619     /**
       
   620      * load space and backspace virtual keys.
       
   621      * 
       
   622      * @since S60 v5.0
       
   623      * @param aResId resource id.
       
   624      * @param aCellRects rects of virtual keys.
       
   625      * @return None
       
   626      */      
       
   627     void LoadFixVirtualSctpadKeysL( const TInt aResId, const RArray<TRect>& aCellRects );
       
   628     
       
   629     /**
       
   630      * relayout full ui, reset all controls position. 
       
   631      * 
       
   632      * @since S60 v5.0
       
   633      * @return None
       
   634      */    
       
   635     void ResetLayoutL();
       
   636 
       
   637     /**
       
   638      * layout for chinese range standby.
       
   639      * 
       
   640      * @since S60 v5.0
       
   641      * @return None
       
   642      */    
       
   643     void LayoutStandbyChinese();
       
   644     
       
   645     /**
       
   646      * layout for english range standby. 
       
   647      * 
       
   648      * @since S60 v5.0
       
   649      * @return None
       
   650      */    
       
   651     void LayoutStandbyEnglish();
       
   652     
       
   653     /**
       
   654      * layout for number range standby.
       
   655      * 
       
   656      * @since S60 v5.0
       
   657      * @return None
       
   658      */    
       
   659     void LayoutStandbyNumeric();
       
   660     
       
   661     /**
       
   662      * layout for symbol range standby.
       
   663      * 
       
   664      * @since S60 v5.0
       
   665      * @return None
       
   666      */    
       
   667     void LayoutStandbySymbol();
       
   668 
       
   669     /**
       
   670      * EventButton layout helper. Move button to specified rect.
       
   671      * 
       
   672      * @since S60 v5.0
       
   673      * @param aButton the button to move
       
   674      * @param aRect new rect of button
       
   675      * @param aXPadding horz padding of button icon.
       
   676      * @param aYPadding vert padding of button icon.
       
   677      * @param aReloadImages Specifies whether the images is to be reloaded.
       
   678      * @return None
       
   679      */    
       
   680     void MoveIconButton( CAknFepCtrlEventButton* aButton, const TRect& aRect, 
       
   681             TInt aXPadding=0, TInt aYPadding=0, TBool aReloadImages=ETrue );
       
   682 
       
   683     /**
       
   684      * EventButton layout helper. Move button to specified rect.
       
   685      * 
       
   686      * @since S60 v5.0
       
   687      * @param aButton the button to move
       
   688      * @param aRect new rect of button
       
   689      * @param aXPadding horz padding of button icon.
       
   690      * @param aYPadding vert padding of button icon.
       
   691      * @param aReloadImages Specifies whether the images is to be reloaded.
       
   692      * @return None
       
   693      */    
       
   694     void MoveSwitchPageButton( CAknFepCtrlEventButton* aButton, const TRect& aRect, 
       
   695             TInt aXPadding=0, TInt aYPadding=0, TBool aReloadImages=ETrue );
       
   696 
       
   697 
       
   698     /**
       
   699      * read control's shadow info.
       
   700      * 
       
   701      * @since S60 v5.0
       
   702      * @param aResId resource id.
       
   703      * @return None
       
   704      */    
       
   705     void ReadShadowInfoL( const TInt aResId );
       
   706     
       
   707     /**
       
   708      * read control's background info.
       
   709      *
       
   710      * @since S60 v5.0
       
   711      * @param aResId resource id.
       
   712      * @return None
       
   713      */
       
   714     void ReadBackgroundInfoL( const TInt aResId );
       
   715     
       
   716     /**
       
   717      * read icf appearance info.
       
   718      * 
       
   719      * @since S60 v5.0
       
   720      * @param aResId resource id.
       
   721      * @return None
       
   722      */    
       
   723     void ReadICFInfoL( const TInt aResId );
       
   724     
       
   725     /**
       
   726      * read writingbox appearance info.
       
   727      * 
       
   728      * @since S60 v5.0
       
   729      * @param aResId resource id.
       
   730      * @return None
       
   731      */    
       
   732     void ReadWritingBoxInfoL( TInt aResId );
       
   733 
       
   734     /**
       
   735      * update feedback state of all virtual keys 
       
   736      * 
       
   737      * @since S60 v5.0
       
   738      * @param aType char range id
       
   739      * @return None
       
   740      */
       
   741     void UpdateAllVirtualKeysFeedback( TInt aType );
       
   742 
       
   743     /**
       
   744      * Reload guide line
       
   745      * 
       
   746      * @since S60 v5.0
       
   747      * @return None
       
   748      */
       
   749     void ReloadWritingGuideLinesL();
       
   750      
       
   751     /**
       
   752      * Set highlight cell in candidate list
       
   753      * 
       
   754      * @since S60 v5.0
       
   755      * @return None
       
   756      */
       
   757     void SetCandHighlightCell();
       
   758     
       
   759 private: // datas
       
   760 
       
   761     /**
       
   762      * Input context field control.
       
   763      * Not own.
       
   764      */
       
   765     CFepLayoutMultiLineIcf* iContextField;
       
   766 
       
   767 
       
   768     /**
       
   769      * 1st fixed eng-symbol list control.
       
   770      * Not own.
       
   771      */    
       
   772     CFepCtrlDropdownList* iFixEngSymbolList1;
       
   773     
       
   774     /**
       
   775      * 2nd fixed eng-symbol list control.
       
   776      * Not own.
       
   777      */    
       
   778     CFepCtrlDropdownList* iFixEngSymbolList2;
       
   779 
       
   780     /**
       
   781      * Candidate list control.
       
   782      * Not own.
       
   783      */    
       
   784     CFepCtrlDropdownList* iCandidateList;
       
   785     
       
   786     /**
       
   787      * Predictive list control.
       
   788      * Not own.
       
   789      */
       
   790     CFepCtrlDropdownList* iPredictList;
       
   791     
       
   792     /**
       
   793      * Writing box control.
       
   794      * Not own.
       
   795      */
       
   796     CTransparentHwrWnd* iWritingBox;
       
   797 
       
   798     /**
       
   799      * Close button control.
       
   800      * Not own.
       
   801      */    
       
   802     CAknFepCtrlEventButton* iCloseBtn;
       
   803 
       
   804     /**
       
   805      * Option button control.
       
   806      * Not own.
       
   807      */     
       
   808     CAknFepCtrlEventButton* iOptionBtn;
       
   809     
       
   810     /**
       
   811      * Ime switch button control.
       
   812      * Not own.
       
   813      */     
       
   814     CAknFepCtrlEventButton* iImeSwitchBtn;
       
   815 
       
   816     /**
       
   817      * Backspace button control.
       
   818      * Not own.
       
   819      */     
       
   820     CAknFepCtrlRepeatButton* iBackspaceBtn;
       
   821 
       
   822     /**
       
   823      * Left arrow button control.
       
   824      * Not own.
       
   825      */     
       
   826     CAknFepCtrlRepeatButton* iArrowLeftBtn;
       
   827     
       
   828     /**
       
   829      * Right arrow button control.
       
   830      * Not own.
       
   831      */     
       
   832     CAknFepCtrlRepeatButton* iArrowRightBtn;
       
   833     
       
   834     /**
       
   835      * Up arrow button control.
       
   836      * Not own.
       
   837      */     
       
   838     CAknFepCtrlRepeatButton* iArrowUpBtn;
       
   839     
       
   840     /**
       
   841      * Down arrow button control.
       
   842      * Not own.
       
   843      */     
       
   844     CAknFepCtrlRepeatButton* iArrowDownBtn;
       
   845 
       
   846     /**
       
   847      * Sct selection button control.
       
   848      * Not own.
       
   849      */     
       
   850     CAknFepCtrlEventButton* iRangeSpecialBtn;
       
   851 
       
   852     /**
       
   853      * Sct page 0 selction button control.
       
   854      * Not own.
       
   855      */     
       
   856     CAknFepCtrlEventButton* iSctPage0Btn;
       
   857     
       
   858     /**
       
   859      * Sct page 1 selction button control.
       
   860      * Not own.
       
   861      */     
       
   862     CAknFepCtrlEventButton* iSctPage1Btn;
       
   863     
       
   864     /**
       
   865      * Sct page 2 selction button control.
       
   866      * Not own.
       
   867      */     
       
   868     CAknFepCtrlEventButton* iSctPage2Btn;
       
   869 
       
   870     
       
   871     /**
       
   872      * Virtual number pad control.
       
   873      * Not own.
       
   874      */     
       
   875     CVirtualKeyboard* iVirtualNumpad;
       
   876     
       
   877     /**
       
   878      * Virtual sct pad control.
       
   879      * Not own.
       
   880      */     
       
   881     CMultiPageVirtualKeyboard* iVirtualSctpad;
       
   882 
       
   883     CVirtualKeyboard* iVirtualSctpadFix;
       
   884     /**
       
   885      * Range selection list control.
       
   886      * Not own.
       
   887      */     
       
   888     CPeninputFingerHwrRangeSelector* iRangeSelector;
       
   889 
       
   890     /**
       
   891      * Ime selection list control.
       
   892      * Not own.
       
   893      */     
       
   894     CPeninputLayoutInputmodelChoice* iInputModeSwitch;
       
   895     
       
   896     /**
       
   897      * L&F manager.
       
   898      * Own.
       
   899      */
       
   900     CPeninputFingerHwrLAFManager* iLafManager;    
       
   901 
       
   902     /**
       
   903      * First time construct flag
       
   904      */
       
   905     TBool iFirstTimeConstruct;
       
   906 
       
   907 
       
   908     /**
       
   909      * rect of range selection control.
       
   910      */
       
   911     TRect iRectOfRangeBtn;
       
   912     
       
   913     /**
       
   914      * Current char range id, including SCT.
       
   915      */
       
   916     TInt iCurCharRange;
       
   917     
       
   918     /**
       
   919      * Current char range id, without SCT.
       
   920      */
       
   921     TInt iCurCharRangeNoSct;
       
   922     
       
   923     /**
       
   924      * bit mask of permitted char ranges.
       
   925      */
       
   926     TInt iPermittedRanges;
       
   927     
       
   928 
       
   929     /**
       
   930      * flag.
       
   931      */
       
   932     TBool iInEditWordQueryDlg;
       
   933     
       
   934     TRgb iWritingBoxBkColor;
       
   935     TRgb iWritingBoxFrameColor;
       
   936     };
       
   937 
       
   938 #endif // C_PENINPUTFINGERHWRWND_H
       
   939 // End Of File