web_pub/browser_control_api/inc/BrCtlLinkResolver.h
changeset 0 dd21522fd290
child 25 0ed94ceaa377
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web_pub/browser_control_api/inc/BrCtlLinkResolver.h	Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2006 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:  Handle links and embedded content that are not fetched from the network
+*
+*/
+
+
+#ifndef BRCTLLINKRESOLVER_H
+#define BRCTLLINKRESOLVER_H
+
+//  INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+
+/**
+* The browser guesses the expected content type from 
+* the HTML element in which the content was defined.
+*/
+enum TBrCtlLoadContentType
+    {
+    ELoadContentTypeAny, ///< The content type is unknown
+    /**
+    * The content is one of the following:
+    * HTML, XHTML, WML
+    */
+    ELoadContentTypeMarkup,
+    ELoadContentTypeImage, ///< The content is an image
+    ELoadContentTypeCss, ///< The content is a cascading style sheet
+    ELoadContentTypeJavascript, ///< The content is Javascript
+    ELoadContentTypePlugin, ///< The content is data for a Netscape plug-in
+    /**
+    * The content is data for SoundStart. SoundStart is an attribute 
+    * that is added to an anchor <a> tag to play audio when an anchor 
+    * is in focus or selected.
+    */
+    ELoadContentTypeSound
+    };
+
+
+// FORWARD DECLARATIONS
+class MBrCtlLinkContent;
+
+/**
+* The MBrCtlLinkResolver class provides the content of an embedded link 
+* or the content of a load request that was initiated by the user. 
+* This class is used when the host application stores markup text or 
+* other information in a private store. For example, this class could be 
+* used for e-mail applications.
+*
+* Usage:
+*
+* @code
+*  #include <BrCtlLinkResolver.h>
+*
+*  
+* @see S60 Platform: Browser Control API Developer's Guide Version 2.0
+* @lib BrowserEngine.lib
+* @file BrCtlLinkResolver.h
+* @endcode     *
+*/
+class MBrCtlLinkResolver
+    {
+    public: // New functions
+        
+      /**
+      * Browser plug-in calls this method when embedded link is found. 
+        * Used with ECapabilityClientResolveEmbeddedURL
+        * @since 2.8
+      * @param aEmbeddedUrl The url of the embedded content
+      * @param aCurrentUrl The url of the current page
+      * @param aLoadContentType Type of the embedded content
+        * Values: One of the following:
+        * ELoadContentTypeAny, ELoadContentTypeMarkup, ELoadContentTypeImage
+        * ELoadContentTypeCss, ELoadContentTypeJavascript, ELoadContentTypePlug-in
+      * @param aEmbeddedLinkContent a callback interface to return the embedded content
+      * @return ETrue if the host application resolves the link.  
+        * EFalse if the host application does not resolve the link. 
+        * @attention The host application makes this request by setting 
+        * the ECapabilityClientResolveEmbeddedURL function.
+      */
+        virtual TBool ResolveEmbeddedLinkL(const TDesC& aEmbeddedUrl,
+                                       const TDesC& aCurrentUrl,
+                                         TBrCtlLoadContentType aLoadContentType, 
+                                         MBrCtlLinkContent& aEmbeddedLinkContent) = 0; 
+    
+      /**
+      * Browser plug-in calls this method when the user requests to load content via selecting a link, or any other way. Used with ECapabilityClientNotifyURL 
+        * @since 2.8
+      * @param aUrl The requested url
+      * @param aCurrentUrl The url of the current page
+      * @param aBrCtlLinkContent a callback interface to return the embedded content
+      * @return ETrue if the host application resolves the link.
+        * EFalse if the host application does not resolve the link. 
+        * @attention The host application requests that the browser plug-in call 
+        * this function to load new content by setting the ECapabilityClientNotifyURL function.
+      */
+        virtual TBool ResolveLinkL(const TDesC& aUrl, const TDesC& aCurrentUrl,
+                                   MBrCtlLinkContent& aBrCtlLinkContent) = 0;
+
+    /**
+    * Cancel all outstanding resolving operations
+        * @since 2.8
+      * @return void
+      */
+        virtual void CancelAll() = 0;
+    };
+
+
+/**
+* The MBrCtlLinkContent class is an interface that loads the resolved content. 
+*
+* Usage:
+*
+* @code
+*  #include <BrCtlLinkResolver.h>
+*
+*  
+* @see S60 Platform: Browser Control API Developer's Guide Version 2.0
+* @lib BrowserEngine.lib
+* @file BrCtlLinkResolver.h
+* @endcode     *
+*/
+class MBrCtlLinkContent
+    {
+    public: // New functions
+        /**
+      * Resolver calls this method when content is resolved.
+      * @param aContentType The content type of the response
+      * @param aCharset The charset of the response. May be empty in case of image
+      * @param aContentBuf content data. Ownership is not transfered
+      * @return void
+      */
+        virtual void HandleResolveComplete(const TDesC& aContentType,
+                                           const TDesC& aCharset,
+                                           const HBufC8* aContentBuf) = 0;
+
+    /**
+      * This method is called if there is some error while resolving the content
+      * @param aError system wide error code.
+      * @return void
+      */
+        virtual void HandleResolveError(TInt aError) = 0;
+    };
+
+
+
+#endif      // BRCTLLINKRESOLVER_H
+            
+// End of File