browserui/browser/FavouritesInc/BrowserFavouritesListbox.h
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/browserui/browser/FavouritesInc/BrowserFavouritesListbox.h	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,463 +0,0 @@
-/*
-* 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: 
-*      Declaration of class CBrowserFavouritesListbox.
-*      
-*
-*/
-
-
-#ifndef BROWSER_FAVOURITES_LISTBOX_H
-#define BROWSER_FAVOURITES_LISTBOX_H
-
-//  INCLUDES
-#include <aknlists.h>
-#include "BrowserFavouritesSelectionState.h"
-#include "BrowserFaviconHandler.h"
-
-// FORWARD DECLARATIONS
-class CFavouritesItem;
-class CFavouritesItemList;
-class CBrowserFavouritesIconIndexArray;
-class MBrowserFavouritesListboxIconHandler;
-class CBrowserFavouritesListboxModel;
-class MBrowserFavouritesListboxCursorObserver;
-class CBrowserFavouritesListboxState;
-class MApiProvider;
-
-// MACROS
-
-// CLASS DECLARATION
-
-/**
-* Listbox to display and browse bookmarks and folders.
-* Display is sorted: Homepage first, Last Visited next, bookmarks sorted
-* alphabetically, folders come last alphabetically. Markable single-graphics
-* style listbox.
-*/
-struct  TBrowserFavouritesListboxDefaultDatas
-	{
-	TInt  iPreferedId;
-	TBool  iInSeamlessFolder;
-	};
-
-
-/**
-* Listbox to display and browse bookmarks and folders.
-* Display is sorted: Homepage first, Last Visited next, bookmarks sorted
-* alphabetically, folders come last alphabetically. Markable single-graphics
-* style listbox.
-*/
-class CBrowserFavouritesListbox : 	public CAknSingleGraphicStyleListBox
-									,public MBrowserFaviconObserver
-    {
-	public:	    // Constructors and destructor
-
-        /**
-        * Two-phased constructor. Leaves on failure.
-        * @param aParent Parent control.
-        * @param aIconHandler The icon handler. Not owned.
-        * @return The constructed listbox.
-        */
-        static CBrowserFavouritesListbox* NewL
-            (
-            MApiProvider& aApiProvider,
-            const CCoeControl* aParent,
-            const MBrowserFavouritesListboxIconHandler& aIconHandler
-            );
-
-        /**
-        * Destructor.
-        */
-        virtual ~CBrowserFavouritesListbox();
-
-    public:     // new methods
-
-        /**
-        * Set listbox observer.
-        * @param Observer for this listbox.
-        */
-        void SetListboxCursorObserver
-            ( MBrowserFavouritesListboxCursorObserver* aObserver );
-
-        /**
-        * Set new data to listbox.
-        * @param aItems Items to display. Ownership is taken. Should not be on
-        * cleanup stack when calling this (this method will push).
-        * @param aCommsModel to be used when setting bearer icons.
-        * (Ownership not taken.)
-        * @param aKeepState If ETrue, try to keep current state (marks etc.).
-        */
-        void SetDataL
-            (
-            CFavouritesItemList* aItems,
-            TBool aKeepState
-            );
-
-        /**
-        * Get selection state.
-        * @return Selection state.
-        */
-        TBrowserFavouritesSelectionState SelectionStateL() const;
-
-        /**
-        * Get currently highlighted item.
-        * @return Pointer to highlighted object or NULL.
-        */
-        const CFavouritesItem* CurrentItem() const;
-
-        /**
-        * Get currently marked one item (if more is marked, or nothing
-        * is marked, return NULL).
-        * @return Pointer to marked one object or NULL.
-        */
-        const CFavouritesItem* MarkedItemL() const;
-
-        /**
-        * Highlight the item having uid aUid. Does nothing
-        * if no item in the listbox has this uid.
-        * @param aUid Uid of item to highlight.
-        * @return ETrue if the item was found and highlighted; EFalse if not.
-        */
-        TBool HighlightUidNow( TInt aUid );
-
-        /**
-        * Handle markable list command. Does nothing
-        * if listbox is not markable or empty.
-        */
-        void HandleMarkableListCommandL( TInt aCommand );
-
-        /**
-        * Return Uids of marked items.
-        * @return Array of Uids. The array has been placed on the cleanup
-        * stack. The caller must destroy it and pop after no longer needed.
-        */
-        CArrayFix<TInt>* MarkedUidsLC() const;
-
-        /**
-        * Return Uids of selected items. These are the marked ones, if no marks
-        * then the highlighted one.
-        * @return Array of Uids. The array has been placed on the cleanup
-        * stack. The caller must destroy it and pop after no longer needed.
-        */
-        CArrayFix<TInt>* SelectedUidsLC() const;
-
-        /**
-        * Return a list of pointers to selected items. These are the marked
-        * ones, if no marks then the highlighted one.
-        * Note that the items exist within the listbox,
-        * and may be updated! So if you do something with the list which
-        * can be interrupted by some (other) active objects, copy the items
-        * first.
-        * Owner of the items is still the listbox, the owner of the list is
-        * the caller (i.e. you should delete the list, but not ResetAndDestroy
-        * it).
-        * @param aIncludeSpecialItems When ETrue, everything is included. When EFalse,
-        * homepage, last visited and folder types are excluded.
-        * @return Array of pointers to items. Items are owned by the listbox.
-        * The array has been placed on the cleanup stack. The caller must
-        * destroy it and pop after no longer needed.
-        */
-        CArrayPtr<const CFavouritesItem>* SelectedItemsLC(TBool aIncludeSpecialItems=ETrue) const;
-
-        /**
-        * Return a pointer to item having aUid. Note that the item exists
-        * within the listbox, and may be deleted! So if you do something with
-        * it which can be interrupted by some (other) active objects, copy the
-        * item first.
-        * @param aUid Uid of item to look for.
-        * @return Pointer to item (owned by the listbox), having this uid; or
-        * NULL if no such item is found.
-        */
-        const CFavouritesItem* ItemByUid( TInt aUid ) const;
-
-        /**
-        * Return number of items in the listbox, not considering filters.
-        */
-        TInt UnfilteredNumberOfItems();
-        
-        
-        /**
-        * Return number of filtered items in the listbox
-        */
-        TInt FilteredNumberOfItems();
-
-
-        /**
-        * Update filtering (e.g. item array changed, or filter text changed
-        * from outside).
-        */
-        void UpdateFilterL();
-
-        /**
-        * Query if there is any folder in the listbox.
-        * @return ETrue if there is any folder.
-        */
-        TBool AnyFoldersL();
-
-        /*
-        * Return real indexes of selected items. These are the marked
-        * ones, if no marks then the highlighted one.
-        * @param aIncludeCurrent When ETrue, highlighted item is included, even
-        * if not marked.
-        * @return Array of view indexes. The array has been placed on the
-        * cleanup stack. The caller must destroy it and pop after no longer
-        * needed.
-        */
-        CArrayFix<TInt>* SelectedRealIndexesLC() const;
-
-        /**
-        * Get the real index of current item (index into the model).
-        * @return View index or KErrNotFound if no current item.
-        */
-        TInt CurrentItemRealIndex() const;
-
-        /**
-        * Set highlight / marks / top item index state.
-        * @param aState State to restore from.
-        */
-        void SetStateL( const CBrowserFavouritesListboxState& aState );
-
-
-	public:     // Functions from CAknSingleGraphicStyleListBox
-
-        /**
-        * Handle key event.
-        * @param aKeyEvent The key event.
-        * @param aType Key event type.
-        * @return Response (was the key event consumed?).
-        */
-		TKeyResponse OfferKeyEventL
-            ( const TKeyEvent& aKeyEvent, TEventCode aType );
-
-        /**
-        * Handle focus change.
-        * @param aDrawNow Draw now?
-        */
-		void FocusChanged( TDrawNow aDrawNow );
-
-        /*
-        * Create listbox model.
-        * @return The model for this listbox.
-        */
-        void CreateModelL();
-
-        /**
-        * Create listbox view.
-        * @return The view for this listbox.
-        */
-        CListBoxView* MakeViewClassInstanceL();
-
-        /**
-        * Create item drawer.
-        */
-        void CreateItemDrawerL();
-
-		void HandleResourceChange( TInt aType );
-
-	public: // from MBrowserFaviconObserver	
-		TInt DrawFavicons();
-
-	public: // defualt item access 		
-		inline TBrowserFavouritesListboxDefaultDatas& GetDefaultData()
-		    { return iDefaultDatas; }
-		    
-		inline CBrowserFaviconHandler* FaviconHandler() 
-									{ return iFaviconHandler; }
-									
-		inline TBool IsSkinUpdated ()
-		    { return iSkinUpdated; }
-		    
-		void SetSkinUpdated(TBool aSkinUpdated);
-		
-        /**
-        * Italicizes listbox row at index aRowIndex
-        *
-        * @param aRowIndex - index of row to be italicized 
-        */
-		void ItalicizeRowItemL(TInt aRowIndex);
-
-
-    protected:  // Construct / destruct
-
-        /**
-        * Constructor.
-        */
-		CBrowserFavouritesListbox( MApiProvider& aApiProvider );
-
-        /**
-        * Second phase constructor. Leaves on failure.
-        * @param aParent Parent control.
-        * @param aIconHandler The icon handler. Not owned.
-        */
-		void ConstructL
-            (
-            const CCoeControl* aParent,
-            const MBrowserFavouritesListboxIconHandler& aIconHandler
-            );
-
-        /**
-        * Get listbox flags (markable etc.).
-        * @return listbox flags.
-        */
-        virtual TInt ListboxFlags();
-		
-    private:    // new methods, getting listbox data
-
-        /**
-        * Return items to be displayed in a list. Owner is the caller.
-        * The returned list must have exactly as much items as aItems.
-        * @param aCommsModel Comms model to be used for getting AP data.
-        * @param aItems Item list.
-        * @return Icon index array.
-        */
-        CBrowserFavouritesIconIndexArray* GetIconIndexesLC
-            ( CFavouritesItemList& aItems );
-
-        /**
-        * Based on existing items and listbox state, calculate the new
-        * state which will be applied if items are replaced with new ones.
-        * @param aNewItems New item list.
-        * @return The new state. Owner is the caller, it must free the
-        * returned state.
-        */
-        void CalcNewStateL( CFavouritesItemList& aNewItems );
-
-
-    private:    // new methods: index <--> Uid conversion
-
-        /**
-        * Convert Uid to index.
-        * @param aUid Uid to convert.
-        * @return View index of item having aUid, or KErrNotFound.
-        */
-        TInt UidToViewIndex( TInt aUid ) const;
-
-        /**
-        * Convert Uids to view indexes on the list. If any Uid is not found,
-        * it is removed from the list (list may contain less elements
-        * after calling).
-        * @param aList List of Uids to convert.
-        */
-        void UidsToViewIndexes( CArrayFix<TInt>& aList ) const;
-
-        /**
-        * Convert real indexes to Uids on the list.
-        * @param aList List of indexes to convert.
-        */
-        void RealIndexesToUids( CArrayFix<TInt>& aList ) const;
-
-        /**
-        * Return real indexes of marked items.
-        * @param aIncludeCurrent When ETrue, highlighted item is included, even
-        * if not marked.
-        * @return Array of view indexes. The array has been placed on the
-        * cleanup stack. The caller must destroy it and pop after no longer
-        * needed.
-        */
-        CArrayFix<TInt>* MarkedRealIndexesLC() const;
-
-
-
-    private:    // Conversion between uid <--> view index <--> real index.
-
-        // Note: there are two kinds of indexes in the listbox. One set is
-        // what is visible in the view (called View index), and the other
-        // what data is actually stored in the model (called Real index).
-        // When filtering kicks in, the two kind of indexes do not necessarily
-        // match, and a mapping between the two must be established.
-
-
-        /**
-        * Convert view index to real index.
-        * @param aViewlIndex View index (indexing to the visible elements).
-        * @return Real index or KErrNotFound if not found / not visible.
-        */
-        TInt RealIndex( TInt aViewIndex ) const;
-
-        /**
-        * Convert view indexes to real indexes on the list. If any index is
-        * not found / not visible, it is removed from the list (list may
-        * contain less elements after calling).
-        * @param aList List of indexes to convert.
-        */
-        void RealIndexes( CArrayFix<TInt>& aList ) const;
-
-        /**
-        * Get flags for constructing selection state.
-        * @param aItem Extract flags from this item.
-        * @return Flags originating from the item.
-        */
-        TInt SelectionFlags( const CFavouritesItem& aItem ) const;
-
-        /**
-        * Convenience method; return the model.
-        * @return The model.
-        */
-        CBrowserFavouritesListboxModel* TheModel() const;
-
-    protected:  // data
-
-        /**
-        * Icon handler (this creates icons and calculates icon indexes).
-        */
-        const MBrowserFavouritesListboxIconHandler* iIconHandler;
-
-    protected:  // data
-
-        /**
-        * Real data for this listbox, array of items. Owned.
-        */
-        CFavouritesItemList* iItems;
-
-        /**
-        * Icon indexes for the items. Owned.
-        */
-        CBrowserFavouritesIconIndexArray* iIconIndexes;
-        
-        /**
-        * Skin updated status
-        */
-        TBool iSkinUpdated;
-
-    private:    // data
-
-        MApiProvider& iApiProvider;	// not owned
-        
-        /**
-        * Observer for cursor changes.
-        */
-        MBrowserFavouritesListboxCursorObserver* iCursorObserver;
-
-        /**
-        * Placeholder for new listbox state, when listbox content changes.
-        * This should really be a local variable, but it just cannot be done!
-        * because the cleanup stack cannot be managed (can't swap items in
-        * the stack).
-        */
-        CBrowserFavouritesListboxState* 		iNewState;
-		TBrowserFavouritesListboxDefaultDatas 	iDefaultDatas;
-		CBrowserFaviconHandler* 				iFaviconHandler;
-		
-        /**
-        * Italicized font for setting listbox rows to italics font.
-        */
-        CFbsFont *iFontItalic;
-
-
-    };
-
-#endif
-
-// End of File