// WEBEOSRV.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

//=============================================================================
//A mixin class defining an interface to the services provided by the model to
//embedded objects. 
//
//=============================================================================
//=============================================================================

#if !defined(__WEBEOSRV_H__)
#define __WEBEOSRV_H__

#if !defined(__E32BASE_H__)
#include <e32base.h>
#endif
#if !defined(__TXTFRMAT_H__)
#include <txtfrmat.h>
#endif
#if !defined(__W32STD_H__)
#include <w32std.h>
#endif
#if !defined(__WEBDEF_H__)
#include "webdef.h"
#endif

class CHtmlTokenHandler;
class MWebEmbeddedObjectServices;
class CWtlDocument;

/* Class MWebEmbeddedObjectServices */
class MWebEmbeddedObjectServices
	{
public:

	//Configuration items
	enum TBoolConfigurationItem
		{
		EBoolConfigRenderFrames,
		EBoolConfigShowLinksInNoFrames,
		EBoolConfigAnimating,
		EBoolConfigLoadingImages,
		EBoolConfigUsingColor,
		EBoolConfigShowingSelection
		};

	enum TWebStringConfigurationItem
		{
		EWebStringHomeUrl,
		EWebStringSearchUrl,
		EWebStringDefaultAltText
		};

	//Empty enums for future expansion
	enum TNumericConfigurationItem
		{
		};
	enum THBufConfigurationItem
		{
		};

	virtual TZoomFactor* ZoomFactor() const = 0;
	virtual void GetParaFormatL(CParaFormat& aFormat,TInt aIndex) const = 0;
	virtual void GetCharFormat(TCharFormat& aFormat, TInt aIndex, TInt aRelativeFontSize = 0) const = 0;
	virtual void GetFontSpec(TFontSpec& aFontSpec, TInt aIndex, TInt aRelativeFontSize = 0) const = 0;
	virtual void GetMonoTypeface(TTypeface& aTypeface) const = 0;
	virtual TBool ConfigItemL(TBoolConfigurationItem aItem) const = 0;
	virtual TInt ConfigItemL(TNumericConfigurationItem aItem) const = 0;
	virtual HBufC* ConfigItemL(THBufConfigurationItem aItem) const = 0;
	virtual TPtrC ConfigItemL(TWebStringConfigurationItem aItem) const = 0;
	virtual CWtlDocument* Document(TInt aFrameID) const = 0;
	virtual const CFbsBitmap* ImageIcon(TInt aIndex) const = 0;
	virtual void DrawFrameL(const TRect& aRect, TInt aFrameID) = 0;
	virtual RWindow& Window(TInt aFrameID) const = 0;
	virtual const TRect& ViewRect(TInt aFrameID) const = 0;
	virtual TBool GetAuthenticationL(CWtlDocument* aDocument,TBuf<KMaxWebAuthenticationNameLength>& aName, TBuf<KMaxWebAuthenticationPasswordLength>& aPassword, TInt aFrameID) const = 0;
	virtual TBool CommitAuthenticationL() = 0;
	
	IMPORT_C virtual void MWebEmbeddedObjectServices_Reserved1();
	IMPORT_C virtual void MWebEmbeddedObjectServices_Reserved2();
	};


#endif   //__WEBEOSRV_H__
