#ifndef __OOL_XWEBVIEW_H__
#define __OOL_XWEBVIEW_H__

/*===========================================================================*/
/* OOL ------------------- the Open Object Library ------------- OS/2 Beta 1 */
/*===========================================================================*/
/*                              class: XWebView                              */
/*                       derived from: XControl                              */
/*                        last update: 10/96                                 */
/*                      programmed by: Stefan von Brauk (sbrauk@gwdg.de)     */
/*===========================================================================*/

#include "XControl.h"
#include "XString.h"

#ifdef OOL_FOR_OS2_X86
   #define WEB_SUCCESS   0
   #define WEB_ERROR     -1
   #define WEB_CANCELLED 1

   #define WEB_CONNECT   1
   #define WEB_WAIT      2
   #define WEB_LOADDATA  3
   #define WEB_RENDER    4

   #define WEB_FORMAT_BINARY 0
   #define WEB_FORMAT_7BIT   1
   #define WEB_FORMAT_8BIT   2

   #define WEB_POINTER_NORMAL  0
   #define WEB_POINTER_WAIT    1
   #define WEB_POINTER_ANCHOR  2
   #define WEB_POINTER_UNKNOWN 3

   #define WEB_ANCHOR_DEFAULT 0
   #define WEB_ANCHOR_VISITED 1
#endif


class _export_ XWebView: public XControl
{
   friend class webDefHandler;
   public:
      XWebView( const XWindow * owner, const XRect * rec, const USHORT id = 0);
      virtual void ButtonPressed( SHORT num, SHORT x, SHORT y) { ;}
      virtual void HandleError( ULONG msgID, char * errorMsg) {;}
      BOOL IsLoading(void) const ;
      virtual LONG Load( const char * url, const BOOL reload = FALSE);
      virtual void LoadResult( LONG res) { ;}
      virtual void LoadProgress( LONG status ) { ;}
      BOOL GetAnchorState( const char * anchor, LONG& state);
      BOOL GetDocAnchor( XString * buffer);
      BOOL GetDocTitle( XString * buffer);
      BOOL GetExtMap( const char * extension, XString * MIMEType, SHORT& format);
      LONG GetLastError(void) const ;
      LONG GetLastLoadError(void) const ;
      OOL_POINTERHANDLE GetPointer( const LONG pointerType);
      BOOL GetPos( const XPoint * mouse, XPoint * view);
      BOOL GetViewer( const char * MIMEType, XString * program);
      LONG SaveToFile( const char * url, const char * filePath, const BOOL reload = FALSE);
      BOOL Search( const char * searchString, const XPoint * start, XPoint * resBuffer, const BOOL forward = TRUE);
      BOOL SetAnchorState( const char * anchor, const LONG state);
      BOOL SetExtMap( const char * extension, const char * MIMEType, const SHORT format = 0);
      void SetOptions( const char * emailAdress, const char * newsSever=NULL);
      BOOL SetPointer( const OOL_POINTERHANDLE pointer, const LONG pointerType);
      BOOL SetViewer( const char * MIMEType, const char * program);
      void StopLoading(void) const ;
};

#endif
