A collection of event patterns. More...
#include <qwt_event_pattern.h>
Classes | |
class | KeyPattern |
A pattern for key events. More... | |
class | MousePattern |
A pattern for mouse events. More... | |
Public Types | |
enum | MousePatternCode { MouseSelect1, MouseSelect2, MouseSelect3, MouseSelect4, MouseSelect5, MouseSelect6, MousePatternCount } |
Symbolic mouse input codes. More... | |
enum | KeyPatternCode { KeySelect1, KeySelect2, KeyAbort, KeyLeft, KeyRight, KeyUp, KeyDown, KeyRedo, KeyUndo, KeyHome, KeyPatternCount } |
Symbolic keyboard input codes. More... | |
Public Member Functions | |
QwtEventPattern () | |
virtual | ~QwtEventPattern () |
Destructor. | |
void | initMousePattern (int numButtons) |
void | initKeyPattern () |
void | setMousePattern (uint pattern, int button, int state=Qt::NoButton) |
void | setKeyPattern (uint pattern, int key, int state=Qt::NoButton) |
void | setMousePattern (const QMemArray< MousePattern > &) |
Change the mouse event patterns. | |
void | setKeyPattern (const QMemArray< KeyPattern > &) |
Change the key event patterns. | |
const QMemArray< MousePattern > & | mousePattern () const |
Return mouse patterns. | |
const QMemArray< KeyPattern > & | keyPattern () const |
Return key patterns. | |
QMemArray< MousePattern > & | mousePattern () |
Return ,ouse patterns. | |
QMemArray< KeyPattern > & | keyPattern () |
Return Key patterns. | |
bool | mouseMatch (uint pattern, const QMouseEvent *) const |
Compare a mouse event with an event pattern. | |
bool | keyMatch (uint pattern, const QKeyEvent *) const |
Compare a key event with an event pattern. | |
Protected Member Functions | |
virtual bool | mouseMatch (const MousePattern &, const QMouseEvent *) const |
Compare a mouse event with an event pattern. | |
virtual bool | keyMatch (const KeyPattern &, const QKeyEvent *) const |
Compare a key event with an event pattern. |
A collection of event patterns.
QwtEventPattern introduces an level of indirection for mouse and keyboard inputs. Those are represented by symbolic names, so the application code can be configured by individual mappings.
Definition at line 28 of file qwt_event_pattern.h.
Symbolic keyboard input codes.
Default initialization:
KeySelect1 | |
KeySelect2 | |
KeyAbort | |
KeyLeft | |
KeyRight | |
KeyUp | |
KeyDown | |
KeyRedo | |
KeyUndo | |
KeyHome | |
KeyPatternCount |
Definition at line 118 of file qwt_event_pattern.h.
{ KeySelect1, KeySelect2, KeyAbort, KeyLeft, KeyRight, KeyUp, KeyDown, KeyRedo, KeyUndo, KeyHome, KeyPatternCount };
Symbolic mouse input codes.
The default initialization for 3 button mice is:
The default initialization for 2 button mice is:
The default initialization for 1 button mice is:
MouseSelect1 | |
MouseSelect2 | |
MouseSelect3 | |
MouseSelect4 | |
MouseSelect5 | |
MouseSelect6 | |
MousePatternCount |
Definition at line 79 of file qwt_event_pattern.h.
QwtEventPattern::QwtEventPattern | ( | ) |
Constructor
Definition at line 19 of file qwt_event_pattern.cpp.
References initKeyPattern(), and initMousePattern().
: d_mousePattern(MousePatternCount), d_keyPattern(KeyPatternCount) { initKeyPattern(); initMousePattern(3); }
QwtEventPattern::~QwtEventPattern | ( | ) | [virtual] |
void QwtEventPattern::initKeyPattern | ( | ) |
Set default mouse patterns.
Definition at line 88 of file qwt_event_pattern.cpp.
References mitk::Key_Down, mitk::Key_Escape, mitk::Key_Left, mitk::Key_Minus, mitk::Key_Plus, mitk::Key_Return, mitk::Key_Right, mitk::Key_Space, mitk::Key_Up, KeyAbort, KeyDown, KeyHome, KeyLeft, KeyPatternCount, KeyRedo, KeyRight, KeySelect1, KeySelect2, KeyUndo, KeyUp, and setKeyPattern().
Referenced by QwtEventPattern().
{ d_keyPattern.resize(KeyPatternCount); setKeyPattern(KeySelect1, Qt::Key_Return); setKeyPattern(KeySelect2, Qt::Key_Space); setKeyPattern(KeyAbort, Qt::Key_Escape); setKeyPattern(KeyLeft, Qt::Key_Left); setKeyPattern(KeyRight, Qt::Key_Right); setKeyPattern(KeyUp, Qt::Key_Up); setKeyPattern(KeyDown, Qt::Key_Down); setKeyPattern(KeyRedo, Qt::Key_Plus); setKeyPattern(KeyUndo, Qt::Key_Minus); setKeyPattern(KeyHome, Qt::Key_Escape); }
void QwtEventPattern::initMousePattern | ( | int | numButtons ) |
Set default mouse patterns, depending on the number of mouse buttons
numButtons | Number of mouse buttons ( <= 3 ) |
Definition at line 38 of file qwt_event_pattern.cpp.
References MousePatternCount, MouseSelect1, MouseSelect2, MouseSelect3, MouseSelect4, and setMousePattern().
Referenced by QwtEventPattern().
{ #if QT_VERSION < 0x040000 const int altButton = Qt::AltButton; const int controlButton = Qt::ControlButton; const int shiftButton = Qt::ShiftButton; #else const int altButton = Qt::AltModifier; const int controlButton = Qt::ControlModifier; const int shiftButton = Qt::ShiftModifier; #endif d_mousePattern.resize(MousePatternCount); switch(numButtons) { case 1: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::LeftButton, controlButton); setMousePattern(MouseSelect3, Qt::LeftButton, altButton); break; } case 2: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::RightButton); setMousePattern(MouseSelect3, Qt::LeftButton, altButton); break; } default: { setMousePattern(MouseSelect1, Qt::LeftButton); setMousePattern(MouseSelect2, Qt::RightButton); setMousePattern(MouseSelect3, Qt::MidButton); } } for ( int i = 0; i < 3; i++ ) { setMousePattern(MouseSelect4 + i, d_mousePattern[MouseSelect1 + i].button, d_mousePattern[MouseSelect1 + i].state | shiftButton); } }
bool QwtEventPattern::keyMatch | ( | uint | pattern, |
const QKeyEvent * | e | ||
) | const |
Compare a key event with an event pattern.
A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set.
pattern | Index of the event pattern |
e | Key event |
Definition at line 248 of file qwt_event_pattern.cpp.
Referenced by QwtPickerPolygonMachine::transition(), QwtPickerDragRectMachine::transition(), QwtPickerClickRectMachine::transition(), QwtPickerDragPointMachine::transition(), QwtPickerClickPointMachine::transition(), QwtPlotZoomer::widgetKeyPressEvent(), and QwtPicker::widgetKeyPressEvent().
{ bool ok = false; if ( e && pattern < (uint)d_keyPattern.count() ) ok = keyMatch(d_keyPattern[int(pattern)], e); return ok; }
bool QwtEventPattern::keyMatch | ( | const KeyPattern & | pattern, |
const QKeyEvent * | e | ||
) | const [protected, virtual] |
Compare a key event with an event pattern.
A key event matches the pattern when both have the same key value and in the state value the same key flags (Qt::KeyButtonMask) are set.
pattern | Key event pattern |
e | Key event |
Definition at line 272 of file qwt_event_pattern.cpp.
References QwtEventPattern::KeyPattern::key, and QwtEventPattern::KeyPattern::state.
{ if ( e->key() != pattern.key) return false; const bool matched = #if QT_VERSION < 0x040000 (e->state() & Qt::KeyButtonMask) == (pattern.state & Qt::KeyButtonMask); #else (e->modifiers() & Qt::KeyboardModifierMask) == (int)(pattern.state & Qt::KeyboardModifierMask); #endif return matched; }
const QMemArray< QwtEventPattern::KeyPattern > & QwtEventPattern::keyPattern | ( | ) | const |
QMemArray< QwtEventPattern::KeyPattern > & QwtEventPattern::keyPattern | ( | ) |
bool QwtEventPattern::mouseMatch | ( | uint | pattern, |
const QMouseEvent * | e | ||
) | const |
Compare a mouse event with an event pattern.
A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set.
pattern | Index of the event pattern |
e | Mouse event |
Definition at line 193 of file qwt_event_pattern.cpp.
Referenced by QwtPickerPolygonMachine::transition(), QwtPickerDragRectMachine::transition(), QwtPickerClickRectMachine::transition(), QwtPickerDragPointMachine::transition(), QwtPickerClickPointMachine::transition(), and QwtPlotZoomer::widgetMouseReleaseEvent().
{ bool ok = false; if ( e && pattern < (uint)d_mousePattern.count() ) ok = mouseMatch(d_mousePattern[int(pattern)], e); return ok; }
bool QwtEventPattern::mouseMatch | ( | const MousePattern & | pattern, |
const QMouseEvent * | e | ||
) | const [protected, virtual] |
Compare a mouse event with an event pattern.
A mouse event matches the pattern when both have the same button value and in the state value the same key flags(Qt::KeyButtonMask) are set.
pattern | Mouse event pattern |
e | Mouse event |
Definition at line 217 of file qwt_event_pattern.cpp.
References QwtEventPattern::MousePattern::button, and QwtEventPattern::MousePattern::state.
{ if ( e->button() != pattern.button ) return false; const bool matched = #if QT_VERSION < 0x040000 (e->state() & Qt::KeyButtonMask) == (pattern.state & Qt::KeyButtonMask); #else (e->modifiers() & Qt::KeyboardModifierMask) == (int)(pattern.state & Qt::KeyboardModifierMask); #endif return matched; }
QMemArray< QwtEventPattern::MousePattern > & QwtEventPattern::mousePattern | ( | ) |
Return ,ouse patterns.
Definition at line 169 of file qwt_event_pattern.cpp.
{
return d_mousePattern;
}
const QMemArray< QwtEventPattern::MousePattern > & QwtEventPattern::mousePattern | ( | ) | const |
Return mouse patterns.
Definition at line 156 of file qwt_event_pattern.cpp.
{
return d_mousePattern;
}
void QwtEventPattern::setKeyPattern | ( | uint | pattern, |
int | key, | ||
int | state = Qt::NoButton |
||
) |
Change one key pattern
pattern | Index of the pattern |
key | Key |
state | State |
Definition at line 133 of file qwt_event_pattern.cpp.
References int().
Referenced by initKeyPattern().
void QwtEventPattern::setKeyPattern | ( | const QMemArray< KeyPattern > & | pattern ) |
Change the key event patterns.
Definition at line 149 of file qwt_event_pattern.cpp.
{ d_keyPattern = pattern; }
void QwtEventPattern::setMousePattern | ( | uint | pattern, |
int | button, | ||
int | state = Qt::NoButton |
||
) |
Change one mouse pattern
pattern | Index of the pattern |
button | Button |
state | State |
Definition at line 115 of file qwt_event_pattern.cpp.
References int().
Referenced by initMousePattern().
void QwtEventPattern::setMousePattern | ( | const QMemArray< MousePattern > & | pattern ) |
Change the mouse event patterns.
Definition at line 143 of file qwt_event_pattern.cpp.
{ d_mousePattern = pattern; }