00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __khtml_events_h__
00020 #define __khtml_events_h__
00021
00022 #include <kparts/event.h>
00023
00024 #include "dom/dom_node.h"
00025 #include "dom/dom_string.h"
00026
00027 namespace khtml
00028 {
00029
00030 class MouseEvent : public KParts::Event
00031 {
00032 public:
00033 MouseEvent( const char *name, QMouseEvent *qmouseEvent, int x, int y,
00034 const DOM::DOMString &url, const DOM::DOMString& target,
00035 const DOM::Node &innerNode);
00036 virtual ~MouseEvent();
00037
00038 QMouseEvent *qmouseEvent() const { return m_qmouseEvent; }
00039 int x() const { return m_x; }
00040 int y() const { return m_y; }
00041 int absX() const { return m_nodeAbsX; }
00042 int absY() const { return m_nodeAbsY; }
00043
00044 DOM::DOMString url() const { return m_url; }
00045 DOM::DOMString target() const { return m_target; }
00046 DOM::Node innerNode() const { return m_innerNode; }
00047
00048
00049 long offset() const;
00050
00051 private:
00052 QMouseEvent *m_qmouseEvent;
00053 int m_x;
00054 int m_y;
00055 int m_nodeAbsX, m_nodeAbsY;
00056 DOM::DOMString m_url;
00057 DOM::DOMString m_target;
00058 DOM::Node m_innerNode;
00059 class MouseEventPrivate;
00060 MouseEventPrivate *d;
00061 };
00062
00063 class MousePressEvent : public MouseEvent
00064 {
00065 public:
00066 MousePressEvent( QMouseEvent *mouseEvent, int x, int y,
00067 const DOM::DOMString &url, const DOM::DOMString& target,
00068 const DOM::Node &innerNode)
00069 : MouseEvent( s_strMousePressEvent, mouseEvent, x, y, url, target, innerNode )
00070 {}
00071
00072 static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMousePressEvent ); }
00073
00074
00075 private:
00076 static const char *s_strMousePressEvent;
00077 };
00078
00079 class MouseDoubleClickEvent : public MouseEvent
00080 {
00081 public:
00082
00083 MouseDoubleClickEvent( QMouseEvent *mouseEvent, int x, int y,
00084 const DOM::DOMString &url, const DOM::DOMString& target,
00085 const DOM::Node &innerNode, int clickCount = 2 )
00086 : MouseEvent( s_strMouseDoubleClickEvent, mouseEvent, x, y, url, target, innerNode ),
00087 m_clickCount( clickCount )
00088 {}
00089
00090 static bool test( const QEvent *event )
00091 { return KParts::Event::test( event, s_strMouseDoubleClickEvent ); }
00092
00093 int clickCount() const { return m_clickCount; }
00094
00095 private:
00096 int m_clickCount;
00097 static const char *s_strMouseDoubleClickEvent;
00098 };
00099
00100 class MouseMoveEvent : public MouseEvent
00101 {
00102 public:
00103 MouseMoveEvent( QMouseEvent *mouseEvent, int x, int y,
00104 const DOM::DOMString &url, const DOM::DOMString& target,
00105 const DOM::Node &innerNode)
00106 : MouseEvent( s_strMouseMoveEvent, mouseEvent, x, y, url, target, innerNode )
00107 {}
00108
00109 static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMouseMoveEvent ); }
00110
00111 private:
00112 static const char *s_strMouseMoveEvent;
00113 };
00114
00115 class MouseReleaseEvent : public MouseEvent
00116 {
00117 public:
00118 MouseReleaseEvent( QMouseEvent *mouseEvent, int x, int y,
00119 const DOM::DOMString &url, const DOM::DOMString& target,
00120 const DOM::Node &innerNode, long = 0 )
00121 : MouseEvent( s_strMouseReleaseEvent, mouseEvent, x, y, url, target, innerNode )
00122 {}
00123
00124 static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMouseReleaseEvent ); }
00125
00126 private:
00127 static const char *s_strMouseReleaseEvent;
00128 };
00129
00130 class DrawContentsEvent : public KParts::Event
00131 {
00132 public:
00133 DrawContentsEvent( QPainter *painter, int clipx, int clipy, int clipw, int cliph );
00134 virtual ~DrawContentsEvent();
00135
00136 QPainter *painter() const { return m_painter; }
00137 int clipx() const { return m_clipx; }
00138 int clipy() const { return m_clipy; }
00139 int clipw() const { return m_clipw; }
00140 int cliph() const { return m_cliph; }
00141
00142 static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strDrawContentsEvent ); }
00143
00144 private:
00145 QPainter *m_painter;
00146 int m_clipx;
00147 int m_clipy;
00148 int m_clipw;
00149 int m_cliph;
00150 class DrawContentsEventPrivate;
00151 DrawContentsEventPrivate *d;
00152 static const char *s_strDrawContentsEvent;
00153 };
00154
00155 }
00156
00157 #endif