diff -r 0f326f2e628e -r a7632c26d895 fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h --- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h Fri Jul 23 16:49:01 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,502 +0,0 @@ -/* -* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0"" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Provides the CAknFepUICtrlCandidatePane definition. -* -*/ - - - - - - - - - - - - -#ifndef __AKN_FEP_AVKON_CANDIDATE_PANE_H__ -#define __AKN_FEP_AVKON_CANDIDATE_PANE_H__ - -#include -#include - -#include "AknFepUICtrlCandidatePane.h" -#include "AknFepUIAvkonCtrlContainerChinese.h" - -class CAknFepUICtrlCandidateSelected; - -/** - * Pane which displays the Chinese Candidates. - */ -NONSHARABLE_CLASS(CAknFepUICtrlCandidatePane) : public CCoeControl, public MAknFepUICtrlCandidatePane - { -public: - /** - * first phase construction - */ - static CAknFepUICtrlCandidatePane* NewL(RWindow& aParent, CAknFepUiLayoutDataMgr* aLafDataMgr); - /** - * destructor - */ - ~CAknFepUICtrlCandidatePane(); -public: - /** - * Get a buffer that can be filled with candidate characters, - * which will subsequently be displayed. - * - * @output the text buffer of the Pane - */ - const TDesC& TextBuffer() const; - - /** - * Allows the client to set a descriptor pointer into an existing buffer of - * data, avoiding unnecessary copying of data. - *

Note that if the buffer contains less characters than the current - * visible count, then the remaining characters will not be displayed. - *

