--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/webkitutils/HistoryProvider/HistoryController.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,334 @@
+/*
+* 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: Definition of HistoryController
+*
+*/
+
+
+#ifndef HISTORYCONTROLLER_H
+#define HISTORYCONTROLLER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <BrCtlDefs.h>
+#include "HistoryInterface.h"
+
+// CONSTANTS
+
+static const TUint KHistoryStackSize = 20;
+
+// MACROS
+
+// DATA TYPES
+
+enum THistoryStackLocation
+{
+
+ EHistoryStackLocationAtBeginning,
+ EHistoryStackLocationInMiddle,
+ EHistoryStackLocationAtEnd
+};
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+class HistoryView;
+
+//typedef CArrayFixFlat<TBrCtlSelectOptionData> SelectArray;
+
+// CLASS DECLARATION
+
+
+/**
+* This is the entry point for the clients.
+* Call dispatch to have the request processed.
+* @lib resLoader.lib
+* @since 3.1
+*/
+class HistoryController : public HistoryControllerInterface
+ {
+ public: // Constructors and destructor
+
+ static IMPORT_C HistoryControllerInterface* initWithCallback( HistoryCallback* historyCallback,
+ bool historyAllowed, bool backListAllowed);
+
+ /**
+ * Destructor.
+ */
+ virtual ~HistoryController();
+
+ public:
+
+ /**
+ * Insert
+ * Add Url to History List
+ * @since 5.x
+ * @return void
+ */
+ virtual void insert( const TPtrC8& url, const TPtrC8& requestUrl,
+ TPtrC& formContentType, WebCore::FormData* formData );
+
+ /**
+ * Implements virtual bool ContainsItemForURL(const TDesC& aUrl) = 0;)
+ * @return bool
+ * Return TRUE if URL request is in the history list
+ */
+ virtual bool containsItemForURL (const TPtrC& url);
+
+ /**
+ * PageInfoLC
+ * Return the pageInfo requested, such as page's url or title
+ * @since 3.x
+ * @return HBufC* - The page information that was requested
+ */
+ virtual HBufC* pageInfoLC( TBrCtlDefs::TBrCtlPageInfo aBrCtlPageInfo );
+
+ /**
+ * HandleHistoryCommandL
+ * Handle the commands related to history object
+ * @since 3.x
+ * @return void
+ */
+ virtual void handleHistoryCommandL( int command );
+
+ /**
+ * ClearHistoryList
+ * Clears History List
+ * @since 3.x
+ * @return void
+ */
+ virtual void clearHistoryList();
+
+ /**
+ * CanGoBackOrForward
+ * Check if back/forward is possible
+ * @return void
+ */
+ virtual bool canGoBackOrForward( int distance );
+
+ /**
+ * Updates HistoryEntryThumbnail
+ *
+ */
+ virtual void updateHistoryEntryThumbnailL(const CFbsBitmap* bitmap);
+
+ /**
+ * Set the title
+ *
+ */
+ virtual void setCurrentEntryTitle( const TPtrC& pageTitle );
+
+ /**
+ * CurrentEntryPosition
+ * Asks the history controller to update the current entry position
+ */
+ virtual void updateCurrentEntryPositionIfNeeded();
+
+ /**
+ * CurrentEntryPosition
+ * Gets the current entry position
+ */
+ virtual TPoint currentEntryPosition();
+ /**
+ * CurrentEntryZoomLevel
+ * Asks the history controller to update the current entry zoom level
+ */
+ virtual void updateCurrentEntryZoomLevelIfNeeded();
+
+ /**
+ * CurrentEntryZoomLevel
+ * Gets the current entry zoom level
+ */
+ virtual int currentEntryZoomLevel();
+
+ /**
+ * CurrentEntryMinZoomLevel
+ * Asks the history controller to update the current entry min zoom level
+ */
+ virtual void updateCurrentEntryMinZoomLevelIfNeeded();
+
+ /**
+ * CurrentEntryMinZoomLevel
+ * Gets the current entry min zoom level
+ */
+ virtual int currentEntryMinZoomLevel();
+
+ /**
+ * Sets Url request
+ */
+ //virtual void setRequestUrlL(const TPtrC& aUrl);
+
+ /**
+ * Sets Url Response
+ */
+ //virtual void setResponseUrlL(const TPtrC& aUrl);
+
+ /**
+ * Gets the entry
+ */
+ virtual HistoryEntry* entry (THistoryStackDirection direction);
+
+ /**
+ * Gets Url Request
+ */
+ virtual TPtrC8 requestUrl();
+
+ /**
+ * Returns a pointer to the URL response
+ * @return TPtrC to the response
+ */
+ virtual TPtrC8 responseUrl ();
+
+ /**
+ * Returns a pointer to HistoryEntry
+ * @return HistoryEntry* to the wml hystory
+ */
+ virtual HistoryEntry* entryByIndex (int historyIndex);
+
+ /**
+ * Gets the index
+ */
+ virtual int index (THistoryStackDirection direction);
+
+ /**
+ * Delete the entry from the list
+ */
+ virtual void deleteEntry (int index);
+
+ /**
+ * set the current entry
+ */
+ virtual void setCurrentL ( THistoryStackDirection direction );
+
+ /**
+ * Change the time stamp during a reload
+ */
+ virtual void updateGlobalHistoryForReload ();
+
+ virtual HistoryCallback* historyCallback() { return m_historyCallback;}
+
+ /**
+ */
+ virtual void setBackListAllowed( bool enabled ) { m_backListAllowed = enabled; }
+
+ /**
+ * History View
+ * return History View
+ */
+ HistoryView* historyView() { return m_historyView; }
+
+ /**
+ * HistoryStack
+ * return the HistoryStack pointer
+ */
+ RPointerArray<HistoryEntry>* HistoryStack() { return &m_historyStack; }
+
+ /**
+ * HistoryLength
+ * @return the number of entries in the history list
+ */
+ int historyLength() const { return m_historyStack.Count(); }
+
+ /**
+ * GoBackOrForward
+ * Load url from history + or - distance from current page
+ * @return void
+ */
+ virtual void goBackOrForward( int distance );
+
+ /**
+ * CloseHistoryView
+ * Closes history view
+ */
+ void closeHistoryView();
+
+ /**
+ * HistoryViewEnabled
+ * returns true if BrCtl capability fow HistoryView was on
+ */
+ TBool historyViewEnabled() { return m_historyViewEnabled; }
+ void setHistoryViewEnabled( TBool aEnabled ) { m_historyViewEnabled = aEnabled; }
+ bool backListAllowed() { return m_backListAllowed; }
+
+ /**
+ * Update Display
+ */
+ void updateDisplay() const;
+
+ int currentIndex() { return m_currentIndex; }
+ void setCurrentIndex (int index) { if (index >= 0 && index < m_historyStack.Count()) m_currentIndex = index; }
+
+ void setPossibleWmlOEB(TBool aFlag) { m_possibleWmlOEB = aFlag; }
+ TBool possibleWmlOEB() { return m_possibleWmlOEB; }
+
+ void performTransition(int direction);
+
+
+ private:
+
+ /**
+ * Construct.
+ * @param
+ * @return
+ */
+ HistoryController(HistoryCallback* historyCallback, bool historyAllowed, bool backListAllowed);
+
+ /**
+ * ShowHistoryViewL
+ *
+ * @since 3.x
+ * @return void
+ */
+ void showHistoryViewL(bool previous);
+
+ /**
+ * ShowHistoryListL
+ *
+ * @since 3.x
+ * @return void
+ */
+ void showHistoryListL();
+
+ /**
+ * LoadHistoryEntry
+ *
+ * @since 3.x
+ * @return void
+ */
+ void loadHistoryEntryL( CArrayFixFlat<TBrCtlSelectOptionData>& aHistoryList );
+
+ void loadHistoryUrl(THistoryStackDirection direction, TBrCtlDefs::TBrCtlCacheMode cacheMode, int historyLoadOffset);
+
+ private: // Data
+
+ HistoryCallback* m_historyCallback;
+ // History Object
+ RPointerArray<HistoryEntry> m_historyStack;
+ // HistoryView
+ HistoryView* m_historyView; // owned
+ // denotes the offset if the load was as a result of history offset
+ int m_historyLoadOffset;
+ int m_currentIndex;
+ int m_tempCurrentIndex; // keeps the current index while we do a history load
+ // indicates if history view is enabled from BrowserControl capabilities
+ bool m_historyViewEnabled;
+ // User allows back list
+ bool m_backListAllowed;
+ // flag to indicate possible OEB when navigating from HTML, back through history, to WML content
+ bool m_possibleWmlOEB;
+ };
+
+#endif // HISTORYCONTROLLER_H
+
+// End of File