widgetmanager/inc/wmlistbox.h
changeset 1 5315654608de
parent 0 f72a12da539e
child 2 08c6ee43b396
--- a/widgetmanager/inc/wmlistbox.h	Thu Dec 17 08:40:49 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,422 +0,0 @@
-/*
-* Copyright (c) 2009 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:
-* Declares widget listbox for WidgetManager
-*
-*/
-
-#ifndef ___WMLISTBOX_H__
-#define ___WMLISTBOX_H__
-
-// INCLUDES
-#include <eiklbi.h>
-#include <eiktxlbx.h>
-#include <eiktxlbm.h>
-#include <eikfrlb.h>
-#include <eiktxlbm.h>
-#include <aknlists.h>
-
-#include <touchfeedback.h>
-#include <touchlogicalfeedback.h>
-#include <aknlongtapdetector.h> 
-#include "wmwidgetdataobserver.h"
-#include "wmwidgetdata.h"
-
-// FORWARD DECLARATIONS
-class CWmListBox;
-class CWmPlugin;
-class CListBoxView;
-class CFormattedCellListBoxData;
-class CAknLongTapDetector;
-class CWmListModel;
-class CWmWidgetData;
-class CAknStylusPopUpMenu;
-class MEikMenuObserver;
-
-// CLASS DECLARATIONS
-
-/**
- * CWmListItemDrawer
- */
-NONSHARABLE_CLASS( CWmListItemDrawer ): public CFormattedCellListBoxItemDrawer
-	{
-public:
-    /** Two-phased constructor. */
-	static CWmListItemDrawer* NewL(
-                CWmPlugin& aWmPlugin,
-                MTextListBoxModel* aTextListBoxModel,
-                const CFont* aFont,
-                CFormattedCellListBoxData* aFormattedCellData,
-                CWmListBox* aListBox  );
-
-    /** Destructor. */
-    ~CWmListItemDrawer();
-    
-    /** Default logo image. */
-    const CFbsBitmap* DefaultLogoImage();
-    /** Default logo mask. */
-    const CFbsBitmap* DefaultLogoMask();
-    
-public:
-
-    /**
-     * from CFormattedCellListBoxItemDrawer:
-     * draws a single list box item
-     */
-    void DrawItem(
-                TInt aItemIndex, TPoint aItemRectPos, 
-                TBool aItemIsSelected, TBool aItemIsCurrent, 
-                TBool aViewIsEmphasized, TBool aViewIsDimmed ) const;
-    
-private:
-    /** Constructor for performing 1st stage construction */
-    CWmListItemDrawer( 
-                CWmPlugin& aWmPlugin,
-                MTextListBoxModel* aTextListBoxModel,  
-                const CFont* aFont,  
-                CFormattedCellListBoxData* aFormattedCellData,
-                CWmListBox* aListBox );
-
-    /** 2nd phase constructor */
-    void ConstructL();
-
-    /**
-     * re-calculates all rects, sizes and resizes bitmaps, that are
-     * stored as members. Called from DrawItem if it is found that the
-     * draw area size has changed from previous, resulting all stored
-     * rectangles and bitmaps to invalidate.
-     * @param aSize requested size of the item being drawn.
-     */
-    void CalculateRectangles( const TSize& aSize);
-
-	/**
-	* Draws a frame rectangle for an item.
-	* @param aOutterRect outter rectangle.
-	* @param aInnerRect inner rectangle.
-	* @param aID Skin item id. 
-	*/
-	void DrawFrame(
-            const TRect& aOutterRect,
-            const TRect& aInnerRect,
-            const TAknsItemID& aID,
-			const TAknsItemID& aCenterID ) const;
-
-	/**
-	* Draws a rectangle for an item.
-	* @param aActualItemRect the rectangular area to be drawn.
-	*/
-	void DrawItemRect( const TRect& aActualItemRect ) const;
-
-private: // data members
-
-    /** 
-     * the plugin root (not owned) 
-     */
-    CWmPlugin& iWmPlugin;
-
-    /** 
-     * pointer to the list box data (not owned) 
-     */
-    CFormattedCellListBoxData* iCellData;
-
-    /** 
-     * pointer to the listbox (not owned) 
-     */
-    CWmListBox* iListBox;
-
-    /** 
-     * current font used in drawing (not owned) 
-     */
-    const CFont*    iFont;
-
-    /** 
-     * item size used in calculating all the rects and bitmaps 
-     */
-    TSize iCurrentSize;
-
-    /** 
-     * logo area (relative to item upper left corner) 
-     */
-    TRect iRelativeLogoRect;
-    
-    /** 
-     * add button area (relative to item upper left corner) 
-     */
-    TRect iRelativeAddButtonRect;
-    
-    /** 
-     * title area (relative to item upper left corner) 
-     */
-    TRect iRelativeTitleRect;
-
-    /** 
-     * add-button bitmap
-     */
-    CFbsBitmap*         iAddWidgetBtnImage;
-    
-    /** 
-     * add-button mask 
-     */
-    CFbsBitmap*         iAddWidgetBtnMask;
-    
-    /** 
-     * default logo (when widget does not have one) bitmap 
-     */
-    CFbsBitmap*         iDefaultLogoImage;
-    
-    /** 
-     * default logo (when widget does not have one) mask 
-     */
-    CFbsBitmap*         iDefaultLogoImageMask;
-    
-	};
-
-
-
-// CLASS DECLARATIONS
-/**
- * CWmListBox
- */
-NONSHARABLE_CLASS( CWmListBox ): public CAknDouble2LargeStyleListBox,
-                      public MWmWidgetDataObserver
-	{
-public:
-    
-    /**
-     * Two-phased constructor.
-     */
-	static CWmListBox* NewL(
-	        CWmPlugin& aWmPlugin,
-            const TRect& aRect,
-            const CCoeControl* aParent,  
-            TInt aFlags = 0 );
-
-    /** Destructor. */
-    ~CWmListBox();
-
-public: // API for manipulating list content
-    
-    /** Default Logo. */
-    const CFbsBitmap* DefaultLogo();
-    /** Default Logo mask. */
-    const CFbsBitmap* DefaultMask();
-
-    /** 
-     * Findbox visibility
-     * 
-     * @param aVisibility sets find pane visibility
-     */
-    inline void SetFindPaneIsVisible( TBool aVisibility );
-    
-    /** 
-     * Currently selected item index 
-     * 
-     * @return return currently selected item 
-     */
-    TInt CurrentListBoxItemIndex();
-    
-    /** 
-     * real index for listbox item if findbox is active 
-     * 
-     * @return return index from original list for currently selected item
-     */
-    TInt RealIndex( TInt aIndex );
-    
-    /** 
-     * number of items in the widget data array (also items on the list) 
-     * 
-     * @return count of widget data array
-     */
-    inline TInt WidgetDataCount();
-    
-    /** 
-     * currently selected item
-     * @return the selected item, or NULL if nothing selected
-     */
-    CWmWidgetData* WidgetData();
-    
-    /** 
-     * gets an item by index 
-     * 
-     * @param aItemIndex index for item to return
-     */
-    CWmWidgetData& WidgetData( TInt aItemIndex );
-
-    /**
-     * gets the constant widget data array
-     */
-    inline const RWidgetDataValues& WidgetDataArray();
-
-    /** 
-     * inserts widget data to the model. Takes ownership of the object.
-     * The widget data will appear to correct location in natural order:
-     * - in previously saved position, if it has been viewed before
-     *   (widget data must have a pointer to persistent widget order)
-     * - in case this is a new widget, it will appear topmost
-     * - in case there is no persistent widgets order or it is empty,
-     *   the widget is added in alphabetical order
-     * 
-     * NOTE: caller must call HandleItemAdditionL() for the listbox after
-     * adding all widget datas to update the listbox correctly!
-     * 
-     * @param aWidget Data data to add
-     */
-    void AddWidgetDataL( CWmWidgetData* aWidgetData );
-    
-    /** 
-     * removes widget data from given index in the model
-     * The method reorganises the list model and size.
-     * Drawing is still needed to update the appearance.
-     * 
-     * @param aItemIndex index to remove
-     * */
-    void RemoveWidgetData( TInt aItemIndex/*, TBool aRedraw = ETrue*/ );
-    
-    /** 
-     * requests to redraw item in given index position 
-     * 
-     * @param aItemIndex index to redraw
-     */
-    void RedrawItem( TInt aItemIndex );
-
-    /** sort order of widgets in the list */
-    enum TSortOrder
-        {
-        /** sort list as it was on last run */
-        EStoredOrder,
-        /** sort alphabetically */
-        EAlphabetical,
-        /** show latest installed first */
-        ELatestFirst
-        };
-
-    /** 
-     * sets the list sort order 
-     * 
-     * @param aOrder sort order
-     */
-    void SetSortOrderL( TSortOrder aOrder );
-    
-    /**
-     * Responds to layout switched.
-     */
-    void HandleLayoutChanged();
-	
-	/** 
-     * State of pointer down event 
-     * 
-     * @return ETrue if pointer is down
-     */
-    inline TBool PressedDown();
-
-    /**
-     * Returns size of logo 
-     * 
-     * @return Size of logo rect
-     */
-    TSize LogoSize();
-
-private: // from CEikTextListBox
-    /**
-     * Creates the item drawer.
-     * 
-     * @see CEikTextListBox::CreateItemDrawerL
-     */
-	void CreateItemDrawerL();
-	
-protected: // from base class CCoeControl
-    
-    /**
-     * Sets the control's extent, specifying a rectangle.
-     * 
-     * @see CCoeControl::SizeChanged
-     */
-    void SizeChanged();
-
-private: // from base class CCoeControl
-
-    /*
-     * Draws the control.
-     * 
-     * @see CCoeControl::Draw
-     */
-    void Draw( const TRect& aRect ) const;
-
-	/**
-	 * Handles pointer events.
-	 * 
-	 * @see CCoeControl::HandlePointerEventL
-	 */
-	void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-	
-private:
-  	 /** Constructor for performing 1st stage construction */
-    CWmListBox( CWmPlugin& aWmPlugin );
-
-    /** 2nd phase constructor */
-    void ConstructL(
-            const TRect& aRect,
-            const CCoeControl* aParent,
-            TInt aFlags );
-    
-
-protected: // from MWmWidgetDataObserver
-
-    /** 
-     * widget needs redrawing 
-     * 
-     * @param aWidgetData item to redraw
-     */
-    void HandleWidgetDataChanged( CWmWidgetData* aWidgetData );
-
-private: // own methods
-
-    /** 
-     * linear order for sorting, depending on the sort type being used 
-     */
-    TLinearOrder<CWmWidgetData> SortOrder( TSortOrder aOrder );
-
-private:
-
-    /** 
-     * the plugin root (not owned) 
-     */
-    CWmPlugin&          iWmPlugin;
-
-    /** 
-     * array of widget data objects (the list model) 
-     */
-    RWidgetDataValues   iWidgetDatas;
-
-    /** 
-     * the currently active item ADD button's rectangle, for push recognition 
-     */
-    TRect               iButtonRect;
-
-    /** 
-     * state of list box find pane 
-     */
-    TBool               iFindPaneIsVisible;
-	
-	/** 
-     * state of pointer pressed down and hold 
-     */
-    TBool               iPressedDown;
-	
-	};
-#include "wmlistbox.inl"
-
-#endif ___WMLISTBOX_H__
-
-// End of File