Note also that if the current selection falls outside the range - * of the size of the new buffer, it will be made not visible. - * However, the current highlighted state remains, so if the selection - * is set once more to a valid entry (or if the buffer is set to a length that - * includes the currently selected position), and the highlight is still enabled, - * the highlight will reappear. - * - * @param aBufferPtr descriptor that contains the candidates for display, - * could be a pointer into a subset of a larger descriptor - * that contains all the candidates. Note that only the - * first EMaxCandidates of aBuffer will be used. - * Length must be > 0. - */ - void SetCandidateBuffer(const TDesC& aBuffer); - - /** - * This function sets the highlighted status of the pane for rendering purposes. - * If the Pane is highlighted it displays the current selected Candidate, - * plus numbers with each of the other Candidates. - * - * @param aHighlighted ETrue if the highlight is to be set - * EFalse if the highlight is to be removed - */ - void SetHighlighted(TBool aHighlighted); - - /** - * This function returns the highlighted status of the Pane. - * - * @return ETrue if highlight was set - * EFalse if highlight was not set - * - */ - TBool Highlighted() const; - - /** - * Set the candidate mode for the specified candidate. This is used for - * setting the colour of the font for components in stroke mode - * - * @param aMode the new mode - */ - void SetCandidateMode(TInt aIndex, TCandidateMode aMode); - - /** - * Get the candidate mode for the specified candidate. - * - * @return aMode the new mode - */ - TCandidateMode CandidateMode(TInt aIndex); - - /** - * are the Horizontal Scroll Arrows enabled? - * - * @return if arrows not enabled, returns EFalse - */ - TBool IsShowHorizontalScrollArrows() const; - - /** - * enable/disable the rendering of the Horizontal Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowHorizontalScrollArrows(TBool aValue); - - - /** - * enable/disable the rendering of the up Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowUpScrollArrows(TBool aValue); - - /** - * enable/disable the rendering of the down Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowDownScrollArrows(TBool aValue); - - /** - * enable/disable the rendering of the left Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowLeftScrollArrows(TBool aValue); - - /** - * enable/disable the rendering of the right Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowRightScrollArrows(TBool aValue); - - /** - * are the Vertical Scroll Arrows enabled? - * - * @return if arrows not enabled, returns EFalse - */ - TBool IsShowVerticalScrollArrows() const; - - /** - * enable/disable the rendering of the Vertical Scroll Arrows. - * - * @param aValue if ETrue, enable the arrows - * if EFalse, disable the arrrows - */ - void ShowVerticalScrollArrows(TBool aValue); - - /** - * enable/disable the rendering of the candidate ordinal numbers - * - * @param aValue if ETrue, enable the ordinals - * if EFalse, disable the ordinals - * - */ - void ShowCandidateOrdinals(TBool aValue); - - /** - * enable/disable the rendering of the candidate ordinal numbers - * - * @return if not shown, return EFalse - */ - TBool IsShowCandidateOrdinals() const; - - /** - * This function returns the number of Candidates that are visible in the pane - * in its current configuration. - * - * @return number of candidates that are currently visible - */ - TInt VisibleCandidateCount() const; - - /** - * This function sets the number of candidates that are visible. - * This will affect the size of the control as determined by the layout. - * - * @param aCount the new visible count, - * must be 1 <= aCount <= EMaxCandidates - */ - void SetVisibleCandidateCount(TInt aCount); - - /** - * Select the first visible item in the candidate buffer - * - * @return ETrue if success, EFalse if no items visible - * - */ - TBool SelectFirst(); - - /** - * Select the first visible phrase item in the candidate buffer - * - * @return ETrue if success, EFalse if no items visible - * - */ - TBool SelectFirstPhrase(); - - /** - * Select the last visible item in the candidate buffer - * - * @return ETrue if success, EFalse if no items visible - * - */ - TBool SelectLast(); - - /** - * Select the last visible phrase item in the candidate buffer - * - * @return ETrue if success, EFalse if no items visible - * - */ - TBool SelectLastPhrase(); - - /** - * Select the next visible item - * - * @return ETrue if success, - * EFalse if no items visible, or if already on last visible item - */ - TBool SelectNext(); - /** - * Select the previous visible item - * - * @return ETrue if success, - * EFalse if no items visible, or if already on first visible item - */ - TBool SelectPrev(); - - /** - * This function selects the given index. - *

Note that if the new selected index is within the visible count, - * but falls on a candidate that is not valid (i.e. if it falls outside the - * length of the candidate buffer) then nothing happens and EFalse is returned - * - * @param aIndex If aIndex falls outside length of candidate buffer, - * then return EFalse to indicate failure. - * @return ETrue if index was valid, EFalse if index not valid - */ - TBool SelectIndex(TInt aIndex, TBool selected = ETrue); - - /** - * This function returns the selected index of the Candidate Pane. - * - * @return the index of the selected item. If the Pane is not highlighted it returns 0. - * - */ - TInt SelectedIndex() const; - - /** - * This function returns the character at index of the current selection - * - * @return a descrptor containing the character that is currently selected. - * If the currect selection falls outside the length of the current buffer, - * then return a null descriptor - * - */ - TPtrC CurrentCandidate() const; - /** - * This function returns the phrase at index of the current selection - * - * @return a descrptor containing the character that is currently selected. - * If the currect selection falls outside the length of the current buffer, - * then return a null descriptor - * - */ - TPtrC CurrentPhraseCandidate() const; - /** - * This function calculate the input pane's size for phrase input layout - * @return input pane's size - * - */ - TInt LabelTextWidthInPixels(TInt aIndex); - /** - * Set layout - * @param aPaneLayout the new panelayout - * - */ - void SetPaneLayout(CAknFepUICtrlContainerChinese::TPaneLayout aPaneLayout); - /** - * Split phrase candidates into pages - */ - void SplitPhraseCandidatesIntoPages(); - - /** - * Navigate to next page - */ - void NextCandidatePage(void); - - /** - * Navigate to previous page - */ - void PreviousCandidatePage(void); - - /** - * Return candidate array - */ - CDesCArrayFlat* CandidateArray(void); - - /** - * Set phrase candidate buffer - */ - void SetCandidateBuffer(void); - - /** - * Reset candidate pane state and variables - */ - void ResetCandidateState(); - - /** - * To test whether current page is the first page - */ - TBool IsFirstPage(); - - /** - * To test whether current page is the last page - */ - TBool IsLastPage(); - - /** - * To set all the cnadidate label invisible(phrase creation) - */ - void SetInVisiable(); - /** - * To test whether need to get new candidate page - */ - TBool NeedGetNewCandidatePage(); - -public: // from CCoeControl - /** - * size changed - */ - virtual void SizeChanged(); - - /** - * count component controls - * - * @return number of contained controls - */ - TInt CountComponentControls() const; - - /** - * Component control - * - * @param aIndex the control to return, must be between 0 and the number of controls - * @return pointer to contained control, ownership is not passed - * - */ - CCoeControl* ComponentControl(TInt aIndex) const; - - /** - * draw - * - * @param aRect rectangle - * - */ - virtual void Draw(const TRect& aRect) const; - - - //Bug Fixing for ESSG-7P5CSZ - void Enable(TBool aEnable); - -protected: - /** - * second phase construction - */ - void ConstructL(RWindow& aParent); - - /** - * Construct all the bitmap classes - */ - void ConstructBitmapsL(); - - /** - * constructor - */ - CAknFepUICtrlCandidatePane( CAknFepUiLayoutDataMgr* aLafDataMgr ); - - /** - * layout the rectangles - */ - void LayoutRects(); - - /** - * layout contained controls - */ - void LayoutContainedControls(); - - /** - * layout the labels for a single candidate - */ - void LayoutLabel(TInt aIndex); - - /** - * layout the labels for all the candidates (even those that are not currently visible) - */ - void LayoutLabels(); - - /** - * layout selected candidate - *

