diff -r 000000000000 -r 2f259fa3e83a classicui_pub/lists_api/inc/AknListBoxSettingPage.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/lists_api/inc/AknListBoxSettingPage.h Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,180 @@ +/* +* 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 "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Pure virtual class for a common ancestor for setting pages with listboxes +* +*/ + + +#ifndef __AKNLISTBOXSETTINGPAGE_H__ +#define __AKNLISTBOXSETTINGPAGE_H__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/** +* +* Intermediate setting page class to soak up common listbox setting page code +* +* This class has the responsibility of performing the listbox layout and setting +* out some of the API for listbox setting pages. +* +*/ +class CAknListBoxSettingPage : public CAknSettingPage, public MEikListBoxObserver + { + +public: + /** + * Type-specific control access method with a null implementation + * + */ + virtual CAknSetStyleListBox* ListBoxControl() const = 0; + + /** + * Default empty implementation of the listbox observer handling routine + */ + IMPORT_C virtual void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType); + +protected: + + /** + * Pass-through constructor + * @param aSettingPageResourceId resource id for CAknSettingPage::BaseConstructL() + * + */ + CAknListBoxSettingPage( TInt aSettingPageResourceId ); + + /** + * Pass-through constructor + * + * Generic constructor allowing either editor-resource constuction or setting page + * resource based constuction + * In all cases the number (if supplied i.e. <> 0 ) is used. + * + * Editor Resource Setting Page Resource + * present present Both are used (but text & number overridden) + * = 0 present Editor resource is used via SP resource + * present = 0 Default Avkon SP resource if used + * = 0 = 0 Not permitted + * + * Note: THe first argument is a TDesC* (rather than TDesC&) because the other constructor + * cannot initialize such a member without allocation or having an internal dummy buffer. + * Note that the setting title provided here must be owned by the client. + * + * Rules for text and numbers: The rules are the same for both: (non-zero length) text or number other + * than EAknSettingPageNoOrdinalDisplayed if given in this constructor will not override resource + * (unless that is zero length or EAknSettingPageNoOrdinalDisplayed). Note, however, that text or number given via the + * specific API for setting them, WILL override resource. + * It is assumed that number from resource is very rare. Special text is somewhat more likely. + * + * @param aSettingTitleText externally-owned title text + * @param aSettingNumber the setting number to be displayed + * @param aControlType control type enumeration for the control to be constructed by type + * @param aEditorResourceId resource Id at which to read the control's resource + * @param aSettingPageResourceId optional setting page resource Id; See notes above about resource combinations + */ + CAknListBoxSettingPage( const TDesC* aSettingTitleText, + TInt aSettingNumber, + TInt aControlType, + TInt aEditorResourceId, + TInt aSettingPageResourceId = 0 ); + + + /** + * This standard implementation uses ListBoxControl to access the listbox and + * check the number of items. If 0, validity is set to EFalse + * + */ + IMPORT_C void CheckAndSetDataValidity(); + + /** + * Implementation to remove go to "invalid" cba when data is invalid + */ + IMPORT_C void UpdateCbaL(); + + + /** + * From CCoeControl: + * Routine called by Cone framework whenever there has been a size change on this + * control + */ + IMPORT_C void SizeChanged(); + + /** + * From CCoeControl: + * Common draw routine for the listboxes + * + * @param aRect rectangle within which to draw + */ + IMPORT_C void Draw(const TRect& aRect) const; + + // + // New methods in this class + // + + /** + * Obtain initial selection policy for popup setting item editing + * + * @since 2.0 + * @return TBool EFalse iff focus is not initially to be set to the selected item + */ + static TBool FocusToSelectedItem(); + + /** + * Obtain initial selection policy for popup setting item editing + * + * @since 2.0 + * @return TBool EFalse iff focus is initially to be set to the selected item + */ + static TBool FocusToFirstItem(); + + + /** + * Create colorskinned icon and add it to icon array. Utility for + * radiobutton, popup & checkbox setting page lists + * + * @since 3.1 + */ +public: + static void CreateIconAndAddToArrayL( CArrayPtr*& aIconArray, + const TAknsItemID& aId, + const TInt aColorIndex, + const TDesC& aBmpFile, + const TInt32 aBmp, + const TInt32 aBmpM ); + +private: +/** + */ + IMPORT_C virtual void CAknListBoxSettingPage_Reserved_1(); + +protected: + + /** + * Layout for the extra piece of white (sometimes) at the bottom of the listbox + * + */ + TAknLayoutRect iAreaExtension; + }; + +#endif