diff -r 000000000000 -r dd21522fd290 webengine/wmlengine/src/hed/include/HistoryStack.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/wmlengine/src/hed/include/HistoryStack.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,234 @@ +/* +* Copyright (c) 2004 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: Stack of HistoryEntry objects containing info about previously +* viewed pages. Allows for the navigation (forward and back) of +* those pages and for the maintenance (add/remove) of the pages +* +*/ + + +#ifndef HISTORYSTACK_H +#define HISTORYSTACK_H + +// INCLUDES +#include +//#include "historyentry.h" +#include "HistoryInterface.h" +#include "HistoryController.h" + +// CONSTANTS + +/* + static const TUint KHistoryStackSize = 20; + +// MACROS + +// DATA TYPES + +enum THistoryStackDirection +{ + + EHistoryStackDirectionPrevious, + EHistoryStackDirectionCurrent, + EHistoryStackDirectionNext +}; + + +enum THistoryStackLocation +{ + + EHistoryStackLocationAtBeginning, + EHistoryStackLocationInMiddle, + EHistoryStackLocationAtEnd +}; +*/ + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class CHistoryMemCollector; +class CUrlRequestInfo; + +// CLASS DECLARATION + +/** +* CHistoryStack +* +* @lib ?library +* @since ?Series60_version +*/ +class CHistoryStack : public CBase + { + + public: + + /** + * Two-phased constructor. + * @return CHistoryStack * + */ + static CHistoryStack* NewL(TInt aHistoryStackStackSize); + + /** + * Two-phased constructor. + * @return CHistoryStack * + */ + static CHistoryStack* NewLC(TInt aHistoryStackStackSize); + + /** + * Sets the new current page in the history relative to + * the current page. + * Leave if index out of bounds. + */ + void SetCurrentL (THistoryStackDirection aDirection); + + /** + * Sets the new current page in the history to + * the index. + * Leave if index out of bounds. + */ + void SetCurrentByIndexL (TInt aIndex); + + /** + * Return the entry in the direction relative to the current page + * @return CHistoryEntry const* + */ +// CHistoryEntry* Entry (THistoryStackDirection aDirection) ; + + + /** + * Delete entire history + */ + void DeleteAll (); + + /** + * Returns the number of objects in the history list + * @return TInt + */ +// TInt Length () const {return iHistoryList->Count();} + + /** + * Retreive an entry by it's position (index) in the list + * @return CHistoryEntry const* + */ +// CHistoryEntry* EntryByIndex (TInt aHistoryIndex); + + /** + * Determine position in stack + * @return THistoryStackLocation + */ + THistoryStackLocation HistoryStackLocation () const; + + // return current index + TInt CurrentIndex () const { return iCurrent; } + + // sets the current index + void SetCurrentIndex(TInt aHistoryIndex) {iCurrent = aHistoryIndex;} + + /** + * Insert + * Add Url to History List + * @since 3.x + * @return void + */ + void Insert( const TDesC& aUrl, const CUrlRequestInfo* aRequestInfo); + + /** + * Insert + * Add Url to History List + * @since 3.x + * @return void + */ +// void InsertL( const TDesC& aUrl, const TDesC& aRequestUrl, TBool aIsPost, TDesC8& aFormContentType, CPostDataParts* aPostData ); + + /** + * Implements virtual TBool ContainsItemForURL(const TDesC& aUrl) = 0;) + * @return TBool + * Return TRUE if URL request is in the history list + */ + TBool containsItemForURL (const TDesC& aUrl); + + /** + * Delete the entry(s) from the list + */ + void DeleteEntry (TInt aIndex, TInt aCount=1); + + /** + * Returns the stack size + */ + TInt Size(){ return iHistoryStackStackSize; } + + /** + * Retreive the index of the entry relative to the current page + * @return TInt + */ + TInt Index (THistoryStackDirection aDirection); + + public: + + void ClearThumbnails(); + + TBool IsOOMCollecting(); + + /** + * Destructor + */ + ~CHistoryStack(); + + private: + + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(TInt aHistoryStackStackSize); + + /** + * Insert entry into stack at the current position and + * delete all entries above the current entry. + * Leave if out of memory. + */ +// void PushEntryL (CHistoryEntry* aHistoryEntry); + + /** + * Insert entry either at the beginning of the list + * or at the end of the list + * Leave if out of memory. + */ +// void InsertEntryL (CHistoryEntry* aHistoryEntry, THistoryStackLocation aLocation); + + /** + * Default constructor + */ + CHistoryStack(); + + /* Private Members */ + + private : + + /** + * List of pointers to History Entries + * Pointers are owned by this class + */ +// CArrayPtrFlat* iHistoryList; + + TInt iCurrent; + + TInt iHistoryStackStackSize; + + CHistoryMemCollector* iMemCollector; + + }; +#endif // HISTORYSTACK_H + +// End of File