diff -r 000000000000 -r dd21522fd290 browserutilities/browserdialogsprovider/Inc/BrowserSelectElementListBox.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/browserdialogsprovider/Inc/BrowserSelectElementListBox.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,192 @@ +/* +* 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 "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: Listbox for select element. +* +* +*/ + + +#ifndef CBROWSERSELECTELEMENTLISTBOX_H +#define CBROWSERSELECTELEMENTLISTBOX_H + +// INCLUDES +#include +#include + +// CLASSES + +class TBrCtlSelectElementFilterTextArray: public MDesCArray + { + /** + * Construction + */ + public: + TBrCtlSelectElementFilterTextArray( + const CArrayFix& aOptions ); + + public: // from MDesCArray + + /** + * Get number of items in the array. + * @return Number of items. + */ + TInt MdcaCount() const; + + /** + * Text to be displayed for this item. + * @param aIndex Index of item. + * @return TPtrC for this item text. + */ + TPtrC MdcaPoint( TInt aIndex ) const; + + /** + * The model uses this class. + */ + friend class CBrowserSelectElementModel; + + private: // data + + /** + * Pointer to real data. Not owned. + */ + const CArrayFix& iOptions; + }; + +class TBrCtlSelectElementItemTextArray: public MDesCArray + { + public: + /** + * Contructor. + */ + TBrCtlSelectElementItemTextArray( + const CArrayFix& aOptions ); + + /** + * Destructor. + */ + ~TBrCtlSelectElementItemTextArray(); + + public: // from MDesCArray + + /** + * Get number of items in the array. + * @return Number of items. + */ + TInt MdcaCount() const; + + /** + * Text to be displayed for this item. + * @param aIndex Index of item. + * @return TPtrC for this item text. + */ + TPtrC MdcaPoint( TInt aIndex ) const; + + void FormatTextL( const TBrCtlSelectOptionData& optionData ); + + HBufC* AddPrefixLC( const TDesC& aText, TBool aIsOptionGroup ) const; + + /** + * The model uses this class. + */ + friend class CBrowserSelectElementModel; + + private: // data + + const CArrayFix& iOptions; //Pointer to real data. Not owned. + HBufC* iText; + }; + + +/** +* Implements the WML selection list. +*/ +class CBrowserSelectElementListBox : + public CAknSingleGraphicPopupMenuStyleListBox + { + public: // Constructors and destructor + + CBrowserSelectElementListBox( + const TBrCtlSelectOptionType aBrCtlSelectOptionType, + const CArrayFix& aOptions ); + + /** + * C++ default constructor. + * @param aParent The parent control. + * @param aElement The select element. + */ + void ConstructL( const CCoeControl& aParent ); + + public: // Functions from CAknSingleGraphicStyleListBox + + /** + * Creates its own itemdrawer. + */ + void CreateItemDrawerL(); + + /** + * Handles key events. + * @param aKeyEvent The key event. + * @param aType The type. + * @return Response. + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, + TEventCode aType ); + + /** + * Calls the base class's method if its possible. + * @param aDrawNow Enable redraw. + */ + void FocusChanged( TDrawNow aDrawNow ); + + /** + * Calls AdjustHighlight. + */ + void SizeChanged(); + + void HighlightSelectableItem(); + + /** + * Sets the selection, and moves the highlight to the right position. + */ + void SetSelectionIndexesL(); + + void HandleResourceChangeL( TInt aType ); + /** + * HandlePointerEventL + * From CCoeControl + * + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); + + + private: // New functions + + /** + * Moves the highlight to the first visible selected item + * or the first item. + */ + void AdjustHighlight(); + + private: + + const CArrayFix& iOptions; + + const TBrCtlSelectOptionType iBrCtlSelectOptionType; + + TBool iHasNotMoved;//show whether the user has pressed any key + }; + +#endif + +// End of File