fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
--- a/fep/aknfep/UiPlugins/AknFepUiInterface/AvkonImpl/inc/AknFepUIAvkonCtrlCandidatePane.h	Tue Jul 06 14:38:41 2010 +0300
+++ /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 <e32std.h>
-#include <coecntrl.h>
-
-#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.
-     * <p> Note that if the buffer contains less characters than the current
-     * visible count, then the remaining characters will not be displayed. 
-     * <p> 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. 
-     * <p> 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
-     * <p> 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<CEikLabel> iCandidateLabelArray;
-    RPointerArray<CEikLabel> iOrdinalLabelArray;
-    RArray<TCandidateMode> iCandidateModeArray;
-private: // the following are members
-    CAknFepUiLayoutDataMgr* iLafDataMgr;
-    TAknLayoutRect iIndiFepArrowLeft;
-    TAknLayoutRect iIndiFepArrowRight;
-    TAknLayoutRect iIndiFepArrowUp;
-    TAknLayoutRect iIndiFepArrowDown;
-    TBufC<EMaxCandidates> 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<TPage> iPages;
-    //next paging candidate index
-    TInt iUnpagedIndex;
-    TInt iCurDisplayPage;
-    CDesCArrayFlat* iCandidateArray;
-    TInt iOrdinalLableWidth;
-    };
-
-#endif //__AKN_FEP_AVKON_CANDIDATE_PANE_H__
-
-// End of file