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