


native class ISteamHTMLSurface
{
	bool Init();
	bool Shutdown();

	ulong CreateBrowser( string pchUserAgent, string pchUserCSS );

	void RemoveBrowser( uint bx );
	void LoadURL( uint bx, string pchURL, string pchPostData );
	void AddHeader( uint bx, string key, string value );
	void SetSize( uint bx, uint w, uint h );
	void GetLinkAtPosition( uint bx, uint w, uint h );
	
	void SetHorizontalScroll( uint unBrowserHandle, uint nAbsolutePixelScroll );
	void SetVerticalScroll( uint unBrowserHandle, uint nAbsolutePixelScroll );
	
	void SetKeyFocus( uint unBrowserHandle, bool b );

	void AllowStartRequest( uint bx, bool b );
	void JSDialogResponse( uint bx, bool b );
	void SetBackgroundMode( uint bx, bool b );

	void SetDPIScalingFactor( uint bx, float scale );

	void KeyDown( uint unBrowserHandle, uint key, CastTo[ISteamHTMLSurface::EHTMLKeyModifiers] int modifiers, bool isSystemKey );
	void KeyUp( uint unBrowserHandle, uint key, CastTo[ISteamHTMLSurface::EHTMLKeyModifiers] int modifiers );

	void KeyChar( uint unBrowserHandle, uint unicodeChar, CastTo[ISteamHTMLSurface::EHTMLKeyModifiers] int modifiers );
	
	void MouseUp( uint unBrowserHandle, CastTo[ISteamHTMLSurface::EHTMLMouseButton] int eMouseButton );
	void MouseDown( uint unBrowserHandle, CastTo[ISteamHTMLSurface::EHTMLMouseButton] int eMouseButton );
	void MouseDoubleClick( uint unBrowserHandle, CastTo[ISteamHTMLSurface::EHTMLMouseButton] int eMouseButton );
	void MouseMove( uint unBrowserHandle, int x, int y );
	void MouseWheel( uint unBrowserHandle, int nDelta );

	void SetCookie( string pchHostname, string pchKey, string pchValue, string pchPath, uint nExpires, bool bSecure, bool bHTTPOnly );
}