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