diff options
Diffstat (limited to 'khotkeys/kcontrol/gesturerecorder.cpp')
-rw-r--r-- | khotkeys/kcontrol/gesturerecorder.cpp | 67 |
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 <[email protected]> + Copyright (C) 2003 Lubos Lunak <[email protected]> + + 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" |