/*
* 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