tdevelop/lib/widgets/kdevhtmlpart.h

112 lines
2.3 KiB

#ifndef __KDEVHTMLPART_H__
#define __KDEVHTMLPART_H__
#include <stdlib.h>
#include <tqdatetime.h>
#include <khtml_part.h>
/**
@file kdevhtmlpart.h
Customized KHTML part for KDevelop.
*/
class KAction;
class KToolBarPopupAction;
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 KHTML part for KDevelop.
Used as HTML documentation and file viewer.
Represents customized BrowserViewGUI mode of KHTMLPart. 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 KHTMLPart
{
Q_OBJECT
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(KIO::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;
KToolBarPopupAction* m_backAction;
KToolBarPopupAction* m_forwardAction;
bool m_restoring;
TQString m_context;
KAction *stopAction;
KAction *reloadAction;
KAction *duplicateAction;
KAction *printAction;
KAction *copyAction;
int m_options;
};
#endif