Note that there is only one instance, as there can - * only be one selected candidate at a time. Therefore, the control - * is placed in the position that is correct based on the current selection - * - * @param aIndex the index of the new position of the selected candidate - * - */ - void LayoutCandidateSelected(); - - /** - * set label vilisibilty, according to the current pane layout - */ - void UpdateLabelVisibility(); - - /** - * draw background color - * - * @param aRect rect in which to draw - */ - void DrawBackground(const TRect& aRect) const; - - /** - * Internal candidate paging function, - * Only paging once per call. - * - */ - void InternalSpilitPhraseCandidate(); - -private: // the following are owned - CAknFepUICtrlCandidateSelected* iCandidateSelected; - CFbsBitmap* iNaviArrowBitmapLeft; - CFbsBitmap* iNaviArrowBitmapLeftMask; - CFbsBitmap* iNaviArrowBitmapRight; - CFbsBitmap* iNaviArrowBitmapRightMask; - CFbsBitmap* iNaviArrowBitmapUp; - CFbsBitmap* iNaviArrowBitmapUpMask; - CFbsBitmap* iNaviArrowBitmapDown; - CFbsBitmap* iNaviArrowBitmapDownMask; -private: // the following need resetting - RPointerArray iCandidateLabelArray; - RPointerArray iOrdinalLabelArray; - RArray iCandidateModeArray; -private: // the following are members - CAknFepUiLayoutDataMgr* iLafDataMgr; - TAknLayoutRect iIndiFepArrowLeft; - TAknLayoutRect iIndiFepArrowRight; - TAknLayoutRect iIndiFepArrowUp; - TAknLayoutRect iIndiFepArrowDown; - TBufC iBuffer; - CAknFepUICtrlContainerChinese::TPaneLayout iPaneLayout; - TInt iVisibleCount; - TInt iSelected; - TBool iHighlighted; - TBool iShowHorizontalScrollArrows; - TBool iShowVerticalScrollArrows; - TBool iShowUpScrollArrows; - TBool iShowDownScrollArrows; - TBool iShowLeftScrollArrows; - TBool iShowRightScrollArrows; - TBool iShowCandidateOrdinals; - RArray iPages; - //next paging candidate index - TInt iUnpagedIndex; - TInt iCurDisplayPage; - CDesCArrayFlat* iCandidateArray; - TInt iOrdinalLableWidth; - }; - -#endif //__AKN_FEP_AVKON_CANDIDATE_PANE_H__ - -// End of file