browserutilities/browserdialogsprovider/Inc/BrowserSelectElementListBox.h
changeset 0 dd21522fd290
child 25 0ed94ceaa377
--- /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 <aknlists.h>
+#include <BrCtlDialogsProvider.h>
+
+// CLASSES
+
+class TBrCtlSelectElementFilterTextArray: public MDesCArray
+    {
+    /**
+    *   Construction
+    */
+    public: 
+        TBrCtlSelectElementFilterTextArray(
+                        const CArrayFix<TBrCtlSelectOptionData>& 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<TBrCtlSelectOptionData>& iOptions;
+    };
+
+class TBrCtlSelectElementItemTextArray: public MDesCArray
+    {
+    public:
+        /**
+        * Contructor.
+        */
+        TBrCtlSelectElementItemTextArray( 
+                        const CArrayFix<TBrCtlSelectOptionData>& 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<TBrCtlSelectOptionData>& 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<TBrCtlSelectOptionData>& 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<TBrCtlSelectOptionData>& iOptions;
+
+        const TBrCtlSelectOptionType iBrCtlSelectOptionType;
+    
+        TBool iHasNotMoved;//show whether the user has pressed any key
+    };
+
+#endif
+            
+// End of File