summaryrefslogtreecommitdiffstats
path: root/khotkeys/kcontrol/gesturerecorder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'khotkeys/kcontrol/gesturerecorder.cpp')
-rw-r--r--khotkeys/kcontrol/gesturerecorder.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/khotkeys/kcontrol/gesturerecorder.cpp b/khotkeys/kcontrol/gesturerecorder.cpp
new file mode 100644
index 000000000..d14614c77
--- /dev/null
+++ b/khotkeys/kcontrol/gesturerecorder.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+
+ KHotKeys
+
+ Copyright (C) 2003 Mike Pilone <mpilone@slac.com>
+ Copyright (C) 2003 Lubos Lunak <l.lunak@kde.org>
+
+ Distributed under the terms of the GNU General Public License version 2.
+
+****************************************************************************/
+
+#include <qcolor.h>
+#include <qevent.h>
+
+#include "gesturerecorder.h"
+
+namespace KHotKeys
+{
+
+GestureRecorder::GestureRecorder(QWidget *parent, const char *name)
+ : QFrame(parent, name), _mouseButtonDown(false)
+ {
+ setBackgroundColor( colorGroup().base());
+ setFrameStyle(QFrame::Sunken | QFrame::Panel);
+ setLineWidth(2);
+ setMidLineWidth(0);
+ }
+
+GestureRecorder::~GestureRecorder()
+ {
+ }
+
+void GestureRecorder::mousePressEvent(QMouseEvent *ev)
+ {
+ if (ev->button() == QMouseEvent::LeftButton)
+ {
+ _mouseButtonDown = true;
+ stroke.reset();
+ QPoint pos = ev->pos();
+ stroke.record(pos.x(), pos.y());
+ }
+ }
+
+void GestureRecorder::mouseReleaseEvent(QMouseEvent *ev)
+ {
+ if ((ev->button() == QMouseEvent::LeftButton) && (_mouseButtonDown))
+ {
+ QPoint pos = ev->pos();
+ stroke.record(pos.x(), pos.y());
+ QString data( stroke.translate());
+ if( !data.isEmpty())
+ emit recorded(data);
+ }
+ }
+
+void GestureRecorder::mouseMoveEvent(QMouseEvent *ev)
+ {
+ if (_mouseButtonDown)
+ {
+ QPoint pos = ev->pos();
+ stroke.record(pos.x(), pos.y());
+ }
+ }
+
+} // namespace KHotKeys
+
+#include "gesturerecorder.moc"