You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bibletime/bibletime/frontend/display/chtmlreaddisplay.h

147 lines
3.3 KiB

/*********
*
* This file is part of BibleTime's source code, http://www.bibletime.info/.
*
* Copyright 1999-2006 by the BibleTime developers.
* The BibleTime source code is licensed under the GNU General Public License version 2.0.
*
**********/
#ifndef CHTMLREADDISPLAY_H
#define CHTMLREADDISPLAY_H
//BibleTime includes
#include "creaddisplay.h"
//#include "frontend/ctooltip.h"
//TQt includes
#include <tqstring.h>
#include <tqwidget.h>
//TDE includes
#include <tdehtml_part.h>
#include <tdehtmlview.h>
#include <tdeparts/browserextension.h>
class CHTMLReadDisplayView;
/** The implementation for the HTML read display.
* @author The BibleTime team
*/
class CHTMLReadDisplay : public TDEHTMLPart, public CReadDisplay {
TQ_OBJECT
public:
//reimplemented functions from CDisplay
/**
* Returns the right text part in the specified format.
*/
virtual const TQString text( const CDisplay::TextType format = CDisplay::HTMLText, const CDisplay::TextPart part = CDisplay::Document );
/**
* Sets the new text for this display widget.
*/
virtual void setText( const TQString& newText );
virtual const bool hasSelection();
/**
* Reimplementation.
*/
virtual TQScrollView* view();
virtual void selectAll();
virtual void moveToAnchor( const TQString& anchor );
virtual void zoomIn();
virtual void zoomOut();
virtual void openFindTextDialog();
virtual TQMap<CDisplay::NodeInfoType, TQString> getCurrentNodeInfo() {
return m_nodeInfo;
}
protected:
friend class CDisplay;
CHTMLReadDisplay( CReadWindow* readWindow, TQWidget* parent = 0 );
virtual ~CHTMLReadDisplay();
virtual void urlSelected( const TQString& url, int button, int state, const TQString& _target, KParts::URLArgs args);
/**
* Reimplementation.
*/
virtual void tdehtmlMouseReleaseEvent( tdehtml::MouseReleaseEvent* event );
virtual void tdehtmlMousePressEvent( tdehtml::MousePressEvent* event );
virtual void tdehtmlMouseMoveEvent( tdehtml::MouseMoveEvent* event );
virtual void timerEvent(TQTimerEvent *event);
struct DNDData {
bool mousePressed;
bool isDragging;
DOM::Node node;
DOM::DOMString anchor;
TQString selection;
TQPoint startPos;
enum DragType {
Link,
Text
} dragType;
}
m_dndData;
TQMap<NodeInfoType, TQString> m_nodeInfo;
private:
CHTMLReadDisplayView* m_view;
struct URLWorkaroundData {
bool doWorkaround;
TQString url;
int button;
int state;
TQString target;
KParts::URLArgs args;
TQString module;
TQString key;
}
m_urlWorkaroundData;
DOM::Node m_previousEventNode;
TQString m_currentAnchorCache;
protected slots:
void slotGoToAnchor();
};
class CHTMLReadDisplayView : public TDEHTMLView, public CPointers {
TQ_OBJECT
protected: // Protected methods
friend class CHTMLReadDisplay;
CHTMLReadDisplayView(CHTMLReadDisplay* display, TQWidget* parent);
/**
* Reimplementation from TQScrollView. Sets the right slots
*/
virtual void polish();
/**
* Reimplementatiob from TQScrollView.
*/
virtual void contentsDropEvent( TQDropEvent* );
/**
* Reimplementatiob from TQScrollView.
*/
virtual void contentsDragEnterEvent( TQDragEnterEvent* );
protected slots: // Protected slots
/**
* Opens the popupmenu at the given position.
*/
void popupMenu( const TQString&, const TQPoint& );
private:
CHTMLReadDisplay* m_display;
};
#endif