diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/s60/webview/BrCtlLinkResolver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKit/s60/webview/BrCtlLinkResolver.h Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,162 @@ +/* +* 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 +#include + + +/** +* 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 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 +* +* +* @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 +* +* +* @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