fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlPinyinPopup.h
changeset 0 eb1f2e154e89
child 3 f5a1e66df979
equal deleted inserted replaced
-1:000000000000 0:eb1f2e154e89
       
     1 /*
       
     2 * Copyright (c) 2004 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:           
       
    15 *       Provides the CAknFepUICtrlPinyinPopup class definitions.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 
       
    24 
       
    25 
       
    26 
       
    27 
       
    28 
       
    29 #ifndef __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
       
    30 #define __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
       
    31 
       
    32 #include <AknFepUICtrlPinyinPopup.h>
       
    33 #include <badesca.h>
       
    34 #include <coecntrl.h>
       
    35 #include <AknUtils.h>
       
    36 #include "AknFepUIAvkonCtrlInputPane.h"
       
    37 #include "AknFepUIAvkonCtrlCandidatePane.h"
       
    38 
       
    39 class MAknFepUICtrlPinyinPopupSizeChangedObserver;
       
    40 
       
    41 NONSHARABLE_CLASS(CAknFepUICtrlPinyinPopup):public CCoeControl, public MAknFepUICtrlPinyinPopup
       
    42 {
       
    43 public:
       
    44     /**
       
    45      * First phase construction
       
    46      */
       
    47     static CAknFepUICtrlPinyinPopup* NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr);
       
    48     /**
       
    49      * destructor
       
    50      */
       
    51     ~CAknFepUICtrlPinyinPopup();
       
    52     /**
       
    53      * This function returns the index of the selected phrase item .
       
    54      *
       
    55      * @return aIndex index of entry in window, zero based
       
    56      */
       
    57     TInt CurrentSelection() const;
       
    58     /**
       
    59      * This function returns the visible index of the selected item.
       
    60      *
       
    61      * @return aIndex index of entry in window, zero based
       
    62      */
       
    63     TInt CurrentVisibleSelection() const;
       
    64 	 /**
       
    65      * set the observer
       
    66      * <p> Note that only one observer is supported!
       
    67      *
       
    68      * @param aObserver pointer to the observer
       
    69      */
       
    70     void SetSizeChangedObserver(MAknFepUICtrlPinyinPopupSizeChangedObserver* aObserver);
       
    71 
       
    72     /**
       
    73      * Enables the display of the control. Sets the control's 
       
    74      * window postion and visibility, but only if the value has
       
    75      * changed (so it's ok to call it excessively). 
       
    76      *
       
    77      * @param aEnable if ETrue, makes visible
       
    78      *                          if EFalse, makes non-visible
       
    79      *
       
    80      */
       
    81     void Enable(TBool aEnable);
       
    82 	/**
       
    83      * set the number of selections that are visible
       
    84      *
       
    85      * @param aCount the number of visible selections, must be 
       
    86      *                          0 < aCount <= KMaxNumberOfSelections 
       
    87      */
       
    88     void SetVisibleSelectionCount(TInt aCount);
       
    89 	/**
       
    90      * set the number of selections that are visible
       
    91      *
       
    92      * @param aCount the number of visible selections, must be 
       
    93      *                          0 < aCount <= KMaxNumberOfSelections 
       
    94      */
       
    95     void SetVisibleCount(TInt aCount);
       
    96 
       
    97     /**
       
    98      * get the current visible selection count
       
    99      *
       
   100      * @return visible selection count
       
   101      */
       
   102     TInt VisibleSelectionCount() const;
       
   103 
       
   104 
       
   105     /**
       
   106      * This sets the string of the internal buffer for the item index aIndex to aText,
       
   107      * even if the index falls outside the current visible candidates.
       
   108      *
       
   109      * @param aText new contents of text item
       
   110      * @return ETrue if successful
       
   111      *              EFalse if index outside visible candidates (but value is still set)
       
   112      *
       
   113      */
       
   114     TBool SetItemText(TInt aIndex, const TDesC& aText);
       
   115 
       
   116     /**
       
   117     *   Sets the string of the internal buffer for visible item 
       
   118     */
       
   119     TBool SetPhraseItemTexts();
       
   120     
       
   121     /**
       
   122      * This function gets the text at the index aIndex. 
       
   123      *
       
   124      * @param aIndex index of entry in window, zero based
       
   125      * @output aText contains contents of text item
       
   126      * @return ETrue always
       
   127      *
       
   128      */
       
   129     TBool GetItemText(TInt aIndex, TDes& aText) const;
       
   130 
       
   131     /**
       
   132      * This function sets the Tone Mark for all entries
       
   133      * 
       
   134      * @param aToneMark the tone mark
       
   135      *
       
   136      */
       
   137     void SetToneMark(const TDesC& aToneMark);
       
   138 
       
   139     /**
       
   140      * This function sets the Tone Mark for a specific entry
       
   141      * 
       
   142      * @param aIndex index of entry
       
   143      * @param aToneMark the tone mark
       
   144      *
       
   145      */
       
   146     void SetToneMark(TInt aIndex, const TDesC& aToneMark);
       
   147 
       
   148     /**
       
   149      * This function gets the Tone Mark for a specific entry
       
   150      * 
       
   151      * @param aIndex index of entry
       
   152      * @output aToneMark the tone mark
       
   153      *
       
   154      */
       
   155     void GetToneMark(TInt aIndex, TDes& aToneMark) const;
       
   156 
       
   157     /**
       
   158      * This function sets the validity of the tonemark
       
   159      *
       
   160      * @param aIndex index of the entry to be affected
       
   161      * @param aValid if ETrue, tonemark will be displayed as valid
       
   162      *                          if EFalse, tonemark will be displayed as not valid
       
   163      */
       
   164     void SetItemToneMarkValidity(TInt aIndex, TBool aValid);
       
   165     /**
       
   166      * Is the control enabled for display?
       
   167      *
       
   168      * @return if not enabled, return EFalse
       
   169      */
       
   170     TBool IsEnabled() const;
       
   171 
       
   172     /**
       
   173      * Select the next visible item. If already on the last one, loop to the 
       
   174      * first one.
       
   175      *
       
   176      * @return ETrue if success, 
       
   177      *              EFalse if no items visible, or if selection is outside visible items
       
   178      */
       
   179     TBool SelectNextPhrase();
       
   180 
       
   181     /**
       
   182      * Select the previous visible item. If already on the first one, loop to the 
       
   183      * last one.
       
   184      *
       
   185      * @return ETrue if success, 
       
   186      *              EFalse if no items visible, or if selection is outside visible items
       
   187      */
       
   188     TBool SelectPrevPhrase();
       
   189 
       
   190     /**
       
   191      * This function selects the item at index aIndex. 
       
   192      *
       
   193      * @param aIndex index of entry in window, zero based
       
   194      * @return ETrue if success, EFalse if failure.
       
   195      */
       
   196     TBool SelectIndex(TInt aIndex);
       
   197 
       
   198     /**
       
   199 	*	Return Pinyin spelling candidate array 
       
   200 	*/
       
   201     CDesCArrayFlat* PhoneticSpellingArray(void);
       
   202 
       
   203     /**
       
   204 	*	Return Pinyin spelling candidate array 
       
   205 	*/
       
   206     CDesCArrayFlat* PhoneticSpellingIndexArray();    
       
   207     /**
       
   208 	*	Split phrase pinyin spelling candidates into pages 
       
   209 	*/
       
   210     void SplitPhraseSpellingIntoPages(void);
       
   211 
       
   212     /**
       
   213 	*	Split pinyin spelling candidates into pages 
       
   214 	*/
       
   215     void SplitSpellingIntoPages(TInt aCount);
       
   216     
       
   217     /**
       
   218 	*	Set display page for deliberate selection 
       
   219 	*/
       
   220     void SetDisplayPage(TInt aSelection);
       
   221     /**
       
   222 	*	Return current page start spelling index 
       
   223 	*/
       
   224     TInt CurrentPageStartIndex(void);
       
   225 
       
   226     /**
       
   227 	*	Return kestroke array 
       
   228 	*/
       
   229     CDesCArrayFlat* KeystrokeArray(void);
       
   230     
       
   231     /**
       
   232 	*	Return in effect kestroke array 
       
   233 	*/    
       
   234     CDesCArrayFlat* InEffectKeystrokeArray();
       
   235     
       
   236     /**
       
   237 	*	Return  show kestroke array 
       
   238 	*/    
       
   239     CDesCArrayFlat* ShowKeystrokeArray();
       
   240 
       
   241     /**
       
   242 	 *	Return Optimize Spelling array 
       
   243 	 */    
       
   244     CDesCArrayFlat* OptimizeSpelling();
       
   245     
       
   246     /**
       
   247      *  Return temp Spelling array 
       
   248      */    
       
   249     CDesCArrayFlat* TempSpelling();
       
   250     
       
   251     /**
       
   252      *	Return choose chinese charater array 
       
   253      */
       
   254     CDesCArrayFlat* ChooseChineseCharacterArray();    
       
   255 
       
   256     /**
       
   257      *	Return choose chiese charater keystroke array 
       
   258      */
       
   259     CDesCArrayFlat* ChooseChineseCharacterArrayKeystroke();    
       
   260     
       
   261     /**
       
   262      *	Return the tone mark state 
       
   263      */
       
   264     TBool GetTonemarkState();   
       
   265     
       
   266     /**
       
   267      *	set the tone mark state 
       
   268      */
       
   269      void SetTonemarkState( TBool aState );    
       
   270      
       
   271     /**
       
   272     *   Set, clear and check flags status
       
   273     */
       
   274     inline void SetFlag(TInt aFlag);
       
   275     inline void ClearFlag(TInt aFlag);
       
   276     inline TBool IsFlagSet(TInt aFlag) const;
       
   277 	void PopupSizeChanged();
       
   278 	
       
   279     /**
       
   280      *  Set all the input pane not highlight
       
   281      */
       
   282 	void SetNoneHighlighted();
       
   283 	
       
   284     /**
       
   285     *   Return kestroke array 
       
   286     */
       
   287 	CDesCArrayFlat* KeystrokeArrayForStroke();
       
   288 
       
   289     /**
       
   290     *   Return in effect kestroke array 
       
   291     */  
       
   292 	CDesCArrayFlat* InEffectKeystrokeArrayForStroke();
       
   293 
       
   294     /**
       
   295     *   Return  show kestroke array 
       
   296     */ 
       
   297 	CDesCArrayFlat* ShowKeystrokeArrayForStroke();
       
   298 
       
   299     /**
       
   300      *  Return choose chinese charater array 
       
   301      */
       
   302 	CDesCArrayFlat* ChooseChineseCharacterArrayForStroke();
       
   303 
       
   304     /**
       
   305      *  Return choose chiese charater keystroke array 
       
   306      */
       
   307 	CDesCArrayFlat* ChooseChineseCharacterArrayKeystrokeForStroke();
       
   308 	
       
   309     CDesCArrayFlat* ZhuyinSymbols();
       
   310     
       
   311     CDesCArrayFlat* ZhuyinShowSymbols();
       
   312     
       
   313     CDesCArrayFlat* FirstValidZhuyinGrp() ;
       
   314     
       
   315     CDesCArrayFlat* ChineseCharsDisped() ;
       
   316     
       
   317     CDesCArrayFlat* ZhuyinSymbolsForChineseCharsDisped() ;
       
   318     
       
   319     void SetEEPContent ( const TDes& aDes );
       
   320     TDes& GetEEPContent ( );
       
   321     
       
   322     void SetEEPContentValid ( TBool aValid );
       
   323     TBool GetEEPContentValid ( );
       
   324     
       
   325     /**
       
   326      *  Reset all array 
       
   327      */
       
   328 	void ResetStrokeArray();
       
   329 	
       
   330     /**
       
   331      *  Set the state is changed 
       
   332      */
       
   333     void SetChangeState( TBool aChangeState );
       
   334     
       
   335     /**
       
   336      *  Return if has changed state or not 
       
   337      */
       
   338     TBool IsChangeStatet() const;
       
   339     
       
   340     /**
       
   341      * Set whether state change from entry to spelling editing is automatical.
       
   342      * 
       
   343      * @param aState.1 for automatical, 0 for manual.
       
   344      * @return None.
       
   345      */
       
   346     void SetState( TInt aState );
       
   347     
       
   348     /**
       
   349      * Get state change status.
       
   350      */
       
   351     TInt GetState();
       
   352     
       
   353     /**
       
   354      * Set whether state change from pinyin input state to pinyin phrase creation.
       
   355      * 
       
   356      * @param aState. ETrue for state change from pinyin input to phrase creation,
       
   357      *  EFalse is not.
       
   358      * @return None.
       
   359      */
       
   360     void SetPhraseCreationState( TBool aState );
       
   361     
       
   362     /**
       
   363      * Set whether state change from pinyin input state to pinyin phrase creation.
       
   364      * 
       
   365      * @return ETrue for state change from pinyin input to phrase creation,
       
   366      *  EFalse is not.
       
   367      */
       
   368     TBool GetPhraseCreationState();
       
   369     
       
   370     /**
       
   371      * Set whether at the editing state happen editing for pinyin phrase creation.
       
   372      * 
       
   373      * @param aState. ETrue happen editing,EFalse others.
       
   374      * @return None.
       
   375      */
       
   376     void SetPhraseCreationEditingState( TBool aState );
       
   377     
       
   378     /**
       
   379      * Get whether at the editing state happen editing for pinyin phrase creation.
       
   380      * 
       
   381      * @param aState. ETrue happen editing,EFalse others.
       
   382      * @return None.
       
   383      */
       
   384     TBool GetPhraseCreationEditingState();
       
   385     
       
   386     /**
       
   387      * Set flag whether from candidate state change state.
       
   388      * 
       
   389      * @param aFlag  ETrue from the candidate state change state, other EFalse.
       
   390      * @since S60 V5.0
       
   391      * @return none.
       
   392      */
       
   393     void SetFromCandidateChangeStateFlag( TBool aFlag );
       
   394     
       
   395     /**
       
   396      * Get flag whether from candidate state change state.
       
   397      * 
       
   398      * @since S60 V5.0
       
   399      * @return ETrue from the candidate state change state, other EFalse.
       
   400      */
       
   401     TBool GetFromCandidateChangeStateFlag();
       
   402 
       
   403     /**
       
   404      * Set count of valid keystroke.
       
   405      * 
       
   406      * @since S60 V5.0
       
   407      * @return none
       
   408      */
       
   409     void SetValidKeystrokeCount( TInt aCount );
       
   410     
       
   411     /**
       
   412      * get count of valid keystroke.
       
   413      * 
       
   414      * @since S60 V5.0
       
   415      * @return count of valid keystroke.
       
   416      */
       
   417     TInt GetValidKeystrokeCount();
       
   418     
       
   419     /**
       
   420      * Set last cba resouce id.
       
   421      * 
       
   422      * @since S60 V5.0
       
   423      * @return None
       
   424      */
       
   425     void SetLastResouce( TInt aResouceId );
       
   426     
       
   427     /**
       
   428      * Get last cba resouce id.
       
   429      * 
       
   430      * @since S60 V5.0
       
   431      * @return last resouce id
       
   432      */
       
   433     TInt GetLastResouce();
       
   434     
       
   435     
       
   436     /**
       
   437      * Set change state from Edit to Spelling flag.
       
   438      * 
       
   439      * @param aFlag,If ETrue Change from Edit state to spelling state,EFalse others. 
       
   440      * @since S60 V5.0
       
   441      * @return none.
       
   442      */
       
   443     void SetFromEditToSpellingFlag( TBool aFlag = EFalse );
       
   444 
       
   445     /**
       
   446      * Get change state from Edit to Spelling flag.
       
   447      * 
       
   448      * @param none. 
       
   449      * @since S60 V5.0
       
   450      * @return ETrue Change from Edit state to spelling state,EFalse others..
       
   451      */
       
   452     TInt GetFromEditToSpellingFlag();
       
   453     
       
   454     
       
   455     /**
       
   456      * Set valid keystroke change flag.
       
   457      * 
       
   458      * @param aFlag, ETrue valid keystroke changed,EFalse others.
       
   459      * @since S60 V5.0
       
   460      * @return none
       
   461      */
       
   462     void SetValidKeystrokeChange( TBool aFlag );
       
   463     
       
   464     /**
       
   465      * Get valid keystroke change flag.
       
   466      * 
       
   467      * @since S60 V5.0
       
   468      * @return ETrue,if vallid keystroke changed, others EFalse.
       
   469      */
       
   470     TBool GetValidKeystrokeChange();
       
   471     
       
   472     /**
       
   473      * Set PreStateIsPredict flag.
       
   474      * 
       
   475      * @param aFlag, ETrue PreStateIsPredict,EFalse others.
       
   476      * @since S60 V5.0
       
   477      * @return none
       
   478      */
       
   479     void SetPreStateIsPredictive( TBool aFlag );
       
   480     
       
   481     /**
       
   482      * Get PreStateIsPredict flag.
       
   483      * 
       
   484      * @since S60 V5.0
       
   485      * @return ETrue,if PreStateIsPredict, others EFalse.
       
   486      */
       
   487     TBool GetPreStateIsPredictive();
       
   488 
       
   489     void SetInputLayoutMiniQwertyZhuyin();
       
   490     
       
   491     void ResetInputLayoutMiniQwertyZhuyin();
       
   492 
       
   493 protected: // From CCoeControl
       
   494 	TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
       
   495 
       
   496 protected:
       
   497     /**
       
   498      * constructor
       
   499      */
       
   500 	CAknFepUICtrlPinyinPopup(CAknFepUiLayoutDataMgr* aLafDataMgr);
       
   501     /**
       
   502      * second phase construction
       
   503      */
       
   504     void ConstructL(RWindow& aParent);
       
   505 	/**
       
   506      * Construct arrow bitmap class
       
   507      */
       
   508 	void ConstructBitmapsL();
       
   509     /**
       
   510      * layout the rectangles
       
   511      */
       
   512     void LayoutRects();
       
   513 
       
   514     /**
       
   515      * layout contained controls
       
   516      */
       
   517     void LayoutContainedControls();
       
   518 
       
   519     /**
       
   520      * Layout the input panes
       
   521      */
       
   522     void LayoutInputPanes();
       
   523  
       
   524 	/**
       
   525      * set the visibility of the input panes, according to the current layout
       
   526      */
       
   527     void SetInputPaneVisibility();
       
   528 
       
   529     /**
       
   530      * layout the background frames
       
   531      */
       
   532     void LayoutFrames();
       
   533 
       
   534     /**
       
   535      * just layout one of the input panes
       
   536      *
       
   537      * @param aIndex index of input pane to lay out
       
   538      *
       
   539      */
       
   540     void LayoutInputPane(TInt aIndex);
       
   541 
       
   542     /**
       
   543      * update input panes' visibility
       
   544      */
       
   545     void UpdateInputPaneVisibility(void);
       
   546 
       
   547 	
       
   548 public: //from CcoeControl
       
   549      /**
       
   550      * size changed
       
   551      */
       
   552     virtual void SizeChanged();
       
   553 
       
   554     /**
       
   555      * count component controls
       
   556      *
       
   557      * @return number of contained controls
       
   558      */
       
   559     TInt CountComponentControls() const;
       
   560 
       
   561     /**
       
   562      * Component control
       
   563      *
       
   564      * @param aIndex the control to return, must be between 0 and the number of controls
       
   565      * @return pointer to contained control, ownership is not passed
       
   566      * 
       
   567      */
       
   568     CCoeControl* ComponentControl(TInt aIndex) const;
       
   569     /**
       
   570      * draw
       
   571      *
       
   572      * @param aRect rectangle
       
   573      *
       
   574      */
       
   575     virtual void Draw(const TRect& aRect) const;
       
   576     /**
       
   577      * layout the background frames
       
   578      *
       
   579      * @param aOuterRect filled with outer rect coords
       
   580      * @param aInnerRect filled with inner rect coords
       
   581      *
       
   582      */
       
   583     void CalculateFrameRects(TRect& aOuterRect, TRect& aInnerRect) const;
       
   584  
       
   585 private: // the following need resetting
       
   586     RPointerArray<CAknFepUICtrlInputPane> iInputPaneArray;
       
   587 private: // the following are not owned
       
   588     CAknFepUiLayoutDataMgr* iLafDataMgr;
       
   589     MAknFepUICtrlPinyinPopupSizeChangedObserver* iSizeChangedObserver;
       
   590 private: // the following are owned
       
   591     CAknsFrameBackgroundControlContext* iBgContext; 
       
   592     CFbsBitmap* iNaviArrowBitmapLeft;
       
   593     CFbsBitmap* iNaviArrowBitmapLeftMask;
       
   594     CFbsBitmap* iNaviArrowBitmapRight;
       
   595     CFbsBitmap* iNaviArrowBitmapRightMask;
       
   596 
       
   597 private:
       
   598 	TAknLayoutRect iIndiFepArrowLeft;
       
   599     TAknLayoutRect iIndiFepArrowRight;
       
   600     TInt iSelected;
       
   601     TInt iEnabled;
       
   602     TToneMark iToneMark;
       
   603    	TAknLayoutRect iRectCoverMainPaneInput;
       
   604     TAknLayoutRect iRectFirstShadowInput;
       
   605     TAknLayoutRect iRectOutlineFrameInput;
       
   606     TAknLayoutRect iRectInsideAreaInput;
       
   607 	TInt iVisibleCount;
       
   608     RArray<TPage> iPages;
       
   609     TInt iCurDisplayPage;
       
   610     CDesCArrayFlat* iSpellingArray;
       
   611     //Spelling index array
       
   612     CDesCArrayFlat* iSpellingIndexArray;
       
   613     //keystroke arrray
       
   614     CDesCArrayFlat* iKeystrokeArray;
       
   615     //in effect keystroke array
       
   616     CDesCArrayFlat* iInEffectKeystrokeArray;
       
   617     //show Keystroke array
       
   618     CDesCArrayFlat* iShowKeystrokeArray;
       
   619     //Optimize Keystroke array
       
   620     CDesCArrayFlat* iOptimizeSpelling;
       
   621     //temp Keystroke array
       
   622     CDesCArrayFlat* iTempSpelling;
       
   623     //Chinese array
       
   624     CDesCArrayFlat* iChooseChineseCharacterArray;
       
   625     //Chinese Keystroke array
       
   626     CDesCArrayFlat* iChooseChineseCharacterArrayKeystroke;
       
   627     
       
   628     CDesCArrayFlat* iKeystrokeArrayForStroke;
       
   629     CDesCArrayFlat* iInEffectKeystrokeArrayForStroke;
       
   630     CDesCArrayFlat* iShowKeystrokeArrayForStroke;
       
   631     CDesCArrayFlat* iChooseChineseCharacterArrayForStroke;
       
   632     CDesCArrayFlat* iChooseChineseCharacterArrayKeystrokeForStroke;
       
   633 
       
   634     CDesCArrayFlat* iZhuyinSymbols;
       
   635     CDesCArrayFlat* iZhuyinShowSymbols;
       
   636     CDesCArrayFlat* iFirstValidZhuyinGrp;
       
   637     CDesCArrayFlat* iChineseCharsDisped;
       
   638     CDesCArrayFlat* iZhuyinSymbolsForChineseCharsDisped;
       
   639     TBuf<100> iEEPContent;
       
   640     TBool iEEPContentValid;
       
   641     
       
   642     //the tone mark state
       
   643     TInt iTonemarkState;
       
   644     
       
   645     //the stroke state
       
   646     TInt iStrokeState;
       
   647     
       
   648     // The highlight goes back to wrong position when transfer from pinyin 
       
   649     // spelling pane to pinyin candidate pane more than one time.
       
   650     TInt iHighLightFlag;
       
   651     
       
   652     TInt iFlags;
       
   653     
       
   654     TInt iValidKeystrokeCount;
       
   655     TInt iPhraseCreation;
       
   656     TInt iPhraseCreationEditingState;
       
   657     TInt iChangeState;
       
   658     /**
       
   659      * whether the state change from entry to spelling editing is automatical.
       
   660      */
       
   661     TInt iState;
       
   662     
       
   663     TInt iLastResouce;
       
   664     
       
   665     /**
       
   666      * whether the state change from Edit to spelling.
       
   667      */
       
   668     TInt iChangeStateFromEditToSpelling;
       
   669     
       
   670     /**
       
   671      * whether the valid keystroke changed.
       
   672      */
       
   673     TInt iValidKeystrokeChanged;
       
   674     
       
   675     /**
       
   676      * whether the previous state is predictive display.
       
   677      */
       
   678     TBool iPreStateIsPredictive;
       
   679 };
       
   680 
       
   681 inline void CAknFepUICtrlPinyinPopup::SetFlag(TInt aFlag)
       
   682     {
       
   683     iFlags |= aFlag;
       
   684     }
       
   685 
       
   686 inline void CAknFepUICtrlPinyinPopup::ClearFlag(TInt aFlag)
       
   687     {
       
   688     iFlags &= ~aFlag;
       
   689     }
       
   690 
       
   691 inline TBool CAknFepUICtrlPinyinPopup::IsFlagSet(TInt aFlag) const
       
   692     {
       
   693     return iFlags & aFlag;
       
   694     }
       
   695 
       
   696 #endif // __AKN_FEP_UI_AVKON_PINYIN_POPUP_H
       
   697 
       
   698 // End of file