summaryrefslogtreecommitdiffstats
path: root/khtml/khtml_events.h
diff options
context:
space:
mode:
Diffstat (limited to 'khtml/khtml_events.h')
-rw-r--r--khtml/khtml_events.h157
1 files changed, 157 insertions, 0 deletions
diff --git a/khtml/khtml_events.h b/khtml/khtml_events.h
new file mode 100644
index 000000000..446e5c6dd
--- /dev/null
+++ b/khtml/khtml_events.h
@@ -0,0 +1,157 @@
+/* This file is part of the KDE project
+ Copyright (C) 2000 Simon Hausmann <hausmann@kde.org>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+#ifndef __khtml_events_h__
+#define __khtml_events_h__
+
+#include <kparts/event.h>
+
+#include "dom/dom_node.h"
+#include "dom/dom_string.h"
+
+namespace khtml
+{
+
+class MouseEvent : public KParts::Event
+{
+public:
+ MouseEvent( const char *name, QMouseEvent *qmouseEvent, int x, int y,
+ const DOM::DOMString &url, const DOM::DOMString& target,
+ const DOM::Node &innerNode);
+ virtual ~MouseEvent();
+
+ QMouseEvent *qmouseEvent() const { return m_qmouseEvent; }
+ int x() const { return m_x; }
+ int y() const { return m_y; }
+ int absX() const { return m_nodeAbsX; }
+ int absY() const { return m_nodeAbsY; }
+
+ DOM::DOMString url() const { return m_url; }
+ DOM::DOMString target() const { return m_target; }
+ DOM::Node innerNode() const { return m_innerNode; }
+
+ // return the offset of innerNode
+ long offset() const;
+
+private:
+ QMouseEvent *m_qmouseEvent;
+ int m_x;
+ int m_y;
+ int m_nodeAbsX, m_nodeAbsY;
+ DOM::DOMString m_url;
+ DOM::DOMString m_target;
+ DOM::Node m_innerNode;
+ class MouseEventPrivate;
+ MouseEventPrivate *d;
+};
+
+class MousePressEvent : public MouseEvent
+{
+public:
+ MousePressEvent( QMouseEvent *mouseEvent, int x, int y,
+ const DOM::DOMString &url, const DOM::DOMString& target,
+ const DOM::Node &innerNode)
+ : MouseEvent( s_strMousePressEvent, mouseEvent, x, y, url, target, innerNode )
+ {}
+
+ static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMousePressEvent ); }
+
+
+private:
+ static const char *s_strMousePressEvent;
+};
+
+class MouseDoubleClickEvent : public MouseEvent
+{
+public:
+ // clickCount is 3 for a triple-click event
+ MouseDoubleClickEvent( QMouseEvent *mouseEvent, int x, int y,
+ const DOM::DOMString &url, const DOM::DOMString& target,
+ const DOM::Node &innerNode, int clickCount = 2 )
+ : MouseEvent( s_strMouseDoubleClickEvent, mouseEvent, x, y, url, target, innerNode ),
+ m_clickCount( clickCount )
+ {}
+
+ static bool test( const QEvent *event )
+ { return KParts::Event::test( event, s_strMouseDoubleClickEvent ); }
+
+ int clickCount() const { return m_clickCount; }
+
+private:
+ int m_clickCount;
+ static const char *s_strMouseDoubleClickEvent;
+};
+
+class MouseMoveEvent : public MouseEvent
+{
+public:
+ MouseMoveEvent( QMouseEvent *mouseEvent, int x, int y,
+ const DOM::DOMString &url, const DOM::DOMString& target,
+ const DOM::Node &innerNode)
+ : MouseEvent( s_strMouseMoveEvent, mouseEvent, x, y, url, target, innerNode )
+ {}
+
+ static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMouseMoveEvent ); }
+
+private:
+ static const char *s_strMouseMoveEvent;
+};
+
+class MouseReleaseEvent : public MouseEvent
+{
+public:
+ MouseReleaseEvent( QMouseEvent *mouseEvent, int x, int y,
+ const DOM::DOMString &url, const DOM::DOMString& target,
+ const DOM::Node &innerNode, long = 0 )
+ : MouseEvent( s_strMouseReleaseEvent, mouseEvent, x, y, url, target, innerNode )
+ {}
+
+ static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strMouseReleaseEvent ); }
+
+private:
+ static const char *s_strMouseReleaseEvent;
+};
+
+class DrawContentsEvent : public KParts::Event
+{
+public:
+ DrawContentsEvent( QPainter *painter, int clipx, int clipy, int clipw, int cliph );
+ virtual ~DrawContentsEvent();
+
+ QPainter *painter() const { return m_painter; }
+ int clipx() const { return m_clipx; }
+ int clipy() const { return m_clipy; }
+ int clipw() const { return m_clipw; }
+ int cliph() const { return m_cliph; }
+
+ static bool test( const QEvent *event ) { return KParts::Event::test( event, s_strDrawContentsEvent ); }
+
+private:
+ QPainter *m_painter;
+ int m_clipx;
+ int m_clipy;
+ int m_clipw;
+ int m_cliph;
+ class DrawContentsEventPrivate;
+ DrawContentsEventPrivate *d;
+ static const char *s_strDrawContentsEvent;
+};
+
+}
+
+#endif