#ifndef __KDEVHTMLPART_H__
#define __KDEVHTMLPART_H__
#include 
#include 
#include 
/**
@file kdevhtmlpart.h
Customized TDEHTML part for KDevelop.
*/
class TDEAction;
class TDEToolBarPopupAction;
struct DocumentationHistoryEntry {
    KURL url;
    int id;
    
    DocumentationHistoryEntry() {}
    DocumentationHistoryEntry( const KURL& u ): url( u ) 
    {
        id = abs( TQTime::currentTime().msecsTo( TQTime() ) );	// nasty, but should provide a reasonably unique number
    }
};
/**
Customized TDEHTML part for KDevelop.
Used as HTML documentation and file viewer. 
Represents customized BrowserViewGUI mode of TDEHTMLPart. Provides also actions for:
- reload;
- stop;
- duplicate;
- print;
- copy text;
- back;
- forward.
.
It has it's own popup menu and font/zoom settings.
*/
class KDevHTMLPart : public TDEHTMLPart
{
    TQ_OBJECT
  
public:
    
    enum Options { CanDuplicate=1, CanOpenInNewWindow=2 };
    KDevHTMLPart();
    
    void setContext(const TQString &context);
    TQString context() const;
    virtual bool openURL(const KURL &url);
    static TQString resolveEnvVarsInURL(const TQString& url);
    
    void setOptions(int options) { m_options = options; }
signals:
    void fileNameChanged(KParts::ReadOnlyPart *part);
protected slots:
    void slotStarted(TDEIO::Job *);
    void slotCompleted();
    void slotCancelled(const TQString &errMsg);
    
    void openURLRequest(const KURL &url);
    void popup( const TQString & url, const TQPoint & p );
    
    void slotReload();
    void slotStop();
    virtual void slotDuplicate() = 0;
    virtual void slotOpenInNewWindow(const KURL &url) = 0;
    void slotPrint();
    void slotCopy();
    void slotSelectionChanged();
    void slotBack();
    void slotForward();
    void slotBackAboutToShow();
    void slotForwardAboutToShow();
    void slotPopupActivated( int id );
    void addHistoryEntry();
  
  
private:
    TQValueList< DocumentationHistoryEntry > m_history;
    TQValueList< DocumentationHistoryEntry >::Iterator m_Current;
    TDEToolBarPopupAction* m_backAction;
    TDEToolBarPopupAction* m_forwardAction;
    
    bool m_restoring;
    TQString m_context;
    TDEAction *stopAction;
    TDEAction *reloadAction;
    TDEAction *duplicateAction;
    TDEAction *printAction;
    TDEAction *copyAction;
    
    int m_options;
};
#endif