diff -r 481242ead638 -r 48e827313edd browserui/browser/FavouritesInc/BrowserFavouritesListboxModel.h --- a/browserui/browser/FavouritesInc/BrowserFavouritesListboxModel.h Tue Feb 02 00:12:41 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,246 +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 CBrowserFavouritesListboxModel. -* -* -*/ - - -#ifndef BROWSER_FAVOURITES_LISTBOX_MODEL_H -#define BROWSER_FAVOURITES_LISTBOX_MODEL_H - -// INCLUDE FILES -// #include -// #include -#include -#include "Browser.hrh" - -// CONSTANTS - -/** -* Buffer size for formatting listbox text. Maximum item name -* plus listbox internals (tabulators for icons etc.) must fit into it. -* The format is "\t\t\t", -* so the added length is 7. -*/ -const TInt KMaxFavouritesItemListboxName = - KFavouritesMaxBookmarkNameDefine + 7; - -// FORWARD DECLARATION - -class CFavouritesItemList; -class CBrowserFavouritesListboxModel; -class CBrowserFavouritesIconIndexArray; -// class CAknListBoxFilterItems; -// class CAknSearchField; -// class CEikListBox; - -// CLASS DECLARATION - -/** -* Item text array for the favourites view listbox; converts item data -* to format what the listbox needs. (This means the returned text includes -* listbox internals (tabulators, icon numbers). -*/ -class TBrowserFavouritesListboxItemTextArray: public MDesCArray - { - 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 CBrowserFavouritesListboxModel; - - private: // data - - /** - * Pointer to real data. Not owned. - */ - const CFavouritesItemList* iItems; - - /** - * Icon indexes. Not owned. - */ - const CBrowserFavouritesIconIndexArray* iIconIndexes; - - /** - * MdcaPoint() cannot leave, so this buffer is allocated - * to allow formatting. Fortunately, doesn't have to be very - * large. - * We have to use MUTABLE CAST, as MdcaPoint is const (odd enough), - * so wouldn't allow formatting the text in a member... - */ - __MUTABLE TBuf iBuf; - }; - -/** -* Item text array for the favourites view listbox filtering; converts item data -* to format what the filter needs. (This means the returned text is what the -* user sees, and does not include listbox internals (tabulators, icon numbers). -*/ -class TBrowserFavouritesListboxFilterTextArray: public MDesCArray - { - 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 CBrowserFavouritesListboxModel; - - private: // data - - /** - * Pointer to real data. Not owned. - */ - const CFavouritesItemList* iItems; - - }; - -/** -* Model for the bookmark item listbox. Contains an array of -* CBrowserFavouritesItem pointers; items are owned. -*/ -class CBrowserFavouritesListboxModel: public CAknFilteredTextListBoxModel - { - public: // Construct / destruct - - /** - * Two-phase constructor. Leaves on failure. - * The two arrays passed must have the same number of items. - * @param aItems Itemarray; not owned. - * @param aIconIndexes Icon index array, not owned. - */ - static CBrowserFavouritesListboxModel* NewL - ( - const CFavouritesItemList& aItems, - const CBrowserFavouritesIconIndexArray& aIconIndexes - ); - - /** - * Overcoming base class bugs. Need to set itemarray after the whole - * listbox has been constructed; as the listbox construction - * overwrites itemarray to NULL. To be called as part of the - * construction ("third phase constructor"), AFTER the listbox's - * ConstructL. - */ - void SetItemArray(); - - /** - * Destructor. - */ - virtual ~CBrowserFavouritesListboxModel(); - - public: // new methods - - /** - * Set new data into the model. - * The two arrays passed must have the same number of items. - * @param aItems Itemarray; not owned. - * @param aIconIndexes Icon index array, not owned. - */ - void SetData - ( - const CFavouritesItemList& aItems, - const CBrowserFavouritesIconIndexArray& aIconIndexes - ); - - /** - * Returns pointer to item list. - * @return Pointer to item list. - */ - inline const CFavouritesItemList* Items() const; - - public: // from CTextListBoxModel - - /** - * Get matchable text array (for filtering). - * @return The matchable text array. - */ - const MDesCArray* MatchableTextArray() const; - - protected: // Construct / destruct - - /** - * Constructor. - * The two arrays passed must have the same number of items. - * @param aItems Itemarray; not owned. - * @param aIconIndexes Icon index array, not owned. - */ - CBrowserFavouritesListboxModel - ( - const CFavouritesItemList& aItems, - const CBrowserFavouritesIconIndexArray& aIconIndexes - ); - - /** - * Second phase constructor. Leaves on failure. - */ - void ConstructL(); - - private: // data - - /** - * The item array (real data, array of CFavouritesItem-s). Not owned. - */ - const CFavouritesItemList* iItems; - - /** - * Icon indexes. Not owned. - */ - const CBrowserFavouritesIconIndexArray* iIconIndexes; - - /** - * The item text array (formatting for listbox). - */ - TBrowserFavouritesListboxItemTextArray iItemTexts; - - /** - * The filter text array (formatting for filtering). - */ - TBrowserFavouritesListboxFilterTextArray iFilterTexts; - - }; - -#include "BrowserFavouritesListboxModel.inl" - -#endif - -// End of file