textinput/peninputgenericvkb/inc/peninputgenericvkbwindow.h
branchRCL_3
changeset 21 ecbabf52600f
equal deleted inserted replaced
20:ebd48d2de13c 21:ecbabf52600f
       
     1 /*
       
     2 * Copyright (c) 2002-2005 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:  peninput generic vkb window layout class
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef C_PENINPUTGENERICVKBWINDOW_H
       
    20 #define C_PENINPUTGENERICVKBWINDOW_H
       
    21 
       
    22 // System includes
       
    23 #include <peninputlayoutwindowext.h>
       
    24 #include <peninputuistatemgrinterface.h>
       
    25 #include <AknLayoutDef.h>
       
    26 
       
    27 // Forward declarations
       
    28 class CAknFepCtrlRangeBar;
       
    29 class CAknFepCtrlEventButton;
       
    30 class CAknFepCtrlDragButton;
       
    31 class CAknFepCtrlRepeatButton;
       
    32 class CPeninputCommonChoiceList;
       
    33 class CPeninputLayoutInputmodelChoice;
       
    34 class CPeninputGenericVkbLafMgr;
       
    35 class CPeninputSyncBitmapRotator;
       
    36 class CRepository;
       
    37 class CFepLayoutScrollableList;
       
    38 // Constants
       
    39 const TInt KMaxFileLength = 80;
       
    40 
       
    41 const TInt KMaxRangeLabelLength = 100;
       
    42 
       
    43 /**
       
    44  * class TAllRangeLabels
       
    45  */
       
    46 class TAllRangeLabels
       
    47     {
       
    48 public:
       
    49     TBuf<KMaxRangeLabelLength> iLabelNativeChar;
       
    50     TBuf<KMaxRangeLabelLength> iLabelNativeNumber;
       
    51     TBuf<KMaxRangeLabelLength> iLabelLatinChar;
       
    52     TBuf<KMaxRangeLabelLength> iLabelLatinNumber;
       
    53     TBuf<KMaxRangeLabelLength> iLabelSymbol;
       
    54     TBuf<KMaxRangeLabelLength> iLabelAccent;
       
    55     };
       
    56 /**
       
    57  *  Vkb layout window class
       
    58  *  This class define methods to deal with window layout and 
       
    59  *  handle events sent to this window
       
    60  *
       
    61  *  @lib peninputgenericvkb.lib
       
    62  *  @since S60 v3.2
       
    63  */
       
    64 class CPeninputGenericVkbWindow : public CPeninputLayoutWindowExt
       
    65     {
       
    66 private:
       
    67     enum TIndicatorAlign
       
    68         {
       
    69         EIndiAlignLeft,
       
    70         EIndiAlignCenter,
       
    71         EIndiAlignRight 
       
    72         };
       
    73 public:
       
    74 
       
    75     /**
       
    76      * Two-phased constructor
       
    77      *
       
    78      * @since S60 v3.2
       
    79      * @param aUiLayout The plugin ui layout
       
    80      * @param aLayoutContext The vkb layout context
       
    81      * @return The pointer to CPeninputGenericVkbWindow object
       
    82      */
       
    83     static CPeninputGenericVkbWindow* NewL( CFepUiLayout* aUiLayout, 
       
    84         MPeninputLayoutContext* aLayoutContext, MPeninputUiStateMgr* aUiStateMgr );
       
    85     
       
    86     /**
       
    87      * Destructor
       
    88      *
       
    89      * @since S60 v3.2
       
    90      * @return None
       
    91      */
       
    92     virtual ~CPeninputGenericVkbWindow();
       
    93     
       
    94     /**
       
    95      * Do when case changed
       
    96      *
       
    97      * @since S60 v3.2
       
    98      * @param aNewCase The new case
       
    99      * @return None
       
   100      */
       
   101     void DoCaseChange( TInt aNewCase );
       
   102 
       
   103 // From base class CPeninputLayoutWindow
       
   104 
       
   105     /**
       
   106      * From CPeninputLayoutWindow
       
   107      * Handle control event 
       
   108      *
       
   109      * @since S60 v3.2
       
   110      * @param aEventType The event type
       
   111      * @param aCtrl The control who sends the event
       
   112      * @param aEventData The event data
       
   113      * @return None
       
   114      */     
       
   115     void HandleControlEvent( TInt aEventType,
       
   116                              CFepUiBaseCtrl* aCtrl, 
       
   117                              const TDesC& aEventData );
       
   118 
       
   119     /**
       
   120      * From CPeninputLayoutWindow
       
   121      * Get id of window config resource
       
   122      *
       
   123      * @since S60 v3.2
       
   124      * @return The id of window config resource
       
   125      */
       
   126     TInt GetWindowConfigResId();
       
   127 
       
   128     /**
       
   129      * From CPeninputLayoutWindow
       
   130      * Get id of window resource
       
   131      *
       
   132      * @since S60 v3.2
       
   133      * @return The id of window resource
       
   134      */ 
       
   135     TInt GetWindowResId();
       
   136     
       
   137     /**
       
   138      * From CPeninputLayoutWindowExt
       
   139      * Get resource id of numeric keymapping
       
   140      *
       
   141      * @since S60 v3.2
       
   142      * @return The id of window resource
       
   143      */ 
       
   144     TInt GetNumKeymappingResId();
       
   145 
       
   146     /**
       
   147      * From CPeninputLayoutWindow
       
   148      * Get file name of window config resource
       
   149      *
       
   150      * @since S60 v3.2
       
   151      * @param aLangID The id of language
       
   152      * @return The file name of window config resource
       
   153      */ 
       
   154     const TDesC& GetWindowConfigResFileName( TInt aLangID );
       
   155 
       
   156     /**
       
   157      * From CPeninputLayoutWindow
       
   158      * Get file name of window resource
       
   159      *
       
   160      * @since S60 v3.2
       
   161      * @return The file name of window resource
       
   162      */ 
       
   163     const TDesC& GetWindowResFileName();
       
   164 
       
   165     /**
       
   166      * From CPeninputLayoutWindow
       
   167      * Re-organize all controls in the assigned client area layout
       
   168      *
       
   169      * @since S60 v3.2
       
   170      * @param aClientLayoutId The id of client area layout
       
   171      * @return None
       
   172      */
       
   173     void ReorganizeControls( TInt aClientLayoutId, TBool aNeedReset );
       
   174   
       
   175     /**
       
   176      * From CPeninputLayoutWindow
       
   177      * Change unit size
       
   178      *
       
   179      * @since S60 v3.2
       
   180      * @return The window rect
       
   181      */
       
   182     const TRect ChangeUnitSize();
       
   183   
       
   184     /**
       
   185      * From CPeninputLayoutWindow
       
   186      * Change size of client area
       
   187      *
       
   188      * @since S60 v3.2
       
   189      * @return None
       
   190      */
       
   191     void ChangeClientSize();  
       
   192     
       
   193     /**
       
   194      * From CPeninputLayoutWindow
       
   195      * Construct all controls specified in resource
       
   196      *
       
   197      * @since S60 v3.2
       
   198      * @return None
       
   199      */
       
   200     void CreateAllControlsL();
       
   201     
       
   202     /**
       
   203      * From CPeninputLayoutWindow
       
   204      * Set control fonts. Fonts info comes from resource
       
   205      *
       
   206      * @since S60 v3.2
       
   207      * @return None
       
   208      */
       
   209     void SetControlsFont();
       
   210   
       
   211     /**
       
   212      * From CPeninputLayoutWindow
       
   213      * Pop up choice list
       
   214      *
       
   215      * @since S60 v3.2
       
   216      * @return None
       
   217      */
       
   218     void PopupChoiceList(); 
       
   219         
       
   220     /** 
       
   221      * ConstructFromResourceL load settings from resource.
       
   222      * Before calling this function, the resource id should be set
       
   223      *
       
   224      * @since S60 v3.2
       
   225      * @return None
       
   226      */
       
   227     void ConstructFromResourceL();
       
   228 
       
   229     static TInt BackgroundTaskL(TAny* aPtr);
       
   230 
       
   231     /**
       
   232      * config unit size, reason may due to client layout id changed,
       
   233      * Set current language
       
   234      *
       
   235      * @since S60 v3.2
       
   236      * @param aLang Current language
       
   237      * @return None
       
   238      */
       
   239     void SetSwitchlistLanguage(TInt aLang);
       
   240 
       
   241     /**
       
   242      * Current editor is secret
       
   243      *
       
   244      * @since S60 v3.2
       
   245      * @param aSecret Editor is secret
       
   246      * @return None
       
   247      */
       
   248     void SetSwitchlistSecretFlag(TBool aSecret);  
       
   249     
       
   250     /**
       
   251      * Dim the arrow keys on FSQ when the editor 
       
   252      * is findpane or secret editor
       
   253      *
       
   254      * @since S60 v3.2
       
   255      * @param aSecret Editor is secret
       
   256      * @return None
       
   257      */
       
   258     void DimArrowKeys( TBool aDimArrow );
       
   259     
       
   260     void DimEnterKey( TBool aDimmed );
       
   261 
       
   262     /**
       
   263      * Pop up switcher windows
       
   264      *
       
   265      * @since S60 v3.2
       
   266      * @param aSecret Editor is secret
       
   267      * @return None
       
   268      */    
       
   269     void PopupSwitchWindowL();
       
   270 
       
   271     /**
       
   272      * Handle accented char event
       
   273      *
       
   274      * @since S60 v3.2
       
   275      * @param aEventType The event type
       
   276      * @param aEventData The event data
       
   277      * @param aDeadKey The DeadKey char buffer
       
   278      * @param anewCharBuf The new Accented buffer
       
   279      * @return None
       
   280      */    
       
   281     TBool HandleAccentCharEvent(TInt aEventType, 
       
   282                                 const TDesC& aEventData, 
       
   283                                 const TDesC& aDeadKey, 
       
   284                                 HBufC* anewCharBuf );
       
   285 
       
   286     /**
       
   287      * Handle virtual key latched event
       
   288      *
       
   289      * @since S60 v3.2
       
   290      * @param aEventType The event type
       
   291      * @param aCtrl The controler
       
   292      * @param aEventData Event data
       
   293      * @return None
       
   294      */    
       
   295     void HandleVirtualKeyLatchedEvent(TInt aEventType, 
       
   296                                       CFepUiBaseCtrl* aCtrl, 
       
   297                                       const TDesC& aEventData );
       
   298 
       
   299 
       
   300     /**
       
   301      * handle virtual key up event
       
   302      *
       
   303      * @since S60 v3.2
       
   304      * @param aEventType The event type
       
   305      * @param aCtrl The controler
       
   306      * @param aEventData Event data
       
   307      * @return None
       
   308      */                                  
       
   309     TBool HandleVirtualKeyUpEvent(TInt aEventType, 
       
   310                                  CFepUiBaseCtrl* aCtrl, 
       
   311                                  const TDesC& aEventData );
       
   312   
       
   313     virtual void SetLafLayOut(TInt aRows, TInt aColumns);
       
   314      /*
       
   315      *
       
   316      * @since S60 v3.2
       
   317      * @return None
       
   318      */                                  
       
   319     void SetDeadKey();
       
   320     void ChangeInputModeL();
       
   321 
       
   322     /**
       
   323      * Unlatch a DeadKey by the key buffer
       
   324      *
       
   325      * @since S60 v3.2
       
   326      * @param abuf The key buffer which will be unlatched
       
   327      * @return None
       
   328      */
       
   329     void UnLatchDeadKey( const TDesC& abuf = KNullDesC );
       
   330   
       
   331     void SetPromptTextL(TUint8* aData);
       
   332     
       
   333     void UpdateLafData();
       
   334     
       
   335 	void ConstructAccentListL(TInt aLang);
       
   336 	
       
   337 	void ShowBubble(TInt aShow);
       
   338 	
       
   339     /**
       
   340      * Show tooltip of ICF
       
   341      * 
       
   342      * @param aText The text to be displayed in ICF
       
   343      * @return None
       
   344      */
       
   345 	void ShowTooltipL( const TDesC& aText, TInt aLangCode = ELangTest );
       
   346 	
       
   347     /**
       
   348      * Hide tooltip of ICF
       
   349      * 
       
   350      * @return None
       
   351      */	
       
   352 	void HideTooltip();
       
   353 	
       
   354     /**
       
   355      * Hide candidate list
       
   356      * 
       
   357      * @return None
       
   358      */		
       
   359 	void HideCandidateList();
       
   360 	
       
   361     /**
       
   362      * Show candidate list
       
   363      * 
       
   364      * @param aItemArray, the contents to be shown
       
   365      * @param aActiveIndex, the default index     
       
   366      * @return None
       
   367      */	
       
   368     void ShowCandidateListL( TInt aAlign, const CDesCArray* aItemArray,
       
   369                             TInt aActiveIndex );    
       
   370     
       
   371     /**
       
   372      * Handle candidate list selected events
       
   373      * 
       
   374      * @param aCtrl, pointer of the candidate list on which events occur.
       
   375      * @param, aEventData event data
       
   376      * @return None
       
   377      */	
       
   378     void HandleCandidateListSelectedL( CFepUiBaseCtrl* aCtrl, const TDesC& aEventData );        
       
   379     
       
   380     /*
       
   381      * Load range labels for range list
       
   382      *
       
   383      * @since S60 v5.0
       
   384      * @param aLangId current language id
       
   385      * @return None
       
   386      */
       
   387     void ConstructRangeLabelListL( TInt aLangId );
       
   388     
       
   389     /**
       
   390      * Update state of range button
       
   391      * 
       
   392      * @since S60 v5.0
       
   393      * @return None
       
   394      */
       
   395     void UpdateRangeCtrlsL();
       
   396     
       
   397     void ConstructFSQAccentListL( TInt aLangId );
       
   398     
       
   399     void SetIndiBubbleImageL( const TInt aImgID1,
       
   400                               const TInt aMaskID1,
       
   401                               const TInt aImgID2,
       
   402                               const TInt aMaskID2 );
       
   403     
       
   404     void IndiBubbleWithText();
       
   405     
       
   406     void IndiBubbleWithoutText();
       
   407     
       
   408     void SetIndiWithTextFlag( TBool aFlag );
       
   409     
       
   410     void UpdateIndiBubbleL( TUint8* aData );
       
   411     
       
   412     inline TFepIndicatorInfo IndicatorData();
       
   413     
       
   414     inline void SetIndicatorData( const TFepIndicatorInfo& aIndicatorData );
       
   415 protected:
       
   416 
       
   417     /**
       
   418      * Constructor
       
   419      *
       
   420      * @since S60 v3.2
       
   421      * @param aUiLayout The plugin ui layout
       
   422      * @param aLayoutContext The vkb layout context
       
   423      * @return None
       
   424      */
       
   425     CPeninputGenericVkbWindow( CFepUiLayout* aUiLayout, 
       
   426                                MPeninputLayoutContext* aLayoutContext,
       
   427                                MPeninputUiStateMgr* aUiStateMgr );
       
   428     void ConstructL();
       
   429     
       
   430     virtual TBool CreateCustomControlL( TInt16 aControlId, TInt32 aImageId );  
       
   431     virtual void  AddCustomControlGroupL(CFepUiBaseCtrl* aCtrl);  
       
   432 
       
   433 private:
       
   434     
       
   435     /**
       
   436      * Show range list
       
   437      *
       
   438      * @since S60 v5.0
       
   439      * @return None
       
   440      */
       
   441     void PopupRangeListL();
       
   442     
       
   443     /**
       
   444       * Prepare range list items
       
   445       * 
       
   446       * @since S60 v5.0
       
   447       * @param aRangeItems items in range list
       
   448       * @return None
       
   449       */
       
   450     void PrepareRangeListItems( RArray<CFepLayoutChoiceList::SItem>& 
       
   451             aRangeItems );
       
   452     
       
   453     /**
       
   454      * Utils to get context value 
       
   455      * 
       
   456      * @since S60 v5.0
       
   457      * @param aDataIndex index of context value
       
   458      * @return conext value
       
   459      */
       
   460     TInt IntContext( TPeninputDataType aDataIndex );
       
   461      
       
   462     void CalIndicatorRect(const TRect& aBoundRect,
       
   463                           TRect& aRealRect1,
       
   464                           TRect& aRealRect2,
       
   465                           TIndicatorAlign aAlign);
       
   466     
       
   467     /**
       
   468      * Handle range list event
       
   469      *
       
   470      * @since S60 v5.0
       
   471      * @return None
       
   472      */
       
   473     void HandleRangeListSelectedL( CFepUiBaseCtrl* aCtrl, 
       
   474             const TDesC& aData );
       
   475     
       
   476     /**
       
   477      * Get resource ids of range button icon
       
   478      * 
       
   479      * @since S60 v5.0
       
   480      * @param aLangId current language id
       
   481      * @param aAlphaRange variable to receive icon resource id for alpha range
       
   482      * @param aOtherRange variable to receive icon resource id for other ranges
       
   483      * @return None
       
   484      */
       
   485     void GetRangeIconResource( TInt aLangId, TInt& aAlphaRange, 
       
   486             TInt& aOtherRange );
       
   487     
       
   488     /**
       
   489      * Add range bar into client area
       
   490      *
       
   491      * @since S60 v3.2
       
   492      * @return None
       
   493      */
       
   494     void AddRangeBarL();
       
   495 
       
   496     /**
       
   497      * Add button to client area
       
   498      *
       
   499      * @since S60 v3.2
       
   500      * @param aControlId The control id
       
   501      * @param aEventId The control's event id
       
   502      * @param aResId The control's resource id
       
   503      * @param aUnicode The control's unicode
       
   504      * @param aIsRepeat The TBool indicating whether the 
       
   505      *        control is repeated or not
       
   506      * @return The pointer to CAknFepCtrlEventButton object
       
   507      */    
       
   508     CAknFepCtrlEventButton* AddButtonL( const TInt aControlId,
       
   509                                         const TInt aEventId,
       
   510                                         const TInt aResId,
       
   511                                         const TInt aUnicode = 0,
       
   512                                         const TBool aIsRepeat = EFalse );
       
   513 
       
   514     /**
       
   515      * Add popup window to display accented char list
       
   516      *
       
   517      * @since S60 v3.2
       
   518      * @return None
       
   519      */
       
   520     void AddPopupWindowL();
       
   521 
       
   522     /**
       
   523      * Reset accent button
       
   524      *
       
   525      * @since S60 v3.2
       
   526      * @return None
       
   527      */
       
   528     void ResetAccentButton();
       
   529 
       
   530     /**
       
   531      * Handle size changed for accented chars popup window
       
   532      *
       
   533      * @since S60 v3.2
       
   534      * @return None
       
   535      */
       
   536     void PopupWindowSizeChange();
       
   537     
       
   538     /**
       
   539      * get resource info of accented chars popup window
       
   540      *
       
   541      * @since S60 v3.2
       
   542      * @return None
       
   543      */
       
   544     void GetPopupWndInfoFromResL( TResourceReader reader, const TRect& aRect );  
       
   545     void DoIdleConstructL();
       
   546     
       
   547     void SetVkbLayoutSize();
       
   548     
       
   549     void SimulateRawEvent(TInt aScanCode, TRawEvent::TType aType);
       
   550     
       
   551     void SetRangeBarSizeL(TInt x, TInt y);
       
   552     
       
   553     TBool HandleDeadKeyL(TInt aEventType, const TDesC& aEventData );
       
   554     
       
   555     void ReorgnizeICFAndButtons();
       
   556     
       
   557     void UpdateICFTextL();
       
   558     
       
   559     inline TBool IsRtoLLanguage( TInt aLanguage );
       
   560     inline TBool IsValidLanguage(TInt aLanguage); 
       
   561     
       
   562     void HandleButtonResOnLangDirChange( TInt aControlId );
       
   563     void HandleButtonResOnLangDirChangeL( TInt aControlId );
       
   564     
       
   565     /*
       
   566     * Create a candidate list control
       
   567     */
       
   568     void CreateCandidateListL();       
       
   569     
       
   570     /*
       
   571     * Retrieve text color from skin for candidiate list
       
   572     */
       
   573     TRgb CandidateListTextColor();
       
   574     
       
   575     /*
       
   576     * Retrieve text color from skin for autocompletion part
       
   577     */
       
   578     TRgb AutoCompletionPartColor();
       
   579     
       
   580     /**
       
   581      * Called when short press occurs on range button.
       
   582      *
       
   583      * @since S60 v3.2
       
   584      * @return None
       
   585      */
       
   586     void HandleRangeButtonShortPress();
       
   587         
       
   588 private: // Data
       
   589 
       
   590     /**
       
   591      * The vkb extenting control for vkb area
       
   592      * Not own
       
   593      */
       
   594     CPeninputVkbCtrlExt* iVkbCtrl;
       
   595     
       
   596     /**
       
   597      * The range bar
       
   598      * Not own
       
   599      */
       
   600     CAknFepCtrlRangeBar* iRangeBar;
       
   601     
       
   602     /**
       
   603      * The language switch button
       
   604      * Not own
       
   605      */
       
   606     CAknFepCtrlEventButton* iLangSwitchBtn;
       
   607     
       
   608     /**
       
   609      * The resource file name
       
   610      */
       
   611     TBuf<KMaxFileLength> iResourceFilename;
       
   612     
       
   613     /**
       
   614      * The popup window
       
   615      * Own
       
   616      */    
       
   617     CPeninputCommonChoiceList* iPopupWnd;
       
   618     
       
   619     /**
       
   620      * The background bitmap of popup window
       
   621      * Not own
       
   622      */      
       
   623     CFbsBitmap* iPopupWndBgImg;  
       
   624 
       
   625     /**
       
   626      * The focus bitmap of popup window
       
   627      * Not own
       
   628      */  
       
   629     CFbsBitmap* iPopupWndFocusImg;
       
   630     
       
   631     /**
       
   632      * The UI state manager
       
   633      * Not own
       
   634      */  
       
   635     MPeninputUiStateMgr* iUiStateMgr;
       
   636     
       
   637     /**
       
   638      * Application window rect
       
   639      */  
       
   640     TRect iAppWndRect;
       
   641     
       
   642     /**
       
   643      * VKB window rect
       
   644      */  
       
   645     TRect iVkbWndRect;
       
   646     
       
   647     CIdle *iIdle;                     
       
   648     
       
   649     /**
       
   650      * Whether popup window has been initied
       
   651      */  
       
   652     TBool iPopupInited;
       
   653     
       
   654     /**
       
   655      * Popup window item rect
       
   656      */  
       
   657     TRect iPopupItemRect;
       
   658 
       
   659     /**
       
   660      * Choice text layout
       
   661      */  
       
   662     TAknTextLineLayout iChoiceTextLayout;
       
   663     
       
   664     /**
       
   665      * Whether popup window text property has been set
       
   666      */  
       
   667     TBool iPopupSet;
       
   668     
       
   669     /**
       
   670      * Array of unit size
       
   671      * Own
       
   672      */  
       
   673     RArray<TSize> iUnits;
       
   674     /**
       
   675      * Touch input switcher
       
   676      * Own
       
   677      */  
       
   678     CAknFepCtrlRepeatButton* iArrowLeftButton;
       
   679     
       
   680     CAknFepCtrlRepeatButton* iArrowRightButton;
       
   681     
       
   682     CAknFepCtrlDragButton* iMoveButton;
       
   683     
       
   684     CPeninputGenericVkbLafMgr* iLafMgr;
       
   685     
       
   686 //    CPeninputLayoutInputmodelChoice* iModeSwitchChoice;
       
   687 
       
   688     /**
       
   689      * The new DeadKey buffer
       
   690      */  
       
   691     TBuf<16> iNewDeadKeyBuf;
       
   692 
       
   693     /**
       
   694      * The old DeadKey buffer
       
   695      */  
       
   696     TBuf<16> iOldDeadKeyBuf;
       
   697     
       
   698     
       
   699     TAknWindowLineLayout iBubbleSize;
       
   700     TAknTextLineLayout iBubbleTextLayout;    
       
   701     TBool iFirstConstruct;   
       
   702     
       
   703     /**
       
   704      * Writing language
       
   705      */  
       
   706     TInt iLanguage;
       
   707     
       
   708     /**
       
   709      * Bitmap rotator
       
   710      */  
       
   711 	CPeninputSyncBitmapRotator* iBmpRotator;
       
   712     /**
       
   713      * Accent command list
       
   714      */
       
   715 	RArray<CFepLayoutChoiceList::SItem> iAccentCmdList;
       
   716 	
       
   717     TSize iIndicatorSize;
       
   718     
       
   719     TSize iIndicatorTextSize;
       
   720     
       
   721     TBool iIndiWithText;
       
   722     
       
   723     TFepIndicatorInfo iIndicatorData;
       
   724     
       
   725     /**
       
   726      * Range labels for range list
       
   727      */
       
   728     TAllRangeLabels iRangeLabels;
       
   729     
       
   730     /**
       
   731      * Indicates whether range button short press is handled.
       
   732      */
       
   733     TBool iHandleRangeShortPress;
       
   734     
       
   735     /**
       
   736      * Indicates whether US rsc file exist or not
       
   737      */   
       
   738     TBool iUSRscFileExist;
       
   739 
       
   740 private:	
       
   741 	CFepLayoutScrollableList* iCandidateList;
       
   742 	
       
   743     };
       
   744 
       
   745 inline TBool CPeninputGenericVkbWindow::IsRtoLLanguage( TInt aLanguage )
       
   746 	{
       
   747 	return ( aLanguage == ELangArabic ||
       
   748 			 aLanguage == ELangHebrew ||
       
   749 			 aLanguage == ELangFarsi  ||
       
   750 			 aLanguage == ELangUrdu );	
       
   751 	}    
       
   752 
       
   753 inline TBool CPeninputGenericVkbWindow::IsValidLanguage(TInt aLanguage)
       
   754 	{
       
   755 	return (aLanguage != ELangTest && aLanguage != ELangNone);	
       
   756 	}
       
   757 inline void CPeninputGenericVkbWindow::SetIndicatorData( 
       
   758         const TFepIndicatorInfo& aIndicatorData )
       
   759     {
       
   760     iIndicatorData.iIndicatorImgID = aIndicatorData.iIndicatorImgID;
       
   761     iIndicatorData.iIndicatorMaskID = aIndicatorData.iIndicatorMaskID;
       
   762     iIndicatorData.iIndicatorTextImgID = aIndicatorData.iIndicatorTextImgID;
       
   763     iIndicatorData.iIndicatorTextMaskID = aIndicatorData.iIndicatorTextMaskID;
       
   764     }
       
   765     
       
   766 inline TFepIndicatorInfo CPeninputGenericVkbWindow::IndicatorData()
       
   767     {
       
   768     return iIndicatorData;
       
   769     }
       
   770 #endif // C_PENINPUTGENERICVKBWINDOW_H