textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputdropdownlist.h
changeset 27 694fa80c203c
parent 24 fc42a86c98e3
child 35 0f326f2e628e
--- a/textinput/peninputcommonctrls/inc/peninputdropdownlist/peninputdropdownlist.h	Wed Jun 23 04:57:58 2010 +0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1418 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:  drop-down list control
-*
-*/
-
-
-#ifndef C_CFEPCTRLDROPDOWNLIST_H
-#define C_CFEPCTRLDROPDOWNLIST_H
-
-// INCLUDES
-#include <e32std.h>
-#include <w32std.h>
-#include <barsread.h>
-#include <peninputdropdownlistcontext.h>
-#include <peninputlayoutbasecontrol.h>
-#include <AknsUtils.h>
-
-
-/** class forward decalaration */
-class CCandidate;
-class CPages;
-class CBitmapDb;
-class CListManager;
-class MEventObserver;
-class CBubbleCtrl;
-class TAknTextLineLayout;
-
-/** The max length for fixed text */
-const TInt KMaxFixedTextNumber = 32;
-const TInt KDropDownListCtrlType = EUserCtrlBase | ECtrlBaseCtrl;
-
-/**
- *  The interface dealing with outer event from any control except the list
- *
- *  The interface dealing with outer event from any control except the list
- *
- *  @lib FepCtrlDropdownList.lib
- *  @since S60 v3.2
- */
-class MListEventHandler
-    {
-    
-public:
-
-    /**
-     * The method will be called when there is event from any control except from the list
-     *
-     * @since S60 v3.2
-     * @param aEventType The event type
-     * @param aCtrl The control who sends out the event
-     * @param aEventData The data relative with the event
-     */    
-    virtual void HandleListOuterEvent(TInt aEventType, CFepUiBaseCtrl* aCtrl, 
-                                      const TDesC& aEventData);  
-    
-    };
-
-/**
- *  The drop-down list control
- *
- *  The drop-down list control
- *
- *  @lib FepCtrlDropdownList.lib
- *  @since S60 v3.2
- */
-class CFepCtrlDropdownList : public CFepUiBaseCtrl,  
-                             public MFepCtrlDropdownListContext,
-                             public MEventObserver
-    { 
-
-public: // internal type definition
-    /**
-     *  The type of list, expandable or no-expandable
-     *
-     *  The type of list, expandable or no-expandable
-     *
-     *  @lib FepCtrlDropdownList.lib
-     *  @since S60 v3.2
-     */ 
-    enum TListType
-        {
-        EListExpandable,
-        EListExpandableWithBubble,
-        EListNoExpandable,
-        EListNoExpandableWithBubble,
-        EListExpandableWithoutIcon,
-        EListExpandableRollWithIcon,
-		EListExpandableRollWithIconWithBubble,
-        EListExpandableMultiRowWithoutIcon      
-        };
-
-    enum TCandTruncateType
-        {
-        // beginning part of candidate are hide
-        ECandTruncateFromBeginning,
-        // end part of candidate are shown as ellipsis
-        ECandTruncateAsEllipsis,
-        // end part of candidate are hide
-        ECandTruncateFromEnd
-        };
-
-    enum TExpandType
-        {
-        ECandExpandUpward,
-        ECandExpandDownward
-        };
-
-    // horizontal direction of candidate list: shrink and expanded
-    enum THDirection
-        {
-        ECandFromLToR,
-        ECandFromRToL
-        };
-
-public: //Method
-
-    /**
-     * Destructor
-     *
-     * @since S60 v3.2
-     * @return None.
-     */ 
-    IMPORT_C virtual ~CFepCtrlDropdownList();
-
-    /**
-     * Create one CFepCtrlDropdownList object
-     *
-     * @since S60 v3.2
-     * @param aTopLeftPoint The top left point of the drop down list
-     * @param aUiLayout The layout plugin
-     * @param aControlId This control ID
-     * @param aReader The reader from which the bitmaps ID can be read
-     * @param aCellWidth The width of one basic cell
-     * @param aCellHeight The height of one basic cell
-     * @param aNaviWidth The width of navidation
-     * @param aColNum The number of columns in one row
-     * @param aRowNum The number of rows
-     * @param aFont The font used to draw the text
-     * @param aHandler The handle which will deal with outer event to this control
-     * @param aAlignment The alighment used to draw text
-     * @param aTextMargin if alignment is not ECenter, the margin is used      
-     * @param aBorderColor The color of border
-     * @param aBgColor The color of background
-     * @param aNavigationBgColor The background color of navigation area
-     * @param aTextColor The color of text
-     * @param aSpecialTextColor The color of special text
-     * @param aHighLightTextColor The color of highlight text
-     * @param aHighLightBgColor The background color of high light
-     * @param aButtonDownBgColor The background color when button pressing
-     * @return The CFepCtrlDropdownList object.
-     */        
-    IMPORT_C static CFepCtrlDropdownList* NewL(const TPoint& aTopLeftPoint,
-                                                CFepUiLayout* aUiLayout,
-                                                TInt aControlId,
-                                                TResourceReader& aReader,
-                                                const TInt aCellWidth,
-                                                const TInt aCellHeight,
-                                                const TInt aNaviWidth,
-                                                const TInt aColNum,
-                                                const TInt aRowNum,
-                                                const CFont* aFont = NULL,
-                                                MListEventHandler* aHandler = NULL,
-                                                const CGraphicsContext::TTextAlign aAlignment = CGraphicsContext::ECenter,
-                                                const TInt aTextMargin = 3,
-                                                const TRgb aBorderColor = KRgbBlack,
-                                                const TRgb aBgColor = TRgb(0xeeeeee),
-                                                const TRgb aNavigationBgColor = TRgb(0xeeeeee), 
-                                                const TRgb aTextColor = KRgbBlack,
-                                                const TRgb aSpecialTextColor = KRgbBlack,
-                                                const TRgb aHighLightTextColor = KRgbBlack,
-                                                const TRgb aHighLightBgColor = TRgb(0xcccccc),
-                                                const TRgb aButtonDownBgColor = KRgbGray);
-    IMPORT_C static CFepCtrlDropdownList* NewL(CFepUiLayout* aUiLayout,
-                                               TInt aControlId,
-                                               TInt aResId,
-                                               TPoint aTopLeftPoint,
-                                               TSize aCellSize,
-                                               TInt aColNum,
-                                               TInt aRowNum);
-
-    IMPORT_C static CFepCtrlDropdownList* NewL(CFepUiLayout* aUiLayout,
-                                               TInt aControlId,
-                                               TInt aResId,
-                                               TPoint aTopLeftPoint,
-                                               const CFont* aFont,
-                                               TSize aCellSize,
-                                               TInt aNaviWidth,
-                                               TInt aColNum,
-                                               TInt aRowNum,
-                                               TInt aSpinBtnHeight,
-                                               TInt aHorizontalCellMargin = 0,
-                                               TInt aVerticalCellMargin = 0,
-                                               THDirection aDirection = ECandFromLToR,
-                                               TBool aPageShown = ETrue);
-
-    /**
-     * Create one CFepCtrlDropdownList object, need to pop up yourself
-     *
-     * @since S60 v3.2
-     * @param aTopLeftPoint The top left point of the drop down list
-     * @param aUiLayout The layout plugin
-     * @param aControlId This control ID
-     * @param aReader The reader from which the bitmaps ID can be read
-     * @param aCellWidth The width of one basic cell
-     * @param aCellHeight The height of one basic cell
-     * @param aNaviWidth The width of navidation
-     * @param aColNum The number of columns in one row
-     * @param aRowNum The number of rows
-     * @param aFont The font used to draw the text
-     * @param aHandler The handle which will deal with outer event to this control
-     * @param aAlignment The alighment used to draw text
-     * @param aTextMargin if alignment is not ECenter, the margin is used      
-     * @param aBorderColor The color of border
-     * @param aBgColor The color of background
-     * @param aNavigationBgColor The background color of navigation area
-     * @param aTextColor The color of text
-     * @param aSpecialTextColor The color of special text
-     * @param aHighLightTextColor The color of highlight text
-     * @param aHighLightBgColor The background color of high light
-     * @param aButtonDownBgColor The background color when button pressing
-     * @return The CFepCtrlDropdownList object.
-     */        
-    IMPORT_C static CFepCtrlDropdownList* NewLC(const TPoint& aTopLeftPoint,
-                                                CFepUiLayout* aUiLayout,
-                                                TInt aControlId,
-                                                TResourceReader& aReader,
-                                                const TInt aCellWidth,
-                                                const TInt aCellHeight,
-                                                const TInt aNaviWidth,
-                                                const TInt aColNum,
-                                                const TInt aRowNum,
-                                                const CFont* aFont = NULL,
-                                                MListEventHandler* aHandler = NULL,
-                                                const CGraphicsContext::TTextAlign aAlignment = CGraphicsContext::ECenter,
-                                                const TInt aTextMargin = 3,
-                                                const TRgb aBorderColor = KRgbBlack,
-                                                const TRgb aBgColor = TRgb(0xeeeeee),
-                                                const TRgb aNavigationBgColor = TRgb(0xeeeeee), 
-                                                const TRgb aTextColor = KRgbBlack,
-                                                const TRgb aSpecialTextColor = KRgbBlack,
-                                                const TRgb aHighLightTextColor = KRgbBlack,
-                                                const TRgb aHighLightBgColor = TRgb(0xcccccc),
-                                                const TRgb aButtonDownBgColor = KRgbGray);
-
-    /**
-     * Size change function
-     *
-     * @since S60 v3.2
-     * @param aCellWidth The width of one basic cell
-     * @param aCellHeight The height of one basic cell
-     * @param aNaviWidth The width of navidation
-     * @param aTopLeftPoint The top left point of the drop down list
-     * @param aColNum The number of columns in one row
-     * @param aRowNum The number of rows
-     * @return None.
-     */                                                   
-    IMPORT_C void SizeChanged(const TInt aCellWidth, const TInt aCellHeight, 
-                               const TInt aNaviWidth, const TPoint aTopLeftPoint = TPoint(0,0),
-                               const TInt aColNum = 0, const TInt aRowNum = 0);
-    
-    /**
-     * Set top left point of the list
-     *
-     * @since S60 v3.2
-     * @param aTopLeftPoint The top left point of the drop down list
-     * @return None.
-     */                                                   
-    IMPORT_C void SetTopLeftPoint(const TPoint aTopLeftPoint);
-    
-    /**
-     * Set the width of one basic cell
-     *
-     * @since S60 v3.2
-     * @param aCellWidth The width of one basic cell
-     * @return None.
-     */                                                   
-    IMPORT_C void SetCellWidth(const TInt aCellWidth);
-
-    /**
-     * Set the height of one basic cell
-     *
-     * @since S60 v3.2
-     * @param aCellHeight The height of one basic cell
-     * @return None.
-     */                                                   
-    IMPORT_C void SetCellHeight(const TInt aCellHeight);
-
-    /**
-     * Set width of navigation 
-     *
-     * @since S60 v3.2
-     * @param aNaviWidth The width of navidation
-     * @return None.
-     */                                                   
-    IMPORT_C void SetNaviWidth(const TInt aNaviWidth);
-    IMPORT_C void SetSpinBtnHeight(const TInt aHeight);
-    IMPORT_C void SetCellMargin(const TInt aHorizontalMargin, const TInt aVerticalMargin);
-   
-    /**
-     * Set column numbers
-     *
-     * @since S60 v3.2
-     * @param aColNum The number of columns in one row
-     * @return None.
-     */                                                   
-    IMPORT_C void SetColNum(const TInt aColNum);
-    
-    /**
-     * Set or unset highlight for cells.
-     *
-     * @since S60 v3.2
-     * @param aCellIndex Which cell would be set
-     * @param aHighlight The flag of highlight, set highlight if ETrue, otherwise cancel highlight
-     * @return None.
-     */  
-    IMPORT_C void SetHighlightCell(const TInt aCellIndex, TBool aHighlight = ETrue,
-                                   const TBool aIsDraw = ETrue );
-
-    
-    /**
-     * Set row numbers
-     *
-     * @since S60 v3.2
-     * @param aRowNum The number of rows
-     * @return None.
-     */                                                  
-    IMPORT_C void SetRowNum(const TInt aRowNum);
-    
-    /**
-     * Set border color
-     *
-     * @since S60 v3.2
-     * @param aBorderColor The border color
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetBorderColor(TRgb aBorderColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set background color for the whole area
-     *
-     * @since S60 v3.2
-     * @param aBgColor The background color
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetBgColor(TRgb aBgColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set background for navigation area
-     *
-     * @since S60 v3.2
-     * @param aNavigationBgColor The background color of navigation area
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetNavigationBgColor(TRgb aNavigationBgColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set text color
-     *
-     * @since S60 v3.2
-     * @param aTextColor The color used to draw text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetTextColor(TRgb aTextColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set color for special text
-     *
-     * @since S60 v3.2
-     * @param aSpecialTextColor The color used to draw special text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetSpecialTextColor(TRgb aSpecialTextColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set color for high light text
-     *
-     * @since S60 v3.2
-     * @param aHighLightTextColor The color used to draw high light text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetHighLightTextColor(TRgb aHighLightTextColor, TBool aReDraw = EFalse);
-
-    /**
-     * Set background color for highlight
-     *
-     * @since S60 v3.2
-     * @param aHighLightBgColor The background color of high light area
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetHighLightBgColor(TRgb aHighLightBgColor, TBool aReDraw = EFalse);
-   
-    /**
-     * The method will be called when there is event from any control except from the list
-     *
-     * @since S60 v3.2
-     * @param aFont The font used to draw text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetFont(const CFont* aFont, TBool aReDraw = EFalse);
-
-    /**
-     * Set text alignment
-     *
-     * @since S60 v3.2
-     * @param aAlignment The alignment used to draw text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetTextAlighment(const CGraphicsContext::TTextAlign aAlignment, 
-                                   TBool aReDraw = EFalse);
-
-    /**
-     * Set text margin if alignment is not ECenter
-     *
-     * @since S60 v3.2
-     * @param aTextMargin the margin used to draw text
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetTextMargin(const TInt aTextMargin, TBool aReDraw = EFalse);
-    
-    /**
-     * set secondary list
-     *
-     * @since S60 v3.2
-     * @param aIndex the cell index need to set new color
-     * @param aBgColor The background color
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void SetSecondaryList(RArray<TInt>& aIndexList, TBool aReDraw = EFalse);
-    
-    /**
-     * Set event handler when there is out event coming
-     *
-     * @since S60 v3.2
-     * @param aHandler The event handler, which has implemented the interface of MListEventHandler
-     * @return None.
-     */                                                   
-    IMPORT_C void SetListEventHandler(MListEventHandler* aHandler);
-
-    /**
-     * Set event id when candidate is selected
-     *
-     * @since S60 v3.2
-     * @param aEventId The event id when candidate is selected
-     * @return The CListMultiRowWithIcon pointer.
-     */                                                   
-    IMPORT_C void SetEventIdForCandidateSelected(TInt aEventId);
-    
-    /**
-     * Set event id when need to get next page candidate
-     *
-     * @since S60 v3.2
-     * @param aEventId The event id need next page candidate
-     * @return None
-     */
-    IMPORT_C void SetEventIdForNextPageCandidate(TInt aEventId);
-    
-    /**
-     * Set event id when need to get previous page candidate
-     *
-     * @since S60 v3.2
-     * @param aEventId The event id need previous page candidate
-     * @return None
-     */
-    IMPORT_C void SetEventIdForPreviousPageCandidate(TInt aEventId);
-    
-    /**
-     * Set event id when need to judge if candidate exist
-     *
-     * @since S60 v3.2
-     * @param aEventId The event id judge if candidate exist
-     * @return None
-     */
-    IMPORT_C void SetEventIdForCandidateExisted(TInt aEventId);
-    
-    /**
-     * Set candidates for the list
-     *
-     * @since S60 v3.2
-     * @param aCandidates the candidates array
-     * @param aListType The list type used when redraw
-     * @param aFixedText The fixed text(only used in English)
-     * @return None.
-     */                                                   
-    IMPORT_C void SetCandidatesL(const RPointerArray<HBufC>& aCandidates, 
-                                 const TListType aListType  = EListExpandable,
-                                 const TDesC& aFixedText = KNullDesC16);
-
-    IMPORT_C void SetCandTruncateType(
-                                const TCandTruncateType aTruncateType = ECandTruncateFromEnd);
-                                 
-    /**
-     * Add candidates for the list
-     *
-     * @since S60 v3.2
-     * @param aCandidates the candidates array
-     * @param aListType The list type used when redraw
-     * @return None.
-     */
-    IMPORT_C void AddCandidatesL(const RPointerArray<HBufC>& aCandidates,
-                                 const TListType aListType  = EListExpandable);
-
-    /**
-     * Reset and clear all candidates in the list and redraw the list
-     *
-     * @since S60 v3.2
-     * @param aListType The list type used when redraw
-     * @return None.
-     */                                              
-    IMPORT_C void ResetAndClear(const TListType aListType = EListNoExpandable);
-
-
-    /**
-     * Fold the expanding list
-     *
-     * @since S60 v3.2
-     * @return None.
-     */                                                   
-    IMPORT_C void FoldList();
-
-// from base class CFepUiBaseCtrl  
-
-    /**
-     * Draw the list
-     *
-     * @since S60 v3.2
-     * @return None
-     */                         
-    IMPORT_C void Draw();                                
-
-    /**
-     * Active the control
-     *
-     * @since S60 v3.2
-     * @return None
-     */                         
-    IMPORT_C void SetActive(TBool aActiveFlag);
-    
-    /**
-     * Get rect of the drop down list
-     *
-     * @since S60 v3.2
-     * @return The rect of the drop down list
-     */  
-    IMPORT_C const TRect& Rect();
-
-    /**
-     * Handle pointer down event
-     *
-     * @since S60 v3.2
-     * @param aPoint The point position relative the layout
-     */                                        
-    IMPORT_C CFepUiBaseCtrl* HandlePointerDownEventL(const TPoint& aPoint);
-    
-    /**
-     * Handle pointer move event
-     *
-     * @since S60 v3.2
-     * @param aPoint The point position relative the layout
-     */                  
-    IMPORT_C CFepUiBaseCtrl* HandlePointerMoveEventL(const TPoint& aPoint);
-    
-    /**
-     * Handle pointer up event
-     *
-     * @since S60 v3.2
-     * @param aPoint The point position relative the layout
-     */                  
-    IMPORT_C CFepUiBaseCtrl* HandlePointerUpEventL(const TPoint& aPoint);
-
-    /**
-     * Handle pointer leave event
-     *
-     * @since S60 v3.2
-     * @param aPoint The point position relative the layout
-     */                  
-    IMPORT_C void HandlePointerLeave(const TPoint& aPoint);
-
-// from interface MEventObserver  
-
-    /**
-     * Handle event 
-     * @since Series 60 3.1
-     * @param aEventType The event type
-     * @param aCtrl The control who sends the event
-     * @param aEventData The event data
-     * @return None
-     */  
-    IMPORT_C void HandleControlEvent(TInt aEventType, CFepUiBaseCtrl* aCtrl, 
-                                     const TDesC& aEventData);
-
-// from base class CFepUiBaseCtrl   
-   
-    /**
-     * Move the drop down list
-     * @since Series 60 3.1
-     * @param aOffset The offset point
-     * @return None
-     */     
-    IMPORT_C void Move(const TPoint& aOffset);
-
-    /**
-     * Hide the control
-     * @since Series 60 3.1
-     * @return None
-     */     
-    IMPORT_C void OnDeActivate();  
-
-    /**
-     * Hide or show dropdown list.
-     *     
-     * @param aFlag ETrue if want to hide the control.
-     */                                               
-    IMPORT_C void Hide( TBool aFlag );      
-    
-// from interface MContext
-
-    /**
-     * Get the candidate count
-     *
-     * @since S60 v3.2
-     * @return the candidate count.
-     */                                                   
-    IMPORT_C TInt CandidateCount() const;
-
-    /**
-     * Enable multi color or not
-     *
-     * @since S60 v3.2
-     * @param aEnable Enable mutil color if ETrue, otherwise disable
-     * @param aReDraw Redraw if ETrue, otherwise not redraw
-     * @return None.
-     */                                                   
-    IMPORT_C void EnableSecondary(TBool aEnable, TBool aReDraw = EFalse);
-
-    /**
-     * Get the flag of enable or disable multi color
-     *
-     * @since S60 v3.2
-     * @return ETrue if enable, or EFalse.
-     */                                                     
-    IMPORT_C TBool IsEnableSecondary() const;
-    
-    /**
-     * This function creates drop down list from resource, before calling 
-     * this function, caller should set resource id of drop down list first
-     * 
-     * @since S60 v3.2
-     * @return None
-     */
-    IMPORT_C void ConstructFromResourceL();
-
-    /**
-     * Get secondary list
-     *
-     * @since S60 v3.2
-     * @return color array.
-     */                                                   
-    const RArray<TInt>& GetSecondaryList() const;
-
-    /**
-     * Draw mask for the appointed rect
-     * @since Series 60 3.1
-     * @param aRect The rect which will be redrawn
-     * @return None
-     */     
-    void DrawMask(TRect aRect);
-
-    /**
-     * Active bitmap context
-     * @since Series 60 3.1
-     * @return None
-     */         
-    void ActivateBitmapContext();
-    
-    /**
-     * Get the graphics context
-     * @since Series 60 3.1
-     * @return The graphics context
-     */ 
-    CFbsBitGc* Gc();
-
-    /**
-     * Get the first candidate visible
-     *
-     * @since S60 v3.2
-     * @return The first candidate index.
-     */
-    TInt GetFirstCandidateIndex();
-
-    /**
-     * Get the first candidate visible
-     *
-     * @since S60 v3.2
-     * @return The last candidate index.
-     */
-    TInt GetLastCandidateIndex();
-
-    /**
-     * Set the first candidate visible
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void SetFirstCandidateIndex(TInt aFirstIndex);
-
-    /**
-     * Set the first candidate visible
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void SetLastCandidateIndex(TInt aLastIndex);
-    
-    /**
-     * Get the appointed candidate
-     * @since Series 60 3.1
-     * @param aIndex The index which will be check out
-     * @return The appointed candidate
-     */ 
-    CCandidate* GetCandidate(TInt aIndex);
-    
-    /**
-     * Get top left point
-     * @since Series 60 3.1
-     * @return The top left point
-     */ 
-    TPoint GetTopLeftPoint();
-    
-    /**
-     * Get cell width
-     * @since Series 60 3.1
-     * @return The cell width
-     */ 
-    TInt GetCellWidth();
-    
-    /**
-     * Get cell height
-     * @since Series 60 3.1
-     * @return The cell height
-     */ 
-    TInt GetCellHeight();
-    
-    /**
-     * Get navigation width
-     * @since Series 60 3.1
-     * @return The navigation width
-     */ 
-    TInt GetNaviWidth();
-    
-    TInt GetSpinBtnHeight();
-    TInt GetCellHorizontalMargin();
-    TInt GetCellVerticalMargin();
-    TInt ListType();
-    TInt OneRowStartCandIdx();
-    void SetOneRowStartCandIdx(TInt aOriginalCandIdx);
-    TInt GetOriginalFirstCandIdx();
-    void SetOriginalFirstCandIdx(TInt aOriginalFirstCandIdx);
-    TInt CandTruncateType();
-    CList* ActiveList();
-    void SetUpdateListReDrawFlag(TBool aReDraw);
-    TBool GetUpdateListRedrawFlag();
-    IMPORT_C void SetFuzzyBoundry(TInt aFuzzyBoundry);
-    TInt FuzzyBoundry();
-    TInt CandExpandType();
-    IMPORT_C void SetCandExpandType(const TExpandType aType = ECandExpandDownward);
-    TInt CandHDirection();
-    inline void SetHDirection(const THDirection aDirection = ECandFromLToR);
-
-    // when drop down list is expandable, decide pageup/pagedown shown or not 
-    TBool PageCtrlShown();
-    inline void SetPageCtrlShown(TBool aShown = ETrue);
-
-    /**
-     * Get columns number
-     * @since Series 60 3.1
-     * @return The top left point
-     */ 
-    TInt GetColNum();
-
-    /**
-     * Get rows number
-     * @since Series 60 3.1
-     * @return The top left point
-     */ 
-    TInt GetRowNum();
-
-    /**
-     * Get the font used to draw text
-     * @since Series 60 3.1
-     * @return The font used to draw text
-     */ 
-    const CFont* GetFont();
-    
-    /**
-     * Get alignment used to draw the text
-     * @since Series 60 3.1
-     * @return The alignment used to draw the text
-     */ 
-    CGraphicsContext::TTextAlign GetAlignment();
-
-    /**
-     * Get text margin used to draw the text
-     * @since S60 v3.2
-     * @return The margin used to draw the text
-     */ 
-    TInt GetTextMargin();
-        
-    /**
-     * Get background color
-     * @since Series 60 3.1
-     * @return The background color
-     */ 
-    TRgb GetBgColor();
-
-    /**
-     * Get button down color
-     * @since Series 60 3.1
-     * @return The background color
-     */ 
-    TRgb GetButtonDownBgColor();    
-        
-    /**
-     * Get border color
-     * @since Series 60 3.1
-     * @return The border color
-     */ 
-    TRgb GetBorderColor();
-    
-    /**
-     * Get text color
-     * @since Series 60 3.1
-     * @return The text color
-     */ 
-    TRgb GetTextColor();    
-        
-    /**
-     * Get background color for highlight area
-     * @since Series 60 3.1
-     * @return The background color for highlight area
-     */ 
-    TRgb GetHighLightBgColor();
-    
-    /**
-     * Get high light text color
-     * @since Series 60 3.1
-     * @return The high light text color
-     */ 
-    TRgb GetHighLightTextColor();
-    
-    /**
-     * Get special text color
-     * @since Series 60 3.1
-     * @return The special text color
-     */ 
-    TRgb GetSpecialTextColor();
-    
-    /**
-     * Get fixed text
-     * @since Series 60 3.1
-     * @return The fixed text
-     */ 
-    TDesC GetFixedText();
-
-    /**
-     * Get highlight cell list
-     * @since Series 60 3.1
-     * @return The highlight cell list
-     */
-    const RArray<TInt>& GetHighlightList() const;
-
-    /**
-     * Get page manager
-     * @since Series 60 3.1
-     * @return The page manager
-     */
-    CPages* GetPages();
-
-    /**
-     * Get bitmap manager
-     * @since Series 60 3.1
-     * @return The bitmap manager
-     */    
-    CBitmapDb* GetBitmapDb();
-        
-    /**
-     * Report event when candidate is selected
-     * @since Series 60 3.1
-     * @param aCandidate The candidate string
-     * @param aSelectedIndex The index of the selected candidate
-     * @return None
-     */
-    void ReportCandidateSelectEventL(const TDesC& aCandidate, const TInt aSelectedIndex);
-    
-    /**
-     * Invalidate some rect and redraw it
-     * @since Series 60 3.1
-     * @param aRect The rect which will be redrawn
-     * @param aUpdateAll Update all or not
-     * @return None
-     */
-    void Invalidate(const TRect& aRect,TBool aUpdateAll = EFalse); 
-
-    /**
-     * Change active list
-     *
-     * @since S60 v3.2
-     * @param aList The new active list
-     * @param aLastIndex The last visible candidate index  
-     * @return None.
-     */
-    void ChangeActiveList(CList* aList, TInt aLastIndex = 0); 
-    
-    /**
-     * Get pen size
-     *
-     * @since S60 v3.2
-     * @return The pen size.
-     */
-    const TSize GetPenSize();
-                                                                  
-    /**
-     * Set pointer capture
-     *
-     * @since S60 v3.2
-     * @param aFlag ETrue to capture pointer, otherwise EFalse
-     * @return None.
-     */
-    void SetCapture(TBool aFlag);
-    
-    /**
-     * Notify get next candidate page
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void NotifyGetNextPage();
-    
-    /**
-     * Notify get previous candidate page
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void NotifyGetPreviousPage();
-    
-    /**
-     * Notify close candidate page
-     *
-     * @since S60 v3.2
-     * @return None.
-     */
-    void NotifyClosePage();    
-    
-    /**
-     * Set flag of if next candidate after last page eixsted
-     *
-     * @since S60 v3.2
-     * @param aFlag ETrue if candidate exist, otherwise EFalse
-     * @return None
-     */
-    IMPORT_C void SetFlagCandidateExist(TBool aFlag);
-
-    /**
-     * Judge if next candidate existed
-     *
-     * @since S60 v3.2
-     * @return ETrue if candidate exist, otherwise EFalse
-     */
-    TBool NextCandidateExist();
-
-    /**
-     * Auto change active list
-     *
-     * @since S60 v3.2
-     * @param aLastIndex The last visible candidate index  
-     * @return None.
-     */
-    void AutoChangeActiveList( TInt aLastIndex = 0 ); 
-    
-    /**
-     * Set dropdown list image ID
-     *
-     * @since S60 v3.2
-     * @param TDropdownListDrawInfo image information
-     * @return None.
-     */
-	IMPORT_C void SetDropdownListImgID(TDropdownListDrawInfo aDropdownListDrawInfo);
-	
-    /**
-     * Show preview bubble
-     *
-     * @since S60 v3.2
-     * @param aFlag Show/Hide flag
-     * @return None.
-     */	
-	IMPORT_C void ShowBubble(TBool aFlag);
-	
-    /**
-     * Set bubble bitmap param
-     *
-     * @since S60 v3.2
-     * @param aBmpId 
-     * @param aMaskBmpId
-     * @param aBgSkinId
-     * @return None.
-     */		
-	IMPORT_C void SetBubbleBitmapParam(CFbsBitmap* aBmpId,
-                                       CFbsBitmap* aMaskBmpId ,
-                                       TAknsItemID aBgSkinId );
-    
-    /**
-     * Set bubble text font
-     *
-     * @since S60 v3.2
-     * @param aFont Text font
-     * @return None.
-     */		                                   
-    IMPORT_C void SetBubbleTextFont(const CFont* aFont);                                  
-                                       
-    /**
-     * Set bubble text format
-     *
-     * @since S60 v3.2
-     * @param aTextFormat Text format
-     * @return None.
-     */		                                   	
-	IMPORT_C void SetTextFormat(TAknTextLineLayout aTextFormat);
-		
-    /**
-     * Set bubble text format
-     *
-     * @since S60 v3.2
-     * @param aLeftDiff
-     * @param aTopDiff
-     * @param aRightDiff
-     * @param aBottomDiff
-     * @return None.
-     */		                                   	
-	IMPORT_C void SetFrameDiff(TInt aLeftDiff, TInt aTopDiff,
-                               TInt aRightDiff,TInt aBottomDiff);
-	
-    /**
-     * Set bubble size
-     *
-     * @since S60 v3.2
-     * @param aSize
-     * @return None.
-     */		                                   		
-	IMPORT_C void SetBubbleSize(const TSize& aSize);
-	
-    /**
-     * show preview bubble
-     *
-     * @since S60 v3.2
-     * @param aRect
-     * @param aText
-     * @return None.
-     */		                                   		
-	void DrawBubble(const TRect aRect, const TDesC& aText);
-	
-    /**
-     * Hide preview bubble
-     *
-     * @since S60 v3.2
-     * @return None.
-     */		                                   		
-	void ClearBubble();
-
-    /**
-     * ReDraw preview bubble
-     *
-     * @since S60 v3.2
-     * @return None.
-     */		                                   		
-	void ReDrawBubble();
-	
-	CFepUiLayout* UiLayout();
-
-    /**
-     * Redraw dropdown list
-     *
-     * @since S60 v3.2
-     * @param aRect Redraw rect.
-     * @return None.
-     */		                                   		
-    IMPORT_C void ReDrawRect(const TRect& aRect);
-protected:    
-
-    /**
-     * Constructor
-     *
-     * @since S60 v3.2
-     * @param aTopLeftPoint The top left point of the drop down list
-     * @param aUiLayout The layout plugin
-     * @param aControlId This control ID
-     * @param aReader The reader from which the bitmaps ID can be read
-     * @param aCellWidth The width of one basic cell
-     * @param aCellHeight The height of one basic cell
-     * @param aNaviWidth The width of navidation
-     * @param aColNum The number of columns in one row
-     * @param aRowNum The number of rows
-     * @param aFont The font used to draw the text
-     * @param aHandler The handle which will deal with outer event to this control
-     * @param aAlignment The alignment used to draw text
-     * @param aTextMargin if alignment is not ECenter, the margin is used 
-     * @param aBorderColor The color of border
-     * @param aBgColor The color of background
-     * @param aNavigationBgColor The background color of navigation area
-     * @param aTextColor The color of text
-     * @param aSpecialTextColor The color of special text
-     * @param aHighLightTextColor The color of highlight text
-     * @param aHighLightBgColor The background color of high light
-     * @param aButtonDownBgColor The background color when button pressing
-     */
-    CFepCtrlDropdownList(const TPoint& aTopLeftPoint,
-                         CFepUiLayout* aUiLayout,
-                         TInt aControlId,
-                         const TInt aCellWidth,
-                         const TInt aCellHeight,
-                         const TInt aNaviWidth,
-                         const TInt aColNum,
-                         const TInt aRowNum,
-                         const CFont* aFont,
-                         MListEventHandler* aHandler,                               
-                         const CGraphicsContext::TTextAlign aAlignment,
-                         const TInt aTextMargin,
-                         const TRgb aBorderColor,
-                         const TRgb aBgColor,
-                         const TRgb aNavigationBgColor, 
-                         const TRgb aTextColor,
-                         const TRgb aSpecialTextColor,
-                         const TRgb aHighLightTextColor,
-                         const TRgb aHighLighttBgColor,
-                         const TRgb aButtonDownBgColor);
-                         
-    CFepCtrlDropdownList(CFepUiLayout* aUiLayout,
-                         TInt aControlId,
-                         TPoint aTopLeftPoint,
-                         TSize aCellSize,
-                         TInt aColNum,
-                         TInt aRowNum);
-                         
-    CFepCtrlDropdownList(CFepUiLayout* aUiLayout,
-                         TInt aControlId,
-                         TInt aResId,
-                         TPoint aTopLeftPoint,
-                         const CFont* aFont,
-                         TSize aCellSize,
-                         TInt aNaviWidth,
-                         TInt aColNum,
-                         TInt aRowNum,
-                         TInt aSpinBtnHeight,
-                         TInt aHorizontalCellMargin,
-                         TInt aVerticalCellMargin,
-                                               THDirection aDirection,
-                                               TBool aPageShown);
-                         
-
-        
-    /**
-     * 2nd construct function
-     * @since Series 60 3.1
-     * @param aTopLeftPoint The top left point
-     * @param aReader The reader from which the bitmaps ID can be read
-     * @return None
-     */ 
-    void ConstructL(const TPoint& aTopLeftPoint, TResourceReader& aReader);
-
-    void ConstructL(TPoint aTopLeftPoint, TInt aResId);
-    
-private:
-
-    /**
-     * The list manager
-     * Not own
-     */
-    CListManager* iListManager;
-        
-    /**
-     * The bitmap database
-     * Own
-     */
-    CBitmapDb* iBitmapDb;
-
-    /**
-     * The pages manager
-     * Own
-     */
-    CPages* iPages;
-
-    /**
-     * The candidate list
-     * Own
-     */
-    RPointerArray<CCandidate> iCandidatelist;
-    
-    /**
-     * The candidate color list
-     * Own
-     */
-    RArray<TInt> iSecondaryList;
-
-    /**
-     * The high light list
-     * Own
-     */
-    RArray<TInt> iHighlightList;
-
-    /**
-     * The flag of multi color enable or disable
-     */
-    TBool iEnableSecondary;
-      
-    /**
-     * The first candidate index in the list
-     */
-    TInt iFirstCandidateIndex;
-
-    /**
-     * The last candidate index in the list
-     */
-    TInt iLastCandidateIndex;
-
-    /**
-     * The font used to draw the text
-     * Own
-     */
-    const CFont* iFont;
-    
-    const CFont* iBubbleFont;
-
-    /**
-     * Cell width
-     */
-    TInt iCellWidth;
-
-    /**
-     * Cell height
-     */
-    TInt iCellHeight;
-
-    /**
-     * navigation width
-     */
-    TInt iNaviWidth;
-    
-    TInt iSpinBtnHeight;
-    TInt iCellHorizontalMargin;
-    TInt iCellVerticalMargin;
-    TInt iOriginalCandIdx;
-    TInt iOriginalFirstCandIdx;
-    TBool iUpdateListReDraw;
-
-    /**
-     * alignment used to draw the text
-     */
-    CGraphicsContext::TTextAlign iAlignment;
-
-    /**
-     * the margin used to draw the text if alignment is not ECenter
-     */
-    TInt iTextMargin;
-
-    /**
-     * The columns number
-     */
-    TInt iColNum;
-
-    /**
-     * The rows number
-     */
-    TInt iRowNum;
-
-    /**
-     * The border color
-     */
-    TRgb iBorderColor;
-
-    /**
-     * The background color of the whole list
-     */
-    TRgb iBgColor;
-
-    /**
-     * The navigation background color
-     */
-    TRgb iNavigationBgColor;
-
-    /**
-     * The text color
-     */
-    TRgb iTextColor;
-
-    /**
-     * The special text color
-     */
-    TRgb iSpecialTextColor;
-
-    /**
-     * The highlight text color
-     */
-    TRgb iHighLightTextColor;
-
-    /**
-     * The background color of highlight area 
-     */
-    TRgb iHighLightBgColor;
-
-    /**
-     * The background color when button down
-     */
-    TRgb iButtonDownBgColor;
-
-    /**
-     * The top left point the list
-     */
-    TPoint iTopLeftPoint;
-
-    /**
-     * The fixed text
-     */
-    TBuf<KMaxFixedTextNumber> iFixedText;
-    
-    /**
-     * The event ID for candidate selected
-     */
-    TInt iEventIdForCandidateSelected;
-    
-    /**
-     * The event ID for next page candidate
-     */
-    TInt iEventIdForNextPageCandidate;
-    
-    /**
-     * The event ID for previous page candidate
-     */
-    TInt iEventIdForPreviousPageCandidate;
-    
-    /**
-     * The event ID for judge if candidate existed
-     */
-    TInt iEventIdForCandidateExisted;
-
-    /**
-     * The event handler when out event coming
-     * Not own
-     */
-    MListEventHandler* iListEventHandler;
-
-    /**
-     * The first time construct flag of drop down list
-     */
-    TBool iFirstTimeConstruct;
-    
-    /**
-     * The flag to indicate that candidate existed or not at given position
-     */
-    TBool iCandidateExisted;
-    
-    /**
-     * The type of drop down list.
-     */
-    TListType iListType;
-
-    TCandTruncateType iCandTruncateType;
-
-    TInt iFuzzyBoundry;
-    
-    TExpandType iCandExpandType;
-    
-    THDirection iCandHDirection;
-    
-    TBool iPageCtrlShown;
-    
-    CBubbleCtrl* iBubbleCtrl;
-    
-    TBool iIsShowBubble;
-    
-    TSize iBubbleSize;
-    
-    TInt iBubbleVerticalMargin;
-    };    
-        
-#endif // C_CFEPCTRLDROPDOWNLIST_H
-
-inline void CFepCtrlDropdownList::SetHDirection(const THDirection aDirection)
-    {
-    iCandHDirection = aDirection;
-    }
-
-inline void CFepCtrlDropdownList::SetPageCtrlShown(TBool aShown)
-    {
-    iPageCtrlShown = aShown;
-    }
-// End Of File