1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
3
* Copyright (C) 1997 Josef Wilgen
4
* Copyright (C) 2002 Uwe Rathmann
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the Qwt License, Version 1.0
8
*****************************************************************************/
10
#ifndef QWT_EVENT_PATTERN
11
#define QWT_EVENT_PATTERN 1
13
#include <qnamespace.h>
14
#include "qwt_array.h"
20
\brief A collection of event patterns
22
QwtEventPattern introduces an level of indirection for mouse and
23
keyboard inputs. Those are represented by symbolic names, so
24
the application code can be configured by individual mappings.
26
\sa QwtPicker, QwtPickerMachine, QwtPlotZoomer
28
class QWT_EXPORT QwtEventPattern
32
\brief Symbolic mouse input codes
34
The default initialization for 3 button mice is:
42
Qt::LeftButton + Qt::ShiftButton
44
Qt::RightButton + Qt::ShiftButton
46
Qt::MidButton + Qt::ShiftButton
48
The default initialization for 2 button mice is:
54
Qt::LeftButton + Qt::AltButton
56
Qt::LeftButton + Qt::ShiftButton
58
Qt::RightButton + Qt::ShiftButton
60
Qt::LeftButton + Qt::AltButton + Qt::ShiftButton
62
The default initialization for 1 button mice is:
66
Qt::LeftButton + Qt::ControlButton
68
Qt::LeftButton + Qt::AltButton
70
Qt::LeftButton + Qt::ShiftButton
72
Qt::LeftButton + Qt::ControlButton + Qt::ShiftButton
74
Qt::LeftButton + Qt::AltButton + Qt::ShiftButton
76
\sa initMousePattern()
92
\brief Symbolic keyboard input codes
94
Default initialization:
136
//! A pattern for mouse events
140
MousePattern(int btn = Qt::NoButton, int st = Qt::NoButton)
150
//! A pattern for key events
154
KeyPattern(int k = 0, int st = Qt::NoButton)
165
virtual ~QwtEventPattern();
167
void initMousePattern(int numButtons);
168
void initKeyPattern();
170
void setMousePattern(uint pattern, int button, int state = Qt::NoButton);
171
void setKeyPattern(uint pattern, int key, int state = Qt::NoButton);
173
void setMousePattern(const QwtArray<MousePattern> &);
174
void setKeyPattern(const QwtArray<KeyPattern> &);
176
const QwtArray<MousePattern> &mousePattern() const;
177
const QwtArray<KeyPattern> &keyPattern() const;
179
QwtArray<MousePattern> &mousePattern();
180
QwtArray<KeyPattern> &keyPattern();
182
bool mouseMatch(uint pattern, const QMouseEvent *) const;
183
bool keyMatch(uint pattern, const QKeyEvent *) const;
186
virtual bool mouseMatch(const MousePattern &, const QMouseEvent *) const;
187
virtual bool keyMatch(const KeyPattern &, const QKeyEvent *) const;
191
#if defined(_MSC_VER)
192
#pragma warning(push)
193
#pragma warning(disable: 4251)
195
QwtArray<MousePattern> d_mousePattern;
196
QwtArray<KeyPattern> d_keyPattern;
197
#if defined(_MSC_VER)
202
inline bool operator==(QwtEventPattern::MousePattern b1,
203
QwtEventPattern::MousePattern b2)
205
return b1.button == b2.button && b1.state == b2.state;
208
inline bool operator==(QwtEventPattern::KeyPattern b1,
209
QwtEventPattern::KeyPattern b2)
211
return b1.key == b2.key && b1.state == b2.state;
214
#if defined(QWT_TEMPLATEDLL)
216
template class QWT_EXPORT QwtArray<QwtEventPattern::MousePattern>;
217
template class QWT_EXPORT QwtArray<QwtEventPattern::KeyPattern>;