/***************************************************************************
                          whtmlpart.h  -  description
                             -------------------
    begin                : Fri Aug 18 2000
    copyright            : (C) 2000 by Dmitry Poplavsky & Alexander Yakovlev & Eric Laffoon <pdima@users.sourceforge.net,yshurik@linuxfan.com,sequitur@easystreet.com>
                           (C) 2002, 2004, 2005 Andras Mantia <amantia@kde.org>
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 ***************************************************************************/

#ifndef WHTMLPART_H
#define WHTMLPART_H

#include <tqstrlist.h>

#include <khtml_part.h>

class KPopupMenu;
/**
  *@author Dmitry Poplavsky & Alexander Yakovlev & Eric Laffoon
  */

class WHTMLPart : public KHTMLPart  {
   Q_OBJECT
  TQ_OBJECT
public:
  WHTMLPart(TQWidget *parentWidget = 0, const char *widgetname = 0, bool enableViewSource = false,
            TQObject *parent = 0, const char *name = 0, GUIProfile prof = DefaultGUI );
  virtual ~WHTMLPart();

  /** Specify the URL where the preview was started */
  void setPreviewedURL(const KURL &url);
  bool backEnable();
  bool forwardEnable();
  virtual bool openURL(const KURL &url);

public slots:

/** back(), forward() - navigation, using history.
 */
  void forward();
  void back();
  void popupMenu(const TQString &url, const TQPoint &point);
  void slotViewSource();
  
  void addToHistory(const TQString &url);
  virtual bool eventFilter(TQObject *watched, TQEvent *e);

signals:
  void updatetqStatus( bool back, bool forward );
  void previewHasFocus(bool focus);
  void showPreview(bool show);
  void openFile(const KURL&, const TQString&, bool);

protected:
  virtual void urlSelected( const TQString &url, int button, int state, const TQString &_target, KParts::URLArgs args = KParts::URLArgs());
  virtual KParts::ReadOnlyPart *createPart( TQWidget *parentWidget, const char *widgetName,
                                            TQObject *parent, const char *name,
                                            const TQString &mimetype, TQString &serviceName,
                                            TQStringList &serviceTypes, const TQStringList &params);

private:
  KURL m_previewedURL;
  KPopupMenu *m_contextMenu;
  TQStrList history;
  unsigned int hpos;
  bool m_enableViewSource;
};

#endif
