diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/aknlists.h --- a/epoc32/include/mw/aknlists.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/aknlists.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,1918 @@ -aknlists.h +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __AKNLISTS_H__ +#define __AKNLISTS_H__ + +#include +#include +#include +#include +#include + +#include + + +class TAknTextLineLayout; +class MAknsSkinInstance; +class MAknsControlContext; + +/** THIS FILE INCLUDES: + * 1) All listbox layouts specified in Avkon LAF specification + * a) General list pane descendants + * b) Pop up window list pane descendants + * c) Grid panes + * 2) Utilities that help building listbox layouts based on LAF specification + * 3) Other helper classes that handle listbox behavior + */ + + +// +// +// Helper template definitions. +// (these are before concrete listbox classes because they're needed for inheritance) +// + + +/** + * This adds correct horizontal and vertival lines to the listbox and handles empty listbox! + * + * This class is only useful if you're writing your own list layout. + * Please use the predefined layouts instead, for example CAknSingleStyleListBox. + */ +template +class AknListBoxLinesTemplate : public T + { +public: + /** AknListBoxLinesTemplate + * + * Read AVKON_LISTBOX_LINES resources. + * + * The following predefined lines are available: + * R_LIST_PANE_LINES_A_COLUMN + * R_LIST_PANE_LINES_AB_COLUMN + * R_LIST_PANE_LINES_AB_COLUMN_X + * R_LIST_PANE_LINES_AB_COLUMN_XX + * R_LIST_PANE_LINES_BC_COLUMN + * R_LIST_PANE_LINES_BC_COLUMN_X + * R_LIST_PANE_LINES_BC_COLUMN_XX + * + */ + IMPORT_C AknListBoxLinesTemplate(TInt aResourceId); + /** SizeChanged() + * + * Determines position of the lines + */ + IMPORT_C void SizeChanged(); + /** Draw() + * + * Draws the lines + */ + IMPORT_C void Draw(const TRect& aRect) const; + /** CountComponentControls() + * + * Choose controls to use as child controls + */ + IMPORT_C TInt CountComponentControls() const; + /** CountComponentControls() + * + * Choose controls to use as child controls + */ + IMPORT_C CCoeControl* ComponentControl(TInt aIndex) const; + +private: + TInt iSpare0; // was iResourceId; + TAknLayoutRect iVertLine1, iVertLine2; // not used + TAknLayoutRect iHoriLine; // not used + TBool iResized; + TInt iSpare[2]; + }; + +/** + * Empty layout for popup lists + */ + +template +class AknPopupListEmpty : public T + { + /** + * Draws empty list when needed. See AknDraw::DrawEmptyList(). + */ + IMPORT_C virtual void Draw(const TRect &aRect) const; + }; + + + /** + * Avkon version of eikon's column listbox. + * Content for list items are tab-separated strings. + * + * See methods + * CEikListBox::ConstructFromResourceL() + * CEikListBox::ConstructL() + * CEikTextListBox::SetItemArray() + * CEikColumnListBoxData::SetIconArray() + * + * Related flags for ConstructL() (avkon.hrh) + * EAknListBoxSelectionList + * EAknListBoxMenuList + * EAknListBoxMarkableList + * EAknListBoxMultiselectionList + * EAknListBoxViewerFlags + * + * Related flags for dialogs (avkon.hrh) + * EAknDialogSelectionList + * EAknDialogMenuList + * EAknDialogMultiselectionList + * + * @since Series 60 0.9 + * + */ +class CAknColumnListBox : public CEikColumnListBox + { +public: + /** + * Creates new @c CAknColumnListBoxView object and returns pointer to it. + * @return Pointer to the list box view which displays the list items which + * are currently visible in a list box. + */ + IMPORT_C virtual CListBoxView* MakeViewClassInstanceL(); + + /** + * Creates @c CAknFilteredTextListBoxModel object. + */ + IMPORT_C virtual void CreateModelL(); + + /** + * Listbox rectangle calculation. Rounds down the height of the rectangle + * (if necessary) so that only a whole number of items can be displayed + * inside the list box. + * @param aRect The size of the listbox. + * @return The number of pixels reduced. + */ + IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect& aRect) const; + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + /** + * From CAknControl + */ + IMPORT_C void* ExtensionInterface( TUid aInterface ); +private: // listbox use only + IMPORT_C virtual void CEikListBox_Reserved(); + }; + + +// +// These define what features are needed --> you can remove shortcuts from ALL lists by changing these.. +// Templates available: AknListBoxLinesTemplate<> AknListBoxShortCutTemplate<> +typedef AknListBoxLinesTemplate CEikColumnListBoxTypedef; +typedef AknListBoxLinesTemplate CEikFormattedCellListBoxTypedef; +typedef AknListBoxLinesTemplate CEikSettingsListBoxTypedef; +typedef CAknGrid CAknSelectionGridTypedef; + +// Templates available: AknListBoxShortCutTemplate<> AknListBoxLinesTemplate<> +#define AKNCOLUMNLISTBOXNAME(x) AknListBoxLinesTemplate(x) +#define AKNDOUBLELISTBOXNAME(x) AknListBoxLinesTemplate(x) +#define AKNSETTINGLISTBOXNAME(x) AknListBoxLinesTemplate(x) + +// Templates available: AknListBoxLinesTemplate<>, AknListBoxShortCutTemplate<> +#define AKNCOLUMNLISTBOX AknListBoxLinesTemplate +#define AKNFORMATTEDLISTBOX AknListBoxLinesTemplate +#define AKNSETTINGSLISTBOX AknListBoxLinesTemplate +#define AKNGRID CAknGrid + + + + + + + +// +// +// Derived listboxes (Use these in applications!) +// These are only for full screen lists -- the Rect() of the list must be ClientRect() +// +// + + +/** + * list_single_pane + * + * list item string format: "\tTextLabel\t0\t1" + * where 0 and 1 are indexes to icon array + */ + +class CAknSingleStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_single_number_pane + * + * list item string format: "2\tTextLabel\t0\t1" + * where 0 and 1 are indexes to icon array + */ + +class CAknSingleNumberStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleNumberStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_single_heading_pane + * + * list item string format: "Heading\tTextLabel\t0\t1" + * where 0 and 1 are indexes to icon array + * + */ + +class CAknSingleHeadingStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleHeadingStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + + /** MakeViewClassInstanceL() + * + * Chooses which listbox view class to use + */ + IMPORT_C virtual CListBoxView* MakeViewClassInstanceL(); +private: + void SizeChangedL(); + }; + + +/** + * list_single_graphic_pane + * + * list item string format: "0\tTextLabel\t1\t2" + * where 0,1,2 are index to the icon array + */ + +class CAknSingleGraphicStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleGraphicStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_single_Graphic_heading_pane + * + * list item string format: "0\tHeading\tTextLabel\t1\t2" + * where 0,1,2 are index to the icon array + */ + +class CAknSingleGraphicHeadingStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleGraphicHeadingStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + IMPORT_C virtual void CreateItemDrawerL(); + /** MakeViewClassInstanceL() + * + * Chooses which listbox view class to use + */ + IMPORT_C virtual CListBoxView* MakeViewClassInstanceL(); +private: + void SizeChangedL(); + }; + +/** + * list_single_number_heading_pane + * + * list item string format: "1\tHeading\tTextLabel\t2\t3" + * where 2 and 3 are indexes to icon array + */ + +class CAknSingleNumberHeadingStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleNumberHeadingStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + IMPORT_C virtual void CreateItemDrawerL(); + /** MakeViewClassInstanceL() + * + * Chooses which listbox view class to use + */ + IMPORT_C virtual CListBoxView* MakeViewClassInstanceL(); +private: + void SizeChangedL(); + }; + +/** + * list_single_large_pane + * + * list item string format: "1\tTextLabel\t0\t0" + * where 0 is an index to icon array + */ + +class CAknSingleLargeStyleListBox : public CEikColumnListBoxTypedef + { +public: + IMPORT_C CAknSingleLargeStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_double_pane and list_big_single_pane + * + * list item string format: " \tFirstLabel\tSecondLabel\t0\t0" + * where 0 is an index to icon array + */ + +class CAknDoubleStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDoubleStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_twoline_pane + * + * list item string format: " \tFirstLongLabel\t\t0" + * where 0 is an index to icon array + */ + +class CAknDoubleStyle2ListBox : public CAknDoubleStyleListBox + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + /** + * list_double_number_pane and list_big_single_number_pane + * + * list item string format: "1\tFirstLabel\t\t0\t0" + * list item string format: "1\tFirstLabel\tSecondLabel\t0\t0" + * where 0 is an index to icon array + * + */ + +class CAknDoubleNumberStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDoubleNumberStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_double_time_pane + */ + +class CAknDoubleTimeStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDoubleTimeStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_double_large_pane + * + * list item string format: "1\tFirstLabel\tSecondLabel\t0\t0" + * + * where 0 is an index of small (13x13) icon in icon array + * and 1 is an index of a thumbnail image + * + * Good thumbnail image sizes for this list are: + * 30x40, 36x44, 40x30, 40x48, 44x36. + */ + +class CAknDoubleLargeStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDoubleLargeStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** + * list_double_graphic_pane + * + * list item string format: "0\tFirstLabel\tSecondLabel\t0" + * where 0 is index to icon array + * + */ + +class CAknDoubleGraphicStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDoubleGraphicStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** + * list_double2_graphic_pane + * + * list item string format: "0\tFirstLabel\tSecondLabel\t0" + * where 0 is index to icon array + * + */ + +class CAknDouble2GraphicStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDouble2GraphicStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** + * list_double2_large_graphic_pane + * + * list item string format: "1\tFirstLabel\tSecondLabel\t0" + * + * where 0 is an index of small (13x13) icon in icon array + * and 1 is an index of a thumbnail image + * + */ + +class CAknDouble2LargeStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDouble2LargeStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** +* list_double2_graphic_large_graphic_pane +* +* This is similar but not identical to +* java list CAknDouble2GraphicLargeStyleListBox +* +* list item string format: "0\t1\tFirstLabel\tSecondLabel\t2\t3" +* +* where 0 (mandatory), 2 and 3 (optional) are an index of small icon +* in icon array and 1 (mandatory) is an index of a thumbnail image +* +* @lib avkon +* @since Series 60 2.8 +*/ + +class CAknDouble2GraphicLargeGraphicStyleListBox : public CEikFormattedCellListBoxTypedef + { +public: + IMPORT_C CAknDouble2GraphicLargeGraphicStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** + * list_double2_graphic_pane + * + * list item string format: "1\tFirstLabel\tSecondLabel\t0" + * where 0 is an index to icon array + * + */ + +class CAknFormDoubleGraphicStyleListBox : public CAknDoubleGraphicStyleListBox + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; +typedef CAknFormDoubleGraphicStyleListBox CAknSingleBigHeadingGraphicListBox; + +/** + * list_double2_pane + * + * list item string format: " \tFirstLabel\tSecondLabel\t0" + * where 0 is an index to icon array + */ + +class CAknFormDoubleStyleListBox : public CAknDoubleStyleListBox + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; +typedef CAknFormDoubleStyleListBox CAknSingleBigHeadingListBox; + + +/** + * list_setting_pane and list_big_single_setting_pane + * + * list item string format: "\tFirstLabel\t\tValueText" + * list item string format: "\tFirstLabel\t0\t" + * list item string format: "\tFirstLabel\t\tValueText\t*" + * list item string format: "\tFirstLabel\t\t\t\tSecondLabel" + * where 0 is an index to icon array + */ + +class CAknSettingStyleListBox : public CEikSettingsListBoxTypedef + { +public: + IMPORT_C CAknSettingStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_setting_number_pane and list_big_single_setting_number_pane + * + * list item string format: "1\tFirstLabel\t\tValueText" + * list item string format: "2\tFirstLabel\t0\t" + * list item string format: "3\tFirstLabel\t\tValueText\t*" + * list item string format: "4\tFirstLabel\t\t\t\tSecondLabel" + * where 0 is an index to icon array + * and 1..4 is list item number shown on screen + */ +class CAknSettingNumberStyleListBox : public CEikSettingsListBoxTypedef + { +public: + IMPORT_C CAknSettingNumberStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +// +// Use the popup styles with CAknPopupList and CAknListQueryDialog +// + +/** + * list_single_popup_menu_pane + * + * list item string format: "FirstLabel\t0" + * + * where 0 is an index to icon array + */ + +class CAknSinglePopupMenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_single_graphic_popup_menu_pane + * + * list item string format: "0\tLabel" + * + * where 0 is an index to icon array + */ + +class CAknSingleGraphicPopupMenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +/** + * list_single_graphic_bt_popup_menu_pane + * + * list item string format: "0\tLabel" + * + * where 0 is an index to icon array + * + */ + +class CAknSingleGraphicBtPopupMenuStyleListBox : public CAknSingleGraphicPopupMenuStyleListBox + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C virtual void SizeChanged(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + }; + +/** + * list_single_heading_popup_menu_pane + * + * list item string format: "Heading\tLabel" + * + */ + +class CAknSingleHeadingPopupMenuStyleListBox : public AknPopupListEmpty + { +public: + IMPORT_C CAknSingleHeadingPopupMenuStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); +private: + void SizeChangedL(); + }; + + +/** + * list_single_graphic_heading_popup_menu_pane + * + * list item string format: "0\tHeading\tLabel" + * + * where 0 is an index to icon array + * + */ + +class CAknSingleGraphicHeadingPopupMenuStyleListBox : public AknPopupListEmpty + + { +public: + IMPORT_C CAknSingleGraphicHeadingPopupMenuStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); +private: + void SizeChangedL(); + }; + +/** + * list_double_popup_menu_pane + * + * list item string format: "FirstLabel\tSecondLabel" + * + */ + +class CAknDoublePopupMenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); +private: + void SizeChangedL(); + }; + +/** + * list_single_popup_submenu_pane + * + * DO NOT USE + * + */ + +class CAknSinglePopupSubmenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** + * list_double_large_graphic_popup_menu_pane + * + * list item string format: "0\tFirstLabel\tSecondLabel" + * + * where 0 is an index to icon array + * + */ + +class CAknDoubleLargeGraphicPopupMenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); +private: + void SizeChangedL(); + }; + + +/** + * list_double2_popup_menu_pane + * + * list item string format: "FirstLabel\tSecondLabel" + * + */ + +class CAknDouble2PopupMenuStyleListBox : public AknPopupListEmpty + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); +private: + void SizeChangedL(); + }; + + +/** + * list_single_2graphic_pane_cp2 + * + * list item string format: "0\t1\tTextLabel\t2\t3" + * + * where 0,1,2,3 are index to the icon array + */ + +class CAknSingle2GraphicPopupMenuStyleListBox : public AknPopupListEmpty + { +public: + IMPORT_C CAknSingle2GraphicPopupMenuStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + + +/** + * list_double_graphic_pane + * + * list item string format: "0\tFirstLabel\tSecondLabel\t1\t2" + * where 0 is index to icon array + * + */ +class CAknDoubleGraphicPopupMenuStyleListBox : public AknPopupListEmpty + { +public: + IMPORT_C CAknDoubleGraphicPopupMenuStyleListBox(); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +// --- end of popup styles + + + +/** list_set_pane + * Setting Page component uses this + * + * list item string format: "1\tShortLabel" + * list item string format: "\t\tLongLabel" + * + */ +class CAknSetStyleListBox : public AknPopupListEmpty + { +public: + IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the listbox for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + IMPORT_C void Draw(const TRect& aRect) const; + IMPORT_C TTypeUid::Ptr MopSupplyObject(TTypeUid aId); + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +protected: + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** MakeViewClassInstanceL() + * + * Chooses which listbox view class to use + */ + IMPORT_C CListBoxView *MakeViewClassInstanceL(); +private: + void SizeChangedL(); + }; + +/** list_form_graphic_pane + * Form popup field should use this + * + * list item string format: "1\tShortLabel" + * list item string format: "\t\tLongLabel" + * + */ +class CAknFormGraphicStyleListBox : public AknPopupListEmpty + { +public: + IMPORT_C void ConstructWithWindowL(const CCoeControl *aParent, TInt aFlags); + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the grid for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** CreateItemDrawerL() + * + * Chooses which itemdrawer to use. + */ + IMPORT_C virtual void CreateItemDrawerL(); + /** Listbox rectangle calculation. + */ + IMPORT_C virtual TInt AdjustRectHeightToWholeNumberOfItems(TRect &aRect) const; + /** + * From CCoeControl + * Handles pointerevents of popupfield's list + * @param aPointerEvent pointerevent to be handled + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + +class CAknFormGraphicWideStyleListBox : public CAknFormGraphicStyleListBox + { +public: + IMPORT_C void SizeChanged(); + IMPORT_C TSize MinimumSize(); + // From CCoeControl + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); +private: + void SizeChangedL(); + }; + + +/** grid_app_pane + * Application Shell uses this (note that part of layout needs to be done + * inside application -- the listbox will not be in correct position on the + * screen by just using this -- see listapp) + * + * list item string format: "1\tLabel" + * list item string format: "1\tLabel\t1" + */ + +/** + * grid_pinb_pane + * + * list item string format: "1" + * list item string format: "1\t1" + * list item string format: "1\t1\t1" + * list item string format: "1\t\t1" + */ + +class CAknPinbStyleGrid : public CAknSelectionGridTypedef + { +public: + /** SizeChanged() + * + * Determines layout of the grid + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the grid for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +private: + void SizeChangedL(); + }; + + +/** + * grid_qdial_pane + */ + +class CAknQdialStyleGrid : public CAknSelectionGridTypedef + { +public: + /** SizeChanged() + * + * Determines layout of the grid + */ + IMPORT_C virtual void SizeChanged(); + /** MinimumSize() + * + * Determines size of the grid for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +private: + void SizeChangedL(); + }; + +/** + * grid_cale_month_pane + */ + +class CAknCaleMonthStyleGrid : public CAknSelectionGridTypedef + { +public: + /** SizeChanged() + * + * Determines layout of the listbox + */ + IMPORT_C void SizeChanged(); + /** MinimumSize() + * + * Determines size of the grid for use in dialogs. + */ + IMPORT_C TSize MinimumSize(); + /** + * From CCoeControl. + * Handles pointer events + */ + IMPORT_C void HandlePointerEventL(const TPointerEvent& aPointerEvent); + +private: + void SizeChangedL(); + }; + + + +// +// +// Here we have itemdrawer/view modifications needed by the lists +// +// + +// This class is to keep drawing routines that depend on avkon and which we cannot place to +// eikstd or uikon because of that. + + /** + * A view that provides empty lists for use with find pane + * @since Series 60 0.9 + */ +class CAknColumnListBoxView : public CColumnListBoxView + { +public: + + /** + * Enables find in empty list. Basically same as @c SetFindEmptyListState() + * when it is set @c ETrue. + */ + IMPORT_C void EnableFindEmptyList(); + + /** + * Sets find in empty list visible or hides it. + * @param aUsedWithFind Setter to set find visible or to hide it. + */ + IMPORT_C void SetFindEmptyListState(TBool aUsedWithFind); + + /** + * Draws empty list with or without find depending if it has been enabled. + * @param aClientRect The client rectangle. + */ + IMPORT_C void DrawEmptyList(const TRect &aClientRect) const; + + /** + * Calls @c CColumnListBoxView::CalcBottomItemIndex() and removes filtering + * from find box if new list items are added. Called by listbox control when + * either the size of the listbox or the number of items in its model has + * changed. + */ + IMPORT_C virtual void CalcBottomItemIndex(); + TBool GetFindEmptyListState(); +private: // overridden from CListBoxView + IMPORT_C virtual TAny* Reserved_1(); +private: + TBool iEmptyListWithFind; + }; + +/** + * empty list for settings item editing + */ + +class CAknSetStyleListBoxView : public CFormattedCellListBoxView + { +public: + IMPORT_C void DrawEmptyList(const TRect &aClientRect) const ; +private: // overridden from CListBoxView + IMPORT_C virtual TAny* Reserved_1(); + }; + + +/** + * Horizontal lines and empty list support for views + */ + +class CSingleHeadingStyleView : public CAknColumnListBoxView + { +public: + IMPORT_C void Draw(const TRect* ) const; + IMPORT_C void DrawEmptyList(const TRect& aClientRect) const; +private: // overridden from CListBoxView + IMPORT_C virtual TAny* Reserved_1(); + }; + +/** + * Horizontal lines support for item drawer. + */ +class CSingleHeadingStyleItemDrawer : public CColumnListBoxItemDrawer + { +public: + IMPORT_C CSingleHeadingStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CColumnListBoxData* aColumnData); + IMPORT_C ~CSingleHeadingStyleItemDrawer(); + + IMPORT_C virtual void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const; + +public: + IMPORT_C void SetTopItemIndex(TInt aTop); + +private: + TInt iTopItemIndex; + CCoeEnv* iCoeEnv; + }; + +/** + * Thumbnail image positioning for double large styles. + */ +class CDoubleLargeStyleItemDrawer : public CFormattedCellListBoxItemDrawer + { +public: + IMPORT_C CDoubleLargeStyleItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox); + IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const; +private: + IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved(); +private: + CEikListBox *iListBox_tmp; + }; + + +/** + * Word wrapping for double2 styles + */ +class CWordWrappedFormattedCellItemDrawer : public CFormattedCellListBoxItemDrawer + { +public: + IMPORT_C CWordWrappedFormattedCellItemDrawer(MTextListBoxModel* aTextListBoxModel, const CFont* aFont, CFormattedCellListBoxData* aFormattedCellData, CEikListBox *aListBox, TInt aSubCell, TInt aSubCell2); + IMPORT_C void DrawItem(TInt aItemIndex, TPoint aItemRectPos, TBool aItemIsSelected, TBool aItemIsCurrent, TBool aViewIsEmphasized, TBool aViewIsDimmed) const; + IMPORT_C void DrawItemText(TInt aItemIndex, + const TRect &aItemTextRect, + TBool aItemIsCurrent, + TBool, + TBool aItemIsSelected) const; +private: + IMPORT_C void CFormattedCellListBoxItemDrawer_Reserved(); +private: + TInt iSubCell, iSubCell2; + }; + +// +// +// here starts section for building new listboxes. +// + +// +// This is helper class that makes the conversion between European LAF and +// different listbox itemdrawer implementations. +// +// Notice, this CEikListBox is a good friend with this class. +// +// + +/** AknListBoxLayouts + * Building listbox layouts from European Avkon LAF. + * + * The LAF specification has 3 kinds of tables: + * Graphics tables + * Text tables + * Pane coordinates + * The graphics tables map to SetupColumnGfxCell() and SetupFormGfxCell() + * The text tables map to SetupColumnTextCell() and SetupFormGfxCell() + * The pane coordinates map to SetupListboxPos(). + * + * This class is mostly useless if you don't have LAF specification available! + * + * You probably want to use predefined layouts; See CAknSingleStyleListBox. + * + * NOTE: This class is old design. You should consider looking at aknutils.h: AknLayoutUtils + * whenever you want to build things from the LAF specification. + */ + +class AknListBoxLayouts + { +public: + /** + * Setup borders etc. + */ + IMPORT_C static void SetupStandardListBox(CEikListBox& aListBox); + /** + * Setup grid position + * since 2.0 + */ + static void SetupGridPos(CAknGrid& aGrid, + const TAknWindowLineLayout &aLayout); + /** + * Setup grid position + */ + IMPORT_C static void SetupGridPos(CAknGrid& aGrid, + TInt l, + TInt t, + TInt /*r*/, + TInt /*b*/, + TInt W, + TInt H); + /** + * Setup list position + */ + IMPORT_C static void SetupListboxPos(CEikListBox& aListBox, + TInt startx, + TInt starty, + TInt, + TInt, + TInt /*width*/, + TInt height); + + /* + * non-exported new internal version + */ + static void SetupListboxPosL( CEikListBox& aListBox, + const TAknWindowLineLayout& aLayout ); // layout of first item + + /** + * Setup text foreground and background colors to default + */ + IMPORT_C static void SetupStandardColumnListbox(CColumnListBoxItemDrawer* aItemDrawer); + /** + * Setup text foreground and background colors to default + */ + IMPORT_C static void SetupStandardFormListbox(CFormattedCellListBoxItemDrawer* aItemDrawer); + /** + * Setup text foreground and background colors to default + */ + IMPORT_C static void SetupStandardGrid(CAknGrid& aGrid); + + /** + * Setup a single graphics cell of list item + */ + IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, + CColumnListBoxItemDrawer* aItemDrawer, + TInt index, + TInt l, + TInt t, + TInt r, + TInt b, + TInt W, + TInt H, + TInt startx, + TInt endx); + + /** + * Setup a single text cell of list item + */ + IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, + CColumnListBoxItemDrawer* aItemDrawer, + TInt index, + const CFont *font, + TInt /*C*/, + TInt lm, + TInt rm, + TInt B, + TInt /*W*/, + CGraphicsContext::TTextAlign aAlign, + TInt startx, + TInt endx); + /** + * Setup a single text cell of list item + */ + IMPORT_C static void SetupColumnTextCell(CEikListBox& aListBox, + CColumnListBoxItemDrawer* aItemDrawer, + TInt index, + const TAknTextLineLayout &aLayout, + TInt startx, + TInt endx); // use with aknlayoutcompiler + + /** + * Setup a single graphics cell of list item + */ + IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + TInt l, + TInt t, + TInt /*r*/, + TInt /*b*/, + TInt W, + TInt H, + TPoint p1, + TPoint p2); + + + /** + * Setup a single graphics cell of list item + * + * This version is needed for grid cells. (the FormGfxCell works in + * most cases, but this is needed if you want exact positioning of + * the erased area..) + */ + IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + TInt l, + TInt t, + TInt /*r*/, + TInt /*b*/, + TInt W, + TInt H, + TPoint aP1, + TPoint aP2); + /** + * Setup a single graphics cell of list item + * + * This version is needed for grid cells. (the FormGfxCell works in + * most cases, but this is needed if you want exact positioning of + * the erased area..) + * since 2.6 + */ + + IMPORT_C static void SetupGridFormGfxCell(CAknGrid& aGrid, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt aIndex, + const TAknWindowLineLayout& aLine, + TPoint& aP1, + TPoint& aP2); + + /** + * Setup a single text cell of list item + */ + IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + const CFont *font, + TInt /*C*/, + TInt lm, + TInt /*rm*/, + TInt B, + TInt W, + CGraphicsContext::TTextAlign aAlign, + TPoint p1, + TPoint p2); + /** + * Setup a single text cell of list item + * + * This is for removing flicker for settings + * + */ + IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + const CFont *font, + TInt /*C*/, + TInt lm, + TInt /*rm*/, + TInt B, + TInt W, + CGraphicsContext::TTextAlign aAlign, + TPoint p1, + TPoint p2); + + /** + * Setup a single text cell of list item + */ + IMPORT_C static void SetupFormTextCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + const TAknTextLineLayout &aLayout, + const TPoint &p1, + const TPoint &p2); // use with layout compiler + /** + * Setup a single text cell of list item + * + * This is for removing flicker for settings + */ + IMPORT_C static void SetupFormAntiFlickerTextCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + const TAknTextLineLayout &aLayout, + const TPoint &p1, + const TPoint &p2); // use with layout compiler + + /** + * Setup a graphic element for a column listbox using aknlayout.dll + */ + IMPORT_C static void SetupColumnGfxCell(CEikListBox& aListBox, + CColumnListBoxItemDrawer* aItemDrawer, + TInt aIndex, + const TAknWindowLineLayout &aLayout, + TInt startx, + TInt endx); + + /** + * Setup a single graphics cell of list item using aknlayout.dll + */ + IMPORT_C static void SetupFormGfxCell(CEikListBox& aListBox, + CFormattedCellListBoxItemDrawer* aItemDrawer, + TInt index, + const TAknWindowLineLayout &aLayout, + const TPoint &p1, + const TPoint &p2); + + + /** + * Setup a graphic element for a column listbox using aknlayout.dll + */ + IMPORT_C static void SetupListboxPos(CEikListBox& aListBox, + const TAknWindowLineLayout &aLayout); + + /** + * This function returns a correct offset to revise layout data. + * + * Attention: The function is only effective for QHD lanscape model. + * It always return 0 in QVGA, QVGA2, VGA and VAG3. + * A panic will take place if it is used in other models. + * + * @since S60 5.0 + * + * @param aScreenRect Size of Screen. + * @return Offset of listscroll_menu_pane's layout + */ + static TInt AdjustPopupLayoutData( const TRect& aScreenRect ); + }; + +/** +* General utilities relating to listboxes +* +* @since Series 60 0.9 +*/ +class AknListBoxUtils + { +public: + /** + * This function is similar to @c HandleItemRemovalL(). This function has + * to call when the items should be removed. If a leave occurs the framework + * generates a Symbian Leave code. + * @param aListBox A pointer to @c CEikListBox object. + * @param aValueOfCurrentItemIndexBeforeRemoval A current item index value + * before removal. + * @param aCurrentItemWasRemoved @c ETrue if removed @c EFalse if not. + */ + IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, TBool aCurrentItemWasRemoved); + + /** + * This function should be called after one or more items have been removed. + * If a leave occurs the framework generates a Symbian Leave code. + * @param aListBox A pointer to @c CEikListBox object. + * @param aValueOfCurrentItemIndexBeforeRemoval A current item index value + * before removal. + * @param aIndexesToRemovedItems A thin templated base class for arrays of + * fixed length objects. + */ + IMPORT_C static void HandleItemRemovalAndPositionHighlightL(CEikListBox *aListBox, TInt aValueOfCurrentItemIndexBeforeRemoval, CArrayFix &aIndexesToRemovedItems); + + /** + * @deprecated + */ + IMPORT_C static TBool ListBoxLinesShown(MAknsSkinInstance *aInstance, MAknsControlContext *aCc); + }; + +#endif + + + + + +