Qwt User's Guide: qwt_event_pattern.cpp Source File

Qwt User's Guide 6.2.0

qwt_event_pattern.cpp
1 /******************************************************************************
2 * Qwt Widget Library
3 * Copyright (C) 1997 Josef Wilgen
4 * Copyright (C) 2002 Uwe Rathmann
5 *
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 *****************************************************************************/
9
10 #include "qwt_event_pattern.h"
11 #include <qevent.h>
12
19 QwtEventPattern::QwtEventPattern()
20 : m_mousePattern( MousePatternCount )
21 , m_keyPattern( KeyPatternCount )
22 {
23 initKeyPattern();
24 initMousePattern( 3 );
25 }
26
28 QwtEventPattern::~QwtEventPattern()
29 {
30 }
31
38 void QwtEventPattern::initMousePattern( int numButtons )
39 {
40 m_mousePattern.resize( MousePatternCount );
41
42 switch ( numButtons )
43 {
44 case 1:
45 {
46 setMousePattern( MouseSelect1, Qt::LeftButton );
47 setMousePattern( MouseSelect2, Qt::LeftButton, Qt::ControlModifier );
48 setMousePattern( MouseSelect3, Qt::LeftButton, Qt::AltModifier );
49 break;
50 }
51 case 2:
52 {
53 setMousePattern( MouseSelect1, Qt::LeftButton );
54 setMousePattern( MouseSelect2, Qt::RightButton );
55 setMousePattern( MouseSelect3, Qt::LeftButton, Qt::AltModifier );
56 break;
57 }
58 default:
59 {
60 setMousePattern( MouseSelect1, Qt::LeftButton );
61 setMousePattern( MouseSelect2, Qt::RightButton );
62 setMousePattern( MouseSelect3, Qt::MiddleButton );
63 }
64 }
65
66 setMousePattern( MouseSelect4, m_mousePattern[MouseSelect1].button,
67 m_mousePattern[MouseSelect1].modifiers | Qt::ShiftModifier );
68
69 setMousePattern( MouseSelect5, m_mousePattern[MouseSelect2].button,
70 m_mousePattern[MouseSelect2].modifiers | Qt::ShiftModifier );
71
72 setMousePattern( MouseSelect6, m_mousePattern[MouseSelect3].button,
73 m_mousePattern[MouseSelect3].modifiers | Qt::ShiftModifier );
74 }
75
81 void QwtEventPattern::initKeyPattern()
82 {
83 m_keyPattern.resize( KeyPatternCount );
84
85 setKeyPattern( KeySelect1, Qt::Key_Return );
86 setKeyPattern( KeySelect2, Qt::Key_Space );
87 setKeyPattern( KeyAbort, Qt::Key_Escape );
88
89 setKeyPattern( KeyLeft, Qt::Key_Left );
90 setKeyPattern( KeyRight, Qt::Key_Right );
91 setKeyPattern( KeyUp, Qt::Key_Up );
92 setKeyPattern( KeyDown, Qt::Key_Down );
93
94 setKeyPattern( KeyRedo, Qt::Key_Plus );
95 setKeyPattern( KeyUndo, Qt::Key_Minus );
96 setKeyPattern( KeyHome, Qt::Key_Escape );
97 }
98
108 void QwtEventPattern::setMousePattern( MousePatternCode pattern,
109 Qt::MouseButton button, Qt::KeyboardModifiers modifiers )
110 {
111 if ( pattern >= 0 && pattern < MousePatternCount )
112 {
113 m_mousePattern[ pattern ].button = button;
114 m_mousePattern[ pattern ].modifiers = modifiers;
115 }
116 }
117
127 void QwtEventPattern::setKeyPattern( KeyPatternCode pattern,
128 int key, Qt::KeyboardModifiers modifiers )
129 {
130 if ( pattern >= 0 && pattern < KeyPatternCount )
131 {
132 m_keyPattern[ pattern ].key = key;
133 m_keyPattern[ pattern ].modifiers = modifiers;
134 }
135 }
136
138 void QwtEventPattern::setMousePattern( const QVector< MousePattern >& pattern )
139 {
140 m_mousePattern = pattern;
141 }
142
144 void QwtEventPattern::setKeyPattern( const QVector< KeyPattern >& pattern )
145 {
146 m_keyPattern = pattern;
147 }
148
150 const QVector< QwtEventPattern::MousePattern >&
151 QwtEventPattern::mousePattern() const
152 {
153 return m_mousePattern;
154 }
155
157 const QVector< QwtEventPattern::KeyPattern >&
158 QwtEventPattern::keyPattern() const
159 {
160 return m_keyPattern;
161 }
162
164 QVector< QwtEventPattern::MousePattern >& QwtEventPattern::mousePattern()
165 {
166 return m_mousePattern;
167 }
168
170 QVector< QwtEventPattern::KeyPattern >& QwtEventPattern::keyPattern()
171 {
172 return m_keyPattern;
173 }
174
188 bool QwtEventPattern::mouseMatch( MousePatternCode code,
189 const QMouseEvent* event ) const
190 {
191 if ( code >= 0 && code < MousePatternCount )
192 return mouseMatch( m_mousePattern[ code ], event );
193
194 return false;
195 }
196
211 bool QwtEventPattern::mouseMatch( const MousePattern& pattern,
212 const QMouseEvent* event ) const
213 {
214 if ( event == NULL )
215 return false;
216
217 const MousePattern mousePattern( event->button(), event->modifiers() );
218 return mousePattern == pattern;
219 }
220
234 bool QwtEventPattern::keyMatch( KeyPatternCode code,
235 const QKeyEvent* event ) const
236 {
237 if ( code >= 0 && code < KeyPatternCount )
238 return keyMatch( m_keyPattern[ code ], event );
239
240 return false;
241 }
242
257 bool QwtEventPattern::keyMatch(
258 const KeyPattern& pattern, const QKeyEvent* event ) const
259 {
260 if ( event == NULL )
261 return false;
262
263 const KeyPattern keyPattern( event->key(), event->modifiers() );
264 return keyPattern == pattern;
265 }
QVector
Definition: qwt_clipper.h:23
QwtEventPattern::KeyPattern
A pattern for key events.
Definition: qwt_event_pattern.h:169
QwtEventPattern::MousePattern
A pattern for mouse events.
Definition: qwt_event_pattern.h:150
QwtEventPattern::setMousePattern
void setMousePattern(MousePatternCode, Qt::MouseButton button, Qt::KeyboardModifiers=Qt::NoModifier)
Definition: qwt_event_pattern.cpp:108
QwtEventPattern::QwtEventPattern
QwtEventPattern()
Definition: qwt_event_pattern.cpp:19
QwtEventPattern::mousePattern
const QVector< MousePattern > & mousePattern() const
Definition: qwt_event_pattern.cpp:151
QwtEventPattern::mouseMatch
bool mouseMatch(MousePatternCode, const QMouseEvent *) const
Compare a mouse event with an event pattern.
Definition: qwt_event_pattern.cpp:188
QwtEventPattern::~QwtEventPattern
virtual ~QwtEventPattern()
Destructor.
Definition: qwt_event_pattern.cpp:28
QwtEventPattern::keyPattern
const QVector< KeyPattern > & keyPattern() const
Definition: qwt_event_pattern.cpp:158
QwtEventPattern::keyMatch
bool keyMatch(KeyPatternCode, const QKeyEvent *) const
Compare a key event with an event pattern.
Definition: qwt_event_pattern.cpp:234
QwtEventPattern::KeyPatternCode
KeyPatternCode
Symbolic keyboard input codes.
Definition: qwt_event_pattern.h:113
QwtEventPattern::KeyDown
@ KeyDown
Qt::Key_Down.
Definition: qwt_event_pattern.h:133
QwtEventPattern::KeyUp
@ KeyUp
Qt::Key_Up.
Definition: qwt_event_pattern.h:130
QwtEventPattern::KeyRedo
@ KeyRedo
Qt::Key_Plus.
Definition: qwt_event_pattern.h:136
QwtEventPattern::KeySelect1
@ KeySelect1
Qt::Key_Return.
Definition: qwt_event_pattern.h:115
QwtEventPattern::KeyHome
@ KeyHome
Qt::Key_Escape.
Definition: qwt_event_pattern.h:142
QwtEventPattern::KeyAbort
@ KeyAbort
Qt::Key_Escape.
Definition: qwt_event_pattern.h:121
QwtEventPattern::KeyRight
@ KeyRight
Qt::Key_Right.
Definition: qwt_event_pattern.h:127
QwtEventPattern::KeyUndo
@ KeyUndo
Qt::Key_Minus.
Definition: qwt_event_pattern.h:139
QwtEventPattern::KeyLeft
@ KeyLeft
Qt::Key_Left.
Definition: qwt_event_pattern.h:124
QwtEventPattern::KeyPatternCount
@ KeyPatternCount
Number of key patterns.
Definition: qwt_event_pattern.h:145
QwtEventPattern::KeySelect2
@ KeySelect2
Qt::Key_Space.
Definition: qwt_event_pattern.h:118
QwtEventPattern::initKeyPattern
void initKeyPattern()
Definition: qwt_event_pattern.cpp:81
QwtEventPattern::initMousePattern
void initMousePattern(int numButtons)
Definition: qwt_event_pattern.cpp:38
QwtEventPattern::MousePatternCode
MousePatternCode
Symbolic mouse input codes.
Definition: qwt_event_pattern.h:46
QwtEventPattern::MousePatternCount
@ MousePatternCount
Number of mouse patterns.
Definition: qwt_event_pattern.h:102
QwtEventPattern::MouseSelect1
@ MouseSelect1
Definition: qwt_event_pattern.h:54
QwtEventPattern::MouseSelect4
@ MouseSelect4
Definition: qwt_event_pattern.h:81
QwtEventPattern::MouseSelect3
@ MouseSelect3
Definition: qwt_event_pattern.h:72
QwtEventPattern::MouseSelect2
@ MouseSelect2
Definition: qwt_event_pattern.h:63
QwtEventPattern::MouseSelect5
@ MouseSelect5
Definition: qwt_event_pattern.h:90
QwtEventPattern::MouseSelect6
@ MouseSelect6
Definition: qwt_event_pattern.h:99
QwtEventPattern::setKeyPattern
void setKeyPattern(KeyPatternCode, int key, Qt::KeyboardModifiers modifiers=Qt::NoModifier)
Definition: qwt_event_pattern.cpp:127