menufw/menufwui/mmwidgets/inc/mmlistbox.h
branchv5backport
changeset 14 1abc632eb502
parent 13 6205fd287e8a
child 20 636d517f67e6
--- a/menufw/menufwui/mmwidgets/inc/mmlistbox.h	Thu Mar 18 14:45:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,454 +0,0 @@
-/*
-* Copyright (c) 2007 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:  CMmListBox
-*  Version     : %version: MM_22.1.16 % << Don't touch! Updated by Synergy at check-out.
-*
-*/
-
-
-#ifndef C_MMLISTBOX_H
-#define C_MMLISTBOX_H
-
-#include <e32std.h>
-#include <e32base.h>
-#include <aknlists.h>
-#include <e32cmn.h> 
-
-class CMmListBoxModel;
-class CMmListBoxItemDrawer;
-class CMmMarqueeAdapter;
-class CMmWidgetContainer;
-class CMmTemplateLibrary;
-
-/**
- *  CMmListBox
- *
- *  @code
- *  @endcode
- *  @lib mmwidgets
- *  @since S60 v3.0
- *  @ingroup group_mmwidgets
- */
-NONSHARABLE_CLASS( CMmListBox ) : public CEikFormattedCellListBoxTypedef
-	{
-public:
-    /**
-     * Two-phased constructor.
-     * 
-     * @since S60 v3.0
-     * @param aParent Parent control.
-     * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
-     * @return List box.
-     */
-    static CMmListBox* NewL( const CCoeControl* aParent, TInt aFlags,
-        CMmTemplateLibrary* aTemplateLibrary );
-    
-    /**
-     * Two-phased constructor.
-     * 
-     * @since S60 v3.0
-     * @param aParent Parent control.
-     * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
-     * @return List box.
-     */
-    static CMmListBox* NewLC( const CCoeControl* aParent, TInt aFlags,
-        CMmTemplateLibrary* aTemplateLibrary );
-	
-    /**
-	 * Destructor.
-	 * 
-	 * @since S60 v3.0
-	 */
-	virtual ~CMmListBox();
-   
-	/**
-     * Gets the listbox model.
-     *
-     * @since S60 v3.0
-     * @return Listbox model.
-     */
-    CMmListBoxModel * MmModel(); 
-    
-    /**
-     * Sets the listbox model.
-     *
-     * @since S60 v3.0
-     * @param aMmModel The model to be set.
-     */
-    void SetMmModel( CMmListBoxModel* aMmModel );
-
-   /**
-    * Creates the view class instance.
-    *
-    * @since S60 v3.0
-    * @return Listbox view.
-    */
-   CListBoxView* MakeViewClassInstanceL();
-   
-   /** 
-    * Creates the item drawer for listbox.
-    * 
-    * @param aTemplateLibrary Template library for drawer. 
-    * @since S60 v3.0
-    */
-   void CreateItemDrawerL( CMmTemplateLibrary* aTemplateLibrary );
-   
-   /** 
-    * Sets the flag.
-    * 
-    * @since S60 v3.0
-    * @param aFlag Avkon list flag
-    */
-   void SetListFlag( TInt aFlag );
-   
-   /** 
-    * Clears the flag.
-    * 
-    * @since S60 v3.0
-    * @param aFlag Avkon list flag
-    */
-   void ClearListFlag( TInt aFlag );
-      
-
-public: // from base class CCoeControl.
-
-   /**
-    * From CCoeControl.     
-    * Handles pointer events.
-    * 
-    * @since S60 v3.0
-    * @param aPointerEvent Pointer event.
-    */
-   void HandlePointerEventL( const TPointerEvent& aPointerEvent ); 
-   
-   /**
-    * From base class.
-    *
-    * @since S60 v3.0
-    * @param aKeyEvent Key event.
-    * @param aType Event code.
-    */
-   TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, 
-           TEventCode aType );
-   
-   /**
-    * Adjusts the given rectangle.
-    *
-    * @since S60 v3.0
-    * @param aRect Rectangle to be adjusted.
-    * @return Error code.
-    */
-   TInt AdjustRectHeightToWholeNumberOfItems( TRect& aRect ) const;
-   
-   /**
-    * Sets item drawer and view background context.
-    *
-    * @since S60 v3.0
-    * @param aBgContext Background context.
-    */
-   void SetItemDrawerAndViewBgContext( 
-           CAknsBasicBackgroundControlContext * aBgContext );
- 
-   /**
-    * Updates scrollbar.
-    *
-    * @since S60 v3.0
-    */
-   void UpdateScrollBarsL();
-   
-   /**
-    * Special version of Update scrollbar that never calls DrawNow()
-    */
-   void UpdateScrollBarsNoRedrawL();
-   
-   /**
-    * Checks if all items fit in view rectangle.
-    *
-    * @since S60 v3.0
-    * @return Do all items fit in view rectangle.
-    */
-   TBool AllItemsFitInViewRect();
-   
-   /**
-    * Handles scrollbar visibility change.
-    *
-    * @since S60 v3.0
-    * @return Is redraw needed.
-    */
-   TBool HandleScrollbarVisibilityChangeL();
-   
-   /**
-    * Sets marquee adapter.
-    *
-    * @since S60 v3.0
-    * @param aAdapter Marquee adapter.
-    */
-   void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter );
-   
-   /**
-    * Notifies that marquee is being drawn.
-    *
-    * @since S60 v3.0
-    * @param aIsMarqueeBeingDrawn Is marquee being drawn.
-    */
-   void SetMarqueeDrawing( TBool aIsMarqueeBeingDrawn );
-   
-   /**
-    * Handles item removal. redraws view, updates scrollbar.
-    *
-    * @since S60 v3.0
-    */
-   void HandleItemRemovalL();
-   
-   /**
-    * Redraws items in view if it is necessary.
-    *
-    * @since S60 v3.0
-    * @param aPreviousCurrent Previously current item index.
-    * @param aCurrent Current item index.
-    * 
-    * @return true if anything was drawn.
-    */
-	TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent );
-	
-	/**
-	 * Overridden from base class to allow for drawing scrollbar
-	 * background in mirrored layout.
-	 * 
-	 * @param aRect clipping rect
-	 */
-	void Draw(const TRect& aRect) const;
-	
-	/**
-     * Draws the listbox view.
-     *
-     * @since S60 v5.0
-     */
-	void DrawView();
-    
-    /**
-     * Set the vertical item offset;
-     * @param aOffset The offset to set to the widget.
-     * 
-     * @since S60 v5.0
-     */
-    void SetVerticalItemOffset( TInt aOffset );
-
-    /**
-     * Gets the current widget vertical item offset.
-     * 
-     * @since S60 v5.0
-     * @return The current widget vertical item offset.
-     */
-    TInt VerticalItemOffset() const;
-    
-    /**
-     * Simply sets the item height members in widget and view.
-     */
-    void SetItemHeight( TInt aItemHeight );
-    
-    /**
-     * Updates scrollbar thumbs.
-     */
-    void UpdateScrollBarThumbs();
-    
-    /**
-     * Counts the number of component controls which this component owns.
-     */ 
-    TInt CountComponentControls() const;
-    
-    /**
-     * Disables/enables child component (scrollbar) drawing.
-     */
-    void SetDisableChildComponentDrawing( TBool aDisable );
-    
-    /**
-     * Handles scrolling event.
-     *
-     * @since S60 v3.0
-     * @param aScrollBar Scrollbar being scrolled.
-     * @param aEventType Type of scrollbar event.
-     */
-    void HandleScrollEventL( CEikScrollBar* aScrollBar, 
-            TEikScrollEvent aEventType );
-    
-private:
-    /**
-     * Default constructor.
-     * 
-     * @since S60 v3.0
-     */
-	CMmListBox();
-	
-    /**
-     * 2nd phase constructor.
-     * 
-     * @since S60 v3.0
-     * @param aParent Parent control.
-     * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
-     */
-	void ConstructL( const CCoeControl* aParent, TInt aFlags,
-        CMmTemplateLibrary* aTemplateLibrary );
-    
-    /**
-     * Handles pointer events when edit mode is enabled.
-     * 
-     * This method is only called during edit mode. It selectively passes
-     * only some of the pointer events to CAknGrid::HandlePointerEventL
-     * in order to disable flicking and panning.
-     * 
-     * @param aPointerEvent pointer event
-     */
-    void HandlePointerEventInEditModeL( const TPointerEvent& aPointerEvent );
-    
-    /**
-     * Scrolls the view if pointer is close to the top/bottom edge.
-     * 
-     * This method is used only when edit mode is active. In a way it
-     * brings back the focus based scrolling behavior that was present
-     * in CAknGrid before ODE scrolling was introduced.
-     */
-    void HandleScrollingInEditMode( const TPointerEvent& aPointerEvent );
-    
-    /**
-     * Checks if pointer position is within the scroll-triggering area.
-     * 
-     * @param aPointerEvent pointer event
-     * @return true if pointer above the top scrolling threshold.
-     */
-    TBool IsPointerInTopScrollingThreshold(
-            const TPointerEvent& aPointerEvent ) const;
-
-    /**
-     * Checks if pointer position is within the scroll-triggering area.
-     * 
-     * @param aPointerEvent pointer event
-     * @return true if pointer below the bottom scrolling threshold.
-     */
-    TBool IsPointerInBottomScrollingThreshold(
-            const TPointerEvent& aPointerEvent ) const;
-    
-    /**
-     * Scrolls the view if the pointer is near top/bottom edge of the screen.
-     * 
-     * Assumes that current item index is the index of the item under the
-     * pointer. The time value returned is based on the distance of the pointer
-     * from the top/bottom edge of the grid view (this makes the scrolling speed
-     * dependent of how close the pointer is to the edge).
-     * If there is no need to continue scrolling because the beginning/end of
-     * the list has already been reached, 0 is returned.
-     * 
-     * @param aPointerEvent pointer event
-     * @return time to wait before calling this method again (in microseconds)
-     *         or 0 if already at the beginning/end of the list
-     */
-    TInt ScrollIfNeeded( const TPointerEvent& aPointerEvent );
-    
-    /**
-     * Ensures that elements are drawn correctly when mirrored layout is
-     * used and scrollbar is visible by shifting ViewRect to the right.
-     */
-    void FixViewForMirroredLayout();
-    
-    /**
-     * Redraws the background under the vertical scrollbar in mirrored layout.
-     * 
-     * The reason such method is needed is that view rectangle is shifted
-     * to the right in mirrored layout and does not cover the scrollbar
-     * area. In normal (non-mirrored) mode this method does nothing.
-     */
-    void RedrawScrollbarBackground() const;
-    
-    /**
-     * Does actual handling of scroll events.
-     * 
-     * @param aScrollBar Scrollbar being scrolled.
-     * @param aEventType Type of scrollbar event.
-     */
-    void ProcessScrollEventL( CEikScrollBar* aScrollBar, 
-            TEikScrollEvent aEventType );
-    
-    /**
-     * Handles periodic events from @c iRedrawTimer.
-     * Such events are generated at equal time intervals while
-     * the view is being scrolled using the scrollbar.
-     * This function typically calls @c ProcessScrollEventL,
-     * which actually scrolls the view and causes a redraw. 
-     */
-    void HandleRedrawTimerEvent();
-    
-private:
-    /**
-     * Callback function for @c iRedrawTimer.
-     * It simply calls @c HandleRedrawTimerEvent and returns 0.
-     * 
-     * @param aPtr A pointer to CMmListBox object.
-     * @return 0 (always).
-     */
-    static TInt RedrawTimerCallback( TAny* aPtr );
-    
-private: // Data
-    /**
-     * Item drawer.
-     */
-    CMmListBoxItemDrawer* iMmDrawer;
-    
-    /**
-     * Multimedia Menu model.
-     */
-	CMmListBoxModel* iMmModel;
-
-    /**
-     * marquee adapter.
-     */
-	CMmMarqueeAdapter* iMarqueeAdapter;
-
-    /**
-     * Blocks scrollbar drawing. When this flag is set scrollbars components
-     * are blocked in the CountComponentControls() method;   
-     */
-	TBool iDisableChildComponentDrawing;
-	
-	/**
-     * This member is only used in edit mode to store the position of the pointer
-     * during EButton1Down event.
-     */
-    TPoint iButton1DownPos;
-    
-    /**
-     * ETrue if the view is being scrolled with the scrollbar.
-     */
-    TBool iScrollbarThumbIsBeingDragged;
-    
-    /**
-     * Stores the number of scrollbar events that were ignored.
-     * It is only used while scrolling the view using scrollbar,
-     * in such situation the scroll events that this object receives
-     * are ignored, and actual scrolling is done only when
-     * iRedrawTimer completes.
-     */
-    TInt iSkippedScrollbarEventsCount;
-    
-    /**
-     * A timer that initiates redraws at certain time intervals.
-     * It is used to refresh the view while scrolling with
-     * the scrollbar.
-     */
-    CPeriodic* iRedrawTimer;
-	};
-	
-#endif // MMLISTBOX_H