--- /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 <e32base.h>
+//#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<CHistoryEntry>* iHistoryList;
+
+ TInt iCurrent;
+
+ TInt iHistoryStackStackSize;
+
+ CHistoryMemCollector* iMemCollector;
+
+ };
+#endif // HISTORYSTACK_H
+
+// End of File