--- 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