webengine/webkitutils/HistoryProvider/HistoryEntry.h
changeset 0 dd21522fd290
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/webkitutils/HistoryProvider/HistoryEntry.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,273 @@
+/*
+* 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:  Encapsulates all the necessary information for a single page 
+*      to be able to re-display the page.  
+*      History Entry objects are stored on the History Stack.
+*
+*/
+
+
+
+#ifndef HISTORYENTRY_H
+#define HISTORYENTRY_H
+
+//  INCLUDES
+#include <e32base.h>
+#include "HistoryInterface.h"
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+
+// MACROS
+
+// DATA TYPES
+//enum ?declaration
+//typedef ?declaration
+//extern ?data_type;
+
+// FUNCTION PROTOTYPES
+//?type ?function_name(?arg_list);
+
+// FORWARD DECLARATIONS
+namespace WebCore {
+    class FormData;
+}
+
+// CLASS DECLARATION
+class CFbsBitmap;
+
+/**
+* HistoryEntry
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+class HistoryEntry
+{
+    public:
+        /**
+        * Two-phased constructor.
+        * @return HistoryEntry *
+        */
+        static HistoryEntry* initWithUrlAndFormData( const TPtrC8& url, const TPtrC8& requestUrl, 
+            TPtrC& formContentType, WebCore::FormData* formData, HistoryCallback* callback, TBool wmlType);
+
+        /**
+        * Overwrite the last request URL with a new one. 
+        * The original URL is released and the new one is added.
+        */
+        void setRequestUrlL (const TDesC& requestUrl);
+
+        /**
+        * Overwrite the last URL response with a new one. 
+        * The original response is released and the new one is added.
+        */
+        void setResponseUrlL (const TDesC& responseUrl);
+
+        /**
+        * Sets the new x and y coordinates
+        */
+        void setPosition (const TPoint& position);
+        /**
+        * Sets the new zoom level
+        */
+        void setZoomLevel (int zoomLevel);
+        /**
+        * Sets the new min zoom level
+        */
+        void setMinZoomLevel (int zoomLevel);
+        /**
+        * Sets the page title
+        */
+        void setPageTitle (const TDesC& pageTitle);
+
+        /**
+        * Set the field in focus
+        */
+        void setActiveBoxId (int id);
+
+        /**
+        * Add a string to the list of post data
+        * Leaves with error code KErrNoMemory if unable to allocate memory
+        */
+        void addFormData (WebCore::FormData* formData);
+
+		/**
+        * Set post content type
+        * Leaves with error code KErrNoMemory if unable to allocate memory
+        */
+        void setPostContentTypeL (TPtrC postContentType);
+
+        /**
+        * Gets the URL Request
+        * @return TPtrC to the request URL
+        */
+        TPtrC8 requestUrl () const {return *m_requestUrl;}
+
+        /**
+        * Returns a pointer to the URL response
+        * @return TPtrC to the response
+        */
+		TPtrC8 responseUrl () const { return m_responseUrl ? *m_responseUrl : KNullDesC8(); } 
+
+        /**
+        * Returns the x and y coordinates
+        * @return TPoint
+        */
+
+        TPoint position () const {return m_position;}
+        /**
+        * Returns zoom level
+        * @return int
+        */
+        int zoomLevel () const {return m_zoomLevel;}
+
+        /**
+        * Returns min zoom level
+        * @return int
+        */
+        int minZoomLevel () const {return m_minZoomLevel;}
+
+        /**
+        * Returns a pointer to the page title
+        * @return TPtrC
+        */
+        TPtrC pageTitle () const {return *m_pageTitle;}
+
+        /**
+        * Returns the id of the field in focus
+        * @return int
+        */
+        int activeBoxId () const {return m_activeBoxId;}
+
+        /**
+        * Returns a pointer to a post data string. 
+        * Returns null if no post data is found or if the index is out of range.
+        * @return TPtrC8
+        */
+        WebCore::FormData* formData () const { return m_formData; }
+
+		/**
+        * Returns a post data content type. 
+        * Returns null if no post data is found or if the index is out of range.
+        * @return TDesC
+        */
+        TPtrC postContentType () const {return m_postContentType ? m_postContentType->Des() : KNullDesC();}
+
+        /**
+        * Sets page thumbnail
+        * @param aThumbnail - page thumbnail
+        * @return void
+        */
+        void storeThumbnail(const CFbsBitmap* thumbnail, const TRect& area);
+
+        /**
+        * Returns page thumbnail
+        * @return CFbsBitmap
+        */
+        CFbsBitmap* thumbnail() const {return m_thumbnail;}
+ 
+        /**
+        * Returns page thumbnail
+        * @return CFbsBitmap
+        */
+        CFbsBitmap* constructThumbnailL();
+
+        /**
+        * Delets page thumbnail
+        * @return void
+        */
+        void deleteThumbnail();
+
+		/**
+		*  Destructor
+		*/
+		~HistoryEntry();
+		
+        const TTime& creationTime() const { return m_creationTime; }
+
+        /**
+        * Changes the time during reload
+        * @return void
+        */
+        void touch() {m_creationTime.HomeTime();}
+
+        /**
+        * Returns boolean indicator if WML content WAS at one time
+        * (things change and a different content type may be current on reload or back nav...like 404 error might be html)
+        * associated with the url stored in the history stack
+        * @return TBool
+        */
+        TBool ifWml() { return m_ifWmlMode; }
+
+    private:
+
+		/**
+		*  Default constructor
+		*/
+		HistoryEntry();  
+
+		/*  Private Members  */
+
+    private :
+
+        // URL request string
+        HBufC8* m_requestUrl;
+        
+		// HTML string response from URL request.  Used for caching the page
+        HBufC8* m_responseUrl;
+        
+		// String containing the page title
+        HBufC* m_pageTitle;
+        
+		// X and y coordinates of last viewing position.
+        TPoint m_position;
+        
+		// Id of box with focus
+        int m_activeBoxId;
+
+        // Post body buffer
+        WebCore::FormData* m_formData;
+
+		//Post Content Type
+		HBufC* m_postContentType;
+
+		//void CWebKitBridge::SaveDocumentState(const TArray<TPtrC>& aDocumentState)
+		//TArray<TPtrC>* CWebKitBridge::DocumentState() const
+
+		// Number of entries allowed in the stack
+		int m_historyStackStackSize;
+
+        // Page thumbnail
+        CFbsBitmap* m_thumbnail; // owned
+
+        // The time this entry was created
+        TTime m_creationTime;
+		
+        CBufFlat* m_thumbnailBuf; //owned
+        HistoryCallback* m_callback;
+
+        // true = wml; false = other stuff
+        TBool m_ifWmlMode;
+
+        // zoom level
+        int m_zoomLevel;
+
+        // min zoom level
+        int m_minZoomLevel;
+    };
+
+#endif  // HISTORYENTRY_H
+
+// End of File